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 5caf6f6..67c0cfc 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 @@ -18,4 +18,15 @@ @QueryMap limit: Map, @QueryMap offset: Map ): String + + /** + * 获取隐患目录列表 + */ + @POST("/meter/file/listPage") + suspend fun getHiddenTroubleMenuByPage( + @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/RetrofitService.kt b/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt index 5caf6f6..67c0cfc 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 @@ -18,4 +18,15 @@ @QueryMap limit: Map, @QueryMap offset: Map ): String + + /** + * 获取隐患目录列表 + */ + @POST("/meter/file/listPage") + suspend fun getHiddenTroubleMenuByPage( + @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 236cd03..efdb1ca 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 @@ -36,4 +36,24 @@ AuthenticationHelper.token, requestBody, limitMap, offsetMap ) } + + /** + * 获取隐患目录列表 + */ + suspend fun getHiddenTroubleMenuByPage(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.getHiddenTroubleMenuByPage( + AuthenticationHelper.token, requestBody, limitMap, offsetMap + ) + } } \ No newline at end of file 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 5caf6f6..67c0cfc 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 @@ -18,4 +18,15 @@ @QueryMap limit: Map, @QueryMap offset: Map ): String + + /** + * 获取隐患目录列表 + */ + @POST("/meter/file/listPage") + suspend fun getHiddenTroubleMenuByPage( + @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 236cd03..efdb1ca 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 @@ -36,4 +36,24 @@ AuthenticationHelper.token, requestBody, limitMap, offsetMap ) } + + /** + * 获取隐患目录列表 + */ + suspend fun getHiddenTroubleMenuByPage(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.getHiddenTroubleMenuByPage( + AuthenticationHelper.token, requestBody, limitMap, offsetMap + ) + } } \ 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 2b8da8c..b79d4d1 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 @@ -1,16 +1,115 @@ 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.ActivityHiddenTroubleBinding +import com.casic.br.app.extensions.initImmersionBar +import com.casic.br.app.vm.HiddenTroubleViewModel +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 HiddenTroubleActivity: KotlinBaseActivity() { +class HiddenTroubleActivity : KotlinBaseActivity(), Handler.Callback { + + private lateinit var weakReferenceHandler: WeakReferenceHandler + private lateinit var hiddenTroubleViewModel: HiddenTroubleViewModel + private lateinit var hiddenTroubleAdapter: 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 + getHiddenTroubleMenuByPage() + } + + binding.refreshLayout.setOnLoadMoreListener { + isLoadMore = true + page++ + getHiddenTroubleMenuByPage() + } } override fun initOnCreate(savedInstanceState: Bundle?) { - + weakReferenceHandler = WeakReferenceHandler(this) + hiddenTroubleViewModel = ViewModelProvider(this)[HiddenTroubleViewModel::class.java] + hiddenTroubleViewModel.fileListResult.observe(this) { +// if (it.code == 200) { +// val dataRows = it.data?.rows!! +// when { +// isRefresh -> { +// hiddenTroubleAdapter.setRefreshData(dataRows) +// binding.refreshLayout.finishRefresh() +// isRefresh = false +// } +// +// isLoadMore -> { +// if (dataRows.size == 0) { +// "到底了,别拉了".show(this) +// } +// hiddenTroubleAdapter.setLoadMoreData(dataRows) +// binding.refreshLayout.finishLoadMore() +// isLoadMore = false +// } +// +// else -> { +// dataBeans = dataRows +// weakReferenceHandler.sendEmptyMessage(2024030402) +// } +// } +// } + } + } + + private fun getHiddenTroubleMenuByPage() { + hiddenTroubleViewModel.getHiddenTroubleMenuByPage(this, keywords, page) + } + + override fun handleMessage(msg: Message): Boolean { + when (msg.what) { + 2024030402 -> { + hiddenTroubleAdapter = object : + NormalRecyclerAdapter( + R.layout.item_hidden_trouble, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, position: Int, + item: Any + ) { + + } + } + binding.recyclerView.adapter = hiddenTroubleAdapter + binding.recyclerView.addItemDecoration(RecyclerViewItemOffsets(0, 7, 0, 7)) + hiddenTroubleAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: Any + ) { + //TODO 查看隐患目录详情 + } + }) + } + } + return true } override fun initViewBinding(): ActivityHiddenTroubleBinding { @@ -18,10 +117,22 @@ } override fun observeRequestState() { - + hiddenTroubleViewModel.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/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt index 5caf6f6..67c0cfc 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 @@ -18,4 +18,15 @@ @QueryMap limit: Map, @QueryMap offset: Map ): String + + /** + * 获取隐患目录列表 + */ + @POST("/meter/file/listPage") + suspend fun getHiddenTroubleMenuByPage( + @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 236cd03..efdb1ca 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 @@ -36,4 +36,24 @@ AuthenticationHelper.token, requestBody, limitMap, offsetMap ) } + + /** + * 获取隐患目录列表 + */ + suspend fun getHiddenTroubleMenuByPage(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.getHiddenTroubleMenuByPage( + AuthenticationHelper.token, requestBody, limitMap, offsetMap + ) + } } \ 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 2b8da8c..b79d4d1 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 @@ -1,16 +1,115 @@ 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.ActivityHiddenTroubleBinding +import com.casic.br.app.extensions.initImmersionBar +import com.casic.br.app.vm.HiddenTroubleViewModel +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 HiddenTroubleActivity: KotlinBaseActivity() { +class HiddenTroubleActivity : KotlinBaseActivity(), Handler.Callback { + + private lateinit var weakReferenceHandler: WeakReferenceHandler + private lateinit var hiddenTroubleViewModel: HiddenTroubleViewModel + private lateinit var hiddenTroubleAdapter: 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 + getHiddenTroubleMenuByPage() + } + + binding.refreshLayout.setOnLoadMoreListener { + isLoadMore = true + page++ + getHiddenTroubleMenuByPage() + } } override fun initOnCreate(savedInstanceState: Bundle?) { - + weakReferenceHandler = WeakReferenceHandler(this) + hiddenTroubleViewModel = ViewModelProvider(this)[HiddenTroubleViewModel::class.java] + hiddenTroubleViewModel.fileListResult.observe(this) { +// if (it.code == 200) { +// val dataRows = it.data?.rows!! +// when { +// isRefresh -> { +// hiddenTroubleAdapter.setRefreshData(dataRows) +// binding.refreshLayout.finishRefresh() +// isRefresh = false +// } +// +// isLoadMore -> { +// if (dataRows.size == 0) { +// "到底了,别拉了".show(this) +// } +// hiddenTroubleAdapter.setLoadMoreData(dataRows) +// binding.refreshLayout.finishLoadMore() +// isLoadMore = false +// } +// +// else -> { +// dataBeans = dataRows +// weakReferenceHandler.sendEmptyMessage(2024030402) +// } +// } +// } + } + } + + private fun getHiddenTroubleMenuByPage() { + hiddenTroubleViewModel.getHiddenTroubleMenuByPage(this, keywords, page) + } + + override fun handleMessage(msg: Message): Boolean { + when (msg.what) { + 2024030402 -> { + hiddenTroubleAdapter = object : + NormalRecyclerAdapter( + R.layout.item_hidden_trouble, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, position: Int, + item: Any + ) { + + } + } + binding.recyclerView.adapter = hiddenTroubleAdapter + binding.recyclerView.addItemDecoration(RecyclerViewItemOffsets(0, 7, 0, 7)) + hiddenTroubleAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: Any + ) { + //TODO 查看隐患目录详情 + } + }) + } + } + return true } override fun initViewBinding(): ActivityHiddenTroubleBinding { @@ -18,10 +117,22 @@ } override fun observeRequestState() { - + hiddenTroubleViewModel.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/vm/HiddenTroubleViewModel.kt b/app/src/main/java/com/casic/br/app/vm/HiddenTroubleViewModel.kt new file mode 100644 index 0000000..dcd32b2 --- /dev/null +++ b/app/src/main/java/com/casic/br/app/vm/HiddenTroubleViewModel.kt @@ -0,0 +1,40 @@ +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.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 HiddenTroubleViewModel : BaseViewModel() { + + private val gson by lazy { Gson() } + val fileListResult = MutableLiveData() + + fun getHiddenTroubleMenuByPage(context: Context, keywords: String, offset: Int) = launch({ + loadState.value = LoadState.Loading + val response = RetrofitServiceManager.getHiddenTroubleMenuByPage(keywords, offset) + when (response.getResponseCode()) { + 200 -> { + loadState.value = LoadState.Success + fileListResult.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/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/app/retrofit/RetrofitService.kt index 5caf6f6..67c0cfc 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 @@ -18,4 +18,15 @@ @QueryMap limit: Map, @QueryMap offset: Map ): String + + /** + * 获取隐患目录列表 + */ + @POST("/meter/file/listPage") + suspend fun getHiddenTroubleMenuByPage( + @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 236cd03..efdb1ca 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 @@ -36,4 +36,24 @@ AuthenticationHelper.token, requestBody, limitMap, offsetMap ) } + + /** + * 获取隐患目录列表 + */ + suspend fun getHiddenTroubleMenuByPage(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.getHiddenTroubleMenuByPage( + AuthenticationHelper.token, requestBody, limitMap, offsetMap + ) + } } \ 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 2b8da8c..b79d4d1 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 @@ -1,16 +1,115 @@ 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.ActivityHiddenTroubleBinding +import com.casic.br.app.extensions.initImmersionBar +import com.casic.br.app.vm.HiddenTroubleViewModel +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 HiddenTroubleActivity: KotlinBaseActivity() { +class HiddenTroubleActivity : KotlinBaseActivity(), Handler.Callback { + + private lateinit var weakReferenceHandler: WeakReferenceHandler + private lateinit var hiddenTroubleViewModel: HiddenTroubleViewModel + private lateinit var hiddenTroubleAdapter: 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 + getHiddenTroubleMenuByPage() + } + + binding.refreshLayout.setOnLoadMoreListener { + isLoadMore = true + page++ + getHiddenTroubleMenuByPage() + } } override fun initOnCreate(savedInstanceState: Bundle?) { - + weakReferenceHandler = WeakReferenceHandler(this) + hiddenTroubleViewModel = ViewModelProvider(this)[HiddenTroubleViewModel::class.java] + hiddenTroubleViewModel.fileListResult.observe(this) { +// if (it.code == 200) { +// val dataRows = it.data?.rows!! +// when { +// isRefresh -> { +// hiddenTroubleAdapter.setRefreshData(dataRows) +// binding.refreshLayout.finishRefresh() +// isRefresh = false +// } +// +// isLoadMore -> { +// if (dataRows.size == 0) { +// "到底了,别拉了".show(this) +// } +// hiddenTroubleAdapter.setLoadMoreData(dataRows) +// binding.refreshLayout.finishLoadMore() +// isLoadMore = false +// } +// +// else -> { +// dataBeans = dataRows +// weakReferenceHandler.sendEmptyMessage(2024030402) +// } +// } +// } + } + } + + private fun getHiddenTroubleMenuByPage() { + hiddenTroubleViewModel.getHiddenTroubleMenuByPage(this, keywords, page) + } + + override fun handleMessage(msg: Message): Boolean { + when (msg.what) { + 2024030402 -> { + hiddenTroubleAdapter = object : + NormalRecyclerAdapter( + R.layout.item_hidden_trouble, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, position: Int, + item: Any + ) { + + } + } + binding.recyclerView.adapter = hiddenTroubleAdapter + binding.recyclerView.addItemDecoration(RecyclerViewItemOffsets(0, 7, 0, 7)) + hiddenTroubleAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: Any + ) { + //TODO 查看隐患目录详情 + } + }) + } + } + return true } override fun initViewBinding(): ActivityHiddenTroubleBinding { @@ -18,10 +117,22 @@ } override fun observeRequestState() { - + hiddenTroubleViewModel.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/vm/HiddenTroubleViewModel.kt b/app/src/main/java/com/casic/br/app/vm/HiddenTroubleViewModel.kt new file mode 100644 index 0000000..dcd32b2 --- /dev/null +++ b/app/src/main/java/com/casic/br/app/vm/HiddenTroubleViewModel.kt @@ -0,0 +1,40 @@ +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.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 HiddenTroubleViewModel : BaseViewModel() { + + private val gson by lazy { Gson() } + val fileListResult = MutableLiveData() + + fun getHiddenTroubleMenuByPage(context: Context, keywords: String, offset: Int) = launch({ + loadState.value = LoadState.Loading + val response = RetrofitServiceManager.getHiddenTroubleMenuByPage(keywords, offset) + when (response.getResponseCode()) { + 200 -> { + loadState.value = LoadState.Success + fileListResult.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/res/layout/activity_hidden_trouble.xml b/app/src/main/res/layout/activity_hidden_trouble.xml index 37dc5f1..135f743 100644 --- a/app/src/main/res/layout/activity_hidden_trouble.xml +++ b/app/src/main/res/layout/activity_hidden_trouble.xml @@ -1,9 +1,84 @@ + + + + + + + + + + + +