diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt index ce6ef5e..bed87f0 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt @@ -1,5 +1,8 @@ package com.casic.br.operationsite.fragment +import android.content.BroadcastReceiver +import android.content.Context +import android.content.Intent import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration @@ -7,12 +10,18 @@ import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage +import com.casic.br.operationsite.model.BroadcastDataModel import com.casic.br.operationsite.model.WorkingListModel +import com.casic.br.operationsite.utils.LocaleConstant import com.casic.br.operationsite.view.WorkSiteTabActivity import com.casic.br.operationsite.vm.WorkSiteViewModel +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.BroadcastManager +import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.WeakReferenceHandler import kotlinx.android.synthetic.main.fragment_completed.* import kotlinx.android.synthetic.main.include_empty_view.* @@ -22,10 +31,12 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var workingListAdapter: WorkingListAdapter private lateinit var workSiteViewModel: WorkSiteViewModel + private lateinit var broadcastManager: BroadcastManager private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false private var isLoadMore = false + private var keywords = "" override fun initLayoutView(): Int = R.layout.fragment_completed @@ -36,10 +47,24 @@ override fun initData() { weakReferenceHandler = WeakReferenceHandler(callback) workSiteViewModel = ViewModelProvider(this).get(WorkSiteViewModel::class.java) + broadcastManager = BroadcastManager.obtainInstance(requireContext()) + broadcastManager.addAction(object : BroadcastReceiver() { + override fun onReceive(context: Context?, intent: Intent?) { + val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) + val dataModel = Gson().fromJson( + stringExtra, object : TypeToken() {}.type + ) + if (dataModel.currentPage == 2) { + pageIndex = 1 + keywords = dataModel.keywords + obtainProjectListByPage() + } + } + }, LocaleConstant.SEARCH_ACTION) } override fun onResume() { - obtainCompletedListByPage() + obtainProjectListByPage() super.onResume() } @@ -48,12 +73,12 @@ isRefresh = true //刷新之后页码重置 pageIndex = 1 - obtainCompletedListByPage() + obtainProjectListByPage() } completedRefreshLayout.setOnLoadMoreListener { isLoadMore = true pageIndex++ - obtainCompletedListByPage() + obtainProjectListByPage() } workSiteViewModel.workingModel.observe(this, { @@ -78,24 +103,24 @@ dataBeans = dataRows!! } } - weakReferenceHandler.sendEmptyMessage(2022071501) + weakReferenceHandler.sendEmptyMessage(2022071502) } }) } - private fun obtainCompletedListByPage() { - workSiteViewModel.obtainProjectListByPage(pageIndex, "2") + private fun obtainProjectListByPage() { + workSiteViewModel.obtainProjectListByPage(keywords, "2", pageIndex) } private val callback = Handler.Callback { - if (it.what == 2022071501) { + if (it.what == 2022071502) { if (isRefresh || isLoadMore) { workingListAdapter.notifyDataSetChanged() } else { //首次加载数据 if (dataBeans.size == 0) { emptyView!!.showEmptyPage { pageIndex = 1 - obtainCompletedListByPage() + obtainProjectListByPage() } } else { emptyView!!.hide() @@ -103,7 +128,8 @@ completedRecyclerView!!.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - completedRecyclerView!!.layoutManager = LinearLayoutManager(requireContext()) + completedRecyclerView!!.layoutManager = + LinearLayoutManager(requireContext()) completedRecyclerView!!.adapter = workingListAdapter workingListAdapter.setOnItemClickListener(object : WorkingListAdapter.OnItemClickListener { @@ -116,4 +142,9 @@ } true } + + override fun onDestroyView() { + broadcastManager.destroy(LocaleConstant.SEARCH_ACTION) + super.onDestroyView() + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt index ce6ef5e..bed87f0 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt @@ -1,5 +1,8 @@ package com.casic.br.operationsite.fragment +import android.content.BroadcastReceiver +import android.content.Context +import android.content.Intent import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration @@ -7,12 +10,18 @@ import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage +import com.casic.br.operationsite.model.BroadcastDataModel import com.casic.br.operationsite.model.WorkingListModel +import com.casic.br.operationsite.utils.LocaleConstant import com.casic.br.operationsite.view.WorkSiteTabActivity import com.casic.br.operationsite.vm.WorkSiteViewModel +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.BroadcastManager +import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.WeakReferenceHandler import kotlinx.android.synthetic.main.fragment_completed.* import kotlinx.android.synthetic.main.include_empty_view.* @@ -22,10 +31,12 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var workingListAdapter: WorkingListAdapter private lateinit var workSiteViewModel: WorkSiteViewModel + private lateinit var broadcastManager: BroadcastManager private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false private var isLoadMore = false + private var keywords = "" override fun initLayoutView(): Int = R.layout.fragment_completed @@ -36,10 +47,24 @@ override fun initData() { weakReferenceHandler = WeakReferenceHandler(callback) workSiteViewModel = ViewModelProvider(this).get(WorkSiteViewModel::class.java) + broadcastManager = BroadcastManager.obtainInstance(requireContext()) + broadcastManager.addAction(object : BroadcastReceiver() { + override fun onReceive(context: Context?, intent: Intent?) { + val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) + val dataModel = Gson().fromJson( + stringExtra, object : TypeToken() {}.type + ) + if (dataModel.currentPage == 2) { + pageIndex = 1 + keywords = dataModel.keywords + obtainProjectListByPage() + } + } + }, LocaleConstant.SEARCH_ACTION) } override fun onResume() { - obtainCompletedListByPage() + obtainProjectListByPage() super.onResume() } @@ -48,12 +73,12 @@ isRefresh = true //刷新之后页码重置 pageIndex = 1 - obtainCompletedListByPage() + obtainProjectListByPage() } completedRefreshLayout.setOnLoadMoreListener { isLoadMore = true pageIndex++ - obtainCompletedListByPage() + obtainProjectListByPage() } workSiteViewModel.workingModel.observe(this, { @@ -78,24 +103,24 @@ dataBeans = dataRows!! } } - weakReferenceHandler.sendEmptyMessage(2022071501) + weakReferenceHandler.sendEmptyMessage(2022071502) } }) } - private fun obtainCompletedListByPage() { - workSiteViewModel.obtainProjectListByPage(pageIndex, "2") + private fun obtainProjectListByPage() { + workSiteViewModel.obtainProjectListByPage(keywords, "2", pageIndex) } private val callback = Handler.Callback { - if (it.what == 2022071501) { + if (it.what == 2022071502) { if (isRefresh || isLoadMore) { workingListAdapter.notifyDataSetChanged() } else { //首次加载数据 if (dataBeans.size == 0) { emptyView!!.showEmptyPage { pageIndex = 1 - obtainCompletedListByPage() + obtainProjectListByPage() } } else { emptyView!!.hide() @@ -103,7 +128,8 @@ completedRecyclerView!!.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - completedRecyclerView!!.layoutManager = LinearLayoutManager(requireContext()) + completedRecyclerView!!.layoutManager = + LinearLayoutManager(requireContext()) completedRecyclerView!!.adapter = workingListAdapter workingListAdapter.setOnItemClickListener(object : WorkingListAdapter.OnItemClickListener { @@ -116,4 +142,9 @@ } true } + + override fun onDestroyView() { + broadcastManager.destroy(LocaleConstant.SEARCH_ACTION) + super.onDestroyView() + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt index 4158561..bf3295f 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt @@ -1,5 +1,8 @@ package com.casic.br.operationsite.fragment +import android.content.BroadcastReceiver +import android.content.Context +import android.content.Intent import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration @@ -7,12 +10,18 @@ import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage +import com.casic.br.operationsite.model.BroadcastDataModel import com.casic.br.operationsite.model.WorkingListModel +import com.casic.br.operationsite.utils.LocaleConstant import com.casic.br.operationsite.view.WorkSiteTabActivity import com.casic.br.operationsite.vm.WorkSiteViewModel +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.BroadcastManager +import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.WeakReferenceHandler import kotlinx.android.synthetic.main.fragment_not_start.* import kotlinx.android.synthetic.main.include_empty_view.* @@ -22,10 +31,12 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var workingListAdapter: WorkingListAdapter private lateinit var workSiteViewModel: WorkSiteViewModel + private lateinit var broadcastManager: BroadcastManager private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false private var isLoadMore = false + private var keywords = "" override fun initLayoutView(): Int = R.layout.fragment_not_start @@ -36,10 +47,24 @@ override fun initData() { weakReferenceHandler = WeakReferenceHandler(callback) workSiteViewModel = ViewModelProvider(this).get(WorkSiteViewModel::class.java) + broadcastManager = BroadcastManager.obtainInstance(requireContext()) + broadcastManager.addAction(object : BroadcastReceiver() { + override fun onReceive(context: Context?, intent: Intent?) { + val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) + val dataModel = Gson().fromJson( + stringExtra, object : TypeToken() {}.type + ) + if (dataModel.currentPage == 0) { + pageIndex = 1 + keywords = dataModel.keywords + obtainProjectListByPage() + } + } + }, LocaleConstant.SEARCH_ACTION) } override fun onResume() { - obtainNotStartListByPage() + obtainProjectListByPage() super.onResume() } @@ -48,12 +73,12 @@ isRefresh = true //刷新之后页码重置 pageIndex = 1 - obtainNotStartListByPage() + obtainProjectListByPage() } notStartRefreshLayout.setOnLoadMoreListener { isLoadMore = true pageIndex++ - obtainNotStartListByPage() + obtainProjectListByPage() } workSiteViewModel.workingModel.observe(this, { @@ -78,24 +103,24 @@ dataBeans = dataRows!! } } - weakReferenceHandler.sendEmptyMessage(2022071502) + weakReferenceHandler.sendEmptyMessage(2022071501) } }) } - private fun obtainNotStartListByPage() { - workSiteViewModel.obtainProjectListByPage(pageIndex, "0") + private fun obtainProjectListByPage() { + workSiteViewModel.obtainProjectListByPage(keywords, "0", pageIndex) } private val callback = Handler.Callback { - if (it.what == 2022071502) { + if (it.what == 2022071501) { if (isRefresh || isLoadMore) { workingListAdapter.notifyDataSetChanged() } else { //首次加载数据 if (dataBeans.size == 0) { emptyView!!.showEmptyPage { pageIndex = 1 - obtainNotStartListByPage() + obtainProjectListByPage() } } else { emptyView!!.hide() @@ -116,4 +141,9 @@ } true } + + override fun onDestroyView() { + broadcastManager.destroy(LocaleConstant.SEARCH_ACTION) + super.onDestroyView() + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt index ce6ef5e..bed87f0 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt @@ -1,5 +1,8 @@ package com.casic.br.operationsite.fragment +import android.content.BroadcastReceiver +import android.content.Context +import android.content.Intent import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration @@ -7,12 +10,18 @@ import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage +import com.casic.br.operationsite.model.BroadcastDataModel import com.casic.br.operationsite.model.WorkingListModel +import com.casic.br.operationsite.utils.LocaleConstant import com.casic.br.operationsite.view.WorkSiteTabActivity import com.casic.br.operationsite.vm.WorkSiteViewModel +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.BroadcastManager +import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.WeakReferenceHandler import kotlinx.android.synthetic.main.fragment_completed.* import kotlinx.android.synthetic.main.include_empty_view.* @@ -22,10 +31,12 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var workingListAdapter: WorkingListAdapter private lateinit var workSiteViewModel: WorkSiteViewModel + private lateinit var broadcastManager: BroadcastManager private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false private var isLoadMore = false + private var keywords = "" override fun initLayoutView(): Int = R.layout.fragment_completed @@ -36,10 +47,24 @@ override fun initData() { weakReferenceHandler = WeakReferenceHandler(callback) workSiteViewModel = ViewModelProvider(this).get(WorkSiteViewModel::class.java) + broadcastManager = BroadcastManager.obtainInstance(requireContext()) + broadcastManager.addAction(object : BroadcastReceiver() { + override fun onReceive(context: Context?, intent: Intent?) { + val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) + val dataModel = Gson().fromJson( + stringExtra, object : TypeToken() {}.type + ) + if (dataModel.currentPage == 2) { + pageIndex = 1 + keywords = dataModel.keywords + obtainProjectListByPage() + } + } + }, LocaleConstant.SEARCH_ACTION) } override fun onResume() { - obtainCompletedListByPage() + obtainProjectListByPage() super.onResume() } @@ -48,12 +73,12 @@ isRefresh = true //刷新之后页码重置 pageIndex = 1 - obtainCompletedListByPage() + obtainProjectListByPage() } completedRefreshLayout.setOnLoadMoreListener { isLoadMore = true pageIndex++ - obtainCompletedListByPage() + obtainProjectListByPage() } workSiteViewModel.workingModel.observe(this, { @@ -78,24 +103,24 @@ dataBeans = dataRows!! } } - weakReferenceHandler.sendEmptyMessage(2022071501) + weakReferenceHandler.sendEmptyMessage(2022071502) } }) } - private fun obtainCompletedListByPage() { - workSiteViewModel.obtainProjectListByPage(pageIndex, "2") + private fun obtainProjectListByPage() { + workSiteViewModel.obtainProjectListByPage(keywords, "2", pageIndex) } private val callback = Handler.Callback { - if (it.what == 2022071501) { + if (it.what == 2022071502) { if (isRefresh || isLoadMore) { workingListAdapter.notifyDataSetChanged() } else { //首次加载数据 if (dataBeans.size == 0) { emptyView!!.showEmptyPage { pageIndex = 1 - obtainCompletedListByPage() + obtainProjectListByPage() } } else { emptyView!!.hide() @@ -103,7 +128,8 @@ completedRecyclerView!!.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - completedRecyclerView!!.layoutManager = LinearLayoutManager(requireContext()) + completedRecyclerView!!.layoutManager = + LinearLayoutManager(requireContext()) completedRecyclerView!!.adapter = workingListAdapter workingListAdapter.setOnItemClickListener(object : WorkingListAdapter.OnItemClickListener { @@ -116,4 +142,9 @@ } true } + + override fun onDestroyView() { + broadcastManager.destroy(LocaleConstant.SEARCH_ACTION) + super.onDestroyView() + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt index 4158561..bf3295f 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt @@ -1,5 +1,8 @@ package com.casic.br.operationsite.fragment +import android.content.BroadcastReceiver +import android.content.Context +import android.content.Intent import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration @@ -7,12 +10,18 @@ import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage +import com.casic.br.operationsite.model.BroadcastDataModel import com.casic.br.operationsite.model.WorkingListModel +import com.casic.br.operationsite.utils.LocaleConstant import com.casic.br.operationsite.view.WorkSiteTabActivity import com.casic.br.operationsite.vm.WorkSiteViewModel +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.BroadcastManager +import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.WeakReferenceHandler import kotlinx.android.synthetic.main.fragment_not_start.* import kotlinx.android.synthetic.main.include_empty_view.* @@ -22,10 +31,12 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var workingListAdapter: WorkingListAdapter private lateinit var workSiteViewModel: WorkSiteViewModel + private lateinit var broadcastManager: BroadcastManager private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false private var isLoadMore = false + private var keywords = "" override fun initLayoutView(): Int = R.layout.fragment_not_start @@ -36,10 +47,24 @@ override fun initData() { weakReferenceHandler = WeakReferenceHandler(callback) workSiteViewModel = ViewModelProvider(this).get(WorkSiteViewModel::class.java) + broadcastManager = BroadcastManager.obtainInstance(requireContext()) + broadcastManager.addAction(object : BroadcastReceiver() { + override fun onReceive(context: Context?, intent: Intent?) { + val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) + val dataModel = Gson().fromJson( + stringExtra, object : TypeToken() {}.type + ) + if (dataModel.currentPage == 0) { + pageIndex = 1 + keywords = dataModel.keywords + obtainProjectListByPage() + } + } + }, LocaleConstant.SEARCH_ACTION) } override fun onResume() { - obtainNotStartListByPage() + obtainProjectListByPage() super.onResume() } @@ -48,12 +73,12 @@ isRefresh = true //刷新之后页码重置 pageIndex = 1 - obtainNotStartListByPage() + obtainProjectListByPage() } notStartRefreshLayout.setOnLoadMoreListener { isLoadMore = true pageIndex++ - obtainNotStartListByPage() + obtainProjectListByPage() } workSiteViewModel.workingModel.observe(this, { @@ -78,24 +103,24 @@ dataBeans = dataRows!! } } - weakReferenceHandler.sendEmptyMessage(2022071502) + weakReferenceHandler.sendEmptyMessage(2022071501) } }) } - private fun obtainNotStartListByPage() { - workSiteViewModel.obtainProjectListByPage(pageIndex, "0") + private fun obtainProjectListByPage() { + workSiteViewModel.obtainProjectListByPage(keywords, "0", pageIndex) } private val callback = Handler.Callback { - if (it.what == 2022071502) { + if (it.what == 2022071501) { if (isRefresh || isLoadMore) { workingListAdapter.notifyDataSetChanged() } else { //首次加载数据 if (dataBeans.size == 0) { emptyView!!.showEmptyPage { pageIndex = 1 - obtainNotStartListByPage() + obtainProjectListByPage() } } else { emptyView!!.hide() @@ -116,4 +141,9 @@ } true } + + override fun onDestroyView() { + broadcastManager.destroy(LocaleConstant.SEARCH_ACTION) + super.onDestroyView() + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt index 709e19a..2117609 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt @@ -1,5 +1,8 @@ package com.casic.br.operationsite.fragment +import android.content.BroadcastReceiver +import android.content.Context +import android.content.Intent import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration @@ -7,25 +10,34 @@ import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage +import com.casic.br.operationsite.model.BroadcastDataModel import com.casic.br.operationsite.model.WorkingListModel +import com.casic.br.operationsite.utils.LocaleConstant import com.casic.br.operationsite.view.WorkSiteTabActivity import com.casic.br.operationsite.vm.WorkSiteViewModel +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.BroadcastManager +import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.WeakReferenceHandler import kotlinx.android.synthetic.main.fragment_working.* import kotlinx.android.synthetic.main.include_empty_view.* + class WorkingFragment : KotlinBaseFragment() { private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var workingListAdapter: WorkingListAdapter private lateinit var workSiteViewModel: WorkSiteViewModel + private lateinit var broadcastManager: BroadcastManager private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false private var isLoadMore = false + private var keywords = "" override fun initLayoutView(): Int = R.layout.fragment_working @@ -36,10 +48,24 @@ override fun initData() { weakReferenceHandler = WeakReferenceHandler(callback) workSiteViewModel = ViewModelProvider(this).get(WorkSiteViewModel::class.java) + broadcastManager = BroadcastManager.obtainInstance(requireContext()) + broadcastManager.addAction(object : BroadcastReceiver() { + override fun onReceive(context: Context?, intent: Intent?) { + val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) + val dataModel = Gson().fromJson( + stringExtra, object : TypeToken() {}.type + ) + if (dataModel.currentPage == 1) { + pageIndex = 1 + keywords = dataModel.keywords + obtainProjectListByPage() + } + } + }, LocaleConstant.SEARCH_ACTION) } override fun onResume() { - obtainWorkingListByPage() + obtainProjectListByPage() super.onResume() } @@ -48,12 +74,12 @@ isRefresh = true //刷新之后页码重置 pageIndex = 1 - obtainWorkingListByPage() + obtainProjectListByPage() } workingRefreshLayout.setOnLoadMoreListener { isLoadMore = true pageIndex++ - obtainWorkingListByPage() + obtainProjectListByPage() } workSiteViewModel.workingModel.observe(this, { @@ -83,8 +109,8 @@ }) } - private fun obtainWorkingListByPage() { - workSiteViewModel.obtainProjectListByPage(pageIndex, "1") + private fun obtainProjectListByPage() { + workSiteViewModel.obtainProjectListByPage(keywords, "1", pageIndex) } private val callback = Handler.Callback { @@ -95,7 +121,7 @@ if (dataBeans.size == 0) { emptyView!!.showEmptyPage { pageIndex = 1 - obtainWorkingListByPage() + obtainProjectListByPage() } } else { emptyView!!.hide() @@ -116,4 +142,9 @@ } true } + + override fun onDestroyView() { + broadcastManager.destroy(LocaleConstant.SEARCH_ACTION) + super.onDestroyView() + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt index ce6ef5e..bed87f0 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt @@ -1,5 +1,8 @@ package com.casic.br.operationsite.fragment +import android.content.BroadcastReceiver +import android.content.Context +import android.content.Intent import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration @@ -7,12 +10,18 @@ import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage +import com.casic.br.operationsite.model.BroadcastDataModel import com.casic.br.operationsite.model.WorkingListModel +import com.casic.br.operationsite.utils.LocaleConstant import com.casic.br.operationsite.view.WorkSiteTabActivity import com.casic.br.operationsite.vm.WorkSiteViewModel +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.BroadcastManager +import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.WeakReferenceHandler import kotlinx.android.synthetic.main.fragment_completed.* import kotlinx.android.synthetic.main.include_empty_view.* @@ -22,10 +31,12 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var workingListAdapter: WorkingListAdapter private lateinit var workSiteViewModel: WorkSiteViewModel + private lateinit var broadcastManager: BroadcastManager private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false private var isLoadMore = false + private var keywords = "" override fun initLayoutView(): Int = R.layout.fragment_completed @@ -36,10 +47,24 @@ override fun initData() { weakReferenceHandler = WeakReferenceHandler(callback) workSiteViewModel = ViewModelProvider(this).get(WorkSiteViewModel::class.java) + broadcastManager = BroadcastManager.obtainInstance(requireContext()) + broadcastManager.addAction(object : BroadcastReceiver() { + override fun onReceive(context: Context?, intent: Intent?) { + val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) + val dataModel = Gson().fromJson( + stringExtra, object : TypeToken() {}.type + ) + if (dataModel.currentPage == 2) { + pageIndex = 1 + keywords = dataModel.keywords + obtainProjectListByPage() + } + } + }, LocaleConstant.SEARCH_ACTION) } override fun onResume() { - obtainCompletedListByPage() + obtainProjectListByPage() super.onResume() } @@ -48,12 +73,12 @@ isRefresh = true //刷新之后页码重置 pageIndex = 1 - obtainCompletedListByPage() + obtainProjectListByPage() } completedRefreshLayout.setOnLoadMoreListener { isLoadMore = true pageIndex++ - obtainCompletedListByPage() + obtainProjectListByPage() } workSiteViewModel.workingModel.observe(this, { @@ -78,24 +103,24 @@ dataBeans = dataRows!! } } - weakReferenceHandler.sendEmptyMessage(2022071501) + weakReferenceHandler.sendEmptyMessage(2022071502) } }) } - private fun obtainCompletedListByPage() { - workSiteViewModel.obtainProjectListByPage(pageIndex, "2") + private fun obtainProjectListByPage() { + workSiteViewModel.obtainProjectListByPage(keywords, "2", pageIndex) } private val callback = Handler.Callback { - if (it.what == 2022071501) { + if (it.what == 2022071502) { if (isRefresh || isLoadMore) { workingListAdapter.notifyDataSetChanged() } else { //首次加载数据 if (dataBeans.size == 0) { emptyView!!.showEmptyPage { pageIndex = 1 - obtainCompletedListByPage() + obtainProjectListByPage() } } else { emptyView!!.hide() @@ -103,7 +128,8 @@ completedRecyclerView!!.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - completedRecyclerView!!.layoutManager = LinearLayoutManager(requireContext()) + completedRecyclerView!!.layoutManager = + LinearLayoutManager(requireContext()) completedRecyclerView!!.adapter = workingListAdapter workingListAdapter.setOnItemClickListener(object : WorkingListAdapter.OnItemClickListener { @@ -116,4 +142,9 @@ } true } + + override fun onDestroyView() { + broadcastManager.destroy(LocaleConstant.SEARCH_ACTION) + super.onDestroyView() + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt index 4158561..bf3295f 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt @@ -1,5 +1,8 @@ package com.casic.br.operationsite.fragment +import android.content.BroadcastReceiver +import android.content.Context +import android.content.Intent import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration @@ -7,12 +10,18 @@ import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage +import com.casic.br.operationsite.model.BroadcastDataModel import com.casic.br.operationsite.model.WorkingListModel +import com.casic.br.operationsite.utils.LocaleConstant import com.casic.br.operationsite.view.WorkSiteTabActivity import com.casic.br.operationsite.vm.WorkSiteViewModel +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.BroadcastManager +import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.WeakReferenceHandler import kotlinx.android.synthetic.main.fragment_not_start.* import kotlinx.android.synthetic.main.include_empty_view.* @@ -22,10 +31,12 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var workingListAdapter: WorkingListAdapter private lateinit var workSiteViewModel: WorkSiteViewModel + private lateinit var broadcastManager: BroadcastManager private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false private var isLoadMore = false + private var keywords = "" override fun initLayoutView(): Int = R.layout.fragment_not_start @@ -36,10 +47,24 @@ override fun initData() { weakReferenceHandler = WeakReferenceHandler(callback) workSiteViewModel = ViewModelProvider(this).get(WorkSiteViewModel::class.java) + broadcastManager = BroadcastManager.obtainInstance(requireContext()) + broadcastManager.addAction(object : BroadcastReceiver() { + override fun onReceive(context: Context?, intent: Intent?) { + val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) + val dataModel = Gson().fromJson( + stringExtra, object : TypeToken() {}.type + ) + if (dataModel.currentPage == 0) { + pageIndex = 1 + keywords = dataModel.keywords + obtainProjectListByPage() + } + } + }, LocaleConstant.SEARCH_ACTION) } override fun onResume() { - obtainNotStartListByPage() + obtainProjectListByPage() super.onResume() } @@ -48,12 +73,12 @@ isRefresh = true //刷新之后页码重置 pageIndex = 1 - obtainNotStartListByPage() + obtainProjectListByPage() } notStartRefreshLayout.setOnLoadMoreListener { isLoadMore = true pageIndex++ - obtainNotStartListByPage() + obtainProjectListByPage() } workSiteViewModel.workingModel.observe(this, { @@ -78,24 +103,24 @@ dataBeans = dataRows!! } } - weakReferenceHandler.sendEmptyMessage(2022071502) + weakReferenceHandler.sendEmptyMessage(2022071501) } }) } - private fun obtainNotStartListByPage() { - workSiteViewModel.obtainProjectListByPage(pageIndex, "0") + private fun obtainProjectListByPage() { + workSiteViewModel.obtainProjectListByPage(keywords, "0", pageIndex) } private val callback = Handler.Callback { - if (it.what == 2022071502) { + if (it.what == 2022071501) { if (isRefresh || isLoadMore) { workingListAdapter.notifyDataSetChanged() } else { //首次加载数据 if (dataBeans.size == 0) { emptyView!!.showEmptyPage { pageIndex = 1 - obtainNotStartListByPage() + obtainProjectListByPage() } } else { emptyView!!.hide() @@ -116,4 +141,9 @@ } true } + + override fun onDestroyView() { + broadcastManager.destroy(LocaleConstant.SEARCH_ACTION) + super.onDestroyView() + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt index 709e19a..2117609 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt @@ -1,5 +1,8 @@ package com.casic.br.operationsite.fragment +import android.content.BroadcastReceiver +import android.content.Context +import android.content.Intent import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration @@ -7,25 +10,34 @@ import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage +import com.casic.br.operationsite.model.BroadcastDataModel import com.casic.br.operationsite.model.WorkingListModel +import com.casic.br.operationsite.utils.LocaleConstant import com.casic.br.operationsite.view.WorkSiteTabActivity import com.casic.br.operationsite.vm.WorkSiteViewModel +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.BroadcastManager +import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.WeakReferenceHandler import kotlinx.android.synthetic.main.fragment_working.* import kotlinx.android.synthetic.main.include_empty_view.* + class WorkingFragment : KotlinBaseFragment() { private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var workingListAdapter: WorkingListAdapter private lateinit var workSiteViewModel: WorkSiteViewModel + private lateinit var broadcastManager: BroadcastManager private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false private var isLoadMore = false + private var keywords = "" override fun initLayoutView(): Int = R.layout.fragment_working @@ -36,10 +48,24 @@ override fun initData() { weakReferenceHandler = WeakReferenceHandler(callback) workSiteViewModel = ViewModelProvider(this).get(WorkSiteViewModel::class.java) + broadcastManager = BroadcastManager.obtainInstance(requireContext()) + broadcastManager.addAction(object : BroadcastReceiver() { + override fun onReceive(context: Context?, intent: Intent?) { + val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) + val dataModel = Gson().fromJson( + stringExtra, object : TypeToken() {}.type + ) + if (dataModel.currentPage == 1) { + pageIndex = 1 + keywords = dataModel.keywords + obtainProjectListByPage() + } + } + }, LocaleConstant.SEARCH_ACTION) } override fun onResume() { - obtainWorkingListByPage() + obtainProjectListByPage() super.onResume() } @@ -48,12 +74,12 @@ isRefresh = true //刷新之后页码重置 pageIndex = 1 - obtainWorkingListByPage() + obtainProjectListByPage() } workingRefreshLayout.setOnLoadMoreListener { isLoadMore = true pageIndex++ - obtainWorkingListByPage() + obtainProjectListByPage() } workSiteViewModel.workingModel.observe(this, { @@ -83,8 +109,8 @@ }) } - private fun obtainWorkingListByPage() { - workSiteViewModel.obtainProjectListByPage(pageIndex, "1") + private fun obtainProjectListByPage() { + workSiteViewModel.obtainProjectListByPage(keywords, "1", pageIndex) } private val callback = Handler.Callback { @@ -95,7 +121,7 @@ if (dataBeans.size == 0) { emptyView!!.showEmptyPage { pageIndex = 1 - obtainWorkingListByPage() + obtainProjectListByPage() } } else { emptyView!!.hide() @@ -116,4 +142,9 @@ } true } + + override fun onDestroyView() { + broadcastManager.destroy(LocaleConstant.SEARCH_ACTION) + super.onDestroyView() + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/model/BroadcastDataModel.java b/app/src/main/java/com/casic/br/operationsite/model/BroadcastDataModel.java new file mode 100644 index 0000000..d466742 --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/model/BroadcastDataModel.java @@ -0,0 +1,22 @@ +package com.casic.br.operationsite.model; + +public class BroadcastDataModel { + private int currentPage; + private String keywords; + + public int getCurrentPage() { + return currentPage; + } + + public void setCurrentPage(int currentPage) { + this.currentPage = currentPage; + } + + public String getKeywords() { + return keywords; + } + + public void setKeywords(String keywords) { + this.keywords = keywords; + } +} diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt index ce6ef5e..bed87f0 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt @@ -1,5 +1,8 @@ package com.casic.br.operationsite.fragment +import android.content.BroadcastReceiver +import android.content.Context +import android.content.Intent import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration @@ -7,12 +10,18 @@ import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage +import com.casic.br.operationsite.model.BroadcastDataModel import com.casic.br.operationsite.model.WorkingListModel +import com.casic.br.operationsite.utils.LocaleConstant import com.casic.br.operationsite.view.WorkSiteTabActivity import com.casic.br.operationsite.vm.WorkSiteViewModel +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.BroadcastManager +import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.WeakReferenceHandler import kotlinx.android.synthetic.main.fragment_completed.* import kotlinx.android.synthetic.main.include_empty_view.* @@ -22,10 +31,12 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var workingListAdapter: WorkingListAdapter private lateinit var workSiteViewModel: WorkSiteViewModel + private lateinit var broadcastManager: BroadcastManager private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false private var isLoadMore = false + private var keywords = "" override fun initLayoutView(): Int = R.layout.fragment_completed @@ -36,10 +47,24 @@ override fun initData() { weakReferenceHandler = WeakReferenceHandler(callback) workSiteViewModel = ViewModelProvider(this).get(WorkSiteViewModel::class.java) + broadcastManager = BroadcastManager.obtainInstance(requireContext()) + broadcastManager.addAction(object : BroadcastReceiver() { + override fun onReceive(context: Context?, intent: Intent?) { + val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) + val dataModel = Gson().fromJson( + stringExtra, object : TypeToken() {}.type + ) + if (dataModel.currentPage == 2) { + pageIndex = 1 + keywords = dataModel.keywords + obtainProjectListByPage() + } + } + }, LocaleConstant.SEARCH_ACTION) } override fun onResume() { - obtainCompletedListByPage() + obtainProjectListByPage() super.onResume() } @@ -48,12 +73,12 @@ isRefresh = true //刷新之后页码重置 pageIndex = 1 - obtainCompletedListByPage() + obtainProjectListByPage() } completedRefreshLayout.setOnLoadMoreListener { isLoadMore = true pageIndex++ - obtainCompletedListByPage() + obtainProjectListByPage() } workSiteViewModel.workingModel.observe(this, { @@ -78,24 +103,24 @@ dataBeans = dataRows!! } } - weakReferenceHandler.sendEmptyMessage(2022071501) + weakReferenceHandler.sendEmptyMessage(2022071502) } }) } - private fun obtainCompletedListByPage() { - workSiteViewModel.obtainProjectListByPage(pageIndex, "2") + private fun obtainProjectListByPage() { + workSiteViewModel.obtainProjectListByPage(keywords, "2", pageIndex) } private val callback = Handler.Callback { - if (it.what == 2022071501) { + if (it.what == 2022071502) { if (isRefresh || isLoadMore) { workingListAdapter.notifyDataSetChanged() } else { //首次加载数据 if (dataBeans.size == 0) { emptyView!!.showEmptyPage { pageIndex = 1 - obtainCompletedListByPage() + obtainProjectListByPage() } } else { emptyView!!.hide() @@ -103,7 +128,8 @@ completedRecyclerView!!.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - completedRecyclerView!!.layoutManager = LinearLayoutManager(requireContext()) + completedRecyclerView!!.layoutManager = + LinearLayoutManager(requireContext()) completedRecyclerView!!.adapter = workingListAdapter workingListAdapter.setOnItemClickListener(object : WorkingListAdapter.OnItemClickListener { @@ -116,4 +142,9 @@ } true } + + override fun onDestroyView() { + broadcastManager.destroy(LocaleConstant.SEARCH_ACTION) + super.onDestroyView() + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt index 4158561..bf3295f 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt @@ -1,5 +1,8 @@ package com.casic.br.operationsite.fragment +import android.content.BroadcastReceiver +import android.content.Context +import android.content.Intent import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration @@ -7,12 +10,18 @@ import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage +import com.casic.br.operationsite.model.BroadcastDataModel import com.casic.br.operationsite.model.WorkingListModel +import com.casic.br.operationsite.utils.LocaleConstant import com.casic.br.operationsite.view.WorkSiteTabActivity import com.casic.br.operationsite.vm.WorkSiteViewModel +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.BroadcastManager +import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.WeakReferenceHandler import kotlinx.android.synthetic.main.fragment_not_start.* import kotlinx.android.synthetic.main.include_empty_view.* @@ -22,10 +31,12 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var workingListAdapter: WorkingListAdapter private lateinit var workSiteViewModel: WorkSiteViewModel + private lateinit var broadcastManager: BroadcastManager private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false private var isLoadMore = false + private var keywords = "" override fun initLayoutView(): Int = R.layout.fragment_not_start @@ -36,10 +47,24 @@ override fun initData() { weakReferenceHandler = WeakReferenceHandler(callback) workSiteViewModel = ViewModelProvider(this).get(WorkSiteViewModel::class.java) + broadcastManager = BroadcastManager.obtainInstance(requireContext()) + broadcastManager.addAction(object : BroadcastReceiver() { + override fun onReceive(context: Context?, intent: Intent?) { + val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) + val dataModel = Gson().fromJson( + stringExtra, object : TypeToken() {}.type + ) + if (dataModel.currentPage == 0) { + pageIndex = 1 + keywords = dataModel.keywords + obtainProjectListByPage() + } + } + }, LocaleConstant.SEARCH_ACTION) } override fun onResume() { - obtainNotStartListByPage() + obtainProjectListByPage() super.onResume() } @@ -48,12 +73,12 @@ isRefresh = true //刷新之后页码重置 pageIndex = 1 - obtainNotStartListByPage() + obtainProjectListByPage() } notStartRefreshLayout.setOnLoadMoreListener { isLoadMore = true pageIndex++ - obtainNotStartListByPage() + obtainProjectListByPage() } workSiteViewModel.workingModel.observe(this, { @@ -78,24 +103,24 @@ dataBeans = dataRows!! } } - weakReferenceHandler.sendEmptyMessage(2022071502) + weakReferenceHandler.sendEmptyMessage(2022071501) } }) } - private fun obtainNotStartListByPage() { - workSiteViewModel.obtainProjectListByPage(pageIndex, "0") + private fun obtainProjectListByPage() { + workSiteViewModel.obtainProjectListByPage(keywords, "0", pageIndex) } private val callback = Handler.Callback { - if (it.what == 2022071502) { + if (it.what == 2022071501) { if (isRefresh || isLoadMore) { workingListAdapter.notifyDataSetChanged() } else { //首次加载数据 if (dataBeans.size == 0) { emptyView!!.showEmptyPage { pageIndex = 1 - obtainNotStartListByPage() + obtainProjectListByPage() } } else { emptyView!!.hide() @@ -116,4 +141,9 @@ } true } + + override fun onDestroyView() { + broadcastManager.destroy(LocaleConstant.SEARCH_ACTION) + super.onDestroyView() + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt index 709e19a..2117609 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt @@ -1,5 +1,8 @@ package com.casic.br.operationsite.fragment +import android.content.BroadcastReceiver +import android.content.Context +import android.content.Intent import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration @@ -7,25 +10,34 @@ import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage +import com.casic.br.operationsite.model.BroadcastDataModel import com.casic.br.operationsite.model.WorkingListModel +import com.casic.br.operationsite.utils.LocaleConstant import com.casic.br.operationsite.view.WorkSiteTabActivity import com.casic.br.operationsite.vm.WorkSiteViewModel +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.BroadcastManager +import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.WeakReferenceHandler import kotlinx.android.synthetic.main.fragment_working.* import kotlinx.android.synthetic.main.include_empty_view.* + class WorkingFragment : KotlinBaseFragment() { private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var workingListAdapter: WorkingListAdapter private lateinit var workSiteViewModel: WorkSiteViewModel + private lateinit var broadcastManager: BroadcastManager private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false private var isLoadMore = false + private var keywords = "" override fun initLayoutView(): Int = R.layout.fragment_working @@ -36,10 +48,24 @@ override fun initData() { weakReferenceHandler = WeakReferenceHandler(callback) workSiteViewModel = ViewModelProvider(this).get(WorkSiteViewModel::class.java) + broadcastManager = BroadcastManager.obtainInstance(requireContext()) + broadcastManager.addAction(object : BroadcastReceiver() { + override fun onReceive(context: Context?, intent: Intent?) { + val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) + val dataModel = Gson().fromJson( + stringExtra, object : TypeToken() {}.type + ) + if (dataModel.currentPage == 1) { + pageIndex = 1 + keywords = dataModel.keywords + obtainProjectListByPage() + } + } + }, LocaleConstant.SEARCH_ACTION) } override fun onResume() { - obtainWorkingListByPage() + obtainProjectListByPage() super.onResume() } @@ -48,12 +74,12 @@ isRefresh = true //刷新之后页码重置 pageIndex = 1 - obtainWorkingListByPage() + obtainProjectListByPage() } workingRefreshLayout.setOnLoadMoreListener { isLoadMore = true pageIndex++ - obtainWorkingListByPage() + obtainProjectListByPage() } workSiteViewModel.workingModel.observe(this, { @@ -83,8 +109,8 @@ }) } - private fun obtainWorkingListByPage() { - workSiteViewModel.obtainProjectListByPage(pageIndex, "1") + private fun obtainProjectListByPage() { + workSiteViewModel.obtainProjectListByPage(keywords, "1", pageIndex) } private val callback = Handler.Callback { @@ -95,7 +121,7 @@ if (dataBeans.size == 0) { emptyView!!.showEmptyPage { pageIndex = 1 - obtainWorkingListByPage() + obtainProjectListByPage() } } else { emptyView!!.hide() @@ -116,4 +142,9 @@ } true } + + override fun onDestroyView() { + broadcastManager.destroy(LocaleConstant.SEARCH_ACTION) + super.onDestroyView() + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/model/BroadcastDataModel.java b/app/src/main/java/com/casic/br/operationsite/model/BroadcastDataModel.java new file mode 100644 index 0000000..d466742 --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/model/BroadcastDataModel.java @@ -0,0 +1,22 @@ +package com.casic.br.operationsite.model; + +public class BroadcastDataModel { + private int currentPage; + private String keywords; + + public int getCurrentPage() { + return currentPage; + } + + public void setCurrentPage(int currentPage) { + this.currentPage = currentPage; + } + + public String getKeywords() { + return keywords; + } + + public void setKeywords(String keywords) { + this.keywords = keywords; + } +} diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt index 09e1bd2..e489c55 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt @@ -35,8 +35,9 @@ * 实施中列表 */ @GET("/site/listPage") - suspend fun obtainWorkingListByPage( + suspend fun obtainProjectListByPage( @Header("token") token: String, + @Query("keywords") keywords: String, @Query("state") state: String, @Query("offset") offset: Int, @Query("limit") limit: Int diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt index ce6ef5e..bed87f0 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt @@ -1,5 +1,8 @@ package com.casic.br.operationsite.fragment +import android.content.BroadcastReceiver +import android.content.Context +import android.content.Intent import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration @@ -7,12 +10,18 @@ import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage +import com.casic.br.operationsite.model.BroadcastDataModel import com.casic.br.operationsite.model.WorkingListModel +import com.casic.br.operationsite.utils.LocaleConstant import com.casic.br.operationsite.view.WorkSiteTabActivity import com.casic.br.operationsite.vm.WorkSiteViewModel +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.BroadcastManager +import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.WeakReferenceHandler import kotlinx.android.synthetic.main.fragment_completed.* import kotlinx.android.synthetic.main.include_empty_view.* @@ -22,10 +31,12 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var workingListAdapter: WorkingListAdapter private lateinit var workSiteViewModel: WorkSiteViewModel + private lateinit var broadcastManager: BroadcastManager private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false private var isLoadMore = false + private var keywords = "" override fun initLayoutView(): Int = R.layout.fragment_completed @@ -36,10 +47,24 @@ override fun initData() { weakReferenceHandler = WeakReferenceHandler(callback) workSiteViewModel = ViewModelProvider(this).get(WorkSiteViewModel::class.java) + broadcastManager = BroadcastManager.obtainInstance(requireContext()) + broadcastManager.addAction(object : BroadcastReceiver() { + override fun onReceive(context: Context?, intent: Intent?) { + val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) + val dataModel = Gson().fromJson( + stringExtra, object : TypeToken() {}.type + ) + if (dataModel.currentPage == 2) { + pageIndex = 1 + keywords = dataModel.keywords + obtainProjectListByPage() + } + } + }, LocaleConstant.SEARCH_ACTION) } override fun onResume() { - obtainCompletedListByPage() + obtainProjectListByPage() super.onResume() } @@ -48,12 +73,12 @@ isRefresh = true //刷新之后页码重置 pageIndex = 1 - obtainCompletedListByPage() + obtainProjectListByPage() } completedRefreshLayout.setOnLoadMoreListener { isLoadMore = true pageIndex++ - obtainCompletedListByPage() + obtainProjectListByPage() } workSiteViewModel.workingModel.observe(this, { @@ -78,24 +103,24 @@ dataBeans = dataRows!! } } - weakReferenceHandler.sendEmptyMessage(2022071501) + weakReferenceHandler.sendEmptyMessage(2022071502) } }) } - private fun obtainCompletedListByPage() { - workSiteViewModel.obtainProjectListByPage(pageIndex, "2") + private fun obtainProjectListByPage() { + workSiteViewModel.obtainProjectListByPage(keywords, "2", pageIndex) } private val callback = Handler.Callback { - if (it.what == 2022071501) { + if (it.what == 2022071502) { if (isRefresh || isLoadMore) { workingListAdapter.notifyDataSetChanged() } else { //首次加载数据 if (dataBeans.size == 0) { emptyView!!.showEmptyPage { pageIndex = 1 - obtainCompletedListByPage() + obtainProjectListByPage() } } else { emptyView!!.hide() @@ -103,7 +128,8 @@ completedRecyclerView!!.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - completedRecyclerView!!.layoutManager = LinearLayoutManager(requireContext()) + completedRecyclerView!!.layoutManager = + LinearLayoutManager(requireContext()) completedRecyclerView!!.adapter = workingListAdapter workingListAdapter.setOnItemClickListener(object : WorkingListAdapter.OnItemClickListener { @@ -116,4 +142,9 @@ } true } + + override fun onDestroyView() { + broadcastManager.destroy(LocaleConstant.SEARCH_ACTION) + super.onDestroyView() + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt index 4158561..bf3295f 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt @@ -1,5 +1,8 @@ package com.casic.br.operationsite.fragment +import android.content.BroadcastReceiver +import android.content.Context +import android.content.Intent import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration @@ -7,12 +10,18 @@ import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage +import com.casic.br.operationsite.model.BroadcastDataModel import com.casic.br.operationsite.model.WorkingListModel +import com.casic.br.operationsite.utils.LocaleConstant import com.casic.br.operationsite.view.WorkSiteTabActivity import com.casic.br.operationsite.vm.WorkSiteViewModel +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.BroadcastManager +import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.WeakReferenceHandler import kotlinx.android.synthetic.main.fragment_not_start.* import kotlinx.android.synthetic.main.include_empty_view.* @@ -22,10 +31,12 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var workingListAdapter: WorkingListAdapter private lateinit var workSiteViewModel: WorkSiteViewModel + private lateinit var broadcastManager: BroadcastManager private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false private var isLoadMore = false + private var keywords = "" override fun initLayoutView(): Int = R.layout.fragment_not_start @@ -36,10 +47,24 @@ override fun initData() { weakReferenceHandler = WeakReferenceHandler(callback) workSiteViewModel = ViewModelProvider(this).get(WorkSiteViewModel::class.java) + broadcastManager = BroadcastManager.obtainInstance(requireContext()) + broadcastManager.addAction(object : BroadcastReceiver() { + override fun onReceive(context: Context?, intent: Intent?) { + val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) + val dataModel = Gson().fromJson( + stringExtra, object : TypeToken() {}.type + ) + if (dataModel.currentPage == 0) { + pageIndex = 1 + keywords = dataModel.keywords + obtainProjectListByPage() + } + } + }, LocaleConstant.SEARCH_ACTION) } override fun onResume() { - obtainNotStartListByPage() + obtainProjectListByPage() super.onResume() } @@ -48,12 +73,12 @@ isRefresh = true //刷新之后页码重置 pageIndex = 1 - obtainNotStartListByPage() + obtainProjectListByPage() } notStartRefreshLayout.setOnLoadMoreListener { isLoadMore = true pageIndex++ - obtainNotStartListByPage() + obtainProjectListByPage() } workSiteViewModel.workingModel.observe(this, { @@ -78,24 +103,24 @@ dataBeans = dataRows!! } } - weakReferenceHandler.sendEmptyMessage(2022071502) + weakReferenceHandler.sendEmptyMessage(2022071501) } }) } - private fun obtainNotStartListByPage() { - workSiteViewModel.obtainProjectListByPage(pageIndex, "0") + private fun obtainProjectListByPage() { + workSiteViewModel.obtainProjectListByPage(keywords, "0", pageIndex) } private val callback = Handler.Callback { - if (it.what == 2022071502) { + if (it.what == 2022071501) { if (isRefresh || isLoadMore) { workingListAdapter.notifyDataSetChanged() } else { //首次加载数据 if (dataBeans.size == 0) { emptyView!!.showEmptyPage { pageIndex = 1 - obtainNotStartListByPage() + obtainProjectListByPage() } } else { emptyView!!.hide() @@ -116,4 +141,9 @@ } true } + + override fun onDestroyView() { + broadcastManager.destroy(LocaleConstant.SEARCH_ACTION) + super.onDestroyView() + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt index 709e19a..2117609 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt @@ -1,5 +1,8 @@ package com.casic.br.operationsite.fragment +import android.content.BroadcastReceiver +import android.content.Context +import android.content.Intent import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration @@ -7,25 +10,34 @@ import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage +import com.casic.br.operationsite.model.BroadcastDataModel import com.casic.br.operationsite.model.WorkingListModel +import com.casic.br.operationsite.utils.LocaleConstant import com.casic.br.operationsite.view.WorkSiteTabActivity import com.casic.br.operationsite.vm.WorkSiteViewModel +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.BroadcastManager +import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.WeakReferenceHandler import kotlinx.android.synthetic.main.fragment_working.* import kotlinx.android.synthetic.main.include_empty_view.* + class WorkingFragment : KotlinBaseFragment() { private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var workingListAdapter: WorkingListAdapter private lateinit var workSiteViewModel: WorkSiteViewModel + private lateinit var broadcastManager: BroadcastManager private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false private var isLoadMore = false + private var keywords = "" override fun initLayoutView(): Int = R.layout.fragment_working @@ -36,10 +48,24 @@ override fun initData() { weakReferenceHandler = WeakReferenceHandler(callback) workSiteViewModel = ViewModelProvider(this).get(WorkSiteViewModel::class.java) + broadcastManager = BroadcastManager.obtainInstance(requireContext()) + broadcastManager.addAction(object : BroadcastReceiver() { + override fun onReceive(context: Context?, intent: Intent?) { + val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) + val dataModel = Gson().fromJson( + stringExtra, object : TypeToken() {}.type + ) + if (dataModel.currentPage == 1) { + pageIndex = 1 + keywords = dataModel.keywords + obtainProjectListByPage() + } + } + }, LocaleConstant.SEARCH_ACTION) } override fun onResume() { - obtainWorkingListByPage() + obtainProjectListByPage() super.onResume() } @@ -48,12 +74,12 @@ isRefresh = true //刷新之后页码重置 pageIndex = 1 - obtainWorkingListByPage() + obtainProjectListByPage() } workingRefreshLayout.setOnLoadMoreListener { isLoadMore = true pageIndex++ - obtainWorkingListByPage() + obtainProjectListByPage() } workSiteViewModel.workingModel.observe(this, { @@ -83,8 +109,8 @@ }) } - private fun obtainWorkingListByPage() { - workSiteViewModel.obtainProjectListByPage(pageIndex, "1") + private fun obtainProjectListByPage() { + workSiteViewModel.obtainProjectListByPage(keywords, "1", pageIndex) } private val callback = Handler.Callback { @@ -95,7 +121,7 @@ if (dataBeans.size == 0) { emptyView!!.showEmptyPage { pageIndex = 1 - obtainWorkingListByPage() + obtainProjectListByPage() } } else { emptyView!!.hide() @@ -116,4 +142,9 @@ } true } + + override fun onDestroyView() { + broadcastManager.destroy(LocaleConstant.SEARCH_ACTION) + super.onDestroyView() + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/model/BroadcastDataModel.java b/app/src/main/java/com/casic/br/operationsite/model/BroadcastDataModel.java new file mode 100644 index 0000000..d466742 --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/model/BroadcastDataModel.java @@ -0,0 +1,22 @@ +package com.casic.br.operationsite.model; + +public class BroadcastDataModel { + private int currentPage; + private String keywords; + + public int getCurrentPage() { + return currentPage; + } + + public void setCurrentPage(int currentPage) { + this.currentPage = currentPage; + } + + public String getKeywords() { + return keywords; + } + + public void setKeywords(String keywords) { + this.keywords = keywords; + } +} diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt index 09e1bd2..e489c55 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt @@ -35,8 +35,9 @@ * 实施中列表 */ @GET("/site/listPage") - suspend fun obtainWorkingListByPage( + suspend fun obtainProjectListByPage( @Header("token") token: String, + @Query("keywords") keywords: String, @Query("state") state: String, @Query("offset") offset: Int, @Query("limit") limit: Int diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt index cc94632..3ba3359 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt @@ -40,11 +40,11 @@ } /** - * 实施中列表 + * 项目列表 */ - suspend fun obtainWorkingListByPage(page: Int, state: String): String { - return api.obtainWorkingListByPage( - AuthenticationHelper.token!!, state, page, LocaleConstant.PAGE_LIMIT + suspend fun obtainProjectListByPage(keywords: String, state: String, page: Int): String { + return api.obtainProjectListByPage( + AuthenticationHelper.token!!, keywords, state, page, LocaleConstant.PAGE_LIMIT ) } diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt index ce6ef5e..bed87f0 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt @@ -1,5 +1,8 @@ package com.casic.br.operationsite.fragment +import android.content.BroadcastReceiver +import android.content.Context +import android.content.Intent import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration @@ -7,12 +10,18 @@ import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage +import com.casic.br.operationsite.model.BroadcastDataModel import com.casic.br.operationsite.model.WorkingListModel +import com.casic.br.operationsite.utils.LocaleConstant import com.casic.br.operationsite.view.WorkSiteTabActivity import com.casic.br.operationsite.vm.WorkSiteViewModel +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.BroadcastManager +import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.WeakReferenceHandler import kotlinx.android.synthetic.main.fragment_completed.* import kotlinx.android.synthetic.main.include_empty_view.* @@ -22,10 +31,12 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var workingListAdapter: WorkingListAdapter private lateinit var workSiteViewModel: WorkSiteViewModel + private lateinit var broadcastManager: BroadcastManager private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false private var isLoadMore = false + private var keywords = "" override fun initLayoutView(): Int = R.layout.fragment_completed @@ -36,10 +47,24 @@ override fun initData() { weakReferenceHandler = WeakReferenceHandler(callback) workSiteViewModel = ViewModelProvider(this).get(WorkSiteViewModel::class.java) + broadcastManager = BroadcastManager.obtainInstance(requireContext()) + broadcastManager.addAction(object : BroadcastReceiver() { + override fun onReceive(context: Context?, intent: Intent?) { + val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) + val dataModel = Gson().fromJson( + stringExtra, object : TypeToken() {}.type + ) + if (dataModel.currentPage == 2) { + pageIndex = 1 + keywords = dataModel.keywords + obtainProjectListByPage() + } + } + }, LocaleConstant.SEARCH_ACTION) } override fun onResume() { - obtainCompletedListByPage() + obtainProjectListByPage() super.onResume() } @@ -48,12 +73,12 @@ isRefresh = true //刷新之后页码重置 pageIndex = 1 - obtainCompletedListByPage() + obtainProjectListByPage() } completedRefreshLayout.setOnLoadMoreListener { isLoadMore = true pageIndex++ - obtainCompletedListByPage() + obtainProjectListByPage() } workSiteViewModel.workingModel.observe(this, { @@ -78,24 +103,24 @@ dataBeans = dataRows!! } } - weakReferenceHandler.sendEmptyMessage(2022071501) + weakReferenceHandler.sendEmptyMessage(2022071502) } }) } - private fun obtainCompletedListByPage() { - workSiteViewModel.obtainProjectListByPage(pageIndex, "2") + private fun obtainProjectListByPage() { + workSiteViewModel.obtainProjectListByPage(keywords, "2", pageIndex) } private val callback = Handler.Callback { - if (it.what == 2022071501) { + if (it.what == 2022071502) { if (isRefresh || isLoadMore) { workingListAdapter.notifyDataSetChanged() } else { //首次加载数据 if (dataBeans.size == 0) { emptyView!!.showEmptyPage { pageIndex = 1 - obtainCompletedListByPage() + obtainProjectListByPage() } } else { emptyView!!.hide() @@ -103,7 +128,8 @@ completedRecyclerView!!.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - completedRecyclerView!!.layoutManager = LinearLayoutManager(requireContext()) + completedRecyclerView!!.layoutManager = + LinearLayoutManager(requireContext()) completedRecyclerView!!.adapter = workingListAdapter workingListAdapter.setOnItemClickListener(object : WorkingListAdapter.OnItemClickListener { @@ -116,4 +142,9 @@ } true } + + override fun onDestroyView() { + broadcastManager.destroy(LocaleConstant.SEARCH_ACTION) + super.onDestroyView() + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt index 4158561..bf3295f 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt @@ -1,5 +1,8 @@ package com.casic.br.operationsite.fragment +import android.content.BroadcastReceiver +import android.content.Context +import android.content.Intent import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration @@ -7,12 +10,18 @@ import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage +import com.casic.br.operationsite.model.BroadcastDataModel import com.casic.br.operationsite.model.WorkingListModel +import com.casic.br.operationsite.utils.LocaleConstant import com.casic.br.operationsite.view.WorkSiteTabActivity import com.casic.br.operationsite.vm.WorkSiteViewModel +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.BroadcastManager +import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.WeakReferenceHandler import kotlinx.android.synthetic.main.fragment_not_start.* import kotlinx.android.synthetic.main.include_empty_view.* @@ -22,10 +31,12 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var workingListAdapter: WorkingListAdapter private lateinit var workSiteViewModel: WorkSiteViewModel + private lateinit var broadcastManager: BroadcastManager private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false private var isLoadMore = false + private var keywords = "" override fun initLayoutView(): Int = R.layout.fragment_not_start @@ -36,10 +47,24 @@ override fun initData() { weakReferenceHandler = WeakReferenceHandler(callback) workSiteViewModel = ViewModelProvider(this).get(WorkSiteViewModel::class.java) + broadcastManager = BroadcastManager.obtainInstance(requireContext()) + broadcastManager.addAction(object : BroadcastReceiver() { + override fun onReceive(context: Context?, intent: Intent?) { + val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) + val dataModel = Gson().fromJson( + stringExtra, object : TypeToken() {}.type + ) + if (dataModel.currentPage == 0) { + pageIndex = 1 + keywords = dataModel.keywords + obtainProjectListByPage() + } + } + }, LocaleConstant.SEARCH_ACTION) } override fun onResume() { - obtainNotStartListByPage() + obtainProjectListByPage() super.onResume() } @@ -48,12 +73,12 @@ isRefresh = true //刷新之后页码重置 pageIndex = 1 - obtainNotStartListByPage() + obtainProjectListByPage() } notStartRefreshLayout.setOnLoadMoreListener { isLoadMore = true pageIndex++ - obtainNotStartListByPage() + obtainProjectListByPage() } workSiteViewModel.workingModel.observe(this, { @@ -78,24 +103,24 @@ dataBeans = dataRows!! } } - weakReferenceHandler.sendEmptyMessage(2022071502) + weakReferenceHandler.sendEmptyMessage(2022071501) } }) } - private fun obtainNotStartListByPage() { - workSiteViewModel.obtainProjectListByPage(pageIndex, "0") + private fun obtainProjectListByPage() { + workSiteViewModel.obtainProjectListByPage(keywords, "0", pageIndex) } private val callback = Handler.Callback { - if (it.what == 2022071502) { + if (it.what == 2022071501) { if (isRefresh || isLoadMore) { workingListAdapter.notifyDataSetChanged() } else { //首次加载数据 if (dataBeans.size == 0) { emptyView!!.showEmptyPage { pageIndex = 1 - obtainNotStartListByPage() + obtainProjectListByPage() } } else { emptyView!!.hide() @@ -116,4 +141,9 @@ } true } + + override fun onDestroyView() { + broadcastManager.destroy(LocaleConstant.SEARCH_ACTION) + super.onDestroyView() + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt index 709e19a..2117609 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt @@ -1,5 +1,8 @@ package com.casic.br.operationsite.fragment +import android.content.BroadcastReceiver +import android.content.Context +import android.content.Intent import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration @@ -7,25 +10,34 @@ import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage +import com.casic.br.operationsite.model.BroadcastDataModel import com.casic.br.operationsite.model.WorkingListModel +import com.casic.br.operationsite.utils.LocaleConstant import com.casic.br.operationsite.view.WorkSiteTabActivity import com.casic.br.operationsite.vm.WorkSiteViewModel +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.BroadcastManager +import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.WeakReferenceHandler import kotlinx.android.synthetic.main.fragment_working.* import kotlinx.android.synthetic.main.include_empty_view.* + class WorkingFragment : KotlinBaseFragment() { private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var workingListAdapter: WorkingListAdapter private lateinit var workSiteViewModel: WorkSiteViewModel + private lateinit var broadcastManager: BroadcastManager private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false private var isLoadMore = false + private var keywords = "" override fun initLayoutView(): Int = R.layout.fragment_working @@ -36,10 +48,24 @@ override fun initData() { weakReferenceHandler = WeakReferenceHandler(callback) workSiteViewModel = ViewModelProvider(this).get(WorkSiteViewModel::class.java) + broadcastManager = BroadcastManager.obtainInstance(requireContext()) + broadcastManager.addAction(object : BroadcastReceiver() { + override fun onReceive(context: Context?, intent: Intent?) { + val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) + val dataModel = Gson().fromJson( + stringExtra, object : TypeToken() {}.type + ) + if (dataModel.currentPage == 1) { + pageIndex = 1 + keywords = dataModel.keywords + obtainProjectListByPage() + } + } + }, LocaleConstant.SEARCH_ACTION) } override fun onResume() { - obtainWorkingListByPage() + obtainProjectListByPage() super.onResume() } @@ -48,12 +74,12 @@ isRefresh = true //刷新之后页码重置 pageIndex = 1 - obtainWorkingListByPage() + obtainProjectListByPage() } workingRefreshLayout.setOnLoadMoreListener { isLoadMore = true pageIndex++ - obtainWorkingListByPage() + obtainProjectListByPage() } workSiteViewModel.workingModel.observe(this, { @@ -83,8 +109,8 @@ }) } - private fun obtainWorkingListByPage() { - workSiteViewModel.obtainProjectListByPage(pageIndex, "1") + private fun obtainProjectListByPage() { + workSiteViewModel.obtainProjectListByPage(keywords, "1", pageIndex) } private val callback = Handler.Callback { @@ -95,7 +121,7 @@ if (dataBeans.size == 0) { emptyView!!.showEmptyPage { pageIndex = 1 - obtainWorkingListByPage() + obtainProjectListByPage() } } else { emptyView!!.hide() @@ -116,4 +142,9 @@ } true } + + override fun onDestroyView() { + broadcastManager.destroy(LocaleConstant.SEARCH_ACTION) + super.onDestroyView() + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/model/BroadcastDataModel.java b/app/src/main/java/com/casic/br/operationsite/model/BroadcastDataModel.java new file mode 100644 index 0000000..d466742 --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/model/BroadcastDataModel.java @@ -0,0 +1,22 @@ +package com.casic.br.operationsite.model; + +public class BroadcastDataModel { + private int currentPage; + private String keywords; + + public int getCurrentPage() { + return currentPage; + } + + public void setCurrentPage(int currentPage) { + this.currentPage = currentPage; + } + + public String getKeywords() { + return keywords; + } + + public void setKeywords(String keywords) { + this.keywords = keywords; + } +} diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt index 09e1bd2..e489c55 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt @@ -35,8 +35,9 @@ * 实施中列表 */ @GET("/site/listPage") - suspend fun obtainWorkingListByPage( + suspend fun obtainProjectListByPage( @Header("token") token: String, + @Query("keywords") keywords: String, @Query("state") state: String, @Query("offset") offset: Int, @Query("limit") limit: Int diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt index cc94632..3ba3359 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt @@ -40,11 +40,11 @@ } /** - * 实施中列表 + * 项目列表 */ - suspend fun obtainWorkingListByPage(page: Int, state: String): String { - return api.obtainWorkingListByPage( - AuthenticationHelper.token!!, state, page, LocaleConstant.PAGE_LIMIT + suspend fun obtainProjectListByPage(keywords: String, state: String, page: Int): String { + return api.obtainProjectListByPage( + AuthenticationHelper.token!!, keywords, state, page, LocaleConstant.PAGE_LIMIT ) } diff --git a/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt b/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt index 2a3606e..00802a0 100644 --- a/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt +++ b/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt @@ -14,6 +14,7 @@ const val DEFAULT_SERVER_CONFIG = "defaultServerConfig" const val ACCOUNT = "account" const val PASSWORD = "password" + const val SEARCH_ACTION = "searchAction" const val PERMISSIONS_CODE = 999 const val PAGE_LIMIT = 20 diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt index ce6ef5e..bed87f0 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt @@ -1,5 +1,8 @@ package com.casic.br.operationsite.fragment +import android.content.BroadcastReceiver +import android.content.Context +import android.content.Intent import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration @@ -7,12 +10,18 @@ import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage +import com.casic.br.operationsite.model.BroadcastDataModel import com.casic.br.operationsite.model.WorkingListModel +import com.casic.br.operationsite.utils.LocaleConstant import com.casic.br.operationsite.view.WorkSiteTabActivity import com.casic.br.operationsite.vm.WorkSiteViewModel +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.BroadcastManager +import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.WeakReferenceHandler import kotlinx.android.synthetic.main.fragment_completed.* import kotlinx.android.synthetic.main.include_empty_view.* @@ -22,10 +31,12 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var workingListAdapter: WorkingListAdapter private lateinit var workSiteViewModel: WorkSiteViewModel + private lateinit var broadcastManager: BroadcastManager private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false private var isLoadMore = false + private var keywords = "" override fun initLayoutView(): Int = R.layout.fragment_completed @@ -36,10 +47,24 @@ override fun initData() { weakReferenceHandler = WeakReferenceHandler(callback) workSiteViewModel = ViewModelProvider(this).get(WorkSiteViewModel::class.java) + broadcastManager = BroadcastManager.obtainInstance(requireContext()) + broadcastManager.addAction(object : BroadcastReceiver() { + override fun onReceive(context: Context?, intent: Intent?) { + val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) + val dataModel = Gson().fromJson( + stringExtra, object : TypeToken() {}.type + ) + if (dataModel.currentPage == 2) { + pageIndex = 1 + keywords = dataModel.keywords + obtainProjectListByPage() + } + } + }, LocaleConstant.SEARCH_ACTION) } override fun onResume() { - obtainCompletedListByPage() + obtainProjectListByPage() super.onResume() } @@ -48,12 +73,12 @@ isRefresh = true //刷新之后页码重置 pageIndex = 1 - obtainCompletedListByPage() + obtainProjectListByPage() } completedRefreshLayout.setOnLoadMoreListener { isLoadMore = true pageIndex++ - obtainCompletedListByPage() + obtainProjectListByPage() } workSiteViewModel.workingModel.observe(this, { @@ -78,24 +103,24 @@ dataBeans = dataRows!! } } - weakReferenceHandler.sendEmptyMessage(2022071501) + weakReferenceHandler.sendEmptyMessage(2022071502) } }) } - private fun obtainCompletedListByPage() { - workSiteViewModel.obtainProjectListByPage(pageIndex, "2") + private fun obtainProjectListByPage() { + workSiteViewModel.obtainProjectListByPage(keywords, "2", pageIndex) } private val callback = Handler.Callback { - if (it.what == 2022071501) { + if (it.what == 2022071502) { if (isRefresh || isLoadMore) { workingListAdapter.notifyDataSetChanged() } else { //首次加载数据 if (dataBeans.size == 0) { emptyView!!.showEmptyPage { pageIndex = 1 - obtainCompletedListByPage() + obtainProjectListByPage() } } else { emptyView!!.hide() @@ -103,7 +128,8 @@ completedRecyclerView!!.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - completedRecyclerView!!.layoutManager = LinearLayoutManager(requireContext()) + completedRecyclerView!!.layoutManager = + LinearLayoutManager(requireContext()) completedRecyclerView!!.adapter = workingListAdapter workingListAdapter.setOnItemClickListener(object : WorkingListAdapter.OnItemClickListener { @@ -116,4 +142,9 @@ } true } + + override fun onDestroyView() { + broadcastManager.destroy(LocaleConstant.SEARCH_ACTION) + super.onDestroyView() + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt index 4158561..bf3295f 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt @@ -1,5 +1,8 @@ package com.casic.br.operationsite.fragment +import android.content.BroadcastReceiver +import android.content.Context +import android.content.Intent import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration @@ -7,12 +10,18 @@ import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage +import com.casic.br.operationsite.model.BroadcastDataModel import com.casic.br.operationsite.model.WorkingListModel +import com.casic.br.operationsite.utils.LocaleConstant import com.casic.br.operationsite.view.WorkSiteTabActivity import com.casic.br.operationsite.vm.WorkSiteViewModel +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.BroadcastManager +import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.WeakReferenceHandler import kotlinx.android.synthetic.main.fragment_not_start.* import kotlinx.android.synthetic.main.include_empty_view.* @@ -22,10 +31,12 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var workingListAdapter: WorkingListAdapter private lateinit var workSiteViewModel: WorkSiteViewModel + private lateinit var broadcastManager: BroadcastManager private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false private var isLoadMore = false + private var keywords = "" override fun initLayoutView(): Int = R.layout.fragment_not_start @@ -36,10 +47,24 @@ override fun initData() { weakReferenceHandler = WeakReferenceHandler(callback) workSiteViewModel = ViewModelProvider(this).get(WorkSiteViewModel::class.java) + broadcastManager = BroadcastManager.obtainInstance(requireContext()) + broadcastManager.addAction(object : BroadcastReceiver() { + override fun onReceive(context: Context?, intent: Intent?) { + val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) + val dataModel = Gson().fromJson( + stringExtra, object : TypeToken() {}.type + ) + if (dataModel.currentPage == 0) { + pageIndex = 1 + keywords = dataModel.keywords + obtainProjectListByPage() + } + } + }, LocaleConstant.SEARCH_ACTION) } override fun onResume() { - obtainNotStartListByPage() + obtainProjectListByPage() super.onResume() } @@ -48,12 +73,12 @@ isRefresh = true //刷新之后页码重置 pageIndex = 1 - obtainNotStartListByPage() + obtainProjectListByPage() } notStartRefreshLayout.setOnLoadMoreListener { isLoadMore = true pageIndex++ - obtainNotStartListByPage() + obtainProjectListByPage() } workSiteViewModel.workingModel.observe(this, { @@ -78,24 +103,24 @@ dataBeans = dataRows!! } } - weakReferenceHandler.sendEmptyMessage(2022071502) + weakReferenceHandler.sendEmptyMessage(2022071501) } }) } - private fun obtainNotStartListByPage() { - workSiteViewModel.obtainProjectListByPage(pageIndex, "0") + private fun obtainProjectListByPage() { + workSiteViewModel.obtainProjectListByPage(keywords, "0", pageIndex) } private val callback = Handler.Callback { - if (it.what == 2022071502) { + if (it.what == 2022071501) { if (isRefresh || isLoadMore) { workingListAdapter.notifyDataSetChanged() } else { //首次加载数据 if (dataBeans.size == 0) { emptyView!!.showEmptyPage { pageIndex = 1 - obtainNotStartListByPage() + obtainProjectListByPage() } } else { emptyView!!.hide() @@ -116,4 +141,9 @@ } true } + + override fun onDestroyView() { + broadcastManager.destroy(LocaleConstant.SEARCH_ACTION) + super.onDestroyView() + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt index 709e19a..2117609 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt @@ -1,5 +1,8 @@ package com.casic.br.operationsite.fragment +import android.content.BroadcastReceiver +import android.content.Context +import android.content.Intent import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration @@ -7,25 +10,34 @@ import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage +import com.casic.br.operationsite.model.BroadcastDataModel import com.casic.br.operationsite.model.WorkingListModel +import com.casic.br.operationsite.utils.LocaleConstant import com.casic.br.operationsite.view.WorkSiteTabActivity import com.casic.br.operationsite.vm.WorkSiteViewModel +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.BroadcastManager +import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.WeakReferenceHandler import kotlinx.android.synthetic.main.fragment_working.* import kotlinx.android.synthetic.main.include_empty_view.* + class WorkingFragment : KotlinBaseFragment() { private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var workingListAdapter: WorkingListAdapter private lateinit var workSiteViewModel: WorkSiteViewModel + private lateinit var broadcastManager: BroadcastManager private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false private var isLoadMore = false + private var keywords = "" override fun initLayoutView(): Int = R.layout.fragment_working @@ -36,10 +48,24 @@ override fun initData() { weakReferenceHandler = WeakReferenceHandler(callback) workSiteViewModel = ViewModelProvider(this).get(WorkSiteViewModel::class.java) + broadcastManager = BroadcastManager.obtainInstance(requireContext()) + broadcastManager.addAction(object : BroadcastReceiver() { + override fun onReceive(context: Context?, intent: Intent?) { + val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) + val dataModel = Gson().fromJson( + stringExtra, object : TypeToken() {}.type + ) + if (dataModel.currentPage == 1) { + pageIndex = 1 + keywords = dataModel.keywords + obtainProjectListByPage() + } + } + }, LocaleConstant.SEARCH_ACTION) } override fun onResume() { - obtainWorkingListByPage() + obtainProjectListByPage() super.onResume() } @@ -48,12 +74,12 @@ isRefresh = true //刷新之后页码重置 pageIndex = 1 - obtainWorkingListByPage() + obtainProjectListByPage() } workingRefreshLayout.setOnLoadMoreListener { isLoadMore = true pageIndex++ - obtainWorkingListByPage() + obtainProjectListByPage() } workSiteViewModel.workingModel.observe(this, { @@ -83,8 +109,8 @@ }) } - private fun obtainWorkingListByPage() { - workSiteViewModel.obtainProjectListByPage(pageIndex, "1") + private fun obtainProjectListByPage() { + workSiteViewModel.obtainProjectListByPage(keywords, "1", pageIndex) } private val callback = Handler.Callback { @@ -95,7 +121,7 @@ if (dataBeans.size == 0) { emptyView!!.showEmptyPage { pageIndex = 1 - obtainWorkingListByPage() + obtainProjectListByPage() } } else { emptyView!!.hide() @@ -116,4 +142,9 @@ } true } + + override fun onDestroyView() { + broadcastManager.destroy(LocaleConstant.SEARCH_ACTION) + super.onDestroyView() + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/model/BroadcastDataModel.java b/app/src/main/java/com/casic/br/operationsite/model/BroadcastDataModel.java new file mode 100644 index 0000000..d466742 --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/model/BroadcastDataModel.java @@ -0,0 +1,22 @@ +package com.casic.br.operationsite.model; + +public class BroadcastDataModel { + private int currentPage; + private String keywords; + + public int getCurrentPage() { + return currentPage; + } + + public void setCurrentPage(int currentPage) { + this.currentPage = currentPage; + } + + public String getKeywords() { + return keywords; + } + + public void setKeywords(String keywords) { + this.keywords = keywords; + } +} diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt index 09e1bd2..e489c55 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt @@ -35,8 +35,9 @@ * 实施中列表 */ @GET("/site/listPage") - suspend fun obtainWorkingListByPage( + suspend fun obtainProjectListByPage( @Header("token") token: String, + @Query("keywords") keywords: String, @Query("state") state: String, @Query("offset") offset: Int, @Query("limit") limit: Int diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt index cc94632..3ba3359 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt @@ -40,11 +40,11 @@ } /** - * 实施中列表 + * 项目列表 */ - suspend fun obtainWorkingListByPage(page: Int, state: String): String { - return api.obtainWorkingListByPage( - AuthenticationHelper.token!!, state, page, LocaleConstant.PAGE_LIMIT + suspend fun obtainProjectListByPage(keywords: String, state: String, page: Int): String { + return api.obtainProjectListByPage( + AuthenticationHelper.token!!, keywords, state, page, LocaleConstant.PAGE_LIMIT ) } diff --git a/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt b/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt index 2a3606e..00802a0 100644 --- a/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt +++ b/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt @@ -14,6 +14,7 @@ const val DEFAULT_SERVER_CONFIG = "defaultServerConfig" const val ACCOUNT = "account" const val PASSWORD = "password" + const val SEARCH_ACTION = "searchAction" const val PERMISSIONS_CODE = 999 const val PAGE_LIMIT = 20 diff --git a/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt index 5627e2e..18b1b0a 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt @@ -7,16 +7,21 @@ import com.casic.br.operationsite.fragment.CompletedFragment import com.casic.br.operationsite.fragment.NotStartFragment import com.casic.br.operationsite.fragment.WorkingFragment +import com.casic.br.operationsite.model.BroadcastDataModel +import com.casic.br.operationsite.utils.LocaleConstant import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.extensions.toJson +import com.pengxh.kt.lite.utils.BroadcastManager import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import kotlinx.android.synthetic.main.activity_main.* import kotlinx.android.synthetic.main.include_search_title.* class MainActivity : KotlinBaseActivity() { + private val kTag = "MainActivity" private var pageViews: MutableList = ArrayList() init { @@ -32,9 +37,14 @@ ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) searchTextView.setOnClickListener { - if (searchInputView.text.isNullOrBlank()) { - "错误!请重新输入!".show(this) - } + // 需要根据当前所在Page查询数据 + val dataModel = BroadcastDataModel() + dataModel.currentPage = mainViewPager.currentItem + dataModel.keywords = searchInputView.text.toString() + + BroadcastManager + .obtainInstance(this) + .sendBroadcast(LocaleConstant.SEARCH_ACTION, dataModel.toJson()) } } diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt index ce6ef5e..bed87f0 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt @@ -1,5 +1,8 @@ package com.casic.br.operationsite.fragment +import android.content.BroadcastReceiver +import android.content.Context +import android.content.Intent import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration @@ -7,12 +10,18 @@ import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage +import com.casic.br.operationsite.model.BroadcastDataModel import com.casic.br.operationsite.model.WorkingListModel +import com.casic.br.operationsite.utils.LocaleConstant import com.casic.br.operationsite.view.WorkSiteTabActivity import com.casic.br.operationsite.vm.WorkSiteViewModel +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.BroadcastManager +import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.WeakReferenceHandler import kotlinx.android.synthetic.main.fragment_completed.* import kotlinx.android.synthetic.main.include_empty_view.* @@ -22,10 +31,12 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var workingListAdapter: WorkingListAdapter private lateinit var workSiteViewModel: WorkSiteViewModel + private lateinit var broadcastManager: BroadcastManager private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false private var isLoadMore = false + private var keywords = "" override fun initLayoutView(): Int = R.layout.fragment_completed @@ -36,10 +47,24 @@ override fun initData() { weakReferenceHandler = WeakReferenceHandler(callback) workSiteViewModel = ViewModelProvider(this).get(WorkSiteViewModel::class.java) + broadcastManager = BroadcastManager.obtainInstance(requireContext()) + broadcastManager.addAction(object : BroadcastReceiver() { + override fun onReceive(context: Context?, intent: Intent?) { + val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) + val dataModel = Gson().fromJson( + stringExtra, object : TypeToken() {}.type + ) + if (dataModel.currentPage == 2) { + pageIndex = 1 + keywords = dataModel.keywords + obtainProjectListByPage() + } + } + }, LocaleConstant.SEARCH_ACTION) } override fun onResume() { - obtainCompletedListByPage() + obtainProjectListByPage() super.onResume() } @@ -48,12 +73,12 @@ isRefresh = true //刷新之后页码重置 pageIndex = 1 - obtainCompletedListByPage() + obtainProjectListByPage() } completedRefreshLayout.setOnLoadMoreListener { isLoadMore = true pageIndex++ - obtainCompletedListByPage() + obtainProjectListByPage() } workSiteViewModel.workingModel.observe(this, { @@ -78,24 +103,24 @@ dataBeans = dataRows!! } } - weakReferenceHandler.sendEmptyMessage(2022071501) + weakReferenceHandler.sendEmptyMessage(2022071502) } }) } - private fun obtainCompletedListByPage() { - workSiteViewModel.obtainProjectListByPage(pageIndex, "2") + private fun obtainProjectListByPage() { + workSiteViewModel.obtainProjectListByPage(keywords, "2", pageIndex) } private val callback = Handler.Callback { - if (it.what == 2022071501) { + if (it.what == 2022071502) { if (isRefresh || isLoadMore) { workingListAdapter.notifyDataSetChanged() } else { //首次加载数据 if (dataBeans.size == 0) { emptyView!!.showEmptyPage { pageIndex = 1 - obtainCompletedListByPage() + obtainProjectListByPage() } } else { emptyView!!.hide() @@ -103,7 +128,8 @@ completedRecyclerView!!.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - completedRecyclerView!!.layoutManager = LinearLayoutManager(requireContext()) + completedRecyclerView!!.layoutManager = + LinearLayoutManager(requireContext()) completedRecyclerView!!.adapter = workingListAdapter workingListAdapter.setOnItemClickListener(object : WorkingListAdapter.OnItemClickListener { @@ -116,4 +142,9 @@ } true } + + override fun onDestroyView() { + broadcastManager.destroy(LocaleConstant.SEARCH_ACTION) + super.onDestroyView() + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt index 4158561..bf3295f 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt @@ -1,5 +1,8 @@ package com.casic.br.operationsite.fragment +import android.content.BroadcastReceiver +import android.content.Context +import android.content.Intent import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration @@ -7,12 +10,18 @@ import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage +import com.casic.br.operationsite.model.BroadcastDataModel import com.casic.br.operationsite.model.WorkingListModel +import com.casic.br.operationsite.utils.LocaleConstant import com.casic.br.operationsite.view.WorkSiteTabActivity import com.casic.br.operationsite.vm.WorkSiteViewModel +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.BroadcastManager +import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.WeakReferenceHandler import kotlinx.android.synthetic.main.fragment_not_start.* import kotlinx.android.synthetic.main.include_empty_view.* @@ -22,10 +31,12 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var workingListAdapter: WorkingListAdapter private lateinit var workSiteViewModel: WorkSiteViewModel + private lateinit var broadcastManager: BroadcastManager private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false private var isLoadMore = false + private var keywords = "" override fun initLayoutView(): Int = R.layout.fragment_not_start @@ -36,10 +47,24 @@ override fun initData() { weakReferenceHandler = WeakReferenceHandler(callback) workSiteViewModel = ViewModelProvider(this).get(WorkSiteViewModel::class.java) + broadcastManager = BroadcastManager.obtainInstance(requireContext()) + broadcastManager.addAction(object : BroadcastReceiver() { + override fun onReceive(context: Context?, intent: Intent?) { + val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) + val dataModel = Gson().fromJson( + stringExtra, object : TypeToken() {}.type + ) + if (dataModel.currentPage == 0) { + pageIndex = 1 + keywords = dataModel.keywords + obtainProjectListByPage() + } + } + }, LocaleConstant.SEARCH_ACTION) } override fun onResume() { - obtainNotStartListByPage() + obtainProjectListByPage() super.onResume() } @@ -48,12 +73,12 @@ isRefresh = true //刷新之后页码重置 pageIndex = 1 - obtainNotStartListByPage() + obtainProjectListByPage() } notStartRefreshLayout.setOnLoadMoreListener { isLoadMore = true pageIndex++ - obtainNotStartListByPage() + obtainProjectListByPage() } workSiteViewModel.workingModel.observe(this, { @@ -78,24 +103,24 @@ dataBeans = dataRows!! } } - weakReferenceHandler.sendEmptyMessage(2022071502) + weakReferenceHandler.sendEmptyMessage(2022071501) } }) } - private fun obtainNotStartListByPage() { - workSiteViewModel.obtainProjectListByPage(pageIndex, "0") + private fun obtainProjectListByPage() { + workSiteViewModel.obtainProjectListByPage(keywords, "0", pageIndex) } private val callback = Handler.Callback { - if (it.what == 2022071502) { + if (it.what == 2022071501) { if (isRefresh || isLoadMore) { workingListAdapter.notifyDataSetChanged() } else { //首次加载数据 if (dataBeans.size == 0) { emptyView!!.showEmptyPage { pageIndex = 1 - obtainNotStartListByPage() + obtainProjectListByPage() } } else { emptyView!!.hide() @@ -116,4 +141,9 @@ } true } + + override fun onDestroyView() { + broadcastManager.destroy(LocaleConstant.SEARCH_ACTION) + super.onDestroyView() + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt index 709e19a..2117609 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt @@ -1,5 +1,8 @@ package com.casic.br.operationsite.fragment +import android.content.BroadcastReceiver +import android.content.Context +import android.content.Intent import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration @@ -7,25 +10,34 @@ import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage +import com.casic.br.operationsite.model.BroadcastDataModel import com.casic.br.operationsite.model.WorkingListModel +import com.casic.br.operationsite.utils.LocaleConstant import com.casic.br.operationsite.view.WorkSiteTabActivity import com.casic.br.operationsite.vm.WorkSiteViewModel +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.BroadcastManager +import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.WeakReferenceHandler import kotlinx.android.synthetic.main.fragment_working.* import kotlinx.android.synthetic.main.include_empty_view.* + class WorkingFragment : KotlinBaseFragment() { private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var workingListAdapter: WorkingListAdapter private lateinit var workSiteViewModel: WorkSiteViewModel + private lateinit var broadcastManager: BroadcastManager private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false private var isLoadMore = false + private var keywords = "" override fun initLayoutView(): Int = R.layout.fragment_working @@ -36,10 +48,24 @@ override fun initData() { weakReferenceHandler = WeakReferenceHandler(callback) workSiteViewModel = ViewModelProvider(this).get(WorkSiteViewModel::class.java) + broadcastManager = BroadcastManager.obtainInstance(requireContext()) + broadcastManager.addAction(object : BroadcastReceiver() { + override fun onReceive(context: Context?, intent: Intent?) { + val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) + val dataModel = Gson().fromJson( + stringExtra, object : TypeToken() {}.type + ) + if (dataModel.currentPage == 1) { + pageIndex = 1 + keywords = dataModel.keywords + obtainProjectListByPage() + } + } + }, LocaleConstant.SEARCH_ACTION) } override fun onResume() { - obtainWorkingListByPage() + obtainProjectListByPage() super.onResume() } @@ -48,12 +74,12 @@ isRefresh = true //刷新之后页码重置 pageIndex = 1 - obtainWorkingListByPage() + obtainProjectListByPage() } workingRefreshLayout.setOnLoadMoreListener { isLoadMore = true pageIndex++ - obtainWorkingListByPage() + obtainProjectListByPage() } workSiteViewModel.workingModel.observe(this, { @@ -83,8 +109,8 @@ }) } - private fun obtainWorkingListByPage() { - workSiteViewModel.obtainProjectListByPage(pageIndex, "1") + private fun obtainProjectListByPage() { + workSiteViewModel.obtainProjectListByPage(keywords, "1", pageIndex) } private val callback = Handler.Callback { @@ -95,7 +121,7 @@ if (dataBeans.size == 0) { emptyView!!.showEmptyPage { pageIndex = 1 - obtainWorkingListByPage() + obtainProjectListByPage() } } else { emptyView!!.hide() @@ -116,4 +142,9 @@ } true } + + override fun onDestroyView() { + broadcastManager.destroy(LocaleConstant.SEARCH_ACTION) + super.onDestroyView() + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/model/BroadcastDataModel.java b/app/src/main/java/com/casic/br/operationsite/model/BroadcastDataModel.java new file mode 100644 index 0000000..d466742 --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/model/BroadcastDataModel.java @@ -0,0 +1,22 @@ +package com.casic.br.operationsite.model; + +public class BroadcastDataModel { + private int currentPage; + private String keywords; + + public int getCurrentPage() { + return currentPage; + } + + public void setCurrentPage(int currentPage) { + this.currentPage = currentPage; + } + + public String getKeywords() { + return keywords; + } + + public void setKeywords(String keywords) { + this.keywords = keywords; + } +} diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt index 09e1bd2..e489c55 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt @@ -35,8 +35,9 @@ * 实施中列表 */ @GET("/site/listPage") - suspend fun obtainWorkingListByPage( + suspend fun obtainProjectListByPage( @Header("token") token: String, + @Query("keywords") keywords: String, @Query("state") state: String, @Query("offset") offset: Int, @Query("limit") limit: Int diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt index cc94632..3ba3359 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt @@ -40,11 +40,11 @@ } /** - * 实施中列表 + * 项目列表 */ - suspend fun obtainWorkingListByPage(page: Int, state: String): String { - return api.obtainWorkingListByPage( - AuthenticationHelper.token!!, state, page, LocaleConstant.PAGE_LIMIT + suspend fun obtainProjectListByPage(keywords: String, state: String, page: Int): String { + return api.obtainProjectListByPage( + AuthenticationHelper.token!!, keywords, state, page, LocaleConstant.PAGE_LIMIT ) } diff --git a/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt b/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt index 2a3606e..00802a0 100644 --- a/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt +++ b/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt @@ -14,6 +14,7 @@ const val DEFAULT_SERVER_CONFIG = "defaultServerConfig" const val ACCOUNT = "account" const val PASSWORD = "password" + const val SEARCH_ACTION = "searchAction" const val PERMISSIONS_CODE = 999 const val PAGE_LIMIT = 20 diff --git a/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt index 5627e2e..18b1b0a 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt @@ -7,16 +7,21 @@ import com.casic.br.operationsite.fragment.CompletedFragment import com.casic.br.operationsite.fragment.NotStartFragment import com.casic.br.operationsite.fragment.WorkingFragment +import com.casic.br.operationsite.model.BroadcastDataModel +import com.casic.br.operationsite.utils.LocaleConstant import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.extensions.toJson +import com.pengxh.kt.lite.utils.BroadcastManager import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import kotlinx.android.synthetic.main.activity_main.* import kotlinx.android.synthetic.main.include_search_title.* class MainActivity : KotlinBaseActivity() { + private val kTag = "MainActivity" private var pageViews: MutableList = ArrayList() init { @@ -32,9 +37,14 @@ ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) searchTextView.setOnClickListener { - if (searchInputView.text.isNullOrBlank()) { - "错误!请重新输入!".show(this) - } + // 需要根据当前所在Page查询数据 + val dataModel = BroadcastDataModel() + dataModel.currentPage = mainViewPager.currentItem + dataModel.keywords = searchInputView.text.toString() + + BroadcastManager + .obtainInstance(this) + .sendBroadcast(LocaleConstant.SEARCH_ACTION, dataModel.toJson()) } } diff --git a/app/src/main/java/com/casic/br/operationsite/vm/WorkSiteViewModel.kt b/app/src/main/java/com/casic/br/operationsite/vm/WorkSiteViewModel.kt index f8bb50e..7ec5243 100644 --- a/app/src/main/java/com/casic/br/operationsite/vm/WorkSiteViewModel.kt +++ b/app/src/main/java/com/casic/br/operationsite/vm/WorkSiteViewModel.kt @@ -20,8 +20,8 @@ private val gson = Gson() val workingModel = MutableLiveData() - fun obtainProjectListByPage(page: Int, state: String) = launch({ - val response = RetrofitServiceManager.obtainWorkingListByPage(page, state) + fun obtainProjectListByPage(keywords: String, state: String, page: Int) = launch({ + val response = RetrofitServiceManager.obtainProjectListByPage(keywords, state, page) val responseCode = response.separateResponseCode() if (responseCode == 200) { workingModel.value = gson.fromJson(