diff --git a/.idea/misc.xml b/.idea/misc.xml index 9d89672..5d2e255 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,7 +1,7 @@ - + diff --git a/.idea/misc.xml b/.idea/misc.xml index 9d89672..5d2e255 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,7 +1,7 @@ - + diff --git a/app/src/main/java/com/casic/br/ar/app/view/CheckManifestActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/CheckManifestActivity.kt index 70a0879..c022594 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/CheckManifestActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/CheckManifestActivity.kt @@ -1,115 +1,71 @@ package com.casic.br.ar.app.view import android.os.Bundle -import android.os.Handler -import android.os.Message -import androidx.lifecycle.ViewModelProvider +import android.view.View import com.casic.br.ar.app.R import com.casic.br.ar.app.databinding.ActivityCheckManifestBinding -import com.casic.br.ar.app.extensions.initImmersionBar -import com.casic.br.ar.app.model.CheckManifestModel -import com.casic.br.ar.app.vm.CheckManifestViewModel +import com.casic.br.ar.app.model.DictionaryModel +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.divider.RecyclerViewItemOffsets -import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.LoadState -import com.pengxh.kt.lite.utils.LoadingDialogHub -import com.pengxh.kt.lite.utils.WeakReferenceHandler -import com.pengxh.kt.lite.widget.TitleBarView +import com.pengxh.kt.lite.extensions.dp2px +import com.pengxh.kt.lite.utils.Constant -class CheckManifestActivity : KotlinBaseActivity(), Handler.Callback { +class CheckManifestActivity : KotlinBaseActivity() { - private lateinit var weakReferenceHandler: WeakReferenceHandler - private lateinit var checkManifestViewModel: CheckManifestViewModel - private lateinit var checkManifestAdapter: NormalRecyclerAdapter - private var dataBeans: MutableList = ArrayList() - private var keywords = "" - private var page = 1 - private var isRefresh = false - private var isLoadMore = false + private val gson by lazy { Gson() } + private val marginOffset by lazy { 7.dp2px(this) } override fun initEvent() { - binding.searchButton.setOnClickListener { - keywords = binding.searchView.text.toString().trim() - } - binding.refreshLayout.setOnRefreshListener { - isRefresh = true - page = 1 - getCheckManifestByPage() - } - - binding.refreshLayout.setOnLoadMoreListener { - isLoadMore = true - page++ - getCheckManifestByPage() - } } override fun initOnCreate(savedInstanceState: Bundle?) { - weakReferenceHandler = WeakReferenceHandler(this) - checkManifestViewModel = ViewModelProvider(this)[CheckManifestViewModel::class.java] - checkManifestViewModel.manifestResult.observe(this) { -// if (it.code == 200) { -// val dataRows = it.data?.rows!! -// when { -// isRefresh -> { -// checkManifestAdapter.setRefreshData(dataRows) -// binding.refreshLayout.finishRefresh() -// isRefresh = false -// } -// -// isLoadMore -> { -// if (dataRows.size == 0) { -// "到底了,别拉了".show(this) -// } -// checkManifestAdapter.setLoadMoreData(dataRows) -// binding.refreshLayout.finishLoadMore() -// isLoadMore = false -// } -// -// else -> { -// dataBeans = dataRows -// weakReferenceHandler.sendEmptyMessage(2024030501) -// } -// } -// } - } - } + val sceneJsonValue = intent.getStringExtra(Constant.INTENT_PARAM) + //转为实体类 + val sceneModels = gson.fromJson>( + sceneJsonValue, object : TypeToken>() {}.type + ) - private fun getCheckManifestByPage() { - checkManifestViewModel.getCheckManifestByPage(this, keywords, page) - } - - override fun handleMessage(msg: Message): Boolean { - when (msg.what) { - 2024030501 -> { - checkManifestAdapter = object : - NormalRecyclerAdapter( - R.layout.item_check_manifest, dataBeans - ) { - override fun convertView( - viewHolder: ViewHolder, position: Int, - item: CheckManifestModel - ) { - - } + val checkManifestAdapter = object : NormalRecyclerAdapter( + R.layout.item_check_manifest_l, sceneModels + ) { + override fun convertView( + viewHolder: ViewHolder, position: Int, item: DictionaryModel.DataModel + ) { + val imageSource = when (item.name) { + "配电箱" -> R.drawable.ic_manifest_elec_box + "调压站" -> R.drawable.ic_manifest_pressure_station + "非居民用户" -> R.drawable.ic_manifest_no_people + "建筑消防" -> R.drawable.ic_manifest_building + "有限空间作业" -> R.drawable.ic_manifest_confined_spaces + else -> 0 } - binding.recyclerView.adapter = checkManifestAdapter - binding.recyclerView.addItemDecoration(RecyclerViewItemOffsets(0, 7, 0, 7)) - checkManifestAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { - override fun onItemClicked( - position: Int, t: CheckManifestModel - ) { - //TODO 查看检查清单详情 - } - }) + + viewHolder.setImageResource(R.id.imageView, imageSource) + .setText(R.id.textView, item.name) } } - return true + binding.recyclerView.adapter = checkManifestAdapter + binding.recyclerView.addItemDecoration( + RecyclerViewItemOffsets(marginOffset, marginOffset, marginOffset, marginOffset) + ) + checkManifestAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: DictionaryModel.DataModel) { + when (t.name) { + //TODO 未完 +// "配电箱" -> navigatePageTo<>() +// "调压站" -> navigatePageTo<>() +// "非居民用户" -> navigatePageTo<>() +// "建筑消防" -> navigatePageTo<>() +// "有限空间作业" -> navigatePageTo<>() + } + } + }) } override fun initViewBinding(): ActivityCheckManifestBinding { @@ -117,31 +73,11 @@ } override fun observeRequestState() { - checkManifestViewModel.loadState.observe(this) { - when (it) { - LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") - LoadState.Success -> { - LoadingDialogHub.dismiss() - } - LoadState.Fail -> { - LoadingDialogHub.dismiss() - "数据加载失败,请重试".show(this) - } - } - } } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.themeColor) - binding.titleView.setOnClickListener(object : TitleBarView.OnClickListener { - override fun onLeftClick() { - finish() - } - - override fun onRightClick() { - - } - }) + val uiOptions = (View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN) + window.decorView.systemUiVisibility = uiOptions } } \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index 9d89672..5d2e255 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,7 +1,7 @@ - + diff --git a/app/src/main/java/com/casic/br/ar/app/view/CheckManifestActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/CheckManifestActivity.kt index 70a0879..c022594 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/CheckManifestActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/CheckManifestActivity.kt @@ -1,115 +1,71 @@ package com.casic.br.ar.app.view import android.os.Bundle -import android.os.Handler -import android.os.Message -import androidx.lifecycle.ViewModelProvider +import android.view.View import com.casic.br.ar.app.R import com.casic.br.ar.app.databinding.ActivityCheckManifestBinding -import com.casic.br.ar.app.extensions.initImmersionBar -import com.casic.br.ar.app.model.CheckManifestModel -import com.casic.br.ar.app.vm.CheckManifestViewModel +import com.casic.br.ar.app.model.DictionaryModel +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.divider.RecyclerViewItemOffsets -import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.LoadState -import com.pengxh.kt.lite.utils.LoadingDialogHub -import com.pengxh.kt.lite.utils.WeakReferenceHandler -import com.pengxh.kt.lite.widget.TitleBarView +import com.pengxh.kt.lite.extensions.dp2px +import com.pengxh.kt.lite.utils.Constant -class CheckManifestActivity : KotlinBaseActivity(), Handler.Callback { +class CheckManifestActivity : KotlinBaseActivity() { - private lateinit var weakReferenceHandler: WeakReferenceHandler - private lateinit var checkManifestViewModel: CheckManifestViewModel - private lateinit var checkManifestAdapter: NormalRecyclerAdapter - private var dataBeans: MutableList = ArrayList() - private var keywords = "" - private var page = 1 - private var isRefresh = false - private var isLoadMore = false + private val gson by lazy { Gson() } + private val marginOffset by lazy { 7.dp2px(this) } override fun initEvent() { - binding.searchButton.setOnClickListener { - keywords = binding.searchView.text.toString().trim() - } - binding.refreshLayout.setOnRefreshListener { - isRefresh = true - page = 1 - getCheckManifestByPage() - } - - binding.refreshLayout.setOnLoadMoreListener { - isLoadMore = true - page++ - getCheckManifestByPage() - } } override fun initOnCreate(savedInstanceState: Bundle?) { - weakReferenceHandler = WeakReferenceHandler(this) - checkManifestViewModel = ViewModelProvider(this)[CheckManifestViewModel::class.java] - checkManifestViewModel.manifestResult.observe(this) { -// if (it.code == 200) { -// val dataRows = it.data?.rows!! -// when { -// isRefresh -> { -// checkManifestAdapter.setRefreshData(dataRows) -// binding.refreshLayout.finishRefresh() -// isRefresh = false -// } -// -// isLoadMore -> { -// if (dataRows.size == 0) { -// "到底了,别拉了".show(this) -// } -// checkManifestAdapter.setLoadMoreData(dataRows) -// binding.refreshLayout.finishLoadMore() -// isLoadMore = false -// } -// -// else -> { -// dataBeans = dataRows -// weakReferenceHandler.sendEmptyMessage(2024030501) -// } -// } -// } - } - } + val sceneJsonValue = intent.getStringExtra(Constant.INTENT_PARAM) + //转为实体类 + val sceneModels = gson.fromJson>( + sceneJsonValue, object : TypeToken>() {}.type + ) - private fun getCheckManifestByPage() { - checkManifestViewModel.getCheckManifestByPage(this, keywords, page) - } - - override fun handleMessage(msg: Message): Boolean { - when (msg.what) { - 2024030501 -> { - checkManifestAdapter = object : - NormalRecyclerAdapter( - R.layout.item_check_manifest, dataBeans - ) { - override fun convertView( - viewHolder: ViewHolder, position: Int, - item: CheckManifestModel - ) { - - } + val checkManifestAdapter = object : NormalRecyclerAdapter( + R.layout.item_check_manifest_l, sceneModels + ) { + override fun convertView( + viewHolder: ViewHolder, position: Int, item: DictionaryModel.DataModel + ) { + val imageSource = when (item.name) { + "配电箱" -> R.drawable.ic_manifest_elec_box + "调压站" -> R.drawable.ic_manifest_pressure_station + "非居民用户" -> R.drawable.ic_manifest_no_people + "建筑消防" -> R.drawable.ic_manifest_building + "有限空间作业" -> R.drawable.ic_manifest_confined_spaces + else -> 0 } - binding.recyclerView.adapter = checkManifestAdapter - binding.recyclerView.addItemDecoration(RecyclerViewItemOffsets(0, 7, 0, 7)) - checkManifestAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { - override fun onItemClicked( - position: Int, t: CheckManifestModel - ) { - //TODO 查看检查清单详情 - } - }) + + viewHolder.setImageResource(R.id.imageView, imageSource) + .setText(R.id.textView, item.name) } } - return true + binding.recyclerView.adapter = checkManifestAdapter + binding.recyclerView.addItemDecoration( + RecyclerViewItemOffsets(marginOffset, marginOffset, marginOffset, marginOffset) + ) + checkManifestAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: DictionaryModel.DataModel) { + when (t.name) { + //TODO 未完 +// "配电箱" -> navigatePageTo<>() +// "调压站" -> navigatePageTo<>() +// "非居民用户" -> navigatePageTo<>() +// "建筑消防" -> navigatePageTo<>() +// "有限空间作业" -> navigatePageTo<>() + } + } + }) } override fun initViewBinding(): ActivityCheckManifestBinding { @@ -117,31 +73,11 @@ } override fun observeRequestState() { - checkManifestViewModel.loadState.observe(this) { - when (it) { - LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") - LoadState.Success -> { - LoadingDialogHub.dismiss() - } - LoadState.Fail -> { - LoadingDialogHub.dismiss() - "数据加载失败,请重试".show(this) - } - } - } } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.themeColor) - binding.titleView.setOnClickListener(object : TitleBarView.OnClickListener { - override fun onLeftClick() { - finish() - } - - override fun onRightClick() { - - } - }) + val uiOptions = (View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN) + window.decorView.systemUiVisibility = uiOptions } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt index 3ea8ec8..571aaa7 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt @@ -3,10 +3,10 @@ import android.os.Bundle import android.os.Handler import android.os.Message +import android.view.View import androidx.lifecycle.ViewModelProvider import com.casic.br.ar.app.R import com.casic.br.ar.app.databinding.ActivityHiddenTroubleBinding -import com.casic.br.ar.app.extensions.initImmersionBar import com.casic.br.ar.app.model.HiddenTroubleModel import com.casic.br.ar.app.vm.HiddenTroubleViewModel import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter @@ -17,7 +17,6 @@ import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialogHub import com.pengxh.kt.lite.utils.WeakReferenceHandler -import com.pengxh.kt.lite.widget.TitleBarView class HiddenTroubleActivity : KotlinBaseActivity(), Handler.Callback { @@ -133,15 +132,7 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.themeColor) - binding.titleView.setOnClickListener(object : TitleBarView.OnClickListener { - override fun onLeftClick() { - finish() - } - - override fun onRightClick() { - - } - }) + val uiOptions = (View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN) + window.decorView.systemUiVisibility = uiOptions } } \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index 9d89672..5d2e255 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,7 +1,7 @@ - + diff --git a/app/src/main/java/com/casic/br/ar/app/view/CheckManifestActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/CheckManifestActivity.kt index 70a0879..c022594 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/CheckManifestActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/CheckManifestActivity.kt @@ -1,115 +1,71 @@ package com.casic.br.ar.app.view import android.os.Bundle -import android.os.Handler -import android.os.Message -import androidx.lifecycle.ViewModelProvider +import android.view.View import com.casic.br.ar.app.R import com.casic.br.ar.app.databinding.ActivityCheckManifestBinding -import com.casic.br.ar.app.extensions.initImmersionBar -import com.casic.br.ar.app.model.CheckManifestModel -import com.casic.br.ar.app.vm.CheckManifestViewModel +import com.casic.br.ar.app.model.DictionaryModel +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.divider.RecyclerViewItemOffsets -import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.LoadState -import com.pengxh.kt.lite.utils.LoadingDialogHub -import com.pengxh.kt.lite.utils.WeakReferenceHandler -import com.pengxh.kt.lite.widget.TitleBarView +import com.pengxh.kt.lite.extensions.dp2px +import com.pengxh.kt.lite.utils.Constant -class CheckManifestActivity : KotlinBaseActivity(), Handler.Callback { +class CheckManifestActivity : KotlinBaseActivity() { - private lateinit var weakReferenceHandler: WeakReferenceHandler - private lateinit var checkManifestViewModel: CheckManifestViewModel - private lateinit var checkManifestAdapter: NormalRecyclerAdapter - private var dataBeans: MutableList = ArrayList() - private var keywords = "" - private var page = 1 - private var isRefresh = false - private var isLoadMore = false + private val gson by lazy { Gson() } + private val marginOffset by lazy { 7.dp2px(this) } override fun initEvent() { - binding.searchButton.setOnClickListener { - keywords = binding.searchView.text.toString().trim() - } - binding.refreshLayout.setOnRefreshListener { - isRefresh = true - page = 1 - getCheckManifestByPage() - } - - binding.refreshLayout.setOnLoadMoreListener { - isLoadMore = true - page++ - getCheckManifestByPage() - } } override fun initOnCreate(savedInstanceState: Bundle?) { - weakReferenceHandler = WeakReferenceHandler(this) - checkManifestViewModel = ViewModelProvider(this)[CheckManifestViewModel::class.java] - checkManifestViewModel.manifestResult.observe(this) { -// if (it.code == 200) { -// val dataRows = it.data?.rows!! -// when { -// isRefresh -> { -// checkManifestAdapter.setRefreshData(dataRows) -// binding.refreshLayout.finishRefresh() -// isRefresh = false -// } -// -// isLoadMore -> { -// if (dataRows.size == 0) { -// "到底了,别拉了".show(this) -// } -// checkManifestAdapter.setLoadMoreData(dataRows) -// binding.refreshLayout.finishLoadMore() -// isLoadMore = false -// } -// -// else -> { -// dataBeans = dataRows -// weakReferenceHandler.sendEmptyMessage(2024030501) -// } -// } -// } - } - } + val sceneJsonValue = intent.getStringExtra(Constant.INTENT_PARAM) + //转为实体类 + val sceneModels = gson.fromJson>( + sceneJsonValue, object : TypeToken>() {}.type + ) - private fun getCheckManifestByPage() { - checkManifestViewModel.getCheckManifestByPage(this, keywords, page) - } - - override fun handleMessage(msg: Message): Boolean { - when (msg.what) { - 2024030501 -> { - checkManifestAdapter = object : - NormalRecyclerAdapter( - R.layout.item_check_manifest, dataBeans - ) { - override fun convertView( - viewHolder: ViewHolder, position: Int, - item: CheckManifestModel - ) { - - } + val checkManifestAdapter = object : NormalRecyclerAdapter( + R.layout.item_check_manifest_l, sceneModels + ) { + override fun convertView( + viewHolder: ViewHolder, position: Int, item: DictionaryModel.DataModel + ) { + val imageSource = when (item.name) { + "配电箱" -> R.drawable.ic_manifest_elec_box + "调压站" -> R.drawable.ic_manifest_pressure_station + "非居民用户" -> R.drawable.ic_manifest_no_people + "建筑消防" -> R.drawable.ic_manifest_building + "有限空间作业" -> R.drawable.ic_manifest_confined_spaces + else -> 0 } - binding.recyclerView.adapter = checkManifestAdapter - binding.recyclerView.addItemDecoration(RecyclerViewItemOffsets(0, 7, 0, 7)) - checkManifestAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { - override fun onItemClicked( - position: Int, t: CheckManifestModel - ) { - //TODO 查看检查清单详情 - } - }) + + viewHolder.setImageResource(R.id.imageView, imageSource) + .setText(R.id.textView, item.name) } } - return true + binding.recyclerView.adapter = checkManifestAdapter + binding.recyclerView.addItemDecoration( + RecyclerViewItemOffsets(marginOffset, marginOffset, marginOffset, marginOffset) + ) + checkManifestAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: DictionaryModel.DataModel) { + when (t.name) { + //TODO 未完 +// "配电箱" -> navigatePageTo<>() +// "调压站" -> navigatePageTo<>() +// "非居民用户" -> navigatePageTo<>() +// "建筑消防" -> navigatePageTo<>() +// "有限空间作业" -> navigatePageTo<>() + } + } + }) } override fun initViewBinding(): ActivityCheckManifestBinding { @@ -117,31 +73,11 @@ } override fun observeRequestState() { - checkManifestViewModel.loadState.observe(this) { - when (it) { - LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") - LoadState.Success -> { - LoadingDialogHub.dismiss() - } - LoadState.Fail -> { - LoadingDialogHub.dismiss() - "数据加载失败,请重试".show(this) - } - } - } } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.themeColor) - binding.titleView.setOnClickListener(object : TitleBarView.OnClickListener { - override fun onLeftClick() { - finish() - } - - override fun onRightClick() { - - } - }) + val uiOptions = (View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN) + window.decorView.systemUiVisibility = uiOptions } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt index 3ea8ec8..571aaa7 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt @@ -3,10 +3,10 @@ import android.os.Bundle import android.os.Handler import android.os.Message +import android.view.View import androidx.lifecycle.ViewModelProvider import com.casic.br.ar.app.R import com.casic.br.ar.app.databinding.ActivityHiddenTroubleBinding -import com.casic.br.ar.app.extensions.initImmersionBar import com.casic.br.ar.app.model.HiddenTroubleModel import com.casic.br.ar.app.vm.HiddenTroubleViewModel import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter @@ -17,7 +17,6 @@ import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialogHub import com.pengxh.kt.lite.utils.WeakReferenceHandler -import com.pengxh.kt.lite.widget.TitleBarView class HiddenTroubleActivity : KotlinBaseActivity(), Handler.Callback { @@ -133,15 +132,7 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.themeColor) - binding.titleView.setOnClickListener(object : TitleBarView.OnClickListener { - override fun onLeftClick() { - finish() - } - - override fun onRightClick() { - - } - }) + val uiOptions = (View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN) + window.decorView.systemUiVisibility = uiOptions } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ar/app/view/LibraryActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/LibraryActivity.kt index bfaf417..dd63dd5 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/LibraryActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/LibraryActivity.kt @@ -44,11 +44,11 @@ result.add(0, dataModel1) val dataModel2 = LibraryModel.DataModel() - dataModel2.name = "检查清单" + dataModel2.name = "隐患目录" result.add(1, dataModel2) val dataModel3 = LibraryModel.DataModel() - dataModel3.name = "隐患目录" + dataModel3.name = "检查清单" result.add(2, dataModel3) val libraryAdapter = object : NormalRecyclerAdapter( @@ -59,8 +59,8 @@ ) { val imageSource = when (item.name) { "标准规范" -> R.drawable.ic_library_standard - "检查清单" -> R.drawable.ic_library_manifest "隐患目录" -> R.drawable.ic_library_trouble + "检查清单" -> R.drawable.ic_library_manifest "指导视频" -> R.drawable.ic_library_video else -> 0 } @@ -78,8 +78,8 @@ override fun onItemClicked(position: Int, t: LibraryModel.DataModel) { when (position) { 0 -> navigatePageTo() - 1 -> navigatePageTo(sceneModels.toJson()) - 2 -> navigatePageTo() + 1 -> navigatePageTo() + 2 -> navigatePageTo(sceneModels.toJson()) 3 -> navigatePageTo(t.id) else -> "未实现".show(context) } diff --git a/.idea/misc.xml b/.idea/misc.xml index 9d89672..5d2e255 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,7 +1,7 @@ - + diff --git a/app/src/main/java/com/casic/br/ar/app/view/CheckManifestActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/CheckManifestActivity.kt index 70a0879..c022594 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/CheckManifestActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/CheckManifestActivity.kt @@ -1,115 +1,71 @@ package com.casic.br.ar.app.view import android.os.Bundle -import android.os.Handler -import android.os.Message -import androidx.lifecycle.ViewModelProvider +import android.view.View import com.casic.br.ar.app.R import com.casic.br.ar.app.databinding.ActivityCheckManifestBinding -import com.casic.br.ar.app.extensions.initImmersionBar -import com.casic.br.ar.app.model.CheckManifestModel -import com.casic.br.ar.app.vm.CheckManifestViewModel +import com.casic.br.ar.app.model.DictionaryModel +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.divider.RecyclerViewItemOffsets -import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.LoadState -import com.pengxh.kt.lite.utils.LoadingDialogHub -import com.pengxh.kt.lite.utils.WeakReferenceHandler -import com.pengxh.kt.lite.widget.TitleBarView +import com.pengxh.kt.lite.extensions.dp2px +import com.pengxh.kt.lite.utils.Constant -class CheckManifestActivity : KotlinBaseActivity(), Handler.Callback { +class CheckManifestActivity : KotlinBaseActivity() { - private lateinit var weakReferenceHandler: WeakReferenceHandler - private lateinit var checkManifestViewModel: CheckManifestViewModel - private lateinit var checkManifestAdapter: NormalRecyclerAdapter - private var dataBeans: MutableList = ArrayList() - private var keywords = "" - private var page = 1 - private var isRefresh = false - private var isLoadMore = false + private val gson by lazy { Gson() } + private val marginOffset by lazy { 7.dp2px(this) } override fun initEvent() { - binding.searchButton.setOnClickListener { - keywords = binding.searchView.text.toString().trim() - } - binding.refreshLayout.setOnRefreshListener { - isRefresh = true - page = 1 - getCheckManifestByPage() - } - - binding.refreshLayout.setOnLoadMoreListener { - isLoadMore = true - page++ - getCheckManifestByPage() - } } override fun initOnCreate(savedInstanceState: Bundle?) { - weakReferenceHandler = WeakReferenceHandler(this) - checkManifestViewModel = ViewModelProvider(this)[CheckManifestViewModel::class.java] - checkManifestViewModel.manifestResult.observe(this) { -// if (it.code == 200) { -// val dataRows = it.data?.rows!! -// when { -// isRefresh -> { -// checkManifestAdapter.setRefreshData(dataRows) -// binding.refreshLayout.finishRefresh() -// isRefresh = false -// } -// -// isLoadMore -> { -// if (dataRows.size == 0) { -// "到底了,别拉了".show(this) -// } -// checkManifestAdapter.setLoadMoreData(dataRows) -// binding.refreshLayout.finishLoadMore() -// isLoadMore = false -// } -// -// else -> { -// dataBeans = dataRows -// weakReferenceHandler.sendEmptyMessage(2024030501) -// } -// } -// } - } - } + val sceneJsonValue = intent.getStringExtra(Constant.INTENT_PARAM) + //转为实体类 + val sceneModels = gson.fromJson>( + sceneJsonValue, object : TypeToken>() {}.type + ) - private fun getCheckManifestByPage() { - checkManifestViewModel.getCheckManifestByPage(this, keywords, page) - } - - override fun handleMessage(msg: Message): Boolean { - when (msg.what) { - 2024030501 -> { - checkManifestAdapter = object : - NormalRecyclerAdapter( - R.layout.item_check_manifest, dataBeans - ) { - override fun convertView( - viewHolder: ViewHolder, position: Int, - item: CheckManifestModel - ) { - - } + val checkManifestAdapter = object : NormalRecyclerAdapter( + R.layout.item_check_manifest_l, sceneModels + ) { + override fun convertView( + viewHolder: ViewHolder, position: Int, item: DictionaryModel.DataModel + ) { + val imageSource = when (item.name) { + "配电箱" -> R.drawable.ic_manifest_elec_box + "调压站" -> R.drawable.ic_manifest_pressure_station + "非居民用户" -> R.drawable.ic_manifest_no_people + "建筑消防" -> R.drawable.ic_manifest_building + "有限空间作业" -> R.drawable.ic_manifest_confined_spaces + else -> 0 } - binding.recyclerView.adapter = checkManifestAdapter - binding.recyclerView.addItemDecoration(RecyclerViewItemOffsets(0, 7, 0, 7)) - checkManifestAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { - override fun onItemClicked( - position: Int, t: CheckManifestModel - ) { - //TODO 查看检查清单详情 - } - }) + + viewHolder.setImageResource(R.id.imageView, imageSource) + .setText(R.id.textView, item.name) } } - return true + binding.recyclerView.adapter = checkManifestAdapter + binding.recyclerView.addItemDecoration( + RecyclerViewItemOffsets(marginOffset, marginOffset, marginOffset, marginOffset) + ) + checkManifestAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: DictionaryModel.DataModel) { + when (t.name) { + //TODO 未完 +// "配电箱" -> navigatePageTo<>() +// "调压站" -> navigatePageTo<>() +// "非居民用户" -> navigatePageTo<>() +// "建筑消防" -> navigatePageTo<>() +// "有限空间作业" -> navigatePageTo<>() + } + } + }) } override fun initViewBinding(): ActivityCheckManifestBinding { @@ -117,31 +73,11 @@ } override fun observeRequestState() { - checkManifestViewModel.loadState.observe(this) { - when (it) { - LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") - LoadState.Success -> { - LoadingDialogHub.dismiss() - } - LoadState.Fail -> { - LoadingDialogHub.dismiss() - "数据加载失败,请重试".show(this) - } - } - } } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.themeColor) - binding.titleView.setOnClickListener(object : TitleBarView.OnClickListener { - override fun onLeftClick() { - finish() - } - - override fun onRightClick() { - - } - }) + val uiOptions = (View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN) + window.decorView.systemUiVisibility = uiOptions } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt index 3ea8ec8..571aaa7 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt @@ -3,10 +3,10 @@ import android.os.Bundle import android.os.Handler import android.os.Message +import android.view.View import androidx.lifecycle.ViewModelProvider import com.casic.br.ar.app.R import com.casic.br.ar.app.databinding.ActivityHiddenTroubleBinding -import com.casic.br.ar.app.extensions.initImmersionBar import com.casic.br.ar.app.model.HiddenTroubleModel import com.casic.br.ar.app.vm.HiddenTroubleViewModel import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter @@ -17,7 +17,6 @@ import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialogHub import com.pengxh.kt.lite.utils.WeakReferenceHandler -import com.pengxh.kt.lite.widget.TitleBarView class HiddenTroubleActivity : KotlinBaseActivity(), Handler.Callback { @@ -133,15 +132,7 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.themeColor) - binding.titleView.setOnClickListener(object : TitleBarView.OnClickListener { - override fun onLeftClick() { - finish() - } - - override fun onRightClick() { - - } - }) + val uiOptions = (View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN) + window.decorView.systemUiVisibility = uiOptions } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ar/app/view/LibraryActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/LibraryActivity.kt index bfaf417..dd63dd5 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/LibraryActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/LibraryActivity.kt @@ -44,11 +44,11 @@ result.add(0, dataModel1) val dataModel2 = LibraryModel.DataModel() - dataModel2.name = "检查清单" + dataModel2.name = "隐患目录" result.add(1, dataModel2) val dataModel3 = LibraryModel.DataModel() - dataModel3.name = "隐患目录" + dataModel3.name = "检查清单" result.add(2, dataModel3) val libraryAdapter = object : NormalRecyclerAdapter( @@ -59,8 +59,8 @@ ) { val imageSource = when (item.name) { "标准规范" -> R.drawable.ic_library_standard - "检查清单" -> R.drawable.ic_library_manifest "隐患目录" -> R.drawable.ic_library_trouble + "检查清单" -> R.drawable.ic_library_manifest "指导视频" -> R.drawable.ic_library_video else -> 0 } @@ -78,8 +78,8 @@ override fun onItemClicked(position: Int, t: LibraryModel.DataModel) { when (position) { 0 -> navigatePageTo() - 1 -> navigatePageTo(sceneModels.toJson()) - 2 -> navigatePageTo() + 1 -> navigatePageTo() + 2 -> navigatePageTo(sceneModels.toJson()) 3 -> navigatePageTo(t.id) else -> "未实现".show(context) } diff --git a/app/src/main/java/com/casic/br/ar/app/view/VideoGuideActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/VideoGuideActivity.kt index e735aa9..344ff49 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/VideoGuideActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/VideoGuideActivity.kt @@ -3,10 +3,10 @@ import android.os.Bundle import android.os.Handler import android.os.Message +import android.view.View import androidx.lifecycle.ViewModelProvider import com.casic.br.ar.app.R import com.casic.br.ar.app.databinding.ActivityVideoGuideBinding -import com.casic.br.ar.app.extensions.initImmersionBar import com.casic.br.ar.app.model.VideoGuideModel import com.casic.br.ar.app.vm.VideoGuideViewModel import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter @@ -17,7 +17,6 @@ import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialogHub import com.pengxh.kt.lite.utils.WeakReferenceHandler -import com.pengxh.kt.lite.widget.TitleBarView class VideoGuideActivity : KotlinBaseActivity(), Handler.Callback { @@ -133,15 +132,7 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.themeColor) - binding.titleView.setOnClickListener(object : TitleBarView.OnClickListener { - override fun onLeftClick() { - finish() - } - - override fun onRightClick() { - - } - }) + val uiOptions = (View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN) + window.decorView.systemUiVisibility = uiOptions } } \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index 9d89672..5d2e255 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,7 +1,7 @@ - + diff --git a/app/src/main/java/com/casic/br/ar/app/view/CheckManifestActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/CheckManifestActivity.kt index 70a0879..c022594 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/CheckManifestActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/CheckManifestActivity.kt @@ -1,115 +1,71 @@ package com.casic.br.ar.app.view import android.os.Bundle -import android.os.Handler -import android.os.Message -import androidx.lifecycle.ViewModelProvider +import android.view.View import com.casic.br.ar.app.R import com.casic.br.ar.app.databinding.ActivityCheckManifestBinding -import com.casic.br.ar.app.extensions.initImmersionBar -import com.casic.br.ar.app.model.CheckManifestModel -import com.casic.br.ar.app.vm.CheckManifestViewModel +import com.casic.br.ar.app.model.DictionaryModel +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.divider.RecyclerViewItemOffsets -import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.LoadState -import com.pengxh.kt.lite.utils.LoadingDialogHub -import com.pengxh.kt.lite.utils.WeakReferenceHandler -import com.pengxh.kt.lite.widget.TitleBarView +import com.pengxh.kt.lite.extensions.dp2px +import com.pengxh.kt.lite.utils.Constant -class CheckManifestActivity : KotlinBaseActivity(), Handler.Callback { +class CheckManifestActivity : KotlinBaseActivity() { - private lateinit var weakReferenceHandler: WeakReferenceHandler - private lateinit var checkManifestViewModel: CheckManifestViewModel - private lateinit var checkManifestAdapter: NormalRecyclerAdapter - private var dataBeans: MutableList = ArrayList() - private var keywords = "" - private var page = 1 - private var isRefresh = false - private var isLoadMore = false + private val gson by lazy { Gson() } + private val marginOffset by lazy { 7.dp2px(this) } override fun initEvent() { - binding.searchButton.setOnClickListener { - keywords = binding.searchView.text.toString().trim() - } - binding.refreshLayout.setOnRefreshListener { - isRefresh = true - page = 1 - getCheckManifestByPage() - } - - binding.refreshLayout.setOnLoadMoreListener { - isLoadMore = true - page++ - getCheckManifestByPage() - } } override fun initOnCreate(savedInstanceState: Bundle?) { - weakReferenceHandler = WeakReferenceHandler(this) - checkManifestViewModel = ViewModelProvider(this)[CheckManifestViewModel::class.java] - checkManifestViewModel.manifestResult.observe(this) { -// if (it.code == 200) { -// val dataRows = it.data?.rows!! -// when { -// isRefresh -> { -// checkManifestAdapter.setRefreshData(dataRows) -// binding.refreshLayout.finishRefresh() -// isRefresh = false -// } -// -// isLoadMore -> { -// if (dataRows.size == 0) { -// "到底了,别拉了".show(this) -// } -// checkManifestAdapter.setLoadMoreData(dataRows) -// binding.refreshLayout.finishLoadMore() -// isLoadMore = false -// } -// -// else -> { -// dataBeans = dataRows -// weakReferenceHandler.sendEmptyMessage(2024030501) -// } -// } -// } - } - } + val sceneJsonValue = intent.getStringExtra(Constant.INTENT_PARAM) + //转为实体类 + val sceneModels = gson.fromJson>( + sceneJsonValue, object : TypeToken>() {}.type + ) - private fun getCheckManifestByPage() { - checkManifestViewModel.getCheckManifestByPage(this, keywords, page) - } - - override fun handleMessage(msg: Message): Boolean { - when (msg.what) { - 2024030501 -> { - checkManifestAdapter = object : - NormalRecyclerAdapter( - R.layout.item_check_manifest, dataBeans - ) { - override fun convertView( - viewHolder: ViewHolder, position: Int, - item: CheckManifestModel - ) { - - } + val checkManifestAdapter = object : NormalRecyclerAdapter( + R.layout.item_check_manifest_l, sceneModels + ) { + override fun convertView( + viewHolder: ViewHolder, position: Int, item: DictionaryModel.DataModel + ) { + val imageSource = when (item.name) { + "配电箱" -> R.drawable.ic_manifest_elec_box + "调压站" -> R.drawable.ic_manifest_pressure_station + "非居民用户" -> R.drawable.ic_manifest_no_people + "建筑消防" -> R.drawable.ic_manifest_building + "有限空间作业" -> R.drawable.ic_manifest_confined_spaces + else -> 0 } - binding.recyclerView.adapter = checkManifestAdapter - binding.recyclerView.addItemDecoration(RecyclerViewItemOffsets(0, 7, 0, 7)) - checkManifestAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { - override fun onItemClicked( - position: Int, t: CheckManifestModel - ) { - //TODO 查看检查清单详情 - } - }) + + viewHolder.setImageResource(R.id.imageView, imageSource) + .setText(R.id.textView, item.name) } } - return true + binding.recyclerView.adapter = checkManifestAdapter + binding.recyclerView.addItemDecoration( + RecyclerViewItemOffsets(marginOffset, marginOffset, marginOffset, marginOffset) + ) + checkManifestAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: DictionaryModel.DataModel) { + when (t.name) { + //TODO 未完 +// "配电箱" -> navigatePageTo<>() +// "调压站" -> navigatePageTo<>() +// "非居民用户" -> navigatePageTo<>() +// "建筑消防" -> navigatePageTo<>() +// "有限空间作业" -> navigatePageTo<>() + } + } + }) } override fun initViewBinding(): ActivityCheckManifestBinding { @@ -117,31 +73,11 @@ } override fun observeRequestState() { - checkManifestViewModel.loadState.observe(this) { - when (it) { - LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") - LoadState.Success -> { - LoadingDialogHub.dismiss() - } - LoadState.Fail -> { - LoadingDialogHub.dismiss() - "数据加载失败,请重试".show(this) - } - } - } } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.themeColor) - binding.titleView.setOnClickListener(object : TitleBarView.OnClickListener { - override fun onLeftClick() { - finish() - } - - override fun onRightClick() { - - } - }) + val uiOptions = (View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN) + window.decorView.systemUiVisibility = uiOptions } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt index 3ea8ec8..571aaa7 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt @@ -3,10 +3,10 @@ import android.os.Bundle import android.os.Handler import android.os.Message +import android.view.View import androidx.lifecycle.ViewModelProvider import com.casic.br.ar.app.R import com.casic.br.ar.app.databinding.ActivityHiddenTroubleBinding -import com.casic.br.ar.app.extensions.initImmersionBar import com.casic.br.ar.app.model.HiddenTroubleModel import com.casic.br.ar.app.vm.HiddenTroubleViewModel import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter @@ -17,7 +17,6 @@ import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialogHub import com.pengxh.kt.lite.utils.WeakReferenceHandler -import com.pengxh.kt.lite.widget.TitleBarView class HiddenTroubleActivity : KotlinBaseActivity(), Handler.Callback { @@ -133,15 +132,7 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.themeColor) - binding.titleView.setOnClickListener(object : TitleBarView.OnClickListener { - override fun onLeftClick() { - finish() - } - - override fun onRightClick() { - - } - }) + val uiOptions = (View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN) + window.decorView.systemUiVisibility = uiOptions } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ar/app/view/LibraryActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/LibraryActivity.kt index bfaf417..dd63dd5 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/LibraryActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/LibraryActivity.kt @@ -44,11 +44,11 @@ result.add(0, dataModel1) val dataModel2 = LibraryModel.DataModel() - dataModel2.name = "检查清单" + dataModel2.name = "隐患目录" result.add(1, dataModel2) val dataModel3 = LibraryModel.DataModel() - dataModel3.name = "隐患目录" + dataModel3.name = "检查清单" result.add(2, dataModel3) val libraryAdapter = object : NormalRecyclerAdapter( @@ -59,8 +59,8 @@ ) { val imageSource = when (item.name) { "标准规范" -> R.drawable.ic_library_standard - "检查清单" -> R.drawable.ic_library_manifest "隐患目录" -> R.drawable.ic_library_trouble + "检查清单" -> R.drawable.ic_library_manifest "指导视频" -> R.drawable.ic_library_video else -> 0 } @@ -78,8 +78,8 @@ override fun onItemClicked(position: Int, t: LibraryModel.DataModel) { when (position) { 0 -> navigatePageTo() - 1 -> navigatePageTo(sceneModels.toJson()) - 2 -> navigatePageTo() + 1 -> navigatePageTo() + 2 -> navigatePageTo(sceneModels.toJson()) 3 -> navigatePageTo(t.id) else -> "未实现".show(context) } diff --git a/app/src/main/java/com/casic/br/ar/app/view/VideoGuideActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/VideoGuideActivity.kt index e735aa9..344ff49 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/VideoGuideActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/VideoGuideActivity.kt @@ -3,10 +3,10 @@ import android.os.Bundle import android.os.Handler import android.os.Message +import android.view.View import androidx.lifecycle.ViewModelProvider import com.casic.br.ar.app.R import com.casic.br.ar.app.databinding.ActivityVideoGuideBinding -import com.casic.br.ar.app.extensions.initImmersionBar import com.casic.br.ar.app.model.VideoGuideModel import com.casic.br.ar.app.vm.VideoGuideViewModel import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter @@ -17,7 +17,6 @@ import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialogHub import com.pengxh.kt.lite.utils.WeakReferenceHandler -import com.pengxh.kt.lite.widget.TitleBarView class VideoGuideActivity : KotlinBaseActivity(), Handler.Callback { @@ -133,15 +132,7 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.themeColor) - binding.titleView.setOnClickListener(object : TitleBarView.OnClickListener { - override fun onLeftClick() { - finish() - } - - override fun onRightClick() { - - } - }) + val uiOptions = (View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN) + window.decorView.systemUiVisibility = uiOptions } } \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_manifest_building.xml b/app/src/main/res/drawable/ic_manifest_building.xml new file mode 100644 index 0000000..aa693dc --- /dev/null +++ b/app/src/main/res/drawable/ic_manifest_building.xml @@ -0,0 +1,12 @@ + + + + diff --git a/.idea/misc.xml b/.idea/misc.xml index 9d89672..5d2e255 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,7 +1,7 @@ - + diff --git a/app/src/main/java/com/casic/br/ar/app/view/CheckManifestActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/CheckManifestActivity.kt index 70a0879..c022594 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/CheckManifestActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/CheckManifestActivity.kt @@ -1,115 +1,71 @@ package com.casic.br.ar.app.view import android.os.Bundle -import android.os.Handler -import android.os.Message -import androidx.lifecycle.ViewModelProvider +import android.view.View import com.casic.br.ar.app.R import com.casic.br.ar.app.databinding.ActivityCheckManifestBinding -import com.casic.br.ar.app.extensions.initImmersionBar -import com.casic.br.ar.app.model.CheckManifestModel -import com.casic.br.ar.app.vm.CheckManifestViewModel +import com.casic.br.ar.app.model.DictionaryModel +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.divider.RecyclerViewItemOffsets -import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.LoadState -import com.pengxh.kt.lite.utils.LoadingDialogHub -import com.pengxh.kt.lite.utils.WeakReferenceHandler -import com.pengxh.kt.lite.widget.TitleBarView +import com.pengxh.kt.lite.extensions.dp2px +import com.pengxh.kt.lite.utils.Constant -class CheckManifestActivity : KotlinBaseActivity(), Handler.Callback { +class CheckManifestActivity : KotlinBaseActivity() { - private lateinit var weakReferenceHandler: WeakReferenceHandler - private lateinit var checkManifestViewModel: CheckManifestViewModel - private lateinit var checkManifestAdapter: NormalRecyclerAdapter - private var dataBeans: MutableList = ArrayList() - private var keywords = "" - private var page = 1 - private var isRefresh = false - private var isLoadMore = false + private val gson by lazy { Gson() } + private val marginOffset by lazy { 7.dp2px(this) } override fun initEvent() { - binding.searchButton.setOnClickListener { - keywords = binding.searchView.text.toString().trim() - } - binding.refreshLayout.setOnRefreshListener { - isRefresh = true - page = 1 - getCheckManifestByPage() - } - - binding.refreshLayout.setOnLoadMoreListener { - isLoadMore = true - page++ - getCheckManifestByPage() - } } override fun initOnCreate(savedInstanceState: Bundle?) { - weakReferenceHandler = WeakReferenceHandler(this) - checkManifestViewModel = ViewModelProvider(this)[CheckManifestViewModel::class.java] - checkManifestViewModel.manifestResult.observe(this) { -// if (it.code == 200) { -// val dataRows = it.data?.rows!! -// when { -// isRefresh -> { -// checkManifestAdapter.setRefreshData(dataRows) -// binding.refreshLayout.finishRefresh() -// isRefresh = false -// } -// -// isLoadMore -> { -// if (dataRows.size == 0) { -// "到底了,别拉了".show(this) -// } -// checkManifestAdapter.setLoadMoreData(dataRows) -// binding.refreshLayout.finishLoadMore() -// isLoadMore = false -// } -// -// else -> { -// dataBeans = dataRows -// weakReferenceHandler.sendEmptyMessage(2024030501) -// } -// } -// } - } - } + val sceneJsonValue = intent.getStringExtra(Constant.INTENT_PARAM) + //转为实体类 + val sceneModels = gson.fromJson>( + sceneJsonValue, object : TypeToken>() {}.type + ) - private fun getCheckManifestByPage() { - checkManifestViewModel.getCheckManifestByPage(this, keywords, page) - } - - override fun handleMessage(msg: Message): Boolean { - when (msg.what) { - 2024030501 -> { - checkManifestAdapter = object : - NormalRecyclerAdapter( - R.layout.item_check_manifest, dataBeans - ) { - override fun convertView( - viewHolder: ViewHolder, position: Int, - item: CheckManifestModel - ) { - - } + val checkManifestAdapter = object : NormalRecyclerAdapter( + R.layout.item_check_manifest_l, sceneModels + ) { + override fun convertView( + viewHolder: ViewHolder, position: Int, item: DictionaryModel.DataModel + ) { + val imageSource = when (item.name) { + "配电箱" -> R.drawable.ic_manifest_elec_box + "调压站" -> R.drawable.ic_manifest_pressure_station + "非居民用户" -> R.drawable.ic_manifest_no_people + "建筑消防" -> R.drawable.ic_manifest_building + "有限空间作业" -> R.drawable.ic_manifest_confined_spaces + else -> 0 } - binding.recyclerView.adapter = checkManifestAdapter - binding.recyclerView.addItemDecoration(RecyclerViewItemOffsets(0, 7, 0, 7)) - checkManifestAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { - override fun onItemClicked( - position: Int, t: CheckManifestModel - ) { - //TODO 查看检查清单详情 - } - }) + + viewHolder.setImageResource(R.id.imageView, imageSource) + .setText(R.id.textView, item.name) } } - return true + binding.recyclerView.adapter = checkManifestAdapter + binding.recyclerView.addItemDecoration( + RecyclerViewItemOffsets(marginOffset, marginOffset, marginOffset, marginOffset) + ) + checkManifestAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: DictionaryModel.DataModel) { + when (t.name) { + //TODO 未完 +// "配电箱" -> navigatePageTo<>() +// "调压站" -> navigatePageTo<>() +// "非居民用户" -> navigatePageTo<>() +// "建筑消防" -> navigatePageTo<>() +// "有限空间作业" -> navigatePageTo<>() + } + } + }) } override fun initViewBinding(): ActivityCheckManifestBinding { @@ -117,31 +73,11 @@ } override fun observeRequestState() { - checkManifestViewModel.loadState.observe(this) { - when (it) { - LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") - LoadState.Success -> { - LoadingDialogHub.dismiss() - } - LoadState.Fail -> { - LoadingDialogHub.dismiss() - "数据加载失败,请重试".show(this) - } - } - } } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.themeColor) - binding.titleView.setOnClickListener(object : TitleBarView.OnClickListener { - override fun onLeftClick() { - finish() - } - - override fun onRightClick() { - - } - }) + val uiOptions = (View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN) + window.decorView.systemUiVisibility = uiOptions } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt index 3ea8ec8..571aaa7 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt @@ -3,10 +3,10 @@ import android.os.Bundle import android.os.Handler import android.os.Message +import android.view.View import androidx.lifecycle.ViewModelProvider import com.casic.br.ar.app.R import com.casic.br.ar.app.databinding.ActivityHiddenTroubleBinding -import com.casic.br.ar.app.extensions.initImmersionBar import com.casic.br.ar.app.model.HiddenTroubleModel import com.casic.br.ar.app.vm.HiddenTroubleViewModel import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter @@ -17,7 +17,6 @@ import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialogHub import com.pengxh.kt.lite.utils.WeakReferenceHandler -import com.pengxh.kt.lite.widget.TitleBarView class HiddenTroubleActivity : KotlinBaseActivity(), Handler.Callback { @@ -133,15 +132,7 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.themeColor) - binding.titleView.setOnClickListener(object : TitleBarView.OnClickListener { - override fun onLeftClick() { - finish() - } - - override fun onRightClick() { - - } - }) + val uiOptions = (View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN) + window.decorView.systemUiVisibility = uiOptions } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ar/app/view/LibraryActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/LibraryActivity.kt index bfaf417..dd63dd5 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/LibraryActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/LibraryActivity.kt @@ -44,11 +44,11 @@ result.add(0, dataModel1) val dataModel2 = LibraryModel.DataModel() - dataModel2.name = "检查清单" + dataModel2.name = "隐患目录" result.add(1, dataModel2) val dataModel3 = LibraryModel.DataModel() - dataModel3.name = "隐患目录" + dataModel3.name = "检查清单" result.add(2, dataModel3) val libraryAdapter = object : NormalRecyclerAdapter( @@ -59,8 +59,8 @@ ) { val imageSource = when (item.name) { "标准规范" -> R.drawable.ic_library_standard - "检查清单" -> R.drawable.ic_library_manifest "隐患目录" -> R.drawable.ic_library_trouble + "检查清单" -> R.drawable.ic_library_manifest "指导视频" -> R.drawable.ic_library_video else -> 0 } @@ -78,8 +78,8 @@ override fun onItemClicked(position: Int, t: LibraryModel.DataModel) { when (position) { 0 -> navigatePageTo() - 1 -> navigatePageTo(sceneModels.toJson()) - 2 -> navigatePageTo() + 1 -> navigatePageTo() + 2 -> navigatePageTo(sceneModels.toJson()) 3 -> navigatePageTo(t.id) else -> "未实现".show(context) } diff --git a/app/src/main/java/com/casic/br/ar/app/view/VideoGuideActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/VideoGuideActivity.kt index e735aa9..344ff49 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/VideoGuideActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/VideoGuideActivity.kt @@ -3,10 +3,10 @@ import android.os.Bundle import android.os.Handler import android.os.Message +import android.view.View import androidx.lifecycle.ViewModelProvider import com.casic.br.ar.app.R import com.casic.br.ar.app.databinding.ActivityVideoGuideBinding -import com.casic.br.ar.app.extensions.initImmersionBar import com.casic.br.ar.app.model.VideoGuideModel import com.casic.br.ar.app.vm.VideoGuideViewModel import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter @@ -17,7 +17,6 @@ import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialogHub import com.pengxh.kt.lite.utils.WeakReferenceHandler -import com.pengxh.kt.lite.widget.TitleBarView class VideoGuideActivity : KotlinBaseActivity(), Handler.Callback { @@ -133,15 +132,7 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.themeColor) - binding.titleView.setOnClickListener(object : TitleBarView.OnClickListener { - override fun onLeftClick() { - finish() - } - - override fun onRightClick() { - - } - }) + val uiOptions = (View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN) + window.decorView.systemUiVisibility = uiOptions } } \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_manifest_building.xml b/app/src/main/res/drawable/ic_manifest_building.xml new file mode 100644 index 0000000..aa693dc --- /dev/null +++ b/app/src/main/res/drawable/ic_manifest_building.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/drawable/ic_manifest_confined_spaces.xml b/app/src/main/res/drawable/ic_manifest_confined_spaces.xml new file mode 100644 index 0000000..a20a542 --- /dev/null +++ b/app/src/main/res/drawable/ic_manifest_confined_spaces.xml @@ -0,0 +1,9 @@ + + + diff --git a/.idea/misc.xml b/.idea/misc.xml index 9d89672..5d2e255 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,7 +1,7 @@ - + diff --git a/app/src/main/java/com/casic/br/ar/app/view/CheckManifestActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/CheckManifestActivity.kt index 70a0879..c022594 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/CheckManifestActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/CheckManifestActivity.kt @@ -1,115 +1,71 @@ package com.casic.br.ar.app.view import android.os.Bundle -import android.os.Handler -import android.os.Message -import androidx.lifecycle.ViewModelProvider +import android.view.View import com.casic.br.ar.app.R import com.casic.br.ar.app.databinding.ActivityCheckManifestBinding -import com.casic.br.ar.app.extensions.initImmersionBar -import com.casic.br.ar.app.model.CheckManifestModel -import com.casic.br.ar.app.vm.CheckManifestViewModel +import com.casic.br.ar.app.model.DictionaryModel +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.divider.RecyclerViewItemOffsets -import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.LoadState -import com.pengxh.kt.lite.utils.LoadingDialogHub -import com.pengxh.kt.lite.utils.WeakReferenceHandler -import com.pengxh.kt.lite.widget.TitleBarView +import com.pengxh.kt.lite.extensions.dp2px +import com.pengxh.kt.lite.utils.Constant -class CheckManifestActivity : KotlinBaseActivity(), Handler.Callback { +class CheckManifestActivity : KotlinBaseActivity() { - private lateinit var weakReferenceHandler: WeakReferenceHandler - private lateinit var checkManifestViewModel: CheckManifestViewModel - private lateinit var checkManifestAdapter: NormalRecyclerAdapter - private var dataBeans: MutableList = ArrayList() - private var keywords = "" - private var page = 1 - private var isRefresh = false - private var isLoadMore = false + private val gson by lazy { Gson() } + private val marginOffset by lazy { 7.dp2px(this) } override fun initEvent() { - binding.searchButton.setOnClickListener { - keywords = binding.searchView.text.toString().trim() - } - binding.refreshLayout.setOnRefreshListener { - isRefresh = true - page = 1 - getCheckManifestByPage() - } - - binding.refreshLayout.setOnLoadMoreListener { - isLoadMore = true - page++ - getCheckManifestByPage() - } } override fun initOnCreate(savedInstanceState: Bundle?) { - weakReferenceHandler = WeakReferenceHandler(this) - checkManifestViewModel = ViewModelProvider(this)[CheckManifestViewModel::class.java] - checkManifestViewModel.manifestResult.observe(this) { -// if (it.code == 200) { -// val dataRows = it.data?.rows!! -// when { -// isRefresh -> { -// checkManifestAdapter.setRefreshData(dataRows) -// binding.refreshLayout.finishRefresh() -// isRefresh = false -// } -// -// isLoadMore -> { -// if (dataRows.size == 0) { -// "到底了,别拉了".show(this) -// } -// checkManifestAdapter.setLoadMoreData(dataRows) -// binding.refreshLayout.finishLoadMore() -// isLoadMore = false -// } -// -// else -> { -// dataBeans = dataRows -// weakReferenceHandler.sendEmptyMessage(2024030501) -// } -// } -// } - } - } + val sceneJsonValue = intent.getStringExtra(Constant.INTENT_PARAM) + //转为实体类 + val sceneModels = gson.fromJson>( + sceneJsonValue, object : TypeToken>() {}.type + ) - private fun getCheckManifestByPage() { - checkManifestViewModel.getCheckManifestByPage(this, keywords, page) - } - - override fun handleMessage(msg: Message): Boolean { - when (msg.what) { - 2024030501 -> { - checkManifestAdapter = object : - NormalRecyclerAdapter( - R.layout.item_check_manifest, dataBeans - ) { - override fun convertView( - viewHolder: ViewHolder, position: Int, - item: CheckManifestModel - ) { - - } + val checkManifestAdapter = object : NormalRecyclerAdapter( + R.layout.item_check_manifest_l, sceneModels + ) { + override fun convertView( + viewHolder: ViewHolder, position: Int, item: DictionaryModel.DataModel + ) { + val imageSource = when (item.name) { + "配电箱" -> R.drawable.ic_manifest_elec_box + "调压站" -> R.drawable.ic_manifest_pressure_station + "非居民用户" -> R.drawable.ic_manifest_no_people + "建筑消防" -> R.drawable.ic_manifest_building + "有限空间作业" -> R.drawable.ic_manifest_confined_spaces + else -> 0 } - binding.recyclerView.adapter = checkManifestAdapter - binding.recyclerView.addItemDecoration(RecyclerViewItemOffsets(0, 7, 0, 7)) - checkManifestAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { - override fun onItemClicked( - position: Int, t: CheckManifestModel - ) { - //TODO 查看检查清单详情 - } - }) + + viewHolder.setImageResource(R.id.imageView, imageSource) + .setText(R.id.textView, item.name) } } - return true + binding.recyclerView.adapter = checkManifestAdapter + binding.recyclerView.addItemDecoration( + RecyclerViewItemOffsets(marginOffset, marginOffset, marginOffset, marginOffset) + ) + checkManifestAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: DictionaryModel.DataModel) { + when (t.name) { + //TODO 未完 +// "配电箱" -> navigatePageTo<>() +// "调压站" -> navigatePageTo<>() +// "非居民用户" -> navigatePageTo<>() +// "建筑消防" -> navigatePageTo<>() +// "有限空间作业" -> navigatePageTo<>() + } + } + }) } override fun initViewBinding(): ActivityCheckManifestBinding { @@ -117,31 +73,11 @@ } override fun observeRequestState() { - checkManifestViewModel.loadState.observe(this) { - when (it) { - LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") - LoadState.Success -> { - LoadingDialogHub.dismiss() - } - LoadState.Fail -> { - LoadingDialogHub.dismiss() - "数据加载失败,请重试".show(this) - } - } - } } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.themeColor) - binding.titleView.setOnClickListener(object : TitleBarView.OnClickListener { - override fun onLeftClick() { - finish() - } - - override fun onRightClick() { - - } - }) + val uiOptions = (View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN) + window.decorView.systemUiVisibility = uiOptions } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt index 3ea8ec8..571aaa7 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt @@ -3,10 +3,10 @@ import android.os.Bundle import android.os.Handler import android.os.Message +import android.view.View import androidx.lifecycle.ViewModelProvider import com.casic.br.ar.app.R import com.casic.br.ar.app.databinding.ActivityHiddenTroubleBinding -import com.casic.br.ar.app.extensions.initImmersionBar import com.casic.br.ar.app.model.HiddenTroubleModel import com.casic.br.ar.app.vm.HiddenTroubleViewModel import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter @@ -17,7 +17,6 @@ import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialogHub import com.pengxh.kt.lite.utils.WeakReferenceHandler -import com.pengxh.kt.lite.widget.TitleBarView class HiddenTroubleActivity : KotlinBaseActivity(), Handler.Callback { @@ -133,15 +132,7 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.themeColor) - binding.titleView.setOnClickListener(object : TitleBarView.OnClickListener { - override fun onLeftClick() { - finish() - } - - override fun onRightClick() { - - } - }) + val uiOptions = (View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN) + window.decorView.systemUiVisibility = uiOptions } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ar/app/view/LibraryActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/LibraryActivity.kt index bfaf417..dd63dd5 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/LibraryActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/LibraryActivity.kt @@ -44,11 +44,11 @@ result.add(0, dataModel1) val dataModel2 = LibraryModel.DataModel() - dataModel2.name = "检查清单" + dataModel2.name = "隐患目录" result.add(1, dataModel2) val dataModel3 = LibraryModel.DataModel() - dataModel3.name = "隐患目录" + dataModel3.name = "检查清单" result.add(2, dataModel3) val libraryAdapter = object : NormalRecyclerAdapter( @@ -59,8 +59,8 @@ ) { val imageSource = when (item.name) { "标准规范" -> R.drawable.ic_library_standard - "检查清单" -> R.drawable.ic_library_manifest "隐患目录" -> R.drawable.ic_library_trouble + "检查清单" -> R.drawable.ic_library_manifest "指导视频" -> R.drawable.ic_library_video else -> 0 } @@ -78,8 +78,8 @@ override fun onItemClicked(position: Int, t: LibraryModel.DataModel) { when (position) { 0 -> navigatePageTo() - 1 -> navigatePageTo(sceneModels.toJson()) - 2 -> navigatePageTo() + 1 -> navigatePageTo() + 2 -> navigatePageTo(sceneModels.toJson()) 3 -> navigatePageTo(t.id) else -> "未实现".show(context) } diff --git a/app/src/main/java/com/casic/br/ar/app/view/VideoGuideActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/VideoGuideActivity.kt index e735aa9..344ff49 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/VideoGuideActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/VideoGuideActivity.kt @@ -3,10 +3,10 @@ import android.os.Bundle import android.os.Handler import android.os.Message +import android.view.View import androidx.lifecycle.ViewModelProvider import com.casic.br.ar.app.R import com.casic.br.ar.app.databinding.ActivityVideoGuideBinding -import com.casic.br.ar.app.extensions.initImmersionBar import com.casic.br.ar.app.model.VideoGuideModel import com.casic.br.ar.app.vm.VideoGuideViewModel import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter @@ -17,7 +17,6 @@ import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialogHub import com.pengxh.kt.lite.utils.WeakReferenceHandler -import com.pengxh.kt.lite.widget.TitleBarView class VideoGuideActivity : KotlinBaseActivity(), Handler.Callback { @@ -133,15 +132,7 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.themeColor) - binding.titleView.setOnClickListener(object : TitleBarView.OnClickListener { - override fun onLeftClick() { - finish() - } - - override fun onRightClick() { - - } - }) + val uiOptions = (View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN) + window.decorView.systemUiVisibility = uiOptions } } \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_manifest_building.xml b/app/src/main/res/drawable/ic_manifest_building.xml new file mode 100644 index 0000000..aa693dc --- /dev/null +++ b/app/src/main/res/drawable/ic_manifest_building.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/drawable/ic_manifest_confined_spaces.xml b/app/src/main/res/drawable/ic_manifest_confined_spaces.xml new file mode 100644 index 0000000..a20a542 --- /dev/null +++ b/app/src/main/res/drawable/ic_manifest_confined_spaces.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_manifest_elec_box.xml b/app/src/main/res/drawable/ic_manifest_elec_box.xml new file mode 100644 index 0000000..5f1bb55 --- /dev/null +++ b/app/src/main/res/drawable/ic_manifest_elec_box.xml @@ -0,0 +1,9 @@ + + + diff --git a/.idea/misc.xml b/.idea/misc.xml index 9d89672..5d2e255 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,7 +1,7 @@ - + diff --git a/app/src/main/java/com/casic/br/ar/app/view/CheckManifestActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/CheckManifestActivity.kt index 70a0879..c022594 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/CheckManifestActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/CheckManifestActivity.kt @@ -1,115 +1,71 @@ package com.casic.br.ar.app.view import android.os.Bundle -import android.os.Handler -import android.os.Message -import androidx.lifecycle.ViewModelProvider +import android.view.View import com.casic.br.ar.app.R import com.casic.br.ar.app.databinding.ActivityCheckManifestBinding -import com.casic.br.ar.app.extensions.initImmersionBar -import com.casic.br.ar.app.model.CheckManifestModel -import com.casic.br.ar.app.vm.CheckManifestViewModel +import com.casic.br.ar.app.model.DictionaryModel +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.divider.RecyclerViewItemOffsets -import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.LoadState -import com.pengxh.kt.lite.utils.LoadingDialogHub -import com.pengxh.kt.lite.utils.WeakReferenceHandler -import com.pengxh.kt.lite.widget.TitleBarView +import com.pengxh.kt.lite.extensions.dp2px +import com.pengxh.kt.lite.utils.Constant -class CheckManifestActivity : KotlinBaseActivity(), Handler.Callback { +class CheckManifestActivity : KotlinBaseActivity() { - private lateinit var weakReferenceHandler: WeakReferenceHandler - private lateinit var checkManifestViewModel: CheckManifestViewModel - private lateinit var checkManifestAdapter: NormalRecyclerAdapter - private var dataBeans: MutableList = ArrayList() - private var keywords = "" - private var page = 1 - private var isRefresh = false - private var isLoadMore = false + private val gson by lazy { Gson() } + private val marginOffset by lazy { 7.dp2px(this) } override fun initEvent() { - binding.searchButton.setOnClickListener { - keywords = binding.searchView.text.toString().trim() - } - binding.refreshLayout.setOnRefreshListener { - isRefresh = true - page = 1 - getCheckManifestByPage() - } - - binding.refreshLayout.setOnLoadMoreListener { - isLoadMore = true - page++ - getCheckManifestByPage() - } } override fun initOnCreate(savedInstanceState: Bundle?) { - weakReferenceHandler = WeakReferenceHandler(this) - checkManifestViewModel = ViewModelProvider(this)[CheckManifestViewModel::class.java] - checkManifestViewModel.manifestResult.observe(this) { -// if (it.code == 200) { -// val dataRows = it.data?.rows!! -// when { -// isRefresh -> { -// checkManifestAdapter.setRefreshData(dataRows) -// binding.refreshLayout.finishRefresh() -// isRefresh = false -// } -// -// isLoadMore -> { -// if (dataRows.size == 0) { -// "到底了,别拉了".show(this) -// } -// checkManifestAdapter.setLoadMoreData(dataRows) -// binding.refreshLayout.finishLoadMore() -// isLoadMore = false -// } -// -// else -> { -// dataBeans = dataRows -// weakReferenceHandler.sendEmptyMessage(2024030501) -// } -// } -// } - } - } + val sceneJsonValue = intent.getStringExtra(Constant.INTENT_PARAM) + //转为实体类 + val sceneModels = gson.fromJson>( + sceneJsonValue, object : TypeToken>() {}.type + ) - private fun getCheckManifestByPage() { - checkManifestViewModel.getCheckManifestByPage(this, keywords, page) - } - - override fun handleMessage(msg: Message): Boolean { - when (msg.what) { - 2024030501 -> { - checkManifestAdapter = object : - NormalRecyclerAdapter( - R.layout.item_check_manifest, dataBeans - ) { - override fun convertView( - viewHolder: ViewHolder, position: Int, - item: CheckManifestModel - ) { - - } + val checkManifestAdapter = object : NormalRecyclerAdapter( + R.layout.item_check_manifest_l, sceneModels + ) { + override fun convertView( + viewHolder: ViewHolder, position: Int, item: DictionaryModel.DataModel + ) { + val imageSource = when (item.name) { + "配电箱" -> R.drawable.ic_manifest_elec_box + "调压站" -> R.drawable.ic_manifest_pressure_station + "非居民用户" -> R.drawable.ic_manifest_no_people + "建筑消防" -> R.drawable.ic_manifest_building + "有限空间作业" -> R.drawable.ic_manifest_confined_spaces + else -> 0 } - binding.recyclerView.adapter = checkManifestAdapter - binding.recyclerView.addItemDecoration(RecyclerViewItemOffsets(0, 7, 0, 7)) - checkManifestAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { - override fun onItemClicked( - position: Int, t: CheckManifestModel - ) { - //TODO 查看检查清单详情 - } - }) + + viewHolder.setImageResource(R.id.imageView, imageSource) + .setText(R.id.textView, item.name) } } - return true + binding.recyclerView.adapter = checkManifestAdapter + binding.recyclerView.addItemDecoration( + RecyclerViewItemOffsets(marginOffset, marginOffset, marginOffset, marginOffset) + ) + checkManifestAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: DictionaryModel.DataModel) { + when (t.name) { + //TODO 未完 +// "配电箱" -> navigatePageTo<>() +// "调压站" -> navigatePageTo<>() +// "非居民用户" -> navigatePageTo<>() +// "建筑消防" -> navigatePageTo<>() +// "有限空间作业" -> navigatePageTo<>() + } + } + }) } override fun initViewBinding(): ActivityCheckManifestBinding { @@ -117,31 +73,11 @@ } override fun observeRequestState() { - checkManifestViewModel.loadState.observe(this) { - when (it) { - LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") - LoadState.Success -> { - LoadingDialogHub.dismiss() - } - LoadState.Fail -> { - LoadingDialogHub.dismiss() - "数据加载失败,请重试".show(this) - } - } - } } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.themeColor) - binding.titleView.setOnClickListener(object : TitleBarView.OnClickListener { - override fun onLeftClick() { - finish() - } - - override fun onRightClick() { - - } - }) + val uiOptions = (View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN) + window.decorView.systemUiVisibility = uiOptions } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt index 3ea8ec8..571aaa7 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt @@ -3,10 +3,10 @@ import android.os.Bundle import android.os.Handler import android.os.Message +import android.view.View import androidx.lifecycle.ViewModelProvider import com.casic.br.ar.app.R import com.casic.br.ar.app.databinding.ActivityHiddenTroubleBinding -import com.casic.br.ar.app.extensions.initImmersionBar import com.casic.br.ar.app.model.HiddenTroubleModel import com.casic.br.ar.app.vm.HiddenTroubleViewModel import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter @@ -17,7 +17,6 @@ import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialogHub import com.pengxh.kt.lite.utils.WeakReferenceHandler -import com.pengxh.kt.lite.widget.TitleBarView class HiddenTroubleActivity : KotlinBaseActivity(), Handler.Callback { @@ -133,15 +132,7 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.themeColor) - binding.titleView.setOnClickListener(object : TitleBarView.OnClickListener { - override fun onLeftClick() { - finish() - } - - override fun onRightClick() { - - } - }) + val uiOptions = (View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN) + window.decorView.systemUiVisibility = uiOptions } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ar/app/view/LibraryActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/LibraryActivity.kt index bfaf417..dd63dd5 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/LibraryActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/LibraryActivity.kt @@ -44,11 +44,11 @@ result.add(0, dataModel1) val dataModel2 = LibraryModel.DataModel() - dataModel2.name = "检查清单" + dataModel2.name = "隐患目录" result.add(1, dataModel2) val dataModel3 = LibraryModel.DataModel() - dataModel3.name = "隐患目录" + dataModel3.name = "检查清单" result.add(2, dataModel3) val libraryAdapter = object : NormalRecyclerAdapter( @@ -59,8 +59,8 @@ ) { val imageSource = when (item.name) { "标准规范" -> R.drawable.ic_library_standard - "检查清单" -> R.drawable.ic_library_manifest "隐患目录" -> R.drawable.ic_library_trouble + "检查清单" -> R.drawable.ic_library_manifest "指导视频" -> R.drawable.ic_library_video else -> 0 } @@ -78,8 +78,8 @@ override fun onItemClicked(position: Int, t: LibraryModel.DataModel) { when (position) { 0 -> navigatePageTo() - 1 -> navigatePageTo(sceneModels.toJson()) - 2 -> navigatePageTo() + 1 -> navigatePageTo() + 2 -> navigatePageTo(sceneModels.toJson()) 3 -> navigatePageTo(t.id) else -> "未实现".show(context) } diff --git a/app/src/main/java/com/casic/br/ar/app/view/VideoGuideActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/VideoGuideActivity.kt index e735aa9..344ff49 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/VideoGuideActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/VideoGuideActivity.kt @@ -3,10 +3,10 @@ import android.os.Bundle import android.os.Handler import android.os.Message +import android.view.View import androidx.lifecycle.ViewModelProvider import com.casic.br.ar.app.R import com.casic.br.ar.app.databinding.ActivityVideoGuideBinding -import com.casic.br.ar.app.extensions.initImmersionBar import com.casic.br.ar.app.model.VideoGuideModel import com.casic.br.ar.app.vm.VideoGuideViewModel import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter @@ -17,7 +17,6 @@ import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialogHub import com.pengxh.kt.lite.utils.WeakReferenceHandler -import com.pengxh.kt.lite.widget.TitleBarView class VideoGuideActivity : KotlinBaseActivity(), Handler.Callback { @@ -133,15 +132,7 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.themeColor) - binding.titleView.setOnClickListener(object : TitleBarView.OnClickListener { - override fun onLeftClick() { - finish() - } - - override fun onRightClick() { - - } - }) + val uiOptions = (View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN) + window.decorView.systemUiVisibility = uiOptions } } \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_manifest_building.xml b/app/src/main/res/drawable/ic_manifest_building.xml new file mode 100644 index 0000000..aa693dc --- /dev/null +++ b/app/src/main/res/drawable/ic_manifest_building.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/drawable/ic_manifest_confined_spaces.xml b/app/src/main/res/drawable/ic_manifest_confined_spaces.xml new file mode 100644 index 0000000..a20a542 --- /dev/null +++ b/app/src/main/res/drawable/ic_manifest_confined_spaces.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_manifest_elec_box.xml b/app/src/main/res/drawable/ic_manifest_elec_box.xml new file mode 100644 index 0000000..5f1bb55 --- /dev/null +++ b/app/src/main/res/drawable/ic_manifest_elec_box.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_manifest_no_people.xml b/app/src/main/res/drawable/ic_manifest_no_people.xml new file mode 100644 index 0000000..23648e0 --- /dev/null +++ b/app/src/main/res/drawable/ic_manifest_no_people.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/.idea/misc.xml b/.idea/misc.xml index 9d89672..5d2e255 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,7 +1,7 @@ - + diff --git a/app/src/main/java/com/casic/br/ar/app/view/CheckManifestActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/CheckManifestActivity.kt index 70a0879..c022594 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/CheckManifestActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/CheckManifestActivity.kt @@ -1,115 +1,71 @@ package com.casic.br.ar.app.view import android.os.Bundle -import android.os.Handler -import android.os.Message -import androidx.lifecycle.ViewModelProvider +import android.view.View import com.casic.br.ar.app.R import com.casic.br.ar.app.databinding.ActivityCheckManifestBinding -import com.casic.br.ar.app.extensions.initImmersionBar -import com.casic.br.ar.app.model.CheckManifestModel -import com.casic.br.ar.app.vm.CheckManifestViewModel +import com.casic.br.ar.app.model.DictionaryModel +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.divider.RecyclerViewItemOffsets -import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.LoadState -import com.pengxh.kt.lite.utils.LoadingDialogHub -import com.pengxh.kt.lite.utils.WeakReferenceHandler -import com.pengxh.kt.lite.widget.TitleBarView +import com.pengxh.kt.lite.extensions.dp2px +import com.pengxh.kt.lite.utils.Constant -class CheckManifestActivity : KotlinBaseActivity(), Handler.Callback { +class CheckManifestActivity : KotlinBaseActivity() { - private lateinit var weakReferenceHandler: WeakReferenceHandler - private lateinit var checkManifestViewModel: CheckManifestViewModel - private lateinit var checkManifestAdapter: NormalRecyclerAdapter - private var dataBeans: MutableList = ArrayList() - private var keywords = "" - private var page = 1 - private var isRefresh = false - private var isLoadMore = false + private val gson by lazy { Gson() } + private val marginOffset by lazy { 7.dp2px(this) } override fun initEvent() { - binding.searchButton.setOnClickListener { - keywords = binding.searchView.text.toString().trim() - } - binding.refreshLayout.setOnRefreshListener { - isRefresh = true - page = 1 - getCheckManifestByPage() - } - - binding.refreshLayout.setOnLoadMoreListener { - isLoadMore = true - page++ - getCheckManifestByPage() - } } override fun initOnCreate(savedInstanceState: Bundle?) { - weakReferenceHandler = WeakReferenceHandler(this) - checkManifestViewModel = ViewModelProvider(this)[CheckManifestViewModel::class.java] - checkManifestViewModel.manifestResult.observe(this) { -// if (it.code == 200) { -// val dataRows = it.data?.rows!! -// when { -// isRefresh -> { -// checkManifestAdapter.setRefreshData(dataRows) -// binding.refreshLayout.finishRefresh() -// isRefresh = false -// } -// -// isLoadMore -> { -// if (dataRows.size == 0) { -// "到底了,别拉了".show(this) -// } -// checkManifestAdapter.setLoadMoreData(dataRows) -// binding.refreshLayout.finishLoadMore() -// isLoadMore = false -// } -// -// else -> { -// dataBeans = dataRows -// weakReferenceHandler.sendEmptyMessage(2024030501) -// } -// } -// } - } - } + val sceneJsonValue = intent.getStringExtra(Constant.INTENT_PARAM) + //转为实体类 + val sceneModels = gson.fromJson>( + sceneJsonValue, object : TypeToken>() {}.type + ) - private fun getCheckManifestByPage() { - checkManifestViewModel.getCheckManifestByPage(this, keywords, page) - } - - override fun handleMessage(msg: Message): Boolean { - when (msg.what) { - 2024030501 -> { - checkManifestAdapter = object : - NormalRecyclerAdapter( - R.layout.item_check_manifest, dataBeans - ) { - override fun convertView( - viewHolder: ViewHolder, position: Int, - item: CheckManifestModel - ) { - - } + val checkManifestAdapter = object : NormalRecyclerAdapter( + R.layout.item_check_manifest_l, sceneModels + ) { + override fun convertView( + viewHolder: ViewHolder, position: Int, item: DictionaryModel.DataModel + ) { + val imageSource = when (item.name) { + "配电箱" -> R.drawable.ic_manifest_elec_box + "调压站" -> R.drawable.ic_manifest_pressure_station + "非居民用户" -> R.drawable.ic_manifest_no_people + "建筑消防" -> R.drawable.ic_manifest_building + "有限空间作业" -> R.drawable.ic_manifest_confined_spaces + else -> 0 } - binding.recyclerView.adapter = checkManifestAdapter - binding.recyclerView.addItemDecoration(RecyclerViewItemOffsets(0, 7, 0, 7)) - checkManifestAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { - override fun onItemClicked( - position: Int, t: CheckManifestModel - ) { - //TODO 查看检查清单详情 - } - }) + + viewHolder.setImageResource(R.id.imageView, imageSource) + .setText(R.id.textView, item.name) } } - return true + binding.recyclerView.adapter = checkManifestAdapter + binding.recyclerView.addItemDecoration( + RecyclerViewItemOffsets(marginOffset, marginOffset, marginOffset, marginOffset) + ) + checkManifestAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: DictionaryModel.DataModel) { + when (t.name) { + //TODO 未完 +// "配电箱" -> navigatePageTo<>() +// "调压站" -> navigatePageTo<>() +// "非居民用户" -> navigatePageTo<>() +// "建筑消防" -> navigatePageTo<>() +// "有限空间作业" -> navigatePageTo<>() + } + } + }) } override fun initViewBinding(): ActivityCheckManifestBinding { @@ -117,31 +73,11 @@ } override fun observeRequestState() { - checkManifestViewModel.loadState.observe(this) { - when (it) { - LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") - LoadState.Success -> { - LoadingDialogHub.dismiss() - } - LoadState.Fail -> { - LoadingDialogHub.dismiss() - "数据加载失败,请重试".show(this) - } - } - } } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.themeColor) - binding.titleView.setOnClickListener(object : TitleBarView.OnClickListener { - override fun onLeftClick() { - finish() - } - - override fun onRightClick() { - - } - }) + val uiOptions = (View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN) + window.decorView.systemUiVisibility = uiOptions } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt index 3ea8ec8..571aaa7 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt @@ -3,10 +3,10 @@ import android.os.Bundle import android.os.Handler import android.os.Message +import android.view.View import androidx.lifecycle.ViewModelProvider import com.casic.br.ar.app.R import com.casic.br.ar.app.databinding.ActivityHiddenTroubleBinding -import com.casic.br.ar.app.extensions.initImmersionBar import com.casic.br.ar.app.model.HiddenTroubleModel import com.casic.br.ar.app.vm.HiddenTroubleViewModel import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter @@ -17,7 +17,6 @@ import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialogHub import com.pengxh.kt.lite.utils.WeakReferenceHandler -import com.pengxh.kt.lite.widget.TitleBarView class HiddenTroubleActivity : KotlinBaseActivity(), Handler.Callback { @@ -133,15 +132,7 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.themeColor) - binding.titleView.setOnClickListener(object : TitleBarView.OnClickListener { - override fun onLeftClick() { - finish() - } - - override fun onRightClick() { - - } - }) + val uiOptions = (View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN) + window.decorView.systemUiVisibility = uiOptions } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ar/app/view/LibraryActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/LibraryActivity.kt index bfaf417..dd63dd5 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/LibraryActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/LibraryActivity.kt @@ -44,11 +44,11 @@ result.add(0, dataModel1) val dataModel2 = LibraryModel.DataModel() - dataModel2.name = "检查清单" + dataModel2.name = "隐患目录" result.add(1, dataModel2) val dataModel3 = LibraryModel.DataModel() - dataModel3.name = "隐患目录" + dataModel3.name = "检查清单" result.add(2, dataModel3) val libraryAdapter = object : NormalRecyclerAdapter( @@ -59,8 +59,8 @@ ) { val imageSource = when (item.name) { "标准规范" -> R.drawable.ic_library_standard - "检查清单" -> R.drawable.ic_library_manifest "隐患目录" -> R.drawable.ic_library_trouble + "检查清单" -> R.drawable.ic_library_manifest "指导视频" -> R.drawable.ic_library_video else -> 0 } @@ -78,8 +78,8 @@ override fun onItemClicked(position: Int, t: LibraryModel.DataModel) { when (position) { 0 -> navigatePageTo() - 1 -> navigatePageTo(sceneModels.toJson()) - 2 -> navigatePageTo() + 1 -> navigatePageTo() + 2 -> navigatePageTo(sceneModels.toJson()) 3 -> navigatePageTo(t.id) else -> "未实现".show(context) } diff --git a/app/src/main/java/com/casic/br/ar/app/view/VideoGuideActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/VideoGuideActivity.kt index e735aa9..344ff49 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/VideoGuideActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/VideoGuideActivity.kt @@ -3,10 +3,10 @@ import android.os.Bundle import android.os.Handler import android.os.Message +import android.view.View import androidx.lifecycle.ViewModelProvider import com.casic.br.ar.app.R import com.casic.br.ar.app.databinding.ActivityVideoGuideBinding -import com.casic.br.ar.app.extensions.initImmersionBar import com.casic.br.ar.app.model.VideoGuideModel import com.casic.br.ar.app.vm.VideoGuideViewModel import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter @@ -17,7 +17,6 @@ import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialogHub import com.pengxh.kt.lite.utils.WeakReferenceHandler -import com.pengxh.kt.lite.widget.TitleBarView class VideoGuideActivity : KotlinBaseActivity(), Handler.Callback { @@ -133,15 +132,7 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.themeColor) - binding.titleView.setOnClickListener(object : TitleBarView.OnClickListener { - override fun onLeftClick() { - finish() - } - - override fun onRightClick() { - - } - }) + val uiOptions = (View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN) + window.decorView.systemUiVisibility = uiOptions } } \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_manifest_building.xml b/app/src/main/res/drawable/ic_manifest_building.xml new file mode 100644 index 0000000..aa693dc --- /dev/null +++ b/app/src/main/res/drawable/ic_manifest_building.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/drawable/ic_manifest_confined_spaces.xml b/app/src/main/res/drawable/ic_manifest_confined_spaces.xml new file mode 100644 index 0000000..a20a542 --- /dev/null +++ b/app/src/main/res/drawable/ic_manifest_confined_spaces.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_manifest_elec_box.xml b/app/src/main/res/drawable/ic_manifest_elec_box.xml new file mode 100644 index 0000000..5f1bb55 --- /dev/null +++ b/app/src/main/res/drawable/ic_manifest_elec_box.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_manifest_no_people.xml b/app/src/main/res/drawable/ic_manifest_no_people.xml new file mode 100644 index 0000000..23648e0 --- /dev/null +++ b/app/src/main/res/drawable/ic_manifest_no_people.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_manifest_pressure_station.xml b/app/src/main/res/drawable/ic_manifest_pressure_station.xml new file mode 100644 index 0000000..b2b20af --- /dev/null +++ b/app/src/main/res/drawable/ic_manifest_pressure_station.xml @@ -0,0 +1,9 @@ + + + diff --git a/.idea/misc.xml b/.idea/misc.xml index 9d89672..5d2e255 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,7 +1,7 @@ - + diff --git a/app/src/main/java/com/casic/br/ar/app/view/CheckManifestActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/CheckManifestActivity.kt index 70a0879..c022594 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/CheckManifestActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/CheckManifestActivity.kt @@ -1,115 +1,71 @@ package com.casic.br.ar.app.view import android.os.Bundle -import android.os.Handler -import android.os.Message -import androidx.lifecycle.ViewModelProvider +import android.view.View import com.casic.br.ar.app.R import com.casic.br.ar.app.databinding.ActivityCheckManifestBinding -import com.casic.br.ar.app.extensions.initImmersionBar -import com.casic.br.ar.app.model.CheckManifestModel -import com.casic.br.ar.app.vm.CheckManifestViewModel +import com.casic.br.ar.app.model.DictionaryModel +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.divider.RecyclerViewItemOffsets -import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.LoadState -import com.pengxh.kt.lite.utils.LoadingDialogHub -import com.pengxh.kt.lite.utils.WeakReferenceHandler -import com.pengxh.kt.lite.widget.TitleBarView +import com.pengxh.kt.lite.extensions.dp2px +import com.pengxh.kt.lite.utils.Constant -class CheckManifestActivity : KotlinBaseActivity(), Handler.Callback { +class CheckManifestActivity : KotlinBaseActivity() { - private lateinit var weakReferenceHandler: WeakReferenceHandler - private lateinit var checkManifestViewModel: CheckManifestViewModel - private lateinit var checkManifestAdapter: NormalRecyclerAdapter - private var dataBeans: MutableList = ArrayList() - private var keywords = "" - private var page = 1 - private var isRefresh = false - private var isLoadMore = false + private val gson by lazy { Gson() } + private val marginOffset by lazy { 7.dp2px(this) } override fun initEvent() { - binding.searchButton.setOnClickListener { - keywords = binding.searchView.text.toString().trim() - } - binding.refreshLayout.setOnRefreshListener { - isRefresh = true - page = 1 - getCheckManifestByPage() - } - - binding.refreshLayout.setOnLoadMoreListener { - isLoadMore = true - page++ - getCheckManifestByPage() - } } override fun initOnCreate(savedInstanceState: Bundle?) { - weakReferenceHandler = WeakReferenceHandler(this) - checkManifestViewModel = ViewModelProvider(this)[CheckManifestViewModel::class.java] - checkManifestViewModel.manifestResult.observe(this) { -// if (it.code == 200) { -// val dataRows = it.data?.rows!! -// when { -// isRefresh -> { -// checkManifestAdapter.setRefreshData(dataRows) -// binding.refreshLayout.finishRefresh() -// isRefresh = false -// } -// -// isLoadMore -> { -// if (dataRows.size == 0) { -// "到底了,别拉了".show(this) -// } -// checkManifestAdapter.setLoadMoreData(dataRows) -// binding.refreshLayout.finishLoadMore() -// isLoadMore = false -// } -// -// else -> { -// dataBeans = dataRows -// weakReferenceHandler.sendEmptyMessage(2024030501) -// } -// } -// } - } - } + val sceneJsonValue = intent.getStringExtra(Constant.INTENT_PARAM) + //转为实体类 + val sceneModels = gson.fromJson>( + sceneJsonValue, object : TypeToken>() {}.type + ) - private fun getCheckManifestByPage() { - checkManifestViewModel.getCheckManifestByPage(this, keywords, page) - } - - override fun handleMessage(msg: Message): Boolean { - when (msg.what) { - 2024030501 -> { - checkManifestAdapter = object : - NormalRecyclerAdapter( - R.layout.item_check_manifest, dataBeans - ) { - override fun convertView( - viewHolder: ViewHolder, position: Int, - item: CheckManifestModel - ) { - - } + val checkManifestAdapter = object : NormalRecyclerAdapter( + R.layout.item_check_manifest_l, sceneModels + ) { + override fun convertView( + viewHolder: ViewHolder, position: Int, item: DictionaryModel.DataModel + ) { + val imageSource = when (item.name) { + "配电箱" -> R.drawable.ic_manifest_elec_box + "调压站" -> R.drawable.ic_manifest_pressure_station + "非居民用户" -> R.drawable.ic_manifest_no_people + "建筑消防" -> R.drawable.ic_manifest_building + "有限空间作业" -> R.drawable.ic_manifest_confined_spaces + else -> 0 } - binding.recyclerView.adapter = checkManifestAdapter - binding.recyclerView.addItemDecoration(RecyclerViewItemOffsets(0, 7, 0, 7)) - checkManifestAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { - override fun onItemClicked( - position: Int, t: CheckManifestModel - ) { - //TODO 查看检查清单详情 - } - }) + + viewHolder.setImageResource(R.id.imageView, imageSource) + .setText(R.id.textView, item.name) } } - return true + binding.recyclerView.adapter = checkManifestAdapter + binding.recyclerView.addItemDecoration( + RecyclerViewItemOffsets(marginOffset, marginOffset, marginOffset, marginOffset) + ) + checkManifestAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: DictionaryModel.DataModel) { + when (t.name) { + //TODO 未完 +// "配电箱" -> navigatePageTo<>() +// "调压站" -> navigatePageTo<>() +// "非居民用户" -> navigatePageTo<>() +// "建筑消防" -> navigatePageTo<>() +// "有限空间作业" -> navigatePageTo<>() + } + } + }) } override fun initViewBinding(): ActivityCheckManifestBinding { @@ -117,31 +73,11 @@ } override fun observeRequestState() { - checkManifestViewModel.loadState.observe(this) { - when (it) { - LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") - LoadState.Success -> { - LoadingDialogHub.dismiss() - } - LoadState.Fail -> { - LoadingDialogHub.dismiss() - "数据加载失败,请重试".show(this) - } - } - } } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.themeColor) - binding.titleView.setOnClickListener(object : TitleBarView.OnClickListener { - override fun onLeftClick() { - finish() - } - - override fun onRightClick() { - - } - }) + val uiOptions = (View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN) + window.decorView.systemUiVisibility = uiOptions } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt index 3ea8ec8..571aaa7 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt @@ -3,10 +3,10 @@ import android.os.Bundle import android.os.Handler import android.os.Message +import android.view.View import androidx.lifecycle.ViewModelProvider import com.casic.br.ar.app.R import com.casic.br.ar.app.databinding.ActivityHiddenTroubleBinding -import com.casic.br.ar.app.extensions.initImmersionBar import com.casic.br.ar.app.model.HiddenTroubleModel import com.casic.br.ar.app.vm.HiddenTroubleViewModel import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter @@ -17,7 +17,6 @@ import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialogHub import com.pengxh.kt.lite.utils.WeakReferenceHandler -import com.pengxh.kt.lite.widget.TitleBarView class HiddenTroubleActivity : KotlinBaseActivity(), Handler.Callback { @@ -133,15 +132,7 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.themeColor) - binding.titleView.setOnClickListener(object : TitleBarView.OnClickListener { - override fun onLeftClick() { - finish() - } - - override fun onRightClick() { - - } - }) + val uiOptions = (View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN) + window.decorView.systemUiVisibility = uiOptions } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ar/app/view/LibraryActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/LibraryActivity.kt index bfaf417..dd63dd5 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/LibraryActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/LibraryActivity.kt @@ -44,11 +44,11 @@ result.add(0, dataModel1) val dataModel2 = LibraryModel.DataModel() - dataModel2.name = "检查清单" + dataModel2.name = "隐患目录" result.add(1, dataModel2) val dataModel3 = LibraryModel.DataModel() - dataModel3.name = "隐患目录" + dataModel3.name = "检查清单" result.add(2, dataModel3) val libraryAdapter = object : NormalRecyclerAdapter( @@ -59,8 +59,8 @@ ) { val imageSource = when (item.name) { "标准规范" -> R.drawable.ic_library_standard - "检查清单" -> R.drawable.ic_library_manifest "隐患目录" -> R.drawable.ic_library_trouble + "检查清单" -> R.drawable.ic_library_manifest "指导视频" -> R.drawable.ic_library_video else -> 0 } @@ -78,8 +78,8 @@ override fun onItemClicked(position: Int, t: LibraryModel.DataModel) { when (position) { 0 -> navigatePageTo() - 1 -> navigatePageTo(sceneModels.toJson()) - 2 -> navigatePageTo() + 1 -> navigatePageTo() + 2 -> navigatePageTo(sceneModels.toJson()) 3 -> navigatePageTo(t.id) else -> "未实现".show(context) } diff --git a/app/src/main/java/com/casic/br/ar/app/view/VideoGuideActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/VideoGuideActivity.kt index e735aa9..344ff49 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/VideoGuideActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/VideoGuideActivity.kt @@ -3,10 +3,10 @@ import android.os.Bundle import android.os.Handler import android.os.Message +import android.view.View import androidx.lifecycle.ViewModelProvider import com.casic.br.ar.app.R import com.casic.br.ar.app.databinding.ActivityVideoGuideBinding -import com.casic.br.ar.app.extensions.initImmersionBar import com.casic.br.ar.app.model.VideoGuideModel import com.casic.br.ar.app.vm.VideoGuideViewModel import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter @@ -17,7 +17,6 @@ import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialogHub import com.pengxh.kt.lite.utils.WeakReferenceHandler -import com.pengxh.kt.lite.widget.TitleBarView class VideoGuideActivity : KotlinBaseActivity(), Handler.Callback { @@ -133,15 +132,7 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.themeColor) - binding.titleView.setOnClickListener(object : TitleBarView.OnClickListener { - override fun onLeftClick() { - finish() - } - - override fun onRightClick() { - - } - }) + val uiOptions = (View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN) + window.decorView.systemUiVisibility = uiOptions } } \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_manifest_building.xml b/app/src/main/res/drawable/ic_manifest_building.xml new file mode 100644 index 0000000..aa693dc --- /dev/null +++ b/app/src/main/res/drawable/ic_manifest_building.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/drawable/ic_manifest_confined_spaces.xml b/app/src/main/res/drawable/ic_manifest_confined_spaces.xml new file mode 100644 index 0000000..a20a542 --- /dev/null +++ b/app/src/main/res/drawable/ic_manifest_confined_spaces.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_manifest_elec_box.xml b/app/src/main/res/drawable/ic_manifest_elec_box.xml new file mode 100644 index 0000000..5f1bb55 --- /dev/null +++ b/app/src/main/res/drawable/ic_manifest_elec_box.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_manifest_no_people.xml b/app/src/main/res/drawable/ic_manifest_no_people.xml new file mode 100644 index 0000000..23648e0 --- /dev/null +++ b/app/src/main/res/drawable/ic_manifest_no_people.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_manifest_pressure_station.xml b/app/src/main/res/drawable/ic_manifest_pressure_station.xml new file mode 100644 index 0000000..b2b20af --- /dev/null +++ b/app/src/main/res/drawable/ic_manifest_pressure_station.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/layout/activity_check_manifest.xml b/app/src/main/res/layout/activity_check_manifest.xml index 77d2213..72b54cc 100644 --- a/app/src/main/res/layout/activity_check_manifest.xml +++ b/app/src/main/res/layout/activity_check_manifest.xml @@ -1,101 +1,28 @@ - - + android:fontFamily="sans-serif-black" + android:padding="@dimen/dp_10" + android:text="检查清单" + android:textColor="@color/white" + android:textSize="@dimen/sp_18" /> - - - - -