diff --git a/.idea/misc.xml b/.idea/misc.xml index ce859f2..d81a5c8 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,4 +1,3 @@ - diff --git a/.idea/misc.xml b/.idea/misc.xml index ce859f2..d81a5c8 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,4 +1,3 @@ - diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d290ca3..0583dda 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -60,7 +60,7 @@ - + diff --git a/.idea/misc.xml b/.idea/misc.xml index ce859f2..d81a5c8 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,4 +1,3 @@ - diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d290ca3..0583dda 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -60,7 +60,7 @@ - + diff --git a/app/src/main/java/com/casic/br/app/model/CheckManifestModel.java b/app/src/main/java/com/casic/br/app/model/CheckManifestModel.java new file mode 100644 index 0000000..60ce63e --- /dev/null +++ b/app/src/main/java/com/casic/br/app/model/CheckManifestModel.java @@ -0,0 +1,4 @@ +package com.casic.br.app.model; + +public class CheckManifestModel { +} diff --git a/.idea/misc.xml b/.idea/misc.xml index ce859f2..d81a5c8 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,4 +1,3 @@ - diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d290ca3..0583dda 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -60,7 +60,7 @@ - + diff --git a/app/src/main/java/com/casic/br/app/model/CheckManifestModel.java b/app/src/main/java/com/casic/br/app/model/CheckManifestModel.java new file mode 100644 index 0000000..60ce63e --- /dev/null +++ b/app/src/main/java/com/casic/br/app/model/CheckManifestModel.java @@ -0,0 +1,4 @@ +package com.casic.br.app.model; + +public class CheckManifestModel { +} diff --git a/app/src/main/java/com/casic/br/app/model/HiddenTroubleModel.java b/app/src/main/java/com/casic/br/app/model/HiddenTroubleModel.java new file mode 100644 index 0000000..0cde5fb --- /dev/null +++ b/app/src/main/java/com/casic/br/app/model/HiddenTroubleModel.java @@ -0,0 +1,4 @@ +package com.casic.br.app.model; + +public class HiddenTroubleModel { +} diff --git a/.idea/misc.xml b/.idea/misc.xml index ce859f2..d81a5c8 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,4 +1,3 @@ - diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d290ca3..0583dda 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -60,7 +60,7 @@ - + diff --git a/app/src/main/java/com/casic/br/app/model/CheckManifestModel.java b/app/src/main/java/com/casic/br/app/model/CheckManifestModel.java new file mode 100644 index 0000000..60ce63e --- /dev/null +++ b/app/src/main/java/com/casic/br/app/model/CheckManifestModel.java @@ -0,0 +1,4 @@ +package com.casic.br.app.model; + +public class CheckManifestModel { +} diff --git a/app/src/main/java/com/casic/br/app/model/HiddenTroubleModel.java b/app/src/main/java/com/casic/br/app/model/HiddenTroubleModel.java new file mode 100644 index 0000000..0cde5fb --- /dev/null +++ b/app/src/main/java/com/casic/br/app/model/HiddenTroubleModel.java @@ -0,0 +1,4 @@ +package com.casic.br.app.model; + +public class HiddenTroubleModel { +} diff --git a/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt index 67c0cfc..7ca5557 100644 --- a/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt @@ -29,4 +29,15 @@ @QueryMap limit: Map, @QueryMap offset: Map ): String + + /** + * 获取检查清单 + */ + @POST("/meter/file/listPage") + suspend fun getCheckManifestByPage( + @Header("token") token: String, + @Body requestBody: RequestBody, + @QueryMap limit: Map, + @QueryMap offset: Map + ): String } \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index ce859f2..d81a5c8 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,4 +1,3 @@ - diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d290ca3..0583dda 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -60,7 +60,7 @@ - + diff --git a/app/src/main/java/com/casic/br/app/model/CheckManifestModel.java b/app/src/main/java/com/casic/br/app/model/CheckManifestModel.java new file mode 100644 index 0000000..60ce63e --- /dev/null +++ b/app/src/main/java/com/casic/br/app/model/CheckManifestModel.java @@ -0,0 +1,4 @@ +package com.casic.br.app.model; + +public class CheckManifestModel { +} diff --git a/app/src/main/java/com/casic/br/app/model/HiddenTroubleModel.java b/app/src/main/java/com/casic/br/app/model/HiddenTroubleModel.java new file mode 100644 index 0000000..0cde5fb --- /dev/null +++ b/app/src/main/java/com/casic/br/app/model/HiddenTroubleModel.java @@ -0,0 +1,4 @@ +package com.casic.br.app.model; + +public class HiddenTroubleModel { +} diff --git a/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt index 67c0cfc..7ca5557 100644 --- a/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt @@ -29,4 +29,15 @@ @QueryMap limit: Map, @QueryMap offset: Map ): String + + /** + * 获取检查清单 + */ + @POST("/meter/file/listPage") + suspend fun getCheckManifestByPage( + @Header("token") token: String, + @Body requestBody: RequestBody, + @QueryMap limit: Map, + @QueryMap offset: Map + ): String } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt index efdb1ca..f33f090 100644 --- a/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt @@ -56,4 +56,24 @@ AuthenticationHelper.token, requestBody, limitMap, offsetMap ) } + + /** + * 获取检查清单 + */ + suspend fun getCheckManifestByPage(keywords: String, offset: Int): String { + val param = JsonObject() + param.addProperty("keywords", keywords) + val requestBody = param.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + + val limitMap = HashMap() + limitMap["limit"] = LocaleConstant.PAGE_LIMIT + + val offsetMap = HashMap() + offsetMap["offset"] = offset + return api.getCheckManifestByPage( + AuthenticationHelper.token, requestBody, limitMap, offsetMap + ) + } } \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index ce859f2..d81a5c8 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,4 +1,3 @@ - diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d290ca3..0583dda 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -60,7 +60,7 @@ - + diff --git a/app/src/main/java/com/casic/br/app/model/CheckManifestModel.java b/app/src/main/java/com/casic/br/app/model/CheckManifestModel.java new file mode 100644 index 0000000..60ce63e --- /dev/null +++ b/app/src/main/java/com/casic/br/app/model/CheckManifestModel.java @@ -0,0 +1,4 @@ +package com.casic.br.app.model; + +public class CheckManifestModel { +} diff --git a/app/src/main/java/com/casic/br/app/model/HiddenTroubleModel.java b/app/src/main/java/com/casic/br/app/model/HiddenTroubleModel.java new file mode 100644 index 0000000..0cde5fb --- /dev/null +++ b/app/src/main/java/com/casic/br/app/model/HiddenTroubleModel.java @@ -0,0 +1,4 @@ +package com.casic.br.app.model; + +public class HiddenTroubleModel { +} diff --git a/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt index 67c0cfc..7ca5557 100644 --- a/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt @@ -29,4 +29,15 @@ @QueryMap limit: Map, @QueryMap offset: Map ): String + + /** + * 获取检查清单 + */ + @POST("/meter/file/listPage") + suspend fun getCheckManifestByPage( + @Header("token") token: String, + @Body requestBody: RequestBody, + @QueryMap limit: Map, + @QueryMap offset: Map + ): String } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt index efdb1ca..f33f090 100644 --- a/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt @@ -56,4 +56,24 @@ AuthenticationHelper.token, requestBody, limitMap, offsetMap ) } + + /** + * 获取检查清单 + */ + suspend fun getCheckManifestByPage(keywords: String, offset: Int): String { + val param = JsonObject() + param.addProperty("keywords", keywords) + val requestBody = param.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + + val limitMap = HashMap() + limitMap["limit"] = LocaleConstant.PAGE_LIMIT + + val offsetMap = HashMap() + offsetMap["offset"] = offset + return api.getCheckManifestByPage( + AuthenticationHelper.token, requestBody, limitMap, offsetMap + ) + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/app/view/CheckManifestActivity.kt b/app/src/main/java/com/casic/br/app/view/CheckManifestActivity.kt new file mode 100644 index 0000000..45e30bb --- /dev/null +++ b/app/src/main/java/com/casic/br/app/view/CheckManifestActivity.kt @@ -0,0 +1,139 @@ +package com.casic.br.app.view + +import android.os.Bundle +import android.os.Handler +import android.os.Message +import androidx.lifecycle.ViewModelProvider +import com.casic.br.app.R +import com.casic.br.app.databinding.ActivityCheckManifestBinding +import com.casic.br.app.extensions.initImmersionBar +import com.casic.br.app.model.CheckManifestModel +import com.casic.br.app.vm.CheckManifestViewModel +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 + +class CheckManifestActivity : KotlinBaseActivity(), Handler.Callback { + + 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 + + override fun initEvent() { + binding.leftButton.setOnClickListener { finish() } + + 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) +// } +// } +// } + } + } + + 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 + ) { + + } + } + 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 查看检查清单详情 + } + }) + } + } + return true + } + + override fun initViewBinding(): ActivityCheckManifestBinding { + return ActivityCheckManifestBinding.inflate(layoutInflater) + } + + 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) + } +} \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index ce859f2..d81a5c8 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,4 +1,3 @@ - diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d290ca3..0583dda 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -60,7 +60,7 @@ - + diff --git a/app/src/main/java/com/casic/br/app/model/CheckManifestModel.java b/app/src/main/java/com/casic/br/app/model/CheckManifestModel.java new file mode 100644 index 0000000..60ce63e --- /dev/null +++ b/app/src/main/java/com/casic/br/app/model/CheckManifestModel.java @@ -0,0 +1,4 @@ +package com.casic.br.app.model; + +public class CheckManifestModel { +} diff --git a/app/src/main/java/com/casic/br/app/model/HiddenTroubleModel.java b/app/src/main/java/com/casic/br/app/model/HiddenTroubleModel.java new file mode 100644 index 0000000..0cde5fb --- /dev/null +++ b/app/src/main/java/com/casic/br/app/model/HiddenTroubleModel.java @@ -0,0 +1,4 @@ +package com.casic.br.app.model; + +public class HiddenTroubleModel { +} diff --git a/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt index 67c0cfc..7ca5557 100644 --- a/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt @@ -29,4 +29,15 @@ @QueryMap limit: Map, @QueryMap offset: Map ): String + + /** + * 获取检查清单 + */ + @POST("/meter/file/listPage") + suspend fun getCheckManifestByPage( + @Header("token") token: String, + @Body requestBody: RequestBody, + @QueryMap limit: Map, + @QueryMap offset: Map + ): String } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt index efdb1ca..f33f090 100644 --- a/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt @@ -56,4 +56,24 @@ AuthenticationHelper.token, requestBody, limitMap, offsetMap ) } + + /** + * 获取检查清单 + */ + suspend fun getCheckManifestByPage(keywords: String, offset: Int): String { + val param = JsonObject() + param.addProperty("keywords", keywords) + val requestBody = param.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + + val limitMap = HashMap() + limitMap["limit"] = LocaleConstant.PAGE_LIMIT + + val offsetMap = HashMap() + offsetMap["offset"] = offset + return api.getCheckManifestByPage( + AuthenticationHelper.token, requestBody, limitMap, offsetMap + ) + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/app/view/CheckManifestActivity.kt b/app/src/main/java/com/casic/br/app/view/CheckManifestActivity.kt new file mode 100644 index 0000000..45e30bb --- /dev/null +++ b/app/src/main/java/com/casic/br/app/view/CheckManifestActivity.kt @@ -0,0 +1,139 @@ +package com.casic.br.app.view + +import android.os.Bundle +import android.os.Handler +import android.os.Message +import androidx.lifecycle.ViewModelProvider +import com.casic.br.app.R +import com.casic.br.app.databinding.ActivityCheckManifestBinding +import com.casic.br.app.extensions.initImmersionBar +import com.casic.br.app.model.CheckManifestModel +import com.casic.br.app.vm.CheckManifestViewModel +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 + +class CheckManifestActivity : KotlinBaseActivity(), Handler.Callback { + + 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 + + override fun initEvent() { + binding.leftButton.setOnClickListener { finish() } + + 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) +// } +// } +// } + } + } + + 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 + ) { + + } + } + 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 查看检查清单详情 + } + }) + } + } + return true + } + + override fun initViewBinding(): ActivityCheckManifestBinding { + return ActivityCheckManifestBinding.inflate(layoutInflater) + } + + 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) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/app/view/HiddenTroubleActivity.kt b/app/src/main/java/com/casic/br/app/view/HiddenTroubleActivity.kt index b79d4d1..495f9f8 100644 --- a/app/src/main/java/com/casic/br/app/view/HiddenTroubleActivity.kt +++ b/app/src/main/java/com/casic/br/app/view/HiddenTroubleActivity.kt @@ -7,6 +7,7 @@ import com.casic.br.app.R import com.casic.br.app.databinding.ActivityHiddenTroubleBinding import com.casic.br.app.extensions.initImmersionBar +import com.casic.br.app.model.HiddenTroubleModel import com.casic.br.app.vm.HiddenTroubleViewModel import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder @@ -21,8 +22,8 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var hiddenTroubleViewModel: HiddenTroubleViewModel - private lateinit var hiddenTroubleAdapter: NormalRecyclerAdapter - private var dataBeans: MutableList = ArrayList() + private lateinit var hiddenTroubleAdapter: NormalRecyclerAdapter + private var dataBeans: MutableList = ArrayList() private var keywords = "" private var page = 1 private var isRefresh = false @@ -51,7 +52,7 @@ override fun initOnCreate(savedInstanceState: Bundle?) { weakReferenceHandler = WeakReferenceHandler(this) hiddenTroubleViewModel = ViewModelProvider(this)[HiddenTroubleViewModel::class.java] - hiddenTroubleViewModel.fileListResult.observe(this) { + hiddenTroubleViewModel.troublesResult.observe(this) { // if (it.code == 200) { // val dataRows = it.data?.rows!! // when { @@ -87,12 +88,12 @@ when (msg.what) { 2024030402 -> { hiddenTroubleAdapter = object : - NormalRecyclerAdapter( + NormalRecyclerAdapter( R.layout.item_hidden_trouble, dataBeans ) { override fun convertView( viewHolder: ViewHolder, position: Int, - item: Any + item: HiddenTroubleModel ) { } @@ -100,9 +101,9 @@ binding.recyclerView.adapter = hiddenTroubleAdapter binding.recyclerView.addItemDecoration(RecyclerViewItemOffsets(0, 7, 0, 7)) hiddenTroubleAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { + NormalRecyclerAdapter.OnItemClickedListener { override fun onItemClicked( - position: Int, t: Any + position: Int, t: HiddenTroubleModel ) { //TODO 查看隐患目录详情 } diff --git a/.idea/misc.xml b/.idea/misc.xml index ce859f2..d81a5c8 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,4 +1,3 @@ - diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d290ca3..0583dda 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -60,7 +60,7 @@ - + diff --git a/app/src/main/java/com/casic/br/app/model/CheckManifestModel.java b/app/src/main/java/com/casic/br/app/model/CheckManifestModel.java new file mode 100644 index 0000000..60ce63e --- /dev/null +++ b/app/src/main/java/com/casic/br/app/model/CheckManifestModel.java @@ -0,0 +1,4 @@ +package com.casic.br.app.model; + +public class CheckManifestModel { +} diff --git a/app/src/main/java/com/casic/br/app/model/HiddenTroubleModel.java b/app/src/main/java/com/casic/br/app/model/HiddenTroubleModel.java new file mode 100644 index 0000000..0cde5fb --- /dev/null +++ b/app/src/main/java/com/casic/br/app/model/HiddenTroubleModel.java @@ -0,0 +1,4 @@ +package com.casic.br.app.model; + +public class HiddenTroubleModel { +} diff --git a/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt index 67c0cfc..7ca5557 100644 --- a/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt @@ -29,4 +29,15 @@ @QueryMap limit: Map, @QueryMap offset: Map ): String + + /** + * 获取检查清单 + */ + @POST("/meter/file/listPage") + suspend fun getCheckManifestByPage( + @Header("token") token: String, + @Body requestBody: RequestBody, + @QueryMap limit: Map, + @QueryMap offset: Map + ): String } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt index efdb1ca..f33f090 100644 --- a/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt @@ -56,4 +56,24 @@ AuthenticationHelper.token, requestBody, limitMap, offsetMap ) } + + /** + * 获取检查清单 + */ + suspend fun getCheckManifestByPage(keywords: String, offset: Int): String { + val param = JsonObject() + param.addProperty("keywords", keywords) + val requestBody = param.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + + val limitMap = HashMap() + limitMap["limit"] = LocaleConstant.PAGE_LIMIT + + val offsetMap = HashMap() + offsetMap["offset"] = offset + return api.getCheckManifestByPage( + AuthenticationHelper.token, requestBody, limitMap, offsetMap + ) + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/app/view/CheckManifestActivity.kt b/app/src/main/java/com/casic/br/app/view/CheckManifestActivity.kt new file mode 100644 index 0000000..45e30bb --- /dev/null +++ b/app/src/main/java/com/casic/br/app/view/CheckManifestActivity.kt @@ -0,0 +1,139 @@ +package com.casic.br.app.view + +import android.os.Bundle +import android.os.Handler +import android.os.Message +import androidx.lifecycle.ViewModelProvider +import com.casic.br.app.R +import com.casic.br.app.databinding.ActivityCheckManifestBinding +import com.casic.br.app.extensions.initImmersionBar +import com.casic.br.app.model.CheckManifestModel +import com.casic.br.app.vm.CheckManifestViewModel +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 + +class CheckManifestActivity : KotlinBaseActivity(), Handler.Callback { + + 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 + + override fun initEvent() { + binding.leftButton.setOnClickListener { finish() } + + 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) +// } +// } +// } + } + } + + 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 + ) { + + } + } + 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 查看检查清单详情 + } + }) + } + } + return true + } + + override fun initViewBinding(): ActivityCheckManifestBinding { + return ActivityCheckManifestBinding.inflate(layoutInflater) + } + + 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) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/app/view/HiddenTroubleActivity.kt b/app/src/main/java/com/casic/br/app/view/HiddenTroubleActivity.kt index b79d4d1..495f9f8 100644 --- a/app/src/main/java/com/casic/br/app/view/HiddenTroubleActivity.kt +++ b/app/src/main/java/com/casic/br/app/view/HiddenTroubleActivity.kt @@ -7,6 +7,7 @@ import com.casic.br.app.R import com.casic.br.app.databinding.ActivityHiddenTroubleBinding import com.casic.br.app.extensions.initImmersionBar +import com.casic.br.app.model.HiddenTroubleModel import com.casic.br.app.vm.HiddenTroubleViewModel import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder @@ -21,8 +22,8 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var hiddenTroubleViewModel: HiddenTroubleViewModel - private lateinit var hiddenTroubleAdapter: NormalRecyclerAdapter - private var dataBeans: MutableList = ArrayList() + private lateinit var hiddenTroubleAdapter: NormalRecyclerAdapter + private var dataBeans: MutableList = ArrayList() private var keywords = "" private var page = 1 private var isRefresh = false @@ -51,7 +52,7 @@ override fun initOnCreate(savedInstanceState: Bundle?) { weakReferenceHandler = WeakReferenceHandler(this) hiddenTroubleViewModel = ViewModelProvider(this)[HiddenTroubleViewModel::class.java] - hiddenTroubleViewModel.fileListResult.observe(this) { + hiddenTroubleViewModel.troublesResult.observe(this) { // if (it.code == 200) { // val dataRows = it.data?.rows!! // when { @@ -87,12 +88,12 @@ when (msg.what) { 2024030402 -> { hiddenTroubleAdapter = object : - NormalRecyclerAdapter( + NormalRecyclerAdapter( R.layout.item_hidden_trouble, dataBeans ) { override fun convertView( viewHolder: ViewHolder, position: Int, - item: Any + item: HiddenTroubleModel ) { } @@ -100,9 +101,9 @@ binding.recyclerView.adapter = hiddenTroubleAdapter binding.recyclerView.addItemDecoration(RecyclerViewItemOffsets(0, 7, 0, 7)) hiddenTroubleAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { + NormalRecyclerAdapter.OnItemClickedListener { override fun onItemClicked( - position: Int, t: Any + position: Int, t: HiddenTroubleModel ) { //TODO 查看隐患目录详情 } diff --git a/app/src/main/java/com/casic/br/app/view/LibraryActivity.kt b/app/src/main/java/com/casic/br/app/view/LibraryActivity.kt index 911d554..dd9b982 100644 --- a/app/src/main/java/com/casic/br/app/view/LibraryActivity.kt +++ b/app/src/main/java/com/casic/br/app/view/LibraryActivity.kt @@ -21,7 +21,7 @@ } binding.manifestButton.setOnClickListener { - navigatePageTo() + navigatePageTo() } binding.guideButton.setOnClickListener { diff --git a/.idea/misc.xml b/.idea/misc.xml index ce859f2..d81a5c8 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,4 +1,3 @@ - diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d290ca3..0583dda 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -60,7 +60,7 @@ - + diff --git a/app/src/main/java/com/casic/br/app/model/CheckManifestModel.java b/app/src/main/java/com/casic/br/app/model/CheckManifestModel.java new file mode 100644 index 0000000..60ce63e --- /dev/null +++ b/app/src/main/java/com/casic/br/app/model/CheckManifestModel.java @@ -0,0 +1,4 @@ +package com.casic.br.app.model; + +public class CheckManifestModel { +} diff --git a/app/src/main/java/com/casic/br/app/model/HiddenTroubleModel.java b/app/src/main/java/com/casic/br/app/model/HiddenTroubleModel.java new file mode 100644 index 0000000..0cde5fb --- /dev/null +++ b/app/src/main/java/com/casic/br/app/model/HiddenTroubleModel.java @@ -0,0 +1,4 @@ +package com.casic.br.app.model; + +public class HiddenTroubleModel { +} diff --git a/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt index 67c0cfc..7ca5557 100644 --- a/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt @@ -29,4 +29,15 @@ @QueryMap limit: Map, @QueryMap offset: Map ): String + + /** + * 获取检查清单 + */ + @POST("/meter/file/listPage") + suspend fun getCheckManifestByPage( + @Header("token") token: String, + @Body requestBody: RequestBody, + @QueryMap limit: Map, + @QueryMap offset: Map + ): String } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt index efdb1ca..f33f090 100644 --- a/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt @@ -56,4 +56,24 @@ AuthenticationHelper.token, requestBody, limitMap, offsetMap ) } + + /** + * 获取检查清单 + */ + suspend fun getCheckManifestByPage(keywords: String, offset: Int): String { + val param = JsonObject() + param.addProperty("keywords", keywords) + val requestBody = param.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + + val limitMap = HashMap() + limitMap["limit"] = LocaleConstant.PAGE_LIMIT + + val offsetMap = HashMap() + offsetMap["offset"] = offset + return api.getCheckManifestByPage( + AuthenticationHelper.token, requestBody, limitMap, offsetMap + ) + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/app/view/CheckManifestActivity.kt b/app/src/main/java/com/casic/br/app/view/CheckManifestActivity.kt new file mode 100644 index 0000000..45e30bb --- /dev/null +++ b/app/src/main/java/com/casic/br/app/view/CheckManifestActivity.kt @@ -0,0 +1,139 @@ +package com.casic.br.app.view + +import android.os.Bundle +import android.os.Handler +import android.os.Message +import androidx.lifecycle.ViewModelProvider +import com.casic.br.app.R +import com.casic.br.app.databinding.ActivityCheckManifestBinding +import com.casic.br.app.extensions.initImmersionBar +import com.casic.br.app.model.CheckManifestModel +import com.casic.br.app.vm.CheckManifestViewModel +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 + +class CheckManifestActivity : KotlinBaseActivity(), Handler.Callback { + + 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 + + override fun initEvent() { + binding.leftButton.setOnClickListener { finish() } + + 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) +// } +// } +// } + } + } + + 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 + ) { + + } + } + 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 查看检查清单详情 + } + }) + } + } + return true + } + + override fun initViewBinding(): ActivityCheckManifestBinding { + return ActivityCheckManifestBinding.inflate(layoutInflater) + } + + 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) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/app/view/HiddenTroubleActivity.kt b/app/src/main/java/com/casic/br/app/view/HiddenTroubleActivity.kt index b79d4d1..495f9f8 100644 --- a/app/src/main/java/com/casic/br/app/view/HiddenTroubleActivity.kt +++ b/app/src/main/java/com/casic/br/app/view/HiddenTroubleActivity.kt @@ -7,6 +7,7 @@ import com.casic.br.app.R import com.casic.br.app.databinding.ActivityHiddenTroubleBinding import com.casic.br.app.extensions.initImmersionBar +import com.casic.br.app.model.HiddenTroubleModel import com.casic.br.app.vm.HiddenTroubleViewModel import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder @@ -21,8 +22,8 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var hiddenTroubleViewModel: HiddenTroubleViewModel - private lateinit var hiddenTroubleAdapter: NormalRecyclerAdapter - private var dataBeans: MutableList = ArrayList() + private lateinit var hiddenTroubleAdapter: NormalRecyclerAdapter + private var dataBeans: MutableList = ArrayList() private var keywords = "" private var page = 1 private var isRefresh = false @@ -51,7 +52,7 @@ override fun initOnCreate(savedInstanceState: Bundle?) { weakReferenceHandler = WeakReferenceHandler(this) hiddenTroubleViewModel = ViewModelProvider(this)[HiddenTroubleViewModel::class.java] - hiddenTroubleViewModel.fileListResult.observe(this) { + hiddenTroubleViewModel.troublesResult.observe(this) { // if (it.code == 200) { // val dataRows = it.data?.rows!! // when { @@ -87,12 +88,12 @@ when (msg.what) { 2024030402 -> { hiddenTroubleAdapter = object : - NormalRecyclerAdapter( + NormalRecyclerAdapter( R.layout.item_hidden_trouble, dataBeans ) { override fun convertView( viewHolder: ViewHolder, position: Int, - item: Any + item: HiddenTroubleModel ) { } @@ -100,9 +101,9 @@ binding.recyclerView.adapter = hiddenTroubleAdapter binding.recyclerView.addItemDecoration(RecyclerViewItemOffsets(0, 7, 0, 7)) hiddenTroubleAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { + NormalRecyclerAdapter.OnItemClickedListener { override fun onItemClicked( - position: Int, t: Any + position: Int, t: HiddenTroubleModel ) { //TODO 查看隐患目录详情 } diff --git a/app/src/main/java/com/casic/br/app/view/LibraryActivity.kt b/app/src/main/java/com/casic/br/app/view/LibraryActivity.kt index 911d554..dd9b982 100644 --- a/app/src/main/java/com/casic/br/app/view/LibraryActivity.kt +++ b/app/src/main/java/com/casic/br/app/view/LibraryActivity.kt @@ -21,7 +21,7 @@ } binding.manifestButton.setOnClickListener { - navigatePageTo() + navigatePageTo() } binding.guideButton.setOnClickListener { diff --git a/app/src/main/java/com/casic/br/app/view/ManifestActivity.kt b/app/src/main/java/com/casic/br/app/view/ManifestActivity.kt deleted file mode 100644 index f21d587..0000000 --- a/app/src/main/java/com/casic/br/app/view/ManifestActivity.kt +++ /dev/null @@ -1,27 +0,0 @@ -package com.casic.br.app.view - -import android.os.Bundle -import com.casic.br.app.databinding.ActivityManifestBinding -import com.pengxh.kt.lite.base.KotlinBaseActivity - -class ManifestActivity: KotlinBaseActivity() { - override fun initEvent() { - - } - - override fun initOnCreate(savedInstanceState: Bundle?) { - - } - - override fun initViewBinding(): ActivityManifestBinding { - return ActivityManifestBinding.inflate(layoutInflater) - } - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - - } -} \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index ce859f2..d81a5c8 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,4 +1,3 @@ - diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d290ca3..0583dda 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -60,7 +60,7 @@ - + diff --git a/app/src/main/java/com/casic/br/app/model/CheckManifestModel.java b/app/src/main/java/com/casic/br/app/model/CheckManifestModel.java new file mode 100644 index 0000000..60ce63e --- /dev/null +++ b/app/src/main/java/com/casic/br/app/model/CheckManifestModel.java @@ -0,0 +1,4 @@ +package com.casic.br.app.model; + +public class CheckManifestModel { +} diff --git a/app/src/main/java/com/casic/br/app/model/HiddenTroubleModel.java b/app/src/main/java/com/casic/br/app/model/HiddenTroubleModel.java new file mode 100644 index 0000000..0cde5fb --- /dev/null +++ b/app/src/main/java/com/casic/br/app/model/HiddenTroubleModel.java @@ -0,0 +1,4 @@ +package com.casic.br.app.model; + +public class HiddenTroubleModel { +} diff --git a/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt index 67c0cfc..7ca5557 100644 --- a/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt @@ -29,4 +29,15 @@ @QueryMap limit: Map, @QueryMap offset: Map ): String + + /** + * 获取检查清单 + */ + @POST("/meter/file/listPage") + suspend fun getCheckManifestByPage( + @Header("token") token: String, + @Body requestBody: RequestBody, + @QueryMap limit: Map, + @QueryMap offset: Map + ): String } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt index efdb1ca..f33f090 100644 --- a/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt @@ -56,4 +56,24 @@ AuthenticationHelper.token, requestBody, limitMap, offsetMap ) } + + /** + * 获取检查清单 + */ + suspend fun getCheckManifestByPage(keywords: String, offset: Int): String { + val param = JsonObject() + param.addProperty("keywords", keywords) + val requestBody = param.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + + val limitMap = HashMap() + limitMap["limit"] = LocaleConstant.PAGE_LIMIT + + val offsetMap = HashMap() + offsetMap["offset"] = offset + return api.getCheckManifestByPage( + AuthenticationHelper.token, requestBody, limitMap, offsetMap + ) + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/app/view/CheckManifestActivity.kt b/app/src/main/java/com/casic/br/app/view/CheckManifestActivity.kt new file mode 100644 index 0000000..45e30bb --- /dev/null +++ b/app/src/main/java/com/casic/br/app/view/CheckManifestActivity.kt @@ -0,0 +1,139 @@ +package com.casic.br.app.view + +import android.os.Bundle +import android.os.Handler +import android.os.Message +import androidx.lifecycle.ViewModelProvider +import com.casic.br.app.R +import com.casic.br.app.databinding.ActivityCheckManifestBinding +import com.casic.br.app.extensions.initImmersionBar +import com.casic.br.app.model.CheckManifestModel +import com.casic.br.app.vm.CheckManifestViewModel +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 + +class CheckManifestActivity : KotlinBaseActivity(), Handler.Callback { + + 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 + + override fun initEvent() { + binding.leftButton.setOnClickListener { finish() } + + 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) +// } +// } +// } + } + } + + 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 + ) { + + } + } + 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 查看检查清单详情 + } + }) + } + } + return true + } + + override fun initViewBinding(): ActivityCheckManifestBinding { + return ActivityCheckManifestBinding.inflate(layoutInflater) + } + + 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) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/app/view/HiddenTroubleActivity.kt b/app/src/main/java/com/casic/br/app/view/HiddenTroubleActivity.kt index b79d4d1..495f9f8 100644 --- a/app/src/main/java/com/casic/br/app/view/HiddenTroubleActivity.kt +++ b/app/src/main/java/com/casic/br/app/view/HiddenTroubleActivity.kt @@ -7,6 +7,7 @@ import com.casic.br.app.R import com.casic.br.app.databinding.ActivityHiddenTroubleBinding import com.casic.br.app.extensions.initImmersionBar +import com.casic.br.app.model.HiddenTroubleModel import com.casic.br.app.vm.HiddenTroubleViewModel import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder @@ -21,8 +22,8 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var hiddenTroubleViewModel: HiddenTroubleViewModel - private lateinit var hiddenTroubleAdapter: NormalRecyclerAdapter - private var dataBeans: MutableList = ArrayList() + private lateinit var hiddenTroubleAdapter: NormalRecyclerAdapter + private var dataBeans: MutableList = ArrayList() private var keywords = "" private var page = 1 private var isRefresh = false @@ -51,7 +52,7 @@ override fun initOnCreate(savedInstanceState: Bundle?) { weakReferenceHandler = WeakReferenceHandler(this) hiddenTroubleViewModel = ViewModelProvider(this)[HiddenTroubleViewModel::class.java] - hiddenTroubleViewModel.fileListResult.observe(this) { + hiddenTroubleViewModel.troublesResult.observe(this) { // if (it.code == 200) { // val dataRows = it.data?.rows!! // when { @@ -87,12 +88,12 @@ when (msg.what) { 2024030402 -> { hiddenTroubleAdapter = object : - NormalRecyclerAdapter( + NormalRecyclerAdapter( R.layout.item_hidden_trouble, dataBeans ) { override fun convertView( viewHolder: ViewHolder, position: Int, - item: Any + item: HiddenTroubleModel ) { } @@ -100,9 +101,9 @@ binding.recyclerView.adapter = hiddenTroubleAdapter binding.recyclerView.addItemDecoration(RecyclerViewItemOffsets(0, 7, 0, 7)) hiddenTroubleAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { + NormalRecyclerAdapter.OnItemClickedListener { override fun onItemClicked( - position: Int, t: Any + position: Int, t: HiddenTroubleModel ) { //TODO 查看隐患目录详情 } diff --git a/app/src/main/java/com/casic/br/app/view/LibraryActivity.kt b/app/src/main/java/com/casic/br/app/view/LibraryActivity.kt index 911d554..dd9b982 100644 --- a/app/src/main/java/com/casic/br/app/view/LibraryActivity.kt +++ b/app/src/main/java/com/casic/br/app/view/LibraryActivity.kt @@ -21,7 +21,7 @@ } binding.manifestButton.setOnClickListener { - navigatePageTo() + navigatePageTo() } binding.guideButton.setOnClickListener { diff --git a/app/src/main/java/com/casic/br/app/view/ManifestActivity.kt b/app/src/main/java/com/casic/br/app/view/ManifestActivity.kt deleted file mode 100644 index f21d587..0000000 --- a/app/src/main/java/com/casic/br/app/view/ManifestActivity.kt +++ /dev/null @@ -1,27 +0,0 @@ -package com.casic.br.app.view - -import android.os.Bundle -import com.casic.br.app.databinding.ActivityManifestBinding -import com.pengxh.kt.lite.base.KotlinBaseActivity - -class ManifestActivity: KotlinBaseActivity() { - override fun initEvent() { - - } - - override fun initOnCreate(savedInstanceState: Bundle?) { - - } - - override fun initViewBinding(): ActivityManifestBinding { - return ActivityManifestBinding.inflate(layoutInflater) - } - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/app/vm/CheckManifestViewModel.kt b/app/src/main/java/com/casic/br/app/vm/CheckManifestViewModel.kt new file mode 100644 index 0000000..a8646e8 --- /dev/null +++ b/app/src/main/java/com/casic/br/app/vm/CheckManifestViewModel.kt @@ -0,0 +1,41 @@ +package com.casic.br.app.vm + +import android.content.Context +import androidx.lifecycle.MutableLiveData +import com.casic.br.app.extensions.getResponseCode +import com.casic.br.app.extensions.getResponseMessage +import com.casic.br.app.model.CheckManifestModel +import com.casic.br.app.retrofit.RetrofitServiceManager +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken +import com.pengxh.kt.lite.base.BaseViewModel +import com.pengxh.kt.lite.extensions.launch +import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.LoadState + +class CheckManifestViewModel : BaseViewModel() { + + private val gson by lazy { Gson() } + val manifestResult = MutableLiveData() + + fun getCheckManifestByPage(context: Context, keywords: String, offset: Int) = launch({ + loadState.value = LoadState.Loading + val response = RetrofitServiceManager.getCheckManifestByPage(keywords, offset) + when (response.getResponseCode()) { + 200 -> { + loadState.value = LoadState.Success + manifestResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } + + else -> { + loadState.value = LoadState.Fail + response.getResponseMessage().show(context) + } + } + }, { + loadState.value = LoadState.Fail + it.localizedMessage?.show(context) + }) +} \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index ce859f2..d81a5c8 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,4 +1,3 @@ - diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d290ca3..0583dda 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -60,7 +60,7 @@ - + diff --git a/app/src/main/java/com/casic/br/app/model/CheckManifestModel.java b/app/src/main/java/com/casic/br/app/model/CheckManifestModel.java new file mode 100644 index 0000000..60ce63e --- /dev/null +++ b/app/src/main/java/com/casic/br/app/model/CheckManifestModel.java @@ -0,0 +1,4 @@ +package com.casic.br.app.model; + +public class CheckManifestModel { +} diff --git a/app/src/main/java/com/casic/br/app/model/HiddenTroubleModel.java b/app/src/main/java/com/casic/br/app/model/HiddenTroubleModel.java new file mode 100644 index 0000000..0cde5fb --- /dev/null +++ b/app/src/main/java/com/casic/br/app/model/HiddenTroubleModel.java @@ -0,0 +1,4 @@ +package com.casic.br.app.model; + +public class HiddenTroubleModel { +} diff --git a/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt index 67c0cfc..7ca5557 100644 --- a/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt @@ -29,4 +29,15 @@ @QueryMap limit: Map, @QueryMap offset: Map ): String + + /** + * 获取检查清单 + */ + @POST("/meter/file/listPage") + suspend fun getCheckManifestByPage( + @Header("token") token: String, + @Body requestBody: RequestBody, + @QueryMap limit: Map, + @QueryMap offset: Map + ): String } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt index efdb1ca..f33f090 100644 --- a/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt @@ -56,4 +56,24 @@ AuthenticationHelper.token, requestBody, limitMap, offsetMap ) } + + /** + * 获取检查清单 + */ + suspend fun getCheckManifestByPage(keywords: String, offset: Int): String { + val param = JsonObject() + param.addProperty("keywords", keywords) + val requestBody = param.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + + val limitMap = HashMap() + limitMap["limit"] = LocaleConstant.PAGE_LIMIT + + val offsetMap = HashMap() + offsetMap["offset"] = offset + return api.getCheckManifestByPage( + AuthenticationHelper.token, requestBody, limitMap, offsetMap + ) + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/app/view/CheckManifestActivity.kt b/app/src/main/java/com/casic/br/app/view/CheckManifestActivity.kt new file mode 100644 index 0000000..45e30bb --- /dev/null +++ b/app/src/main/java/com/casic/br/app/view/CheckManifestActivity.kt @@ -0,0 +1,139 @@ +package com.casic.br.app.view + +import android.os.Bundle +import android.os.Handler +import android.os.Message +import androidx.lifecycle.ViewModelProvider +import com.casic.br.app.R +import com.casic.br.app.databinding.ActivityCheckManifestBinding +import com.casic.br.app.extensions.initImmersionBar +import com.casic.br.app.model.CheckManifestModel +import com.casic.br.app.vm.CheckManifestViewModel +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 + +class CheckManifestActivity : KotlinBaseActivity(), Handler.Callback { + + 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 + + override fun initEvent() { + binding.leftButton.setOnClickListener { finish() } + + 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) +// } +// } +// } + } + } + + 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 + ) { + + } + } + 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 查看检查清单详情 + } + }) + } + } + return true + } + + override fun initViewBinding(): ActivityCheckManifestBinding { + return ActivityCheckManifestBinding.inflate(layoutInflater) + } + + 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) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/app/view/HiddenTroubleActivity.kt b/app/src/main/java/com/casic/br/app/view/HiddenTroubleActivity.kt index b79d4d1..495f9f8 100644 --- a/app/src/main/java/com/casic/br/app/view/HiddenTroubleActivity.kt +++ b/app/src/main/java/com/casic/br/app/view/HiddenTroubleActivity.kt @@ -7,6 +7,7 @@ import com.casic.br.app.R import com.casic.br.app.databinding.ActivityHiddenTroubleBinding import com.casic.br.app.extensions.initImmersionBar +import com.casic.br.app.model.HiddenTroubleModel import com.casic.br.app.vm.HiddenTroubleViewModel import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder @@ -21,8 +22,8 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var hiddenTroubleViewModel: HiddenTroubleViewModel - private lateinit var hiddenTroubleAdapter: NormalRecyclerAdapter - private var dataBeans: MutableList = ArrayList() + private lateinit var hiddenTroubleAdapter: NormalRecyclerAdapter + private var dataBeans: MutableList = ArrayList() private var keywords = "" private var page = 1 private var isRefresh = false @@ -51,7 +52,7 @@ override fun initOnCreate(savedInstanceState: Bundle?) { weakReferenceHandler = WeakReferenceHandler(this) hiddenTroubleViewModel = ViewModelProvider(this)[HiddenTroubleViewModel::class.java] - hiddenTroubleViewModel.fileListResult.observe(this) { + hiddenTroubleViewModel.troublesResult.observe(this) { // if (it.code == 200) { // val dataRows = it.data?.rows!! // when { @@ -87,12 +88,12 @@ when (msg.what) { 2024030402 -> { hiddenTroubleAdapter = object : - NormalRecyclerAdapter( + NormalRecyclerAdapter( R.layout.item_hidden_trouble, dataBeans ) { override fun convertView( viewHolder: ViewHolder, position: Int, - item: Any + item: HiddenTroubleModel ) { } @@ -100,9 +101,9 @@ binding.recyclerView.adapter = hiddenTroubleAdapter binding.recyclerView.addItemDecoration(RecyclerViewItemOffsets(0, 7, 0, 7)) hiddenTroubleAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { + NormalRecyclerAdapter.OnItemClickedListener { override fun onItemClicked( - position: Int, t: Any + position: Int, t: HiddenTroubleModel ) { //TODO 查看隐患目录详情 } diff --git a/app/src/main/java/com/casic/br/app/view/LibraryActivity.kt b/app/src/main/java/com/casic/br/app/view/LibraryActivity.kt index 911d554..dd9b982 100644 --- a/app/src/main/java/com/casic/br/app/view/LibraryActivity.kt +++ b/app/src/main/java/com/casic/br/app/view/LibraryActivity.kt @@ -21,7 +21,7 @@ } binding.manifestButton.setOnClickListener { - navigatePageTo() + navigatePageTo() } binding.guideButton.setOnClickListener { diff --git a/app/src/main/java/com/casic/br/app/view/ManifestActivity.kt b/app/src/main/java/com/casic/br/app/view/ManifestActivity.kt deleted file mode 100644 index f21d587..0000000 --- a/app/src/main/java/com/casic/br/app/view/ManifestActivity.kt +++ /dev/null @@ -1,27 +0,0 @@ -package com.casic.br.app.view - -import android.os.Bundle -import com.casic.br.app.databinding.ActivityManifestBinding -import com.pengxh.kt.lite.base.KotlinBaseActivity - -class ManifestActivity: KotlinBaseActivity() { - override fun initEvent() { - - } - - override fun initOnCreate(savedInstanceState: Bundle?) { - - } - - override fun initViewBinding(): ActivityManifestBinding { - return ActivityManifestBinding.inflate(layoutInflater) - } - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/app/vm/CheckManifestViewModel.kt b/app/src/main/java/com/casic/br/app/vm/CheckManifestViewModel.kt new file mode 100644 index 0000000..a8646e8 --- /dev/null +++ b/app/src/main/java/com/casic/br/app/vm/CheckManifestViewModel.kt @@ -0,0 +1,41 @@ +package com.casic.br.app.vm + +import android.content.Context +import androidx.lifecycle.MutableLiveData +import com.casic.br.app.extensions.getResponseCode +import com.casic.br.app.extensions.getResponseMessage +import com.casic.br.app.model.CheckManifestModel +import com.casic.br.app.retrofit.RetrofitServiceManager +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken +import com.pengxh.kt.lite.base.BaseViewModel +import com.pengxh.kt.lite.extensions.launch +import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.LoadState + +class CheckManifestViewModel : BaseViewModel() { + + private val gson by lazy { Gson() } + val manifestResult = MutableLiveData() + + fun getCheckManifestByPage(context: Context, keywords: String, offset: Int) = launch({ + loadState.value = LoadState.Loading + val response = RetrofitServiceManager.getCheckManifestByPage(keywords, offset) + when (response.getResponseCode()) { + 200 -> { + loadState.value = LoadState.Success + manifestResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } + + else -> { + loadState.value = LoadState.Fail + response.getResponseMessage().show(context) + } + } + }, { + loadState.value = LoadState.Fail + it.localizedMessage?.show(context) + }) +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/app/vm/HiddenTroubleViewModel.kt b/app/src/main/java/com/casic/br/app/vm/HiddenTroubleViewModel.kt index dcd32b2..4c5a185 100644 --- a/app/src/main/java/com/casic/br/app/vm/HiddenTroubleViewModel.kt +++ b/app/src/main/java/com/casic/br/app/vm/HiddenTroubleViewModel.kt @@ -4,6 +4,7 @@ import androidx.lifecycle.MutableLiveData import com.casic.br.app.extensions.getResponseCode import com.casic.br.app.extensions.getResponseMessage +import com.casic.br.app.model.HiddenTroubleModel import com.casic.br.app.retrofit.RetrofitServiceManager import com.google.gson.Gson import com.google.gson.reflect.TypeToken @@ -15,7 +16,7 @@ class HiddenTroubleViewModel : BaseViewModel() { private val gson by lazy { Gson() } - val fileListResult = MutableLiveData() + val troublesResult = MutableLiveData() fun getHiddenTroubleMenuByPage(context: Context, keywords: String, offset: Int) = launch({ loadState.value = LoadState.Loading @@ -23,8 +24,8 @@ when (response.getResponseCode()) { 200 -> { loadState.value = LoadState.Success - fileListResult.value = gson.fromJson( - response, object : TypeToken() {}.type + troublesResult.value = gson.fromJson( + response, object : TypeToken() {}.type ) } diff --git a/.idea/misc.xml b/.idea/misc.xml index ce859f2..d81a5c8 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,4 +1,3 @@ - diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d290ca3..0583dda 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -60,7 +60,7 @@ - + diff --git a/app/src/main/java/com/casic/br/app/model/CheckManifestModel.java b/app/src/main/java/com/casic/br/app/model/CheckManifestModel.java new file mode 100644 index 0000000..60ce63e --- /dev/null +++ b/app/src/main/java/com/casic/br/app/model/CheckManifestModel.java @@ -0,0 +1,4 @@ +package com.casic.br.app.model; + +public class CheckManifestModel { +} diff --git a/app/src/main/java/com/casic/br/app/model/HiddenTroubleModel.java b/app/src/main/java/com/casic/br/app/model/HiddenTroubleModel.java new file mode 100644 index 0000000..0cde5fb --- /dev/null +++ b/app/src/main/java/com/casic/br/app/model/HiddenTroubleModel.java @@ -0,0 +1,4 @@ +package com.casic.br.app.model; + +public class HiddenTroubleModel { +} diff --git a/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt index 67c0cfc..7ca5557 100644 --- a/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt @@ -29,4 +29,15 @@ @QueryMap limit: Map, @QueryMap offset: Map ): String + + /** + * 获取检查清单 + */ + @POST("/meter/file/listPage") + suspend fun getCheckManifestByPage( + @Header("token") token: String, + @Body requestBody: RequestBody, + @QueryMap limit: Map, + @QueryMap offset: Map + ): String } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt index efdb1ca..f33f090 100644 --- a/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt @@ -56,4 +56,24 @@ AuthenticationHelper.token, requestBody, limitMap, offsetMap ) } + + /** + * 获取检查清单 + */ + suspend fun getCheckManifestByPage(keywords: String, offset: Int): String { + val param = JsonObject() + param.addProperty("keywords", keywords) + val requestBody = param.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + + val limitMap = HashMap() + limitMap["limit"] = LocaleConstant.PAGE_LIMIT + + val offsetMap = HashMap() + offsetMap["offset"] = offset + return api.getCheckManifestByPage( + AuthenticationHelper.token, requestBody, limitMap, offsetMap + ) + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/app/view/CheckManifestActivity.kt b/app/src/main/java/com/casic/br/app/view/CheckManifestActivity.kt new file mode 100644 index 0000000..45e30bb --- /dev/null +++ b/app/src/main/java/com/casic/br/app/view/CheckManifestActivity.kt @@ -0,0 +1,139 @@ +package com.casic.br.app.view + +import android.os.Bundle +import android.os.Handler +import android.os.Message +import androidx.lifecycle.ViewModelProvider +import com.casic.br.app.R +import com.casic.br.app.databinding.ActivityCheckManifestBinding +import com.casic.br.app.extensions.initImmersionBar +import com.casic.br.app.model.CheckManifestModel +import com.casic.br.app.vm.CheckManifestViewModel +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 + +class CheckManifestActivity : KotlinBaseActivity(), Handler.Callback { + + 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 + + override fun initEvent() { + binding.leftButton.setOnClickListener { finish() } + + 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) +// } +// } +// } + } + } + + 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 + ) { + + } + } + 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 查看检查清单详情 + } + }) + } + } + return true + } + + override fun initViewBinding(): ActivityCheckManifestBinding { + return ActivityCheckManifestBinding.inflate(layoutInflater) + } + + 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) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/app/view/HiddenTroubleActivity.kt b/app/src/main/java/com/casic/br/app/view/HiddenTroubleActivity.kt index b79d4d1..495f9f8 100644 --- a/app/src/main/java/com/casic/br/app/view/HiddenTroubleActivity.kt +++ b/app/src/main/java/com/casic/br/app/view/HiddenTroubleActivity.kt @@ -7,6 +7,7 @@ import com.casic.br.app.R import com.casic.br.app.databinding.ActivityHiddenTroubleBinding import com.casic.br.app.extensions.initImmersionBar +import com.casic.br.app.model.HiddenTroubleModel import com.casic.br.app.vm.HiddenTroubleViewModel import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder @@ -21,8 +22,8 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var hiddenTroubleViewModel: HiddenTroubleViewModel - private lateinit var hiddenTroubleAdapter: NormalRecyclerAdapter - private var dataBeans: MutableList = ArrayList() + private lateinit var hiddenTroubleAdapter: NormalRecyclerAdapter + private var dataBeans: MutableList = ArrayList() private var keywords = "" private var page = 1 private var isRefresh = false @@ -51,7 +52,7 @@ override fun initOnCreate(savedInstanceState: Bundle?) { weakReferenceHandler = WeakReferenceHandler(this) hiddenTroubleViewModel = ViewModelProvider(this)[HiddenTroubleViewModel::class.java] - hiddenTroubleViewModel.fileListResult.observe(this) { + hiddenTroubleViewModel.troublesResult.observe(this) { // if (it.code == 200) { // val dataRows = it.data?.rows!! // when { @@ -87,12 +88,12 @@ when (msg.what) { 2024030402 -> { hiddenTroubleAdapter = object : - NormalRecyclerAdapter( + NormalRecyclerAdapter( R.layout.item_hidden_trouble, dataBeans ) { override fun convertView( viewHolder: ViewHolder, position: Int, - item: Any + item: HiddenTroubleModel ) { } @@ -100,9 +101,9 @@ binding.recyclerView.adapter = hiddenTroubleAdapter binding.recyclerView.addItemDecoration(RecyclerViewItemOffsets(0, 7, 0, 7)) hiddenTroubleAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { + NormalRecyclerAdapter.OnItemClickedListener { override fun onItemClicked( - position: Int, t: Any + position: Int, t: HiddenTroubleModel ) { //TODO 查看隐患目录详情 } diff --git a/app/src/main/java/com/casic/br/app/view/LibraryActivity.kt b/app/src/main/java/com/casic/br/app/view/LibraryActivity.kt index 911d554..dd9b982 100644 --- a/app/src/main/java/com/casic/br/app/view/LibraryActivity.kt +++ b/app/src/main/java/com/casic/br/app/view/LibraryActivity.kt @@ -21,7 +21,7 @@ } binding.manifestButton.setOnClickListener { - navigatePageTo() + navigatePageTo() } binding.guideButton.setOnClickListener { diff --git a/app/src/main/java/com/casic/br/app/view/ManifestActivity.kt b/app/src/main/java/com/casic/br/app/view/ManifestActivity.kt deleted file mode 100644 index f21d587..0000000 --- a/app/src/main/java/com/casic/br/app/view/ManifestActivity.kt +++ /dev/null @@ -1,27 +0,0 @@ -package com.casic.br.app.view - -import android.os.Bundle -import com.casic.br.app.databinding.ActivityManifestBinding -import com.pengxh.kt.lite.base.KotlinBaseActivity - -class ManifestActivity: KotlinBaseActivity() { - override fun initEvent() { - - } - - override fun initOnCreate(savedInstanceState: Bundle?) { - - } - - override fun initViewBinding(): ActivityManifestBinding { - return ActivityManifestBinding.inflate(layoutInflater) - } - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/app/vm/CheckManifestViewModel.kt b/app/src/main/java/com/casic/br/app/vm/CheckManifestViewModel.kt new file mode 100644 index 0000000..a8646e8 --- /dev/null +++ b/app/src/main/java/com/casic/br/app/vm/CheckManifestViewModel.kt @@ -0,0 +1,41 @@ +package com.casic.br.app.vm + +import android.content.Context +import androidx.lifecycle.MutableLiveData +import com.casic.br.app.extensions.getResponseCode +import com.casic.br.app.extensions.getResponseMessage +import com.casic.br.app.model.CheckManifestModel +import com.casic.br.app.retrofit.RetrofitServiceManager +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken +import com.pengxh.kt.lite.base.BaseViewModel +import com.pengxh.kt.lite.extensions.launch +import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.LoadState + +class CheckManifestViewModel : BaseViewModel() { + + private val gson by lazy { Gson() } + val manifestResult = MutableLiveData() + + fun getCheckManifestByPage(context: Context, keywords: String, offset: Int) = launch({ + loadState.value = LoadState.Loading + val response = RetrofitServiceManager.getCheckManifestByPage(keywords, offset) + when (response.getResponseCode()) { + 200 -> { + loadState.value = LoadState.Success + manifestResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } + + else -> { + loadState.value = LoadState.Fail + response.getResponseMessage().show(context) + } + } + }, { + loadState.value = LoadState.Fail + it.localizedMessage?.show(context) + }) +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/app/vm/HiddenTroubleViewModel.kt b/app/src/main/java/com/casic/br/app/vm/HiddenTroubleViewModel.kt index dcd32b2..4c5a185 100644 --- a/app/src/main/java/com/casic/br/app/vm/HiddenTroubleViewModel.kt +++ b/app/src/main/java/com/casic/br/app/vm/HiddenTroubleViewModel.kt @@ -4,6 +4,7 @@ import androidx.lifecycle.MutableLiveData import com.casic.br.app.extensions.getResponseCode import com.casic.br.app.extensions.getResponseMessage +import com.casic.br.app.model.HiddenTroubleModel import com.casic.br.app.retrofit.RetrofitServiceManager import com.google.gson.Gson import com.google.gson.reflect.TypeToken @@ -15,7 +16,7 @@ class HiddenTroubleViewModel : BaseViewModel() { private val gson by lazy { Gson() } - val fileListResult = MutableLiveData() + val troublesResult = MutableLiveData() fun getHiddenTroubleMenuByPage(context: Context, keywords: String, offset: Int) = launch({ loadState.value = LoadState.Loading @@ -23,8 +24,8 @@ when (response.getResponseCode()) { 200 -> { loadState.value = LoadState.Success - fileListResult.value = gson.fromJson( - response, object : TypeToken() {}.type + troublesResult.value = gson.fromJson( + response, object : TypeToken() {}.type ) } diff --git a/app/src/main/res/drawable/bg_order_tag.xml b/app/src/main/res/drawable/bg_order_tag.xml new file mode 100644 index 0000000..446602b --- /dev/null +++ b/app/src/main/res/drawable/bg_order_tag.xml @@ -0,0 +1,10 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index ce859f2..d81a5c8 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,4 +1,3 @@ - diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d290ca3..0583dda 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -60,7 +60,7 @@ - + diff --git a/app/src/main/java/com/casic/br/app/model/CheckManifestModel.java b/app/src/main/java/com/casic/br/app/model/CheckManifestModel.java new file mode 100644 index 0000000..60ce63e --- /dev/null +++ b/app/src/main/java/com/casic/br/app/model/CheckManifestModel.java @@ -0,0 +1,4 @@ +package com.casic.br.app.model; + +public class CheckManifestModel { +} diff --git a/app/src/main/java/com/casic/br/app/model/HiddenTroubleModel.java b/app/src/main/java/com/casic/br/app/model/HiddenTroubleModel.java new file mode 100644 index 0000000..0cde5fb --- /dev/null +++ b/app/src/main/java/com/casic/br/app/model/HiddenTroubleModel.java @@ -0,0 +1,4 @@ +package com.casic.br.app.model; + +public class HiddenTroubleModel { +} diff --git a/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt index 67c0cfc..7ca5557 100644 --- a/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt @@ -29,4 +29,15 @@ @QueryMap limit: Map, @QueryMap offset: Map ): String + + /** + * 获取检查清单 + */ + @POST("/meter/file/listPage") + suspend fun getCheckManifestByPage( + @Header("token") token: String, + @Body requestBody: RequestBody, + @QueryMap limit: Map, + @QueryMap offset: Map + ): String } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt index efdb1ca..f33f090 100644 --- a/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt @@ -56,4 +56,24 @@ AuthenticationHelper.token, requestBody, limitMap, offsetMap ) } + + /** + * 获取检查清单 + */ + suspend fun getCheckManifestByPage(keywords: String, offset: Int): String { + val param = JsonObject() + param.addProperty("keywords", keywords) + val requestBody = param.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + + val limitMap = HashMap() + limitMap["limit"] = LocaleConstant.PAGE_LIMIT + + val offsetMap = HashMap() + offsetMap["offset"] = offset + return api.getCheckManifestByPage( + AuthenticationHelper.token, requestBody, limitMap, offsetMap + ) + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/app/view/CheckManifestActivity.kt b/app/src/main/java/com/casic/br/app/view/CheckManifestActivity.kt new file mode 100644 index 0000000..45e30bb --- /dev/null +++ b/app/src/main/java/com/casic/br/app/view/CheckManifestActivity.kt @@ -0,0 +1,139 @@ +package com.casic.br.app.view + +import android.os.Bundle +import android.os.Handler +import android.os.Message +import androidx.lifecycle.ViewModelProvider +import com.casic.br.app.R +import com.casic.br.app.databinding.ActivityCheckManifestBinding +import com.casic.br.app.extensions.initImmersionBar +import com.casic.br.app.model.CheckManifestModel +import com.casic.br.app.vm.CheckManifestViewModel +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 + +class CheckManifestActivity : KotlinBaseActivity(), Handler.Callback { + + 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 + + override fun initEvent() { + binding.leftButton.setOnClickListener { finish() } + + 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) +// } +// } +// } + } + } + + 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 + ) { + + } + } + 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 查看检查清单详情 + } + }) + } + } + return true + } + + override fun initViewBinding(): ActivityCheckManifestBinding { + return ActivityCheckManifestBinding.inflate(layoutInflater) + } + + 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) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/app/view/HiddenTroubleActivity.kt b/app/src/main/java/com/casic/br/app/view/HiddenTroubleActivity.kt index b79d4d1..495f9f8 100644 --- a/app/src/main/java/com/casic/br/app/view/HiddenTroubleActivity.kt +++ b/app/src/main/java/com/casic/br/app/view/HiddenTroubleActivity.kt @@ -7,6 +7,7 @@ import com.casic.br.app.R import com.casic.br.app.databinding.ActivityHiddenTroubleBinding import com.casic.br.app.extensions.initImmersionBar +import com.casic.br.app.model.HiddenTroubleModel import com.casic.br.app.vm.HiddenTroubleViewModel import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder @@ -21,8 +22,8 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var hiddenTroubleViewModel: HiddenTroubleViewModel - private lateinit var hiddenTroubleAdapter: NormalRecyclerAdapter - private var dataBeans: MutableList = ArrayList() + private lateinit var hiddenTroubleAdapter: NormalRecyclerAdapter + private var dataBeans: MutableList = ArrayList() private var keywords = "" private var page = 1 private var isRefresh = false @@ -51,7 +52,7 @@ override fun initOnCreate(savedInstanceState: Bundle?) { weakReferenceHandler = WeakReferenceHandler(this) hiddenTroubleViewModel = ViewModelProvider(this)[HiddenTroubleViewModel::class.java] - hiddenTroubleViewModel.fileListResult.observe(this) { + hiddenTroubleViewModel.troublesResult.observe(this) { // if (it.code == 200) { // val dataRows = it.data?.rows!! // when { @@ -87,12 +88,12 @@ when (msg.what) { 2024030402 -> { hiddenTroubleAdapter = object : - NormalRecyclerAdapter( + NormalRecyclerAdapter( R.layout.item_hidden_trouble, dataBeans ) { override fun convertView( viewHolder: ViewHolder, position: Int, - item: Any + item: HiddenTroubleModel ) { } @@ -100,9 +101,9 @@ binding.recyclerView.adapter = hiddenTroubleAdapter binding.recyclerView.addItemDecoration(RecyclerViewItemOffsets(0, 7, 0, 7)) hiddenTroubleAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { + NormalRecyclerAdapter.OnItemClickedListener { override fun onItemClicked( - position: Int, t: Any + position: Int, t: HiddenTroubleModel ) { //TODO 查看隐患目录详情 } diff --git a/app/src/main/java/com/casic/br/app/view/LibraryActivity.kt b/app/src/main/java/com/casic/br/app/view/LibraryActivity.kt index 911d554..dd9b982 100644 --- a/app/src/main/java/com/casic/br/app/view/LibraryActivity.kt +++ b/app/src/main/java/com/casic/br/app/view/LibraryActivity.kt @@ -21,7 +21,7 @@ } binding.manifestButton.setOnClickListener { - navigatePageTo() + navigatePageTo() } binding.guideButton.setOnClickListener { diff --git a/app/src/main/java/com/casic/br/app/view/ManifestActivity.kt b/app/src/main/java/com/casic/br/app/view/ManifestActivity.kt deleted file mode 100644 index f21d587..0000000 --- a/app/src/main/java/com/casic/br/app/view/ManifestActivity.kt +++ /dev/null @@ -1,27 +0,0 @@ -package com.casic.br.app.view - -import android.os.Bundle -import com.casic.br.app.databinding.ActivityManifestBinding -import com.pengxh.kt.lite.base.KotlinBaseActivity - -class ManifestActivity: KotlinBaseActivity() { - override fun initEvent() { - - } - - override fun initOnCreate(savedInstanceState: Bundle?) { - - } - - override fun initViewBinding(): ActivityManifestBinding { - return ActivityManifestBinding.inflate(layoutInflater) - } - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/app/vm/CheckManifestViewModel.kt b/app/src/main/java/com/casic/br/app/vm/CheckManifestViewModel.kt new file mode 100644 index 0000000..a8646e8 --- /dev/null +++ b/app/src/main/java/com/casic/br/app/vm/CheckManifestViewModel.kt @@ -0,0 +1,41 @@ +package com.casic.br.app.vm + +import android.content.Context +import androidx.lifecycle.MutableLiveData +import com.casic.br.app.extensions.getResponseCode +import com.casic.br.app.extensions.getResponseMessage +import com.casic.br.app.model.CheckManifestModel +import com.casic.br.app.retrofit.RetrofitServiceManager +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken +import com.pengxh.kt.lite.base.BaseViewModel +import com.pengxh.kt.lite.extensions.launch +import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.LoadState + +class CheckManifestViewModel : BaseViewModel() { + + private val gson by lazy { Gson() } + val manifestResult = MutableLiveData() + + fun getCheckManifestByPage(context: Context, keywords: String, offset: Int) = launch({ + loadState.value = LoadState.Loading + val response = RetrofitServiceManager.getCheckManifestByPage(keywords, offset) + when (response.getResponseCode()) { + 200 -> { + loadState.value = LoadState.Success + manifestResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } + + else -> { + loadState.value = LoadState.Fail + response.getResponseMessage().show(context) + } + } + }, { + loadState.value = LoadState.Fail + it.localizedMessage?.show(context) + }) +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/app/vm/HiddenTroubleViewModel.kt b/app/src/main/java/com/casic/br/app/vm/HiddenTroubleViewModel.kt index dcd32b2..4c5a185 100644 --- a/app/src/main/java/com/casic/br/app/vm/HiddenTroubleViewModel.kt +++ b/app/src/main/java/com/casic/br/app/vm/HiddenTroubleViewModel.kt @@ -4,6 +4,7 @@ import androidx.lifecycle.MutableLiveData import com.casic.br.app.extensions.getResponseCode import com.casic.br.app.extensions.getResponseMessage +import com.casic.br.app.model.HiddenTroubleModel import com.casic.br.app.retrofit.RetrofitServiceManager import com.google.gson.Gson import com.google.gson.reflect.TypeToken @@ -15,7 +16,7 @@ class HiddenTroubleViewModel : BaseViewModel() { private val gson by lazy { Gson() } - val fileListResult = MutableLiveData() + val troublesResult = MutableLiveData() fun getHiddenTroubleMenuByPage(context: Context, keywords: String, offset: Int) = launch({ loadState.value = LoadState.Loading @@ -23,8 +24,8 @@ when (response.getResponseCode()) { 200 -> { loadState.value = LoadState.Success - fileListResult.value = gson.fromJson( - response, object : TypeToken() {}.type + troublesResult.value = gson.fromJson( + response, object : TypeToken() {}.type ) } diff --git a/app/src/main/res/drawable/bg_order_tag.xml b/app/src/main/res/drawable/bg_order_tag.xml new file mode 100644 index 0000000..446602b --- /dev/null +++ b/app/src/main/res/drawable/bg_order_tag.xml @@ -0,0 +1,10 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_left.xml b/app/src/main/res/drawable/ic_left.xml index 247d7a9..c59ad85 100644 --- a/app/src/main/res/drawable/ic_left.xml +++ b/app/src/main/res/drawable/ic_left.xml @@ -1,6 +1,6 @@ diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d290ca3..0583dda 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -60,7 +60,7 @@ - + diff --git a/app/src/main/java/com/casic/br/app/model/CheckManifestModel.java b/app/src/main/java/com/casic/br/app/model/CheckManifestModel.java new file mode 100644 index 0000000..60ce63e --- /dev/null +++ b/app/src/main/java/com/casic/br/app/model/CheckManifestModel.java @@ -0,0 +1,4 @@ +package com.casic.br.app.model; + +public class CheckManifestModel { +} diff --git a/app/src/main/java/com/casic/br/app/model/HiddenTroubleModel.java b/app/src/main/java/com/casic/br/app/model/HiddenTroubleModel.java new file mode 100644 index 0000000..0cde5fb --- /dev/null +++ b/app/src/main/java/com/casic/br/app/model/HiddenTroubleModel.java @@ -0,0 +1,4 @@ +package com.casic.br.app.model; + +public class HiddenTroubleModel { +} diff --git a/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt index 67c0cfc..7ca5557 100644 --- a/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt @@ -29,4 +29,15 @@ @QueryMap limit: Map, @QueryMap offset: Map ): String + + /** + * 获取检查清单 + */ + @POST("/meter/file/listPage") + suspend fun getCheckManifestByPage( + @Header("token") token: String, + @Body requestBody: RequestBody, + @QueryMap limit: Map, + @QueryMap offset: Map + ): String } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt index efdb1ca..f33f090 100644 --- a/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/app/retrofit/RetrofitServiceManager.kt @@ -56,4 +56,24 @@ AuthenticationHelper.token, requestBody, limitMap, offsetMap ) } + + /** + * 获取检查清单 + */ + suspend fun getCheckManifestByPage(keywords: String, offset: Int): String { + val param = JsonObject() + param.addProperty("keywords", keywords) + val requestBody = param.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + + val limitMap = HashMap() + limitMap["limit"] = LocaleConstant.PAGE_LIMIT + + val offsetMap = HashMap() + offsetMap["offset"] = offset + return api.getCheckManifestByPage( + AuthenticationHelper.token, requestBody, limitMap, offsetMap + ) + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/app/view/CheckManifestActivity.kt b/app/src/main/java/com/casic/br/app/view/CheckManifestActivity.kt new file mode 100644 index 0000000..45e30bb --- /dev/null +++ b/app/src/main/java/com/casic/br/app/view/CheckManifestActivity.kt @@ -0,0 +1,139 @@ +package com.casic.br.app.view + +import android.os.Bundle +import android.os.Handler +import android.os.Message +import androidx.lifecycle.ViewModelProvider +import com.casic.br.app.R +import com.casic.br.app.databinding.ActivityCheckManifestBinding +import com.casic.br.app.extensions.initImmersionBar +import com.casic.br.app.model.CheckManifestModel +import com.casic.br.app.vm.CheckManifestViewModel +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 + +class CheckManifestActivity : KotlinBaseActivity(), Handler.Callback { + + 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 + + override fun initEvent() { + binding.leftButton.setOnClickListener { finish() } + + 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) +// } +// } +// } + } + } + + 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 + ) { + + } + } + 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 查看检查清单详情 + } + }) + } + } + return true + } + + override fun initViewBinding(): ActivityCheckManifestBinding { + return ActivityCheckManifestBinding.inflate(layoutInflater) + } + + 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) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/app/view/HiddenTroubleActivity.kt b/app/src/main/java/com/casic/br/app/view/HiddenTroubleActivity.kt index b79d4d1..495f9f8 100644 --- a/app/src/main/java/com/casic/br/app/view/HiddenTroubleActivity.kt +++ b/app/src/main/java/com/casic/br/app/view/HiddenTroubleActivity.kt @@ -7,6 +7,7 @@ import com.casic.br.app.R import com.casic.br.app.databinding.ActivityHiddenTroubleBinding import com.casic.br.app.extensions.initImmersionBar +import com.casic.br.app.model.HiddenTroubleModel import com.casic.br.app.vm.HiddenTroubleViewModel import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder @@ -21,8 +22,8 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var hiddenTroubleViewModel: HiddenTroubleViewModel - private lateinit var hiddenTroubleAdapter: NormalRecyclerAdapter - private var dataBeans: MutableList = ArrayList() + private lateinit var hiddenTroubleAdapter: NormalRecyclerAdapter + private var dataBeans: MutableList = ArrayList() private var keywords = "" private var page = 1 private var isRefresh = false @@ -51,7 +52,7 @@ override fun initOnCreate(savedInstanceState: Bundle?) { weakReferenceHandler = WeakReferenceHandler(this) hiddenTroubleViewModel = ViewModelProvider(this)[HiddenTroubleViewModel::class.java] - hiddenTroubleViewModel.fileListResult.observe(this) { + hiddenTroubleViewModel.troublesResult.observe(this) { // if (it.code == 200) { // val dataRows = it.data?.rows!! // when { @@ -87,12 +88,12 @@ when (msg.what) { 2024030402 -> { hiddenTroubleAdapter = object : - NormalRecyclerAdapter( + NormalRecyclerAdapter( R.layout.item_hidden_trouble, dataBeans ) { override fun convertView( viewHolder: ViewHolder, position: Int, - item: Any + item: HiddenTroubleModel ) { } @@ -100,9 +101,9 @@ binding.recyclerView.adapter = hiddenTroubleAdapter binding.recyclerView.addItemDecoration(RecyclerViewItemOffsets(0, 7, 0, 7)) hiddenTroubleAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { + NormalRecyclerAdapter.OnItemClickedListener { override fun onItemClicked( - position: Int, t: Any + position: Int, t: HiddenTroubleModel ) { //TODO 查看隐患目录详情 } diff --git a/app/src/main/java/com/casic/br/app/view/LibraryActivity.kt b/app/src/main/java/com/casic/br/app/view/LibraryActivity.kt index 911d554..dd9b982 100644 --- a/app/src/main/java/com/casic/br/app/view/LibraryActivity.kt +++ b/app/src/main/java/com/casic/br/app/view/LibraryActivity.kt @@ -21,7 +21,7 @@ } binding.manifestButton.setOnClickListener { - navigatePageTo() + navigatePageTo() } binding.guideButton.setOnClickListener { diff --git a/app/src/main/java/com/casic/br/app/view/ManifestActivity.kt b/app/src/main/java/com/casic/br/app/view/ManifestActivity.kt deleted file mode 100644 index f21d587..0000000 --- a/app/src/main/java/com/casic/br/app/view/ManifestActivity.kt +++ /dev/null @@ -1,27 +0,0 @@ -package com.casic.br.app.view - -import android.os.Bundle -import com.casic.br.app.databinding.ActivityManifestBinding -import com.pengxh.kt.lite.base.KotlinBaseActivity - -class ManifestActivity: KotlinBaseActivity() { - override fun initEvent() { - - } - - override fun initOnCreate(savedInstanceState: Bundle?) { - - } - - override fun initViewBinding(): ActivityManifestBinding { - return ActivityManifestBinding.inflate(layoutInflater) - } - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/app/vm/CheckManifestViewModel.kt b/app/src/main/java/com/casic/br/app/vm/CheckManifestViewModel.kt new file mode 100644 index 0000000..a8646e8 --- /dev/null +++ b/app/src/main/java/com/casic/br/app/vm/CheckManifestViewModel.kt @@ -0,0 +1,41 @@ +package com.casic.br.app.vm + +import android.content.Context +import androidx.lifecycle.MutableLiveData +import com.casic.br.app.extensions.getResponseCode +import com.casic.br.app.extensions.getResponseMessage +import com.casic.br.app.model.CheckManifestModel +import com.casic.br.app.retrofit.RetrofitServiceManager +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken +import com.pengxh.kt.lite.base.BaseViewModel +import com.pengxh.kt.lite.extensions.launch +import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.LoadState + +class CheckManifestViewModel : BaseViewModel() { + + private val gson by lazy { Gson() } + val manifestResult = MutableLiveData() + + fun getCheckManifestByPage(context: Context, keywords: String, offset: Int) = launch({ + loadState.value = LoadState.Loading + val response = RetrofitServiceManager.getCheckManifestByPage(keywords, offset) + when (response.getResponseCode()) { + 200 -> { + loadState.value = LoadState.Success + manifestResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } + + else -> { + loadState.value = LoadState.Fail + response.getResponseMessage().show(context) + } + } + }, { + loadState.value = LoadState.Fail + it.localizedMessage?.show(context) + }) +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/app/vm/HiddenTroubleViewModel.kt b/app/src/main/java/com/casic/br/app/vm/HiddenTroubleViewModel.kt index dcd32b2..4c5a185 100644 --- a/app/src/main/java/com/casic/br/app/vm/HiddenTroubleViewModel.kt +++ b/app/src/main/java/com/casic/br/app/vm/HiddenTroubleViewModel.kt @@ -4,6 +4,7 @@ import androidx.lifecycle.MutableLiveData import com.casic.br.app.extensions.getResponseCode import com.casic.br.app.extensions.getResponseMessage +import com.casic.br.app.model.HiddenTroubleModel import com.casic.br.app.retrofit.RetrofitServiceManager import com.google.gson.Gson import com.google.gson.reflect.TypeToken @@ -15,7 +16,7 @@ class HiddenTroubleViewModel : BaseViewModel() { private val gson by lazy { Gson() } - val fileListResult = MutableLiveData() + val troublesResult = MutableLiveData() fun getHiddenTroubleMenuByPage(context: Context, keywords: String, offset: Int) = launch({ loadState.value = LoadState.Loading @@ -23,8 +24,8 @@ when (response.getResponseCode()) { 200 -> { loadState.value = LoadState.Success - fileListResult.value = gson.fromJson( - response, object : TypeToken() {}.type + troublesResult.value = gson.fromJson( + response, object : TypeToken() {}.type ) } diff --git a/app/src/main/res/drawable/bg_order_tag.xml b/app/src/main/res/drawable/bg_order_tag.xml new file mode 100644 index 0000000..446602b --- /dev/null +++ b/app/src/main/res/drawable/bg_order_tag.xml @@ -0,0 +1,10 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_left.xml b/app/src/main/res/drawable/ic_left.xml index 247d7a9..c59ad85 100644 --- a/app/src/main/res/drawable/ic_left.xml +++ b/app/src/main/res/drawable/ic_left.xml @@ -1,6 +1,6 @@ + + + + + + + + + + + + + +