diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 579012e..7c9c9c0 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -82,7 +82,7 @@
android:name=".ui.SprayingActivity"
android:exported="false" />
() {
- override fun fullscreen(): Boolean = true
- override fun getLayoutId(): Int = R.layout.activity_main
-
- private val vm: MainVM by viewModels()
-
- override fun initView(savedInstanceState: Bundle?) {
- super.initView(savedInstanceState)
-
-
- }
-
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/nova/brain/glass/ui/ReviewActivity.kt b/app/src/main/java/com/nova/brain/glass/ui/ReviewActivity.kt
index 28fce33..53b7585 100644
--- a/app/src/main/java/com/nova/brain/glass/ui/ReviewActivity.kt
+++ b/app/src/main/java/com/nova/brain/glass/ui/ReviewActivity.kt
@@ -37,6 +37,7 @@ class ReviewActivity : BaseListFormLayoutNormalActivity() {
+class SprayingActivity :
+ BaseListFormLayoutNormalActivity() {
override fun getLayoutId(): Int = R.layout.activity_spraying
override fun fullscreen(): Boolean = true
@@ -26,28 +36,91 @@ class SprayingActivity : BaseListFormLayoutNormalActivity {
finish()
}
+
+ "开始", "拍照", "开始拍照", "开始任务" -> {
+ runOnUiThread {
+ binding.hint.text = "拍照中,请稍后..."
+ }
+ isPhoto = true
+ takePhoto()
+ }
}
}
}
+
+ }
+
+ fun takePhoto() {
+ val fileName = "test_${System.currentTimeMillis()}.png"
+ val publicPicturesDir =
+ Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)
+ val file = File(publicPicturesDir, fileName)
+ GlassSdk.getGlassMediaService()
+ ?.takePhoto(PhotoResolution.RESOLUTION_480P, file.absolutePath)
+ }
+
+ private val photoCallbackId = UUID.randomUUID().toString()
+
+ private val mPhotoFileCallback = object : PhotoFileCallback.Stub() {
+ override fun onTakePhoto(path: String) {
+ LogHelper.d("onTakePhoto-->path = $path")
+ }
+
+ override fun getCallbackId(): String {
+ return photoCallbackId
+ }
+
+ override fun onTakePhotoV2(path: String?, width: Int, height: Int) {
+ LogHelper.d("width:$width--height:$height")
+ if (path == null) {
+ if (isPhoto) {
+ isPhoto = false
+ takePhoto()
+ } else {
+ runOnUiThread {
+ binding.hint.text = "单击或语音输入“开始”,进入下一步"
+ }
+ "相机异常".showMessage()
+ }
+ } else {
+ startActivity(Intent(this@SprayingActivity, SprayingOCRActivity::class.java).apply {
+ putExtra("path", path)
+ })
+ finish()
+// runOnUiThread {
+// binding.hint.text = "单击或语音输入“开始”,进入下一步"
+// binding.iv.setImageBitmap(BitmapFactory.decodeFile(path))
+// }
+ }
+ }
}
+
override fun initData() {
super.initData()
+ window.addFlags(android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
OfflineCmdServiceHelper.addOnLineListener(listener)
+ GlassSdk.getGlassMediaService()?.addPhotoCallback(mPhotoFileCallback)
}
override fun onDestroy() {
super.onDestroy()
OfflineCmdServiceHelper.removeOnLineListener(listener)
+ GlassSdk.getGlassMediaService()?.removePhotoCallback(mPhotoFileCallback)
}
+ private var isPhoto = false
private val adapter = object : CommonPagedAdapter(R.layout.item_photo) {
override fun convert(holder: ViewHolder, item: ItemItem, position: Int) {
holder
.setClickListener(R.id.photo) {
when (item.text) {
"拍照" -> {
-
+ runOnUiThread {
+ binding.hint.text = "拍照中,请稍后..."
+ }
+ isPhoto = true
+ takePhoto()
}
}
}
diff --git a/app/src/main/java/com/nova/brain/glass/ui/SprayingOCRActivity.kt b/app/src/main/java/com/nova/brain/glass/ui/SprayingOCRActivity.kt
new file mode 100644
index 0000000..fd65ae8
--- /dev/null
+++ b/app/src/main/java/com/nova/brain/glass/ui/SprayingOCRActivity.kt
@@ -0,0 +1,129 @@
+package com.nova.brain.glass.ui
+
+import android.R.attr.path
+import android.graphics.BitmapFactory
+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
+import com.nova.brain.glass.model.ItemItem
+import com.nova.brain.glass.viewmodel.SprayingVM
+import com.rokid.security.glass3.open.sdk.GlassSdk
+import com.rokid.security.glass3.sdk.base.data.media.PhotoResolution
+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
+import java.io.File
+import java.util.UUID
+
+class SprayingOCRActivity :
+ BaseListFormLayoutNormalActivity() {
+ override fun getLayoutId(): Int = R.layout.activity_spraying_ocr
+ override fun fullscreen(): Boolean = true
+
+ override fun getRecyclerOrientation(): Int = RecyclerView.VERTICAL
+
+ private val listener = object : OfflineCmdListener {
+ override fun onOfflineCmd(cmd: String) {
+ runOnUiThread {
+ when (cmd) {
+ "退出", "返回", "退回" -> {
+ finish()
+ }
+ "开始", "拍照", "开始拍照", "开始任务", "重拍", "重新拍", "在拍一次" -> {
+ runOnUiThread {
+ binding.hint.text = "拍照中,请稍后..."
+ }
+ isPhoto = true
+ takePhoto()
+ }
+ }
+ }
+ }
+
+ }
+
+ fun takePhoto() {
+ val fileName = "test_${System.currentTimeMillis()}.png"
+ val publicPicturesDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)
+ val file = File(publicPicturesDir, fileName)
+ GlassSdk.getGlassMediaService()?.takePhoto(PhotoResolution.RESOLUTION_480P, file.absolutePath)
+ }
+ private val photoCallbackId = UUID.randomUUID().toString()
+
+ private val mPhotoFileCallback = object : PhotoFileCallback.Stub() {
+ override fun onTakePhoto(path: String) {
+ LogHelper.d("onTakePhoto-->path = $path")
+ }
+
+ override fun getCallbackId(): String {
+ return photoCallbackId
+ }
+
+ override fun onTakePhotoV2(path: String?, width: Int, height: Int) {
+ LogHelper.d("width:$width--height:$height")
+ if (path == null) {
+ if (isPhoto) {
+ isPhoto = false
+ takePhoto()
+ } else {
+ runOnUiThread {
+ binding.hint.text = "单击或语音输入“重拍”,可重新拍摄"
+ }
+ "相机异常".showMessage()
+ }
+ } else {
+ runOnUiThread {
+ binding.hint.text = "单击或语音输入“重拍”,可重新拍摄"
+ binding.content.setImageBitmap(BitmapFactory.decodeFile(path))
+ }
+ }
+ }
+ }
+
+
+ override fun initData() {
+ super.initData()
+ window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
+ OfflineCmdServiceHelper.addOnLineListener(listener)
+ GlassSdk.getGlassMediaService()?.addPhotoCallback(mPhotoFileCallback)
+ intent.getStringExtra("path")?.apply {
+ binding.content.setImageBitmap(BitmapFactory.decodeFile(this))
+ }
+ }
+
+ override fun onDestroy() {
+ super.onDestroy()
+ OfflineCmdServiceHelper.removeOnLineListener(listener)
+ GlassSdk.getGlassMediaService()?.removePhotoCallback(mPhotoFileCallback)
+ }
+
+ private var isPhoto = false
+ private val adapter = object : CommonPagedAdapter(R.layout.item_photo) {
+ override fun convert(holder: ViewHolder, item: ItemItem, position: Int) {
+ holder
+ .setClickListener(R.id.photo) {
+ when (item.text) {
+ "拍照" -> {
+ runOnUiThread {
+ binding.hint.text = "拍照中,请稍后..."
+ }
+ isPhoto = true
+ takePhoto()
+ }
+ }
+ }
+ }
+ }
+
+ override fun adapter(): BasePagedAdapter = adapter
+}
diff --git a/app/src/main/java/com/nova/brain/glass/ui/WelcomeActivity.kt b/app/src/main/java/com/nova/brain/glass/ui/WelcomeActivity.kt
index 79681c3..6b58cfa 100644
--- a/app/src/main/java/com/nova/brain/glass/ui/WelcomeActivity.kt
+++ b/app/src/main/java/com/nova/brain/glass/ui/WelcomeActivity.kt
@@ -39,13 +39,11 @@ class WelcomeActivity : BaseActivity() {
override fun onResume() {
super.onResume()
- LogHelper.d(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
OfflineCmdServiceHelper.addOnLineListener(offlineCmdListener)
}
override fun onPause() {
super.onPause()
- LogHelper.d("---------------------------")
OfflineCmdServiceHelper.removeOnLineListener(offlineCmdListener)
}
diff --git a/app/src/main/res/layout/activity_spraying.xml b/app/src/main/res/layout/activity_spraying.xml
index 22d1805..d6fd41c 100644
--- a/app/src/main/res/layout/activity_spraying.xml
+++ b/app/src/main/res/layout/activity_spraying.xml
@@ -94,6 +94,7 @@
+
diff --git a/app/src/main/res/layout/activity_spraying_ocr.xml b/app/src/main/res/layout/activity_spraying_ocr.xml
new file mode 100644
index 0000000..0070e4b
--- /dev/null
+++ b/app/src/main/res/layout/activity_spraying_ocr.xml
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_welcome.xml b/app/src/main/res/layout/activity_welcome.xml
index 59ec4b3..49e9707 100644
--- a/app/src/main/res/layout/activity_welcome.xml
+++ b/app/src/main/res/layout/activity_welcome.xml
@@ -8,18 +8,13 @@
android:id="@+id/tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:background="@color/app_color_black"
- android:layout_alignParentTop="true"
android:textColor="#ff3FFF5F"
android:textSize="19sp"
android:text="您可以说:Nova,我的任务有哪些?"
- android:fontFamily="Source Han Sans"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
- android:gravity="left|top"
- android:alpha="1"
/>