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