From defcfb66fbf5491d4ca2767e225db62878740917 Mon Sep 17 00:00:00 2001 From: qiji4215 Date: Fri, 28 Apr 2023 16:16:17 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=AF=AD=E9=9F=B3?= =?UTF-8?q?=E9=83=A8=E5=88=86=E4=B8=9A=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/AndroidManifest.xml | 1 + .../main/java/com/navinfo/omqs/Constant.kt | 7 + .../java/com/navinfo/omqs/bean/Attachment.kt | 43 ++++ .../com/navinfo/omqs/bean/ChatMsgEntity.kt | 23 ++ .../ui/activity/CheckPermissionsActivity.java | 2 + .../omqs/ui/activity/login/LoginViewModel.kt | 5 + .../omqs/ui/activity/map/MainActivity.kt | 42 ++- .../omqs/ui/activity/map/MainViewModel.kt | 136 +++++++++- .../EvaluationResultFragment.kt | 15 +- .../EvaluationResultViewModel.kt | 29 ++- .../evaluationresult/SoundtListAdapter.kt | 241 ++++++++++++++++++ .../ui/fragment/tasklist/TaskListAdapter.kt | 2 +- .../com/navinfo/omqs/util/SoundMeter.java | 161 ++++++++++++ .../navinfo/omqs/util/SoundRecordeUtils.java | 129 ++++++++++ .../java/com/navinfo/omqs/util/SpeakMode.java | 149 +++++++++++ app/src/main/res/color/font_blue_reg.xml | 6 + .../res/drawable-hdpi/rcd_cancel_icon.png | Bin 0 -> 2713 bytes .../voice_rcd_cancel_bg_focused.png | Bin 0 -> 2678 bytes .../res/drawable-hdpi/voice_rcd_hint_bg.9.png | Bin 0 -> 308 bytes .../main/res/drawable-hdpi/voice_to_short.png | Bin 0 -> 1010 bytes app/src/main/res/drawable-xhdpi/amp1.png | Bin 0 -> 22757 bytes app/src/main/res/drawable-xhdpi/amp2.png | Bin 0 -> 22835 bytes app/src/main/res/drawable-xhdpi/amp3.png | Bin 0 -> 22894 bytes app/src/main/res/drawable-xhdpi/amp4.png | Bin 0 -> 22995 bytes app/src/main/res/drawable-xhdpi/amp5.png | Bin 0 -> 23069 bytes app/src/main/res/drawable-xhdpi/amp6.png | Bin 0 -> 23149 bytes app/src/main/res/drawable-xhdpi/amp7.png | Bin 0 -> 23227 bytes .../main/res/drawable-xhdpi/icon_sound_01.png | Bin 0 -> 17868 bytes .../main/res/drawable-xhdpi/icon_sound_02.png | Bin 0 -> 18116 bytes .../main/res/drawable-xhdpi/icon_sound_03.png | Bin 0 -> 18642 bytes app/src/main/res/drawable-xxhdpi/amp1.png | Bin 0 -> 22757 bytes app/src/main/res/drawable-xxhdpi/amp2.png | Bin 0 -> 22835 bytes app/src/main/res/drawable-xxhdpi/amp3.png | Bin 0 -> 22894 bytes app/src/main/res/drawable-xxhdpi/amp4.png | Bin 0 -> 22995 bytes app/src/main/res/drawable-xxhdpi/amp5.png | Bin 0 -> 23069 bytes app/src/main/res/drawable-xxhdpi/amp6.png | Bin 0 -> 23149 bytes app/src/main/res/drawable-xxhdpi/amp7.png | Bin 0 -> 23227 bytes .../res/drawable-xxhdpi/icon_sound_01.png | Bin 0 -> 17868 bytes .../res/drawable-xxhdpi/icon_sound_02.png | Bin 0 -> 18116 bytes .../res/drawable-xxhdpi/icon_sound_03.png | Bin 0 -> 18642 bytes .../main/res/drawable/bg_select_sound_xml.xml | 6 + ...awable_bg_blue_frame_black_bg_4_radius.xml | 17 ++ .../drawable/icon_select_sound_defaule.9.png | Bin 0 -> 67532 bytes .../drawable/icon_select_sound_press.9.png | Bin 0 -> 66754 bytes app/src/main/res/drawable/pop_voice_img.xml | 13 + app/src/main/res/drawable/sound_anim.xml | 7 + app/src/main/res/layout/activity_main.xml | 1 - .../main/res/layout/adapter_sound_list.xml | 45 ++++ .../cv_card_chatting_item_msg_text_left.xml | 41 +++ .../layout/cv_card_voice_rcd_hint_window.xml | 83 ++++++ .../res/layout/fragment_evaluation_result.xml | 8 +- .../library/data/dao/impl/INiLocationDao.java | 3 + .../library/data/entity/QsRecordBean.kt | 4 + .../MapLifeNiLocationTileDataSource.java | 3 +- 54 files changed, 1203 insertions(+), 19 deletions(-) create mode 100644 app/src/main/java/com/navinfo/omqs/bean/Attachment.kt create mode 100644 app/src/main/java/com/navinfo/omqs/bean/ChatMsgEntity.kt create mode 100644 app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/SoundtListAdapter.kt create mode 100644 app/src/main/java/com/navinfo/omqs/util/SoundMeter.java create mode 100644 app/src/main/java/com/navinfo/omqs/util/SoundRecordeUtils.java create mode 100644 app/src/main/java/com/navinfo/omqs/util/SpeakMode.java create mode 100644 app/src/main/res/color/font_blue_reg.xml create mode 100644 app/src/main/res/drawable-hdpi/rcd_cancel_icon.png create mode 100644 app/src/main/res/drawable-hdpi/voice_rcd_cancel_bg_focused.png create mode 100644 app/src/main/res/drawable-hdpi/voice_rcd_hint_bg.9.png create mode 100644 app/src/main/res/drawable-hdpi/voice_to_short.png create mode 100644 app/src/main/res/drawable-xhdpi/amp1.png create mode 100644 app/src/main/res/drawable-xhdpi/amp2.png create mode 100644 app/src/main/res/drawable-xhdpi/amp3.png create mode 100644 app/src/main/res/drawable-xhdpi/amp4.png create mode 100644 app/src/main/res/drawable-xhdpi/amp5.png create mode 100644 app/src/main/res/drawable-xhdpi/amp6.png create mode 100644 app/src/main/res/drawable-xhdpi/amp7.png create mode 100644 app/src/main/res/drawable-xhdpi/icon_sound_01.png create mode 100644 app/src/main/res/drawable-xhdpi/icon_sound_02.png create mode 100644 app/src/main/res/drawable-xhdpi/icon_sound_03.png create mode 100644 app/src/main/res/drawable-xxhdpi/amp1.png create mode 100644 app/src/main/res/drawable-xxhdpi/amp2.png create mode 100644 app/src/main/res/drawable-xxhdpi/amp3.png create mode 100644 app/src/main/res/drawable-xxhdpi/amp4.png create mode 100644 app/src/main/res/drawable-xxhdpi/amp5.png create mode 100644 app/src/main/res/drawable-xxhdpi/amp6.png create mode 100644 app/src/main/res/drawable-xxhdpi/amp7.png create mode 100644 app/src/main/res/drawable-xxhdpi/icon_sound_01.png create mode 100644 app/src/main/res/drawable-xxhdpi/icon_sound_02.png create mode 100644 app/src/main/res/drawable-xxhdpi/icon_sound_03.png create mode 100644 app/src/main/res/drawable/bg_select_sound_xml.xml create mode 100644 app/src/main/res/drawable/drawable_bg_blue_frame_black_bg_4_radius.xml create mode 100644 app/src/main/res/drawable/icon_select_sound_defaule.9.png create mode 100644 app/src/main/res/drawable/icon_select_sound_press.9.png create mode 100644 app/src/main/res/drawable/pop_voice_img.xml create mode 100644 app/src/main/res/drawable/sound_anim.xml create mode 100644 app/src/main/res/layout/adapter_sound_list.xml create mode 100644 app/src/main/res/layout/cv_card_chatting_item_msg_text_left.xml create mode 100644 app/src/main/res/layout/cv_card_voice_rcd_hint_window.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index ee25edab..53e768a9 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -29,6 +29,7 @@ + () + const val message_status_late = "预约,待发送" const val message_status_send_over = "已发送" const val message_version_right_off = "1" //立即发送 diff --git a/app/src/main/java/com/navinfo/omqs/bean/Attachment.kt b/app/src/main/java/com/navinfo/omqs/bean/Attachment.kt new file mode 100644 index 00000000..11088a69 --- /dev/null +++ b/app/src/main/java/com/navinfo/omqs/bean/Attachment.kt @@ -0,0 +1,43 @@ +package com.navinfo.omqs.bean + +import java.io.Serializable +import java.util.* + +class Attachment(filename: String, type: Int) : Serializable, + Cloneable { + //内容 + var filename: String = "" + + //标识 默认照片0 录音1 + var type: Int + + override fun toString(): String { + return "TipsAttachment{" + + "filename='" + filename + '\'' + + ", type=" + type + + '}' + } + + override fun equals(o: Any?): Boolean { + if (this === o) return true + if (o == null || javaClass != o.javaClass) return false + val that = o as Attachment + return type == that.type && + filename == that.filename + } + + override fun hashCode(): Int { + return Objects.hash(filename, type) + } + + @kotlin.Throws(CloneNotSupportedException::class) + public override fun clone(): Any { + return super.clone() + } + + init { + this.filename = filename + this.type = type + } +} + diff --git a/app/src/main/java/com/navinfo/omqs/bean/ChatMsgEntity.kt b/app/src/main/java/com/navinfo/omqs/bean/ChatMsgEntity.kt new file mode 100644 index 00000000..1a6f4548 --- /dev/null +++ b/app/src/main/java/com/navinfo/omqs/bean/ChatMsgEntity.kt @@ -0,0 +1,23 @@ +package com.navinfo.omqs.bean + +import java.io.Serializable + +class ChatMsgEntity : Serializable, Cloneable { + var voiceUri //声音存储地址 + : String? = null + var voiceTimeLong //声音时间长度 + : String? = null + var name //声音名字 + : String? = null + var isDelete //是否被删除 + = false + + @kotlin.Throws(CloneNotSupportedException::class) + public override fun clone(): Any { + return super.clone() + } + + companion object { + private val TAG: String = ChatMsgEntity::class.java.getSimpleName() + } +} diff --git a/app/src/main/java/com/navinfo/omqs/ui/activity/CheckPermissionsActivity.java b/app/src/main/java/com/navinfo/omqs/ui/activity/CheckPermissionsActivity.java index be35ad09..6690ea72 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/activity/CheckPermissionsActivity.java +++ b/app/src/main/java/com/navinfo/omqs/ui/activity/CheckPermissionsActivity.java @@ -37,6 +37,7 @@ public class CheckPermissionsActivity extends BaseActivity { Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE, + Manifest.permission.RECORD_AUDIO }; private static final int PERMISSON_REQUESTCODE = 0; @@ -51,6 +52,7 @@ public class CheckPermissionsActivity extends BaseActivity { Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE, + Manifest.permission.RECORD_AUDIO, BACKGROUND_LOCATION_PERMISSION }; } diff --git a/app/src/main/java/com/navinfo/omqs/ui/activity/login/LoginViewModel.kt b/app/src/main/java/com/navinfo/omqs/ui/activity/login/LoginViewModel.kt index 94d4f611..1b054ca1 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/activity/login/LoginViewModel.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/activity/login/LoginViewModel.kt @@ -156,12 +156,17 @@ class LoginViewModel @Inject constructor( * 创建用户目录 */ private fun createUserFolder(context: Context, userId: String) { + Constant.IS_VIDEO_SPEED = false Constant.USER_ID = userId Constant.VERSION_ID = userId Constant.USER_DATA_PATH = Constant.DATA_PATH + Constant.USER_ID + "/" + Constant.VERSION_ID + Constant.USER_DATA_ATTACHEMNT_PATH = Constant.USER_DATA_PATH + "/attachment/" // 在SD卡创建用户目录,解压资源等 val userFolder = File(Constant.USER_DATA_PATH) if (!userFolder.exists()) userFolder.mkdirs() + //创建附件目录 + val userAttachmentFolder = File(Constant.USER_DATA_ATTACHEMNT_PATH) + if (!userAttachmentFolder.exists()) userAttachmentFolder.mkdirs() // 初始化Realm Realm.init(context.applicationContext) val password = "encryp".encodeToByteArray().copyInto(ByteArray(64)) diff --git a/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainActivity.kt b/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainActivity.kt index 44732ade..cb0a6eb3 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainActivity.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainActivity.kt @@ -1,7 +1,12 @@ package com.navinfo.omqs.ui.activity.map +import android.os.Build import android.os.Bundle +import android.util.Log +import android.view.MotionEvent +import android.view.View import androidx.activity.viewModels +import androidx.annotation.RequiresApi import androidx.core.view.WindowCompat import androidx.databinding.DataBindingUtil import androidx.navigation.findNavController @@ -52,6 +57,26 @@ class MainActivity : BaseActivity() { //给xml传递viewModel对象 binding.viewModel = viewModel + binding.mainActivityVoice.setOnTouchListener(object : View.OnTouchListener { + @RequiresApi(Build.VERSION_CODES.Q) + override fun onTouch(v: View?, event: MotionEvent?): Boolean { + Log.e("qj",event?.action.toString()) + when (event?.action) { + MotionEvent.ACTION_DOWN ->{ + voiceOnTouchStart()//Do Something + Log.e("qj","voiceOnTouchStart") + } + MotionEvent.ACTION_UP ->{ + voiceOnTouchStop()//Do Something + Log.e("qj","voiceOnTouchStop") + } + } + + + return v?.onTouchEvent(event) ?: true + } + }) + viewModel.liveDataQsRecordIdList.observe(this) { //处理页面跳转 viewModel.navigation(this, it) @@ -68,8 +93,8 @@ class MainActivity : BaseActivity() { mapController.locationLayerHandler.setNiLocationListener(NiLocationListener { //ToastUtils.showLong("定位${it.longitude}") binding!!.viewModel!!.addSaveTrace(it) - binding!!.viewModel!!.startSaveTraceThread(this) }) + binding!!.viewModel!!.startSaveTraceThread(this) //显示轨迹图层 // mapController.layerManagerHandler.showNiLocationLayer(Constant.DATA_PATH+ SystemConstant.USER_ID+"/trace.sqlite") mapController.layerManagerHandler.showNiLocationLayer() @@ -110,8 +135,19 @@ class MainActivity : BaseActivity() { * 点击录音按钮 */ fun voiceOnclick() { - val naviController = findNavController(R.id.main_activity_right_fragment) - naviController.navigate(R.id.EvaluationResultFragment) +/* val naviController = findNavController(R.id.main_activity_right_fragment) + naviController.navigate(R.id.EvaluationResultFragment)*/ + } + + fun voiceOnTouchStart(){ + binding!!.viewModel!!.startSoundMetter(this,mapController.locationLayerHandler.getCurrentNiLocation(),binding.mainActivityVoice) + } + + @RequiresApi(Build.VERSION_CODES.Q) + fun voiceOnTouchStop(){ + if(Constant.IS_VIDEO_SPEED){ + binding!!.viewModel!!.stopSoundMeter() + } } // override fun onBackPressed() { diff --git a/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainViewModel.kt b/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainViewModel.kt index e1bc8b5f..8447afb9 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainViewModel.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainViewModel.kt @@ -1,12 +1,24 @@ package com.navinfo.omqs.ui.activity.map +import android.app.Activity import android.content.Context import android.content.DialogInterface +import android.graphics.drawable.AnimationDrawable +import android.graphics.drawable.BitmapDrawable +import android.os.Build import android.os.Bundle +import android.text.TextUtils import android.util.Log +import android.view.Gravity +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.PopupWindow +import androidx.annotation.RequiresApi import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.navigation.findNavController +import com.blankj.utilcode.util.ToastUtils import com.navinfo.collect.library.data.dao.impl.TraceDataBase import com.navinfo.collect.library.data.entity.NiLocation import com.navinfo.collect.library.map.NIMapController @@ -17,10 +29,15 @@ import com.navinfo.omqs.Constant import com.navinfo.omqs.R import com.navinfo.omqs.ui.dialog.CommonDialog import com.navinfo.omqs.ui.manager.TakePhotoManager +import com.navinfo.omqs.util.DateTimeUtil +import com.navinfo.omqs.util.SoundMeter +import com.navinfo.omqs.util.SpeakMode import dagger.hilt.android.lifecycle.HiltViewModel import io.realm.RealmSet import org.oscim.core.GeoPoint import org.videolan.libvlc.LibVlcUtil +import java.io.File +import java.util.* import javax.inject.Inject /** @@ -28,14 +45,23 @@ import javax.inject.Inject */ @HiltViewModel class MainViewModel @Inject constructor( - private val mapController: NIMapController, + private val mapController: NIMapController ) : ViewModel() { val liveDataQsRecordIdList = MutableLiveData>() private var mCameraDialog: CommonDialog? = null + //语音窗体 + private var pop: PopupWindow? = null + + private var mSpeakMode: SpeakMode? = null + private var niLocationList: MutableList = ArrayList() + //录音图标 + var volume: ImageView? = null + var mSoundMeter: SoundMeter? = null + init { mapController.markerHandle.setOnQsRecordItemClickListener(object : OnQsRecordItemClickListener { @@ -43,6 +69,7 @@ class MainViewModel @Inject constructor( liveDataQsRecordIdList.value = list } }) + } /** @@ -61,8 +88,6 @@ class MainViewModel @Inject constructor( Log.e("qj", LibVlcUtil.hasCompatibleCPU(context).toString()) - //ToastUtils.showShort("点击了相机") - if (mCameraDialog == null) { mCameraDialog = CommonDialog( context, @@ -100,11 +125,15 @@ class MainViewModel @Inject constructor( Thread(Runnable { try { while (true) { - if (niLocationList != null && niLocationList.size > 0) { var niLocation = niLocationList[0] - val geometry = GeometryTools.createGeometry(GeoPoint(niLocation.latitude,niLocation.longitude)) + val geometry = GeometryTools.createGeometry( + GeoPoint( + niLocation.latitude, + niLocation.longitude + ) + ) val tileX = RealmSet() GeometryToolsKt.getTileXByGeometry(geometry.toString(), tileX) val tileY = RealmSet() @@ -118,11 +147,16 @@ class MainViewModel @Inject constructor( } } - TraceDataBase.getDatabase(context, Constant.USER_DATA_PATH + "/trace.sqlite").niLocationDao.insert(niLocation) - + TraceDataBase.getDatabase( + context, + Constant.USER_DATA_PATH + "/trace.sqlite" + ).niLocationDao.insert(niLocation) + val list = TraceDataBase.getDatabase( + context, + Constant.USER_DATA_PATH + "/trace.sqlite" + ).niLocationDao.findAll() niLocationList.remove(niLocation) - - Log.e("qj", "saveTrace==${niLocationList.size}") + Log.e("qj", "saveTrace==${niLocationList.size}===${list.size}") } Thread.sleep(30) @@ -141,6 +175,90 @@ class MainViewModel @Inject constructor( } } + fun startSoundMetter(context: Context, niLocation: NiLocation?, v: View) { + if (niLocation == null) { + ToastUtils.showLong("未获取到GPS信息,请检查GPS是否正常!") + //停止录音动画 + if (pop != null && pop!!.isShowing()) + pop!!.dismiss(); + return; + } + + if(mSpeakMode==null){ + mSpeakMode = SpeakMode(context as Activity?) + } + + //语音识别动画 + if (pop == null) { + pop = PopupWindow() + pop!!.width = ViewGroup.LayoutParams.MATCH_PARENT + pop!!.height = ViewGroup.LayoutParams.WRAP_CONTENT + pop!!.setBackgroundDrawable(BitmapDrawable()) + val view = View.inflate(context, R.layout.cv_card_voice_rcd_hint_window, null) + pop!!.contentView = view + volume = view.findViewById(R.id.volume) + } + + pop!!.update() + + Constant.IS_VIDEO_SPEED = true + //录音动画 + //录音动画 + if (pop != null) { + pop!!.showAtLocation(v, Gravity.CENTER, 0, 0) + } + volume!!.setBackgroundResource(R.drawable.pop_voice_img) + val animation = volume!!.background as AnimationDrawable + animation.start() + + val name: String = DateTimeUtil.getTimeSSS().toString() + ".m4a" + if (mSoundMeter == null) { + mSoundMeter = SoundMeter() + } + mSoundMeter!!.setmListener(object : SoundMeter.OnSoundMeterListener { + @RequiresApi(Build.VERSION_CODES.Q) + override fun onSuccess(filePath: String?) { + if (!TextUtils.isEmpty(filePath) && File(filePath).exists()) { + if (File(filePath) == null || File(filePath).length() < 1600) { + ToastUtils.showLong("语音时间太短,无效!") + mSpeakMode!!.speakText("语音时间太短,无效") + stopSoundMeter() + return + } + } + mSpeakMode!!.speakText("结束录音") + //获取右侧fragment容器 + val naviController = (context as Activity).findNavController(R.id.main_activity_right_fragment) + val bundle = Bundle() + bundle.putString("filePath", filePath) + naviController.navigate(R.id.EvaluationResultFragment, bundle) + } + + @RequiresApi(api = Build.VERSION_CODES.Q) + override fun onfaild(message: String?) { + ToastUtils.showLong("录制失败!") + mSpeakMode!!.speakText("录制失败") + stopSoundMeter() + } + }) + + mSoundMeter!!.start(Constant.USER_DATA_ATTACHEMNT_PATH + name) + ToastUtils.showLong("开始录音") + mSpeakMode!!.speakText("开始录音") + } + + //停止语音录制 + @RequiresApi(api = Build.VERSION_CODES.Q) + fun stopSoundMeter() { + //先重置标识,防止按钮抬起时触发语音结束 + Constant.IS_VIDEO_SPEED = false + if (mSoundMeter != null && mSoundMeter!!.isStartSound()) { + mSoundMeter!!.stop() + } + if (pop != null && pop!!.isShowing) pop!!.dismiss() + } + + fun navigation(activity: MainActivity, list: List) { //获取右侧fragment容器 val naviController = activity.findNavController(R.id.main_activity_right_fragment) diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultFragment.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultFragment.kt index 65ca7324..c0ff35a9 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultFragment.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultFragment.kt @@ -7,9 +7,11 @@ import android.view.ViewGroup import androidx.databinding.DataBindingUtil import androidx.navigation.NavOptions import androidx.navigation.findNavController +import androidx.recyclerview.widget.LinearLayoutManager import com.navinfo.omqs.R import com.navinfo.omqs.databinding.FragmentEvaluationResultBinding import com.navinfo.omqs.ui.fragment.BaseFragment +import com.navinfo.omqs.ui.fragment.tasklist.TaskListAdapter import com.navinfo.omqs.ui.other.shareViewModels import dagger.hilt.android.AndroidEntryPoint @@ -17,15 +19,26 @@ import dagger.hilt.android.AndroidEntryPoint class EvaluationResultFragment : BaseFragment(), View.OnClickListener { private lateinit var binding: FragmentEvaluationResultBinding private val viewModel by shareViewModels("QsRecode") - + private val adapter: SoundtListAdapter by lazy { + SoundtListAdapter() + } override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View { binding = DataBindingUtil.inflate(inflater, R.layout.fragment_evaluation_result, container, false) binding.fragment = this + val layoutManager = LinearLayoutManager(context) binding.viewModel = viewModel binding.lifecycleOwner = this + //// 设置 RecyclerView 的固定大小,避免在滚动时重新计算视图大小和布局,提高性能 + binding.evaluationVoiceRecyclerview.setHasFixedSize(true) + binding.evaluationVoiceRecyclerview.layoutManager = layoutManager + binding.evaluationVoiceRecyclerview.adapter = adapter + viewModel.listDataChatMsgEntityList.observe(viewLifecycleOwner) { + adapter.refreshData(it) + } + viewModel.getChatMsgEntityList() return binding.root } diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultViewModel.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultViewModel.kt index f1914053..50233488 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultViewModel.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultViewModel.kt @@ -1,12 +1,17 @@ package com.navinfo.omqs.ui.fragment.evaluationresult +import android.os.Build import android.util.Log +import androidx.annotation.RequiresApi import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.navinfo.collect.library.data.entity.QsRecordBean import com.navinfo.collect.library.map.NIMapController import com.navinfo.collect.library.utils.GeometryTools +import com.navinfo.omqs.Constant +import com.navinfo.omqs.bean.Attachment +import com.navinfo.omqs.bean.ChatMsgEntity import com.navinfo.omqs.db.RealmOperateHelper import com.navinfo.omqs.db.RoomAppDatabase import dagger.hilt.android.lifecycle.HiltViewModel @@ -14,7 +19,6 @@ import io.realm.Realm import io.realm.kotlin.where import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch -import org.locationtech.jts.geom.Point import java.util.* import javax.inject.Inject @@ -47,9 +51,12 @@ class EvaluationResultViewModel @Inject constructor( */ val liveDataRightTypeList = MutableLiveData>() - var liveDataQsRecordBean = MutableLiveData() + var listDataChatMsgEntityList = MutableLiveData>() + + var listDataAttachmentList = MutableLiveData>() + var oldBean: QsRecordBean? = null init { @@ -274,4 +281,22 @@ class EvaluationResultViewModel @Inject constructor( } } } + + /** + * 查询问题类型列表 + */ + @RequiresApi(Build.VERSION_CODES.N) + fun getChatMsgEntityList() { + val chatMsgEntityList: MutableList = ArrayList() + liveDataQsRecordBean.value!!.attachments.forEach{ + //1 录音 + if(it.type==1){ + val chatMsgEntity = ChatMsgEntity() + chatMsgEntity.name = it.filename + chatMsgEntity.voiceUri = Constant.USER_DATA_ATTACHEMNT_PATH + chatMsgEntityList.add(chatMsgEntity) + } + } + listDataChatMsgEntityList.postValue(chatMsgEntityList) + } } \ No newline at end of file diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/SoundtListAdapter.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/SoundtListAdapter.kt new file mode 100644 index 00000000..8b39ef35 --- /dev/null +++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/SoundtListAdapter.kt @@ -0,0 +1,241 @@ +package com.navinfo.omqs.ui.fragment.evaluationresult + +import android.graphics.drawable.AnimationDrawable +import android.media.AudioFormat +import android.media.AudioManager +import android.media.AudioTrack +import android.media.MediaPlayer +import android.text.TextUtils +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import com.navinfo.omqs.R +import com.navinfo.omqs.bean.ChatMsgEntity +import com.navinfo.omqs.databinding.AdapterSoundListBinding +import com.navinfo.omqs.ui.other.BaseRecyclerViewAdapter +import com.navinfo.omqs.ui.other.BaseViewHolder +import java.io.* + +/** + * 语音 RecyclerView 适配器 + * + * 在 RecycleView 的 ViewHolder 中监听 ViewModel 的 LiveData,然后此时传递的 lifecycleOwner 是对应的 Fragment。由于 ViewHolder 的生命周期是比 Fragment 短的,所以当 ViewHolder 销毁时,由于 Fragment 的 Lifecycle 还没有结束,此时 ViewHolder 会发生内存泄露(监听的 LiveData 没有解绑) + * 这种场景下有两种解决办法: + *使用 LiveData 的 observeForever 然后在 ViewHolder 销毁前手动调用 removeObserver + *使用 LifecycleRegistry 给 ViewHolder 分发生命周期(这里使用了这个) + */ +class SoundtListAdapter( +) : BaseRecyclerViewAdapter() { + + //媒体播放器 + private val mMediaPlayer = MediaPlayer() + + //媒体播放器 + private var md: MediaPlayer? = null + + private var mAudioTrack: AudioTrack? = null + + //录音结束后,右侧显示图片 + private var animView: View? = null + + //录音时动画效果 + private var animaV: AnimationDrawable? = null + + private var itemClick: OnItemClickListner? = null + + //最大宽度 + private val maxWidth = 0 + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): BaseViewHolder { + val viewBinding = + AdapterSoundListBinding.inflate(LayoutInflater.from(parent.context), parent, false) + return BaseViewHolder(viewBinding) + } + + override fun onViewRecycled(holder: BaseViewHolder) { + super.onViewRecycled(holder) + + } + + override fun onBindViewHolder(holder: BaseViewHolder, position: Int) { + val binding: AdapterSoundListBinding = + holder.viewBinding as AdapterSoundListBinding + val entity = data[position] + //tag 方便onclick里拿到数据 + holder.tag = entity.name.toString() + holder.viewBinding.tvTime.isSelected = entity.isDelete + holder.viewBinding.rlSoundContent.isSelected = entity.isDelete + holder.viewBinding.ivSoundAnim.setBackgroundResource(R.drawable.icon_sound_03) + if (itemClick != null) { + holder.viewBinding.rlSoundContent.setOnClickListener { + itemClick!!.onItemClick(it.findViewById(R.id.rl_sound_content), position) + } + } + //mixWidth + if (!TextUtils.isEmpty(entity.name)) { + if (entity.name.indexOf(".pcm") > 0) { + val file: File = File(entity.voiceUri + entity.name) + if (file != null) { + val time = (file.length() / 16000).toInt() + val layoutParams: ViewGroup.LayoutParams = + holder.viewBinding.rlSoundContent.getLayoutParams() + layoutParams.width = 115 + time * 10 + layoutParams.width = + if (layoutParams.width > layoutParams.width) maxWidth else layoutParams.width + holder.viewBinding.rlSoundContent.setLayoutParams(layoutParams) + holder.viewBinding.tvTime.text = time.toString() + "\"" + } + } else { + try { + md = MediaPlayer() + md.reset() + md.setDataSource(entity.getVoiceUri() + entity.getName()) + md.prepare() + } catch (e: Exception) { + // TODO Auto-generated catch block + e.printStackTrace() + } + var time = + if (entity.getVoiceTimeLong() == null) md!!.duration.toString() + "" else entity.getVoiceTimeLong() + .toString() + "" + if (!TextUtils.isEmpty(time)) { + val i = md!!.duration / 1000 + time = i.toString() + "\"" + val layoutParams: ViewGroup.LayoutParams = + holder.viewBinding.rlSoundContent.getLayoutParams() + layoutParams.width = 115 + i * 10 + layoutParams.width = + if (layoutParams.width > layoutParams.width) maxWidth else layoutParams.width + holder.viewBinding.rlSoundContent.setLayoutParams(layoutParams) + } + holder.viewBinding.tvTime.text = time + md!!.release() + } + } + + + override fun getItemViewRes(position: Int): Int { + return R.layout.adapter_sound_list + } + + /** + * 播放某段录音 + * + * @param view 显示动画 + * @param index 录音在集合中索引 + */ + fun setPlayerIndex(view: View, index: Int) { + val imageV = view.findViewById(R.id.iv_sound_anim) as ImageView + val width = view.width + if (animView != null) { + animaV?.stop() + animView!!.setBackgroundResource(R.drawable.icon_sound_03) + } + animView = imageV + val entity: ChatMsgEntity = data.get(index) + playMusic(entity.voiceUri + entity.name, imageV) + } + + /** + * 播放录音 + * + * @param name 录音名称 + * @Description + */ + private fun playMusic(name: String, imageV: ImageView) { + imageV.setBackgroundResource(R.drawable.sound_anim) + animaV = imageV.background as AnimationDrawable + animaV!!.start() + if (name.indexOf(".pcm") > 0) { + audioTrackPlay(name, imageV) + } else { + mediaPlayer(name, imageV) + } + } + + private fun mediaPlayer(name: String, imageV: ImageView) { + try { + if (mMediaPlayer.isPlaying) { + mMediaPlayer.stop() + } + mMediaPlayer.reset() + mMediaPlayer.setDataSource(name) + mMediaPlayer.prepare() + mMediaPlayer.start() + //播放结束 + mMediaPlayer.setOnCompletionListener { + animaV!!.stop() + imageV.setBackgroundResource(R.drawable.icon_sound_03) + } + } catch (e: Exception) { + e.printStackTrace() + } + } + + private fun audioTrackPlay(name: String, imageV: ImageView) { + var dis: DataInputStream? = null + try { + //从音频文件中读取声音 + dis = DataInputStream(BufferedInputStream(FileInputStream(name))) + } catch (e: FileNotFoundException) { + e.printStackTrace() + } + //最小缓存区 + val bufferSizeInBytes = AudioTrack.getMinBufferSize( + 16000, + AudioFormat.CHANNEL_OUT_MONO, + AudioFormat.ENCODING_PCM_16BIT + ) + //创建AudioTrack对象 依次传入 :流类型、采样率(与采集的要一致)、音频通道(采集是IN 播放时OUT)、量化位数、最小缓冲区、模式 + if (mAudioTrack != null) { + mAudioTrack!!.stop() + mAudioTrack!!.release() + mAudioTrack = null + } + mAudioTrack = AudioTrack( + AudioManager.STREAM_MUSIC, + 16000, + AudioFormat.CHANNEL_OUT_MONO, + AudioFormat.ENCODING_PCM_16BIT, + bufferSizeInBytes, + AudioTrack.MODE_STREAM + ) + val data = ByteArray(bufferSizeInBytes) + mAudioTrack!!.play() //开始播放 + while (true) { + var i = 0 + try { + while (dis!!.available() > 0 && i < data.size) { + data[i] = dis.readByte() //录音时write Byte 那么读取时就该为readByte要相互对应 + i++ + } + } catch (e: IOException) { + // TODO Auto-generated catch block + e.printStackTrace() + } + mAudioTrack!!.write(data, 0, data.size) + if (i != bufferSizeInBytes) //表示读取完了 + { + break + } + } + mAudioTrack!!.stop() //停止播放 + mAudioTrack!!.release() //释放资源 + mAudioTrack = null + imageV.post { + animaV?.stop() + imageV.setBackgroundResource(R.drawable.icon_sound_03) + } + } + + fun setOnItemClickListener(clickListner: OnItemClickListner) { + itemClick = clickListner + } + + interface OnItemClickListner { + fun onItemClick(view: View?, postion: Int) + } +} + + diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/tasklist/TaskListAdapter.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/tasklist/TaskListAdapter.kt index 5195f2d3..53e75ae7 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/fragment/tasklist/TaskListAdapter.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/tasklist/TaskListAdapter.kt @@ -198,7 +198,7 @@ class TaskListAdapter( } override fun getItemViewRes(position: Int): Int { - return R.layout.adapter_offline_map_city + return R.layout.adapter_task_list } } diff --git a/app/src/main/java/com/navinfo/omqs/util/SoundMeter.java b/app/src/main/java/com/navinfo/omqs/util/SoundMeter.java new file mode 100644 index 00000000..44efd859 --- /dev/null +++ b/app/src/main/java/com/navinfo/omqs/util/SoundMeter.java @@ -0,0 +1,161 @@ +package com.navinfo.omqs.util; + +import android.media.MediaRecorder; +import android.os.Environment; +import android.text.TextUtils; +import android.util.Log; +import java.io.File; +import java.io.IOException; + +/** + * 录音接口 + */ +public class SoundMeter { + static final private double EMA_FILTER = 0.6; + + private static final String TAG = "SoundMeter"; + private String mFilePath; + private MediaRecorder mRecorder = null; + private double mEMA = 0.0; + //监听 + private OnSoundMeterListener mListener; + //是否开启了语音录制 + private boolean isStartSound; + /** + * 开始录音 + * + * @param name 录音文件保存路径 + */ + public void start(final String name) { + mFilePath = name; + isStartSound = false; + //执行录音操作 + if (!Environment.getExternalStorageState().equals( + Environment.MEDIA_MOUNTED) || TextUtils.isEmpty(name)) { + if(mListener!=null) + mListener.onfaild("权限失败或者文件名称错误"); + return; + } + + if (mRecorder == null) { + mRecorder = new MediaRecorder(); + mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); + mRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); + mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC); + mRecorder.setOutputFile(name); + Log.w(TAG, "录音" + name); + + try { + mRecorder.prepare(); + mRecorder.start(); + mEMA = 0.0; + isStartSound = true; + } catch (IllegalStateException e) { + if(mListener!=null) + mListener.onfaild(e.getMessage()); + if (mRecorder != null) + mRecorder.release(); + //启动异常释放资源 + isStartSound = false; + mRecorder = null; + System.out.print(e.getMessage()); + } catch (IOException e) { + System.out.print(e.getMessage()); + if(mListener!=null) + mListener.onfaild(e.getMessage()); + //启动异常释放资源 + isStartSound = false; + if (mRecorder != null) + mRecorder.release(); + mRecorder = null; + }finally { + + } + } + } + + /** + * 结束录音接,释放录音对象 + */ + public void stop() { + isStartSound = false; + try { + if (mRecorder != null) { + mRecorder.stop(); + } + if(new File(mFilePath).exists()){ + if(mListener!=null) + mListener.onSuccess(mFilePath); + } + } catch (Exception e) { + if(mListener!=null) + mListener.onfaild(e.getMessage()); + } finally { + if (mRecorder != null) + mRecorder.release(); + mRecorder = null; + } + } + + /** + * 停止录音 + */ + public void pause() { + if (mRecorder != null) { + mRecorder.stop(); + } + } + + /** + * 开始录音 + */ + public void start() { + if (mRecorder != null) { + mRecorder.start(); + } + } + + /** + * 获取录音基准值 + * + * @return + */ + public double getAmplitude() { + if (mRecorder != null) + return (mRecorder.getMaxAmplitude() / 2700.0); + else + return 0; + + } + + /** + * 获取EMA基准值 + * + * @return + */ + public double getAmplitudeEMA() { + double amp = getAmplitude(); + mEMA = EMA_FILTER * amp + (1.0 - EMA_FILTER) * mEMA; + return mEMA; + } + + public OnSoundMeterListener getmListener() { + return mListener; + } + + public void setmListener(OnSoundMeterListener mListener) { + this.mListener = mListener; + } + + //是否开启了语音录制 + public boolean isStartSound(){ + return isStartSound; + } + + //录音监听 + public interface OnSoundMeterListener{ + public void onSuccess(String filePath); + public void onfaild(String message); + } + +} diff --git a/app/src/main/java/com/navinfo/omqs/util/SoundRecordeUtils.java b/app/src/main/java/com/navinfo/omqs/util/SoundRecordeUtils.java new file mode 100644 index 00000000..1a902cad --- /dev/null +++ b/app/src/main/java/com/navinfo/omqs/util/SoundRecordeUtils.java @@ -0,0 +1,129 @@ +package com.navinfo.omqs.util; + +import android.app.Activity; +import android.graphics.drawable.AnimationDrawable; +import android.graphics.drawable.BitmapDrawable; +import android.view.Gravity; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.PopupWindow; +import android.widget.Toast; +import com.blankj.utilcode.util.ToastUtils; +import com.navinfo.omqs.Constant; +import com.navinfo.omqs.R; +import java.io.File; + +public class SoundRecordeUtils { + private static SoundRecordeUtils instance; + private SoundMeter mSensor; // 系统录音组件 + private PopupWindow pop; + private ImageView volume; + private SpeakMode mSpeakMode; + private Activity mActivity; + + public static SoundRecordeUtils getInstance(Activity context) { + if (instance == null) { + instance = new SoundRecordeUtils(context); + } + return instance; + } + + public SoundRecordeUtils(Activity mContext) { + this.mActivity = mContext; + mSpeakMode = new SpeakMode(mContext); + initVoicePop(); + } + + private void initVoicePop() { + //语音识别动画 + pop = new PopupWindow(); + pop.setWidth(ViewGroup.LayoutParams.MATCH_PARENT); + pop.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT); + pop.setBackgroundDrawable(new BitmapDrawable()); + View view = View.inflate(mActivity, R.layout.cv_card_voice_rcd_hint_window, null); + pop.setContentView(view); + + pop.update(); + volume = (ImageView) view.findViewById(R.id.volume); + } + + //启动录音 + public String startSoundMeter(View v, SoundRecordeCallback soundRecordeCallback, boolean isRemind/*是否需要默认语音提醒开始和结束录音*/) { + //录音动画 + if (pop != null) + pop.showAtLocation(v, Gravity.CENTER, 0, 0); + volume.setBackgroundResource(R.drawable.pop_voice_img); + AnimationDrawable animation = (AnimationDrawable) volume.getBackground(); + animation.start(); + + final String name = DateTimeUtil.getTimeSSS() + ".m4a"; + if (mSensor == null) { + mSensor = new SoundMeter(); + } + mSensor.setmListener(new SoundMeter.OnSoundMeterListener() { + @Override + public void onSuccess(String filePath) { + if (isRemind) { + mSpeakMode.speakText("结束录音"); + } + if (soundRecordeCallback!=null) { + soundRecordeCallback.onSuccess(filePath, name); + } + } + + @Override + public void onfaild(String message) { + if (isRemind) { + ToastUtils.showLong("录制失败!"); + mSpeakMode.speakText("录制失败"); + } + if (soundRecordeCallback!=null) { + soundRecordeCallback.onfaild(message); + } + } + }); + //增加下目录创建,防止由于目录导致无法录制文件 + if (!new File(Constant.USER_DATA_ATTACHEMNT_PATH).exists()) { + new File(Constant.USER_DATA_ATTACHEMNT_PATH).mkdirs(); + } + if (mSensor.isStartSound()) { + ToastUtils.showLong("已自动结束上一段录音"); + mSpeakMode.speakText("已自动结束上一段录音"); + return null; + } + //启动定时器 + mSensor.start(Constant.USER_DATA_ATTACHEMNT_PATH + name); + if (isRemind) { + ToastUtils.showLong("开始录音"); + mSpeakMode.speakText("开始录音"); + } + return name; + } + + //判断是否启动了录音 + public boolean isStartSound(){ + if(mSensor!=null){ + return mSensor.isStartSound(); + } + + return false; + } + + //停止语音录制 + public void stopSoundMeter() { + //先重置标识,防止按钮抬起时触发语音结束 + + if (mSensor != null && mSensor.isStartSound()) { + mSensor.stop(); + } + + if (pop != null && pop.isShowing()) + pop.dismiss(); + } + + public interface SoundRecordeCallback{ + public void onSuccess(String filePath, String fileName); + public void onfaild(String message); + } +} diff --git a/app/src/main/java/com/navinfo/omqs/util/SpeakMode.java b/app/src/main/java/com/navinfo/omqs/util/SpeakMode.java new file mode 100644 index 00000000..1930e611 --- /dev/null +++ b/app/src/main/java/com/navinfo/omqs/util/SpeakMode.java @@ -0,0 +1,149 @@ +package com.navinfo.omqs.util; + +import android.app.Activity; +import android.app.Dialog; +import android.content.Intent; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.speech.tts.TextToSpeech; +import android.util.Log; +import android.view.View; + +import com.navinfo.omqs.ui.dialog.FirstDialog; + +import java.util.HashMap; +import java.util.Locale; + +//语音类 +public class SpeakMode extends Activity implements TextToSpeech.OnInitListener{ + private Activity mActivity; + private TextToSpeech mTextToSpeech;//TTS对象 + private int status; + private int MY_DATA_CHECK_CODE = 0; + + private Handler mHandler = new Handler() { + + @Override + public void handleMessage(Message msg) { + switch (msg.what) { + case 0x11: + try { + HashMap params = new HashMap(); + + params.put(TextToSpeech.Engine.KEY_PARAM_STREAM, "STREAM_NOTIFICATION");//设置播放类型(音频流类型) + + mTextToSpeech.speak(msg.obj + "", TextToSpeech.QUEUE_ADD, params);//将这个发音任务添加当前任务之后 + + //BaseToast.makeText(mActivity,msg.obj+"",Toast.LENGTH_LONG).show(); + + mTextToSpeech.playSilence(100, TextToSpeech.QUEUE_ADD, params);//间隔多长时间 + + } catch (Exception e) { + + } + break; + } + } + }; + + public SpeakMode(Activity activity) { + + mActivity = activity; + + if (mActivity != null && !mActivity.isFinishing()) + this.mTextToSpeech = new TextToSpeech(this.mActivity, this); + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + Intent checkIntent = new Intent(); + checkIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA); + startActivityForResult(checkIntent, MY_DATA_CHECK_CODE); + } + + public void setData(String json) { + + } + + @Override + public void onInit(int status) { + this.status = status; + if (this.mTextToSpeech != null) { + int result = this.mTextToSpeech.setLanguage(Locale.CHINESE); + if (result == TextToSpeech.LANG_MISSING_DATA + || result == TextToSpeech.LANG_NOT_SUPPORTED) { + if (mActivity != null && !mActivity.isFinishing()) { + FirstDialog firstDialog = new FirstDialog(mActivity); + firstDialog.setTitle("提示"); + firstDialog.setMessage("设备不支持语音播报,请先下载语音助手。"); + firstDialog.setConfirmListener(new FirstDialog.OnClickListener() { + @Override + public void onClick(Dialog dialog, int which) { + dialog.dismiss(); + } + }); + firstDialog.setNegativeView(View.GONE); + firstDialog.show(); + } + } + } + Log.i("TextToSpeechDemo", String.valueOf(status)); + } + + //读语音处理 + public void speakText(final String message) { + new Thread(new Runnable() { + @Override + public void run() { + + if (mTextToSpeech != null) { + + int result = mTextToSpeech.setLanguage(Locale.CHINESE); + + if (result == TextToSpeech.LANG_MISSING_DATA + || result == TextToSpeech.LANG_NOT_SUPPORTED) { + + } else { + if (mTextToSpeech != null && mTextToSpeech.isSpeaking()) { + + while (mTextToSpeech.isSpeaking()) { + + try { + //增加播报停止,解决不能播报最新内容问题 + mTextToSpeech.stop(); + + Thread.sleep(100); + + } catch (Exception e) { + + } + } + } + + Message msg = new Message(); + msg.what = 0x11; + msg.obj = message; + mHandler.sendMessage(msg); + + } + } + } + }).start(); + + } + + public void stopSpeek() { + try { + + if (this.mTextToSpeech != null && this.mTextToSpeech.isSpeaking()) { + this.mTextToSpeech.stop(); + } + } catch (Exception e) { + + } + } + +} diff --git a/app/src/main/res/color/font_blue_reg.xml b/app/src/main/res/color/font_blue_reg.xml new file mode 100644 index 00000000..99b71983 --- /dev/null +++ b/app/src/main/res/color/font_blue_reg.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/app/src/main/res/drawable-hdpi/rcd_cancel_icon.png b/app/src/main/res/drawable-hdpi/rcd_cancel_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..b1b2b06a1b8129ade174a9927ced538cefe011e3 GIT binary patch literal 2713 zcmYjTc|4SR7at)aWr@%<$a*JRm@JLRl3_AjOBW%@GM0)DalQc_YNnEfr8Oa_pcn8-HcdMXurh|h6;Q9G^SgWnAEgOS|v0GYNf`&B_ z2m~As2PCW&gpC&$7hzeTjg5`L1=j$J#j*ip0{|O@(_u$|A&Hxt8`QwYP@t-+Dij9S z2^cWd)YJedC@4S-tP+L*z0hbhMMXu(46UJ1CU0~!&0DeV4&=gk&)ryVJRso zFhxa0pFVvG_e4-o5Q-lf8WIx|3keAs7#ILANK#S~Y!gVpzP`TM+1UUhBO`%?GN5vZ zq);ewa&o}`zf?JE1tSm~h+rFnErLV$etS=M^%W6>T-7ckm=il+!7o2ow|`;pt0u#P zsqYSSwu;iIhd+N55o-{N_{68TE{00(7SL?ymB6<2aY>wh(~sm9Zy3-YmaeOQMUy@C z_oRYenQqB6x>%=BMg5R=UXG^7$t((88*=5oTKyPN#Oxr_TAlV_aeD2}pu z6UU0i&+``Wj>!~{+SZOpN80dM|5u4Q9BcJy&{FFA*K=$Al2d(e@JDfBJ?i6KW>-ET ze~W%?sv4AfHul}bbWg^4WgOnZ=%%E7Cjzk-XKr%Fj!2^qh1}lnBhIrTF`^MiFyU=K zW+W(l&s-f}(-%X##k=sx-y~P0ks@qT{&r4Y?y&sSgT4#AgajI;)8FW-_e_`2f zVQEJ#b@peN!P?*mi^3X_kKUy=X|(N^(Ddv~!d$pPZSm|%!Qf}kNoXeCyDKHEY(_v| znfhqCK%M(m`G!+T$Gd{4ug zslN|D5Q-|j&Z}PF$A?_LzR1;bXwiT6A%%aBCq-|_$0DQjtNe&;{g_WI@=OT*%h6~w zqgl585Qjxw$O77dAgY`Gm6LI^;HHNaZb7D3UFWZ*{`!Or9>1`gEMa}LTfoV3HNk;$ z19RpwkMrX3o)x%aa-S2iP#g7f8iqb0V`_%OKWu0 zG+BmMfLuW`whv9o!3m^K>Mvg!$n<=oZPPsKPYXELrGf0W3*e$J=^qm}<429t4kO z$X5!J#SWjmi%42&IYF30Z<}ZD&$)D=*OjGjF#X5gDIc|RUq?y@FEx;Y?&5>A47_`r zjE1&XR(_(f4f^l)NC%APwzb}uJ*>i|s@7d;mQ6Ms>TOd>ii>sTBjL3c!=HE>4lqQI z=lO5d7d<|n!YSV_UWKgS`+WXZKHXLSd;|@B_9(UVZe`VImEAR!sppqI2XyF3d+kI8 ztMm`QKq)yFPE2upIeGThKvqep$+ec%LxlK~975^UCPD9PWmRvsdu4};%oGb%i2jkx zdgV@uIWZj0q@TL+XRnCC)!7Gh!{(E5A_iV$NlV)B)6mR)e)X(?xjv_>U01meP7O2~ zPM*f$*O(kvZaL}_&fXs%tJXLyyUc;Cmm=y39uZO0R%vN%K_Q&(T$WKq^&WVSicQXP zpFGft;!0yt^J+Jm4Vxcw$$y%WM{*1uq~_@`m8}1xEOUZD`ksJ4r?Zy}X?nZ4b^CzN z9XS-06sMONx`*-W(d|2Cnb=5G{jfb&_#cEkO#Wbx(B`z948*Qqold-vL# zbc(%hR7>X!Rug{D^u?P4@6a(y8i7VlnM#;1{~I z5Ot(cv9u;D*Rq228!OV0we;t)&iO6FfSDia(+|(avrtd5hcZ(2SE^!lI9VGp6xMp` zjZZWBw|oorNgWa`$nTrmtqHneO#H4#O81EYk6p6C$qX}BY>2#k#@l(xpYuP`tM4?0 zv3?mx|4x2?>wV(E<C$A;)2Wh7Ml`9^>xmQHgL!&k_@JppZ%Pw{PT-}FgGQblo`4G F^*{05M$7;J literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/voice_rcd_cancel_bg_focused.png b/app/src/main/res/drawable-hdpi/voice_rcd_cancel_bg_focused.png new file mode 100644 index 0000000000000000000000000000000000000000..4190494ffbb5b66cc6e1305c30b2198136667064 GIT binary patch literal 2678 zcmeHJ=|2;W19soD93yfjXStW$DaV|{Y?}LKvs@up?h$f?Hpj-?ijw=tOeXi4*w-yo z=u}Kf>eu&w_`Uo-pU?9=pXbf<;(7IC+Cd=zE>SK91_pqIxe4sA6aOU#^Iz@r*GObw zV1n6M!%hFj|M1@e|HlRB(G~rF>xLs>PzMG^9$`5x`=Eq$BB8dYyNgtk5*J{hE+fdv zWaArupE5o=JoI9a`g~yQUX;7B7&GX4({%sjBU~Ur#johuNJrKU76rEgteq$?G_Q4{ zG1-7!s@_2;xLv*tb-vGAz@??aM7K2UT&(ArrKGIHgDlT{@j*k*^BvE4L$EP_;gnBmlHUilJFzTjx- zQEhdLPqSS48bl*UJ2IU6HeXZ)je&t3U}16%9=$w8%uKX_2#(0NO68k0mLj*-N_sTI zRi)7yPN?-9lk3LiuQxMIGLczXcBXHnGYu>+<&^O&oAOz8h&l(+|1_A~A3ehN5;r{d zPbd2VN;G%GuvGYq=Fx|{#hWr_!^1gQw&v#MV&W$+M|=!LPSCJ#+HY!xAvVRu8t4aB z1K5V_u&>Ud0oJu9|7=5S%L{ZPOJzLKdnB982|G=Y_2ng!_K;JFhMxSD*q_lZW9d`J z`ZLOpDvxI9?xI5tlO(76aFp=!<0|jmk~11=oHh$4^$M?T-ao=SpzF~>(Y9zkm+rZuOERzbo#%DuHz#DfWb@U7HChFv6#+S-1obB6Ob=QZ7bzFtLI*9jj}L!u!gxlO zYRsUAq@v!EgU|x7-1kAPCe!>gHMSpB)#aI3h>jaw?QX>oS)TmD_}5T%shb7(1SDCn zEWjwauv}B}dAzF5S?%T6&hG=bmw3a|3<3 z&BAfdbKWuu5}ifqlxNG{N#2Fm6=O*kJ7CCASV&9&|2+UB4>Y{*v?g zpy)O3kR#NtXtcR+yX&va#s$GwyR@(54t0ve4r=Y_zn4;a&Yu2wS>bnLX(Gq%8t zAeD0nzK5a9W)Ukgl~kOJDpEV2;Vg6llE8CB>dp4nL1Ow+KRX86Z3b6++_95k$um|w z7#OC-pwJ*zF36Wk+>qx%&n7BRWYM~t;ZyHzaRuTnj!*hTR&Z?o32G3@d$|7I1uJC8 z@O~HNs+W~P1{|bUgF)xPhQK=2G4g^FlMC?M8|=?!f#9a3;-ZI*N0C&6KsG0VCfzx@ zWjuS8sydAla~H*Y_9tuNFSgH|&v%uSB>R%BZVjF^t&(VKLoCf){^SqeP8OJ_+*#xI zg+5b&&J9o+8MCe*FT8lJe{wv2Lp-1BV_GKtbM`kYOs=4bq%ox z_K15rwy~YG{=@C(-1=#_dXja@i0X-F=UYW$zskk8gMI>!JYOTjN$bD))ttn87Ne|2 ze55i9?`!_lQt$F$%_ns4XZ((RmB<`M51=GKeuap!helAtF-cz`MF*7J=owzMCtrIH zyiyEAP?NHKFZamPDADMx(2n;XPvn%veNn-`v>@9oJL;)`T7v_yC<%2qH#^vMPL~J5b{VIhJPE%V7)ka0T2qiDN2wP0 zc*RLycNV}efL)^$yCz8NPd&n5Il{+wmo(I%?tEocEWq$FjANp6NR8)%K(ve?D zi0$kOeA*)Jrcg*WuNQD?&_s{iG8cWRJ}p~o{=Nw z4;GKelE}t*Nt7CR&s_J-!-E#&6yV$yE@m9i!|XbNfczX?SeTMuLYtYIJv$0aD-QHj z((>qYG*AXCHN66<2kF>qu4=#XvBO0fb4@D_IF*1~IvS2Q9P~n@cIG7z@ewgDVI!Yj z+5C_ WR`lG~)y=}^it5 zjB!V>ZOp7}Y5BfdhdpJ!N75(WdwOg;lfdIi?&&`E*DH)ZbDwFvfAdy^-}h-T-BHdA lCmz096vm-lG5z{SyS|>K91l%?%L0Re!PC{xWt~$(696r;d?f$? literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/voice_to_short.png b/app/src/main/res/drawable-hdpi/voice_to_short.png new file mode 100644 index 0000000000000000000000000000000000000000..ae7bc3e9b034b86776d450b54a019679081eb250 GIT binary patch literal 1010 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 D5~pbW literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/amp2.png b/app/src/main/res/drawable-xhdpi/amp2.png new file mode 100644 index 0000000000000000000000000000000000000000..f1b1adf794f9649da6b854754ec913a8443d636c GIT binary patch literal 22835 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/amp3.png b/app/src/main/res/drawable-xhdpi/amp3.png new file mode 100644 index 0000000000000000000000000000000000000000..beb72b00c29d72bd6122704c4364d59f0b618387 GIT binary patch literal 22894 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 LS4cl);`RRkkOjgz literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/amp4.png b/app/src/main/res/drawable-xhdpi/amp4.png new file mode 100644 index 0000000000000000000000000000000000000000..8d41ae8cedd1a49e207d662a7a85238cd1ebde5d GIT binary patch literal 22995 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 ReD?>OQ9Y-Ub;{EJe*odBJ4^ro literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/amp7.png b/app/src/main/res/drawable-xhdpi/amp7.png new file mode 100644 index 0000000000000000000000000000000000000000..d2ad7fd3bc270b59cf8861055d2b90464593f5d3 GIT binary patch literal 23227 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 Z-I1W8Wn$|5o&N%;rhHK;SHaBh{{WvQUG@L~ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/icon_sound_01.png b/app/src/main/res/drawable-xhdpi/icon_sound_01.png new file mode 100644 index 0000000000000000000000000000000000000000..2862f172c36326bbf16f2c6c4891ec6ab2cfb22b GIT binary patch literal 17868 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 CPrf1m literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/icon_sound_02.png b/app/src/main/res/drawable-xhdpi/icon_sound_02.png new file mode 100644 index 0000000000000000000000000000000000000000..f9e67e63085f31cd6bc9398ac3cca562b2fcbd82 GIT binary patch literal 18116 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 D5~pbW literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/amp2.png b/app/src/main/res/drawable-xxhdpi/amp2.png new file mode 100644 index 0000000000000000000000000000000000000000..f1b1adf794f9649da6b854754ec913a8443d636c GIT binary patch literal 22835 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/amp3.png b/app/src/main/res/drawable-xxhdpi/amp3.png new file mode 100644 index 0000000000000000000000000000000000000000..beb72b00c29d72bd6122704c4364d59f0b618387 GIT binary patch literal 22894 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 LS4cl);`RRkkOjgz literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/amp4.png b/app/src/main/res/drawable-xxhdpi/amp4.png new file mode 100644 index 0000000000000000000000000000000000000000..8d41ae8cedd1a49e207d662a7a85238cd1ebde5d GIT binary patch literal 22995 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 ReD?>OQ9Y-Ub;{EJe*odBJ4^ro literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/amp7.png b/app/src/main/res/drawable-xxhdpi/amp7.png new file mode 100644 index 0000000000000000000000000000000000000000..d2ad7fd3bc270b59cf8861055d2b90464593f5d3 GIT binary patch literal 23227 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 Z-I1W8Wn$|5o&N%;rhHK;SHaBh{{WvQUG@L~ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/icon_sound_01.png b/app/src/main/res/drawable-xxhdpi/icon_sound_01.png new file mode 100644 index 0000000000000000000000000000000000000000..2862f172c36326bbf16f2c6c4891ec6ab2cfb22b GIT binary patch literal 17868 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 CPrf1m literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/icon_sound_02.png b/app/src/main/res/drawable-xxhdpi/icon_sound_02.png new file mode 100644 index 0000000000000000000000000000000000000000..f9e67e63085f31cd6bc9398ac3cca562b2fcbd82 GIT binary patch literal 18116 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 z + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/drawable_bg_blue_frame_black_bg_4_radius.xml b/app/src/main/res/drawable/drawable_bg_blue_frame_black_bg_4_radius.xml new file mode 100644 index 00000000..b722d9fb --- /dev/null +++ b/app/src/main/res/drawable/drawable_bg_blue_frame_black_bg_4_radius.xml @@ -0,0 +1,17 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/icon_select_sound_defaule.9.png b/app/src/main/res/drawable/icon_select_sound_defaule.9.png new file mode 100644 index 0000000000000000000000000000000000000000..61f976cd1fc1f6bafb508ca2d1140092761b75c2 GIT binary patch literal 67532 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 b%vleN-)PjeZ!cp*WcH5s4R804Jo*0swV9T; literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/pop_voice_img.xml b/app/src/main/res/drawable/pop_voice_img.xml new file mode 100644 index 00000000..270b69d9 --- /dev/null +++ b/app/src/main/res/drawable/pop_voice_img.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/sound_anim.xml b/app/src/main/res/drawable/sound_anim.xml new file mode 100644 index 00000000..d2fbaf94 --- /dev/null +++ b/app/src/main/res/drawable/sound_anim.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 40393b4f..2c7894e8 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -63,7 +63,6 @@ android:layout_height="48dp" android:layout_marginRight="20dp" android:layout_marginBottom="120dp" - android:onClick="@{()->mainActivity.voiceOnclick()}" android:src="@drawable/baseline_keyboard_voice_24" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintRight_toRightOf="parent" /> diff --git a/app/src/main/res/layout/adapter_sound_list.xml b/app/src/main/res/layout/adapter_sound_list.xml new file mode 100644 index 00000000..752ae50d --- /dev/null +++ b/app/src/main/res/layout/adapter_sound_list.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/cv_card_chatting_item_msg_text_left.xml b/app/src/main/res/layout/cv_card_chatting_item_msg_text_left.xml new file mode 100644 index 00000000..0d409ad7 --- /dev/null +++ b/app/src/main/res/layout/cv_card_chatting_item_msg_text_left.xml @@ -0,0 +1,41 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/cv_card_voice_rcd_hint_window.xml b/app/src/main/res/layout/cv_card_voice_rcd_hint_window.xml new file mode 100644 index 00000000..013f836d --- /dev/null +++ b/app/src/main/res/layout/cv_card_voice_rcd_hint_window.xml @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_evaluation_result.xml b/app/src/main/res/layout/fragment_evaluation_result.xml index bd0896f0..88a6d93e 100644 --- a/app/src/main/res/layout/fragment_evaluation_result.xml +++ b/app/src/main/res/layout/fragment_evaluation_result.xml @@ -125,10 +125,16 @@ android:layout_margin="5dp" android:background="@color/gray_121" /> + + + android:layout_height="120dp" /> + diff --git a/collect-library/src/main/java/com/navinfo/collect/library/data/dao/impl/INiLocationDao.java b/collect-library/src/main/java/com/navinfo/collect/library/data/dao/impl/INiLocationDao.java index 4bc28536..89c6c185 100644 --- a/collect-library/src/main/java/com/navinfo/collect/library/data/dao/impl/INiLocationDao.java +++ b/collect-library/src/main/java/com/navinfo/collect/library/data/dao/impl/INiLocationDao.java @@ -43,4 +43,7 @@ public interface INiLocationDao { @Query("SELECT * FROM niLocation where tilex>=:minx and tilex<=:maxx and tiley>=:miny and tiley <=:maxy and time>=:startTime and time<=:endTime") List timeTofindList(int minx, int maxx, int miny, int maxy,long startTime,long endTime); + + @Query("SELECT * FROM niLocation") + List findAll(); } diff --git a/collect-library/src/main/java/com/navinfo/collect/library/data/entity/QsRecordBean.kt b/collect-library/src/main/java/com/navinfo/collect/library/data/entity/QsRecordBean.kt index a70856ef..d985c1af 100644 --- a/collect-library/src/main/java/com/navinfo/collect/library/data/entity/QsRecordBean.kt +++ b/collect-library/src/main/java/com/navinfo/collect/library/data/entity/QsRecordBean.kt @@ -1,6 +1,7 @@ package com.navinfo.collect.library.data.entity import com.navinfo.collect.library.utils.GeometryToolsKt +import com.navinfo.omqs.bean.Attachment import io.realm.RealmObject import io.realm.RealmSet import io.realm.annotations.PrimaryKey @@ -86,6 +87,8 @@ open class QsRecordBean @JvmOverloads constructor( */ var guideGeometry: String = "", + var attachments:RealmSet, + ) : RealmObject() { fun copy(): QsRecordBean { @@ -104,6 +107,7 @@ open class QsRecordBean @JvmOverloads constructor( confirmUserId = confirmUserId, t_lifecycle = t_lifecycle, t_status = t_status, + attachments = attachments, ) qs.geometry = geometry return qs diff --git a/collect-library/src/main/java/com/navinfo/collect/library/map/source/MapLifeNiLocationTileDataSource.java b/collect-library/src/main/java/com/navinfo/collect/library/map/source/MapLifeNiLocationTileDataSource.java index 52909ec7..fb672ff5 100644 --- a/collect-library/src/main/java/com/navinfo/collect/library/map/source/MapLifeNiLocationTileDataSource.java +++ b/collect-library/src/main/java/com/navinfo/collect/library/map/source/MapLifeNiLocationTileDataSource.java @@ -53,7 +53,8 @@ public class MapLifeNiLocationTileDataSource implements ITileDataSource { if(mEndTime!=0){ list = TraceDataBase.getDatabase(mCon, dbName).getNiLocationDao().timeTofindList(xStart, xEnd, yStart, yEnd,mStartTime,mEndTime); }else{ - list = TraceDataBase.getDatabase(mCon, dbName).getNiLocationDao().findList(xStart, xEnd, yStart, yEnd); + //list = TraceDataBase.getDatabase(mCon, dbName).getNiLocationDao().findList(xStart, xEnd, yStart, yEnd); + list = TraceDataBase.getDatabase(mCon, dbName).getNiLocationDao().findAll(); } Log.e("qj","query"+(list==null?0:list.size())+"==="+xStart+"==="+xEnd+"==="+yStart+"==="+yEnd); From 9379e7a7bbe0e0698032e78f5a8a92e9780589c1 Mon Sep 17 00:00:00 2001 From: qiji4215 Date: Thu, 4 May 2023 11:02:33 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=AF=AD=E9=9F=B3?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E4=B8=9A=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 4 +- .../java/com/navinfo/omqs/bean/Attachment.kt | 43 ----- .../omqs/ui/activity/map/MainActivity.kt | 4 +- .../omqs/ui/activity/map/MainViewModel.kt | 138 +++++++++------- .../omqs/ui/activity/map/SignAdapter.kt | 1 - .../EvaluationResultFragment.kt | 43 ++++- .../EvaluationResultViewModel.kt | 149 +++++++++++++++++- .../evaluationresult/SoundtListAdapter.kt | 40 ++--- .../main/res/layout/adapter_sound_list.xml | 2 +- .../cv_card_chatting_item_msg_text_left.xml | 41 ----- .../res/layout/fragment_evaluation_result.xml | 10 +- collect-library/build.gradle | 4 +- .../library/data/entity/AttachmentBean.kt | 15 ++ .../library/data/entity/QsRecordBean.kt | 9 +- 14 files changed, 313 insertions(+), 190 deletions(-) delete mode 100644 app/src/main/java/com/navinfo/omqs/bean/Attachment.kt delete mode 100644 app/src/main/res/layout/cv_card_chatting_item_msg_text_left.xml create mode 100644 collect-library/src/main/java/com/navinfo/collect/library/data/entity/AttachmentBean.kt diff --git a/app/build.gradle b/app/build.gradle index 1ac69655..d70deb3a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -46,8 +46,8 @@ android { } compileOptions { - sourceCompatibility JavaVersion.VERSION_11 - targetCompatibility JavaVersion.VERSION_11 + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 } kotlinOptions { jvmTarget = '11' diff --git a/app/src/main/java/com/navinfo/omqs/bean/Attachment.kt b/app/src/main/java/com/navinfo/omqs/bean/Attachment.kt deleted file mode 100644 index 11088a69..00000000 --- a/app/src/main/java/com/navinfo/omqs/bean/Attachment.kt +++ /dev/null @@ -1,43 +0,0 @@ -package com.navinfo.omqs.bean - -import java.io.Serializable -import java.util.* - -class Attachment(filename: String, type: Int) : Serializable, - Cloneable { - //内容 - var filename: String = "" - - //标识 默认照片0 录音1 - var type: Int - - override fun toString(): String { - return "TipsAttachment{" + - "filename='" + filename + '\'' + - ", type=" + type + - '}' - } - - override fun equals(o: Any?): Boolean { - if (this === o) return true - if (o == null || javaClass != o.javaClass) return false - val that = o as Attachment - return type == that.type && - filename == that.filename - } - - override fun hashCode(): Int { - return Objects.hash(filename, type) - } - - @kotlin.Throws(CloneNotSupportedException::class) - public override fun clone(): Any { - return super.clone() - } - - init { - this.filename = filename - this.type = type - } -} - diff --git a/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainActivity.kt b/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainActivity.kt index 0c4d1f91..620a0ece 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainActivity.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainActivity.kt @@ -141,13 +141,13 @@ class MainActivity : BaseActivity() { } fun voiceOnTouchStart(){ - binding!!.viewModel!!.startSoundMetter(this,mapController.locationLayerHandler.getCurrentNiLocation(),binding.mainActivityVoice) + viewModel!!.startSoundMetter(this,binding.mainActivityVoice) } @RequiresApi(Build.VERSION_CODES.Q) fun voiceOnTouchStop(){ if(Constant.IS_VIDEO_SPEED){ - binding!!.viewModel!!.stopSoundMeter() + viewModel!!.stopSoundMeter() } } diff --git a/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainViewModel.kt b/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainViewModel.kt index b0679117..39a9f952 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainViewModel.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainViewModel.kt @@ -6,7 +6,6 @@ import android.content.DialogInterface import android.graphics.drawable.AnimationDrawable import android.graphics.drawable.BitmapDrawable import android.os.Build -import android.os.Build import android.os.Bundle import android.text.TextUtils import android.util.Log @@ -16,16 +15,15 @@ import android.view.ViewGroup import android.widget.ImageView import android.widget.PopupWindow import androidx.annotation.RequiresApi -import androidx.annotation.RequiresApi import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import androidx.navigation.findNavController +import com.blankj.utilcode.util.ToastUtils import com.navinfo.collect.library.data.dao.impl.TraceDataBase import com.navinfo.collect.library.data.entity.NiLocation import com.navinfo.collect.library.data.entity.RenderEntity import com.navinfo.collect.library.map.NIMapController -import com.navinfo.collect.library.map.handler.NiLocationListener import com.navinfo.collect.library.map.handler.OnQsRecordItemClickListener import com.navinfo.collect.library.utils.GeometryTools import com.navinfo.collect.library.utils.GeometryToolsKt @@ -38,10 +36,9 @@ import com.navinfo.omqs.util.DateTimeUtil import com.navinfo.omqs.util.SoundMeter import com.navinfo.omqs.util.SpeakMode import dagger.hilt.android.lifecycle.HiltViewModel -import dagger.hilt.android.qualifiers.ActivityContext -import dagger.hilt.android.qualifiers.ApplicationContext import io.realm.RealmSet import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.launch import org.oscim.core.GeoPoint import org.videolan.libvlc.LibVlcUtil @@ -68,16 +65,12 @@ class MainViewModel @Inject constructor( //看板数据 val liveDataSignList = MutableLiveData>() - - // private var niLocationList: MutableList = ArrayList() var testPoint = GeoPoint(0, 0) //语音窗体 private var pop: PopupWindow? = null private var mSpeakMode: SpeakMode? = null - private var niLocationList: MutableList = ArrayList() - //录音图标 var volume: ImageView? = null var mSoundMeter: SoundMeter? = null @@ -128,11 +121,12 @@ class MainViewModel @Inject constructor( } Log.e("jingo", "定位点插入 ${Thread.currentThread().name}") traceDataBase.niLocationDao.insert(location) + mapController.mMapView.vtmMap.updateMap(true) } } //用于定位点捕捉道路 viewModelScope.launch(Dispatchers.Default) { - mapController.locationLayerHandler.niLocationFlow.collect { location -> + mapController.locationLayerHandler.niLocationFlow.collectLatest { location -> Log.e("jingo", "定位点绑定道路 ${Thread.currentThread().name}") location.longitude = testPoint.longitude location.latitude = testPoint.latitude @@ -228,57 +222,82 @@ class MainViewModel @Inject constructor( }) } + fun startSoundMetter(context: Context, v: View) { -// fun startSaveTraceThread(context: Context) { -// Thread(Runnable { -// try { -// while (true) { -// -// if (niLocationList != null && niLocationList.size > 0) { -// -// var niLocation = niLocationList[0] -// val geometry = GeometryTools.createGeometry( -// GeoPoint( -// niLocation.latitude, -// niLocation.longitude -// ) -// ) -// val tileX = RealmSet() -// GeometryToolsKt.getTileXByGeometry(geometry.toString(), tileX) -// val tileY = RealmSet() -// GeometryToolsKt.getTileYByGeometry(geometry.toString(), tileY) -// -// //遍历存储tile对应的x与y的值 -// tileX.forEach { x -> -// tileY.forEach { y -> -// niLocation.tilex = x -// niLocation.tiley = y -// } -// } -// -// TraceDataBase.getDatabase( -// context, -// Constant.USER_DATA_PATH + "/trace.sqlite" -// ).niLocationDao.insert(niLocation) -// niLocationList.remove(niLocation) -// -// Log.e("qj", "saveTrace==${niLocationList.size}") -// } -// Thread.sleep(30) -// } -// } catch (e: InterruptedException) { -// e.printStackTrace() -// Log.e("qj", "异常==${e.message}") -// } -// }).start() -// } + if(mSpeakMode==null){ + mSpeakMode = SpeakMode(context as Activity?) + } + + //语音识别动画 + if (pop == null) { + pop = PopupWindow() + pop!!.width = ViewGroup.LayoutParams.MATCH_PARENT + pop!!.height = ViewGroup.LayoutParams.WRAP_CONTENT + pop!!.setBackgroundDrawable(BitmapDrawable()) + val view = View.inflate(context, R.layout.cv_card_voice_rcd_hint_window, null) + pop!!.contentView = view + volume = view.findViewById(R.id.volume) + } + + pop!!.update() + + Constant.IS_VIDEO_SPEED = true + //录音动画 + //录音动画 + if (pop != null) { + pop!!.showAtLocation(v, Gravity.CENTER, 0, 0) + } + volume!!.setBackgroundResource(R.drawable.pop_voice_img) + val animation = volume!!.background as AnimationDrawable + animation.start() + + val name: String = DateTimeUtil.getTimeSSS().toString() + ".m4a" + if (mSoundMeter == null) { + mSoundMeter = SoundMeter() + } + mSoundMeter!!.setmListener(object : SoundMeter.OnSoundMeterListener { + @RequiresApi(Build.VERSION_CODES.Q) + override fun onSuccess(filePath: String?) { + if (!TextUtils.isEmpty(filePath) && File(filePath).exists()) { + if (File(filePath) == null || File(filePath).length() < 1600) { + ToastUtils.showLong("语音时间太短,无效!") + mSpeakMode!!.speakText("语音时间太短,无效") + stopSoundMeter() + return + } + } + mSpeakMode!!.speakText("结束录音") + //获取右侧fragment容器 + val naviController = (context as Activity).findNavController(R.id.main_activity_right_fragment) + val bundle = Bundle() + bundle.putString("filePath", filePath) + naviController.navigate(R.id.EvaluationResultFragment, bundle) + } + + @RequiresApi(api = Build.VERSION_CODES.Q) + override fun onfaild(message: String?) { + ToastUtils.showLong("录制失败!") + mSpeakMode!!.speakText("录制失败") + stopSoundMeter() + } + }) + + mSoundMeter!!.start(Constant.USER_DATA_ATTACHEMNT_PATH + name) + ToastUtils.showLong("开始录音") + mSpeakMode!!.speakText("开始录音") + } + + //停止语音录制 + @RequiresApi(api = Build.VERSION_CODES.Q) + fun stopSoundMeter() { + //先重置标识,防止按钮抬起时触发语音结束 + Constant.IS_VIDEO_SPEED = false + if (mSoundMeter != null && mSoundMeter!!.isStartSound()) { + mSoundMeter!!.stop() + } + if (pop != null && pop!!.isShowing) pop!!.dismiss() + } -// //增加轨迹存储 -// fun addSaveTrace(niLocation: NiLocation) { -// if (niLocation != null && niLocationList != null) { -// niLocationList.add(niLocation) -// } -// } /** * 处理页面调转 @@ -314,6 +333,5 @@ class MainViewModel @Inject constructor( } } } - } } \ No newline at end of file diff --git a/app/src/main/java/com/navinfo/omqs/ui/activity/map/SignAdapter.kt b/app/src/main/java/com/navinfo/omqs/ui/activity/map/SignAdapter.kt index e024ba5d..03d83aac 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/activity/map/SignAdapter.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/activity/map/SignAdapter.kt @@ -23,6 +23,5 @@ class SignAdapter : BaseRecyclerViewAdapter() { val item = data[position] bd.signMainIcon.background = holder.viewBinding.root.context.getDrawable(item.iconId) bd.signMainIcon.text = item.iconText - } } \ No newline at end of file diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultFragment.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultFragment.kt index 346afa8a..9b9a1ecf 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultFragment.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultFragment.kt @@ -1,13 +1,18 @@ package com.navinfo.omqs.ui.fragment.evaluationresult +import android.os.Build import android.os.Bundle +import android.util.Log import android.view.LayoutInflater +import android.view.MotionEvent import android.view.View import android.view.ViewGroup +import androidx.annotation.RequiresApi import androidx.databinding.DataBindingUtil import androidx.navigation.NavOptions import androidx.navigation.findNavController import androidx.recyclerview.widget.LinearLayoutManager +import com.navinfo.omqs.Constant import com.navinfo.omqs.R import com.navinfo.omqs.databinding.FragmentEvaluationResultBinding import com.navinfo.omqs.ui.fragment.BaseFragment @@ -66,18 +71,40 @@ class EvaluationResultFragment : BaseFragment(), View.OnClickListener { else -> true } } + + + binding.evaluationVoice.setOnTouchListener(object : View.OnTouchListener { + @RequiresApi(Build.VERSION_CODES.Q) + override fun onTouch(v: View?, event: MotionEvent?): Boolean { + Log.e("qj",event?.action.toString()) + when (event?.action) { + MotionEvent.ACTION_DOWN ->{ + voiceOnTouchStart()//Do Something + Log.e("qj","voiceOnTouchStart") + } + MotionEvent.ACTION_UP ->{ + voiceOnTouchStop()//Do Something + Log.e("qj","voiceOnTouchStop") + } + } + return v?.onTouchEvent(event) ?: true + } + }) + /** * 读取元数据 */ if (arguments != null) { val id = requireArguments().getString("QsId") + //语音路径 + val filePath = requireArguments().getString("filePath") if (id != null) { viewModel.initData(id) } else { - viewModel.initNewData() + viewModel.initNewData(filePath!!) } } else { - viewModel.initNewData() + viewModel.initNewData("") } // //监听大分类数据变化 @@ -240,4 +267,16 @@ class EvaluationResultFragment : BaseFragment(), View.OnClickListener { } } } + + fun voiceOnTouchStart(){ + viewModel!!.startSoundMetter(requireActivity(),binding.evaluationVoice) + } + + @RequiresApi(Build.VERSION_CODES.Q) + fun voiceOnTouchStop(){ + if(Constant.IS_VIDEO_SPEED){ + viewModel!!.stopSoundMeter() + } + } + } \ No newline at end of file diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultViewModel.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultViewModel.kt index db6c4007..81da9cd8 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultViewModel.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultViewModel.kt @@ -1,26 +1,47 @@ package com.navinfo.omqs.ui.fragment.evaluationresult +import android.app.Activity +import android.content.Context +import android.graphics.drawable.AnimationDrawable +import android.graphics.drawable.BitmapDrawable +import android.net.Uri import android.os.Build +import android.os.Bundle +import android.text.TextUtils import android.util.Log +import android.view.Gravity +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.PopupWindow import androidx.annotation.RequiresApi +import androidx.core.util.rangeTo import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope +import androidx.navigation.findNavController +import com.blankj.utilcode.util.ToastUtils +import com.navinfo.collect.library.data.entity.AttachmentBean import com.navinfo.collect.library.data.entity.QsRecordBean import com.navinfo.collect.library.data.entity.RenderEntity.Companion.LinkTable import com.navinfo.collect.library.map.NIMapController import com.navinfo.collect.library.utils.GeometryTools import com.navinfo.omqs.Constant -import com.navinfo.omqs.bean.Attachment +import com.navinfo.omqs.R import com.navinfo.omqs.bean.ChatMsgEntity import com.navinfo.omqs.db.RealmOperateHelper import com.navinfo.omqs.db.RoomAppDatabase +import com.navinfo.omqs.util.DateTimeUtil +import com.navinfo.omqs.util.SoundMeter +import com.navinfo.omqs.util.SpeakMode import dagger.hilt.android.lifecycle.HiltViewModel import io.realm.Realm +import io.realm.RealmList import io.realm.kotlin.where import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import org.oscim.core.GeoPoint +import java.io.File import java.util.* import javax.inject.Inject @@ -57,10 +78,18 @@ class EvaluationResultViewModel @Inject constructor( var listDataChatMsgEntityList = MutableLiveData>() - var listDataAttachmentList = MutableLiveData>() - var oldBean: QsRecordBean? = null + //语音窗体 + private var pop: PopupWindow? = null + + private var mSpeakMode: SpeakMode? = null + + //录音图标 + var volume: ImageView? = null + + var mSoundMeter: SoundMeter? = null + init { liveDataQsRecordBean.value = QsRecordBean(id = UUID.randomUUID().toString()) Log.e("jingo", "EvaluationResultViewModel 创建了 ${hashCode()}") @@ -88,7 +117,7 @@ class EvaluationResultViewModel @Inject constructor( /** * 查询数据库,获取问题分类 */ - fun initNewData() { + fun initNewData(filePath: String) { viewModelScope.launch(Dispatchers.IO) { getClassTypeList() getProblemLinkList() @@ -101,6 +130,8 @@ class EvaluationResultViewModel @Inject constructor( captureLink(geoPoint.longitude, geoPoint.latitude) } } + + addChatMsgEntity(filePath) } /** @@ -317,15 +348,119 @@ class EvaluationResultViewModel @Inject constructor( @RequiresApi(Build.VERSION_CODES.N) fun getChatMsgEntityList() { val chatMsgEntityList: MutableList = ArrayList() - liveDataQsRecordBean.value!!.attachments.forEach{ + liveDataQsRecordBean.value?.attachmentBeanList?.forEach { //1 录音 - if(it.type==1){ + if (it.type == 1) { val chatMsgEntity = ChatMsgEntity() - chatMsgEntity.name = it.filename + chatMsgEntity.name = it.name chatMsgEntity.voiceUri = Constant.USER_DATA_ATTACHEMNT_PATH chatMsgEntityList.add(chatMsgEntity) } } listDataChatMsgEntityList.postValue(chatMsgEntityList) } + + fun addChatMsgEntity(filePath: String) { + + if(filePath!=null){ + var chatMsgEntityList: MutableList = ArrayList() + if(listDataChatMsgEntityList.value?.isEmpty() == false){ + chatMsgEntityList = listDataChatMsgEntityList.value!! + } + val chatMsgEntity = ChatMsgEntity() + chatMsgEntity.name = filePath.replace(Constant.USER_DATA_ATTACHEMNT_PATH,"").toString() + chatMsgEntity.voiceUri = Constant.USER_DATA_ATTACHEMNT_PATH + chatMsgEntityList.add(chatMsgEntity) + + + var attachmentList: RealmList = RealmList() + + //赋值处理 + if(liveDataQsRecordBean.value?.attachmentBeanList?.isEmpty() == false){ + attachmentList = liveDataQsRecordBean.value?.attachmentBeanList!! + } + + val attachmentBean = AttachmentBean() + attachmentBean.name = chatMsgEntity.name!! + attachmentBean.type = 1 + attachmentList.add(attachmentBean) + liveDataQsRecordBean.value?.attachmentBeanList = attachmentList + + listDataChatMsgEntityList.postValue(chatMsgEntityList) + } + } + + fun startSoundMetter(activity: Activity, v: View) { + + if(mSpeakMode==null){ + mSpeakMode = SpeakMode(activity) + } + + //语音识别动画 + if (pop == null) { + pop = PopupWindow() + pop!!.width = ViewGroup.LayoutParams.MATCH_PARENT + pop!!.height = ViewGroup.LayoutParams.WRAP_CONTENT + pop!!.setBackgroundDrawable(BitmapDrawable()) + val view = View.inflate(activity as Context, R.layout.cv_card_voice_rcd_hint_window, null) + pop!!.contentView = view + volume = view.findViewById(R.id.volume) + } + + pop!!.update() + + Constant.IS_VIDEO_SPEED = true + //录音动画 + //录音动画 + if (pop != null) { + pop!!.showAtLocation(v, Gravity.CENTER, 0, 0) + } + volume!!.setBackgroundResource(R.drawable.pop_voice_img) + val animation = volume!!.background as AnimationDrawable + animation.start() + + val name: String = DateTimeUtil.getTimeSSS().toString() + ".m4a" + if (mSoundMeter == null) { + mSoundMeter = SoundMeter() + } + mSoundMeter!!.setmListener(object : SoundMeter.OnSoundMeterListener { + @RequiresApi(Build.VERSION_CODES.Q) + override fun onSuccess(filePath: String?) { + if (!TextUtils.isEmpty(filePath) && File(filePath).exists()) { + if (File(filePath) == null || File(filePath).length() < 1600) { + ToastUtils.showLong("语音时间太短,无效!") + mSpeakMode!!.speakText("语音时间太短,无效") + stopSoundMeter() + return + } + } + + mSpeakMode!!.speakText("结束录音") + + addChatMsgEntity(filePath!!) + } + + @RequiresApi(api = Build.VERSION_CODES.Q) + override fun onfaild(message: String?) { + ToastUtils.showLong("录制失败!") + mSpeakMode!!.speakText("录制失败") + stopSoundMeter() + } + }) + + mSoundMeter!!.start(Constant.USER_DATA_ATTACHEMNT_PATH + name) + ToastUtils.showLong("开始录音") + mSpeakMode!!.speakText("开始录音") + } + + //停止语音录制 + @RequiresApi(api = Build.VERSION_CODES.Q) + fun stopSoundMeter() { + //先重置标识,防止按钮抬起时触发语音结束 + Constant.IS_VIDEO_SPEED = false + if (mSoundMeter != null && mSoundMeter!!.isStartSound()) { + mSoundMeter!!.stop() + } + if (pop != null && pop!!.isShowing) pop!!.dismiss() + } } \ No newline at end of file diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/SoundtListAdapter.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/SoundtListAdapter.kt index 8b39ef35..519bf4ad 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/SoundtListAdapter.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/SoundtListAdapter.kt @@ -64,17 +64,17 @@ class SoundtListAdapter( val entity = data[position] //tag 方便onclick里拿到数据 holder.tag = entity.name.toString() - holder.viewBinding.tvTime.isSelected = entity.isDelete + holder.viewBinding.tvTime.isSelected = entity.isDelete holder.viewBinding.rlSoundContent.isSelected = entity.isDelete holder.viewBinding.ivSoundAnim.setBackgroundResource(R.drawable.icon_sound_03) - if (itemClick != null) { +/* if (itemClick != null) { holder.viewBinding.rlSoundContent.setOnClickListener { itemClick!!.onItemClick(it.findViewById(R.id.rl_sound_content), position) } - } + }*/ //mixWidth if (!TextUtils.isEmpty(entity.name)) { - if (entity.name.indexOf(".pcm") > 0) { +/* if (entity.name.indexOf(".pcm") > 0) { val file: File = File(entity.voiceUri + entity.name) if (file != null) { val time = (file.length() / 16000).toInt() @@ -89,15 +89,15 @@ class SoundtListAdapter( } else { try { md = MediaPlayer() - md.reset() - md.setDataSource(entity.getVoiceUri() + entity.getName()) - md.prepare() + md!!.reset() + md!!.setDataSource(entity.voiceUri+entity.name) + md!!.prepare() } catch (e: Exception) { // TODO Auto-generated catch block e.printStackTrace() } var time = - if (entity.getVoiceTimeLong() == null) md!!.duration.toString() + "" else entity.getVoiceTimeLong() + if (entity.voiceTimeLong == null) md!!.duration.toString() + "" else entity.voiceTimeLong .toString() + "" if (!TextUtils.isEmpty(time)) { val i = md!!.duration / 1000 @@ -107,16 +107,12 @@ class SoundtListAdapter( layoutParams.width = 115 + i * 10 layoutParams.width = if (layoutParams.width > layoutParams.width) maxWidth else layoutParams.width - holder.viewBinding.rlSoundContent.setLayoutParams(layoutParams) + holder.viewBinding.rlSoundContent.layoutParams = layoutParams } holder.viewBinding.tvTime.text = time md!!.release() - } - } - - - override fun getItemViewRes(position: Int): Int { - return R.layout.adapter_sound_list + }*/ + } } /** @@ -143,18 +139,18 @@ class SoundtListAdapter( * @param name 录音名称 * @Description */ - private fun playMusic(name: String, imageV: ImageView) { + fun playMusic(name: String, imageV: ImageView) { imageV.setBackgroundResource(R.drawable.sound_anim) animaV = imageV.background as AnimationDrawable animaV!!.start() - if (name.indexOf(".pcm") > 0) { +/* if (name.index(".pcm") > 0) { audioTrackPlay(name, imageV) } else { mediaPlayer(name, imageV) - } + }*/ } - private fun mediaPlayer(name: String, imageV: ImageView) { + fun mediaPlayer(name: String, imageV: ImageView) { try { if (mMediaPlayer.isPlaying) { mMediaPlayer.stop() @@ -173,7 +169,7 @@ class SoundtListAdapter( } } - private fun audioTrackPlay(name: String, imageV: ImageView) { + fun audioTrackPlay(name: String, imageV: ImageView) { var dis: DataInputStream? = null try { //从音频文件中读取声音 @@ -236,6 +232,10 @@ class SoundtListAdapter( interface OnItemClickListner { fun onItemClick(view: View?, postion: Int) } + + override fun getItemViewRes(position: Int): Int { + return R.layout.adapter_sound_list + } } diff --git a/app/src/main/res/layout/adapter_sound_list.xml b/app/src/main/res/layout/adapter_sound_list.xml index 752ae50d..e493ed42 100644 --- a/app/src/main/res/layout/adapter_sound_list.xml +++ b/app/src/main/res/layout/adapter_sound_list.xml @@ -21,13 +21,13 @@ android:orientation="horizontal" android:padding="5dp"> + - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_evaluation_result.xml b/app/src/main/res/layout/fragment_evaluation_result.xml index 88a6d93e..3708a3de 100644 --- a/app/src/main/res/layout/fragment_evaluation_result.xml +++ b/app/src/main/res/layout/fragment_evaluation_result.xml @@ -138,23 +138,25 @@ - - = RealmList(), /** * 显示坐标 */ @@ -87,8 +88,6 @@ open class QsRecordBean @JvmOverloads constructor( */ var guideGeometry: String = "", - var attachments:RealmSet, - ) : RealmObject() { fun copy(): QsRecordBean { @@ -107,7 +106,7 @@ open class QsRecordBean @JvmOverloads constructor( confirmUserId = confirmUserId, t_lifecycle = t_lifecycle, t_status = t_status, - attachments = attachments, + attachmentBeanList = attachmentBeanList, ) qs.geometry = geometry return qs From ebfdd778b953f1ccb2d62da692d42f3f8bf25a59 Mon Sep 17 00:00:00 2001 From: qiji4215 Date: Thu, 4 May 2023 13:54:09 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=BD=95=E9=9F=B3?= =?UTF-8?q?=E7=82=B9=E5=87=BB=E6=92=AD=E6=94=BE=E4=B8=9A=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../EvaluationResultFragment.kt | 15 ++++++---- .../evaluationresult/SoundtListAdapter.kt | 30 +++++++------------ 2 files changed, 21 insertions(+), 24 deletions(-) diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultFragment.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultFragment.kt index 9b9a1ecf..b62df455 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultFragment.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultFragment.kt @@ -10,23 +10,20 @@ import android.view.ViewGroup import androidx.annotation.RequiresApi import androidx.databinding.DataBindingUtil import androidx.navigation.NavOptions -import androidx.navigation.findNavController import androidx.recyclerview.widget.LinearLayoutManager import com.navinfo.omqs.Constant import com.navinfo.omqs.R import com.navinfo.omqs.databinding.FragmentEvaluationResultBinding import com.navinfo.omqs.ui.fragment.BaseFragment -import com.navinfo.omqs.ui.fragment.tasklist.TaskListAdapter import com.navinfo.omqs.ui.other.shareViewModels import dagger.hilt.android.AndroidEntryPoint +import androidx.navigation.findNavController @AndroidEntryPoint class EvaluationResultFragment : BaseFragment(), View.OnClickListener { private lateinit var binding: FragmentEvaluationResultBinding private val viewModel by shareViewModels("QsRecode") - private val adapter: SoundtListAdapter by lazy { - SoundtListAdapter() - } + override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View { @@ -39,10 +36,18 @@ class EvaluationResultFragment : BaseFragment(), View.OnClickListener { //// 设置 RecyclerView 的固定大小,避免在滚动时重新计算视图大小和布局,提高性能 binding.evaluationVoiceRecyclerview.setHasFixedSize(true) binding.evaluationVoiceRecyclerview.layoutManager = layoutManager + /** + * 监听左侧栏的点击事件 + */ + val adapter = SoundtListAdapter { _, view -> + + } + binding.evaluationVoiceRecyclerview.adapter = adapter viewModel.listDataChatMsgEntityList.observe(viewLifecycleOwner) { adapter.refreshData(it) } + viewModel.getChatMsgEntityList() return binding.root } diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/SoundtListAdapter.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/SoundtListAdapter.kt index 519bf4ad..31a323b0 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/SoundtListAdapter.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/SoundtListAdapter.kt @@ -26,6 +26,7 @@ import java.io.* *使用 LifecycleRegistry 给 ViewHolder 分发生命周期(这里使用了这个) */ class SoundtListAdapter( + private var itemListener: ((Int, View) -> Unit?)? = null ) : BaseRecyclerViewAdapter() { //媒体播放器 @@ -42,8 +43,6 @@ class SoundtListAdapter( //录音时动画效果 private var animaV: AnimationDrawable? = null - private var itemClick: OnItemClickListner? = null - //最大宽度 private val maxWidth = 0 @@ -67,14 +66,14 @@ class SoundtListAdapter( holder.viewBinding.tvTime.isSelected = entity.isDelete holder.viewBinding.rlSoundContent.isSelected = entity.isDelete holder.viewBinding.ivSoundAnim.setBackgroundResource(R.drawable.icon_sound_03) -/* if (itemClick != null) { - holder.viewBinding.rlSoundContent.setOnClickListener { - itemClick!!.onItemClick(it.findViewById(R.id.rl_sound_content), position) - } - }*/ + + holder.viewBinding.rlSoundContent.setOnClickListener { + setPlayerIndex(it.findViewById(R.id.rl_sound_content),position) + } + //mixWidth if (!TextUtils.isEmpty(entity.name)) { -/* if (entity.name.indexOf(".pcm") > 0) { + if (entity.name!!.indexOf(".pcm") > 0) { val file: File = File(entity.voiceUri + entity.name) if (file != null) { val time = (file.length() / 16000).toInt() @@ -90,7 +89,7 @@ class SoundtListAdapter( try { md = MediaPlayer() md!!.reset() - md!!.setDataSource(entity.voiceUri+entity.name) + md!!.setDataSource(entity.voiceUri + entity.name) md!!.prepare() } catch (e: Exception) { // TODO Auto-generated catch block @@ -111,7 +110,7 @@ class SoundtListAdapter( } holder.viewBinding.tvTime.text = time md!!.release() - }*/ + } } } @@ -143,11 +142,11 @@ class SoundtListAdapter( imageV.setBackgroundResource(R.drawable.sound_anim) animaV = imageV.background as AnimationDrawable animaV!!.start() -/* if (name.index(".pcm") > 0) { + if (name!!.indexOf(".pcm") > 0) { audioTrackPlay(name, imageV) } else { mediaPlayer(name, imageV) - }*/ + } } fun mediaPlayer(name: String, imageV: ImageView) { @@ -225,13 +224,6 @@ class SoundtListAdapter( } } - fun setOnItemClickListener(clickListner: OnItemClickListner) { - itemClick = clickListner - } - - interface OnItemClickListner { - fun onItemClick(view: View?, postion: Int) - } override fun getItemViewRes(position: Int): Int { return R.layout.adapter_sound_list