控制台
@@ -198,32 +198,69 @@ class LiveVideoActivity : BaseActivity() {
|
||||
intent.putExtra("from_live_video", true)
|
||||
startActivity(intent)
|
||||
}
|
||||
|
||||
// 控制台方向按钮点击事件
|
||||
binding.ivUp.setOnClickListener {
|
||||
handleDirectionClick("up")
|
||||
}
|
||||
binding.ivDown.setOnClickListener {
|
||||
handleDirectionClick("down")
|
||||
}
|
||||
binding.ivLeft.setOnClickListener {
|
||||
handleDirectionClick("left")
|
||||
}
|
||||
binding.ivRight.setOnClickListener {
|
||||
handleDirectionClick("right")
|
||||
}
|
||||
|
||||
// 触摸反馈
|
||||
setTouchFeedback(binding.ivUp)
|
||||
setTouchFeedback(binding.ivDown)
|
||||
setTouchFeedback(binding.ivLeft)
|
||||
setTouchFeedback(binding.ivRight)
|
||||
}
|
||||
|
||||
private fun setTouchFeedback(view: View) {
|
||||
view.setOnTouchListener { v, event ->
|
||||
when (event.action) {
|
||||
android.view.MotionEvent.ACTION_DOWN -> {
|
||||
v.scaleX = 0.9f
|
||||
v.scaleY = 0.9f
|
||||
}
|
||||
android.view.MotionEvent.ACTION_UP, android.view.MotionEvent.ACTION_CANCEL -> {
|
||||
v.scaleX = 1.0f
|
||||
v.scaleY = 1.0f
|
||||
}
|
||||
}
|
||||
false
|
||||
}
|
||||
}
|
||||
|
||||
private fun handleDirectionClick(direction: String) {
|
||||
val directionText = when (direction) {
|
||||
"up" -> getString(R.string.direction_up)
|
||||
"down" -> getString(R.string.direction_down)
|
||||
"left" -> getString(R.string.direction_left)
|
||||
"right" -> getString(R.string.direction_right)
|
||||
else -> ""
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private fun fetchAlarmList(page: Int = 1) {
|
||||
val currentDeviceId = deviceId ?: return
|
||||
Log.d("LiveVideoActivity", "=== 开始请求设备告警日志 ===")
|
||||
Log.d("LiveVideoActivity", "请求参数 - deviceId: $currentDeviceId, page: $page, pageSize: $pageSize")
|
||||
|
||||
isLoading = true
|
||||
lifecycleScope.launch {
|
||||
try {
|
||||
Log.d("LiveVideoActivity", "正在发送网络请求...")
|
||||
val response = RetrofitNetwork.getNetworkService().getDeviceAlarmList(
|
||||
deviceId = currentDeviceId,
|
||||
pageNum = page.toString(),
|
||||
pageSize = pageSize.toString()
|
||||
)
|
||||
|
||||
Log.d("LiveVideoActivity", "请求完成")
|
||||
Log.d("LiveVideoActivity", "完整响应对象: $response")
|
||||
Log.d("LiveVideoActivity", "总条数: ${response.total}, 当前页数据条数: ${response.rows.size}")
|
||||
|
||||
val newData = response.rows
|
||||
if (newData.isEmpty()) {
|
||||
Log.d("LiveVideoActivity", "当前页数据为空列表")
|
||||
} else {
|
||||
Log.d("LiveVideoActivity", "数据示例:")
|
||||
newData.take(3).forEachIndexed { index, item ->
|
||||
Log.d("LiveVideoActivity", " 第${index + 1}条 - id: ${item.id}, categoryName: ${item.categoryName}, createTime: ${item.createTime}")
|
||||
}
|
||||
@@ -234,28 +271,18 @@ class LiveVideoActivity : BaseActivity() {
|
||||
} else {
|
||||
response.total / pageSize + 1
|
||||
}
|
||||
Log.d("LiveVideoActivity", "总页数: $totalPage")
|
||||
|
||||
isFirstLoad = false
|
||||
|
||||
if (page == 1) {
|
||||
alarmList.clear()
|
||||
hasMore = totalPage > 1
|
||||
Log.d("LiveVideoActivity", "第一页,已清空列表")
|
||||
}
|
||||
|
||||
alarmList.addAll(newData)
|
||||
Log.d("LiveVideoActivity", "已添加 ${newData.size} 条数据,列表总条数: ${alarmList.size}")
|
||||
alarmAdapter?.notifyDataSetChanged()
|
||||
Log.d("LiveVideoActivity", "已通知适配器刷新")
|
||||
|
||||
} catch (e: Exception) {
|
||||
Log.e("LiveVideoActivity", "请求异常: ${e.message}", e)
|
||||
hasMore = false
|
||||
} finally {
|
||||
isLoading = false
|
||||
Log.d("LiveVideoActivity", "请求结束,isLoading: $isLoading")
|
||||
Log.d("LiveVideoActivity", "=== 请求结束 ===")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Before Width: | Height: | Size: 5.8 KiB |
BIN
app/src/main/res/drawable/down.png
Normal file
|
After Width: | Height: | Size: 3.0 KiB |
BIN
app/src/main/res/drawable/down2.png
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
app/src/main/res/drawable/left.png
Normal file
|
After Width: | Height: | Size: 3.6 KiB |
BIN
app/src/main/res/drawable/left2.png
Normal file
|
After Width: | Height: | Size: 3.7 KiB |
BIN
app/src/main/res/drawable/right.png
Normal file
|
After Width: | Height: | Size: 3.6 KiB |
BIN
app/src/main/res/drawable/right2.png
Normal file
|
After Width: | Height: | Size: 3.6 KiB |
BIN
app/src/main/res/drawable/up.png
Normal file
|
After Width: | Height: | Size: 3.0 KiB |
BIN
app/src/main/res/drawable/up2.png
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
@@ -144,12 +144,65 @@
|
||||
android:orientation="vertical"
|
||||
android:visibility="gone">
|
||||
|
||||
<!-- 控制台图片 -->
|
||||
<!-- 圆形控制台 -->
|
||||
<RelativeLayout
|
||||
android:layout_width="200dp"
|
||||
android:layout_height="200dp">
|
||||
|
||||
<!-- 圆形背景 -->
|
||||
<ImageView
|
||||
android:id="@+id/ivConsole"
|
||||
android:layout_width="160dp"
|
||||
android:layout_height="160dp"
|
||||
android:src="@drawable/console" />
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
|
||||
<!-- 上按钮 -->
|
||||
<ImageView
|
||||
android:id="@+id/ivUp"
|
||||
android:layout_width="108dp"
|
||||
android:layout_height="108dp"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:layout_marginTop="8dp"
|
||||
android:src="@drawable/selector_up"
|
||||
android:clickable="true"
|
||||
android:focusable="true" />
|
||||
|
||||
<!-- 下按钮 -->
|
||||
<ImageView
|
||||
android:id="@+id/ivDown"
|
||||
android:layout_width="108dp"
|
||||
android:layout_height="108dp"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:src="@drawable/selector_down"
|
||||
android:clickable="true"
|
||||
android:focusable="true" />
|
||||
|
||||
<!-- 左按钮 -->
|
||||
<ImageView
|
||||
android:id="@+id/ivLeft"
|
||||
android:layout_width="108dp"
|
||||
android:layout_height="108dp"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_centerVertical="true"
|
||||
android:layout_marginLeft="8dp"
|
||||
android:src="@drawable/selector_left"
|
||||
android:clickable="true"
|
||||
android:focusable="true" />
|
||||
|
||||
<!-- 右按钮 -->
|
||||
<ImageView
|
||||
android:id="@+id/ivRight"
|
||||
android:layout_width="108dp"
|
||||
android:layout_height="108dp"
|
||||
android:layout_alignParentRight="true"
|
||||
android:layout_centerVertical="true"
|
||||
android:layout_marginRight="8dp"
|
||||
android:src="@drawable/selector_right"
|
||||
android:clickable="true"
|
||||
android:focusable="true" />
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
@@ -477,4 +477,10 @@
|
||||
<string name="max_add_11_users">A maximum of 11 users can be added</string>
|
||||
<string name="linked_user_phone_label">Phone: %s</string>
|
||||
<string name="linked_user_idcard_label">ID: %s</string>
|
||||
|
||||
<!-- Direction Control -->
|
||||
<string name="direction_up">Move Up</string>
|
||||
<string name="direction_down">Move Down</string>
|
||||
<string name="direction_left">Move Left</string>
|
||||
<string name="direction_right">Move Right</string>
|
||||
</resources>
|
||||