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 eb90311..7a6068d 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 @@ -6,7 +6,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration -import androidx.recyclerview.widget.LinearLayoutManager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage @@ -128,8 +127,6 @@ completedRecyclerView!!.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - completedRecyclerView!!.layoutManager = - LinearLayoutManager(requireContext()) completedRecyclerView!!.adapter = workingListAdapter workingListAdapter.setOnItemClickListener(object : WorkingListAdapter.OnItemClickListener { 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 eb90311..7a6068d 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 @@ -6,7 +6,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration -import androidx.recyclerview.widget.LinearLayoutManager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage @@ -128,8 +127,6 @@ completedRecyclerView!!.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - completedRecyclerView!!.layoutManager = - LinearLayoutManager(requireContext()) completedRecyclerView!!.adapter = workingListAdapter workingListAdapter.setOnItemClickListener(object : WorkingListAdapter.OnItemClickListener { 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 027b98e..0d8b51a 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 @@ -6,7 +6,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration -import androidx.recyclerview.widget.LinearLayoutManager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage @@ -128,7 +127,6 @@ notStartRecyclerView!!.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - notStartRecyclerView!!.layoutManager = LinearLayoutManager(requireContext()) notStartRecyclerView!!.adapter = workingListAdapter workingListAdapter.setOnItemClickListener(object : WorkingListAdapter.OnItemClickListener { 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 eb90311..7a6068d 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 @@ -6,7 +6,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration -import androidx.recyclerview.widget.LinearLayoutManager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage @@ -128,8 +127,6 @@ completedRecyclerView!!.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - completedRecyclerView!!.layoutManager = - LinearLayoutManager(requireContext()) completedRecyclerView!!.adapter = workingListAdapter workingListAdapter.setOnItemClickListener(object : WorkingListAdapter.OnItemClickListener { 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 027b98e..0d8b51a 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 @@ -6,7 +6,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration -import androidx.recyclerview.widget.LinearLayoutManager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage @@ -128,7 +127,6 @@ notStartRecyclerView!!.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - notStartRecyclerView!!.layoutManager = LinearLayoutManager(requireContext()) notStartRecyclerView!!.adapter = workingListAdapter workingListAdapter.setOnItemClickListener(object : WorkingListAdapter.OnItemClickListener { 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 6464946..791dfd4 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 @@ -6,7 +6,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration -import androidx.recyclerview.widget.LinearLayoutManager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage @@ -129,7 +128,6 @@ workingRecyclerView!!.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - workingRecyclerView!!.layoutManager = LinearLayoutManager(requireContext()) workingRecyclerView!!.adapter = workingListAdapter workingListAdapter.setOnItemClickListener(object : WorkingListAdapter.OnItemClickListener { 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 eb90311..7a6068d 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 @@ -6,7 +6,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration -import androidx.recyclerview.widget.LinearLayoutManager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage @@ -128,8 +127,6 @@ completedRecyclerView!!.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - completedRecyclerView!!.layoutManager = - LinearLayoutManager(requireContext()) completedRecyclerView!!.adapter = workingListAdapter workingListAdapter.setOnItemClickListener(object : WorkingListAdapter.OnItemClickListener { 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 027b98e..0d8b51a 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 @@ -6,7 +6,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration -import androidx.recyclerview.widget.LinearLayoutManager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage @@ -128,7 +127,6 @@ notStartRecyclerView!!.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - notStartRecyclerView!!.layoutManager = LinearLayoutManager(requireContext()) notStartRecyclerView!!.adapter = workingListAdapter workingListAdapter.setOnItemClickListener(object : WorkingListAdapter.OnItemClickListener { 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 6464946..791dfd4 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 @@ -6,7 +6,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration -import androidx.recyclerview.widget.LinearLayoutManager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage @@ -129,7 +128,6 @@ workingRecyclerView!!.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - workingRecyclerView!!.layoutManager = LinearLayoutManager(requireContext()) workingRecyclerView!!.adapter = workingListAdapter workingListAdapter.setOnItemClickListener(object : WorkingListAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/br/operationsite/utils/DialogManager.kt b/app/src/main/java/com/casic/br/operationsite/utils/DialogManager.kt deleted file mode 100644 index a5f3660..0000000 --- a/app/src/main/java/com/casic/br/operationsite/utils/DialogManager.kt +++ /dev/null @@ -1,37 +0,0 @@ -package com.casic.br.operationsite.utils; - -import android.app.Activity -import android.view.WindowManager -import com.pengxh.kt.lite.base.BaseSingleton -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog - -class DialogManager private constructor(private val activity: Activity) { - - private lateinit var loadingDialog: QMUITipDialog - - companion object : BaseSingleton() { - override val creator: (Activity) -> DialogManager - get() = ::DialogManager - } - - fun showLoadingDialog(message: String) { - loadingDialog = QMUITipDialog - .Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create() - if (!activity.isDestroyed) { - try { - loadingDialog.show() - } catch (e: WindowManager.BadTokenException) { - e.printStackTrace() - } - } - } - - fun dismissLoadingDialog() { - if (loadingDialog.isShowing) { - loadingDialog.dismiss() - } - } -} 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 eb90311..7a6068d 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 @@ -6,7 +6,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration -import androidx.recyclerview.widget.LinearLayoutManager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage @@ -128,8 +127,6 @@ completedRecyclerView!!.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - completedRecyclerView!!.layoutManager = - LinearLayoutManager(requireContext()) completedRecyclerView!!.adapter = workingListAdapter workingListAdapter.setOnItemClickListener(object : WorkingListAdapter.OnItemClickListener { 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 027b98e..0d8b51a 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 @@ -6,7 +6,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration -import androidx.recyclerview.widget.LinearLayoutManager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage @@ -128,7 +127,6 @@ notStartRecyclerView!!.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - notStartRecyclerView!!.layoutManager = LinearLayoutManager(requireContext()) notStartRecyclerView!!.adapter = workingListAdapter workingListAdapter.setOnItemClickListener(object : WorkingListAdapter.OnItemClickListener { 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 6464946..791dfd4 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 @@ -6,7 +6,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration -import androidx.recyclerview.widget.LinearLayoutManager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage @@ -129,7 +128,6 @@ workingRecyclerView!!.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - workingRecyclerView!!.layoutManager = LinearLayoutManager(requireContext()) workingRecyclerView!!.adapter = workingListAdapter workingListAdapter.setOnItemClickListener(object : WorkingListAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/br/operationsite/utils/DialogManager.kt b/app/src/main/java/com/casic/br/operationsite/utils/DialogManager.kt deleted file mode 100644 index a5f3660..0000000 --- a/app/src/main/java/com/casic/br/operationsite/utils/DialogManager.kt +++ /dev/null @@ -1,37 +0,0 @@ -package com.casic.br.operationsite.utils; - -import android.app.Activity -import android.view.WindowManager -import com.pengxh.kt.lite.base.BaseSingleton -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog - -class DialogManager private constructor(private val activity: Activity) { - - private lateinit var loadingDialog: QMUITipDialog - - companion object : BaseSingleton() { - override val creator: (Activity) -> DialogManager - get() = ::DialogManager - } - - fun showLoadingDialog(message: String) { - loadingDialog = QMUITipDialog - .Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create() - if (!activity.isDestroyed) { - try { - loadingDialog.show() - } catch (e: WindowManager.BadTokenException) { - e.printStackTrace() - } - } - } - - fun dismissLoadingDialog() { - if (loadingDialog.isShowing) { - loadingDialog.dismiss() - } - } -} diff --git a/app/src/main/java/com/casic/br/operationsite/utils/LoadingDialogHub.kt b/app/src/main/java/com/casic/br/operationsite/utils/LoadingDialogHub.kt new file mode 100644 index 0000000..ba725c6 --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/utils/LoadingDialogHub.kt @@ -0,0 +1,31 @@ +package com.casic.br.operationsite.utils + +import android.app.Activity +import android.view.WindowManager +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog + +object LoadingDialogHub { + + private lateinit var loadingDialog: QMUITipDialog + + fun show(activity: Activity, message: String) { + loadingDialog = QMUITipDialog + .Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create() + if (!activity.isDestroyed) { + try { + loadingDialog.show() + } catch (e: WindowManager.BadTokenException) { + e.printStackTrace() + } + } + } + + fun dismiss() { + if (loadingDialog.isShowing) { + loadingDialog.dismiss() + } + } +} \ 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 eb90311..7a6068d 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 @@ -6,7 +6,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration -import androidx.recyclerview.widget.LinearLayoutManager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage @@ -128,8 +127,6 @@ completedRecyclerView!!.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - completedRecyclerView!!.layoutManager = - LinearLayoutManager(requireContext()) completedRecyclerView!!.adapter = workingListAdapter workingListAdapter.setOnItemClickListener(object : WorkingListAdapter.OnItemClickListener { 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 027b98e..0d8b51a 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 @@ -6,7 +6,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration -import androidx.recyclerview.widget.LinearLayoutManager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage @@ -128,7 +127,6 @@ notStartRecyclerView!!.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - notStartRecyclerView!!.layoutManager = LinearLayoutManager(requireContext()) notStartRecyclerView!!.adapter = workingListAdapter workingListAdapter.setOnItemClickListener(object : WorkingListAdapter.OnItemClickListener { 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 6464946..791dfd4 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 @@ -6,7 +6,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration -import androidx.recyclerview.widget.LinearLayoutManager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage @@ -129,7 +128,6 @@ workingRecyclerView!!.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - workingRecyclerView!!.layoutManager = LinearLayoutManager(requireContext()) workingRecyclerView!!.adapter = workingListAdapter workingListAdapter.setOnItemClickListener(object : WorkingListAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/br/operationsite/utils/DialogManager.kt b/app/src/main/java/com/casic/br/operationsite/utils/DialogManager.kt deleted file mode 100644 index a5f3660..0000000 --- a/app/src/main/java/com/casic/br/operationsite/utils/DialogManager.kt +++ /dev/null @@ -1,37 +0,0 @@ -package com.casic.br.operationsite.utils; - -import android.app.Activity -import android.view.WindowManager -import com.pengxh.kt.lite.base.BaseSingleton -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog - -class DialogManager private constructor(private val activity: Activity) { - - private lateinit var loadingDialog: QMUITipDialog - - companion object : BaseSingleton() { - override val creator: (Activity) -> DialogManager - get() = ::DialogManager - } - - fun showLoadingDialog(message: String) { - loadingDialog = QMUITipDialog - .Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create() - if (!activity.isDestroyed) { - try { - loadingDialog.show() - } catch (e: WindowManager.BadTokenException) { - e.printStackTrace() - } - } - } - - fun dismissLoadingDialog() { - if (loadingDialog.isShowing) { - loadingDialog.dismiss() - } - } -} diff --git a/app/src/main/java/com/casic/br/operationsite/utils/LoadingDialogHub.kt b/app/src/main/java/com/casic/br/operationsite/utils/LoadingDialogHub.kt new file mode 100644 index 0000000..ba725c6 --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/utils/LoadingDialogHub.kt @@ -0,0 +1,31 @@ +package com.casic.br.operationsite.utils + +import android.app.Activity +import android.view.WindowManager +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog + +object LoadingDialogHub { + + private lateinit var loadingDialog: QMUITipDialog + + fun show(activity: Activity, message: String) { + loadingDialog = QMUITipDialog + .Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create() + if (!activity.isDestroyed) { + try { + loadingDialog.show() + } catch (e: WindowManager.BadTokenException) { + e.printStackTrace() + } + } + } + + fun dismiss() { + if (loadingDialog.isShowing) { + loadingDialog.dismiss() + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt index d34aaa9..b597afa 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt @@ -14,7 +14,7 @@ import com.bumptech.glide.request.RequestOptions import com.casic.br.operationsite.R import com.casic.br.operationsite.extensions.combineImagePath -import com.casic.br.operationsite.utils.DialogManager +import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.vm.AlarmViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -28,9 +28,9 @@ class AlarmDetailActivity : KotlinBaseActivity() { - private lateinit var dialogManager: DialogManager private lateinit var aMap: AMap private lateinit var alarmViewModel: AlarmViewModel + private lateinit var id: String override fun initLayoutView(): Int = R.layout.activity_alarm_detail @@ -43,8 +43,7 @@ } override fun initData() { - val id = intent.getStringExtra(Constant.INTENT_PARAM)!! - dialogManager = DialogManager.obtainInstance(this) + this.id = intent.getStringExtra(Constant.INTENT_PARAM)!! aMap = mapView.map aMap.mapType = AMap.MAP_TYPE_NORMAL @@ -58,6 +57,17 @@ * 数据初始化 * */ alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java) + + //状态监听 + alarmViewModel.loadState.observe(this, { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) + } + + override fun initEvent() { alarmViewModel.obtainAlarmDetail(id) alarmViewModel.detailModel.observe(this, { if (it.code == 200) { @@ -91,17 +101,6 @@ descriptionView.text = detailData.alarmDescription } }) - - alarmViewModel.loadState.observe(this, { - when (it) { - LoadState.Loading -> dialogManager.showLoadingDialog("数据加载中,请稍后...") - else -> dialogManager.dismissLoadingDialog() - } - }) - } - - override fun initEvent() { - } /** 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 eb90311..7a6068d 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 @@ -6,7 +6,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration -import androidx.recyclerview.widget.LinearLayoutManager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage @@ -128,8 +127,6 @@ completedRecyclerView!!.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - completedRecyclerView!!.layoutManager = - LinearLayoutManager(requireContext()) completedRecyclerView!!.adapter = workingListAdapter workingListAdapter.setOnItemClickListener(object : WorkingListAdapter.OnItemClickListener { 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 027b98e..0d8b51a 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 @@ -6,7 +6,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration -import androidx.recyclerview.widget.LinearLayoutManager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage @@ -128,7 +127,6 @@ notStartRecyclerView!!.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - notStartRecyclerView!!.layoutManager = LinearLayoutManager(requireContext()) notStartRecyclerView!!.adapter = workingListAdapter workingListAdapter.setOnItemClickListener(object : WorkingListAdapter.OnItemClickListener { 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 6464946..791dfd4 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 @@ -6,7 +6,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration -import androidx.recyclerview.widget.LinearLayoutManager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage @@ -129,7 +128,6 @@ workingRecyclerView!!.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - workingRecyclerView!!.layoutManager = LinearLayoutManager(requireContext()) workingRecyclerView!!.adapter = workingListAdapter workingListAdapter.setOnItemClickListener(object : WorkingListAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/br/operationsite/utils/DialogManager.kt b/app/src/main/java/com/casic/br/operationsite/utils/DialogManager.kt deleted file mode 100644 index a5f3660..0000000 --- a/app/src/main/java/com/casic/br/operationsite/utils/DialogManager.kt +++ /dev/null @@ -1,37 +0,0 @@ -package com.casic.br.operationsite.utils; - -import android.app.Activity -import android.view.WindowManager -import com.pengxh.kt.lite.base.BaseSingleton -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog - -class DialogManager private constructor(private val activity: Activity) { - - private lateinit var loadingDialog: QMUITipDialog - - companion object : BaseSingleton() { - override val creator: (Activity) -> DialogManager - get() = ::DialogManager - } - - fun showLoadingDialog(message: String) { - loadingDialog = QMUITipDialog - .Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create() - if (!activity.isDestroyed) { - try { - loadingDialog.show() - } catch (e: WindowManager.BadTokenException) { - e.printStackTrace() - } - } - } - - fun dismissLoadingDialog() { - if (loadingDialog.isShowing) { - loadingDialog.dismiss() - } - } -} diff --git a/app/src/main/java/com/casic/br/operationsite/utils/LoadingDialogHub.kt b/app/src/main/java/com/casic/br/operationsite/utils/LoadingDialogHub.kt new file mode 100644 index 0000000..ba725c6 --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/utils/LoadingDialogHub.kt @@ -0,0 +1,31 @@ +package com.casic.br.operationsite.utils + +import android.app.Activity +import android.view.WindowManager +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog + +object LoadingDialogHub { + + private lateinit var loadingDialog: QMUITipDialog + + fun show(activity: Activity, message: String) { + loadingDialog = QMUITipDialog + .Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create() + if (!activity.isDestroyed) { + try { + loadingDialog.show() + } catch (e: WindowManager.BadTokenException) { + e.printStackTrace() + } + } + } + + fun dismiss() { + if (loadingDialog.isShowing) { + loadingDialog.dismiss() + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt index d34aaa9..b597afa 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt @@ -14,7 +14,7 @@ import com.bumptech.glide.request.RequestOptions import com.casic.br.operationsite.R import com.casic.br.operationsite.extensions.combineImagePath -import com.casic.br.operationsite.utils.DialogManager +import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.vm.AlarmViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -28,9 +28,9 @@ class AlarmDetailActivity : KotlinBaseActivity() { - private lateinit var dialogManager: DialogManager private lateinit var aMap: AMap private lateinit var alarmViewModel: AlarmViewModel + private lateinit var id: String override fun initLayoutView(): Int = R.layout.activity_alarm_detail @@ -43,8 +43,7 @@ } override fun initData() { - val id = intent.getStringExtra(Constant.INTENT_PARAM)!! - dialogManager = DialogManager.obtainInstance(this) + this.id = intent.getStringExtra(Constant.INTENT_PARAM)!! aMap = mapView.map aMap.mapType = AMap.MAP_TYPE_NORMAL @@ -58,6 +57,17 @@ * 数据初始化 * */ alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java) + + //状态监听 + alarmViewModel.loadState.observe(this, { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) + } + + override fun initEvent() { alarmViewModel.obtainAlarmDetail(id) alarmViewModel.detailModel.observe(this, { if (it.code == 200) { @@ -91,17 +101,6 @@ descriptionView.text = detailData.alarmDescription } }) - - alarmViewModel.loadState.observe(this, { - when (it) { - LoadState.Loading -> dialogManager.showLoadingDialog("数据加载中,请稍后...") - else -> dialogManager.dismissLoadingDialog() - } - }) - } - - override fun initEvent() { - } /** diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt index ea961a9..a8c460d 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt @@ -9,7 +9,7 @@ import com.casic.br.operationsite.adapter.AlarmListAdapter import com.casic.br.operationsite.extensions.showEmptyPage import com.casic.br.operationsite.model.AlarmListModel -import com.casic.br.operationsite.utils.DialogManager +import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.vm.AlarmViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -25,7 +25,6 @@ class AlarmListActivity : KotlinBaseActivity() { - private lateinit var dialogManager: DialogManager private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var alarmListAdapter: AlarmListAdapter private lateinit var alarmViewModel: AlarmViewModel @@ -50,9 +49,18 @@ } override fun initData() { - dialogManager = DialogManager.obtainInstance(this) weakReferenceHandler = WeakReferenceHandler(callback) alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java) + + //状态监听 + alarmViewModel.loadState.observe(this, { + if (!isLoadMore && !isRefresh) { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + } + }) } override fun onResume() { @@ -98,19 +106,6 @@ weakReferenceHandler.sendEmptyMessage(2022071201) } }) - - alarmViewModel.loadState.observe(this, { - if (!isLoadMore && !isRefresh) { - when (it) { - is LoadState.Loading -> { - dialogManager.showLoadingDialog("数据加载中,请稍后") - } - else -> { - dialogManager.dismissLoadingDialog() - } - } - } - }) } private fun obtainAlarmListByPage() { 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 eb90311..7a6068d 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 @@ -6,7 +6,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration -import androidx.recyclerview.widget.LinearLayoutManager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage @@ -128,8 +127,6 @@ completedRecyclerView!!.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - completedRecyclerView!!.layoutManager = - LinearLayoutManager(requireContext()) completedRecyclerView!!.adapter = workingListAdapter workingListAdapter.setOnItemClickListener(object : WorkingListAdapter.OnItemClickListener { 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 027b98e..0d8b51a 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 @@ -6,7 +6,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration -import androidx.recyclerview.widget.LinearLayoutManager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage @@ -128,7 +127,6 @@ notStartRecyclerView!!.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - notStartRecyclerView!!.layoutManager = LinearLayoutManager(requireContext()) notStartRecyclerView!!.adapter = workingListAdapter workingListAdapter.setOnItemClickListener(object : WorkingListAdapter.OnItemClickListener { 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 6464946..791dfd4 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 @@ -6,7 +6,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration -import androidx.recyclerview.widget.LinearLayoutManager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage @@ -129,7 +128,6 @@ workingRecyclerView!!.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - workingRecyclerView!!.layoutManager = LinearLayoutManager(requireContext()) workingRecyclerView!!.adapter = workingListAdapter workingListAdapter.setOnItemClickListener(object : WorkingListAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/br/operationsite/utils/DialogManager.kt b/app/src/main/java/com/casic/br/operationsite/utils/DialogManager.kt deleted file mode 100644 index a5f3660..0000000 --- a/app/src/main/java/com/casic/br/operationsite/utils/DialogManager.kt +++ /dev/null @@ -1,37 +0,0 @@ -package com.casic.br.operationsite.utils; - -import android.app.Activity -import android.view.WindowManager -import com.pengxh.kt.lite.base.BaseSingleton -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog - -class DialogManager private constructor(private val activity: Activity) { - - private lateinit var loadingDialog: QMUITipDialog - - companion object : BaseSingleton() { - override val creator: (Activity) -> DialogManager - get() = ::DialogManager - } - - fun showLoadingDialog(message: String) { - loadingDialog = QMUITipDialog - .Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create() - if (!activity.isDestroyed) { - try { - loadingDialog.show() - } catch (e: WindowManager.BadTokenException) { - e.printStackTrace() - } - } - } - - fun dismissLoadingDialog() { - if (loadingDialog.isShowing) { - loadingDialog.dismiss() - } - } -} diff --git a/app/src/main/java/com/casic/br/operationsite/utils/LoadingDialogHub.kt b/app/src/main/java/com/casic/br/operationsite/utils/LoadingDialogHub.kt new file mode 100644 index 0000000..ba725c6 --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/utils/LoadingDialogHub.kt @@ -0,0 +1,31 @@ +package com.casic.br.operationsite.utils + +import android.app.Activity +import android.view.WindowManager +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog + +object LoadingDialogHub { + + private lateinit var loadingDialog: QMUITipDialog + + fun show(activity: Activity, message: String) { + loadingDialog = QMUITipDialog + .Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create() + if (!activity.isDestroyed) { + try { + loadingDialog.show() + } catch (e: WindowManager.BadTokenException) { + e.printStackTrace() + } + } + } + + fun dismiss() { + if (loadingDialog.isShowing) { + loadingDialog.dismiss() + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt index d34aaa9..b597afa 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt @@ -14,7 +14,7 @@ import com.bumptech.glide.request.RequestOptions import com.casic.br.operationsite.R import com.casic.br.operationsite.extensions.combineImagePath -import com.casic.br.operationsite.utils.DialogManager +import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.vm.AlarmViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -28,9 +28,9 @@ class AlarmDetailActivity : KotlinBaseActivity() { - private lateinit var dialogManager: DialogManager private lateinit var aMap: AMap private lateinit var alarmViewModel: AlarmViewModel + private lateinit var id: String override fun initLayoutView(): Int = R.layout.activity_alarm_detail @@ -43,8 +43,7 @@ } override fun initData() { - val id = intent.getStringExtra(Constant.INTENT_PARAM)!! - dialogManager = DialogManager.obtainInstance(this) + this.id = intent.getStringExtra(Constant.INTENT_PARAM)!! aMap = mapView.map aMap.mapType = AMap.MAP_TYPE_NORMAL @@ -58,6 +57,17 @@ * 数据初始化 * */ alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java) + + //状态监听 + alarmViewModel.loadState.observe(this, { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) + } + + override fun initEvent() { alarmViewModel.obtainAlarmDetail(id) alarmViewModel.detailModel.observe(this, { if (it.code == 200) { @@ -91,17 +101,6 @@ descriptionView.text = detailData.alarmDescription } }) - - alarmViewModel.loadState.observe(this, { - when (it) { - LoadState.Loading -> dialogManager.showLoadingDialog("数据加载中,请稍后...") - else -> dialogManager.dismissLoadingDialog() - } - }) - } - - override fun initEvent() { - } /** diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt index ea961a9..a8c460d 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt @@ -9,7 +9,7 @@ import com.casic.br.operationsite.adapter.AlarmListAdapter import com.casic.br.operationsite.extensions.showEmptyPage import com.casic.br.operationsite.model.AlarmListModel -import com.casic.br.operationsite.utils.DialogManager +import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.vm.AlarmViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -25,7 +25,6 @@ class AlarmListActivity : KotlinBaseActivity() { - private lateinit var dialogManager: DialogManager private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var alarmListAdapter: AlarmListAdapter private lateinit var alarmViewModel: AlarmViewModel @@ -50,9 +49,18 @@ } override fun initData() { - dialogManager = DialogManager.obtainInstance(this) weakReferenceHandler = WeakReferenceHandler(callback) alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java) + + //状态监听 + alarmViewModel.loadState.observe(this, { + if (!isLoadMore && !isRefresh) { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + } + }) } override fun onResume() { @@ -98,19 +106,6 @@ weakReferenceHandler.sendEmptyMessage(2022071201) } }) - - alarmViewModel.loadState.observe(this, { - if (!isLoadMore && !isRefresh) { - when (it) { - is LoadState.Loading -> { - dialogManager.showLoadingDialog("数据加载中,请稍后") - } - else -> { - dialogManager.dismissLoadingDialog() - } - } - } - }) } private fun obtainAlarmListByPage() { diff --git a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt index f30c048..5026c93 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt @@ -12,7 +12,7 @@ import com.casic.br.operationsite.extensions.combineImagePath import com.casic.br.operationsite.extensions.compressImage import com.casic.br.operationsite.extensions.reformat -import com.casic.br.operationsite.utils.DialogManager +import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.utils.LocaleConstant import com.casic.br.operationsite.vm.ApplyViewModel import com.casic.br.operationsite.vm.UploadFileViewModel @@ -36,7 +36,6 @@ class ApplyEnterActivity : KotlinBaseActivity() { private val kTag = "ApplyEnterActivity" - private lateinit var dialogManager: DialogManager private lateinit var imageAdapter: EditableImageAdapter private lateinit var uploadFileViewModel: UploadFileViewModel private lateinit var applyViewModel: ApplyViewModel @@ -55,13 +54,27 @@ } override fun initData() { - dialogManager = DialogManager.obtainInstance(this) uploadFileViewModel = ViewModelProvider(this).get(UploadFileViewModel::class.java) applyViewModel = ViewModelProvider(this).get(ApplyViewModel::class.java) imageAdapter = EditableImageAdapter(this, 1, 13f) addImageRecyclerView.layoutManager = GridLayoutManager(this, 3) addImageRecyclerView.adapter = imageAdapter + + //状态监听 + uploadFileViewModel.loadState.observe(this, { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "图片上传中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) + + applyViewModel.loadState.observe(this, { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "申请中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) } /** @@ -146,9 +159,6 @@ imageAdapter.setupImage(realPaths) } }) - uploadFileViewModel.loadState.observe(this, { - dialogManager.dismissLoadingDialog() - }) confirmApplyButton.setOnClickListener { if (workerNameView.text.isNullOrBlank()) { @@ -187,17 +197,6 @@ finish() } }) - - applyViewModel.loadState.observe(this, { - when (it) { - LoadState.Loading -> { - dialogManager.showLoadingDialog("申请中,请稍后") - } - else -> { - dialogManager.dismissLoadingDialog() - } - } - }) } } 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 eb90311..7a6068d 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 @@ -6,7 +6,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration -import androidx.recyclerview.widget.LinearLayoutManager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage @@ -128,8 +127,6 @@ completedRecyclerView!!.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - completedRecyclerView!!.layoutManager = - LinearLayoutManager(requireContext()) completedRecyclerView!!.adapter = workingListAdapter workingListAdapter.setOnItemClickListener(object : WorkingListAdapter.OnItemClickListener { 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 027b98e..0d8b51a 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 @@ -6,7 +6,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration -import androidx.recyclerview.widget.LinearLayoutManager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage @@ -128,7 +127,6 @@ notStartRecyclerView!!.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - notStartRecyclerView!!.layoutManager = LinearLayoutManager(requireContext()) notStartRecyclerView!!.adapter = workingListAdapter workingListAdapter.setOnItemClickListener(object : WorkingListAdapter.OnItemClickListener { 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 6464946..791dfd4 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 @@ -6,7 +6,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration -import androidx.recyclerview.widget.LinearLayoutManager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage @@ -129,7 +128,6 @@ workingRecyclerView!!.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - workingRecyclerView!!.layoutManager = LinearLayoutManager(requireContext()) workingRecyclerView!!.adapter = workingListAdapter workingListAdapter.setOnItemClickListener(object : WorkingListAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/br/operationsite/utils/DialogManager.kt b/app/src/main/java/com/casic/br/operationsite/utils/DialogManager.kt deleted file mode 100644 index a5f3660..0000000 --- a/app/src/main/java/com/casic/br/operationsite/utils/DialogManager.kt +++ /dev/null @@ -1,37 +0,0 @@ -package com.casic.br.operationsite.utils; - -import android.app.Activity -import android.view.WindowManager -import com.pengxh.kt.lite.base.BaseSingleton -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog - -class DialogManager private constructor(private val activity: Activity) { - - private lateinit var loadingDialog: QMUITipDialog - - companion object : BaseSingleton() { - override val creator: (Activity) -> DialogManager - get() = ::DialogManager - } - - fun showLoadingDialog(message: String) { - loadingDialog = QMUITipDialog - .Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create() - if (!activity.isDestroyed) { - try { - loadingDialog.show() - } catch (e: WindowManager.BadTokenException) { - e.printStackTrace() - } - } - } - - fun dismissLoadingDialog() { - if (loadingDialog.isShowing) { - loadingDialog.dismiss() - } - } -} diff --git a/app/src/main/java/com/casic/br/operationsite/utils/LoadingDialogHub.kt b/app/src/main/java/com/casic/br/operationsite/utils/LoadingDialogHub.kt new file mode 100644 index 0000000..ba725c6 --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/utils/LoadingDialogHub.kt @@ -0,0 +1,31 @@ +package com.casic.br.operationsite.utils + +import android.app.Activity +import android.view.WindowManager +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog + +object LoadingDialogHub { + + private lateinit var loadingDialog: QMUITipDialog + + fun show(activity: Activity, message: String) { + loadingDialog = QMUITipDialog + .Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create() + if (!activity.isDestroyed) { + try { + loadingDialog.show() + } catch (e: WindowManager.BadTokenException) { + e.printStackTrace() + } + } + } + + fun dismiss() { + if (loadingDialog.isShowing) { + loadingDialog.dismiss() + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt index d34aaa9..b597afa 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt @@ -14,7 +14,7 @@ import com.bumptech.glide.request.RequestOptions import com.casic.br.operationsite.R import com.casic.br.operationsite.extensions.combineImagePath -import com.casic.br.operationsite.utils.DialogManager +import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.vm.AlarmViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -28,9 +28,9 @@ class AlarmDetailActivity : KotlinBaseActivity() { - private lateinit var dialogManager: DialogManager private lateinit var aMap: AMap private lateinit var alarmViewModel: AlarmViewModel + private lateinit var id: String override fun initLayoutView(): Int = R.layout.activity_alarm_detail @@ -43,8 +43,7 @@ } override fun initData() { - val id = intent.getStringExtra(Constant.INTENT_PARAM)!! - dialogManager = DialogManager.obtainInstance(this) + this.id = intent.getStringExtra(Constant.INTENT_PARAM)!! aMap = mapView.map aMap.mapType = AMap.MAP_TYPE_NORMAL @@ -58,6 +57,17 @@ * 数据初始化 * */ alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java) + + //状态监听 + alarmViewModel.loadState.observe(this, { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) + } + + override fun initEvent() { alarmViewModel.obtainAlarmDetail(id) alarmViewModel.detailModel.observe(this, { if (it.code == 200) { @@ -91,17 +101,6 @@ descriptionView.text = detailData.alarmDescription } }) - - alarmViewModel.loadState.observe(this, { - when (it) { - LoadState.Loading -> dialogManager.showLoadingDialog("数据加载中,请稍后...") - else -> dialogManager.dismissLoadingDialog() - } - }) - } - - override fun initEvent() { - } /** diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt index ea961a9..a8c460d 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt @@ -9,7 +9,7 @@ import com.casic.br.operationsite.adapter.AlarmListAdapter import com.casic.br.operationsite.extensions.showEmptyPage import com.casic.br.operationsite.model.AlarmListModel -import com.casic.br.operationsite.utils.DialogManager +import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.vm.AlarmViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -25,7 +25,6 @@ class AlarmListActivity : KotlinBaseActivity() { - private lateinit var dialogManager: DialogManager private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var alarmListAdapter: AlarmListAdapter private lateinit var alarmViewModel: AlarmViewModel @@ -50,9 +49,18 @@ } override fun initData() { - dialogManager = DialogManager.obtainInstance(this) weakReferenceHandler = WeakReferenceHandler(callback) alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java) + + //状态监听 + alarmViewModel.loadState.observe(this, { + if (!isLoadMore && !isRefresh) { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + } + }) } override fun onResume() { @@ -98,19 +106,6 @@ weakReferenceHandler.sendEmptyMessage(2022071201) } }) - - alarmViewModel.loadState.observe(this, { - if (!isLoadMore && !isRefresh) { - when (it) { - is LoadState.Loading -> { - dialogManager.showLoadingDialog("数据加载中,请稍后") - } - else -> { - dialogManager.dismissLoadingDialog() - } - } - } - }) } private fun obtainAlarmListByPage() { diff --git a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt index f30c048..5026c93 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt @@ -12,7 +12,7 @@ import com.casic.br.operationsite.extensions.combineImagePath import com.casic.br.operationsite.extensions.compressImage import com.casic.br.operationsite.extensions.reformat -import com.casic.br.operationsite.utils.DialogManager +import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.utils.LocaleConstant import com.casic.br.operationsite.vm.ApplyViewModel import com.casic.br.operationsite.vm.UploadFileViewModel @@ -36,7 +36,6 @@ class ApplyEnterActivity : KotlinBaseActivity() { private val kTag = "ApplyEnterActivity" - private lateinit var dialogManager: DialogManager private lateinit var imageAdapter: EditableImageAdapter private lateinit var uploadFileViewModel: UploadFileViewModel private lateinit var applyViewModel: ApplyViewModel @@ -55,13 +54,27 @@ } override fun initData() { - dialogManager = DialogManager.obtainInstance(this) uploadFileViewModel = ViewModelProvider(this).get(UploadFileViewModel::class.java) applyViewModel = ViewModelProvider(this).get(ApplyViewModel::class.java) imageAdapter = EditableImageAdapter(this, 1, 13f) addImageRecyclerView.layoutManager = GridLayoutManager(this, 3) addImageRecyclerView.adapter = imageAdapter + + //状态监听 + uploadFileViewModel.loadState.observe(this, { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "图片上传中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) + + applyViewModel.loadState.observe(this, { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "申请中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) } /** @@ -146,9 +159,6 @@ imageAdapter.setupImage(realPaths) } }) - uploadFileViewModel.loadState.observe(this, { - dialogManager.dismissLoadingDialog() - }) confirmApplyButton.setOnClickListener { if (workerNameView.text.isNullOrBlank()) { @@ -187,17 +197,6 @@ finish() } }) - - applyViewModel.loadState.observe(this, { - when (it) { - LoadState.Loading -> { - dialogManager.showLoadingDialog("申请中,请稍后") - } - else -> { - dialogManager.dismissLoadingDialog() - } - } - }) } } diff --git a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt index c3c5cd9..d3d5f72 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt @@ -2,10 +2,7 @@ import androidx.lifecycle.ViewModelProvider import com.casic.br.operationsite.R -import com.casic.br.operationsite.utils.AuthenticationHelper -import com.casic.br.operationsite.utils.DialogManager -import com.casic.br.operationsite.utils.LocaleConstant -import com.casic.br.operationsite.utils.RSAUtils +import com.casic.br.operationsite.utils.* import com.casic.br.operationsite.vm.AuthenticateViewModel import com.casic.br.operationsite.vm.LoginViewModel import com.casic.br.operationsite.vm.UserDetailViewModel @@ -21,7 +18,6 @@ class LoginActivity : KotlinBaseActivity() { - private lateinit var dialogManager: DialogManager private lateinit var authenticateViewModel: AuthenticateViewModel private lateinit var loginViewModel: LoginViewModel private lateinit var userDetailViewModel: UserDetailViewModel @@ -37,10 +33,17 @@ // 设置默认账号密码 userNameView.setText(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) userPasswordView.setText(SaveKeyValues.getValue(LocaleConstant.PASSWORD, "") as String) - dialogManager = DialogManager.obtainInstance(this) authenticateViewModel = ViewModelProvider(this).get(AuthenticateViewModel::class.java) loginViewModel = ViewModelProvider(this).get(LoginViewModel::class.java) userDetailViewModel = ViewModelProvider(this).get(UserDetailViewModel::class.java) + + //状态监听 + loginViewModel.loadState.observe(this, { loginState -> + when (loginState) { + is LoadState.Loading -> LoadingDialogHub.show(this, "登录中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) } override fun initEvent() { @@ -86,16 +89,6 @@ finish() } }) - loginViewModel.loadState.observe(this, { loginState -> - when (loginState) { - is LoadState.Loading -> { - dialogManager.showLoadingDialog("登录中,请稍后...") - } - else -> { - dialogManager.dismissLoadingDialog() - } - } - }) } }) } 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 eb90311..7a6068d 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 @@ -6,7 +6,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration -import androidx.recyclerview.widget.LinearLayoutManager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage @@ -128,8 +127,6 @@ completedRecyclerView!!.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - completedRecyclerView!!.layoutManager = - LinearLayoutManager(requireContext()) completedRecyclerView!!.adapter = workingListAdapter workingListAdapter.setOnItemClickListener(object : WorkingListAdapter.OnItemClickListener { 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 027b98e..0d8b51a 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 @@ -6,7 +6,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration -import androidx.recyclerview.widget.LinearLayoutManager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage @@ -128,7 +127,6 @@ notStartRecyclerView!!.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - notStartRecyclerView!!.layoutManager = LinearLayoutManager(requireContext()) notStartRecyclerView!!.adapter = workingListAdapter workingListAdapter.setOnItemClickListener(object : WorkingListAdapter.OnItemClickListener { 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 6464946..791dfd4 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 @@ -6,7 +6,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration -import androidx.recyclerview.widget.LinearLayoutManager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage @@ -129,7 +128,6 @@ workingRecyclerView!!.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - workingRecyclerView!!.layoutManager = LinearLayoutManager(requireContext()) workingRecyclerView!!.adapter = workingListAdapter workingListAdapter.setOnItemClickListener(object : WorkingListAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/br/operationsite/utils/DialogManager.kt b/app/src/main/java/com/casic/br/operationsite/utils/DialogManager.kt deleted file mode 100644 index a5f3660..0000000 --- a/app/src/main/java/com/casic/br/operationsite/utils/DialogManager.kt +++ /dev/null @@ -1,37 +0,0 @@ -package com.casic.br.operationsite.utils; - -import android.app.Activity -import android.view.WindowManager -import com.pengxh.kt.lite.base.BaseSingleton -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog - -class DialogManager private constructor(private val activity: Activity) { - - private lateinit var loadingDialog: QMUITipDialog - - companion object : BaseSingleton() { - override val creator: (Activity) -> DialogManager - get() = ::DialogManager - } - - fun showLoadingDialog(message: String) { - loadingDialog = QMUITipDialog - .Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create() - if (!activity.isDestroyed) { - try { - loadingDialog.show() - } catch (e: WindowManager.BadTokenException) { - e.printStackTrace() - } - } - } - - fun dismissLoadingDialog() { - if (loadingDialog.isShowing) { - loadingDialog.dismiss() - } - } -} diff --git a/app/src/main/java/com/casic/br/operationsite/utils/LoadingDialogHub.kt b/app/src/main/java/com/casic/br/operationsite/utils/LoadingDialogHub.kt new file mode 100644 index 0000000..ba725c6 --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/utils/LoadingDialogHub.kt @@ -0,0 +1,31 @@ +package com.casic.br.operationsite.utils + +import android.app.Activity +import android.view.WindowManager +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog + +object LoadingDialogHub { + + private lateinit var loadingDialog: QMUITipDialog + + fun show(activity: Activity, message: String) { + loadingDialog = QMUITipDialog + .Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create() + if (!activity.isDestroyed) { + try { + loadingDialog.show() + } catch (e: WindowManager.BadTokenException) { + e.printStackTrace() + } + } + } + + fun dismiss() { + if (loadingDialog.isShowing) { + loadingDialog.dismiss() + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt index d34aaa9..b597afa 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt @@ -14,7 +14,7 @@ import com.bumptech.glide.request.RequestOptions import com.casic.br.operationsite.R import com.casic.br.operationsite.extensions.combineImagePath -import com.casic.br.operationsite.utils.DialogManager +import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.vm.AlarmViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -28,9 +28,9 @@ class AlarmDetailActivity : KotlinBaseActivity() { - private lateinit var dialogManager: DialogManager private lateinit var aMap: AMap private lateinit var alarmViewModel: AlarmViewModel + private lateinit var id: String override fun initLayoutView(): Int = R.layout.activity_alarm_detail @@ -43,8 +43,7 @@ } override fun initData() { - val id = intent.getStringExtra(Constant.INTENT_PARAM)!! - dialogManager = DialogManager.obtainInstance(this) + this.id = intent.getStringExtra(Constant.INTENT_PARAM)!! aMap = mapView.map aMap.mapType = AMap.MAP_TYPE_NORMAL @@ -58,6 +57,17 @@ * 数据初始化 * */ alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java) + + //状态监听 + alarmViewModel.loadState.observe(this, { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) + } + + override fun initEvent() { alarmViewModel.obtainAlarmDetail(id) alarmViewModel.detailModel.observe(this, { if (it.code == 200) { @@ -91,17 +101,6 @@ descriptionView.text = detailData.alarmDescription } }) - - alarmViewModel.loadState.observe(this, { - when (it) { - LoadState.Loading -> dialogManager.showLoadingDialog("数据加载中,请稍后...") - else -> dialogManager.dismissLoadingDialog() - } - }) - } - - override fun initEvent() { - } /** diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt index ea961a9..a8c460d 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt @@ -9,7 +9,7 @@ import com.casic.br.operationsite.adapter.AlarmListAdapter import com.casic.br.operationsite.extensions.showEmptyPage import com.casic.br.operationsite.model.AlarmListModel -import com.casic.br.operationsite.utils.DialogManager +import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.vm.AlarmViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -25,7 +25,6 @@ class AlarmListActivity : KotlinBaseActivity() { - private lateinit var dialogManager: DialogManager private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var alarmListAdapter: AlarmListAdapter private lateinit var alarmViewModel: AlarmViewModel @@ -50,9 +49,18 @@ } override fun initData() { - dialogManager = DialogManager.obtainInstance(this) weakReferenceHandler = WeakReferenceHandler(callback) alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java) + + //状态监听 + alarmViewModel.loadState.observe(this, { + if (!isLoadMore && !isRefresh) { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + } + }) } override fun onResume() { @@ -98,19 +106,6 @@ weakReferenceHandler.sendEmptyMessage(2022071201) } }) - - alarmViewModel.loadState.observe(this, { - if (!isLoadMore && !isRefresh) { - when (it) { - is LoadState.Loading -> { - dialogManager.showLoadingDialog("数据加载中,请稍后") - } - else -> { - dialogManager.dismissLoadingDialog() - } - } - } - }) } private fun obtainAlarmListByPage() { diff --git a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt index f30c048..5026c93 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt @@ -12,7 +12,7 @@ import com.casic.br.operationsite.extensions.combineImagePath import com.casic.br.operationsite.extensions.compressImage import com.casic.br.operationsite.extensions.reformat -import com.casic.br.operationsite.utils.DialogManager +import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.utils.LocaleConstant import com.casic.br.operationsite.vm.ApplyViewModel import com.casic.br.operationsite.vm.UploadFileViewModel @@ -36,7 +36,6 @@ class ApplyEnterActivity : KotlinBaseActivity() { private val kTag = "ApplyEnterActivity" - private lateinit var dialogManager: DialogManager private lateinit var imageAdapter: EditableImageAdapter private lateinit var uploadFileViewModel: UploadFileViewModel private lateinit var applyViewModel: ApplyViewModel @@ -55,13 +54,27 @@ } override fun initData() { - dialogManager = DialogManager.obtainInstance(this) uploadFileViewModel = ViewModelProvider(this).get(UploadFileViewModel::class.java) applyViewModel = ViewModelProvider(this).get(ApplyViewModel::class.java) imageAdapter = EditableImageAdapter(this, 1, 13f) addImageRecyclerView.layoutManager = GridLayoutManager(this, 3) addImageRecyclerView.adapter = imageAdapter + + //状态监听 + uploadFileViewModel.loadState.observe(this, { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "图片上传中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) + + applyViewModel.loadState.observe(this, { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "申请中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) } /** @@ -146,9 +159,6 @@ imageAdapter.setupImage(realPaths) } }) - uploadFileViewModel.loadState.observe(this, { - dialogManager.dismissLoadingDialog() - }) confirmApplyButton.setOnClickListener { if (workerNameView.text.isNullOrBlank()) { @@ -187,17 +197,6 @@ finish() } }) - - applyViewModel.loadState.observe(this, { - when (it) { - LoadState.Loading -> { - dialogManager.showLoadingDialog("申请中,请稍后") - } - else -> { - dialogManager.dismissLoadingDialog() - } - } - }) } } diff --git a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt index c3c5cd9..d3d5f72 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt @@ -2,10 +2,7 @@ import androidx.lifecycle.ViewModelProvider import com.casic.br.operationsite.R -import com.casic.br.operationsite.utils.AuthenticationHelper -import com.casic.br.operationsite.utils.DialogManager -import com.casic.br.operationsite.utils.LocaleConstant -import com.casic.br.operationsite.utils.RSAUtils +import com.casic.br.operationsite.utils.* import com.casic.br.operationsite.vm.AuthenticateViewModel import com.casic.br.operationsite.vm.LoginViewModel import com.casic.br.operationsite.vm.UserDetailViewModel @@ -21,7 +18,6 @@ class LoginActivity : KotlinBaseActivity() { - private lateinit var dialogManager: DialogManager private lateinit var authenticateViewModel: AuthenticateViewModel private lateinit var loginViewModel: LoginViewModel private lateinit var userDetailViewModel: UserDetailViewModel @@ -37,10 +33,17 @@ // 设置默认账号密码 userNameView.setText(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) userPasswordView.setText(SaveKeyValues.getValue(LocaleConstant.PASSWORD, "") as String) - dialogManager = DialogManager.obtainInstance(this) authenticateViewModel = ViewModelProvider(this).get(AuthenticateViewModel::class.java) loginViewModel = ViewModelProvider(this).get(LoginViewModel::class.java) userDetailViewModel = ViewModelProvider(this).get(UserDetailViewModel::class.java) + + //状态监听 + loginViewModel.loadState.observe(this, { loginState -> + when (loginState) { + is LoadState.Loading -> LoadingDialogHub.show(this, "登录中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) } override fun initEvent() { @@ -86,16 +89,6 @@ finish() } }) - loginViewModel.loadState.observe(this, { loginState -> - when (loginState) { - is LoadState.Loading -> { - dialogManager.showLoadingDialog("登录中,请稍后...") - } - else -> { - dialogManager.dismissLoadingDialog() - } - } - }) } }) } diff --git a/app/src/main/java/com/casic/br/operationsite/view/PermissionActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/PermissionActivity.kt index 04d396f..0287298 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/PermissionActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/PermissionActivity.kt @@ -1,46 +1,31 @@ package com.casic.br.operationsite.view +import android.os.Bundle +import androidx.appcompat.app.AppCompatActivity import com.amap.api.navi.NaviSetting import com.casic.br.operationsite.R 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.navigatePageTo -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil -import kotlinx.android.synthetic.main.activity_permssion.* import pub.devrel.easypermissions.EasyPermissions import pub.devrel.easypermissions.EasyPermissions.PermissionCallbacks -class PermissionActivity : KotlinBaseActivity(), PermissionCallbacks { +class PermissionActivity : AppCompatActivity(), PermissionCallbacks { - override fun initLayoutView(): Int = R.layout.activity_permssion - - override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(true).init() - ImmerseStatusBarUtil.setColor(this, R.color.white.convertColor(this)) - } - - override fun initData() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) //判断是否有权限,如果版本大于5.1才需要判断(即6.0以上),其他则不需要判断。 if (EasyPermissions.hasPermissions(this, *LocaleConstant.USER_PERMISSIONS)) { startSplashScreenActivity() } else { - enterMainButton.setOnClickListener { - EasyPermissions.requestPermissions( - this@PermissionActivity, - resources.getString(R.string.app_name) + "需要获取相关权限", - LocaleConstant.PERMISSIONS_CODE, - *LocaleConstant.USER_PERMISSIONS - ) - } + EasyPermissions.requestPermissions( + this@PermissionActivity, + resources.getString(R.string.app_name) + "需要获取相关权限", + LocaleConstant.PERMISSIONS_CODE, + *LocaleConstant.USER_PERMISSIONS + ) } } - override fun initEvent() { - - } - private fun startSplashScreenActivity() { //先把导航隐私政策声明,后面导航会用到 NaviSetting.updatePrivacyShow(this, true, true) 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 eb90311..7a6068d 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 @@ -6,7 +6,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration -import androidx.recyclerview.widget.LinearLayoutManager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage @@ -128,8 +127,6 @@ completedRecyclerView!!.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - completedRecyclerView!!.layoutManager = - LinearLayoutManager(requireContext()) completedRecyclerView!!.adapter = workingListAdapter workingListAdapter.setOnItemClickListener(object : WorkingListAdapter.OnItemClickListener { 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 027b98e..0d8b51a 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 @@ -6,7 +6,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration -import androidx.recyclerview.widget.LinearLayoutManager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage @@ -128,7 +127,6 @@ notStartRecyclerView!!.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - notStartRecyclerView!!.layoutManager = LinearLayoutManager(requireContext()) notStartRecyclerView!!.adapter = workingListAdapter workingListAdapter.setOnItemClickListener(object : WorkingListAdapter.OnItemClickListener { 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 6464946..791dfd4 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 @@ -6,7 +6,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration -import androidx.recyclerview.widget.LinearLayoutManager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage @@ -129,7 +128,6 @@ workingRecyclerView!!.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - workingRecyclerView!!.layoutManager = LinearLayoutManager(requireContext()) workingRecyclerView!!.adapter = workingListAdapter workingListAdapter.setOnItemClickListener(object : WorkingListAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/br/operationsite/utils/DialogManager.kt b/app/src/main/java/com/casic/br/operationsite/utils/DialogManager.kt deleted file mode 100644 index a5f3660..0000000 --- a/app/src/main/java/com/casic/br/operationsite/utils/DialogManager.kt +++ /dev/null @@ -1,37 +0,0 @@ -package com.casic.br.operationsite.utils; - -import android.app.Activity -import android.view.WindowManager -import com.pengxh.kt.lite.base.BaseSingleton -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog - -class DialogManager private constructor(private val activity: Activity) { - - private lateinit var loadingDialog: QMUITipDialog - - companion object : BaseSingleton() { - override val creator: (Activity) -> DialogManager - get() = ::DialogManager - } - - fun showLoadingDialog(message: String) { - loadingDialog = QMUITipDialog - .Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create() - if (!activity.isDestroyed) { - try { - loadingDialog.show() - } catch (e: WindowManager.BadTokenException) { - e.printStackTrace() - } - } - } - - fun dismissLoadingDialog() { - if (loadingDialog.isShowing) { - loadingDialog.dismiss() - } - } -} diff --git a/app/src/main/java/com/casic/br/operationsite/utils/LoadingDialogHub.kt b/app/src/main/java/com/casic/br/operationsite/utils/LoadingDialogHub.kt new file mode 100644 index 0000000..ba725c6 --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/utils/LoadingDialogHub.kt @@ -0,0 +1,31 @@ +package com.casic.br.operationsite.utils + +import android.app.Activity +import android.view.WindowManager +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog + +object LoadingDialogHub { + + private lateinit var loadingDialog: QMUITipDialog + + fun show(activity: Activity, message: String) { + loadingDialog = QMUITipDialog + .Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create() + if (!activity.isDestroyed) { + try { + loadingDialog.show() + } catch (e: WindowManager.BadTokenException) { + e.printStackTrace() + } + } + } + + fun dismiss() { + if (loadingDialog.isShowing) { + loadingDialog.dismiss() + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt index d34aaa9..b597afa 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt @@ -14,7 +14,7 @@ import com.bumptech.glide.request.RequestOptions import com.casic.br.operationsite.R import com.casic.br.operationsite.extensions.combineImagePath -import com.casic.br.operationsite.utils.DialogManager +import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.vm.AlarmViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -28,9 +28,9 @@ class AlarmDetailActivity : KotlinBaseActivity() { - private lateinit var dialogManager: DialogManager private lateinit var aMap: AMap private lateinit var alarmViewModel: AlarmViewModel + private lateinit var id: String override fun initLayoutView(): Int = R.layout.activity_alarm_detail @@ -43,8 +43,7 @@ } override fun initData() { - val id = intent.getStringExtra(Constant.INTENT_PARAM)!! - dialogManager = DialogManager.obtainInstance(this) + this.id = intent.getStringExtra(Constant.INTENT_PARAM)!! aMap = mapView.map aMap.mapType = AMap.MAP_TYPE_NORMAL @@ -58,6 +57,17 @@ * 数据初始化 * */ alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java) + + //状态监听 + alarmViewModel.loadState.observe(this, { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) + } + + override fun initEvent() { alarmViewModel.obtainAlarmDetail(id) alarmViewModel.detailModel.observe(this, { if (it.code == 200) { @@ -91,17 +101,6 @@ descriptionView.text = detailData.alarmDescription } }) - - alarmViewModel.loadState.observe(this, { - when (it) { - LoadState.Loading -> dialogManager.showLoadingDialog("数据加载中,请稍后...") - else -> dialogManager.dismissLoadingDialog() - } - }) - } - - override fun initEvent() { - } /** diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt index ea961a9..a8c460d 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt @@ -9,7 +9,7 @@ import com.casic.br.operationsite.adapter.AlarmListAdapter import com.casic.br.operationsite.extensions.showEmptyPage import com.casic.br.operationsite.model.AlarmListModel -import com.casic.br.operationsite.utils.DialogManager +import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.vm.AlarmViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -25,7 +25,6 @@ class AlarmListActivity : KotlinBaseActivity() { - private lateinit var dialogManager: DialogManager private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var alarmListAdapter: AlarmListAdapter private lateinit var alarmViewModel: AlarmViewModel @@ -50,9 +49,18 @@ } override fun initData() { - dialogManager = DialogManager.obtainInstance(this) weakReferenceHandler = WeakReferenceHandler(callback) alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java) + + //状态监听 + alarmViewModel.loadState.observe(this, { + if (!isLoadMore && !isRefresh) { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + } + }) } override fun onResume() { @@ -98,19 +106,6 @@ weakReferenceHandler.sendEmptyMessage(2022071201) } }) - - alarmViewModel.loadState.observe(this, { - if (!isLoadMore && !isRefresh) { - when (it) { - is LoadState.Loading -> { - dialogManager.showLoadingDialog("数据加载中,请稍后") - } - else -> { - dialogManager.dismissLoadingDialog() - } - } - } - }) } private fun obtainAlarmListByPage() { diff --git a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt index f30c048..5026c93 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt @@ -12,7 +12,7 @@ import com.casic.br.operationsite.extensions.combineImagePath import com.casic.br.operationsite.extensions.compressImage import com.casic.br.operationsite.extensions.reformat -import com.casic.br.operationsite.utils.DialogManager +import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.utils.LocaleConstant import com.casic.br.operationsite.vm.ApplyViewModel import com.casic.br.operationsite.vm.UploadFileViewModel @@ -36,7 +36,6 @@ class ApplyEnterActivity : KotlinBaseActivity() { private val kTag = "ApplyEnterActivity" - private lateinit var dialogManager: DialogManager private lateinit var imageAdapter: EditableImageAdapter private lateinit var uploadFileViewModel: UploadFileViewModel private lateinit var applyViewModel: ApplyViewModel @@ -55,13 +54,27 @@ } override fun initData() { - dialogManager = DialogManager.obtainInstance(this) uploadFileViewModel = ViewModelProvider(this).get(UploadFileViewModel::class.java) applyViewModel = ViewModelProvider(this).get(ApplyViewModel::class.java) imageAdapter = EditableImageAdapter(this, 1, 13f) addImageRecyclerView.layoutManager = GridLayoutManager(this, 3) addImageRecyclerView.adapter = imageAdapter + + //状态监听 + uploadFileViewModel.loadState.observe(this, { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "图片上传中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) + + applyViewModel.loadState.observe(this, { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "申请中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) } /** @@ -146,9 +159,6 @@ imageAdapter.setupImage(realPaths) } }) - uploadFileViewModel.loadState.observe(this, { - dialogManager.dismissLoadingDialog() - }) confirmApplyButton.setOnClickListener { if (workerNameView.text.isNullOrBlank()) { @@ -187,17 +197,6 @@ finish() } }) - - applyViewModel.loadState.observe(this, { - when (it) { - LoadState.Loading -> { - dialogManager.showLoadingDialog("申请中,请稍后") - } - else -> { - dialogManager.dismissLoadingDialog() - } - } - }) } } diff --git a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt index c3c5cd9..d3d5f72 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt @@ -2,10 +2,7 @@ import androidx.lifecycle.ViewModelProvider import com.casic.br.operationsite.R -import com.casic.br.operationsite.utils.AuthenticationHelper -import com.casic.br.operationsite.utils.DialogManager -import com.casic.br.operationsite.utils.LocaleConstant -import com.casic.br.operationsite.utils.RSAUtils +import com.casic.br.operationsite.utils.* import com.casic.br.operationsite.vm.AuthenticateViewModel import com.casic.br.operationsite.vm.LoginViewModel import com.casic.br.operationsite.vm.UserDetailViewModel @@ -21,7 +18,6 @@ class LoginActivity : KotlinBaseActivity() { - private lateinit var dialogManager: DialogManager private lateinit var authenticateViewModel: AuthenticateViewModel private lateinit var loginViewModel: LoginViewModel private lateinit var userDetailViewModel: UserDetailViewModel @@ -37,10 +33,17 @@ // 设置默认账号密码 userNameView.setText(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) userPasswordView.setText(SaveKeyValues.getValue(LocaleConstant.PASSWORD, "") as String) - dialogManager = DialogManager.obtainInstance(this) authenticateViewModel = ViewModelProvider(this).get(AuthenticateViewModel::class.java) loginViewModel = ViewModelProvider(this).get(LoginViewModel::class.java) userDetailViewModel = ViewModelProvider(this).get(UserDetailViewModel::class.java) + + //状态监听 + loginViewModel.loadState.observe(this, { loginState -> + when (loginState) { + is LoadState.Loading -> LoadingDialogHub.show(this, "登录中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) } override fun initEvent() { @@ -86,16 +89,6 @@ finish() } }) - loginViewModel.loadState.observe(this, { loginState -> - when (loginState) { - is LoadState.Loading -> { - dialogManager.showLoadingDialog("登录中,请稍后...") - } - else -> { - dialogManager.dismissLoadingDialog() - } - } - }) } }) } diff --git a/app/src/main/java/com/casic/br/operationsite/view/PermissionActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/PermissionActivity.kt index 04d396f..0287298 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/PermissionActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/PermissionActivity.kt @@ -1,46 +1,31 @@ package com.casic.br.operationsite.view +import android.os.Bundle +import androidx.appcompat.app.AppCompatActivity import com.amap.api.navi.NaviSetting import com.casic.br.operationsite.R 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.navigatePageTo -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil -import kotlinx.android.synthetic.main.activity_permssion.* import pub.devrel.easypermissions.EasyPermissions import pub.devrel.easypermissions.EasyPermissions.PermissionCallbacks -class PermissionActivity : KotlinBaseActivity(), PermissionCallbacks { +class PermissionActivity : AppCompatActivity(), PermissionCallbacks { - override fun initLayoutView(): Int = R.layout.activity_permssion - - override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(true).init() - ImmerseStatusBarUtil.setColor(this, R.color.white.convertColor(this)) - } - - override fun initData() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) //判断是否有权限,如果版本大于5.1才需要判断(即6.0以上),其他则不需要判断。 if (EasyPermissions.hasPermissions(this, *LocaleConstant.USER_PERMISSIONS)) { startSplashScreenActivity() } else { - enterMainButton.setOnClickListener { - EasyPermissions.requestPermissions( - this@PermissionActivity, - resources.getString(R.string.app_name) + "需要获取相关权限", - LocaleConstant.PERMISSIONS_CODE, - *LocaleConstant.USER_PERMISSIONS - ) - } + EasyPermissions.requestPermissions( + this@PermissionActivity, + resources.getString(R.string.app_name) + "需要获取相关权限", + LocaleConstant.PERMISSIONS_CODE, + *LocaleConstant.USER_PERMISSIONS + ) } } - override fun initEvent() { - - } - private fun startSplashScreenActivity() { //先把导航隐私政策声明,后面导航会用到 NaviSetting.updatePrivacyShow(this, true, true) diff --git a/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt index 9bac3a8..ce81c29 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt @@ -1,7 +1,6 @@ package com.casic.br.operationsite.view import android.content.Context -import android.graphics.Color import android.os.CountDownTimer import android.os.Handler import android.text.Editable @@ -9,7 +8,6 @@ import android.util.Log import android.view.View import androidx.lifecycle.ViewModelProvider -import androidx.recyclerview.widget.GridLayoutManager import com.amap.api.location.AMapLocation import com.casic.br.operationsite.R import com.casic.br.operationsite.callback.OnImageCompressListener @@ -17,10 +15,7 @@ import com.casic.br.operationsite.extensions.compressImage import com.casic.br.operationsite.extensions.reformat import com.casic.br.operationsite.model.UserDetailModel -import com.casic.br.operationsite.utils.DialogManager -import com.casic.br.operationsite.utils.GlideLoadEngine -import com.casic.br.operationsite.utils.LocaleConstant -import com.casic.br.operationsite.utils.LocationHelper +import com.casic.br.operationsite.utils.* import com.casic.br.operationsite.vm.EventViewModel import com.casic.br.operationsite.vm.UploadFileViewModel import com.google.gson.Gson @@ -45,7 +40,6 @@ class UploadEventActivity : KotlinBaseActivity() { private val kTag = "UploadEventActivity" - private lateinit var dialogManager: DialogManager private lateinit var imageAdapter: EditableImageAdapter private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var uploadFileViewModel: UploadFileViewModel @@ -76,13 +70,27 @@ personNumberView.text = userDetail.phone } - dialogManager = DialogManager.obtainInstance(this) weakReferenceHandler = WeakReferenceHandler(callback) uploadFileViewModel = ViewModelProvider(this).get(UploadFileViewModel::class.java) eventViewModel = ViewModelProvider(this).get(EventViewModel::class.java) imageAdapter = EditableImageAdapter(this, 3, 13f) addImageRecyclerView.adapter = imageAdapter + + //状态监听 + uploadFileViewModel.loadState.observe(this, { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "图片上传中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) + + eventViewModel.loadState.observe(this, { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "事件提交中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) } override fun onResume() { @@ -127,16 +135,6 @@ } } }) - uploadFileViewModel.loadState.observe(this, { - when (it) { - LoadState.Loading -> { - dialogManager.showLoadingDialog("图片上传中,请稍后...") - } - else -> { - dialogManager.dismissLoadingDialog() - } - } - }) siteEditView.addTextChangedListener(object : TextWatcher { override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { @@ -187,17 +185,6 @@ finish() } }) - - eventViewModel.loadState.observe(this, { - when (it) { - LoadState.Loading -> { - dialogManager.showLoadingDialog("事件提交中,请稍后") - } - else -> { - dialogManager.dismissLoadingDialog() - } - } - }) } private fun selectPicture() { 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 eb90311..7a6068d 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 @@ -6,7 +6,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration -import androidx.recyclerview.widget.LinearLayoutManager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage @@ -128,8 +127,6 @@ completedRecyclerView!!.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - completedRecyclerView!!.layoutManager = - LinearLayoutManager(requireContext()) completedRecyclerView!!.adapter = workingListAdapter workingListAdapter.setOnItemClickListener(object : WorkingListAdapter.OnItemClickListener { 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 027b98e..0d8b51a 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 @@ -6,7 +6,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration -import androidx.recyclerview.widget.LinearLayoutManager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage @@ -128,7 +127,6 @@ notStartRecyclerView!!.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - notStartRecyclerView!!.layoutManager = LinearLayoutManager(requireContext()) notStartRecyclerView!!.adapter = workingListAdapter workingListAdapter.setOnItemClickListener(object : WorkingListAdapter.OnItemClickListener { 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 6464946..791dfd4 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 @@ -6,7 +6,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration -import androidx.recyclerview.widget.LinearLayoutManager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage @@ -129,7 +128,6 @@ workingRecyclerView!!.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - workingRecyclerView!!.layoutManager = LinearLayoutManager(requireContext()) workingRecyclerView!!.adapter = workingListAdapter workingListAdapter.setOnItemClickListener(object : WorkingListAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/br/operationsite/utils/DialogManager.kt b/app/src/main/java/com/casic/br/operationsite/utils/DialogManager.kt deleted file mode 100644 index a5f3660..0000000 --- a/app/src/main/java/com/casic/br/operationsite/utils/DialogManager.kt +++ /dev/null @@ -1,37 +0,0 @@ -package com.casic.br.operationsite.utils; - -import android.app.Activity -import android.view.WindowManager -import com.pengxh.kt.lite.base.BaseSingleton -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog - -class DialogManager private constructor(private val activity: Activity) { - - private lateinit var loadingDialog: QMUITipDialog - - companion object : BaseSingleton() { - override val creator: (Activity) -> DialogManager - get() = ::DialogManager - } - - fun showLoadingDialog(message: String) { - loadingDialog = QMUITipDialog - .Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create() - if (!activity.isDestroyed) { - try { - loadingDialog.show() - } catch (e: WindowManager.BadTokenException) { - e.printStackTrace() - } - } - } - - fun dismissLoadingDialog() { - if (loadingDialog.isShowing) { - loadingDialog.dismiss() - } - } -} diff --git a/app/src/main/java/com/casic/br/operationsite/utils/LoadingDialogHub.kt b/app/src/main/java/com/casic/br/operationsite/utils/LoadingDialogHub.kt new file mode 100644 index 0000000..ba725c6 --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/utils/LoadingDialogHub.kt @@ -0,0 +1,31 @@ +package com.casic.br.operationsite.utils + +import android.app.Activity +import android.view.WindowManager +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog + +object LoadingDialogHub { + + private lateinit var loadingDialog: QMUITipDialog + + fun show(activity: Activity, message: String) { + loadingDialog = QMUITipDialog + .Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create() + if (!activity.isDestroyed) { + try { + loadingDialog.show() + } catch (e: WindowManager.BadTokenException) { + e.printStackTrace() + } + } + } + + fun dismiss() { + if (loadingDialog.isShowing) { + loadingDialog.dismiss() + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt index d34aaa9..b597afa 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt @@ -14,7 +14,7 @@ import com.bumptech.glide.request.RequestOptions import com.casic.br.operationsite.R import com.casic.br.operationsite.extensions.combineImagePath -import com.casic.br.operationsite.utils.DialogManager +import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.vm.AlarmViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -28,9 +28,9 @@ class AlarmDetailActivity : KotlinBaseActivity() { - private lateinit var dialogManager: DialogManager private lateinit var aMap: AMap private lateinit var alarmViewModel: AlarmViewModel + private lateinit var id: String override fun initLayoutView(): Int = R.layout.activity_alarm_detail @@ -43,8 +43,7 @@ } override fun initData() { - val id = intent.getStringExtra(Constant.INTENT_PARAM)!! - dialogManager = DialogManager.obtainInstance(this) + this.id = intent.getStringExtra(Constant.INTENT_PARAM)!! aMap = mapView.map aMap.mapType = AMap.MAP_TYPE_NORMAL @@ -58,6 +57,17 @@ * 数据初始化 * */ alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java) + + //状态监听 + alarmViewModel.loadState.observe(this, { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) + } + + override fun initEvent() { alarmViewModel.obtainAlarmDetail(id) alarmViewModel.detailModel.observe(this, { if (it.code == 200) { @@ -91,17 +101,6 @@ descriptionView.text = detailData.alarmDescription } }) - - alarmViewModel.loadState.observe(this, { - when (it) { - LoadState.Loading -> dialogManager.showLoadingDialog("数据加载中,请稍后...") - else -> dialogManager.dismissLoadingDialog() - } - }) - } - - override fun initEvent() { - } /** diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt index ea961a9..a8c460d 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt @@ -9,7 +9,7 @@ import com.casic.br.operationsite.adapter.AlarmListAdapter import com.casic.br.operationsite.extensions.showEmptyPage import com.casic.br.operationsite.model.AlarmListModel -import com.casic.br.operationsite.utils.DialogManager +import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.vm.AlarmViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -25,7 +25,6 @@ class AlarmListActivity : KotlinBaseActivity() { - private lateinit var dialogManager: DialogManager private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var alarmListAdapter: AlarmListAdapter private lateinit var alarmViewModel: AlarmViewModel @@ -50,9 +49,18 @@ } override fun initData() { - dialogManager = DialogManager.obtainInstance(this) weakReferenceHandler = WeakReferenceHandler(callback) alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java) + + //状态监听 + alarmViewModel.loadState.observe(this, { + if (!isLoadMore && !isRefresh) { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + } + }) } override fun onResume() { @@ -98,19 +106,6 @@ weakReferenceHandler.sendEmptyMessage(2022071201) } }) - - alarmViewModel.loadState.observe(this, { - if (!isLoadMore && !isRefresh) { - when (it) { - is LoadState.Loading -> { - dialogManager.showLoadingDialog("数据加载中,请稍后") - } - else -> { - dialogManager.dismissLoadingDialog() - } - } - } - }) } private fun obtainAlarmListByPage() { diff --git a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt index f30c048..5026c93 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt @@ -12,7 +12,7 @@ import com.casic.br.operationsite.extensions.combineImagePath import com.casic.br.operationsite.extensions.compressImage import com.casic.br.operationsite.extensions.reformat -import com.casic.br.operationsite.utils.DialogManager +import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.utils.LocaleConstant import com.casic.br.operationsite.vm.ApplyViewModel import com.casic.br.operationsite.vm.UploadFileViewModel @@ -36,7 +36,6 @@ class ApplyEnterActivity : KotlinBaseActivity() { private val kTag = "ApplyEnterActivity" - private lateinit var dialogManager: DialogManager private lateinit var imageAdapter: EditableImageAdapter private lateinit var uploadFileViewModel: UploadFileViewModel private lateinit var applyViewModel: ApplyViewModel @@ -55,13 +54,27 @@ } override fun initData() { - dialogManager = DialogManager.obtainInstance(this) uploadFileViewModel = ViewModelProvider(this).get(UploadFileViewModel::class.java) applyViewModel = ViewModelProvider(this).get(ApplyViewModel::class.java) imageAdapter = EditableImageAdapter(this, 1, 13f) addImageRecyclerView.layoutManager = GridLayoutManager(this, 3) addImageRecyclerView.adapter = imageAdapter + + //状态监听 + uploadFileViewModel.loadState.observe(this, { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "图片上传中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) + + applyViewModel.loadState.observe(this, { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "申请中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) } /** @@ -146,9 +159,6 @@ imageAdapter.setupImage(realPaths) } }) - uploadFileViewModel.loadState.observe(this, { - dialogManager.dismissLoadingDialog() - }) confirmApplyButton.setOnClickListener { if (workerNameView.text.isNullOrBlank()) { @@ -187,17 +197,6 @@ finish() } }) - - applyViewModel.loadState.observe(this, { - when (it) { - LoadState.Loading -> { - dialogManager.showLoadingDialog("申请中,请稍后") - } - else -> { - dialogManager.dismissLoadingDialog() - } - } - }) } } diff --git a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt index c3c5cd9..d3d5f72 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt @@ -2,10 +2,7 @@ import androidx.lifecycle.ViewModelProvider import com.casic.br.operationsite.R -import com.casic.br.operationsite.utils.AuthenticationHelper -import com.casic.br.operationsite.utils.DialogManager -import com.casic.br.operationsite.utils.LocaleConstant -import com.casic.br.operationsite.utils.RSAUtils +import com.casic.br.operationsite.utils.* import com.casic.br.operationsite.vm.AuthenticateViewModel import com.casic.br.operationsite.vm.LoginViewModel import com.casic.br.operationsite.vm.UserDetailViewModel @@ -21,7 +18,6 @@ class LoginActivity : KotlinBaseActivity() { - private lateinit var dialogManager: DialogManager private lateinit var authenticateViewModel: AuthenticateViewModel private lateinit var loginViewModel: LoginViewModel private lateinit var userDetailViewModel: UserDetailViewModel @@ -37,10 +33,17 @@ // 设置默认账号密码 userNameView.setText(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) userPasswordView.setText(SaveKeyValues.getValue(LocaleConstant.PASSWORD, "") as String) - dialogManager = DialogManager.obtainInstance(this) authenticateViewModel = ViewModelProvider(this).get(AuthenticateViewModel::class.java) loginViewModel = ViewModelProvider(this).get(LoginViewModel::class.java) userDetailViewModel = ViewModelProvider(this).get(UserDetailViewModel::class.java) + + //状态监听 + loginViewModel.loadState.observe(this, { loginState -> + when (loginState) { + is LoadState.Loading -> LoadingDialogHub.show(this, "登录中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) } override fun initEvent() { @@ -86,16 +89,6 @@ finish() } }) - loginViewModel.loadState.observe(this, { loginState -> - when (loginState) { - is LoadState.Loading -> { - dialogManager.showLoadingDialog("登录中,请稍后...") - } - else -> { - dialogManager.dismissLoadingDialog() - } - } - }) } }) } diff --git a/app/src/main/java/com/casic/br/operationsite/view/PermissionActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/PermissionActivity.kt index 04d396f..0287298 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/PermissionActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/PermissionActivity.kt @@ -1,46 +1,31 @@ package com.casic.br.operationsite.view +import android.os.Bundle +import androidx.appcompat.app.AppCompatActivity import com.amap.api.navi.NaviSetting import com.casic.br.operationsite.R 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.navigatePageTo -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil -import kotlinx.android.synthetic.main.activity_permssion.* import pub.devrel.easypermissions.EasyPermissions import pub.devrel.easypermissions.EasyPermissions.PermissionCallbacks -class PermissionActivity : KotlinBaseActivity(), PermissionCallbacks { +class PermissionActivity : AppCompatActivity(), PermissionCallbacks { - override fun initLayoutView(): Int = R.layout.activity_permssion - - override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(true).init() - ImmerseStatusBarUtil.setColor(this, R.color.white.convertColor(this)) - } - - override fun initData() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) //判断是否有权限,如果版本大于5.1才需要判断(即6.0以上),其他则不需要判断。 if (EasyPermissions.hasPermissions(this, *LocaleConstant.USER_PERMISSIONS)) { startSplashScreenActivity() } else { - enterMainButton.setOnClickListener { - EasyPermissions.requestPermissions( - this@PermissionActivity, - resources.getString(R.string.app_name) + "需要获取相关权限", - LocaleConstant.PERMISSIONS_CODE, - *LocaleConstant.USER_PERMISSIONS - ) - } + EasyPermissions.requestPermissions( + this@PermissionActivity, + resources.getString(R.string.app_name) + "需要获取相关权限", + LocaleConstant.PERMISSIONS_CODE, + *LocaleConstant.USER_PERMISSIONS + ) } } - override fun initEvent() { - - } - private fun startSplashScreenActivity() { //先把导航隐私政策声明,后面导航会用到 NaviSetting.updatePrivacyShow(this, true, true) diff --git a/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt index 9bac3a8..ce81c29 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt @@ -1,7 +1,6 @@ package com.casic.br.operationsite.view import android.content.Context -import android.graphics.Color import android.os.CountDownTimer import android.os.Handler import android.text.Editable @@ -9,7 +8,6 @@ import android.util.Log import android.view.View import androidx.lifecycle.ViewModelProvider -import androidx.recyclerview.widget.GridLayoutManager import com.amap.api.location.AMapLocation import com.casic.br.operationsite.R import com.casic.br.operationsite.callback.OnImageCompressListener @@ -17,10 +15,7 @@ import com.casic.br.operationsite.extensions.compressImage import com.casic.br.operationsite.extensions.reformat import com.casic.br.operationsite.model.UserDetailModel -import com.casic.br.operationsite.utils.DialogManager -import com.casic.br.operationsite.utils.GlideLoadEngine -import com.casic.br.operationsite.utils.LocaleConstant -import com.casic.br.operationsite.utils.LocationHelper +import com.casic.br.operationsite.utils.* import com.casic.br.operationsite.vm.EventViewModel import com.casic.br.operationsite.vm.UploadFileViewModel import com.google.gson.Gson @@ -45,7 +40,6 @@ class UploadEventActivity : KotlinBaseActivity() { private val kTag = "UploadEventActivity" - private lateinit var dialogManager: DialogManager private lateinit var imageAdapter: EditableImageAdapter private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var uploadFileViewModel: UploadFileViewModel @@ -76,13 +70,27 @@ personNumberView.text = userDetail.phone } - dialogManager = DialogManager.obtainInstance(this) weakReferenceHandler = WeakReferenceHandler(callback) uploadFileViewModel = ViewModelProvider(this).get(UploadFileViewModel::class.java) eventViewModel = ViewModelProvider(this).get(EventViewModel::class.java) imageAdapter = EditableImageAdapter(this, 3, 13f) addImageRecyclerView.adapter = imageAdapter + + //状态监听 + uploadFileViewModel.loadState.observe(this, { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "图片上传中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) + + eventViewModel.loadState.observe(this, { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "事件提交中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) } override fun onResume() { @@ -127,16 +135,6 @@ } } }) - uploadFileViewModel.loadState.observe(this, { - when (it) { - LoadState.Loading -> { - dialogManager.showLoadingDialog("图片上传中,请稍后...") - } - else -> { - dialogManager.dismissLoadingDialog() - } - } - }) siteEditView.addTextChangedListener(object : TextWatcher { override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { @@ -187,17 +185,6 @@ finish() } }) - - eventViewModel.loadState.observe(this, { - when (it) { - LoadState.Loading -> { - dialogManager.showLoadingDialog("事件提交中,请稍后") - } - else -> { - dialogManager.dismissLoadingDialog() - } - } - }) } private fun selectPicture() { diff --git a/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt index a9f0300..fce8f4f 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt @@ -12,7 +12,7 @@ import com.amap.api.services.geocoder.RegeocodeQuery import com.amap.api.services.geocoder.RegeocodeResult import com.casic.br.operationsite.R -import com.casic.br.operationsite.utils.DialogManager +import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.vm.WorkSiteViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -29,9 +29,9 @@ class WorkSiteTabActivity : KotlinBaseActivity() { - private lateinit var dialogManager: DialogManager private lateinit var aMap: AMap private lateinit var workSiteViewModel: WorkSiteViewModel + private lateinit var id: String private val geocoderSearch by lazy { GeocodeSearch(this) } private var latLng: LatLng? = null @@ -46,8 +46,7 @@ } override fun initData() { - val id = intent.getStringExtra(Constant.INTENT_PARAM)!! - dialogManager = DialogManager.obtainInstance(this) + this.id = intent.getStringExtra(Constant.INTENT_PARAM)!! /** * 地图初始化设置 @@ -64,6 +63,17 @@ * 数据初始化 * */ workSiteViewModel = ViewModelProvider(this).get(WorkSiteViewModel::class.java) + + //状态监听 + workSiteViewModel.loadState.observe(this, { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) + } + + override fun initEvent() { workSiteViewModel.obtainProjectDetail(id) workSiteViewModel.detailModel.observe(this, { if (it.code == 200) { @@ -117,19 +127,6 @@ } }) - workSiteViewModel.loadState.observe(this, { - when (it) { - LoadState.Loading -> { - dialogManager.showLoadingDialog("数据加载中,请稍后...") - } - else -> { - dialogManager.dismissLoadingDialog() - } - } - }) - } - - override fun initEvent() { navigationView.setOnClickListener { if (latLng == null) { "经纬度异常,无法开启导航".show(this) 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 eb90311..7a6068d 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 @@ -6,7 +6,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration -import androidx.recyclerview.widget.LinearLayoutManager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage @@ -128,8 +127,6 @@ completedRecyclerView!!.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - completedRecyclerView!!.layoutManager = - LinearLayoutManager(requireContext()) completedRecyclerView!!.adapter = workingListAdapter workingListAdapter.setOnItemClickListener(object : WorkingListAdapter.OnItemClickListener { 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 027b98e..0d8b51a 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 @@ -6,7 +6,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration -import androidx.recyclerview.widget.LinearLayoutManager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage @@ -128,7 +127,6 @@ notStartRecyclerView!!.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - notStartRecyclerView!!.layoutManager = LinearLayoutManager(requireContext()) notStartRecyclerView!!.adapter = workingListAdapter workingListAdapter.setOnItemClickListener(object : WorkingListAdapter.OnItemClickListener { 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 6464946..791dfd4 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 @@ -6,7 +6,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration -import androidx.recyclerview.widget.LinearLayoutManager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage @@ -129,7 +128,6 @@ workingRecyclerView!!.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - workingRecyclerView!!.layoutManager = LinearLayoutManager(requireContext()) workingRecyclerView!!.adapter = workingListAdapter workingListAdapter.setOnItemClickListener(object : WorkingListAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/br/operationsite/utils/DialogManager.kt b/app/src/main/java/com/casic/br/operationsite/utils/DialogManager.kt deleted file mode 100644 index a5f3660..0000000 --- a/app/src/main/java/com/casic/br/operationsite/utils/DialogManager.kt +++ /dev/null @@ -1,37 +0,0 @@ -package com.casic.br.operationsite.utils; - -import android.app.Activity -import android.view.WindowManager -import com.pengxh.kt.lite.base.BaseSingleton -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog - -class DialogManager private constructor(private val activity: Activity) { - - private lateinit var loadingDialog: QMUITipDialog - - companion object : BaseSingleton() { - override val creator: (Activity) -> DialogManager - get() = ::DialogManager - } - - fun showLoadingDialog(message: String) { - loadingDialog = QMUITipDialog - .Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create() - if (!activity.isDestroyed) { - try { - loadingDialog.show() - } catch (e: WindowManager.BadTokenException) { - e.printStackTrace() - } - } - } - - fun dismissLoadingDialog() { - if (loadingDialog.isShowing) { - loadingDialog.dismiss() - } - } -} diff --git a/app/src/main/java/com/casic/br/operationsite/utils/LoadingDialogHub.kt b/app/src/main/java/com/casic/br/operationsite/utils/LoadingDialogHub.kt new file mode 100644 index 0000000..ba725c6 --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/utils/LoadingDialogHub.kt @@ -0,0 +1,31 @@ +package com.casic.br.operationsite.utils + +import android.app.Activity +import android.view.WindowManager +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog + +object LoadingDialogHub { + + private lateinit var loadingDialog: QMUITipDialog + + fun show(activity: Activity, message: String) { + loadingDialog = QMUITipDialog + .Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create() + if (!activity.isDestroyed) { + try { + loadingDialog.show() + } catch (e: WindowManager.BadTokenException) { + e.printStackTrace() + } + } + } + + fun dismiss() { + if (loadingDialog.isShowing) { + loadingDialog.dismiss() + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt index d34aaa9..b597afa 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt @@ -14,7 +14,7 @@ import com.bumptech.glide.request.RequestOptions import com.casic.br.operationsite.R import com.casic.br.operationsite.extensions.combineImagePath -import com.casic.br.operationsite.utils.DialogManager +import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.vm.AlarmViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -28,9 +28,9 @@ class AlarmDetailActivity : KotlinBaseActivity() { - private lateinit var dialogManager: DialogManager private lateinit var aMap: AMap private lateinit var alarmViewModel: AlarmViewModel + private lateinit var id: String override fun initLayoutView(): Int = R.layout.activity_alarm_detail @@ -43,8 +43,7 @@ } override fun initData() { - val id = intent.getStringExtra(Constant.INTENT_PARAM)!! - dialogManager = DialogManager.obtainInstance(this) + this.id = intent.getStringExtra(Constant.INTENT_PARAM)!! aMap = mapView.map aMap.mapType = AMap.MAP_TYPE_NORMAL @@ -58,6 +57,17 @@ * 数据初始化 * */ alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java) + + //状态监听 + alarmViewModel.loadState.observe(this, { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) + } + + override fun initEvent() { alarmViewModel.obtainAlarmDetail(id) alarmViewModel.detailModel.observe(this, { if (it.code == 200) { @@ -91,17 +101,6 @@ descriptionView.text = detailData.alarmDescription } }) - - alarmViewModel.loadState.observe(this, { - when (it) { - LoadState.Loading -> dialogManager.showLoadingDialog("数据加载中,请稍后...") - else -> dialogManager.dismissLoadingDialog() - } - }) - } - - override fun initEvent() { - } /** diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt index ea961a9..a8c460d 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt @@ -9,7 +9,7 @@ import com.casic.br.operationsite.adapter.AlarmListAdapter import com.casic.br.operationsite.extensions.showEmptyPage import com.casic.br.operationsite.model.AlarmListModel -import com.casic.br.operationsite.utils.DialogManager +import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.vm.AlarmViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -25,7 +25,6 @@ class AlarmListActivity : KotlinBaseActivity() { - private lateinit var dialogManager: DialogManager private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var alarmListAdapter: AlarmListAdapter private lateinit var alarmViewModel: AlarmViewModel @@ -50,9 +49,18 @@ } override fun initData() { - dialogManager = DialogManager.obtainInstance(this) weakReferenceHandler = WeakReferenceHandler(callback) alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java) + + //状态监听 + alarmViewModel.loadState.observe(this, { + if (!isLoadMore && !isRefresh) { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + } + }) } override fun onResume() { @@ -98,19 +106,6 @@ weakReferenceHandler.sendEmptyMessage(2022071201) } }) - - alarmViewModel.loadState.observe(this, { - if (!isLoadMore && !isRefresh) { - when (it) { - is LoadState.Loading -> { - dialogManager.showLoadingDialog("数据加载中,请稍后") - } - else -> { - dialogManager.dismissLoadingDialog() - } - } - } - }) } private fun obtainAlarmListByPage() { diff --git a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt index f30c048..5026c93 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt @@ -12,7 +12,7 @@ import com.casic.br.operationsite.extensions.combineImagePath import com.casic.br.operationsite.extensions.compressImage import com.casic.br.operationsite.extensions.reformat -import com.casic.br.operationsite.utils.DialogManager +import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.utils.LocaleConstant import com.casic.br.operationsite.vm.ApplyViewModel import com.casic.br.operationsite.vm.UploadFileViewModel @@ -36,7 +36,6 @@ class ApplyEnterActivity : KotlinBaseActivity() { private val kTag = "ApplyEnterActivity" - private lateinit var dialogManager: DialogManager private lateinit var imageAdapter: EditableImageAdapter private lateinit var uploadFileViewModel: UploadFileViewModel private lateinit var applyViewModel: ApplyViewModel @@ -55,13 +54,27 @@ } override fun initData() { - dialogManager = DialogManager.obtainInstance(this) uploadFileViewModel = ViewModelProvider(this).get(UploadFileViewModel::class.java) applyViewModel = ViewModelProvider(this).get(ApplyViewModel::class.java) imageAdapter = EditableImageAdapter(this, 1, 13f) addImageRecyclerView.layoutManager = GridLayoutManager(this, 3) addImageRecyclerView.adapter = imageAdapter + + //状态监听 + uploadFileViewModel.loadState.observe(this, { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "图片上传中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) + + applyViewModel.loadState.observe(this, { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "申请中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) } /** @@ -146,9 +159,6 @@ imageAdapter.setupImage(realPaths) } }) - uploadFileViewModel.loadState.observe(this, { - dialogManager.dismissLoadingDialog() - }) confirmApplyButton.setOnClickListener { if (workerNameView.text.isNullOrBlank()) { @@ -187,17 +197,6 @@ finish() } }) - - applyViewModel.loadState.observe(this, { - when (it) { - LoadState.Loading -> { - dialogManager.showLoadingDialog("申请中,请稍后") - } - else -> { - dialogManager.dismissLoadingDialog() - } - } - }) } } diff --git a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt index c3c5cd9..d3d5f72 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt @@ -2,10 +2,7 @@ import androidx.lifecycle.ViewModelProvider import com.casic.br.operationsite.R -import com.casic.br.operationsite.utils.AuthenticationHelper -import com.casic.br.operationsite.utils.DialogManager -import com.casic.br.operationsite.utils.LocaleConstant -import com.casic.br.operationsite.utils.RSAUtils +import com.casic.br.operationsite.utils.* import com.casic.br.operationsite.vm.AuthenticateViewModel import com.casic.br.operationsite.vm.LoginViewModel import com.casic.br.operationsite.vm.UserDetailViewModel @@ -21,7 +18,6 @@ class LoginActivity : KotlinBaseActivity() { - private lateinit var dialogManager: DialogManager private lateinit var authenticateViewModel: AuthenticateViewModel private lateinit var loginViewModel: LoginViewModel private lateinit var userDetailViewModel: UserDetailViewModel @@ -37,10 +33,17 @@ // 设置默认账号密码 userNameView.setText(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) userPasswordView.setText(SaveKeyValues.getValue(LocaleConstant.PASSWORD, "") as String) - dialogManager = DialogManager.obtainInstance(this) authenticateViewModel = ViewModelProvider(this).get(AuthenticateViewModel::class.java) loginViewModel = ViewModelProvider(this).get(LoginViewModel::class.java) userDetailViewModel = ViewModelProvider(this).get(UserDetailViewModel::class.java) + + //状态监听 + loginViewModel.loadState.observe(this, { loginState -> + when (loginState) { + is LoadState.Loading -> LoadingDialogHub.show(this, "登录中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) } override fun initEvent() { @@ -86,16 +89,6 @@ finish() } }) - loginViewModel.loadState.observe(this, { loginState -> - when (loginState) { - is LoadState.Loading -> { - dialogManager.showLoadingDialog("登录中,请稍后...") - } - else -> { - dialogManager.dismissLoadingDialog() - } - } - }) } }) } diff --git a/app/src/main/java/com/casic/br/operationsite/view/PermissionActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/PermissionActivity.kt index 04d396f..0287298 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/PermissionActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/PermissionActivity.kt @@ -1,46 +1,31 @@ package com.casic.br.operationsite.view +import android.os.Bundle +import androidx.appcompat.app.AppCompatActivity import com.amap.api.navi.NaviSetting import com.casic.br.operationsite.R 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.navigatePageTo -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil -import kotlinx.android.synthetic.main.activity_permssion.* import pub.devrel.easypermissions.EasyPermissions import pub.devrel.easypermissions.EasyPermissions.PermissionCallbacks -class PermissionActivity : KotlinBaseActivity(), PermissionCallbacks { +class PermissionActivity : AppCompatActivity(), PermissionCallbacks { - override fun initLayoutView(): Int = R.layout.activity_permssion - - override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(true).init() - ImmerseStatusBarUtil.setColor(this, R.color.white.convertColor(this)) - } - - override fun initData() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) //判断是否有权限,如果版本大于5.1才需要判断(即6.0以上),其他则不需要判断。 if (EasyPermissions.hasPermissions(this, *LocaleConstant.USER_PERMISSIONS)) { startSplashScreenActivity() } else { - enterMainButton.setOnClickListener { - EasyPermissions.requestPermissions( - this@PermissionActivity, - resources.getString(R.string.app_name) + "需要获取相关权限", - LocaleConstant.PERMISSIONS_CODE, - *LocaleConstant.USER_PERMISSIONS - ) - } + EasyPermissions.requestPermissions( + this@PermissionActivity, + resources.getString(R.string.app_name) + "需要获取相关权限", + LocaleConstant.PERMISSIONS_CODE, + *LocaleConstant.USER_PERMISSIONS + ) } } - override fun initEvent() { - - } - private fun startSplashScreenActivity() { //先把导航隐私政策声明,后面导航会用到 NaviSetting.updatePrivacyShow(this, true, true) diff --git a/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt index 9bac3a8..ce81c29 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt @@ -1,7 +1,6 @@ package com.casic.br.operationsite.view import android.content.Context -import android.graphics.Color import android.os.CountDownTimer import android.os.Handler import android.text.Editable @@ -9,7 +8,6 @@ import android.util.Log import android.view.View import androidx.lifecycle.ViewModelProvider -import androidx.recyclerview.widget.GridLayoutManager import com.amap.api.location.AMapLocation import com.casic.br.operationsite.R import com.casic.br.operationsite.callback.OnImageCompressListener @@ -17,10 +15,7 @@ import com.casic.br.operationsite.extensions.compressImage import com.casic.br.operationsite.extensions.reformat import com.casic.br.operationsite.model.UserDetailModel -import com.casic.br.operationsite.utils.DialogManager -import com.casic.br.operationsite.utils.GlideLoadEngine -import com.casic.br.operationsite.utils.LocaleConstant -import com.casic.br.operationsite.utils.LocationHelper +import com.casic.br.operationsite.utils.* import com.casic.br.operationsite.vm.EventViewModel import com.casic.br.operationsite.vm.UploadFileViewModel import com.google.gson.Gson @@ -45,7 +40,6 @@ class UploadEventActivity : KotlinBaseActivity() { private val kTag = "UploadEventActivity" - private lateinit var dialogManager: DialogManager private lateinit var imageAdapter: EditableImageAdapter private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var uploadFileViewModel: UploadFileViewModel @@ -76,13 +70,27 @@ personNumberView.text = userDetail.phone } - dialogManager = DialogManager.obtainInstance(this) weakReferenceHandler = WeakReferenceHandler(callback) uploadFileViewModel = ViewModelProvider(this).get(UploadFileViewModel::class.java) eventViewModel = ViewModelProvider(this).get(EventViewModel::class.java) imageAdapter = EditableImageAdapter(this, 3, 13f) addImageRecyclerView.adapter = imageAdapter + + //状态监听 + uploadFileViewModel.loadState.observe(this, { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "图片上传中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) + + eventViewModel.loadState.observe(this, { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "事件提交中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) } override fun onResume() { @@ -127,16 +135,6 @@ } } }) - uploadFileViewModel.loadState.observe(this, { - when (it) { - LoadState.Loading -> { - dialogManager.showLoadingDialog("图片上传中,请稍后...") - } - else -> { - dialogManager.dismissLoadingDialog() - } - } - }) siteEditView.addTextChangedListener(object : TextWatcher { override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { @@ -187,17 +185,6 @@ finish() } }) - - eventViewModel.loadState.observe(this, { - when (it) { - LoadState.Loading -> { - dialogManager.showLoadingDialog("事件提交中,请稍后") - } - else -> { - dialogManager.dismissLoadingDialog() - } - } - }) } private fun selectPicture() { diff --git a/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt index a9f0300..fce8f4f 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt @@ -12,7 +12,7 @@ import com.amap.api.services.geocoder.RegeocodeQuery import com.amap.api.services.geocoder.RegeocodeResult import com.casic.br.operationsite.R -import com.casic.br.operationsite.utils.DialogManager +import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.vm.WorkSiteViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -29,9 +29,9 @@ class WorkSiteTabActivity : KotlinBaseActivity() { - private lateinit var dialogManager: DialogManager private lateinit var aMap: AMap private lateinit var workSiteViewModel: WorkSiteViewModel + private lateinit var id: String private val geocoderSearch by lazy { GeocodeSearch(this) } private var latLng: LatLng? = null @@ -46,8 +46,7 @@ } override fun initData() { - val id = intent.getStringExtra(Constant.INTENT_PARAM)!! - dialogManager = DialogManager.obtainInstance(this) + this.id = intent.getStringExtra(Constant.INTENT_PARAM)!! /** * 地图初始化设置 @@ -64,6 +63,17 @@ * 数据初始化 * */ workSiteViewModel = ViewModelProvider(this).get(WorkSiteViewModel::class.java) + + //状态监听 + workSiteViewModel.loadState.observe(this, { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) + } + + override fun initEvent() { workSiteViewModel.obtainProjectDetail(id) workSiteViewModel.detailModel.observe(this, { if (it.code == 200) { @@ -117,19 +127,6 @@ } }) - workSiteViewModel.loadState.observe(this, { - when (it) { - LoadState.Loading -> { - dialogManager.showLoadingDialog("数据加载中,请稍后...") - } - else -> { - dialogManager.dismissLoadingDialog() - } - } - }) - } - - override fun initEvent() { navigationView.setOnClickListener { if (latLng == null) { "经纬度异常,无法开启导航".show(this) diff --git a/app/src/main/res/drawable/ic_camera.xml b/app/src/main/res/drawable/ic_camera.xml deleted file mode 100644 index b612ce9..0000000 --- a/app/src/main/res/drawable/ic_camera.xml +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 eb90311..7a6068d 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 @@ -6,7 +6,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration -import androidx.recyclerview.widget.LinearLayoutManager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage @@ -128,8 +127,6 @@ completedRecyclerView!!.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - completedRecyclerView!!.layoutManager = - LinearLayoutManager(requireContext()) completedRecyclerView!!.adapter = workingListAdapter workingListAdapter.setOnItemClickListener(object : WorkingListAdapter.OnItemClickListener { 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 027b98e..0d8b51a 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 @@ -6,7 +6,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration -import androidx.recyclerview.widget.LinearLayoutManager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage @@ -128,7 +127,6 @@ notStartRecyclerView!!.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - notStartRecyclerView!!.layoutManager = LinearLayoutManager(requireContext()) notStartRecyclerView!!.adapter = workingListAdapter workingListAdapter.setOnItemClickListener(object : WorkingListAdapter.OnItemClickListener { 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 6464946..791dfd4 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 @@ -6,7 +6,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration -import androidx.recyclerview.widget.LinearLayoutManager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage @@ -129,7 +128,6 @@ workingRecyclerView!!.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - workingRecyclerView!!.layoutManager = LinearLayoutManager(requireContext()) workingRecyclerView!!.adapter = workingListAdapter workingListAdapter.setOnItemClickListener(object : WorkingListAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/br/operationsite/utils/DialogManager.kt b/app/src/main/java/com/casic/br/operationsite/utils/DialogManager.kt deleted file mode 100644 index a5f3660..0000000 --- a/app/src/main/java/com/casic/br/operationsite/utils/DialogManager.kt +++ /dev/null @@ -1,37 +0,0 @@ -package com.casic.br.operationsite.utils; - -import android.app.Activity -import android.view.WindowManager -import com.pengxh.kt.lite.base.BaseSingleton -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog - -class DialogManager private constructor(private val activity: Activity) { - - private lateinit var loadingDialog: QMUITipDialog - - companion object : BaseSingleton() { - override val creator: (Activity) -> DialogManager - get() = ::DialogManager - } - - fun showLoadingDialog(message: String) { - loadingDialog = QMUITipDialog - .Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create() - if (!activity.isDestroyed) { - try { - loadingDialog.show() - } catch (e: WindowManager.BadTokenException) { - e.printStackTrace() - } - } - } - - fun dismissLoadingDialog() { - if (loadingDialog.isShowing) { - loadingDialog.dismiss() - } - } -} diff --git a/app/src/main/java/com/casic/br/operationsite/utils/LoadingDialogHub.kt b/app/src/main/java/com/casic/br/operationsite/utils/LoadingDialogHub.kt new file mode 100644 index 0000000..ba725c6 --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/utils/LoadingDialogHub.kt @@ -0,0 +1,31 @@ +package com.casic.br.operationsite.utils + +import android.app.Activity +import android.view.WindowManager +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog + +object LoadingDialogHub { + + private lateinit var loadingDialog: QMUITipDialog + + fun show(activity: Activity, message: String) { + loadingDialog = QMUITipDialog + .Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create() + if (!activity.isDestroyed) { + try { + loadingDialog.show() + } catch (e: WindowManager.BadTokenException) { + e.printStackTrace() + } + } + } + + fun dismiss() { + if (loadingDialog.isShowing) { + loadingDialog.dismiss() + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt index d34aaa9..b597afa 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt @@ -14,7 +14,7 @@ import com.bumptech.glide.request.RequestOptions import com.casic.br.operationsite.R import com.casic.br.operationsite.extensions.combineImagePath -import com.casic.br.operationsite.utils.DialogManager +import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.vm.AlarmViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -28,9 +28,9 @@ class AlarmDetailActivity : KotlinBaseActivity() { - private lateinit var dialogManager: DialogManager private lateinit var aMap: AMap private lateinit var alarmViewModel: AlarmViewModel + private lateinit var id: String override fun initLayoutView(): Int = R.layout.activity_alarm_detail @@ -43,8 +43,7 @@ } override fun initData() { - val id = intent.getStringExtra(Constant.INTENT_PARAM)!! - dialogManager = DialogManager.obtainInstance(this) + this.id = intent.getStringExtra(Constant.INTENT_PARAM)!! aMap = mapView.map aMap.mapType = AMap.MAP_TYPE_NORMAL @@ -58,6 +57,17 @@ * 数据初始化 * */ alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java) + + //状态监听 + alarmViewModel.loadState.observe(this, { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) + } + + override fun initEvent() { alarmViewModel.obtainAlarmDetail(id) alarmViewModel.detailModel.observe(this, { if (it.code == 200) { @@ -91,17 +101,6 @@ descriptionView.text = detailData.alarmDescription } }) - - alarmViewModel.loadState.observe(this, { - when (it) { - LoadState.Loading -> dialogManager.showLoadingDialog("数据加载中,请稍后...") - else -> dialogManager.dismissLoadingDialog() - } - }) - } - - override fun initEvent() { - } /** diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt index ea961a9..a8c460d 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt @@ -9,7 +9,7 @@ import com.casic.br.operationsite.adapter.AlarmListAdapter import com.casic.br.operationsite.extensions.showEmptyPage import com.casic.br.operationsite.model.AlarmListModel -import com.casic.br.operationsite.utils.DialogManager +import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.vm.AlarmViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -25,7 +25,6 @@ class AlarmListActivity : KotlinBaseActivity() { - private lateinit var dialogManager: DialogManager private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var alarmListAdapter: AlarmListAdapter private lateinit var alarmViewModel: AlarmViewModel @@ -50,9 +49,18 @@ } override fun initData() { - dialogManager = DialogManager.obtainInstance(this) weakReferenceHandler = WeakReferenceHandler(callback) alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java) + + //状态监听 + alarmViewModel.loadState.observe(this, { + if (!isLoadMore && !isRefresh) { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + } + }) } override fun onResume() { @@ -98,19 +106,6 @@ weakReferenceHandler.sendEmptyMessage(2022071201) } }) - - alarmViewModel.loadState.observe(this, { - if (!isLoadMore && !isRefresh) { - when (it) { - is LoadState.Loading -> { - dialogManager.showLoadingDialog("数据加载中,请稍后") - } - else -> { - dialogManager.dismissLoadingDialog() - } - } - } - }) } private fun obtainAlarmListByPage() { diff --git a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt index f30c048..5026c93 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt @@ -12,7 +12,7 @@ import com.casic.br.operationsite.extensions.combineImagePath import com.casic.br.operationsite.extensions.compressImage import com.casic.br.operationsite.extensions.reformat -import com.casic.br.operationsite.utils.DialogManager +import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.utils.LocaleConstant import com.casic.br.operationsite.vm.ApplyViewModel import com.casic.br.operationsite.vm.UploadFileViewModel @@ -36,7 +36,6 @@ class ApplyEnterActivity : KotlinBaseActivity() { private val kTag = "ApplyEnterActivity" - private lateinit var dialogManager: DialogManager private lateinit var imageAdapter: EditableImageAdapter private lateinit var uploadFileViewModel: UploadFileViewModel private lateinit var applyViewModel: ApplyViewModel @@ -55,13 +54,27 @@ } override fun initData() { - dialogManager = DialogManager.obtainInstance(this) uploadFileViewModel = ViewModelProvider(this).get(UploadFileViewModel::class.java) applyViewModel = ViewModelProvider(this).get(ApplyViewModel::class.java) imageAdapter = EditableImageAdapter(this, 1, 13f) addImageRecyclerView.layoutManager = GridLayoutManager(this, 3) addImageRecyclerView.adapter = imageAdapter + + //状态监听 + uploadFileViewModel.loadState.observe(this, { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "图片上传中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) + + applyViewModel.loadState.observe(this, { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "申请中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) } /** @@ -146,9 +159,6 @@ imageAdapter.setupImage(realPaths) } }) - uploadFileViewModel.loadState.observe(this, { - dialogManager.dismissLoadingDialog() - }) confirmApplyButton.setOnClickListener { if (workerNameView.text.isNullOrBlank()) { @@ -187,17 +197,6 @@ finish() } }) - - applyViewModel.loadState.observe(this, { - when (it) { - LoadState.Loading -> { - dialogManager.showLoadingDialog("申请中,请稍后") - } - else -> { - dialogManager.dismissLoadingDialog() - } - } - }) } } diff --git a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt index c3c5cd9..d3d5f72 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt @@ -2,10 +2,7 @@ import androidx.lifecycle.ViewModelProvider import com.casic.br.operationsite.R -import com.casic.br.operationsite.utils.AuthenticationHelper -import com.casic.br.operationsite.utils.DialogManager -import com.casic.br.operationsite.utils.LocaleConstant -import com.casic.br.operationsite.utils.RSAUtils +import com.casic.br.operationsite.utils.* import com.casic.br.operationsite.vm.AuthenticateViewModel import com.casic.br.operationsite.vm.LoginViewModel import com.casic.br.operationsite.vm.UserDetailViewModel @@ -21,7 +18,6 @@ class LoginActivity : KotlinBaseActivity() { - private lateinit var dialogManager: DialogManager private lateinit var authenticateViewModel: AuthenticateViewModel private lateinit var loginViewModel: LoginViewModel private lateinit var userDetailViewModel: UserDetailViewModel @@ -37,10 +33,17 @@ // 设置默认账号密码 userNameView.setText(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) userPasswordView.setText(SaveKeyValues.getValue(LocaleConstant.PASSWORD, "") as String) - dialogManager = DialogManager.obtainInstance(this) authenticateViewModel = ViewModelProvider(this).get(AuthenticateViewModel::class.java) loginViewModel = ViewModelProvider(this).get(LoginViewModel::class.java) userDetailViewModel = ViewModelProvider(this).get(UserDetailViewModel::class.java) + + //状态监听 + loginViewModel.loadState.observe(this, { loginState -> + when (loginState) { + is LoadState.Loading -> LoadingDialogHub.show(this, "登录中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) } override fun initEvent() { @@ -86,16 +89,6 @@ finish() } }) - loginViewModel.loadState.observe(this, { loginState -> - when (loginState) { - is LoadState.Loading -> { - dialogManager.showLoadingDialog("登录中,请稍后...") - } - else -> { - dialogManager.dismissLoadingDialog() - } - } - }) } }) } diff --git a/app/src/main/java/com/casic/br/operationsite/view/PermissionActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/PermissionActivity.kt index 04d396f..0287298 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/PermissionActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/PermissionActivity.kt @@ -1,46 +1,31 @@ package com.casic.br.operationsite.view +import android.os.Bundle +import androidx.appcompat.app.AppCompatActivity import com.amap.api.navi.NaviSetting import com.casic.br.operationsite.R 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.navigatePageTo -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil -import kotlinx.android.synthetic.main.activity_permssion.* import pub.devrel.easypermissions.EasyPermissions import pub.devrel.easypermissions.EasyPermissions.PermissionCallbacks -class PermissionActivity : KotlinBaseActivity(), PermissionCallbacks { +class PermissionActivity : AppCompatActivity(), PermissionCallbacks { - override fun initLayoutView(): Int = R.layout.activity_permssion - - override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(true).init() - ImmerseStatusBarUtil.setColor(this, R.color.white.convertColor(this)) - } - - override fun initData() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) //判断是否有权限,如果版本大于5.1才需要判断(即6.0以上),其他则不需要判断。 if (EasyPermissions.hasPermissions(this, *LocaleConstant.USER_PERMISSIONS)) { startSplashScreenActivity() } else { - enterMainButton.setOnClickListener { - EasyPermissions.requestPermissions( - this@PermissionActivity, - resources.getString(R.string.app_name) + "需要获取相关权限", - LocaleConstant.PERMISSIONS_CODE, - *LocaleConstant.USER_PERMISSIONS - ) - } + EasyPermissions.requestPermissions( + this@PermissionActivity, + resources.getString(R.string.app_name) + "需要获取相关权限", + LocaleConstant.PERMISSIONS_CODE, + *LocaleConstant.USER_PERMISSIONS + ) } } - override fun initEvent() { - - } - private fun startSplashScreenActivity() { //先把导航隐私政策声明,后面导航会用到 NaviSetting.updatePrivacyShow(this, true, true) diff --git a/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt index 9bac3a8..ce81c29 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt @@ -1,7 +1,6 @@ package com.casic.br.operationsite.view import android.content.Context -import android.graphics.Color import android.os.CountDownTimer import android.os.Handler import android.text.Editable @@ -9,7 +8,6 @@ import android.util.Log import android.view.View import androidx.lifecycle.ViewModelProvider -import androidx.recyclerview.widget.GridLayoutManager import com.amap.api.location.AMapLocation import com.casic.br.operationsite.R import com.casic.br.operationsite.callback.OnImageCompressListener @@ -17,10 +15,7 @@ import com.casic.br.operationsite.extensions.compressImage import com.casic.br.operationsite.extensions.reformat import com.casic.br.operationsite.model.UserDetailModel -import com.casic.br.operationsite.utils.DialogManager -import com.casic.br.operationsite.utils.GlideLoadEngine -import com.casic.br.operationsite.utils.LocaleConstant -import com.casic.br.operationsite.utils.LocationHelper +import com.casic.br.operationsite.utils.* import com.casic.br.operationsite.vm.EventViewModel import com.casic.br.operationsite.vm.UploadFileViewModel import com.google.gson.Gson @@ -45,7 +40,6 @@ class UploadEventActivity : KotlinBaseActivity() { private val kTag = "UploadEventActivity" - private lateinit var dialogManager: DialogManager private lateinit var imageAdapter: EditableImageAdapter private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var uploadFileViewModel: UploadFileViewModel @@ -76,13 +70,27 @@ personNumberView.text = userDetail.phone } - dialogManager = DialogManager.obtainInstance(this) weakReferenceHandler = WeakReferenceHandler(callback) uploadFileViewModel = ViewModelProvider(this).get(UploadFileViewModel::class.java) eventViewModel = ViewModelProvider(this).get(EventViewModel::class.java) imageAdapter = EditableImageAdapter(this, 3, 13f) addImageRecyclerView.adapter = imageAdapter + + //状态监听 + uploadFileViewModel.loadState.observe(this, { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "图片上传中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) + + eventViewModel.loadState.observe(this, { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "事件提交中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) } override fun onResume() { @@ -127,16 +135,6 @@ } } }) - uploadFileViewModel.loadState.observe(this, { - when (it) { - LoadState.Loading -> { - dialogManager.showLoadingDialog("图片上传中,请稍后...") - } - else -> { - dialogManager.dismissLoadingDialog() - } - } - }) siteEditView.addTextChangedListener(object : TextWatcher { override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { @@ -187,17 +185,6 @@ finish() } }) - - eventViewModel.loadState.observe(this, { - when (it) { - LoadState.Loading -> { - dialogManager.showLoadingDialog("事件提交中,请稍后") - } - else -> { - dialogManager.dismissLoadingDialog() - } - } - }) } private fun selectPicture() { diff --git a/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt index a9f0300..fce8f4f 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt @@ -12,7 +12,7 @@ import com.amap.api.services.geocoder.RegeocodeQuery import com.amap.api.services.geocoder.RegeocodeResult import com.casic.br.operationsite.R -import com.casic.br.operationsite.utils.DialogManager +import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.vm.WorkSiteViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -29,9 +29,9 @@ class WorkSiteTabActivity : KotlinBaseActivity() { - private lateinit var dialogManager: DialogManager private lateinit var aMap: AMap private lateinit var workSiteViewModel: WorkSiteViewModel + private lateinit var id: String private val geocoderSearch by lazy { GeocodeSearch(this) } private var latLng: LatLng? = null @@ -46,8 +46,7 @@ } override fun initData() { - val id = intent.getStringExtra(Constant.INTENT_PARAM)!! - dialogManager = DialogManager.obtainInstance(this) + this.id = intent.getStringExtra(Constant.INTENT_PARAM)!! /** * 地图初始化设置 @@ -64,6 +63,17 @@ * 数据初始化 * */ workSiteViewModel = ViewModelProvider(this).get(WorkSiteViewModel::class.java) + + //状态监听 + workSiteViewModel.loadState.observe(this, { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) + } + + override fun initEvent() { workSiteViewModel.obtainProjectDetail(id) workSiteViewModel.detailModel.observe(this, { if (it.code == 200) { @@ -117,19 +127,6 @@ } }) - workSiteViewModel.loadState.observe(this, { - when (it) { - LoadState.Loading -> { - dialogManager.showLoadingDialog("数据加载中,请稍后...") - } - else -> { - dialogManager.dismissLoadingDialog() - } - } - }) - } - - override fun initEvent() { navigationView.setOnClickListener { if (latLng == null) { "经纬度异常,无法开启导航".show(this) diff --git a/app/src/main/res/drawable/ic_camera.xml b/app/src/main/res/drawable/ic_camera.xml deleted file mode 100644 index b612ce9..0000000 --- a/app/src/main/res/drawable/ic_camera.xml +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/ic_device.xml b/app/src/main/res/drawable/ic_device.xml deleted file mode 100644 index 831c4c4..0000000 --- a/app/src/main/res/drawable/ic_device.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - 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 eb90311..7a6068d 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 @@ -6,7 +6,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration -import androidx.recyclerview.widget.LinearLayoutManager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage @@ -128,8 +127,6 @@ completedRecyclerView!!.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - completedRecyclerView!!.layoutManager = - LinearLayoutManager(requireContext()) completedRecyclerView!!.adapter = workingListAdapter workingListAdapter.setOnItemClickListener(object : WorkingListAdapter.OnItemClickListener { 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 027b98e..0d8b51a 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 @@ -6,7 +6,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration -import androidx.recyclerview.widget.LinearLayoutManager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage @@ -128,7 +127,6 @@ notStartRecyclerView!!.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - notStartRecyclerView!!.layoutManager = LinearLayoutManager(requireContext()) notStartRecyclerView!!.adapter = workingListAdapter workingListAdapter.setOnItemClickListener(object : WorkingListAdapter.OnItemClickListener { 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 6464946..791dfd4 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 @@ -6,7 +6,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration -import androidx.recyclerview.widget.LinearLayoutManager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage @@ -129,7 +128,6 @@ workingRecyclerView!!.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - workingRecyclerView!!.layoutManager = LinearLayoutManager(requireContext()) workingRecyclerView!!.adapter = workingListAdapter workingListAdapter.setOnItemClickListener(object : WorkingListAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/br/operationsite/utils/DialogManager.kt b/app/src/main/java/com/casic/br/operationsite/utils/DialogManager.kt deleted file mode 100644 index a5f3660..0000000 --- a/app/src/main/java/com/casic/br/operationsite/utils/DialogManager.kt +++ /dev/null @@ -1,37 +0,0 @@ -package com.casic.br.operationsite.utils; - -import android.app.Activity -import android.view.WindowManager -import com.pengxh.kt.lite.base.BaseSingleton -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog - -class DialogManager private constructor(private val activity: Activity) { - - private lateinit var loadingDialog: QMUITipDialog - - companion object : BaseSingleton() { - override val creator: (Activity) -> DialogManager - get() = ::DialogManager - } - - fun showLoadingDialog(message: String) { - loadingDialog = QMUITipDialog - .Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create() - if (!activity.isDestroyed) { - try { - loadingDialog.show() - } catch (e: WindowManager.BadTokenException) { - e.printStackTrace() - } - } - } - - fun dismissLoadingDialog() { - if (loadingDialog.isShowing) { - loadingDialog.dismiss() - } - } -} diff --git a/app/src/main/java/com/casic/br/operationsite/utils/LoadingDialogHub.kt b/app/src/main/java/com/casic/br/operationsite/utils/LoadingDialogHub.kt new file mode 100644 index 0000000..ba725c6 --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/utils/LoadingDialogHub.kt @@ -0,0 +1,31 @@ +package com.casic.br.operationsite.utils + +import android.app.Activity +import android.view.WindowManager +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog + +object LoadingDialogHub { + + private lateinit var loadingDialog: QMUITipDialog + + fun show(activity: Activity, message: String) { + loadingDialog = QMUITipDialog + .Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create() + if (!activity.isDestroyed) { + try { + loadingDialog.show() + } catch (e: WindowManager.BadTokenException) { + e.printStackTrace() + } + } + } + + fun dismiss() { + if (loadingDialog.isShowing) { + loadingDialog.dismiss() + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt index d34aaa9..b597afa 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt @@ -14,7 +14,7 @@ import com.bumptech.glide.request.RequestOptions import com.casic.br.operationsite.R import com.casic.br.operationsite.extensions.combineImagePath -import com.casic.br.operationsite.utils.DialogManager +import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.vm.AlarmViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -28,9 +28,9 @@ class AlarmDetailActivity : KotlinBaseActivity() { - private lateinit var dialogManager: DialogManager private lateinit var aMap: AMap private lateinit var alarmViewModel: AlarmViewModel + private lateinit var id: String override fun initLayoutView(): Int = R.layout.activity_alarm_detail @@ -43,8 +43,7 @@ } override fun initData() { - val id = intent.getStringExtra(Constant.INTENT_PARAM)!! - dialogManager = DialogManager.obtainInstance(this) + this.id = intent.getStringExtra(Constant.INTENT_PARAM)!! aMap = mapView.map aMap.mapType = AMap.MAP_TYPE_NORMAL @@ -58,6 +57,17 @@ * 数据初始化 * */ alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java) + + //状态监听 + alarmViewModel.loadState.observe(this, { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) + } + + override fun initEvent() { alarmViewModel.obtainAlarmDetail(id) alarmViewModel.detailModel.observe(this, { if (it.code == 200) { @@ -91,17 +101,6 @@ descriptionView.text = detailData.alarmDescription } }) - - alarmViewModel.loadState.observe(this, { - when (it) { - LoadState.Loading -> dialogManager.showLoadingDialog("数据加载中,请稍后...") - else -> dialogManager.dismissLoadingDialog() - } - }) - } - - override fun initEvent() { - } /** diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt index ea961a9..a8c460d 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt @@ -9,7 +9,7 @@ import com.casic.br.operationsite.adapter.AlarmListAdapter import com.casic.br.operationsite.extensions.showEmptyPage import com.casic.br.operationsite.model.AlarmListModel -import com.casic.br.operationsite.utils.DialogManager +import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.vm.AlarmViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -25,7 +25,6 @@ class AlarmListActivity : KotlinBaseActivity() { - private lateinit var dialogManager: DialogManager private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var alarmListAdapter: AlarmListAdapter private lateinit var alarmViewModel: AlarmViewModel @@ -50,9 +49,18 @@ } override fun initData() { - dialogManager = DialogManager.obtainInstance(this) weakReferenceHandler = WeakReferenceHandler(callback) alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java) + + //状态监听 + alarmViewModel.loadState.observe(this, { + if (!isLoadMore && !isRefresh) { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + } + }) } override fun onResume() { @@ -98,19 +106,6 @@ weakReferenceHandler.sendEmptyMessage(2022071201) } }) - - alarmViewModel.loadState.observe(this, { - if (!isLoadMore && !isRefresh) { - when (it) { - is LoadState.Loading -> { - dialogManager.showLoadingDialog("数据加载中,请稍后") - } - else -> { - dialogManager.dismissLoadingDialog() - } - } - } - }) } private fun obtainAlarmListByPage() { diff --git a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt index f30c048..5026c93 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt @@ -12,7 +12,7 @@ import com.casic.br.operationsite.extensions.combineImagePath import com.casic.br.operationsite.extensions.compressImage import com.casic.br.operationsite.extensions.reformat -import com.casic.br.operationsite.utils.DialogManager +import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.utils.LocaleConstant import com.casic.br.operationsite.vm.ApplyViewModel import com.casic.br.operationsite.vm.UploadFileViewModel @@ -36,7 +36,6 @@ class ApplyEnterActivity : KotlinBaseActivity() { private val kTag = "ApplyEnterActivity" - private lateinit var dialogManager: DialogManager private lateinit var imageAdapter: EditableImageAdapter private lateinit var uploadFileViewModel: UploadFileViewModel private lateinit var applyViewModel: ApplyViewModel @@ -55,13 +54,27 @@ } override fun initData() { - dialogManager = DialogManager.obtainInstance(this) uploadFileViewModel = ViewModelProvider(this).get(UploadFileViewModel::class.java) applyViewModel = ViewModelProvider(this).get(ApplyViewModel::class.java) imageAdapter = EditableImageAdapter(this, 1, 13f) addImageRecyclerView.layoutManager = GridLayoutManager(this, 3) addImageRecyclerView.adapter = imageAdapter + + //状态监听 + uploadFileViewModel.loadState.observe(this, { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "图片上传中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) + + applyViewModel.loadState.observe(this, { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "申请中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) } /** @@ -146,9 +159,6 @@ imageAdapter.setupImage(realPaths) } }) - uploadFileViewModel.loadState.observe(this, { - dialogManager.dismissLoadingDialog() - }) confirmApplyButton.setOnClickListener { if (workerNameView.text.isNullOrBlank()) { @@ -187,17 +197,6 @@ finish() } }) - - applyViewModel.loadState.observe(this, { - when (it) { - LoadState.Loading -> { - dialogManager.showLoadingDialog("申请中,请稍后") - } - else -> { - dialogManager.dismissLoadingDialog() - } - } - }) } } diff --git a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt index c3c5cd9..d3d5f72 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt @@ -2,10 +2,7 @@ import androidx.lifecycle.ViewModelProvider import com.casic.br.operationsite.R -import com.casic.br.operationsite.utils.AuthenticationHelper -import com.casic.br.operationsite.utils.DialogManager -import com.casic.br.operationsite.utils.LocaleConstant -import com.casic.br.operationsite.utils.RSAUtils +import com.casic.br.operationsite.utils.* import com.casic.br.operationsite.vm.AuthenticateViewModel import com.casic.br.operationsite.vm.LoginViewModel import com.casic.br.operationsite.vm.UserDetailViewModel @@ -21,7 +18,6 @@ class LoginActivity : KotlinBaseActivity() { - private lateinit var dialogManager: DialogManager private lateinit var authenticateViewModel: AuthenticateViewModel private lateinit var loginViewModel: LoginViewModel private lateinit var userDetailViewModel: UserDetailViewModel @@ -37,10 +33,17 @@ // 设置默认账号密码 userNameView.setText(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) userPasswordView.setText(SaveKeyValues.getValue(LocaleConstant.PASSWORD, "") as String) - dialogManager = DialogManager.obtainInstance(this) authenticateViewModel = ViewModelProvider(this).get(AuthenticateViewModel::class.java) loginViewModel = ViewModelProvider(this).get(LoginViewModel::class.java) userDetailViewModel = ViewModelProvider(this).get(UserDetailViewModel::class.java) + + //状态监听 + loginViewModel.loadState.observe(this, { loginState -> + when (loginState) { + is LoadState.Loading -> LoadingDialogHub.show(this, "登录中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) } override fun initEvent() { @@ -86,16 +89,6 @@ finish() } }) - loginViewModel.loadState.observe(this, { loginState -> - when (loginState) { - is LoadState.Loading -> { - dialogManager.showLoadingDialog("登录中,请稍后...") - } - else -> { - dialogManager.dismissLoadingDialog() - } - } - }) } }) } diff --git a/app/src/main/java/com/casic/br/operationsite/view/PermissionActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/PermissionActivity.kt index 04d396f..0287298 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/PermissionActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/PermissionActivity.kt @@ -1,46 +1,31 @@ package com.casic.br.operationsite.view +import android.os.Bundle +import androidx.appcompat.app.AppCompatActivity import com.amap.api.navi.NaviSetting import com.casic.br.operationsite.R 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.navigatePageTo -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil -import kotlinx.android.synthetic.main.activity_permssion.* import pub.devrel.easypermissions.EasyPermissions import pub.devrel.easypermissions.EasyPermissions.PermissionCallbacks -class PermissionActivity : KotlinBaseActivity(), PermissionCallbacks { +class PermissionActivity : AppCompatActivity(), PermissionCallbacks { - override fun initLayoutView(): Int = R.layout.activity_permssion - - override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(true).init() - ImmerseStatusBarUtil.setColor(this, R.color.white.convertColor(this)) - } - - override fun initData() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) //判断是否有权限,如果版本大于5.1才需要判断(即6.0以上),其他则不需要判断。 if (EasyPermissions.hasPermissions(this, *LocaleConstant.USER_PERMISSIONS)) { startSplashScreenActivity() } else { - enterMainButton.setOnClickListener { - EasyPermissions.requestPermissions( - this@PermissionActivity, - resources.getString(R.string.app_name) + "需要获取相关权限", - LocaleConstant.PERMISSIONS_CODE, - *LocaleConstant.USER_PERMISSIONS - ) - } + EasyPermissions.requestPermissions( + this@PermissionActivity, + resources.getString(R.string.app_name) + "需要获取相关权限", + LocaleConstant.PERMISSIONS_CODE, + *LocaleConstant.USER_PERMISSIONS + ) } } - override fun initEvent() { - - } - private fun startSplashScreenActivity() { //先把导航隐私政策声明,后面导航会用到 NaviSetting.updatePrivacyShow(this, true, true) diff --git a/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt index 9bac3a8..ce81c29 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt @@ -1,7 +1,6 @@ package com.casic.br.operationsite.view import android.content.Context -import android.graphics.Color import android.os.CountDownTimer import android.os.Handler import android.text.Editable @@ -9,7 +8,6 @@ import android.util.Log import android.view.View import androidx.lifecycle.ViewModelProvider -import androidx.recyclerview.widget.GridLayoutManager import com.amap.api.location.AMapLocation import com.casic.br.operationsite.R import com.casic.br.operationsite.callback.OnImageCompressListener @@ -17,10 +15,7 @@ import com.casic.br.operationsite.extensions.compressImage import com.casic.br.operationsite.extensions.reformat import com.casic.br.operationsite.model.UserDetailModel -import com.casic.br.operationsite.utils.DialogManager -import com.casic.br.operationsite.utils.GlideLoadEngine -import com.casic.br.operationsite.utils.LocaleConstant -import com.casic.br.operationsite.utils.LocationHelper +import com.casic.br.operationsite.utils.* import com.casic.br.operationsite.vm.EventViewModel import com.casic.br.operationsite.vm.UploadFileViewModel import com.google.gson.Gson @@ -45,7 +40,6 @@ class UploadEventActivity : KotlinBaseActivity() { private val kTag = "UploadEventActivity" - private lateinit var dialogManager: DialogManager private lateinit var imageAdapter: EditableImageAdapter private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var uploadFileViewModel: UploadFileViewModel @@ -76,13 +70,27 @@ personNumberView.text = userDetail.phone } - dialogManager = DialogManager.obtainInstance(this) weakReferenceHandler = WeakReferenceHandler(callback) uploadFileViewModel = ViewModelProvider(this).get(UploadFileViewModel::class.java) eventViewModel = ViewModelProvider(this).get(EventViewModel::class.java) imageAdapter = EditableImageAdapter(this, 3, 13f) addImageRecyclerView.adapter = imageAdapter + + //状态监听 + uploadFileViewModel.loadState.observe(this, { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "图片上传中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) + + eventViewModel.loadState.observe(this, { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "事件提交中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) } override fun onResume() { @@ -127,16 +135,6 @@ } } }) - uploadFileViewModel.loadState.observe(this, { - when (it) { - LoadState.Loading -> { - dialogManager.showLoadingDialog("图片上传中,请稍后...") - } - else -> { - dialogManager.dismissLoadingDialog() - } - } - }) siteEditView.addTextChangedListener(object : TextWatcher { override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { @@ -187,17 +185,6 @@ finish() } }) - - eventViewModel.loadState.observe(this, { - when (it) { - LoadState.Loading -> { - dialogManager.showLoadingDialog("事件提交中,请稍后") - } - else -> { - dialogManager.dismissLoadingDialog() - } - } - }) } private fun selectPicture() { diff --git a/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt index a9f0300..fce8f4f 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt @@ -12,7 +12,7 @@ import com.amap.api.services.geocoder.RegeocodeQuery import com.amap.api.services.geocoder.RegeocodeResult import com.casic.br.operationsite.R -import com.casic.br.operationsite.utils.DialogManager +import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.vm.WorkSiteViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -29,9 +29,9 @@ class WorkSiteTabActivity : KotlinBaseActivity() { - private lateinit var dialogManager: DialogManager private lateinit var aMap: AMap private lateinit var workSiteViewModel: WorkSiteViewModel + private lateinit var id: String private val geocoderSearch by lazy { GeocodeSearch(this) } private var latLng: LatLng? = null @@ -46,8 +46,7 @@ } override fun initData() { - val id = intent.getStringExtra(Constant.INTENT_PARAM)!! - dialogManager = DialogManager.obtainInstance(this) + this.id = intent.getStringExtra(Constant.INTENT_PARAM)!! /** * 地图初始化设置 @@ -64,6 +63,17 @@ * 数据初始化 * */ workSiteViewModel = ViewModelProvider(this).get(WorkSiteViewModel::class.java) + + //状态监听 + workSiteViewModel.loadState.observe(this, { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) + } + + override fun initEvent() { workSiteViewModel.obtainProjectDetail(id) workSiteViewModel.detailModel.observe(this, { if (it.code == 200) { @@ -117,19 +127,6 @@ } }) - workSiteViewModel.loadState.observe(this, { - when (it) { - LoadState.Loading -> { - dialogManager.showLoadingDialog("数据加载中,请稍后...") - } - else -> { - dialogManager.dismissLoadingDialog() - } - } - }) - } - - override fun initEvent() { navigationView.setOnClickListener { if (latLng == null) { "经纬度异常,无法开启导航".show(this) diff --git a/app/src/main/res/drawable/ic_camera.xml b/app/src/main/res/drawable/ic_camera.xml deleted file mode 100644 index b612ce9..0000000 --- a/app/src/main/res/drawable/ic_camera.xml +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/ic_device.xml b/app/src/main/res/drawable/ic_device.xml deleted file mode 100644 index 831c4c4..0000000 --- a/app/src/main/res/drawable/ic_device.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/ic_location.xml b/app/src/main/res/drawable/ic_location.xml deleted file mode 100644 index 52e376f..0000000 --- a/app/src/main/res/drawable/ic_location.xml +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - - - - - - - - - - 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 eb90311..7a6068d 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 @@ -6,7 +6,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration -import androidx.recyclerview.widget.LinearLayoutManager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage @@ -128,8 +127,6 @@ completedRecyclerView!!.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - completedRecyclerView!!.layoutManager = - LinearLayoutManager(requireContext()) completedRecyclerView!!.adapter = workingListAdapter workingListAdapter.setOnItemClickListener(object : WorkingListAdapter.OnItemClickListener { 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 027b98e..0d8b51a 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 @@ -6,7 +6,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration -import androidx.recyclerview.widget.LinearLayoutManager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage @@ -128,7 +127,6 @@ notStartRecyclerView!!.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - notStartRecyclerView!!.layoutManager = LinearLayoutManager(requireContext()) notStartRecyclerView!!.adapter = workingListAdapter workingListAdapter.setOnItemClickListener(object : WorkingListAdapter.OnItemClickListener { 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 6464946..791dfd4 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 @@ -6,7 +6,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration -import androidx.recyclerview.widget.LinearLayoutManager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage @@ -129,7 +128,6 @@ workingRecyclerView!!.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - workingRecyclerView!!.layoutManager = LinearLayoutManager(requireContext()) workingRecyclerView!!.adapter = workingListAdapter workingListAdapter.setOnItemClickListener(object : WorkingListAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/br/operationsite/utils/DialogManager.kt b/app/src/main/java/com/casic/br/operationsite/utils/DialogManager.kt deleted file mode 100644 index a5f3660..0000000 --- a/app/src/main/java/com/casic/br/operationsite/utils/DialogManager.kt +++ /dev/null @@ -1,37 +0,0 @@ -package com.casic.br.operationsite.utils; - -import android.app.Activity -import android.view.WindowManager -import com.pengxh.kt.lite.base.BaseSingleton -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog - -class DialogManager private constructor(private val activity: Activity) { - - private lateinit var loadingDialog: QMUITipDialog - - companion object : BaseSingleton() { - override val creator: (Activity) -> DialogManager - get() = ::DialogManager - } - - fun showLoadingDialog(message: String) { - loadingDialog = QMUITipDialog - .Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create() - if (!activity.isDestroyed) { - try { - loadingDialog.show() - } catch (e: WindowManager.BadTokenException) { - e.printStackTrace() - } - } - } - - fun dismissLoadingDialog() { - if (loadingDialog.isShowing) { - loadingDialog.dismiss() - } - } -} diff --git a/app/src/main/java/com/casic/br/operationsite/utils/LoadingDialogHub.kt b/app/src/main/java/com/casic/br/operationsite/utils/LoadingDialogHub.kt new file mode 100644 index 0000000..ba725c6 --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/utils/LoadingDialogHub.kt @@ -0,0 +1,31 @@ +package com.casic.br.operationsite.utils + +import android.app.Activity +import android.view.WindowManager +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog + +object LoadingDialogHub { + + private lateinit var loadingDialog: QMUITipDialog + + fun show(activity: Activity, message: String) { + loadingDialog = QMUITipDialog + .Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create() + if (!activity.isDestroyed) { + try { + loadingDialog.show() + } catch (e: WindowManager.BadTokenException) { + e.printStackTrace() + } + } + } + + fun dismiss() { + if (loadingDialog.isShowing) { + loadingDialog.dismiss() + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt index d34aaa9..b597afa 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt @@ -14,7 +14,7 @@ import com.bumptech.glide.request.RequestOptions import com.casic.br.operationsite.R import com.casic.br.operationsite.extensions.combineImagePath -import com.casic.br.operationsite.utils.DialogManager +import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.vm.AlarmViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -28,9 +28,9 @@ class AlarmDetailActivity : KotlinBaseActivity() { - private lateinit var dialogManager: DialogManager private lateinit var aMap: AMap private lateinit var alarmViewModel: AlarmViewModel + private lateinit var id: String override fun initLayoutView(): Int = R.layout.activity_alarm_detail @@ -43,8 +43,7 @@ } override fun initData() { - val id = intent.getStringExtra(Constant.INTENT_PARAM)!! - dialogManager = DialogManager.obtainInstance(this) + this.id = intent.getStringExtra(Constant.INTENT_PARAM)!! aMap = mapView.map aMap.mapType = AMap.MAP_TYPE_NORMAL @@ -58,6 +57,17 @@ * 数据初始化 * */ alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java) + + //状态监听 + alarmViewModel.loadState.observe(this, { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) + } + + override fun initEvent() { alarmViewModel.obtainAlarmDetail(id) alarmViewModel.detailModel.observe(this, { if (it.code == 200) { @@ -91,17 +101,6 @@ descriptionView.text = detailData.alarmDescription } }) - - alarmViewModel.loadState.observe(this, { - when (it) { - LoadState.Loading -> dialogManager.showLoadingDialog("数据加载中,请稍后...") - else -> dialogManager.dismissLoadingDialog() - } - }) - } - - override fun initEvent() { - } /** diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt index ea961a9..a8c460d 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt @@ -9,7 +9,7 @@ import com.casic.br.operationsite.adapter.AlarmListAdapter import com.casic.br.operationsite.extensions.showEmptyPage import com.casic.br.operationsite.model.AlarmListModel -import com.casic.br.operationsite.utils.DialogManager +import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.vm.AlarmViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -25,7 +25,6 @@ class AlarmListActivity : KotlinBaseActivity() { - private lateinit var dialogManager: DialogManager private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var alarmListAdapter: AlarmListAdapter private lateinit var alarmViewModel: AlarmViewModel @@ -50,9 +49,18 @@ } override fun initData() { - dialogManager = DialogManager.obtainInstance(this) weakReferenceHandler = WeakReferenceHandler(callback) alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java) + + //状态监听 + alarmViewModel.loadState.observe(this, { + if (!isLoadMore && !isRefresh) { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + } + }) } override fun onResume() { @@ -98,19 +106,6 @@ weakReferenceHandler.sendEmptyMessage(2022071201) } }) - - alarmViewModel.loadState.observe(this, { - if (!isLoadMore && !isRefresh) { - when (it) { - is LoadState.Loading -> { - dialogManager.showLoadingDialog("数据加载中,请稍后") - } - else -> { - dialogManager.dismissLoadingDialog() - } - } - } - }) } private fun obtainAlarmListByPage() { diff --git a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt index f30c048..5026c93 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt @@ -12,7 +12,7 @@ import com.casic.br.operationsite.extensions.combineImagePath import com.casic.br.operationsite.extensions.compressImage import com.casic.br.operationsite.extensions.reformat -import com.casic.br.operationsite.utils.DialogManager +import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.utils.LocaleConstant import com.casic.br.operationsite.vm.ApplyViewModel import com.casic.br.operationsite.vm.UploadFileViewModel @@ -36,7 +36,6 @@ class ApplyEnterActivity : KotlinBaseActivity() { private val kTag = "ApplyEnterActivity" - private lateinit var dialogManager: DialogManager private lateinit var imageAdapter: EditableImageAdapter private lateinit var uploadFileViewModel: UploadFileViewModel private lateinit var applyViewModel: ApplyViewModel @@ -55,13 +54,27 @@ } override fun initData() { - dialogManager = DialogManager.obtainInstance(this) uploadFileViewModel = ViewModelProvider(this).get(UploadFileViewModel::class.java) applyViewModel = ViewModelProvider(this).get(ApplyViewModel::class.java) imageAdapter = EditableImageAdapter(this, 1, 13f) addImageRecyclerView.layoutManager = GridLayoutManager(this, 3) addImageRecyclerView.adapter = imageAdapter + + //状态监听 + uploadFileViewModel.loadState.observe(this, { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "图片上传中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) + + applyViewModel.loadState.observe(this, { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "申请中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) } /** @@ -146,9 +159,6 @@ imageAdapter.setupImage(realPaths) } }) - uploadFileViewModel.loadState.observe(this, { - dialogManager.dismissLoadingDialog() - }) confirmApplyButton.setOnClickListener { if (workerNameView.text.isNullOrBlank()) { @@ -187,17 +197,6 @@ finish() } }) - - applyViewModel.loadState.observe(this, { - when (it) { - LoadState.Loading -> { - dialogManager.showLoadingDialog("申请中,请稍后") - } - else -> { - dialogManager.dismissLoadingDialog() - } - } - }) } } diff --git a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt index c3c5cd9..d3d5f72 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt @@ -2,10 +2,7 @@ import androidx.lifecycle.ViewModelProvider import com.casic.br.operationsite.R -import com.casic.br.operationsite.utils.AuthenticationHelper -import com.casic.br.operationsite.utils.DialogManager -import com.casic.br.operationsite.utils.LocaleConstant -import com.casic.br.operationsite.utils.RSAUtils +import com.casic.br.operationsite.utils.* import com.casic.br.operationsite.vm.AuthenticateViewModel import com.casic.br.operationsite.vm.LoginViewModel import com.casic.br.operationsite.vm.UserDetailViewModel @@ -21,7 +18,6 @@ class LoginActivity : KotlinBaseActivity() { - private lateinit var dialogManager: DialogManager private lateinit var authenticateViewModel: AuthenticateViewModel private lateinit var loginViewModel: LoginViewModel private lateinit var userDetailViewModel: UserDetailViewModel @@ -37,10 +33,17 @@ // 设置默认账号密码 userNameView.setText(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) userPasswordView.setText(SaveKeyValues.getValue(LocaleConstant.PASSWORD, "") as String) - dialogManager = DialogManager.obtainInstance(this) authenticateViewModel = ViewModelProvider(this).get(AuthenticateViewModel::class.java) loginViewModel = ViewModelProvider(this).get(LoginViewModel::class.java) userDetailViewModel = ViewModelProvider(this).get(UserDetailViewModel::class.java) + + //状态监听 + loginViewModel.loadState.observe(this, { loginState -> + when (loginState) { + is LoadState.Loading -> LoadingDialogHub.show(this, "登录中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) } override fun initEvent() { @@ -86,16 +89,6 @@ finish() } }) - loginViewModel.loadState.observe(this, { loginState -> - when (loginState) { - is LoadState.Loading -> { - dialogManager.showLoadingDialog("登录中,请稍后...") - } - else -> { - dialogManager.dismissLoadingDialog() - } - } - }) } }) } diff --git a/app/src/main/java/com/casic/br/operationsite/view/PermissionActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/PermissionActivity.kt index 04d396f..0287298 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/PermissionActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/PermissionActivity.kt @@ -1,46 +1,31 @@ package com.casic.br.operationsite.view +import android.os.Bundle +import androidx.appcompat.app.AppCompatActivity import com.amap.api.navi.NaviSetting import com.casic.br.operationsite.R 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.navigatePageTo -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil -import kotlinx.android.synthetic.main.activity_permssion.* import pub.devrel.easypermissions.EasyPermissions import pub.devrel.easypermissions.EasyPermissions.PermissionCallbacks -class PermissionActivity : KotlinBaseActivity(), PermissionCallbacks { +class PermissionActivity : AppCompatActivity(), PermissionCallbacks { - override fun initLayoutView(): Int = R.layout.activity_permssion - - override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(true).init() - ImmerseStatusBarUtil.setColor(this, R.color.white.convertColor(this)) - } - - override fun initData() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) //判断是否有权限,如果版本大于5.1才需要判断(即6.0以上),其他则不需要判断。 if (EasyPermissions.hasPermissions(this, *LocaleConstant.USER_PERMISSIONS)) { startSplashScreenActivity() } else { - enterMainButton.setOnClickListener { - EasyPermissions.requestPermissions( - this@PermissionActivity, - resources.getString(R.string.app_name) + "需要获取相关权限", - LocaleConstant.PERMISSIONS_CODE, - *LocaleConstant.USER_PERMISSIONS - ) - } + EasyPermissions.requestPermissions( + this@PermissionActivity, + resources.getString(R.string.app_name) + "需要获取相关权限", + LocaleConstant.PERMISSIONS_CODE, + *LocaleConstant.USER_PERMISSIONS + ) } } - override fun initEvent() { - - } - private fun startSplashScreenActivity() { //先把导航隐私政策声明,后面导航会用到 NaviSetting.updatePrivacyShow(this, true, true) diff --git a/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt index 9bac3a8..ce81c29 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt @@ -1,7 +1,6 @@ package com.casic.br.operationsite.view import android.content.Context -import android.graphics.Color import android.os.CountDownTimer import android.os.Handler import android.text.Editable @@ -9,7 +8,6 @@ import android.util.Log import android.view.View import androidx.lifecycle.ViewModelProvider -import androidx.recyclerview.widget.GridLayoutManager import com.amap.api.location.AMapLocation import com.casic.br.operationsite.R import com.casic.br.operationsite.callback.OnImageCompressListener @@ -17,10 +15,7 @@ import com.casic.br.operationsite.extensions.compressImage import com.casic.br.operationsite.extensions.reformat import com.casic.br.operationsite.model.UserDetailModel -import com.casic.br.operationsite.utils.DialogManager -import com.casic.br.operationsite.utils.GlideLoadEngine -import com.casic.br.operationsite.utils.LocaleConstant -import com.casic.br.operationsite.utils.LocationHelper +import com.casic.br.operationsite.utils.* import com.casic.br.operationsite.vm.EventViewModel import com.casic.br.operationsite.vm.UploadFileViewModel import com.google.gson.Gson @@ -45,7 +40,6 @@ class UploadEventActivity : KotlinBaseActivity() { private val kTag = "UploadEventActivity" - private lateinit var dialogManager: DialogManager private lateinit var imageAdapter: EditableImageAdapter private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var uploadFileViewModel: UploadFileViewModel @@ -76,13 +70,27 @@ personNumberView.text = userDetail.phone } - dialogManager = DialogManager.obtainInstance(this) weakReferenceHandler = WeakReferenceHandler(callback) uploadFileViewModel = ViewModelProvider(this).get(UploadFileViewModel::class.java) eventViewModel = ViewModelProvider(this).get(EventViewModel::class.java) imageAdapter = EditableImageAdapter(this, 3, 13f) addImageRecyclerView.adapter = imageAdapter + + //状态监听 + uploadFileViewModel.loadState.observe(this, { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "图片上传中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) + + eventViewModel.loadState.observe(this, { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "事件提交中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) } override fun onResume() { @@ -127,16 +135,6 @@ } } }) - uploadFileViewModel.loadState.observe(this, { - when (it) { - LoadState.Loading -> { - dialogManager.showLoadingDialog("图片上传中,请稍后...") - } - else -> { - dialogManager.dismissLoadingDialog() - } - } - }) siteEditView.addTextChangedListener(object : TextWatcher { override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { @@ -187,17 +185,6 @@ finish() } }) - - eventViewModel.loadState.observe(this, { - when (it) { - LoadState.Loading -> { - dialogManager.showLoadingDialog("事件提交中,请稍后") - } - else -> { - dialogManager.dismissLoadingDialog() - } - } - }) } private fun selectPicture() { diff --git a/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt index a9f0300..fce8f4f 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt @@ -12,7 +12,7 @@ import com.amap.api.services.geocoder.RegeocodeQuery import com.amap.api.services.geocoder.RegeocodeResult import com.casic.br.operationsite.R -import com.casic.br.operationsite.utils.DialogManager +import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.vm.WorkSiteViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -29,9 +29,9 @@ class WorkSiteTabActivity : KotlinBaseActivity() { - private lateinit var dialogManager: DialogManager private lateinit var aMap: AMap private lateinit var workSiteViewModel: WorkSiteViewModel + private lateinit var id: String private val geocoderSearch by lazy { GeocodeSearch(this) } private var latLng: LatLng? = null @@ -46,8 +46,7 @@ } override fun initData() { - val id = intent.getStringExtra(Constant.INTENT_PARAM)!! - dialogManager = DialogManager.obtainInstance(this) + this.id = intent.getStringExtra(Constant.INTENT_PARAM)!! /** * 地图初始化设置 @@ -64,6 +63,17 @@ * 数据初始化 * */ workSiteViewModel = ViewModelProvider(this).get(WorkSiteViewModel::class.java) + + //状态监听 + workSiteViewModel.loadState.observe(this, { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) + } + + override fun initEvent() { workSiteViewModel.obtainProjectDetail(id) workSiteViewModel.detailModel.observe(this, { if (it.code == 200) { @@ -117,19 +127,6 @@ } }) - workSiteViewModel.loadState.observe(this, { - when (it) { - LoadState.Loading -> { - dialogManager.showLoadingDialog("数据加载中,请稍后...") - } - else -> { - dialogManager.dismissLoadingDialog() - } - } - }) - } - - override fun initEvent() { navigationView.setOnClickListener { if (latLng == null) { "经纬度异常,无法开启导航".show(this) diff --git a/app/src/main/res/drawable/ic_camera.xml b/app/src/main/res/drawable/ic_camera.xml deleted file mode 100644 index b612ce9..0000000 --- a/app/src/main/res/drawable/ic_camera.xml +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/ic_device.xml b/app/src/main/res/drawable/ic_device.xml deleted file mode 100644 index 831c4c4..0000000 --- a/app/src/main/res/drawable/ic_device.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/ic_location.xml b/app/src/main/res/drawable/ic_location.xml deleted file mode 100644 index 52e376f..0000000 --- a/app/src/main/res/drawable/ic_location.xml +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/ic_storage.xml b/app/src/main/res/drawable/ic_storage.xml deleted file mode 100644 index 898c1cf..0000000 --- a/app/src/main/res/drawable/ic_storage.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - - 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 eb90311..7a6068d 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 @@ -6,7 +6,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration -import androidx.recyclerview.widget.LinearLayoutManager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage @@ -128,8 +127,6 @@ completedRecyclerView!!.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - completedRecyclerView!!.layoutManager = - LinearLayoutManager(requireContext()) completedRecyclerView!!.adapter = workingListAdapter workingListAdapter.setOnItemClickListener(object : WorkingListAdapter.OnItemClickListener { 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 027b98e..0d8b51a 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 @@ -6,7 +6,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration -import androidx.recyclerview.widget.LinearLayoutManager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage @@ -128,7 +127,6 @@ notStartRecyclerView!!.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - notStartRecyclerView!!.layoutManager = LinearLayoutManager(requireContext()) notStartRecyclerView!!.adapter = workingListAdapter workingListAdapter.setOnItemClickListener(object : WorkingListAdapter.OnItemClickListener { 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 6464946..791dfd4 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 @@ -6,7 +6,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration -import androidx.recyclerview.widget.LinearLayoutManager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.WorkingListAdapter import com.casic.br.operationsite.extensions.showEmptyPage @@ -129,7 +128,6 @@ workingRecyclerView!!.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - workingRecyclerView!!.layoutManager = LinearLayoutManager(requireContext()) workingRecyclerView!!.adapter = workingListAdapter workingListAdapter.setOnItemClickListener(object : WorkingListAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/br/operationsite/utils/DialogManager.kt b/app/src/main/java/com/casic/br/operationsite/utils/DialogManager.kt deleted file mode 100644 index a5f3660..0000000 --- a/app/src/main/java/com/casic/br/operationsite/utils/DialogManager.kt +++ /dev/null @@ -1,37 +0,0 @@ -package com.casic.br.operationsite.utils; - -import android.app.Activity -import android.view.WindowManager -import com.pengxh.kt.lite.base.BaseSingleton -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog - -class DialogManager private constructor(private val activity: Activity) { - - private lateinit var loadingDialog: QMUITipDialog - - companion object : BaseSingleton() { - override val creator: (Activity) -> DialogManager - get() = ::DialogManager - } - - fun showLoadingDialog(message: String) { - loadingDialog = QMUITipDialog - .Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create() - if (!activity.isDestroyed) { - try { - loadingDialog.show() - } catch (e: WindowManager.BadTokenException) { - e.printStackTrace() - } - } - } - - fun dismissLoadingDialog() { - if (loadingDialog.isShowing) { - loadingDialog.dismiss() - } - } -} diff --git a/app/src/main/java/com/casic/br/operationsite/utils/LoadingDialogHub.kt b/app/src/main/java/com/casic/br/operationsite/utils/LoadingDialogHub.kt new file mode 100644 index 0000000..ba725c6 --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/utils/LoadingDialogHub.kt @@ -0,0 +1,31 @@ +package com.casic.br.operationsite.utils + +import android.app.Activity +import android.view.WindowManager +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog + +object LoadingDialogHub { + + private lateinit var loadingDialog: QMUITipDialog + + fun show(activity: Activity, message: String) { + loadingDialog = QMUITipDialog + .Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create() + if (!activity.isDestroyed) { + try { + loadingDialog.show() + } catch (e: WindowManager.BadTokenException) { + e.printStackTrace() + } + } + } + + fun dismiss() { + if (loadingDialog.isShowing) { + loadingDialog.dismiss() + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt index d34aaa9..b597afa 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt @@ -14,7 +14,7 @@ import com.bumptech.glide.request.RequestOptions import com.casic.br.operationsite.R import com.casic.br.operationsite.extensions.combineImagePath -import com.casic.br.operationsite.utils.DialogManager +import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.vm.AlarmViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -28,9 +28,9 @@ class AlarmDetailActivity : KotlinBaseActivity() { - private lateinit var dialogManager: DialogManager private lateinit var aMap: AMap private lateinit var alarmViewModel: AlarmViewModel + private lateinit var id: String override fun initLayoutView(): Int = R.layout.activity_alarm_detail @@ -43,8 +43,7 @@ } override fun initData() { - val id = intent.getStringExtra(Constant.INTENT_PARAM)!! - dialogManager = DialogManager.obtainInstance(this) + this.id = intent.getStringExtra(Constant.INTENT_PARAM)!! aMap = mapView.map aMap.mapType = AMap.MAP_TYPE_NORMAL @@ -58,6 +57,17 @@ * 数据初始化 * */ alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java) + + //状态监听 + alarmViewModel.loadState.observe(this, { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) + } + + override fun initEvent() { alarmViewModel.obtainAlarmDetail(id) alarmViewModel.detailModel.observe(this, { if (it.code == 200) { @@ -91,17 +101,6 @@ descriptionView.text = detailData.alarmDescription } }) - - alarmViewModel.loadState.observe(this, { - when (it) { - LoadState.Loading -> dialogManager.showLoadingDialog("数据加载中,请稍后...") - else -> dialogManager.dismissLoadingDialog() - } - }) - } - - override fun initEvent() { - } /** diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt index ea961a9..a8c460d 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt @@ -9,7 +9,7 @@ import com.casic.br.operationsite.adapter.AlarmListAdapter import com.casic.br.operationsite.extensions.showEmptyPage import com.casic.br.operationsite.model.AlarmListModel -import com.casic.br.operationsite.utils.DialogManager +import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.vm.AlarmViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -25,7 +25,6 @@ class AlarmListActivity : KotlinBaseActivity() { - private lateinit var dialogManager: DialogManager private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var alarmListAdapter: AlarmListAdapter private lateinit var alarmViewModel: AlarmViewModel @@ -50,9 +49,18 @@ } override fun initData() { - dialogManager = DialogManager.obtainInstance(this) weakReferenceHandler = WeakReferenceHandler(callback) alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java) + + //状态监听 + alarmViewModel.loadState.observe(this, { + if (!isLoadMore && !isRefresh) { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + } + }) } override fun onResume() { @@ -98,19 +106,6 @@ weakReferenceHandler.sendEmptyMessage(2022071201) } }) - - alarmViewModel.loadState.observe(this, { - if (!isLoadMore && !isRefresh) { - when (it) { - is LoadState.Loading -> { - dialogManager.showLoadingDialog("数据加载中,请稍后") - } - else -> { - dialogManager.dismissLoadingDialog() - } - } - } - }) } private fun obtainAlarmListByPage() { diff --git a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt index f30c048..5026c93 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt @@ -12,7 +12,7 @@ import com.casic.br.operationsite.extensions.combineImagePath import com.casic.br.operationsite.extensions.compressImage import com.casic.br.operationsite.extensions.reformat -import com.casic.br.operationsite.utils.DialogManager +import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.utils.LocaleConstant import com.casic.br.operationsite.vm.ApplyViewModel import com.casic.br.operationsite.vm.UploadFileViewModel @@ -36,7 +36,6 @@ class ApplyEnterActivity : KotlinBaseActivity() { private val kTag = "ApplyEnterActivity" - private lateinit var dialogManager: DialogManager private lateinit var imageAdapter: EditableImageAdapter private lateinit var uploadFileViewModel: UploadFileViewModel private lateinit var applyViewModel: ApplyViewModel @@ -55,13 +54,27 @@ } override fun initData() { - dialogManager = DialogManager.obtainInstance(this) uploadFileViewModel = ViewModelProvider(this).get(UploadFileViewModel::class.java) applyViewModel = ViewModelProvider(this).get(ApplyViewModel::class.java) imageAdapter = EditableImageAdapter(this, 1, 13f) addImageRecyclerView.layoutManager = GridLayoutManager(this, 3) addImageRecyclerView.adapter = imageAdapter + + //状态监听 + uploadFileViewModel.loadState.observe(this, { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "图片上传中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) + + applyViewModel.loadState.observe(this, { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "申请中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) } /** @@ -146,9 +159,6 @@ imageAdapter.setupImage(realPaths) } }) - uploadFileViewModel.loadState.observe(this, { - dialogManager.dismissLoadingDialog() - }) confirmApplyButton.setOnClickListener { if (workerNameView.text.isNullOrBlank()) { @@ -187,17 +197,6 @@ finish() } }) - - applyViewModel.loadState.observe(this, { - when (it) { - LoadState.Loading -> { - dialogManager.showLoadingDialog("申请中,请稍后") - } - else -> { - dialogManager.dismissLoadingDialog() - } - } - }) } } diff --git a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt index c3c5cd9..d3d5f72 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt @@ -2,10 +2,7 @@ import androidx.lifecycle.ViewModelProvider import com.casic.br.operationsite.R -import com.casic.br.operationsite.utils.AuthenticationHelper -import com.casic.br.operationsite.utils.DialogManager -import com.casic.br.operationsite.utils.LocaleConstant -import com.casic.br.operationsite.utils.RSAUtils +import com.casic.br.operationsite.utils.* import com.casic.br.operationsite.vm.AuthenticateViewModel import com.casic.br.operationsite.vm.LoginViewModel import com.casic.br.operationsite.vm.UserDetailViewModel @@ -21,7 +18,6 @@ class LoginActivity : KotlinBaseActivity() { - private lateinit var dialogManager: DialogManager private lateinit var authenticateViewModel: AuthenticateViewModel private lateinit var loginViewModel: LoginViewModel private lateinit var userDetailViewModel: UserDetailViewModel @@ -37,10 +33,17 @@ // 设置默认账号密码 userNameView.setText(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) userPasswordView.setText(SaveKeyValues.getValue(LocaleConstant.PASSWORD, "") as String) - dialogManager = DialogManager.obtainInstance(this) authenticateViewModel = ViewModelProvider(this).get(AuthenticateViewModel::class.java) loginViewModel = ViewModelProvider(this).get(LoginViewModel::class.java) userDetailViewModel = ViewModelProvider(this).get(UserDetailViewModel::class.java) + + //状态监听 + loginViewModel.loadState.observe(this, { loginState -> + when (loginState) { + is LoadState.Loading -> LoadingDialogHub.show(this, "登录中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) } override fun initEvent() { @@ -86,16 +89,6 @@ finish() } }) - loginViewModel.loadState.observe(this, { loginState -> - when (loginState) { - is LoadState.Loading -> { - dialogManager.showLoadingDialog("登录中,请稍后...") - } - else -> { - dialogManager.dismissLoadingDialog() - } - } - }) } }) } diff --git a/app/src/main/java/com/casic/br/operationsite/view/PermissionActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/PermissionActivity.kt index 04d396f..0287298 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/PermissionActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/PermissionActivity.kt @@ -1,46 +1,31 @@ package com.casic.br.operationsite.view +import android.os.Bundle +import androidx.appcompat.app.AppCompatActivity import com.amap.api.navi.NaviSetting import com.casic.br.operationsite.R 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.navigatePageTo -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil -import kotlinx.android.synthetic.main.activity_permssion.* import pub.devrel.easypermissions.EasyPermissions import pub.devrel.easypermissions.EasyPermissions.PermissionCallbacks -class PermissionActivity : KotlinBaseActivity(), PermissionCallbacks { +class PermissionActivity : AppCompatActivity(), PermissionCallbacks { - override fun initLayoutView(): Int = R.layout.activity_permssion - - override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(true).init() - ImmerseStatusBarUtil.setColor(this, R.color.white.convertColor(this)) - } - - override fun initData() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) //判断是否有权限,如果版本大于5.1才需要判断(即6.0以上),其他则不需要判断。 if (EasyPermissions.hasPermissions(this, *LocaleConstant.USER_PERMISSIONS)) { startSplashScreenActivity() } else { - enterMainButton.setOnClickListener { - EasyPermissions.requestPermissions( - this@PermissionActivity, - resources.getString(R.string.app_name) + "需要获取相关权限", - LocaleConstant.PERMISSIONS_CODE, - *LocaleConstant.USER_PERMISSIONS - ) - } + EasyPermissions.requestPermissions( + this@PermissionActivity, + resources.getString(R.string.app_name) + "需要获取相关权限", + LocaleConstant.PERMISSIONS_CODE, + *LocaleConstant.USER_PERMISSIONS + ) } } - override fun initEvent() { - - } - private fun startSplashScreenActivity() { //先把导航隐私政策声明,后面导航会用到 NaviSetting.updatePrivacyShow(this, true, true) diff --git a/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt index 9bac3a8..ce81c29 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt @@ -1,7 +1,6 @@ package com.casic.br.operationsite.view import android.content.Context -import android.graphics.Color import android.os.CountDownTimer import android.os.Handler import android.text.Editable @@ -9,7 +8,6 @@ import android.util.Log import android.view.View import androidx.lifecycle.ViewModelProvider -import androidx.recyclerview.widget.GridLayoutManager import com.amap.api.location.AMapLocation import com.casic.br.operationsite.R import com.casic.br.operationsite.callback.OnImageCompressListener @@ -17,10 +15,7 @@ import com.casic.br.operationsite.extensions.compressImage import com.casic.br.operationsite.extensions.reformat import com.casic.br.operationsite.model.UserDetailModel -import com.casic.br.operationsite.utils.DialogManager -import com.casic.br.operationsite.utils.GlideLoadEngine -import com.casic.br.operationsite.utils.LocaleConstant -import com.casic.br.operationsite.utils.LocationHelper +import com.casic.br.operationsite.utils.* import com.casic.br.operationsite.vm.EventViewModel import com.casic.br.operationsite.vm.UploadFileViewModel import com.google.gson.Gson @@ -45,7 +40,6 @@ class UploadEventActivity : KotlinBaseActivity() { private val kTag = "UploadEventActivity" - private lateinit var dialogManager: DialogManager private lateinit var imageAdapter: EditableImageAdapter private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var uploadFileViewModel: UploadFileViewModel @@ -76,13 +70,27 @@ personNumberView.text = userDetail.phone } - dialogManager = DialogManager.obtainInstance(this) weakReferenceHandler = WeakReferenceHandler(callback) uploadFileViewModel = ViewModelProvider(this).get(UploadFileViewModel::class.java) eventViewModel = ViewModelProvider(this).get(EventViewModel::class.java) imageAdapter = EditableImageAdapter(this, 3, 13f) addImageRecyclerView.adapter = imageAdapter + + //状态监听 + uploadFileViewModel.loadState.observe(this, { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "图片上传中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) + + eventViewModel.loadState.observe(this, { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "事件提交中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) } override fun onResume() { @@ -127,16 +135,6 @@ } } }) - uploadFileViewModel.loadState.observe(this, { - when (it) { - LoadState.Loading -> { - dialogManager.showLoadingDialog("图片上传中,请稍后...") - } - else -> { - dialogManager.dismissLoadingDialog() - } - } - }) siteEditView.addTextChangedListener(object : TextWatcher { override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { @@ -187,17 +185,6 @@ finish() } }) - - eventViewModel.loadState.observe(this, { - when (it) { - LoadState.Loading -> { - dialogManager.showLoadingDialog("事件提交中,请稍后") - } - else -> { - dialogManager.dismissLoadingDialog() - } - } - }) } private fun selectPicture() { diff --git a/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt index a9f0300..fce8f4f 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt @@ -12,7 +12,7 @@ import com.amap.api.services.geocoder.RegeocodeQuery import com.amap.api.services.geocoder.RegeocodeResult import com.casic.br.operationsite.R -import com.casic.br.operationsite.utils.DialogManager +import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.vm.WorkSiteViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -29,9 +29,9 @@ class WorkSiteTabActivity : KotlinBaseActivity() { - private lateinit var dialogManager: DialogManager private lateinit var aMap: AMap private lateinit var workSiteViewModel: WorkSiteViewModel + private lateinit var id: String private val geocoderSearch by lazy { GeocodeSearch(this) } private var latLng: LatLng? = null @@ -46,8 +46,7 @@ } override fun initData() { - val id = intent.getStringExtra(Constant.INTENT_PARAM)!! - dialogManager = DialogManager.obtainInstance(this) + this.id = intent.getStringExtra(Constant.INTENT_PARAM)!! /** * 地图初始化设置 @@ -64,6 +63,17 @@ * 数据初始化 * */ workSiteViewModel = ViewModelProvider(this).get(WorkSiteViewModel::class.java) + + //状态监听 + workSiteViewModel.loadState.observe(this, { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") + else -> LoadingDialogHub.dismiss() + } + }) + } + + override fun initEvent() { workSiteViewModel.obtainProjectDetail(id) workSiteViewModel.detailModel.observe(this, { if (it.code == 200) { @@ -117,19 +127,6 @@ } }) - workSiteViewModel.loadState.observe(this, { - when (it) { - LoadState.Loading -> { - dialogManager.showLoadingDialog("数据加载中,请稍后...") - } - else -> { - dialogManager.dismissLoadingDialog() - } - } - }) - } - - override fun initEvent() { navigationView.setOnClickListener { if (latLng == null) { "经纬度异常,无法开启导航".show(this) diff --git a/app/src/main/res/drawable/ic_camera.xml b/app/src/main/res/drawable/ic_camera.xml deleted file mode 100644 index b612ce9..0000000 --- a/app/src/main/res/drawable/ic_camera.xml +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/ic_device.xml b/app/src/main/res/drawable/ic_device.xml deleted file mode 100644 index 831c4c4..0000000 --- a/app/src/main/res/drawable/ic_device.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/ic_location.xml b/app/src/main/res/drawable/ic_location.xml deleted file mode 100644 index 52e376f..0000000 --- a/app/src/main/res/drawable/ic_location.xml +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/ic_storage.xml b/app/src/main/res/drawable/ic_storage.xml deleted file mode 100644 index 898c1cf..0000000 --- a/app/src/main/res/drawable/ic_storage.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - - diff --git a/app/src/main/res/layout/activity_permssion.xml b/app/src/main/res/layout/activity_permssion.xml deleted file mode 100644 index e0f063b..0000000 --- a/app/src/main/res/layout/activity_permssion.xml +++ /dev/null @@ -1,207 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -