feat(ocr): 添加拍照结果倒计时跳转功能
- 在SprayingOCRActivity中新增CountDownTimer实现10秒后自动跳转到结果页面 - 添加showPhoto方法统一处理照片显示逻辑 - 添加restartResultCountdown方法管理倒计时定时器 - 优化SprayingResultActivity中的图片加载时机 - 更新布局文件调整ImageView尺寸和间距 - 在AndroidManifest.xml中注册SprayingResultActivity并调整设计高度 - 移除不再使用的FileHelper依赖和相关导入包 - 完善倒计时取消机制防止内存泄漏
这个提交包含在:
父节点
afe5eeb017
当前提交
53b5be8ec4
@ -84,6 +84,9 @@
|
||||
<activity
|
||||
android:name=".ui.SprayingOCRActivity"
|
||||
android:exported="false" />
|
||||
<activity
|
||||
android:name=".ui.SprayingResultActivity"
|
||||
android:exported="false" />
|
||||
<activity
|
||||
android:name=".ui.WelcomeActivity"
|
||||
android:exported="true"
|
||||
@ -110,7 +113,7 @@
|
||||
android:value="480" />
|
||||
<meta-data
|
||||
android:name="design_height_in_dp"
|
||||
android:value="600" />
|
||||
android:value="640" />
|
||||
</application>
|
||||
|
||||
</manifest>
|
||||
|
||||
@ -1,12 +1,12 @@
|
||||
package com.nova.brain.glass.ui
|
||||
|
||||
import android.R.attr.path
|
||||
import android.content.Intent
|
||||
import android.graphics.BitmapFactory
|
||||
import android.os.CountDownTimer
|
||||
import android.os.Environment
|
||||
import android.view.WindowManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.nova.brain.glass.R
|
||||
import com.nova.brain.glass.databinding.ActivitySprayingBinding
|
||||
import com.nova.brain.glass.databinding.ActivitySprayingOcrBinding
|
||||
import com.nova.brain.glass.helper.OfflineCmdListener
|
||||
import com.nova.brain.glass.helper.OfflineCmdServiceHelper
|
||||
@ -18,7 +18,6 @@ import com.rokid.security.system.server.media.callback.PhotoFileCallback
|
||||
import com.xuqm.base.adapter.BasePagedAdapter
|
||||
import com.xuqm.base.adapter.CommonPagedAdapter
|
||||
import com.xuqm.base.adapter.ViewHolder
|
||||
import com.xuqm.base.common.FileHelper
|
||||
import com.xuqm.base.common.LogHelper
|
||||
import com.xuqm.base.extensions.showMessage
|
||||
import com.xuqm.base.ui.BaseListFormLayoutNormalActivity
|
||||
@ -59,6 +58,7 @@ class SprayingOCRActivity :
|
||||
GlassSdk.getGlassMediaService()?.takePhoto(PhotoResolution.RESOLUTION_480P, file.absolutePath)
|
||||
}
|
||||
private val photoCallbackId = UUID.randomUUID().toString()
|
||||
private var resultCountdown: CountDownTimer? = null
|
||||
|
||||
private val mPhotoFileCallback = object : PhotoFileCallback.Stub() {
|
||||
override fun onTakePhoto(path: String) {
|
||||
@ -84,7 +84,7 @@ class SprayingOCRActivity :
|
||||
} else {
|
||||
runOnUiThread {
|
||||
binding.hint.text = "单击或语音输入“重拍”,可重新拍摄"
|
||||
binding.content.setImageBitmap(BitmapFactory.decodeFile(path))
|
||||
showPhoto(path)
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -97,12 +97,13 @@ class SprayingOCRActivity :
|
||||
OfflineCmdServiceHelper.addOnLineListener(listener)
|
||||
GlassSdk.getGlassMediaService()?.addPhotoCallback(mPhotoFileCallback)
|
||||
intent.getStringExtra("path")?.apply {
|
||||
binding.content.setImageBitmap(BitmapFactory.decodeFile(this))
|
||||
showPhoto(this)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
super.onDestroy()
|
||||
resultCountdown?.cancel()
|
||||
OfflineCmdServiceHelper.removeOnLineListener(listener)
|
||||
GlassSdk.getGlassMediaService()?.removePhotoCallback(mPhotoFileCallback)
|
||||
}
|
||||
@ -126,4 +127,23 @@ class SprayingOCRActivity :
|
||||
}
|
||||
|
||||
override fun adapter(): BasePagedAdapter<ItemItem> = adapter
|
||||
|
||||
private fun showPhoto(path: String) {
|
||||
binding.content.setImageBitmap(BitmapFactory.decodeFile(path))
|
||||
restartResultCountdown(path)
|
||||
}
|
||||
|
||||
private fun restartResultCountdown(path: String) {
|
||||
resultCountdown?.cancel()
|
||||
resultCountdown = object : CountDownTimer(10_000, 1_000) {
|
||||
override fun onTick(millisUntilFinished: Long) {
|
||||
}
|
||||
|
||||
override fun onFinish() {
|
||||
startActivity(Intent(this@SprayingOCRActivity, SprayingResultActivity::class.java).apply {
|
||||
putExtra("path", path)
|
||||
})
|
||||
}
|
||||
}.start()
|
||||
}
|
||||
}
|
||||
|
||||
@ -89,10 +89,6 @@ class SprayingResultActivity :
|
||||
putExtra("path", path)
|
||||
})
|
||||
finish()
|
||||
// runOnUiThread {
|
||||
// binding.hint.text = "单击或语音输入“开始”,进入下一步"
|
||||
// binding.iv.setImageBitmap(BitmapFactory.decodeFile(path))
|
||||
// }
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -103,15 +99,15 @@ class SprayingResultActivity :
|
||||
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
|
||||
OfflineCmdServiceHelper.addOnLineListener(listener)
|
||||
GlassSdk.getGlassMediaService()?.addPhotoCallback(mPhotoFileCallback)
|
||||
intent.getStringExtra("path")?.apply {
|
||||
binding.iv.setImageBitmap(BitmapFactory.decodeFile(this))
|
||||
}
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
super.onDestroy()
|
||||
OfflineCmdServiceHelper.removeOnLineListener(listener)
|
||||
GlassSdk.getGlassMediaService()?.removePhotoCallback(mPhotoFileCallback)
|
||||
intent.getStringExtra("path")?.apply {
|
||||
binding.iv.setImageBitmap(BitmapFactory.decodeFile(this))
|
||||
}
|
||||
}
|
||||
|
||||
private var isPhoto = false
|
||||
|
||||
@ -25,7 +25,7 @@
|
||||
<ImageView
|
||||
android:layout_width="120dp"
|
||||
android:id="@+id/content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_height="150dp"
|
||||
android:layout_marginTop="12dp"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
|
||||
@ -46,6 +46,7 @@
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv"
|
||||
android:padding="2dp"
|
||||
android:layout_width="120dp"
|
||||
android:layout_height="150dp"
|
||||
android:layout_marginStart="10dp"
|
||||
|
||||
正在加载...
在新工单中引用
屏蔽一个用户