diff --git a/app/src/main/java/com/casic/qd/smartwell/extensions/Context.kt b/app/src/main/java/com/casic/qd/smartwell/extensions/Context.kt index ab62dc8..67b1d51 100644 --- a/app/src/main/java/com/casic/qd/smartwell/extensions/Context.kt +++ b/app/src/main/java/com/casic/qd/smartwell/extensions/Context.kt @@ -3,7 +3,6 @@ import android.content.Context import android.content.Intent import android.net.ConnectivityManager -import com.casic.qd.smartwell.base.BaseActivity import com.casic.qd.smartwell.utils.Constant /** @@ -23,28 +22,31 @@ return false } -fun Context.navigatePageTo(clazz: Class) { - startActivity(Intent(this, clazz)) +/** + * Context内联函数-扩展函数 + * */ +inline fun Context.getSystemService(): T? { + return this.getSystemService(T::class.java) } -fun Context.navigatePageTo(clazz: Class, value: String) { - val intent = Intent(this, clazz) +inline fun Context.navigatePageTo() { + startActivity(Intent(this, T::class.java)) +} + +inline fun Context.navigatePageTo(value: String) { + val intent = Intent(this, T::class.java) intent.putExtra(Constant.INTENT_PARAM, value) startActivity(intent) } -fun Context.navigatePageTo(clazz: Class, values: ArrayList) { - val intent = Intent(this, clazz) +inline fun Context.navigatePageTo(values: ArrayList) { + val intent = Intent(this, T::class.java) intent.putStringArrayListExtra(Constant.INTENT_PARAM, values) startActivity(intent) } -fun Context.navigatePageTo( - clazz: Class, - index: Int, - imageList: ArrayList -) { - val intent = Intent(this, clazz) +inline fun Context.navigatePageTo(index: Int, imageList: ArrayList) { + val intent = Intent(this, T::class.java) intent.putExtra("index", index) intent.putStringArrayListExtra("images", imageList) startActivity(intent) diff --git a/app/src/main/java/com/casic/qd/smartwell/extensions/Context.kt b/app/src/main/java/com/casic/qd/smartwell/extensions/Context.kt index ab62dc8..67b1d51 100644 --- a/app/src/main/java/com/casic/qd/smartwell/extensions/Context.kt +++ b/app/src/main/java/com/casic/qd/smartwell/extensions/Context.kt @@ -3,7 +3,6 @@ import android.content.Context import android.content.Intent import android.net.ConnectivityManager -import com.casic.qd.smartwell.base.BaseActivity import com.casic.qd.smartwell.utils.Constant /** @@ -23,28 +22,31 @@ return false } -fun Context.navigatePageTo(clazz: Class) { - startActivity(Intent(this, clazz)) +/** + * Context内联函数-扩展函数 + * */ +inline fun Context.getSystemService(): T? { + return this.getSystemService(T::class.java) } -fun Context.navigatePageTo(clazz: Class, value: String) { - val intent = Intent(this, clazz) +inline fun Context.navigatePageTo() { + startActivity(Intent(this, T::class.java)) +} + +inline fun Context.navigatePageTo(value: String) { + val intent = Intent(this, T::class.java) intent.putExtra(Constant.INTENT_PARAM, value) startActivity(intent) } -fun Context.navigatePageTo(clazz: Class, values: ArrayList) { - val intent = Intent(this, clazz) +inline fun Context.navigatePageTo(values: ArrayList) { + val intent = Intent(this, T::class.java) intent.putStringArrayListExtra(Constant.INTENT_PARAM, values) startActivity(intent) } -fun Context.navigatePageTo( - clazz: Class, - index: Int, - imageList: ArrayList -) { - val intent = Intent(this, clazz) +inline fun Context.navigatePageTo(index: Int, imageList: ArrayList) { + val intent = Intent(this, T::class.java) intent.putExtra("index", index) intent.putStringArrayListExtra("images", imageList) startActivity(intent) diff --git a/app/src/main/java/com/casic/qd/smartwell/utils/WeakReferenceHandler.kt b/app/src/main/java/com/casic/qd/smartwell/utils/WeakReferenceHandler.kt new file mode 100644 index 0000000..31468d7 --- /dev/null +++ b/app/src/main/java/com/casic/qd/smartwell/utils/WeakReferenceHandler.kt @@ -0,0 +1,16 @@ +package com.casic.qd.smartwell.utils + +import android.os.Handler +import android.os.Looper +import android.os.Message +import java.lang.ref.WeakReference + +class WeakReferenceHandler(callback: Callback) : Handler(Looper.getMainLooper()) { + + private var weakReference: WeakReference = WeakReference(callback) + + override fun handleMessage(msg: Message) { + super.handleMessage(msg) + weakReference.get()?.handleMessage(msg) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/qd/smartwell/extensions/Context.kt b/app/src/main/java/com/casic/qd/smartwell/extensions/Context.kt index ab62dc8..67b1d51 100644 --- a/app/src/main/java/com/casic/qd/smartwell/extensions/Context.kt +++ b/app/src/main/java/com/casic/qd/smartwell/extensions/Context.kt @@ -3,7 +3,6 @@ import android.content.Context import android.content.Intent import android.net.ConnectivityManager -import com.casic.qd.smartwell.base.BaseActivity import com.casic.qd.smartwell.utils.Constant /** @@ -23,28 +22,31 @@ return false } -fun Context.navigatePageTo(clazz: Class) { - startActivity(Intent(this, clazz)) +/** + * Context内联函数-扩展函数 + * */ +inline fun Context.getSystemService(): T? { + return this.getSystemService(T::class.java) } -fun Context.navigatePageTo(clazz: Class, value: String) { - val intent = Intent(this, clazz) +inline fun Context.navigatePageTo() { + startActivity(Intent(this, T::class.java)) +} + +inline fun Context.navigatePageTo(value: String) { + val intent = Intent(this, T::class.java) intent.putExtra(Constant.INTENT_PARAM, value) startActivity(intent) } -fun Context.navigatePageTo(clazz: Class, values: ArrayList) { - val intent = Intent(this, clazz) +inline fun Context.navigatePageTo(values: ArrayList) { + val intent = Intent(this, T::class.java) intent.putStringArrayListExtra(Constant.INTENT_PARAM, values) startActivity(intent) } -fun Context.navigatePageTo( - clazz: Class, - index: Int, - imageList: ArrayList -) { - val intent = Intent(this, clazz) +inline fun Context.navigatePageTo(index: Int, imageList: ArrayList) { + val intent = Intent(this, T::class.java) intent.putExtra("index", index) intent.putStringArrayListExtra("images", imageList) startActivity(intent) diff --git a/app/src/main/java/com/casic/qd/smartwell/utils/WeakReferenceHandler.kt b/app/src/main/java/com/casic/qd/smartwell/utils/WeakReferenceHandler.kt new file mode 100644 index 0000000..31468d7 --- /dev/null +++ b/app/src/main/java/com/casic/qd/smartwell/utils/WeakReferenceHandler.kt @@ -0,0 +1,16 @@ +package com.casic.qd.smartwell.utils + +import android.os.Handler +import android.os.Looper +import android.os.Message +import java.lang.ref.WeakReference + +class WeakReferenceHandler(callback: Callback) : Handler(Looper.getMainLooper()) { + + private var weakReference: WeakReference = WeakReference(callback) + + override fun handleMessage(msg: Message) { + super.handleMessage(msg) + weakReference.get()?.handleMessage(msg) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/qd/smartwell/view/AlarmManagementActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/AlarmManagementActivity.kt index 67f51d9..b492537 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/AlarmManagementActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/AlarmManagementActivity.kt @@ -1,12 +1,9 @@ package com.casic.qd.smartwell.view -import android.annotation.SuppressLint import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import android.os.Handler -import android.os.Looper -import android.os.Message import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.LinearLayoutManager import com.casic.qd.smartwell.R @@ -16,15 +13,11 @@ import com.casic.qd.smartwell.extensions.show import com.casic.qd.smartwell.extensions.showEmptyPage import com.casic.qd.smartwell.model.AlarmListModel -import com.casic.qd.smartwell.utils.BroadcastReceiverManager -import com.casic.qd.smartwell.utils.Constant -import com.casic.qd.smartwell.utils.DialogHelper -import com.casic.qd.smartwell.utils.LoadState +import com.casic.qd.smartwell.utils.* import com.casic.qd.smartwell.vm.AlarmViewModel import com.pengxh.app.multilib.widget.dialog.AlertControlDialog import kotlinx.android.synthetic.main.activity_alarm_management.* import kotlinx.android.synthetic.main.include_empty_view.* -import java.lang.ref.WeakReference class AlarmManagementActivity : BaseActivity() { @@ -43,13 +36,13 @@ leftBackView.setOnClickListener { finish() } titleView.text = "当前告警" rightOptionView.setOnClickListener { - this.navigatePageTo(SearchAlarmActivity::class.java) + navigatePageTo() } } override fun initData() { alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java) - weakReferenceHandler = WeakReferenceHandler(this) + weakReferenceHandler = WeakReferenceHandler(callback) //注册广播接收者 BroadcastReceiverManager.instance.addAction(Constant.CANCEL_ALARM_ACTION, object : BroadcastReceiver() { @@ -125,66 +118,59 @@ alarmViewModel.obtainAlarmList("", "", "", "", "", "", "1", pageIndex) } - private class WeakReferenceHandler(activity: AlarmManagementActivity) : - Handler(Looper.getMainLooper()) { - private val reference: WeakReference = WeakReference(activity) - - @SuppressLint("NotifyDataSetChanged") - override fun handleMessage(msg: Message) { - super.handleMessage(msg) - val activity = reference.get()!! - if (msg.what == 2022041301) { - if (activity.isRefresh || activity.isLoadMore) { - activity.alarmListAdapter.notifyDataSetChanged() - } else { //首次加载数据 - if (activity.dataBeans.size == 0) { - activity.emptyView!!.showEmptyPage { - activity.obtainAlarmList(activity.pageIndex) - } - } else { - activity.emptyView!!.hide() - activity.alarmListAdapter = AlarmListAdapter(activity, activity.dataBeans) - activity.alarmListView!!.layoutManager = LinearLayoutManager(activity) - activity.alarmListView!!.adapter = activity.alarmListAdapter - activity.alarmListAdapter.setOnItemClickListener(object : - AlarmListAdapter.OnItemClickListener { - override fun onClicked(position: Int) { - val wellId = activity.dataBeans[position].wellId.toString() - if (wellId.isBlank()) { - "井编号异常,无法查看详情".show() - return - } - activity.navigatePageTo(WellDetailActivity::class.java, wellId) - } - - override fun onOperationClicked(position: Int) { - AlertControlDialog.Builder() - .setContext(activity) - .setTitle("确认操作") - .setMessage("确定取消报警吗?") - .setNegativeButton("取消") - .setPositiveButton("确定") - .setOnDialogButtonClickListener(object : - AlertControlDialog.OnDialogButtonClickListener { - override fun onConfirmClick() { - val alarmId = activity.dataBeans[position].id - if (alarmId.toString().isBlank()) { - "操作失败,告警ID异常".show() - return - } - activity.alarmViewModel.obtainOperationResult(alarmId!!) - } - - override fun onCancelClick() { - - } - }).build().show() - } - }) + private val callback = Handler.Callback { + if (it.what == 2022041301) { + if (isRefresh || isLoadMore) { + alarmListAdapter.notifyDataSetChanged() + } else { //首次加载数据 + if (dataBeans.size == 0) { + emptyView!!.showEmptyPage { + obtainAlarmList(pageIndex) } + } else { + emptyView!!.hide() + alarmListAdapter = AlarmListAdapter(this, dataBeans) + alarmListView!!.layoutManager = LinearLayoutManager(this) + alarmListView!!.adapter = alarmListAdapter + alarmListAdapter.setOnItemClickListener(object : + AlarmListAdapter.OnItemClickListener { + override fun onClicked(position: Int) { + val wellId = dataBeans[position].wellId.toString() + if (wellId.isBlank()) { + "井编号异常,无法查看详情".show() + return + } + navigatePageTo(wellId) + } + + override fun onOperationClicked(position: Int) { + AlertControlDialog.Builder() + .setContext(this@AlarmManagementActivity) + .setTitle("确认操作") + .setMessage("确定取消报警吗?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + val alarmId = dataBeans[position].id + if (alarmId.toString().isBlank()) { + "操作失败,告警ID异常".show() + return + } + alarmViewModel.obtainOperationResult(alarmId!!) + } + + override fun onCancelClick() { + + } + }).build().show() + } + }) } } } + true } override fun onDestroy() { diff --git a/app/src/main/java/com/casic/qd/smartwell/extensions/Context.kt b/app/src/main/java/com/casic/qd/smartwell/extensions/Context.kt index ab62dc8..67b1d51 100644 --- a/app/src/main/java/com/casic/qd/smartwell/extensions/Context.kt +++ b/app/src/main/java/com/casic/qd/smartwell/extensions/Context.kt @@ -3,7 +3,6 @@ import android.content.Context import android.content.Intent import android.net.ConnectivityManager -import com.casic.qd.smartwell.base.BaseActivity import com.casic.qd.smartwell.utils.Constant /** @@ -23,28 +22,31 @@ return false } -fun Context.navigatePageTo(clazz: Class) { - startActivity(Intent(this, clazz)) +/** + * Context内联函数-扩展函数 + * */ +inline fun Context.getSystemService(): T? { + return this.getSystemService(T::class.java) } -fun Context.navigatePageTo(clazz: Class, value: String) { - val intent = Intent(this, clazz) +inline fun Context.navigatePageTo() { + startActivity(Intent(this, T::class.java)) +} + +inline fun Context.navigatePageTo(value: String) { + val intent = Intent(this, T::class.java) intent.putExtra(Constant.INTENT_PARAM, value) startActivity(intent) } -fun Context.navigatePageTo(clazz: Class, values: ArrayList) { - val intent = Intent(this, clazz) +inline fun Context.navigatePageTo(values: ArrayList) { + val intent = Intent(this, T::class.java) intent.putStringArrayListExtra(Constant.INTENT_PARAM, values) startActivity(intent) } -fun Context.navigatePageTo( - clazz: Class, - index: Int, - imageList: ArrayList -) { - val intent = Intent(this, clazz) +inline fun Context.navigatePageTo(index: Int, imageList: ArrayList) { + val intent = Intent(this, T::class.java) intent.putExtra("index", index) intent.putStringArrayListExtra("images", imageList) startActivity(intent) diff --git a/app/src/main/java/com/casic/qd/smartwell/utils/WeakReferenceHandler.kt b/app/src/main/java/com/casic/qd/smartwell/utils/WeakReferenceHandler.kt new file mode 100644 index 0000000..31468d7 --- /dev/null +++ b/app/src/main/java/com/casic/qd/smartwell/utils/WeakReferenceHandler.kt @@ -0,0 +1,16 @@ +package com.casic.qd.smartwell.utils + +import android.os.Handler +import android.os.Looper +import android.os.Message +import java.lang.ref.WeakReference + +class WeakReferenceHandler(callback: Callback) : Handler(Looper.getMainLooper()) { + + private var weakReference: WeakReference = WeakReference(callback) + + override fun handleMessage(msg: Message) { + super.handleMessage(msg) + weakReference.get()?.handleMessage(msg) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/qd/smartwell/view/AlarmManagementActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/AlarmManagementActivity.kt index 67f51d9..b492537 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/AlarmManagementActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/AlarmManagementActivity.kt @@ -1,12 +1,9 @@ package com.casic.qd.smartwell.view -import android.annotation.SuppressLint import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import android.os.Handler -import android.os.Looper -import android.os.Message import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.LinearLayoutManager import com.casic.qd.smartwell.R @@ -16,15 +13,11 @@ import com.casic.qd.smartwell.extensions.show import com.casic.qd.smartwell.extensions.showEmptyPage import com.casic.qd.smartwell.model.AlarmListModel -import com.casic.qd.smartwell.utils.BroadcastReceiverManager -import com.casic.qd.smartwell.utils.Constant -import com.casic.qd.smartwell.utils.DialogHelper -import com.casic.qd.smartwell.utils.LoadState +import com.casic.qd.smartwell.utils.* import com.casic.qd.smartwell.vm.AlarmViewModel import com.pengxh.app.multilib.widget.dialog.AlertControlDialog import kotlinx.android.synthetic.main.activity_alarm_management.* import kotlinx.android.synthetic.main.include_empty_view.* -import java.lang.ref.WeakReference class AlarmManagementActivity : BaseActivity() { @@ -43,13 +36,13 @@ leftBackView.setOnClickListener { finish() } titleView.text = "当前告警" rightOptionView.setOnClickListener { - this.navigatePageTo(SearchAlarmActivity::class.java) + navigatePageTo() } } override fun initData() { alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java) - weakReferenceHandler = WeakReferenceHandler(this) + weakReferenceHandler = WeakReferenceHandler(callback) //注册广播接收者 BroadcastReceiverManager.instance.addAction(Constant.CANCEL_ALARM_ACTION, object : BroadcastReceiver() { @@ -125,66 +118,59 @@ alarmViewModel.obtainAlarmList("", "", "", "", "", "", "1", pageIndex) } - private class WeakReferenceHandler(activity: AlarmManagementActivity) : - Handler(Looper.getMainLooper()) { - private val reference: WeakReference = WeakReference(activity) - - @SuppressLint("NotifyDataSetChanged") - override fun handleMessage(msg: Message) { - super.handleMessage(msg) - val activity = reference.get()!! - if (msg.what == 2022041301) { - if (activity.isRefresh || activity.isLoadMore) { - activity.alarmListAdapter.notifyDataSetChanged() - } else { //首次加载数据 - if (activity.dataBeans.size == 0) { - activity.emptyView!!.showEmptyPage { - activity.obtainAlarmList(activity.pageIndex) - } - } else { - activity.emptyView!!.hide() - activity.alarmListAdapter = AlarmListAdapter(activity, activity.dataBeans) - activity.alarmListView!!.layoutManager = LinearLayoutManager(activity) - activity.alarmListView!!.adapter = activity.alarmListAdapter - activity.alarmListAdapter.setOnItemClickListener(object : - AlarmListAdapter.OnItemClickListener { - override fun onClicked(position: Int) { - val wellId = activity.dataBeans[position].wellId.toString() - if (wellId.isBlank()) { - "井编号异常,无法查看详情".show() - return - } - activity.navigatePageTo(WellDetailActivity::class.java, wellId) - } - - override fun onOperationClicked(position: Int) { - AlertControlDialog.Builder() - .setContext(activity) - .setTitle("确认操作") - .setMessage("确定取消报警吗?") - .setNegativeButton("取消") - .setPositiveButton("确定") - .setOnDialogButtonClickListener(object : - AlertControlDialog.OnDialogButtonClickListener { - override fun onConfirmClick() { - val alarmId = activity.dataBeans[position].id - if (alarmId.toString().isBlank()) { - "操作失败,告警ID异常".show() - return - } - activity.alarmViewModel.obtainOperationResult(alarmId!!) - } - - override fun onCancelClick() { - - } - }).build().show() - } - }) + private val callback = Handler.Callback { + if (it.what == 2022041301) { + if (isRefresh || isLoadMore) { + alarmListAdapter.notifyDataSetChanged() + } else { //首次加载数据 + if (dataBeans.size == 0) { + emptyView!!.showEmptyPage { + obtainAlarmList(pageIndex) } + } else { + emptyView!!.hide() + alarmListAdapter = AlarmListAdapter(this, dataBeans) + alarmListView!!.layoutManager = LinearLayoutManager(this) + alarmListView!!.adapter = alarmListAdapter + alarmListAdapter.setOnItemClickListener(object : + AlarmListAdapter.OnItemClickListener { + override fun onClicked(position: Int) { + val wellId = dataBeans[position].wellId.toString() + if (wellId.isBlank()) { + "井编号异常,无法查看详情".show() + return + } + navigatePageTo(wellId) + } + + override fun onOperationClicked(position: Int) { + AlertControlDialog.Builder() + .setContext(this@AlarmManagementActivity) + .setTitle("确认操作") + .setMessage("确定取消报警吗?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + val alarmId = dataBeans[position].id + if (alarmId.toString().isBlank()) { + "操作失败,告警ID异常".show() + return + } + alarmViewModel.obtainOperationResult(alarmId!!) + } + + override fun onCancelClick() { + + } + }).build().show() + } + }) } } } + true } override fun onDestroy() { diff --git a/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt index 198daf5..f19f2f7 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt @@ -1,12 +1,9 @@ package com.casic.qd.smartwell.view -import android.annotation.SuppressLint import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import android.os.Handler -import android.os.Looper -import android.os.Message import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.LinearLayoutManager import com.casic.qd.smartwell.R @@ -16,17 +13,13 @@ import com.casic.qd.smartwell.extensions.show import com.casic.qd.smartwell.extensions.showEmptyPage import com.casic.qd.smartwell.model.AlarmListModel -import com.casic.qd.smartwell.utils.BroadcastReceiverManager -import com.casic.qd.smartwell.utils.Constant -import com.casic.qd.smartwell.utils.DialogHelper -import com.casic.qd.smartwell.utils.LoadState +import com.casic.qd.smartwell.utils.* import com.casic.qd.smartwell.vm.AlarmViewModel import com.casic.qd.smartwell.vm.SearchResultViewModel import com.pengxh.app.multilib.widget.dialog.AlertControlDialog import kotlinx.android.synthetic.main.activity_alarm_search_result.* import kotlinx.android.synthetic.main.include_base_title.* import kotlinx.android.synthetic.main.include_empty_view.* -import java.lang.ref.WeakReference class AlarmSearchResultActivity : BaseActivity() { @@ -49,7 +42,7 @@ override fun initData() { args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! - weakReferenceHandler = WeakReferenceHandler(this) + weakReferenceHandler = WeakReferenceHandler(callback) searchAlarmViewModel = ViewModelProvider(this).get(SearchResultViewModel::class.java) alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java) //注册广播接收者 @@ -141,66 +134,59 @@ ) } - private class WeakReferenceHandler(activity: AlarmSearchResultActivity) : - Handler(Looper.getMainLooper()) { - private val reference: WeakReference = WeakReference(activity) - - @SuppressLint("NotifyDataSetChanged") - override fun handleMessage(msg: Message) { - super.handleMessage(msg) - val activity = reference.get()!! - if (msg.what == 2022041501) { - if (activity.isRefresh || activity.isLoadMore) { - activity.alarmListAdapter.notifyDataSetChanged() - } else { //首次加载数据 - if (activity.dataBeans.size == 0) { - activity.emptyView!!.showEmptyPage { - activity.obtainSearchResult(activity.args, activity.pageIndex) - } - } else { - activity.emptyView!!.hide() - activity.alarmListAdapter = AlarmListAdapter(activity, activity.dataBeans) - activity.resultRecyclerView!!.layoutManager = LinearLayoutManager(activity) - activity.resultRecyclerView!!.adapter = activity.alarmListAdapter - activity.alarmListAdapter.setOnItemClickListener(object : - AlarmListAdapter.OnItemClickListener { - override fun onClicked(position: Int) { - val wellId = activity.dataBeans[position].wellId.toString() - if (wellId.isBlank()) { - "井编号异常,无法查看详情".show() - return - } - activity.navigatePageTo(WellDetailActivity::class.java, wellId) - } - - override fun onOperationClicked(position: Int) { - AlertControlDialog.Builder() - .setContext(activity) - .setTitle("确认操作") - .setMessage("确定取消报警吗?") - .setNegativeButton("取消") - .setPositiveButton("确定") - .setOnDialogButtonClickListener(object : - AlertControlDialog.OnDialogButtonClickListener { - override fun onConfirmClick() { - val alarmId = activity.dataBeans[position].id - if (alarmId.toString().isBlank()) { - "操作失败,告警ID异常".show() - return - } - activity.alarmViewModel.obtainOperationResult(alarmId!!) - } - - override fun onCancelClick() { - - } - }).build().show() - } - }) + private val callback = Handler.Callback { + if (it.what == 2022041501) { + if (isRefresh || isLoadMore) { + alarmListAdapter.notifyDataSetChanged() + } else { //首次加载数据 + if (dataBeans.size == 0) { + emptyView!!.showEmptyPage { + obtainSearchResult(args, pageIndex) } + } else { + emptyView!!.hide() + alarmListAdapter = AlarmListAdapter(this, dataBeans) + resultRecyclerView!!.layoutManager = LinearLayoutManager(this) + resultRecyclerView!!.adapter = alarmListAdapter + alarmListAdapter.setOnItemClickListener(object : + AlarmListAdapter.OnItemClickListener { + override fun onClicked(position: Int) { + val wellId = dataBeans[position].wellId.toString() + if (wellId.isBlank()) { + "井编号异常,无法查看详情".show() + return + } + navigatePageTo(wellId) + } + + override fun onOperationClicked(position: Int) { + AlertControlDialog.Builder() + .setContext(this@AlarmSearchResultActivity) + .setTitle("确认操作") + .setMessage("确定取消报警吗?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + val alarmId = dataBeans[position].id + if (alarmId.toString().isBlank()) { + "操作失败,告警ID异常".show() + return + } + alarmViewModel.obtainOperationResult(alarmId!!) + } + + override fun onCancelClick() { + + } + }).build().show() + } + }) } } } + true } override fun onDestroy() { diff --git a/app/src/main/java/com/casic/qd/smartwell/extensions/Context.kt b/app/src/main/java/com/casic/qd/smartwell/extensions/Context.kt index ab62dc8..67b1d51 100644 --- a/app/src/main/java/com/casic/qd/smartwell/extensions/Context.kt +++ b/app/src/main/java/com/casic/qd/smartwell/extensions/Context.kt @@ -3,7 +3,6 @@ import android.content.Context import android.content.Intent import android.net.ConnectivityManager -import com.casic.qd.smartwell.base.BaseActivity import com.casic.qd.smartwell.utils.Constant /** @@ -23,28 +22,31 @@ return false } -fun Context.navigatePageTo(clazz: Class) { - startActivity(Intent(this, clazz)) +/** + * Context内联函数-扩展函数 + * */ +inline fun Context.getSystemService(): T? { + return this.getSystemService(T::class.java) } -fun Context.navigatePageTo(clazz: Class, value: String) { - val intent = Intent(this, clazz) +inline fun Context.navigatePageTo() { + startActivity(Intent(this, T::class.java)) +} + +inline fun Context.navigatePageTo(value: String) { + val intent = Intent(this, T::class.java) intent.putExtra(Constant.INTENT_PARAM, value) startActivity(intent) } -fun Context.navigatePageTo(clazz: Class, values: ArrayList) { - val intent = Intent(this, clazz) +inline fun Context.navigatePageTo(values: ArrayList) { + val intent = Intent(this, T::class.java) intent.putStringArrayListExtra(Constant.INTENT_PARAM, values) startActivity(intent) } -fun Context.navigatePageTo( - clazz: Class, - index: Int, - imageList: ArrayList -) { - val intent = Intent(this, clazz) +inline fun Context.navigatePageTo(index: Int, imageList: ArrayList) { + val intent = Intent(this, T::class.java) intent.putExtra("index", index) intent.putStringArrayListExtra("images", imageList) startActivity(intent) diff --git a/app/src/main/java/com/casic/qd/smartwell/utils/WeakReferenceHandler.kt b/app/src/main/java/com/casic/qd/smartwell/utils/WeakReferenceHandler.kt new file mode 100644 index 0000000..31468d7 --- /dev/null +++ b/app/src/main/java/com/casic/qd/smartwell/utils/WeakReferenceHandler.kt @@ -0,0 +1,16 @@ +package com.casic.qd.smartwell.utils + +import android.os.Handler +import android.os.Looper +import android.os.Message +import java.lang.ref.WeakReference + +class WeakReferenceHandler(callback: Callback) : Handler(Looper.getMainLooper()) { + + private var weakReference: WeakReference = WeakReference(callback) + + override fun handleMessage(msg: Message) { + super.handleMessage(msg) + weakReference.get()?.handleMessage(msg) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/qd/smartwell/view/AlarmManagementActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/AlarmManagementActivity.kt index 67f51d9..b492537 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/AlarmManagementActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/AlarmManagementActivity.kt @@ -1,12 +1,9 @@ package com.casic.qd.smartwell.view -import android.annotation.SuppressLint import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import android.os.Handler -import android.os.Looper -import android.os.Message import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.LinearLayoutManager import com.casic.qd.smartwell.R @@ -16,15 +13,11 @@ import com.casic.qd.smartwell.extensions.show import com.casic.qd.smartwell.extensions.showEmptyPage import com.casic.qd.smartwell.model.AlarmListModel -import com.casic.qd.smartwell.utils.BroadcastReceiverManager -import com.casic.qd.smartwell.utils.Constant -import com.casic.qd.smartwell.utils.DialogHelper -import com.casic.qd.smartwell.utils.LoadState +import com.casic.qd.smartwell.utils.* import com.casic.qd.smartwell.vm.AlarmViewModel import com.pengxh.app.multilib.widget.dialog.AlertControlDialog import kotlinx.android.synthetic.main.activity_alarm_management.* import kotlinx.android.synthetic.main.include_empty_view.* -import java.lang.ref.WeakReference class AlarmManagementActivity : BaseActivity() { @@ -43,13 +36,13 @@ leftBackView.setOnClickListener { finish() } titleView.text = "当前告警" rightOptionView.setOnClickListener { - this.navigatePageTo(SearchAlarmActivity::class.java) + navigatePageTo() } } override fun initData() { alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java) - weakReferenceHandler = WeakReferenceHandler(this) + weakReferenceHandler = WeakReferenceHandler(callback) //注册广播接收者 BroadcastReceiverManager.instance.addAction(Constant.CANCEL_ALARM_ACTION, object : BroadcastReceiver() { @@ -125,66 +118,59 @@ alarmViewModel.obtainAlarmList("", "", "", "", "", "", "1", pageIndex) } - private class WeakReferenceHandler(activity: AlarmManagementActivity) : - Handler(Looper.getMainLooper()) { - private val reference: WeakReference = WeakReference(activity) - - @SuppressLint("NotifyDataSetChanged") - override fun handleMessage(msg: Message) { - super.handleMessage(msg) - val activity = reference.get()!! - if (msg.what == 2022041301) { - if (activity.isRefresh || activity.isLoadMore) { - activity.alarmListAdapter.notifyDataSetChanged() - } else { //首次加载数据 - if (activity.dataBeans.size == 0) { - activity.emptyView!!.showEmptyPage { - activity.obtainAlarmList(activity.pageIndex) - } - } else { - activity.emptyView!!.hide() - activity.alarmListAdapter = AlarmListAdapter(activity, activity.dataBeans) - activity.alarmListView!!.layoutManager = LinearLayoutManager(activity) - activity.alarmListView!!.adapter = activity.alarmListAdapter - activity.alarmListAdapter.setOnItemClickListener(object : - AlarmListAdapter.OnItemClickListener { - override fun onClicked(position: Int) { - val wellId = activity.dataBeans[position].wellId.toString() - if (wellId.isBlank()) { - "井编号异常,无法查看详情".show() - return - } - activity.navigatePageTo(WellDetailActivity::class.java, wellId) - } - - override fun onOperationClicked(position: Int) { - AlertControlDialog.Builder() - .setContext(activity) - .setTitle("确认操作") - .setMessage("确定取消报警吗?") - .setNegativeButton("取消") - .setPositiveButton("确定") - .setOnDialogButtonClickListener(object : - AlertControlDialog.OnDialogButtonClickListener { - override fun onConfirmClick() { - val alarmId = activity.dataBeans[position].id - if (alarmId.toString().isBlank()) { - "操作失败,告警ID异常".show() - return - } - activity.alarmViewModel.obtainOperationResult(alarmId!!) - } - - override fun onCancelClick() { - - } - }).build().show() - } - }) + private val callback = Handler.Callback { + if (it.what == 2022041301) { + if (isRefresh || isLoadMore) { + alarmListAdapter.notifyDataSetChanged() + } else { //首次加载数据 + if (dataBeans.size == 0) { + emptyView!!.showEmptyPage { + obtainAlarmList(pageIndex) } + } else { + emptyView!!.hide() + alarmListAdapter = AlarmListAdapter(this, dataBeans) + alarmListView!!.layoutManager = LinearLayoutManager(this) + alarmListView!!.adapter = alarmListAdapter + alarmListAdapter.setOnItemClickListener(object : + AlarmListAdapter.OnItemClickListener { + override fun onClicked(position: Int) { + val wellId = dataBeans[position].wellId.toString() + if (wellId.isBlank()) { + "井编号异常,无法查看详情".show() + return + } + navigatePageTo(wellId) + } + + override fun onOperationClicked(position: Int) { + AlertControlDialog.Builder() + .setContext(this@AlarmManagementActivity) + .setTitle("确认操作") + .setMessage("确定取消报警吗?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + val alarmId = dataBeans[position].id + if (alarmId.toString().isBlank()) { + "操作失败,告警ID异常".show() + return + } + alarmViewModel.obtainOperationResult(alarmId!!) + } + + override fun onCancelClick() { + + } + }).build().show() + } + }) } } } + true } override fun onDestroy() { diff --git a/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt index 198daf5..f19f2f7 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt @@ -1,12 +1,9 @@ package com.casic.qd.smartwell.view -import android.annotation.SuppressLint import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import android.os.Handler -import android.os.Looper -import android.os.Message import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.LinearLayoutManager import com.casic.qd.smartwell.R @@ -16,17 +13,13 @@ import com.casic.qd.smartwell.extensions.show import com.casic.qd.smartwell.extensions.showEmptyPage import com.casic.qd.smartwell.model.AlarmListModel -import com.casic.qd.smartwell.utils.BroadcastReceiverManager -import com.casic.qd.smartwell.utils.Constant -import com.casic.qd.smartwell.utils.DialogHelper -import com.casic.qd.smartwell.utils.LoadState +import com.casic.qd.smartwell.utils.* import com.casic.qd.smartwell.vm.AlarmViewModel import com.casic.qd.smartwell.vm.SearchResultViewModel import com.pengxh.app.multilib.widget.dialog.AlertControlDialog import kotlinx.android.synthetic.main.activity_alarm_search_result.* import kotlinx.android.synthetic.main.include_base_title.* import kotlinx.android.synthetic.main.include_empty_view.* -import java.lang.ref.WeakReference class AlarmSearchResultActivity : BaseActivity() { @@ -49,7 +42,7 @@ override fun initData() { args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! - weakReferenceHandler = WeakReferenceHandler(this) + weakReferenceHandler = WeakReferenceHandler(callback) searchAlarmViewModel = ViewModelProvider(this).get(SearchResultViewModel::class.java) alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java) //注册广播接收者 @@ -141,66 +134,59 @@ ) } - private class WeakReferenceHandler(activity: AlarmSearchResultActivity) : - Handler(Looper.getMainLooper()) { - private val reference: WeakReference = WeakReference(activity) - - @SuppressLint("NotifyDataSetChanged") - override fun handleMessage(msg: Message) { - super.handleMessage(msg) - val activity = reference.get()!! - if (msg.what == 2022041501) { - if (activity.isRefresh || activity.isLoadMore) { - activity.alarmListAdapter.notifyDataSetChanged() - } else { //首次加载数据 - if (activity.dataBeans.size == 0) { - activity.emptyView!!.showEmptyPage { - activity.obtainSearchResult(activity.args, activity.pageIndex) - } - } else { - activity.emptyView!!.hide() - activity.alarmListAdapter = AlarmListAdapter(activity, activity.dataBeans) - activity.resultRecyclerView!!.layoutManager = LinearLayoutManager(activity) - activity.resultRecyclerView!!.adapter = activity.alarmListAdapter - activity.alarmListAdapter.setOnItemClickListener(object : - AlarmListAdapter.OnItemClickListener { - override fun onClicked(position: Int) { - val wellId = activity.dataBeans[position].wellId.toString() - if (wellId.isBlank()) { - "井编号异常,无法查看详情".show() - return - } - activity.navigatePageTo(WellDetailActivity::class.java, wellId) - } - - override fun onOperationClicked(position: Int) { - AlertControlDialog.Builder() - .setContext(activity) - .setTitle("确认操作") - .setMessage("确定取消报警吗?") - .setNegativeButton("取消") - .setPositiveButton("确定") - .setOnDialogButtonClickListener(object : - AlertControlDialog.OnDialogButtonClickListener { - override fun onConfirmClick() { - val alarmId = activity.dataBeans[position].id - if (alarmId.toString().isBlank()) { - "操作失败,告警ID异常".show() - return - } - activity.alarmViewModel.obtainOperationResult(alarmId!!) - } - - override fun onCancelClick() { - - } - }).build().show() - } - }) + private val callback = Handler.Callback { + if (it.what == 2022041501) { + if (isRefresh || isLoadMore) { + alarmListAdapter.notifyDataSetChanged() + } else { //首次加载数据 + if (dataBeans.size == 0) { + emptyView!!.showEmptyPage { + obtainSearchResult(args, pageIndex) } + } else { + emptyView!!.hide() + alarmListAdapter = AlarmListAdapter(this, dataBeans) + resultRecyclerView!!.layoutManager = LinearLayoutManager(this) + resultRecyclerView!!.adapter = alarmListAdapter + alarmListAdapter.setOnItemClickListener(object : + AlarmListAdapter.OnItemClickListener { + override fun onClicked(position: Int) { + val wellId = dataBeans[position].wellId.toString() + if (wellId.isBlank()) { + "井编号异常,无法查看详情".show() + return + } + navigatePageTo(wellId) + } + + override fun onOperationClicked(position: Int) { + AlertControlDialog.Builder() + .setContext(this@AlarmSearchResultActivity) + .setTitle("确认操作") + .setMessage("确定取消报警吗?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + val alarmId = dataBeans[position].id + if (alarmId.toString().isBlank()) { + "操作失败,告警ID异常".show() + return + } + alarmViewModel.obtainOperationResult(alarmId!!) + } + + override fun onCancelClick() { + + } + }).build().show() + } + }) } } } + true } override fun onDestroy() { diff --git a/app/src/main/java/com/casic/qd/smartwell/view/LoginActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/LoginActivity.kt index c86ee63..ccfeb79 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/LoginActivity.kt @@ -113,7 +113,7 @@ */ authenticateViewModel.obtainAuthorByDept() //验证成功登录 - this.navigatePageTo(MainActivity::class.java) + navigatePageTo() finish() } }) diff --git a/app/src/main/java/com/casic/qd/smartwell/extensions/Context.kt b/app/src/main/java/com/casic/qd/smartwell/extensions/Context.kt index ab62dc8..67b1d51 100644 --- a/app/src/main/java/com/casic/qd/smartwell/extensions/Context.kt +++ b/app/src/main/java/com/casic/qd/smartwell/extensions/Context.kt @@ -3,7 +3,6 @@ import android.content.Context import android.content.Intent import android.net.ConnectivityManager -import com.casic.qd.smartwell.base.BaseActivity import com.casic.qd.smartwell.utils.Constant /** @@ -23,28 +22,31 @@ return false } -fun Context.navigatePageTo(clazz: Class) { - startActivity(Intent(this, clazz)) +/** + * Context内联函数-扩展函数 + * */ +inline fun Context.getSystemService(): T? { + return this.getSystemService(T::class.java) } -fun Context.navigatePageTo(clazz: Class, value: String) { - val intent = Intent(this, clazz) +inline fun Context.navigatePageTo() { + startActivity(Intent(this, T::class.java)) +} + +inline fun Context.navigatePageTo(value: String) { + val intent = Intent(this, T::class.java) intent.putExtra(Constant.INTENT_PARAM, value) startActivity(intent) } -fun Context.navigatePageTo(clazz: Class, values: ArrayList) { - val intent = Intent(this, clazz) +inline fun Context.navigatePageTo(values: ArrayList) { + val intent = Intent(this, T::class.java) intent.putStringArrayListExtra(Constant.INTENT_PARAM, values) startActivity(intent) } -fun Context.navigatePageTo( - clazz: Class, - index: Int, - imageList: ArrayList -) { - val intent = Intent(this, clazz) +inline fun Context.navigatePageTo(index: Int, imageList: ArrayList) { + val intent = Intent(this, T::class.java) intent.putExtra("index", index) intent.putStringArrayListExtra("images", imageList) startActivity(intent) diff --git a/app/src/main/java/com/casic/qd/smartwell/utils/WeakReferenceHandler.kt b/app/src/main/java/com/casic/qd/smartwell/utils/WeakReferenceHandler.kt new file mode 100644 index 0000000..31468d7 --- /dev/null +++ b/app/src/main/java/com/casic/qd/smartwell/utils/WeakReferenceHandler.kt @@ -0,0 +1,16 @@ +package com.casic.qd.smartwell.utils + +import android.os.Handler +import android.os.Looper +import android.os.Message +import java.lang.ref.WeakReference + +class WeakReferenceHandler(callback: Callback) : Handler(Looper.getMainLooper()) { + + private var weakReference: WeakReference = WeakReference(callback) + + override fun handleMessage(msg: Message) { + super.handleMessage(msg) + weakReference.get()?.handleMessage(msg) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/qd/smartwell/view/AlarmManagementActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/AlarmManagementActivity.kt index 67f51d9..b492537 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/AlarmManagementActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/AlarmManagementActivity.kt @@ -1,12 +1,9 @@ package com.casic.qd.smartwell.view -import android.annotation.SuppressLint import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import android.os.Handler -import android.os.Looper -import android.os.Message import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.LinearLayoutManager import com.casic.qd.smartwell.R @@ -16,15 +13,11 @@ import com.casic.qd.smartwell.extensions.show import com.casic.qd.smartwell.extensions.showEmptyPage import com.casic.qd.smartwell.model.AlarmListModel -import com.casic.qd.smartwell.utils.BroadcastReceiverManager -import com.casic.qd.smartwell.utils.Constant -import com.casic.qd.smartwell.utils.DialogHelper -import com.casic.qd.smartwell.utils.LoadState +import com.casic.qd.smartwell.utils.* import com.casic.qd.smartwell.vm.AlarmViewModel import com.pengxh.app.multilib.widget.dialog.AlertControlDialog import kotlinx.android.synthetic.main.activity_alarm_management.* import kotlinx.android.synthetic.main.include_empty_view.* -import java.lang.ref.WeakReference class AlarmManagementActivity : BaseActivity() { @@ -43,13 +36,13 @@ leftBackView.setOnClickListener { finish() } titleView.text = "当前告警" rightOptionView.setOnClickListener { - this.navigatePageTo(SearchAlarmActivity::class.java) + navigatePageTo() } } override fun initData() { alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java) - weakReferenceHandler = WeakReferenceHandler(this) + weakReferenceHandler = WeakReferenceHandler(callback) //注册广播接收者 BroadcastReceiverManager.instance.addAction(Constant.CANCEL_ALARM_ACTION, object : BroadcastReceiver() { @@ -125,66 +118,59 @@ alarmViewModel.obtainAlarmList("", "", "", "", "", "", "1", pageIndex) } - private class WeakReferenceHandler(activity: AlarmManagementActivity) : - Handler(Looper.getMainLooper()) { - private val reference: WeakReference = WeakReference(activity) - - @SuppressLint("NotifyDataSetChanged") - override fun handleMessage(msg: Message) { - super.handleMessage(msg) - val activity = reference.get()!! - if (msg.what == 2022041301) { - if (activity.isRefresh || activity.isLoadMore) { - activity.alarmListAdapter.notifyDataSetChanged() - } else { //首次加载数据 - if (activity.dataBeans.size == 0) { - activity.emptyView!!.showEmptyPage { - activity.obtainAlarmList(activity.pageIndex) - } - } else { - activity.emptyView!!.hide() - activity.alarmListAdapter = AlarmListAdapter(activity, activity.dataBeans) - activity.alarmListView!!.layoutManager = LinearLayoutManager(activity) - activity.alarmListView!!.adapter = activity.alarmListAdapter - activity.alarmListAdapter.setOnItemClickListener(object : - AlarmListAdapter.OnItemClickListener { - override fun onClicked(position: Int) { - val wellId = activity.dataBeans[position].wellId.toString() - if (wellId.isBlank()) { - "井编号异常,无法查看详情".show() - return - } - activity.navigatePageTo(WellDetailActivity::class.java, wellId) - } - - override fun onOperationClicked(position: Int) { - AlertControlDialog.Builder() - .setContext(activity) - .setTitle("确认操作") - .setMessage("确定取消报警吗?") - .setNegativeButton("取消") - .setPositiveButton("确定") - .setOnDialogButtonClickListener(object : - AlertControlDialog.OnDialogButtonClickListener { - override fun onConfirmClick() { - val alarmId = activity.dataBeans[position].id - if (alarmId.toString().isBlank()) { - "操作失败,告警ID异常".show() - return - } - activity.alarmViewModel.obtainOperationResult(alarmId!!) - } - - override fun onCancelClick() { - - } - }).build().show() - } - }) + private val callback = Handler.Callback { + if (it.what == 2022041301) { + if (isRefresh || isLoadMore) { + alarmListAdapter.notifyDataSetChanged() + } else { //首次加载数据 + if (dataBeans.size == 0) { + emptyView!!.showEmptyPage { + obtainAlarmList(pageIndex) } + } else { + emptyView!!.hide() + alarmListAdapter = AlarmListAdapter(this, dataBeans) + alarmListView!!.layoutManager = LinearLayoutManager(this) + alarmListView!!.adapter = alarmListAdapter + alarmListAdapter.setOnItemClickListener(object : + AlarmListAdapter.OnItemClickListener { + override fun onClicked(position: Int) { + val wellId = dataBeans[position].wellId.toString() + if (wellId.isBlank()) { + "井编号异常,无法查看详情".show() + return + } + navigatePageTo(wellId) + } + + override fun onOperationClicked(position: Int) { + AlertControlDialog.Builder() + .setContext(this@AlarmManagementActivity) + .setTitle("确认操作") + .setMessage("确定取消报警吗?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + val alarmId = dataBeans[position].id + if (alarmId.toString().isBlank()) { + "操作失败,告警ID异常".show() + return + } + alarmViewModel.obtainOperationResult(alarmId!!) + } + + override fun onCancelClick() { + + } + }).build().show() + } + }) } } } + true } override fun onDestroy() { diff --git a/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt index 198daf5..f19f2f7 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt @@ -1,12 +1,9 @@ package com.casic.qd.smartwell.view -import android.annotation.SuppressLint import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import android.os.Handler -import android.os.Looper -import android.os.Message import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.LinearLayoutManager import com.casic.qd.smartwell.R @@ -16,17 +13,13 @@ import com.casic.qd.smartwell.extensions.show import com.casic.qd.smartwell.extensions.showEmptyPage import com.casic.qd.smartwell.model.AlarmListModel -import com.casic.qd.smartwell.utils.BroadcastReceiverManager -import com.casic.qd.smartwell.utils.Constant -import com.casic.qd.smartwell.utils.DialogHelper -import com.casic.qd.smartwell.utils.LoadState +import com.casic.qd.smartwell.utils.* import com.casic.qd.smartwell.vm.AlarmViewModel import com.casic.qd.smartwell.vm.SearchResultViewModel import com.pengxh.app.multilib.widget.dialog.AlertControlDialog import kotlinx.android.synthetic.main.activity_alarm_search_result.* import kotlinx.android.synthetic.main.include_base_title.* import kotlinx.android.synthetic.main.include_empty_view.* -import java.lang.ref.WeakReference class AlarmSearchResultActivity : BaseActivity() { @@ -49,7 +42,7 @@ override fun initData() { args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! - weakReferenceHandler = WeakReferenceHandler(this) + weakReferenceHandler = WeakReferenceHandler(callback) searchAlarmViewModel = ViewModelProvider(this).get(SearchResultViewModel::class.java) alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java) //注册广播接收者 @@ -141,66 +134,59 @@ ) } - private class WeakReferenceHandler(activity: AlarmSearchResultActivity) : - Handler(Looper.getMainLooper()) { - private val reference: WeakReference = WeakReference(activity) - - @SuppressLint("NotifyDataSetChanged") - override fun handleMessage(msg: Message) { - super.handleMessage(msg) - val activity = reference.get()!! - if (msg.what == 2022041501) { - if (activity.isRefresh || activity.isLoadMore) { - activity.alarmListAdapter.notifyDataSetChanged() - } else { //首次加载数据 - if (activity.dataBeans.size == 0) { - activity.emptyView!!.showEmptyPage { - activity.obtainSearchResult(activity.args, activity.pageIndex) - } - } else { - activity.emptyView!!.hide() - activity.alarmListAdapter = AlarmListAdapter(activity, activity.dataBeans) - activity.resultRecyclerView!!.layoutManager = LinearLayoutManager(activity) - activity.resultRecyclerView!!.adapter = activity.alarmListAdapter - activity.alarmListAdapter.setOnItemClickListener(object : - AlarmListAdapter.OnItemClickListener { - override fun onClicked(position: Int) { - val wellId = activity.dataBeans[position].wellId.toString() - if (wellId.isBlank()) { - "井编号异常,无法查看详情".show() - return - } - activity.navigatePageTo(WellDetailActivity::class.java, wellId) - } - - override fun onOperationClicked(position: Int) { - AlertControlDialog.Builder() - .setContext(activity) - .setTitle("确认操作") - .setMessage("确定取消报警吗?") - .setNegativeButton("取消") - .setPositiveButton("确定") - .setOnDialogButtonClickListener(object : - AlertControlDialog.OnDialogButtonClickListener { - override fun onConfirmClick() { - val alarmId = activity.dataBeans[position].id - if (alarmId.toString().isBlank()) { - "操作失败,告警ID异常".show() - return - } - activity.alarmViewModel.obtainOperationResult(alarmId!!) - } - - override fun onCancelClick() { - - } - }).build().show() - } - }) + private val callback = Handler.Callback { + if (it.what == 2022041501) { + if (isRefresh || isLoadMore) { + alarmListAdapter.notifyDataSetChanged() + } else { //首次加载数据 + if (dataBeans.size == 0) { + emptyView!!.showEmptyPage { + obtainSearchResult(args, pageIndex) } + } else { + emptyView!!.hide() + alarmListAdapter = AlarmListAdapter(this, dataBeans) + resultRecyclerView!!.layoutManager = LinearLayoutManager(this) + resultRecyclerView!!.adapter = alarmListAdapter + alarmListAdapter.setOnItemClickListener(object : + AlarmListAdapter.OnItemClickListener { + override fun onClicked(position: Int) { + val wellId = dataBeans[position].wellId.toString() + if (wellId.isBlank()) { + "井编号异常,无法查看详情".show() + return + } + navigatePageTo(wellId) + } + + override fun onOperationClicked(position: Int) { + AlertControlDialog.Builder() + .setContext(this@AlarmSearchResultActivity) + .setTitle("确认操作") + .setMessage("确定取消报警吗?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + val alarmId = dataBeans[position].id + if (alarmId.toString().isBlank()) { + "操作失败,告警ID异常".show() + return + } + alarmViewModel.obtainOperationResult(alarmId!!) + } + + override fun onCancelClick() { + + } + }).build().show() + } + }) } } } + true } override fun onDestroy() { diff --git a/app/src/main/java/com/casic/qd/smartwell/view/LoginActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/LoginActivity.kt index c86ee63..ccfeb79 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/LoginActivity.kt @@ -113,7 +113,7 @@ */ authenticateViewModel.obtainAuthorByDept() //验证成功登录 - this.navigatePageTo(MainActivity::class.java) + navigatePageTo() finish() } }) diff --git a/app/src/main/java/com/casic/qd/smartwell/view/MainActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/MainActivity.kt index e005c94..b989b16 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/MainActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/MainActivity.kt @@ -106,7 +106,7 @@ //Banner点击事件 setOnBannerListener { imageModel, _ -> - navigatePageTo(WebsiteActivity::class.java, imageModel.webPageLink!!) + navigatePageTo(imageModel.webPageLink!!) } } @@ -118,20 +118,20 @@ HomeRecycleAdapter.OnGridItemClickListener { override fun onClick(position: Int) { when (position) { - 0 -> context.navigatePageTo(MapActivity::class.java) + 0 -> context.navigatePageTo() 1 -> { BottomActionSheet.Builder() .setContext(context) .setActionItemTitles(arrayOf("设备", "数据")) .setOnActionSheetListener { index -> when (index) { - 0 -> context.navigatePageTo(SearchDeviceActivity::class.java) - 1 -> context.navigatePageTo(SearchDataActivity::class.java) + 0 -> context.navigatePageTo() + 1 -> context.navigatePageTo() } }.build().show() } - 2 -> context.navigatePageTo(StatisticsActivity::class.java) + 2 -> context.navigatePageTo() } } }) @@ -155,13 +155,13 @@ loginViewModel.loadState.observe(this, { if (it == LoadState.Success) { AuthenticationHelper.removeToken() - this.navigatePageTo(LoginActivity::class.java) + navigatePageTo() PageNavigationManager.finishAllActivity() } }) rightOptionView.setOnClickListener { - navigatePageTo(AlarmManagementActivity::class.java) + navigatePageTo() } waterViewModel.waterStatistics() @@ -208,7 +208,7 @@ }) expandChartView.setOnClickListener { - navigatePageTo(WaterExpandedActivity::class.java) + navigatePageTo() } changePwdViewModel.loadState.observe(this, { @@ -219,7 +219,7 @@ is LoadState.Success -> { DialogHelper.dismissLoadingDialog() AuthenticationHelper.removeToken() - this.navigatePageTo(LoginActivity::class.java) + navigatePageTo() PageNavigationManager.finishAllActivity() } else -> { diff --git a/app/src/main/java/com/casic/qd/smartwell/extensions/Context.kt b/app/src/main/java/com/casic/qd/smartwell/extensions/Context.kt index ab62dc8..67b1d51 100644 --- a/app/src/main/java/com/casic/qd/smartwell/extensions/Context.kt +++ b/app/src/main/java/com/casic/qd/smartwell/extensions/Context.kt @@ -3,7 +3,6 @@ import android.content.Context import android.content.Intent import android.net.ConnectivityManager -import com.casic.qd.smartwell.base.BaseActivity import com.casic.qd.smartwell.utils.Constant /** @@ -23,28 +22,31 @@ return false } -fun Context.navigatePageTo(clazz: Class) { - startActivity(Intent(this, clazz)) +/** + * Context内联函数-扩展函数 + * */ +inline fun Context.getSystemService(): T? { + return this.getSystemService(T::class.java) } -fun Context.navigatePageTo(clazz: Class, value: String) { - val intent = Intent(this, clazz) +inline fun Context.navigatePageTo() { + startActivity(Intent(this, T::class.java)) +} + +inline fun Context.navigatePageTo(value: String) { + val intent = Intent(this, T::class.java) intent.putExtra(Constant.INTENT_PARAM, value) startActivity(intent) } -fun Context.navigatePageTo(clazz: Class, values: ArrayList) { - val intent = Intent(this, clazz) +inline fun Context.navigatePageTo(values: ArrayList) { + val intent = Intent(this, T::class.java) intent.putStringArrayListExtra(Constant.INTENT_PARAM, values) startActivity(intent) } -fun Context.navigatePageTo( - clazz: Class, - index: Int, - imageList: ArrayList -) { - val intent = Intent(this, clazz) +inline fun Context.navigatePageTo(index: Int, imageList: ArrayList) { + val intent = Intent(this, T::class.java) intent.putExtra("index", index) intent.putStringArrayListExtra("images", imageList) startActivity(intent) diff --git a/app/src/main/java/com/casic/qd/smartwell/utils/WeakReferenceHandler.kt b/app/src/main/java/com/casic/qd/smartwell/utils/WeakReferenceHandler.kt new file mode 100644 index 0000000..31468d7 --- /dev/null +++ b/app/src/main/java/com/casic/qd/smartwell/utils/WeakReferenceHandler.kt @@ -0,0 +1,16 @@ +package com.casic.qd.smartwell.utils + +import android.os.Handler +import android.os.Looper +import android.os.Message +import java.lang.ref.WeakReference + +class WeakReferenceHandler(callback: Callback) : Handler(Looper.getMainLooper()) { + + private var weakReference: WeakReference = WeakReference(callback) + + override fun handleMessage(msg: Message) { + super.handleMessage(msg) + weakReference.get()?.handleMessage(msg) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/qd/smartwell/view/AlarmManagementActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/AlarmManagementActivity.kt index 67f51d9..b492537 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/AlarmManagementActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/AlarmManagementActivity.kt @@ -1,12 +1,9 @@ package com.casic.qd.smartwell.view -import android.annotation.SuppressLint import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import android.os.Handler -import android.os.Looper -import android.os.Message import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.LinearLayoutManager import com.casic.qd.smartwell.R @@ -16,15 +13,11 @@ import com.casic.qd.smartwell.extensions.show import com.casic.qd.smartwell.extensions.showEmptyPage import com.casic.qd.smartwell.model.AlarmListModel -import com.casic.qd.smartwell.utils.BroadcastReceiverManager -import com.casic.qd.smartwell.utils.Constant -import com.casic.qd.smartwell.utils.DialogHelper -import com.casic.qd.smartwell.utils.LoadState +import com.casic.qd.smartwell.utils.* import com.casic.qd.smartwell.vm.AlarmViewModel import com.pengxh.app.multilib.widget.dialog.AlertControlDialog import kotlinx.android.synthetic.main.activity_alarm_management.* import kotlinx.android.synthetic.main.include_empty_view.* -import java.lang.ref.WeakReference class AlarmManagementActivity : BaseActivity() { @@ -43,13 +36,13 @@ leftBackView.setOnClickListener { finish() } titleView.text = "当前告警" rightOptionView.setOnClickListener { - this.navigatePageTo(SearchAlarmActivity::class.java) + navigatePageTo() } } override fun initData() { alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java) - weakReferenceHandler = WeakReferenceHandler(this) + weakReferenceHandler = WeakReferenceHandler(callback) //注册广播接收者 BroadcastReceiverManager.instance.addAction(Constant.CANCEL_ALARM_ACTION, object : BroadcastReceiver() { @@ -125,66 +118,59 @@ alarmViewModel.obtainAlarmList("", "", "", "", "", "", "1", pageIndex) } - private class WeakReferenceHandler(activity: AlarmManagementActivity) : - Handler(Looper.getMainLooper()) { - private val reference: WeakReference = WeakReference(activity) - - @SuppressLint("NotifyDataSetChanged") - override fun handleMessage(msg: Message) { - super.handleMessage(msg) - val activity = reference.get()!! - if (msg.what == 2022041301) { - if (activity.isRefresh || activity.isLoadMore) { - activity.alarmListAdapter.notifyDataSetChanged() - } else { //首次加载数据 - if (activity.dataBeans.size == 0) { - activity.emptyView!!.showEmptyPage { - activity.obtainAlarmList(activity.pageIndex) - } - } else { - activity.emptyView!!.hide() - activity.alarmListAdapter = AlarmListAdapter(activity, activity.dataBeans) - activity.alarmListView!!.layoutManager = LinearLayoutManager(activity) - activity.alarmListView!!.adapter = activity.alarmListAdapter - activity.alarmListAdapter.setOnItemClickListener(object : - AlarmListAdapter.OnItemClickListener { - override fun onClicked(position: Int) { - val wellId = activity.dataBeans[position].wellId.toString() - if (wellId.isBlank()) { - "井编号异常,无法查看详情".show() - return - } - activity.navigatePageTo(WellDetailActivity::class.java, wellId) - } - - override fun onOperationClicked(position: Int) { - AlertControlDialog.Builder() - .setContext(activity) - .setTitle("确认操作") - .setMessage("确定取消报警吗?") - .setNegativeButton("取消") - .setPositiveButton("确定") - .setOnDialogButtonClickListener(object : - AlertControlDialog.OnDialogButtonClickListener { - override fun onConfirmClick() { - val alarmId = activity.dataBeans[position].id - if (alarmId.toString().isBlank()) { - "操作失败,告警ID异常".show() - return - } - activity.alarmViewModel.obtainOperationResult(alarmId!!) - } - - override fun onCancelClick() { - - } - }).build().show() - } - }) + private val callback = Handler.Callback { + if (it.what == 2022041301) { + if (isRefresh || isLoadMore) { + alarmListAdapter.notifyDataSetChanged() + } else { //首次加载数据 + if (dataBeans.size == 0) { + emptyView!!.showEmptyPage { + obtainAlarmList(pageIndex) } + } else { + emptyView!!.hide() + alarmListAdapter = AlarmListAdapter(this, dataBeans) + alarmListView!!.layoutManager = LinearLayoutManager(this) + alarmListView!!.adapter = alarmListAdapter + alarmListAdapter.setOnItemClickListener(object : + AlarmListAdapter.OnItemClickListener { + override fun onClicked(position: Int) { + val wellId = dataBeans[position].wellId.toString() + if (wellId.isBlank()) { + "井编号异常,无法查看详情".show() + return + } + navigatePageTo(wellId) + } + + override fun onOperationClicked(position: Int) { + AlertControlDialog.Builder() + .setContext(this@AlarmManagementActivity) + .setTitle("确认操作") + .setMessage("确定取消报警吗?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + val alarmId = dataBeans[position].id + if (alarmId.toString().isBlank()) { + "操作失败,告警ID异常".show() + return + } + alarmViewModel.obtainOperationResult(alarmId!!) + } + + override fun onCancelClick() { + + } + }).build().show() + } + }) } } } + true } override fun onDestroy() { diff --git a/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt index 198daf5..f19f2f7 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt @@ -1,12 +1,9 @@ package com.casic.qd.smartwell.view -import android.annotation.SuppressLint import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import android.os.Handler -import android.os.Looper -import android.os.Message import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.LinearLayoutManager import com.casic.qd.smartwell.R @@ -16,17 +13,13 @@ import com.casic.qd.smartwell.extensions.show import com.casic.qd.smartwell.extensions.showEmptyPage import com.casic.qd.smartwell.model.AlarmListModel -import com.casic.qd.smartwell.utils.BroadcastReceiverManager -import com.casic.qd.smartwell.utils.Constant -import com.casic.qd.smartwell.utils.DialogHelper -import com.casic.qd.smartwell.utils.LoadState +import com.casic.qd.smartwell.utils.* import com.casic.qd.smartwell.vm.AlarmViewModel import com.casic.qd.smartwell.vm.SearchResultViewModel import com.pengxh.app.multilib.widget.dialog.AlertControlDialog import kotlinx.android.synthetic.main.activity_alarm_search_result.* import kotlinx.android.synthetic.main.include_base_title.* import kotlinx.android.synthetic.main.include_empty_view.* -import java.lang.ref.WeakReference class AlarmSearchResultActivity : BaseActivity() { @@ -49,7 +42,7 @@ override fun initData() { args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! - weakReferenceHandler = WeakReferenceHandler(this) + weakReferenceHandler = WeakReferenceHandler(callback) searchAlarmViewModel = ViewModelProvider(this).get(SearchResultViewModel::class.java) alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java) //注册广播接收者 @@ -141,66 +134,59 @@ ) } - private class WeakReferenceHandler(activity: AlarmSearchResultActivity) : - Handler(Looper.getMainLooper()) { - private val reference: WeakReference = WeakReference(activity) - - @SuppressLint("NotifyDataSetChanged") - override fun handleMessage(msg: Message) { - super.handleMessage(msg) - val activity = reference.get()!! - if (msg.what == 2022041501) { - if (activity.isRefresh || activity.isLoadMore) { - activity.alarmListAdapter.notifyDataSetChanged() - } else { //首次加载数据 - if (activity.dataBeans.size == 0) { - activity.emptyView!!.showEmptyPage { - activity.obtainSearchResult(activity.args, activity.pageIndex) - } - } else { - activity.emptyView!!.hide() - activity.alarmListAdapter = AlarmListAdapter(activity, activity.dataBeans) - activity.resultRecyclerView!!.layoutManager = LinearLayoutManager(activity) - activity.resultRecyclerView!!.adapter = activity.alarmListAdapter - activity.alarmListAdapter.setOnItemClickListener(object : - AlarmListAdapter.OnItemClickListener { - override fun onClicked(position: Int) { - val wellId = activity.dataBeans[position].wellId.toString() - if (wellId.isBlank()) { - "井编号异常,无法查看详情".show() - return - } - activity.navigatePageTo(WellDetailActivity::class.java, wellId) - } - - override fun onOperationClicked(position: Int) { - AlertControlDialog.Builder() - .setContext(activity) - .setTitle("确认操作") - .setMessage("确定取消报警吗?") - .setNegativeButton("取消") - .setPositiveButton("确定") - .setOnDialogButtonClickListener(object : - AlertControlDialog.OnDialogButtonClickListener { - override fun onConfirmClick() { - val alarmId = activity.dataBeans[position].id - if (alarmId.toString().isBlank()) { - "操作失败,告警ID异常".show() - return - } - activity.alarmViewModel.obtainOperationResult(alarmId!!) - } - - override fun onCancelClick() { - - } - }).build().show() - } - }) + private val callback = Handler.Callback { + if (it.what == 2022041501) { + if (isRefresh || isLoadMore) { + alarmListAdapter.notifyDataSetChanged() + } else { //首次加载数据 + if (dataBeans.size == 0) { + emptyView!!.showEmptyPage { + obtainSearchResult(args, pageIndex) } + } else { + emptyView!!.hide() + alarmListAdapter = AlarmListAdapter(this, dataBeans) + resultRecyclerView!!.layoutManager = LinearLayoutManager(this) + resultRecyclerView!!.adapter = alarmListAdapter + alarmListAdapter.setOnItemClickListener(object : + AlarmListAdapter.OnItemClickListener { + override fun onClicked(position: Int) { + val wellId = dataBeans[position].wellId.toString() + if (wellId.isBlank()) { + "井编号异常,无法查看详情".show() + return + } + navigatePageTo(wellId) + } + + override fun onOperationClicked(position: Int) { + AlertControlDialog.Builder() + .setContext(this@AlarmSearchResultActivity) + .setTitle("确认操作") + .setMessage("确定取消报警吗?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + val alarmId = dataBeans[position].id + if (alarmId.toString().isBlank()) { + "操作失败,告警ID异常".show() + return + } + alarmViewModel.obtainOperationResult(alarmId!!) + } + + override fun onCancelClick() { + + } + }).build().show() + } + }) } } } + true } override fun onDestroy() { diff --git a/app/src/main/java/com/casic/qd/smartwell/view/LoginActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/LoginActivity.kt index c86ee63..ccfeb79 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/LoginActivity.kt @@ -113,7 +113,7 @@ */ authenticateViewModel.obtainAuthorByDept() //验证成功登录 - this.navigatePageTo(MainActivity::class.java) + navigatePageTo() finish() } }) diff --git a/app/src/main/java/com/casic/qd/smartwell/view/MainActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/MainActivity.kt index e005c94..b989b16 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/MainActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/MainActivity.kt @@ -106,7 +106,7 @@ //Banner点击事件 setOnBannerListener { imageModel, _ -> - navigatePageTo(WebsiteActivity::class.java, imageModel.webPageLink!!) + navigatePageTo(imageModel.webPageLink!!) } } @@ -118,20 +118,20 @@ HomeRecycleAdapter.OnGridItemClickListener { override fun onClick(position: Int) { when (position) { - 0 -> context.navigatePageTo(MapActivity::class.java) + 0 -> context.navigatePageTo() 1 -> { BottomActionSheet.Builder() .setContext(context) .setActionItemTitles(arrayOf("设备", "数据")) .setOnActionSheetListener { index -> when (index) { - 0 -> context.navigatePageTo(SearchDeviceActivity::class.java) - 1 -> context.navigatePageTo(SearchDataActivity::class.java) + 0 -> context.navigatePageTo() + 1 -> context.navigatePageTo() } }.build().show() } - 2 -> context.navigatePageTo(StatisticsActivity::class.java) + 2 -> context.navigatePageTo() } } }) @@ -155,13 +155,13 @@ loginViewModel.loadState.observe(this, { if (it == LoadState.Success) { AuthenticationHelper.removeToken() - this.navigatePageTo(LoginActivity::class.java) + navigatePageTo() PageNavigationManager.finishAllActivity() } }) rightOptionView.setOnClickListener { - navigatePageTo(AlarmManagementActivity::class.java) + navigatePageTo() } waterViewModel.waterStatistics() @@ -208,7 +208,7 @@ }) expandChartView.setOnClickListener { - navigatePageTo(WaterExpandedActivity::class.java) + navigatePageTo() } changePwdViewModel.loadState.observe(this, { @@ -219,7 +219,7 @@ is LoadState.Success -> { DialogHelper.dismissLoadingDialog() AuthenticationHelper.removeToken() - this.navigatePageTo(LoginActivity::class.java) + navigatePageTo() PageNavigationManager.finishAllActivity() } else -> { diff --git a/app/src/main/java/com/casic/qd/smartwell/view/MapActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/MapActivity.kt index 557f61e..9f16224 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/MapActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/MapActivity.kt @@ -77,7 +77,7 @@ when (position) { 0 -> aMap.mapType = AMap.MAP_TYPE_NORMAL 1 -> aMap.mapType = AMap.MAP_TYPE_SATELLITE - 2 -> navigatePageTo(WebsiteActivity::class.java, Constant.VR_URL) + 2 -> navigatePageTo(Constant.VR_URL) } } }) @@ -277,7 +277,7 @@ override fun onPause() { super.onPause() - mapView.onResume() + mapView.onPause() } override fun onDestroy() { diff --git a/app/src/main/java/com/casic/qd/smartwell/extensions/Context.kt b/app/src/main/java/com/casic/qd/smartwell/extensions/Context.kt index ab62dc8..67b1d51 100644 --- a/app/src/main/java/com/casic/qd/smartwell/extensions/Context.kt +++ b/app/src/main/java/com/casic/qd/smartwell/extensions/Context.kt @@ -3,7 +3,6 @@ import android.content.Context import android.content.Intent import android.net.ConnectivityManager -import com.casic.qd.smartwell.base.BaseActivity import com.casic.qd.smartwell.utils.Constant /** @@ -23,28 +22,31 @@ return false } -fun Context.navigatePageTo(clazz: Class) { - startActivity(Intent(this, clazz)) +/** + * Context内联函数-扩展函数 + * */ +inline fun Context.getSystemService(): T? { + return this.getSystemService(T::class.java) } -fun Context.navigatePageTo(clazz: Class, value: String) { - val intent = Intent(this, clazz) +inline fun Context.navigatePageTo() { + startActivity(Intent(this, T::class.java)) +} + +inline fun Context.navigatePageTo(value: String) { + val intent = Intent(this, T::class.java) intent.putExtra(Constant.INTENT_PARAM, value) startActivity(intent) } -fun Context.navigatePageTo(clazz: Class, values: ArrayList) { - val intent = Intent(this, clazz) +inline fun Context.navigatePageTo(values: ArrayList) { + val intent = Intent(this, T::class.java) intent.putStringArrayListExtra(Constant.INTENT_PARAM, values) startActivity(intent) } -fun Context.navigatePageTo( - clazz: Class, - index: Int, - imageList: ArrayList -) { - val intent = Intent(this, clazz) +inline fun Context.navigatePageTo(index: Int, imageList: ArrayList) { + val intent = Intent(this, T::class.java) intent.putExtra("index", index) intent.putStringArrayListExtra("images", imageList) startActivity(intent) diff --git a/app/src/main/java/com/casic/qd/smartwell/utils/WeakReferenceHandler.kt b/app/src/main/java/com/casic/qd/smartwell/utils/WeakReferenceHandler.kt new file mode 100644 index 0000000..31468d7 --- /dev/null +++ b/app/src/main/java/com/casic/qd/smartwell/utils/WeakReferenceHandler.kt @@ -0,0 +1,16 @@ +package com.casic.qd.smartwell.utils + +import android.os.Handler +import android.os.Looper +import android.os.Message +import java.lang.ref.WeakReference + +class WeakReferenceHandler(callback: Callback) : Handler(Looper.getMainLooper()) { + + private var weakReference: WeakReference = WeakReference(callback) + + override fun handleMessage(msg: Message) { + super.handleMessage(msg) + weakReference.get()?.handleMessage(msg) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/qd/smartwell/view/AlarmManagementActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/AlarmManagementActivity.kt index 67f51d9..b492537 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/AlarmManagementActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/AlarmManagementActivity.kt @@ -1,12 +1,9 @@ package com.casic.qd.smartwell.view -import android.annotation.SuppressLint import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import android.os.Handler -import android.os.Looper -import android.os.Message import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.LinearLayoutManager import com.casic.qd.smartwell.R @@ -16,15 +13,11 @@ import com.casic.qd.smartwell.extensions.show import com.casic.qd.smartwell.extensions.showEmptyPage import com.casic.qd.smartwell.model.AlarmListModel -import com.casic.qd.smartwell.utils.BroadcastReceiverManager -import com.casic.qd.smartwell.utils.Constant -import com.casic.qd.smartwell.utils.DialogHelper -import com.casic.qd.smartwell.utils.LoadState +import com.casic.qd.smartwell.utils.* import com.casic.qd.smartwell.vm.AlarmViewModel import com.pengxh.app.multilib.widget.dialog.AlertControlDialog import kotlinx.android.synthetic.main.activity_alarm_management.* import kotlinx.android.synthetic.main.include_empty_view.* -import java.lang.ref.WeakReference class AlarmManagementActivity : BaseActivity() { @@ -43,13 +36,13 @@ leftBackView.setOnClickListener { finish() } titleView.text = "当前告警" rightOptionView.setOnClickListener { - this.navigatePageTo(SearchAlarmActivity::class.java) + navigatePageTo() } } override fun initData() { alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java) - weakReferenceHandler = WeakReferenceHandler(this) + weakReferenceHandler = WeakReferenceHandler(callback) //注册广播接收者 BroadcastReceiverManager.instance.addAction(Constant.CANCEL_ALARM_ACTION, object : BroadcastReceiver() { @@ -125,66 +118,59 @@ alarmViewModel.obtainAlarmList("", "", "", "", "", "", "1", pageIndex) } - private class WeakReferenceHandler(activity: AlarmManagementActivity) : - Handler(Looper.getMainLooper()) { - private val reference: WeakReference = WeakReference(activity) - - @SuppressLint("NotifyDataSetChanged") - override fun handleMessage(msg: Message) { - super.handleMessage(msg) - val activity = reference.get()!! - if (msg.what == 2022041301) { - if (activity.isRefresh || activity.isLoadMore) { - activity.alarmListAdapter.notifyDataSetChanged() - } else { //首次加载数据 - if (activity.dataBeans.size == 0) { - activity.emptyView!!.showEmptyPage { - activity.obtainAlarmList(activity.pageIndex) - } - } else { - activity.emptyView!!.hide() - activity.alarmListAdapter = AlarmListAdapter(activity, activity.dataBeans) - activity.alarmListView!!.layoutManager = LinearLayoutManager(activity) - activity.alarmListView!!.adapter = activity.alarmListAdapter - activity.alarmListAdapter.setOnItemClickListener(object : - AlarmListAdapter.OnItemClickListener { - override fun onClicked(position: Int) { - val wellId = activity.dataBeans[position].wellId.toString() - if (wellId.isBlank()) { - "井编号异常,无法查看详情".show() - return - } - activity.navigatePageTo(WellDetailActivity::class.java, wellId) - } - - override fun onOperationClicked(position: Int) { - AlertControlDialog.Builder() - .setContext(activity) - .setTitle("确认操作") - .setMessage("确定取消报警吗?") - .setNegativeButton("取消") - .setPositiveButton("确定") - .setOnDialogButtonClickListener(object : - AlertControlDialog.OnDialogButtonClickListener { - override fun onConfirmClick() { - val alarmId = activity.dataBeans[position].id - if (alarmId.toString().isBlank()) { - "操作失败,告警ID异常".show() - return - } - activity.alarmViewModel.obtainOperationResult(alarmId!!) - } - - override fun onCancelClick() { - - } - }).build().show() - } - }) + private val callback = Handler.Callback { + if (it.what == 2022041301) { + if (isRefresh || isLoadMore) { + alarmListAdapter.notifyDataSetChanged() + } else { //首次加载数据 + if (dataBeans.size == 0) { + emptyView!!.showEmptyPage { + obtainAlarmList(pageIndex) } + } else { + emptyView!!.hide() + alarmListAdapter = AlarmListAdapter(this, dataBeans) + alarmListView!!.layoutManager = LinearLayoutManager(this) + alarmListView!!.adapter = alarmListAdapter + alarmListAdapter.setOnItemClickListener(object : + AlarmListAdapter.OnItemClickListener { + override fun onClicked(position: Int) { + val wellId = dataBeans[position].wellId.toString() + if (wellId.isBlank()) { + "井编号异常,无法查看详情".show() + return + } + navigatePageTo(wellId) + } + + override fun onOperationClicked(position: Int) { + AlertControlDialog.Builder() + .setContext(this@AlarmManagementActivity) + .setTitle("确认操作") + .setMessage("确定取消报警吗?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + val alarmId = dataBeans[position].id + if (alarmId.toString().isBlank()) { + "操作失败,告警ID异常".show() + return + } + alarmViewModel.obtainOperationResult(alarmId!!) + } + + override fun onCancelClick() { + + } + }).build().show() + } + }) } } } + true } override fun onDestroy() { diff --git a/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt index 198daf5..f19f2f7 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt @@ -1,12 +1,9 @@ package com.casic.qd.smartwell.view -import android.annotation.SuppressLint import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import android.os.Handler -import android.os.Looper -import android.os.Message import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.LinearLayoutManager import com.casic.qd.smartwell.R @@ -16,17 +13,13 @@ import com.casic.qd.smartwell.extensions.show import com.casic.qd.smartwell.extensions.showEmptyPage import com.casic.qd.smartwell.model.AlarmListModel -import com.casic.qd.smartwell.utils.BroadcastReceiverManager -import com.casic.qd.smartwell.utils.Constant -import com.casic.qd.smartwell.utils.DialogHelper -import com.casic.qd.smartwell.utils.LoadState +import com.casic.qd.smartwell.utils.* import com.casic.qd.smartwell.vm.AlarmViewModel import com.casic.qd.smartwell.vm.SearchResultViewModel import com.pengxh.app.multilib.widget.dialog.AlertControlDialog import kotlinx.android.synthetic.main.activity_alarm_search_result.* import kotlinx.android.synthetic.main.include_base_title.* import kotlinx.android.synthetic.main.include_empty_view.* -import java.lang.ref.WeakReference class AlarmSearchResultActivity : BaseActivity() { @@ -49,7 +42,7 @@ override fun initData() { args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! - weakReferenceHandler = WeakReferenceHandler(this) + weakReferenceHandler = WeakReferenceHandler(callback) searchAlarmViewModel = ViewModelProvider(this).get(SearchResultViewModel::class.java) alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java) //注册广播接收者 @@ -141,66 +134,59 @@ ) } - private class WeakReferenceHandler(activity: AlarmSearchResultActivity) : - Handler(Looper.getMainLooper()) { - private val reference: WeakReference = WeakReference(activity) - - @SuppressLint("NotifyDataSetChanged") - override fun handleMessage(msg: Message) { - super.handleMessage(msg) - val activity = reference.get()!! - if (msg.what == 2022041501) { - if (activity.isRefresh || activity.isLoadMore) { - activity.alarmListAdapter.notifyDataSetChanged() - } else { //首次加载数据 - if (activity.dataBeans.size == 0) { - activity.emptyView!!.showEmptyPage { - activity.obtainSearchResult(activity.args, activity.pageIndex) - } - } else { - activity.emptyView!!.hide() - activity.alarmListAdapter = AlarmListAdapter(activity, activity.dataBeans) - activity.resultRecyclerView!!.layoutManager = LinearLayoutManager(activity) - activity.resultRecyclerView!!.adapter = activity.alarmListAdapter - activity.alarmListAdapter.setOnItemClickListener(object : - AlarmListAdapter.OnItemClickListener { - override fun onClicked(position: Int) { - val wellId = activity.dataBeans[position].wellId.toString() - if (wellId.isBlank()) { - "井编号异常,无法查看详情".show() - return - } - activity.navigatePageTo(WellDetailActivity::class.java, wellId) - } - - override fun onOperationClicked(position: Int) { - AlertControlDialog.Builder() - .setContext(activity) - .setTitle("确认操作") - .setMessage("确定取消报警吗?") - .setNegativeButton("取消") - .setPositiveButton("确定") - .setOnDialogButtonClickListener(object : - AlertControlDialog.OnDialogButtonClickListener { - override fun onConfirmClick() { - val alarmId = activity.dataBeans[position].id - if (alarmId.toString().isBlank()) { - "操作失败,告警ID异常".show() - return - } - activity.alarmViewModel.obtainOperationResult(alarmId!!) - } - - override fun onCancelClick() { - - } - }).build().show() - } - }) + private val callback = Handler.Callback { + if (it.what == 2022041501) { + if (isRefresh || isLoadMore) { + alarmListAdapter.notifyDataSetChanged() + } else { //首次加载数据 + if (dataBeans.size == 0) { + emptyView!!.showEmptyPage { + obtainSearchResult(args, pageIndex) } + } else { + emptyView!!.hide() + alarmListAdapter = AlarmListAdapter(this, dataBeans) + resultRecyclerView!!.layoutManager = LinearLayoutManager(this) + resultRecyclerView!!.adapter = alarmListAdapter + alarmListAdapter.setOnItemClickListener(object : + AlarmListAdapter.OnItemClickListener { + override fun onClicked(position: Int) { + val wellId = dataBeans[position].wellId.toString() + if (wellId.isBlank()) { + "井编号异常,无法查看详情".show() + return + } + navigatePageTo(wellId) + } + + override fun onOperationClicked(position: Int) { + AlertControlDialog.Builder() + .setContext(this@AlarmSearchResultActivity) + .setTitle("确认操作") + .setMessage("确定取消报警吗?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + val alarmId = dataBeans[position].id + if (alarmId.toString().isBlank()) { + "操作失败,告警ID异常".show() + return + } + alarmViewModel.obtainOperationResult(alarmId!!) + } + + override fun onCancelClick() { + + } + }).build().show() + } + }) } } } + true } override fun onDestroy() { diff --git a/app/src/main/java/com/casic/qd/smartwell/view/LoginActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/LoginActivity.kt index c86ee63..ccfeb79 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/LoginActivity.kt @@ -113,7 +113,7 @@ */ authenticateViewModel.obtainAuthorByDept() //验证成功登录 - this.navigatePageTo(MainActivity::class.java) + navigatePageTo() finish() } }) diff --git a/app/src/main/java/com/casic/qd/smartwell/view/MainActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/MainActivity.kt index e005c94..b989b16 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/MainActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/MainActivity.kt @@ -106,7 +106,7 @@ //Banner点击事件 setOnBannerListener { imageModel, _ -> - navigatePageTo(WebsiteActivity::class.java, imageModel.webPageLink!!) + navigatePageTo(imageModel.webPageLink!!) } } @@ -118,20 +118,20 @@ HomeRecycleAdapter.OnGridItemClickListener { override fun onClick(position: Int) { when (position) { - 0 -> context.navigatePageTo(MapActivity::class.java) + 0 -> context.navigatePageTo() 1 -> { BottomActionSheet.Builder() .setContext(context) .setActionItemTitles(arrayOf("设备", "数据")) .setOnActionSheetListener { index -> when (index) { - 0 -> context.navigatePageTo(SearchDeviceActivity::class.java) - 1 -> context.navigatePageTo(SearchDataActivity::class.java) + 0 -> context.navigatePageTo() + 1 -> context.navigatePageTo() } }.build().show() } - 2 -> context.navigatePageTo(StatisticsActivity::class.java) + 2 -> context.navigatePageTo() } } }) @@ -155,13 +155,13 @@ loginViewModel.loadState.observe(this, { if (it == LoadState.Success) { AuthenticationHelper.removeToken() - this.navigatePageTo(LoginActivity::class.java) + navigatePageTo() PageNavigationManager.finishAllActivity() } }) rightOptionView.setOnClickListener { - navigatePageTo(AlarmManagementActivity::class.java) + navigatePageTo() } waterViewModel.waterStatistics() @@ -208,7 +208,7 @@ }) expandChartView.setOnClickListener { - navigatePageTo(WaterExpandedActivity::class.java) + navigatePageTo() } changePwdViewModel.loadState.observe(this, { @@ -219,7 +219,7 @@ is LoadState.Success -> { DialogHelper.dismissLoadingDialog() AuthenticationHelper.removeToken() - this.navigatePageTo(LoginActivity::class.java) + navigatePageTo() PageNavigationManager.finishAllActivity() } else -> { diff --git a/app/src/main/java/com/casic/qd/smartwell/view/MapActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/MapActivity.kt index 557f61e..9f16224 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/MapActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/MapActivity.kt @@ -77,7 +77,7 @@ when (position) { 0 -> aMap.mapType = AMap.MAP_TYPE_NORMAL 1 -> aMap.mapType = AMap.MAP_TYPE_SATELLITE - 2 -> navigatePageTo(WebsiteActivity::class.java, Constant.VR_URL) + 2 -> navigatePageTo(Constant.VR_URL) } } }) @@ -277,7 +277,7 @@ override fun onPause() { super.onPause() - mapView.onResume() + mapView.onPause() } override fun onDestroy() { diff --git a/app/src/main/java/com/casic/qd/smartwell/view/PermissionActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/PermissionActivity.kt index 0d23233..58c6db9 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/PermissionActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/PermissionActivity.kt @@ -27,7 +27,7 @@ } private fun startSplashScreenActivity() { - this.navigatePageTo(SplashScreenActivity::class.java) + navigatePageTo() finish() } diff --git a/app/src/main/java/com/casic/qd/smartwell/extensions/Context.kt b/app/src/main/java/com/casic/qd/smartwell/extensions/Context.kt index ab62dc8..67b1d51 100644 --- a/app/src/main/java/com/casic/qd/smartwell/extensions/Context.kt +++ b/app/src/main/java/com/casic/qd/smartwell/extensions/Context.kt @@ -3,7 +3,6 @@ import android.content.Context import android.content.Intent import android.net.ConnectivityManager -import com.casic.qd.smartwell.base.BaseActivity import com.casic.qd.smartwell.utils.Constant /** @@ -23,28 +22,31 @@ return false } -fun Context.navigatePageTo(clazz: Class) { - startActivity(Intent(this, clazz)) +/** + * Context内联函数-扩展函数 + * */ +inline fun Context.getSystemService(): T? { + return this.getSystemService(T::class.java) } -fun Context.navigatePageTo(clazz: Class, value: String) { - val intent = Intent(this, clazz) +inline fun Context.navigatePageTo() { + startActivity(Intent(this, T::class.java)) +} + +inline fun Context.navigatePageTo(value: String) { + val intent = Intent(this, T::class.java) intent.putExtra(Constant.INTENT_PARAM, value) startActivity(intent) } -fun Context.navigatePageTo(clazz: Class, values: ArrayList) { - val intent = Intent(this, clazz) +inline fun Context.navigatePageTo(values: ArrayList) { + val intent = Intent(this, T::class.java) intent.putStringArrayListExtra(Constant.INTENT_PARAM, values) startActivity(intent) } -fun Context.navigatePageTo( - clazz: Class, - index: Int, - imageList: ArrayList -) { - val intent = Intent(this, clazz) +inline fun Context.navigatePageTo(index: Int, imageList: ArrayList) { + val intent = Intent(this, T::class.java) intent.putExtra("index", index) intent.putStringArrayListExtra("images", imageList) startActivity(intent) diff --git a/app/src/main/java/com/casic/qd/smartwell/utils/WeakReferenceHandler.kt b/app/src/main/java/com/casic/qd/smartwell/utils/WeakReferenceHandler.kt new file mode 100644 index 0000000..31468d7 --- /dev/null +++ b/app/src/main/java/com/casic/qd/smartwell/utils/WeakReferenceHandler.kt @@ -0,0 +1,16 @@ +package com.casic.qd.smartwell.utils + +import android.os.Handler +import android.os.Looper +import android.os.Message +import java.lang.ref.WeakReference + +class WeakReferenceHandler(callback: Callback) : Handler(Looper.getMainLooper()) { + + private var weakReference: WeakReference = WeakReference(callback) + + override fun handleMessage(msg: Message) { + super.handleMessage(msg) + weakReference.get()?.handleMessage(msg) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/qd/smartwell/view/AlarmManagementActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/AlarmManagementActivity.kt index 67f51d9..b492537 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/AlarmManagementActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/AlarmManagementActivity.kt @@ -1,12 +1,9 @@ package com.casic.qd.smartwell.view -import android.annotation.SuppressLint import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import android.os.Handler -import android.os.Looper -import android.os.Message import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.LinearLayoutManager import com.casic.qd.smartwell.R @@ -16,15 +13,11 @@ import com.casic.qd.smartwell.extensions.show import com.casic.qd.smartwell.extensions.showEmptyPage import com.casic.qd.smartwell.model.AlarmListModel -import com.casic.qd.smartwell.utils.BroadcastReceiverManager -import com.casic.qd.smartwell.utils.Constant -import com.casic.qd.smartwell.utils.DialogHelper -import com.casic.qd.smartwell.utils.LoadState +import com.casic.qd.smartwell.utils.* import com.casic.qd.smartwell.vm.AlarmViewModel import com.pengxh.app.multilib.widget.dialog.AlertControlDialog import kotlinx.android.synthetic.main.activity_alarm_management.* import kotlinx.android.synthetic.main.include_empty_view.* -import java.lang.ref.WeakReference class AlarmManagementActivity : BaseActivity() { @@ -43,13 +36,13 @@ leftBackView.setOnClickListener { finish() } titleView.text = "当前告警" rightOptionView.setOnClickListener { - this.navigatePageTo(SearchAlarmActivity::class.java) + navigatePageTo() } } override fun initData() { alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java) - weakReferenceHandler = WeakReferenceHandler(this) + weakReferenceHandler = WeakReferenceHandler(callback) //注册广播接收者 BroadcastReceiverManager.instance.addAction(Constant.CANCEL_ALARM_ACTION, object : BroadcastReceiver() { @@ -125,66 +118,59 @@ alarmViewModel.obtainAlarmList("", "", "", "", "", "", "1", pageIndex) } - private class WeakReferenceHandler(activity: AlarmManagementActivity) : - Handler(Looper.getMainLooper()) { - private val reference: WeakReference = WeakReference(activity) - - @SuppressLint("NotifyDataSetChanged") - override fun handleMessage(msg: Message) { - super.handleMessage(msg) - val activity = reference.get()!! - if (msg.what == 2022041301) { - if (activity.isRefresh || activity.isLoadMore) { - activity.alarmListAdapter.notifyDataSetChanged() - } else { //首次加载数据 - if (activity.dataBeans.size == 0) { - activity.emptyView!!.showEmptyPage { - activity.obtainAlarmList(activity.pageIndex) - } - } else { - activity.emptyView!!.hide() - activity.alarmListAdapter = AlarmListAdapter(activity, activity.dataBeans) - activity.alarmListView!!.layoutManager = LinearLayoutManager(activity) - activity.alarmListView!!.adapter = activity.alarmListAdapter - activity.alarmListAdapter.setOnItemClickListener(object : - AlarmListAdapter.OnItemClickListener { - override fun onClicked(position: Int) { - val wellId = activity.dataBeans[position].wellId.toString() - if (wellId.isBlank()) { - "井编号异常,无法查看详情".show() - return - } - activity.navigatePageTo(WellDetailActivity::class.java, wellId) - } - - override fun onOperationClicked(position: Int) { - AlertControlDialog.Builder() - .setContext(activity) - .setTitle("确认操作") - .setMessage("确定取消报警吗?") - .setNegativeButton("取消") - .setPositiveButton("确定") - .setOnDialogButtonClickListener(object : - AlertControlDialog.OnDialogButtonClickListener { - override fun onConfirmClick() { - val alarmId = activity.dataBeans[position].id - if (alarmId.toString().isBlank()) { - "操作失败,告警ID异常".show() - return - } - activity.alarmViewModel.obtainOperationResult(alarmId!!) - } - - override fun onCancelClick() { - - } - }).build().show() - } - }) + private val callback = Handler.Callback { + if (it.what == 2022041301) { + if (isRefresh || isLoadMore) { + alarmListAdapter.notifyDataSetChanged() + } else { //首次加载数据 + if (dataBeans.size == 0) { + emptyView!!.showEmptyPage { + obtainAlarmList(pageIndex) } + } else { + emptyView!!.hide() + alarmListAdapter = AlarmListAdapter(this, dataBeans) + alarmListView!!.layoutManager = LinearLayoutManager(this) + alarmListView!!.adapter = alarmListAdapter + alarmListAdapter.setOnItemClickListener(object : + AlarmListAdapter.OnItemClickListener { + override fun onClicked(position: Int) { + val wellId = dataBeans[position].wellId.toString() + if (wellId.isBlank()) { + "井编号异常,无法查看详情".show() + return + } + navigatePageTo(wellId) + } + + override fun onOperationClicked(position: Int) { + AlertControlDialog.Builder() + .setContext(this@AlarmManagementActivity) + .setTitle("确认操作") + .setMessage("确定取消报警吗?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + val alarmId = dataBeans[position].id + if (alarmId.toString().isBlank()) { + "操作失败,告警ID异常".show() + return + } + alarmViewModel.obtainOperationResult(alarmId!!) + } + + override fun onCancelClick() { + + } + }).build().show() + } + }) } } } + true } override fun onDestroy() { diff --git a/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt index 198daf5..f19f2f7 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt @@ -1,12 +1,9 @@ package com.casic.qd.smartwell.view -import android.annotation.SuppressLint import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import android.os.Handler -import android.os.Looper -import android.os.Message import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.LinearLayoutManager import com.casic.qd.smartwell.R @@ -16,17 +13,13 @@ import com.casic.qd.smartwell.extensions.show import com.casic.qd.smartwell.extensions.showEmptyPage import com.casic.qd.smartwell.model.AlarmListModel -import com.casic.qd.smartwell.utils.BroadcastReceiverManager -import com.casic.qd.smartwell.utils.Constant -import com.casic.qd.smartwell.utils.DialogHelper -import com.casic.qd.smartwell.utils.LoadState +import com.casic.qd.smartwell.utils.* import com.casic.qd.smartwell.vm.AlarmViewModel import com.casic.qd.smartwell.vm.SearchResultViewModel import com.pengxh.app.multilib.widget.dialog.AlertControlDialog import kotlinx.android.synthetic.main.activity_alarm_search_result.* import kotlinx.android.synthetic.main.include_base_title.* import kotlinx.android.synthetic.main.include_empty_view.* -import java.lang.ref.WeakReference class AlarmSearchResultActivity : BaseActivity() { @@ -49,7 +42,7 @@ override fun initData() { args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! - weakReferenceHandler = WeakReferenceHandler(this) + weakReferenceHandler = WeakReferenceHandler(callback) searchAlarmViewModel = ViewModelProvider(this).get(SearchResultViewModel::class.java) alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java) //注册广播接收者 @@ -141,66 +134,59 @@ ) } - private class WeakReferenceHandler(activity: AlarmSearchResultActivity) : - Handler(Looper.getMainLooper()) { - private val reference: WeakReference = WeakReference(activity) - - @SuppressLint("NotifyDataSetChanged") - override fun handleMessage(msg: Message) { - super.handleMessage(msg) - val activity = reference.get()!! - if (msg.what == 2022041501) { - if (activity.isRefresh || activity.isLoadMore) { - activity.alarmListAdapter.notifyDataSetChanged() - } else { //首次加载数据 - if (activity.dataBeans.size == 0) { - activity.emptyView!!.showEmptyPage { - activity.obtainSearchResult(activity.args, activity.pageIndex) - } - } else { - activity.emptyView!!.hide() - activity.alarmListAdapter = AlarmListAdapter(activity, activity.dataBeans) - activity.resultRecyclerView!!.layoutManager = LinearLayoutManager(activity) - activity.resultRecyclerView!!.adapter = activity.alarmListAdapter - activity.alarmListAdapter.setOnItemClickListener(object : - AlarmListAdapter.OnItemClickListener { - override fun onClicked(position: Int) { - val wellId = activity.dataBeans[position].wellId.toString() - if (wellId.isBlank()) { - "井编号异常,无法查看详情".show() - return - } - activity.navigatePageTo(WellDetailActivity::class.java, wellId) - } - - override fun onOperationClicked(position: Int) { - AlertControlDialog.Builder() - .setContext(activity) - .setTitle("确认操作") - .setMessage("确定取消报警吗?") - .setNegativeButton("取消") - .setPositiveButton("确定") - .setOnDialogButtonClickListener(object : - AlertControlDialog.OnDialogButtonClickListener { - override fun onConfirmClick() { - val alarmId = activity.dataBeans[position].id - if (alarmId.toString().isBlank()) { - "操作失败,告警ID异常".show() - return - } - activity.alarmViewModel.obtainOperationResult(alarmId!!) - } - - override fun onCancelClick() { - - } - }).build().show() - } - }) + private val callback = Handler.Callback { + if (it.what == 2022041501) { + if (isRefresh || isLoadMore) { + alarmListAdapter.notifyDataSetChanged() + } else { //首次加载数据 + if (dataBeans.size == 0) { + emptyView!!.showEmptyPage { + obtainSearchResult(args, pageIndex) } + } else { + emptyView!!.hide() + alarmListAdapter = AlarmListAdapter(this, dataBeans) + resultRecyclerView!!.layoutManager = LinearLayoutManager(this) + resultRecyclerView!!.adapter = alarmListAdapter + alarmListAdapter.setOnItemClickListener(object : + AlarmListAdapter.OnItemClickListener { + override fun onClicked(position: Int) { + val wellId = dataBeans[position].wellId.toString() + if (wellId.isBlank()) { + "井编号异常,无法查看详情".show() + return + } + navigatePageTo(wellId) + } + + override fun onOperationClicked(position: Int) { + AlertControlDialog.Builder() + .setContext(this@AlarmSearchResultActivity) + .setTitle("确认操作") + .setMessage("确定取消报警吗?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + val alarmId = dataBeans[position].id + if (alarmId.toString().isBlank()) { + "操作失败,告警ID异常".show() + return + } + alarmViewModel.obtainOperationResult(alarmId!!) + } + + override fun onCancelClick() { + + } + }).build().show() + } + }) } } } + true } override fun onDestroy() { diff --git a/app/src/main/java/com/casic/qd/smartwell/view/LoginActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/LoginActivity.kt index c86ee63..ccfeb79 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/LoginActivity.kt @@ -113,7 +113,7 @@ */ authenticateViewModel.obtainAuthorByDept() //验证成功登录 - this.navigatePageTo(MainActivity::class.java) + navigatePageTo() finish() } }) diff --git a/app/src/main/java/com/casic/qd/smartwell/view/MainActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/MainActivity.kt index e005c94..b989b16 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/MainActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/MainActivity.kt @@ -106,7 +106,7 @@ //Banner点击事件 setOnBannerListener { imageModel, _ -> - navigatePageTo(WebsiteActivity::class.java, imageModel.webPageLink!!) + navigatePageTo(imageModel.webPageLink!!) } } @@ -118,20 +118,20 @@ HomeRecycleAdapter.OnGridItemClickListener { override fun onClick(position: Int) { when (position) { - 0 -> context.navigatePageTo(MapActivity::class.java) + 0 -> context.navigatePageTo() 1 -> { BottomActionSheet.Builder() .setContext(context) .setActionItemTitles(arrayOf("设备", "数据")) .setOnActionSheetListener { index -> when (index) { - 0 -> context.navigatePageTo(SearchDeviceActivity::class.java) - 1 -> context.navigatePageTo(SearchDataActivity::class.java) + 0 -> context.navigatePageTo() + 1 -> context.navigatePageTo() } }.build().show() } - 2 -> context.navigatePageTo(StatisticsActivity::class.java) + 2 -> context.navigatePageTo() } } }) @@ -155,13 +155,13 @@ loginViewModel.loadState.observe(this, { if (it == LoadState.Success) { AuthenticationHelper.removeToken() - this.navigatePageTo(LoginActivity::class.java) + navigatePageTo() PageNavigationManager.finishAllActivity() } }) rightOptionView.setOnClickListener { - navigatePageTo(AlarmManagementActivity::class.java) + navigatePageTo() } waterViewModel.waterStatistics() @@ -208,7 +208,7 @@ }) expandChartView.setOnClickListener { - navigatePageTo(WaterExpandedActivity::class.java) + navigatePageTo() } changePwdViewModel.loadState.observe(this, { @@ -219,7 +219,7 @@ is LoadState.Success -> { DialogHelper.dismissLoadingDialog() AuthenticationHelper.removeToken() - this.navigatePageTo(LoginActivity::class.java) + navigatePageTo() PageNavigationManager.finishAllActivity() } else -> { diff --git a/app/src/main/java/com/casic/qd/smartwell/view/MapActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/MapActivity.kt index 557f61e..9f16224 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/MapActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/MapActivity.kt @@ -77,7 +77,7 @@ when (position) { 0 -> aMap.mapType = AMap.MAP_TYPE_NORMAL 1 -> aMap.mapType = AMap.MAP_TYPE_SATELLITE - 2 -> navigatePageTo(WebsiteActivity::class.java, Constant.VR_URL) + 2 -> navigatePageTo(Constant.VR_URL) } } }) @@ -277,7 +277,7 @@ override fun onPause() { super.onPause() - mapView.onResume() + mapView.onPause() } override fun onDestroy() { diff --git a/app/src/main/java/com/casic/qd/smartwell/view/PermissionActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/PermissionActivity.kt index 0d23233..58c6db9 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/PermissionActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/PermissionActivity.kt @@ -27,7 +27,7 @@ } private fun startSplashScreenActivity() { - this.navigatePageTo(SplashScreenActivity::class.java) + navigatePageTo() finish() } diff --git a/app/src/main/java/com/casic/qd/smartwell/view/SearchAlarmActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/SearchAlarmActivity.kt index d5f8687..2b92d86 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/SearchAlarmActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/SearchAlarmActivity.kt @@ -148,8 +148,8 @@ searchButton.setChangeAlphaWhenPress(true) searchButton.setOnClickListener { //页面跳转,将查询参数传过去 - navigatePageTo( - AlarmSearchResultActivity::class.java, addAll( + navigatePageTo( + addAll( wellCodeView.text.toString().trim(), alarmType, areaId, diff --git a/app/src/main/java/com/casic/qd/smartwell/extensions/Context.kt b/app/src/main/java/com/casic/qd/smartwell/extensions/Context.kt index ab62dc8..67b1d51 100644 --- a/app/src/main/java/com/casic/qd/smartwell/extensions/Context.kt +++ b/app/src/main/java/com/casic/qd/smartwell/extensions/Context.kt @@ -3,7 +3,6 @@ import android.content.Context import android.content.Intent import android.net.ConnectivityManager -import com.casic.qd.smartwell.base.BaseActivity import com.casic.qd.smartwell.utils.Constant /** @@ -23,28 +22,31 @@ return false } -fun Context.navigatePageTo(clazz: Class) { - startActivity(Intent(this, clazz)) +/** + * Context内联函数-扩展函数 + * */ +inline fun Context.getSystemService(): T? { + return this.getSystemService(T::class.java) } -fun Context.navigatePageTo(clazz: Class, value: String) { - val intent = Intent(this, clazz) +inline fun Context.navigatePageTo() { + startActivity(Intent(this, T::class.java)) +} + +inline fun Context.navigatePageTo(value: String) { + val intent = Intent(this, T::class.java) intent.putExtra(Constant.INTENT_PARAM, value) startActivity(intent) } -fun Context.navigatePageTo(clazz: Class, values: ArrayList) { - val intent = Intent(this, clazz) +inline fun Context.navigatePageTo(values: ArrayList) { + val intent = Intent(this, T::class.java) intent.putStringArrayListExtra(Constant.INTENT_PARAM, values) startActivity(intent) } -fun Context.navigatePageTo( - clazz: Class, - index: Int, - imageList: ArrayList -) { - val intent = Intent(this, clazz) +inline fun Context.navigatePageTo(index: Int, imageList: ArrayList) { + val intent = Intent(this, T::class.java) intent.putExtra("index", index) intent.putStringArrayListExtra("images", imageList) startActivity(intent) diff --git a/app/src/main/java/com/casic/qd/smartwell/utils/WeakReferenceHandler.kt b/app/src/main/java/com/casic/qd/smartwell/utils/WeakReferenceHandler.kt new file mode 100644 index 0000000..31468d7 --- /dev/null +++ b/app/src/main/java/com/casic/qd/smartwell/utils/WeakReferenceHandler.kt @@ -0,0 +1,16 @@ +package com.casic.qd.smartwell.utils + +import android.os.Handler +import android.os.Looper +import android.os.Message +import java.lang.ref.WeakReference + +class WeakReferenceHandler(callback: Callback) : Handler(Looper.getMainLooper()) { + + private var weakReference: WeakReference = WeakReference(callback) + + override fun handleMessage(msg: Message) { + super.handleMessage(msg) + weakReference.get()?.handleMessage(msg) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/qd/smartwell/view/AlarmManagementActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/AlarmManagementActivity.kt index 67f51d9..b492537 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/AlarmManagementActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/AlarmManagementActivity.kt @@ -1,12 +1,9 @@ package com.casic.qd.smartwell.view -import android.annotation.SuppressLint import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import android.os.Handler -import android.os.Looper -import android.os.Message import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.LinearLayoutManager import com.casic.qd.smartwell.R @@ -16,15 +13,11 @@ import com.casic.qd.smartwell.extensions.show import com.casic.qd.smartwell.extensions.showEmptyPage import com.casic.qd.smartwell.model.AlarmListModel -import com.casic.qd.smartwell.utils.BroadcastReceiverManager -import com.casic.qd.smartwell.utils.Constant -import com.casic.qd.smartwell.utils.DialogHelper -import com.casic.qd.smartwell.utils.LoadState +import com.casic.qd.smartwell.utils.* import com.casic.qd.smartwell.vm.AlarmViewModel import com.pengxh.app.multilib.widget.dialog.AlertControlDialog import kotlinx.android.synthetic.main.activity_alarm_management.* import kotlinx.android.synthetic.main.include_empty_view.* -import java.lang.ref.WeakReference class AlarmManagementActivity : BaseActivity() { @@ -43,13 +36,13 @@ leftBackView.setOnClickListener { finish() } titleView.text = "当前告警" rightOptionView.setOnClickListener { - this.navigatePageTo(SearchAlarmActivity::class.java) + navigatePageTo() } } override fun initData() { alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java) - weakReferenceHandler = WeakReferenceHandler(this) + weakReferenceHandler = WeakReferenceHandler(callback) //注册广播接收者 BroadcastReceiverManager.instance.addAction(Constant.CANCEL_ALARM_ACTION, object : BroadcastReceiver() { @@ -125,66 +118,59 @@ alarmViewModel.obtainAlarmList("", "", "", "", "", "", "1", pageIndex) } - private class WeakReferenceHandler(activity: AlarmManagementActivity) : - Handler(Looper.getMainLooper()) { - private val reference: WeakReference = WeakReference(activity) - - @SuppressLint("NotifyDataSetChanged") - override fun handleMessage(msg: Message) { - super.handleMessage(msg) - val activity = reference.get()!! - if (msg.what == 2022041301) { - if (activity.isRefresh || activity.isLoadMore) { - activity.alarmListAdapter.notifyDataSetChanged() - } else { //首次加载数据 - if (activity.dataBeans.size == 0) { - activity.emptyView!!.showEmptyPage { - activity.obtainAlarmList(activity.pageIndex) - } - } else { - activity.emptyView!!.hide() - activity.alarmListAdapter = AlarmListAdapter(activity, activity.dataBeans) - activity.alarmListView!!.layoutManager = LinearLayoutManager(activity) - activity.alarmListView!!.adapter = activity.alarmListAdapter - activity.alarmListAdapter.setOnItemClickListener(object : - AlarmListAdapter.OnItemClickListener { - override fun onClicked(position: Int) { - val wellId = activity.dataBeans[position].wellId.toString() - if (wellId.isBlank()) { - "井编号异常,无法查看详情".show() - return - } - activity.navigatePageTo(WellDetailActivity::class.java, wellId) - } - - override fun onOperationClicked(position: Int) { - AlertControlDialog.Builder() - .setContext(activity) - .setTitle("确认操作") - .setMessage("确定取消报警吗?") - .setNegativeButton("取消") - .setPositiveButton("确定") - .setOnDialogButtonClickListener(object : - AlertControlDialog.OnDialogButtonClickListener { - override fun onConfirmClick() { - val alarmId = activity.dataBeans[position].id - if (alarmId.toString().isBlank()) { - "操作失败,告警ID异常".show() - return - } - activity.alarmViewModel.obtainOperationResult(alarmId!!) - } - - override fun onCancelClick() { - - } - }).build().show() - } - }) + private val callback = Handler.Callback { + if (it.what == 2022041301) { + if (isRefresh || isLoadMore) { + alarmListAdapter.notifyDataSetChanged() + } else { //首次加载数据 + if (dataBeans.size == 0) { + emptyView!!.showEmptyPage { + obtainAlarmList(pageIndex) } + } else { + emptyView!!.hide() + alarmListAdapter = AlarmListAdapter(this, dataBeans) + alarmListView!!.layoutManager = LinearLayoutManager(this) + alarmListView!!.adapter = alarmListAdapter + alarmListAdapter.setOnItemClickListener(object : + AlarmListAdapter.OnItemClickListener { + override fun onClicked(position: Int) { + val wellId = dataBeans[position].wellId.toString() + if (wellId.isBlank()) { + "井编号异常,无法查看详情".show() + return + } + navigatePageTo(wellId) + } + + override fun onOperationClicked(position: Int) { + AlertControlDialog.Builder() + .setContext(this@AlarmManagementActivity) + .setTitle("确认操作") + .setMessage("确定取消报警吗?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + val alarmId = dataBeans[position].id + if (alarmId.toString().isBlank()) { + "操作失败,告警ID异常".show() + return + } + alarmViewModel.obtainOperationResult(alarmId!!) + } + + override fun onCancelClick() { + + } + }).build().show() + } + }) } } } + true } override fun onDestroy() { diff --git a/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt index 198daf5..f19f2f7 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt @@ -1,12 +1,9 @@ package com.casic.qd.smartwell.view -import android.annotation.SuppressLint import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import android.os.Handler -import android.os.Looper -import android.os.Message import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.LinearLayoutManager import com.casic.qd.smartwell.R @@ -16,17 +13,13 @@ import com.casic.qd.smartwell.extensions.show import com.casic.qd.smartwell.extensions.showEmptyPage import com.casic.qd.smartwell.model.AlarmListModel -import com.casic.qd.smartwell.utils.BroadcastReceiverManager -import com.casic.qd.smartwell.utils.Constant -import com.casic.qd.smartwell.utils.DialogHelper -import com.casic.qd.smartwell.utils.LoadState +import com.casic.qd.smartwell.utils.* import com.casic.qd.smartwell.vm.AlarmViewModel import com.casic.qd.smartwell.vm.SearchResultViewModel import com.pengxh.app.multilib.widget.dialog.AlertControlDialog import kotlinx.android.synthetic.main.activity_alarm_search_result.* import kotlinx.android.synthetic.main.include_base_title.* import kotlinx.android.synthetic.main.include_empty_view.* -import java.lang.ref.WeakReference class AlarmSearchResultActivity : BaseActivity() { @@ -49,7 +42,7 @@ override fun initData() { args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! - weakReferenceHandler = WeakReferenceHandler(this) + weakReferenceHandler = WeakReferenceHandler(callback) searchAlarmViewModel = ViewModelProvider(this).get(SearchResultViewModel::class.java) alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java) //注册广播接收者 @@ -141,66 +134,59 @@ ) } - private class WeakReferenceHandler(activity: AlarmSearchResultActivity) : - Handler(Looper.getMainLooper()) { - private val reference: WeakReference = WeakReference(activity) - - @SuppressLint("NotifyDataSetChanged") - override fun handleMessage(msg: Message) { - super.handleMessage(msg) - val activity = reference.get()!! - if (msg.what == 2022041501) { - if (activity.isRefresh || activity.isLoadMore) { - activity.alarmListAdapter.notifyDataSetChanged() - } else { //首次加载数据 - if (activity.dataBeans.size == 0) { - activity.emptyView!!.showEmptyPage { - activity.obtainSearchResult(activity.args, activity.pageIndex) - } - } else { - activity.emptyView!!.hide() - activity.alarmListAdapter = AlarmListAdapter(activity, activity.dataBeans) - activity.resultRecyclerView!!.layoutManager = LinearLayoutManager(activity) - activity.resultRecyclerView!!.adapter = activity.alarmListAdapter - activity.alarmListAdapter.setOnItemClickListener(object : - AlarmListAdapter.OnItemClickListener { - override fun onClicked(position: Int) { - val wellId = activity.dataBeans[position].wellId.toString() - if (wellId.isBlank()) { - "井编号异常,无法查看详情".show() - return - } - activity.navigatePageTo(WellDetailActivity::class.java, wellId) - } - - override fun onOperationClicked(position: Int) { - AlertControlDialog.Builder() - .setContext(activity) - .setTitle("确认操作") - .setMessage("确定取消报警吗?") - .setNegativeButton("取消") - .setPositiveButton("确定") - .setOnDialogButtonClickListener(object : - AlertControlDialog.OnDialogButtonClickListener { - override fun onConfirmClick() { - val alarmId = activity.dataBeans[position].id - if (alarmId.toString().isBlank()) { - "操作失败,告警ID异常".show() - return - } - activity.alarmViewModel.obtainOperationResult(alarmId!!) - } - - override fun onCancelClick() { - - } - }).build().show() - } - }) + private val callback = Handler.Callback { + if (it.what == 2022041501) { + if (isRefresh || isLoadMore) { + alarmListAdapter.notifyDataSetChanged() + } else { //首次加载数据 + if (dataBeans.size == 0) { + emptyView!!.showEmptyPage { + obtainSearchResult(args, pageIndex) } + } else { + emptyView!!.hide() + alarmListAdapter = AlarmListAdapter(this, dataBeans) + resultRecyclerView!!.layoutManager = LinearLayoutManager(this) + resultRecyclerView!!.adapter = alarmListAdapter + alarmListAdapter.setOnItemClickListener(object : + AlarmListAdapter.OnItemClickListener { + override fun onClicked(position: Int) { + val wellId = dataBeans[position].wellId.toString() + if (wellId.isBlank()) { + "井编号异常,无法查看详情".show() + return + } + navigatePageTo(wellId) + } + + override fun onOperationClicked(position: Int) { + AlertControlDialog.Builder() + .setContext(this@AlarmSearchResultActivity) + .setTitle("确认操作") + .setMessage("确定取消报警吗?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + val alarmId = dataBeans[position].id + if (alarmId.toString().isBlank()) { + "操作失败,告警ID异常".show() + return + } + alarmViewModel.obtainOperationResult(alarmId!!) + } + + override fun onCancelClick() { + + } + }).build().show() + } + }) } } } + true } override fun onDestroy() { diff --git a/app/src/main/java/com/casic/qd/smartwell/view/LoginActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/LoginActivity.kt index c86ee63..ccfeb79 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/LoginActivity.kt @@ -113,7 +113,7 @@ */ authenticateViewModel.obtainAuthorByDept() //验证成功登录 - this.navigatePageTo(MainActivity::class.java) + navigatePageTo() finish() } }) diff --git a/app/src/main/java/com/casic/qd/smartwell/view/MainActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/MainActivity.kt index e005c94..b989b16 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/MainActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/MainActivity.kt @@ -106,7 +106,7 @@ //Banner点击事件 setOnBannerListener { imageModel, _ -> - navigatePageTo(WebsiteActivity::class.java, imageModel.webPageLink!!) + navigatePageTo(imageModel.webPageLink!!) } } @@ -118,20 +118,20 @@ HomeRecycleAdapter.OnGridItemClickListener { override fun onClick(position: Int) { when (position) { - 0 -> context.navigatePageTo(MapActivity::class.java) + 0 -> context.navigatePageTo() 1 -> { BottomActionSheet.Builder() .setContext(context) .setActionItemTitles(arrayOf("设备", "数据")) .setOnActionSheetListener { index -> when (index) { - 0 -> context.navigatePageTo(SearchDeviceActivity::class.java) - 1 -> context.navigatePageTo(SearchDataActivity::class.java) + 0 -> context.navigatePageTo() + 1 -> context.navigatePageTo() } }.build().show() } - 2 -> context.navigatePageTo(StatisticsActivity::class.java) + 2 -> context.navigatePageTo() } } }) @@ -155,13 +155,13 @@ loginViewModel.loadState.observe(this, { if (it == LoadState.Success) { AuthenticationHelper.removeToken() - this.navigatePageTo(LoginActivity::class.java) + navigatePageTo() PageNavigationManager.finishAllActivity() } }) rightOptionView.setOnClickListener { - navigatePageTo(AlarmManagementActivity::class.java) + navigatePageTo() } waterViewModel.waterStatistics() @@ -208,7 +208,7 @@ }) expandChartView.setOnClickListener { - navigatePageTo(WaterExpandedActivity::class.java) + navigatePageTo() } changePwdViewModel.loadState.observe(this, { @@ -219,7 +219,7 @@ is LoadState.Success -> { DialogHelper.dismissLoadingDialog() AuthenticationHelper.removeToken() - this.navigatePageTo(LoginActivity::class.java) + navigatePageTo() PageNavigationManager.finishAllActivity() } else -> { diff --git a/app/src/main/java/com/casic/qd/smartwell/view/MapActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/MapActivity.kt index 557f61e..9f16224 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/MapActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/MapActivity.kt @@ -77,7 +77,7 @@ when (position) { 0 -> aMap.mapType = AMap.MAP_TYPE_NORMAL 1 -> aMap.mapType = AMap.MAP_TYPE_SATELLITE - 2 -> navigatePageTo(WebsiteActivity::class.java, Constant.VR_URL) + 2 -> navigatePageTo(Constant.VR_URL) } } }) @@ -277,7 +277,7 @@ override fun onPause() { super.onPause() - mapView.onResume() + mapView.onPause() } override fun onDestroy() { diff --git a/app/src/main/java/com/casic/qd/smartwell/view/PermissionActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/PermissionActivity.kt index 0d23233..58c6db9 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/PermissionActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/PermissionActivity.kt @@ -27,7 +27,7 @@ } private fun startSplashScreenActivity() { - this.navigatePageTo(SplashScreenActivity::class.java) + navigatePageTo() finish() } diff --git a/app/src/main/java/com/casic/qd/smartwell/view/SearchAlarmActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/SearchAlarmActivity.kt index d5f8687..2b92d86 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/SearchAlarmActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/SearchAlarmActivity.kt @@ -148,8 +148,8 @@ searchButton.setChangeAlphaWhenPress(true) searchButton.setOnClickListener { //页面跳转,将查询参数传过去 - navigatePageTo( - AlarmSearchResultActivity::class.java, addAll( + navigatePageTo( + addAll( wellCodeView.text.toString().trim(), alarmType, areaId, diff --git a/app/src/main/java/com/casic/qd/smartwell/view/SearchDataActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/SearchDataActivity.kt index c8fa96e..d1b52b7 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/SearchDataActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/SearchDataActivity.kt @@ -1,9 +1,6 @@ package com.casic.qd.smartwell.view -import android.annotation.SuppressLint import android.os.Handler -import android.os.Looper -import android.os.Message import android.view.View import android.widget.EditText import android.widget.TextView @@ -21,6 +18,7 @@ import com.casic.qd.smartwell.model.DeviceDataModel import com.casic.qd.smartwell.utils.DialogHelper import com.casic.qd.smartwell.utils.LoadState +import com.casic.qd.smartwell.utils.WeakReferenceHandler import com.casic.qd.smartwell.vm.AreaViewModel import com.casic.qd.smartwell.vm.DeviceViewModel import com.casic.qd.smartwell.widgets.BottomAreaSheet @@ -28,7 +26,6 @@ import kotlinx.android.synthetic.main.activity_data_search.* import kotlinx.android.synthetic.main.include_base_title.titleView import kotlinx.android.synthetic.main.include_empty_view.* -import java.lang.ref.WeakReference /** * @author a203 @@ -66,7 +63,7 @@ } override fun initData() { - weakReferenceHandler = WeakReferenceHandler(this) + weakReferenceHandler = WeakReferenceHandler(callback) deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) areaViewModel = ViewModelProvider(this).get(AreaViewModel::class.java) } @@ -197,44 +194,34 @@ } - private class WeakReferenceHandler(activity: SearchDataActivity) : - Handler(Looper.getMainLooper()) { - private val reference: WeakReference = WeakReference(activity) - - @SuppressLint("NotifyDataSetChanged") - override fun handleMessage(msg: Message) { - super.handleMessage(msg) - val activity = reference.get()!! - if (msg.what == 2022042101) { - if (activity.isRefresh || activity.isLoadMore) { - activity.dataListAdapter.notifyDataSetChanged() - } else { - if (activity.dataBeans.size == 0) { - activity.emptyView!!.showEmptyPage { - activity.obtainSearchResult(activity.pageIndex) - } - } else { - activity.emptyView!!.hide() - activity.dataListAdapter = - DeviceDataListAdapter(activity, activity.dataBeans) - activity.resultRecyclerView!!.layoutManager = LinearLayoutManager(activity) - activity.resultRecyclerView!!.adapter = activity.dataListAdapter - activity.dataListAdapter.setOnItemClickListener(object : - DeviceDataListAdapter.OnItemClickListener { - override fun onClicked(position: Int) { - val deviceCode = activity.dataBeans[position].devcode.toString() - if (deviceCode.isBlank()) { - "设备编号异常,无法查看历史数据".show() - return - } - activity.navigatePageTo( - DeviceDataDetailActivity::class.java, deviceCode - ) - } - }) + private val callback = Handler.Callback { + if (it.what == 2022042101) { + if (isRefresh || isLoadMore) { + dataListAdapter.notifyDataSetChanged() + } else { + if (dataBeans.size == 0) { + emptyView!!.showEmptyPage { + obtainSearchResult(pageIndex) } + } else { + emptyView!!.hide() + dataListAdapter = DeviceDataListAdapter(this, dataBeans) + resultRecyclerView!!.layoutManager = LinearLayoutManager(this) + resultRecyclerView!!.adapter = dataListAdapter + dataListAdapter.setOnItemClickListener(object : + DeviceDataListAdapter.OnItemClickListener { + override fun onClicked(position: Int) { + val deviceCode = dataBeans[position].devcode.toString() + if (deviceCode.isBlank()) { + "设备编号异常,无法查看历史数据".show() + return + } + navigatePageTo(deviceCode) + } + }) } } } + true } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/qd/smartwell/extensions/Context.kt b/app/src/main/java/com/casic/qd/smartwell/extensions/Context.kt index ab62dc8..67b1d51 100644 --- a/app/src/main/java/com/casic/qd/smartwell/extensions/Context.kt +++ b/app/src/main/java/com/casic/qd/smartwell/extensions/Context.kt @@ -3,7 +3,6 @@ import android.content.Context import android.content.Intent import android.net.ConnectivityManager -import com.casic.qd.smartwell.base.BaseActivity import com.casic.qd.smartwell.utils.Constant /** @@ -23,28 +22,31 @@ return false } -fun Context.navigatePageTo(clazz: Class) { - startActivity(Intent(this, clazz)) +/** + * Context内联函数-扩展函数 + * */ +inline fun Context.getSystemService(): T? { + return this.getSystemService(T::class.java) } -fun Context.navigatePageTo(clazz: Class, value: String) { - val intent = Intent(this, clazz) +inline fun Context.navigatePageTo() { + startActivity(Intent(this, T::class.java)) +} + +inline fun Context.navigatePageTo(value: String) { + val intent = Intent(this, T::class.java) intent.putExtra(Constant.INTENT_PARAM, value) startActivity(intent) } -fun Context.navigatePageTo(clazz: Class, values: ArrayList) { - val intent = Intent(this, clazz) +inline fun Context.navigatePageTo(values: ArrayList) { + val intent = Intent(this, T::class.java) intent.putStringArrayListExtra(Constant.INTENT_PARAM, values) startActivity(intent) } -fun Context.navigatePageTo( - clazz: Class, - index: Int, - imageList: ArrayList -) { - val intent = Intent(this, clazz) +inline fun Context.navigatePageTo(index: Int, imageList: ArrayList) { + val intent = Intent(this, T::class.java) intent.putExtra("index", index) intent.putStringArrayListExtra("images", imageList) startActivity(intent) diff --git a/app/src/main/java/com/casic/qd/smartwell/utils/WeakReferenceHandler.kt b/app/src/main/java/com/casic/qd/smartwell/utils/WeakReferenceHandler.kt new file mode 100644 index 0000000..31468d7 --- /dev/null +++ b/app/src/main/java/com/casic/qd/smartwell/utils/WeakReferenceHandler.kt @@ -0,0 +1,16 @@ +package com.casic.qd.smartwell.utils + +import android.os.Handler +import android.os.Looper +import android.os.Message +import java.lang.ref.WeakReference + +class WeakReferenceHandler(callback: Callback) : Handler(Looper.getMainLooper()) { + + private var weakReference: WeakReference = WeakReference(callback) + + override fun handleMessage(msg: Message) { + super.handleMessage(msg) + weakReference.get()?.handleMessage(msg) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/qd/smartwell/view/AlarmManagementActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/AlarmManagementActivity.kt index 67f51d9..b492537 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/AlarmManagementActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/AlarmManagementActivity.kt @@ -1,12 +1,9 @@ package com.casic.qd.smartwell.view -import android.annotation.SuppressLint import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import android.os.Handler -import android.os.Looper -import android.os.Message import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.LinearLayoutManager import com.casic.qd.smartwell.R @@ -16,15 +13,11 @@ import com.casic.qd.smartwell.extensions.show import com.casic.qd.smartwell.extensions.showEmptyPage import com.casic.qd.smartwell.model.AlarmListModel -import com.casic.qd.smartwell.utils.BroadcastReceiverManager -import com.casic.qd.smartwell.utils.Constant -import com.casic.qd.smartwell.utils.DialogHelper -import com.casic.qd.smartwell.utils.LoadState +import com.casic.qd.smartwell.utils.* import com.casic.qd.smartwell.vm.AlarmViewModel import com.pengxh.app.multilib.widget.dialog.AlertControlDialog import kotlinx.android.synthetic.main.activity_alarm_management.* import kotlinx.android.synthetic.main.include_empty_view.* -import java.lang.ref.WeakReference class AlarmManagementActivity : BaseActivity() { @@ -43,13 +36,13 @@ leftBackView.setOnClickListener { finish() } titleView.text = "当前告警" rightOptionView.setOnClickListener { - this.navigatePageTo(SearchAlarmActivity::class.java) + navigatePageTo() } } override fun initData() { alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java) - weakReferenceHandler = WeakReferenceHandler(this) + weakReferenceHandler = WeakReferenceHandler(callback) //注册广播接收者 BroadcastReceiverManager.instance.addAction(Constant.CANCEL_ALARM_ACTION, object : BroadcastReceiver() { @@ -125,66 +118,59 @@ alarmViewModel.obtainAlarmList("", "", "", "", "", "", "1", pageIndex) } - private class WeakReferenceHandler(activity: AlarmManagementActivity) : - Handler(Looper.getMainLooper()) { - private val reference: WeakReference = WeakReference(activity) - - @SuppressLint("NotifyDataSetChanged") - override fun handleMessage(msg: Message) { - super.handleMessage(msg) - val activity = reference.get()!! - if (msg.what == 2022041301) { - if (activity.isRefresh || activity.isLoadMore) { - activity.alarmListAdapter.notifyDataSetChanged() - } else { //首次加载数据 - if (activity.dataBeans.size == 0) { - activity.emptyView!!.showEmptyPage { - activity.obtainAlarmList(activity.pageIndex) - } - } else { - activity.emptyView!!.hide() - activity.alarmListAdapter = AlarmListAdapter(activity, activity.dataBeans) - activity.alarmListView!!.layoutManager = LinearLayoutManager(activity) - activity.alarmListView!!.adapter = activity.alarmListAdapter - activity.alarmListAdapter.setOnItemClickListener(object : - AlarmListAdapter.OnItemClickListener { - override fun onClicked(position: Int) { - val wellId = activity.dataBeans[position].wellId.toString() - if (wellId.isBlank()) { - "井编号异常,无法查看详情".show() - return - } - activity.navigatePageTo(WellDetailActivity::class.java, wellId) - } - - override fun onOperationClicked(position: Int) { - AlertControlDialog.Builder() - .setContext(activity) - .setTitle("确认操作") - .setMessage("确定取消报警吗?") - .setNegativeButton("取消") - .setPositiveButton("确定") - .setOnDialogButtonClickListener(object : - AlertControlDialog.OnDialogButtonClickListener { - override fun onConfirmClick() { - val alarmId = activity.dataBeans[position].id - if (alarmId.toString().isBlank()) { - "操作失败,告警ID异常".show() - return - } - activity.alarmViewModel.obtainOperationResult(alarmId!!) - } - - override fun onCancelClick() { - - } - }).build().show() - } - }) + private val callback = Handler.Callback { + if (it.what == 2022041301) { + if (isRefresh || isLoadMore) { + alarmListAdapter.notifyDataSetChanged() + } else { //首次加载数据 + if (dataBeans.size == 0) { + emptyView!!.showEmptyPage { + obtainAlarmList(pageIndex) } + } else { + emptyView!!.hide() + alarmListAdapter = AlarmListAdapter(this, dataBeans) + alarmListView!!.layoutManager = LinearLayoutManager(this) + alarmListView!!.adapter = alarmListAdapter + alarmListAdapter.setOnItemClickListener(object : + AlarmListAdapter.OnItemClickListener { + override fun onClicked(position: Int) { + val wellId = dataBeans[position].wellId.toString() + if (wellId.isBlank()) { + "井编号异常,无法查看详情".show() + return + } + navigatePageTo(wellId) + } + + override fun onOperationClicked(position: Int) { + AlertControlDialog.Builder() + .setContext(this@AlarmManagementActivity) + .setTitle("确认操作") + .setMessage("确定取消报警吗?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + val alarmId = dataBeans[position].id + if (alarmId.toString().isBlank()) { + "操作失败,告警ID异常".show() + return + } + alarmViewModel.obtainOperationResult(alarmId!!) + } + + override fun onCancelClick() { + + } + }).build().show() + } + }) } } } + true } override fun onDestroy() { diff --git a/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt index 198daf5..f19f2f7 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt @@ -1,12 +1,9 @@ package com.casic.qd.smartwell.view -import android.annotation.SuppressLint import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import android.os.Handler -import android.os.Looper -import android.os.Message import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.LinearLayoutManager import com.casic.qd.smartwell.R @@ -16,17 +13,13 @@ import com.casic.qd.smartwell.extensions.show import com.casic.qd.smartwell.extensions.showEmptyPage import com.casic.qd.smartwell.model.AlarmListModel -import com.casic.qd.smartwell.utils.BroadcastReceiverManager -import com.casic.qd.smartwell.utils.Constant -import com.casic.qd.smartwell.utils.DialogHelper -import com.casic.qd.smartwell.utils.LoadState +import com.casic.qd.smartwell.utils.* import com.casic.qd.smartwell.vm.AlarmViewModel import com.casic.qd.smartwell.vm.SearchResultViewModel import com.pengxh.app.multilib.widget.dialog.AlertControlDialog import kotlinx.android.synthetic.main.activity_alarm_search_result.* import kotlinx.android.synthetic.main.include_base_title.* import kotlinx.android.synthetic.main.include_empty_view.* -import java.lang.ref.WeakReference class AlarmSearchResultActivity : BaseActivity() { @@ -49,7 +42,7 @@ override fun initData() { args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! - weakReferenceHandler = WeakReferenceHandler(this) + weakReferenceHandler = WeakReferenceHandler(callback) searchAlarmViewModel = ViewModelProvider(this).get(SearchResultViewModel::class.java) alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java) //注册广播接收者 @@ -141,66 +134,59 @@ ) } - private class WeakReferenceHandler(activity: AlarmSearchResultActivity) : - Handler(Looper.getMainLooper()) { - private val reference: WeakReference = WeakReference(activity) - - @SuppressLint("NotifyDataSetChanged") - override fun handleMessage(msg: Message) { - super.handleMessage(msg) - val activity = reference.get()!! - if (msg.what == 2022041501) { - if (activity.isRefresh || activity.isLoadMore) { - activity.alarmListAdapter.notifyDataSetChanged() - } else { //首次加载数据 - if (activity.dataBeans.size == 0) { - activity.emptyView!!.showEmptyPage { - activity.obtainSearchResult(activity.args, activity.pageIndex) - } - } else { - activity.emptyView!!.hide() - activity.alarmListAdapter = AlarmListAdapter(activity, activity.dataBeans) - activity.resultRecyclerView!!.layoutManager = LinearLayoutManager(activity) - activity.resultRecyclerView!!.adapter = activity.alarmListAdapter - activity.alarmListAdapter.setOnItemClickListener(object : - AlarmListAdapter.OnItemClickListener { - override fun onClicked(position: Int) { - val wellId = activity.dataBeans[position].wellId.toString() - if (wellId.isBlank()) { - "井编号异常,无法查看详情".show() - return - } - activity.navigatePageTo(WellDetailActivity::class.java, wellId) - } - - override fun onOperationClicked(position: Int) { - AlertControlDialog.Builder() - .setContext(activity) - .setTitle("确认操作") - .setMessage("确定取消报警吗?") - .setNegativeButton("取消") - .setPositiveButton("确定") - .setOnDialogButtonClickListener(object : - AlertControlDialog.OnDialogButtonClickListener { - override fun onConfirmClick() { - val alarmId = activity.dataBeans[position].id - if (alarmId.toString().isBlank()) { - "操作失败,告警ID异常".show() - return - } - activity.alarmViewModel.obtainOperationResult(alarmId!!) - } - - override fun onCancelClick() { - - } - }).build().show() - } - }) + private val callback = Handler.Callback { + if (it.what == 2022041501) { + if (isRefresh || isLoadMore) { + alarmListAdapter.notifyDataSetChanged() + } else { //首次加载数据 + if (dataBeans.size == 0) { + emptyView!!.showEmptyPage { + obtainSearchResult(args, pageIndex) } + } else { + emptyView!!.hide() + alarmListAdapter = AlarmListAdapter(this, dataBeans) + resultRecyclerView!!.layoutManager = LinearLayoutManager(this) + resultRecyclerView!!.adapter = alarmListAdapter + alarmListAdapter.setOnItemClickListener(object : + AlarmListAdapter.OnItemClickListener { + override fun onClicked(position: Int) { + val wellId = dataBeans[position].wellId.toString() + if (wellId.isBlank()) { + "井编号异常,无法查看详情".show() + return + } + navigatePageTo(wellId) + } + + override fun onOperationClicked(position: Int) { + AlertControlDialog.Builder() + .setContext(this@AlarmSearchResultActivity) + .setTitle("确认操作") + .setMessage("确定取消报警吗?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + val alarmId = dataBeans[position].id + if (alarmId.toString().isBlank()) { + "操作失败,告警ID异常".show() + return + } + alarmViewModel.obtainOperationResult(alarmId!!) + } + + override fun onCancelClick() { + + } + }).build().show() + } + }) } } } + true } override fun onDestroy() { diff --git a/app/src/main/java/com/casic/qd/smartwell/view/LoginActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/LoginActivity.kt index c86ee63..ccfeb79 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/LoginActivity.kt @@ -113,7 +113,7 @@ */ authenticateViewModel.obtainAuthorByDept() //验证成功登录 - this.navigatePageTo(MainActivity::class.java) + navigatePageTo() finish() } }) diff --git a/app/src/main/java/com/casic/qd/smartwell/view/MainActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/MainActivity.kt index e005c94..b989b16 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/MainActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/MainActivity.kt @@ -106,7 +106,7 @@ //Banner点击事件 setOnBannerListener { imageModel, _ -> - navigatePageTo(WebsiteActivity::class.java, imageModel.webPageLink!!) + navigatePageTo(imageModel.webPageLink!!) } } @@ -118,20 +118,20 @@ HomeRecycleAdapter.OnGridItemClickListener { override fun onClick(position: Int) { when (position) { - 0 -> context.navigatePageTo(MapActivity::class.java) + 0 -> context.navigatePageTo() 1 -> { BottomActionSheet.Builder() .setContext(context) .setActionItemTitles(arrayOf("设备", "数据")) .setOnActionSheetListener { index -> when (index) { - 0 -> context.navigatePageTo(SearchDeviceActivity::class.java) - 1 -> context.navigatePageTo(SearchDataActivity::class.java) + 0 -> context.navigatePageTo() + 1 -> context.navigatePageTo() } }.build().show() } - 2 -> context.navigatePageTo(StatisticsActivity::class.java) + 2 -> context.navigatePageTo() } } }) @@ -155,13 +155,13 @@ loginViewModel.loadState.observe(this, { if (it == LoadState.Success) { AuthenticationHelper.removeToken() - this.navigatePageTo(LoginActivity::class.java) + navigatePageTo() PageNavigationManager.finishAllActivity() } }) rightOptionView.setOnClickListener { - navigatePageTo(AlarmManagementActivity::class.java) + navigatePageTo() } waterViewModel.waterStatistics() @@ -208,7 +208,7 @@ }) expandChartView.setOnClickListener { - navigatePageTo(WaterExpandedActivity::class.java) + navigatePageTo() } changePwdViewModel.loadState.observe(this, { @@ -219,7 +219,7 @@ is LoadState.Success -> { DialogHelper.dismissLoadingDialog() AuthenticationHelper.removeToken() - this.navigatePageTo(LoginActivity::class.java) + navigatePageTo() PageNavigationManager.finishAllActivity() } else -> { diff --git a/app/src/main/java/com/casic/qd/smartwell/view/MapActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/MapActivity.kt index 557f61e..9f16224 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/MapActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/MapActivity.kt @@ -77,7 +77,7 @@ when (position) { 0 -> aMap.mapType = AMap.MAP_TYPE_NORMAL 1 -> aMap.mapType = AMap.MAP_TYPE_SATELLITE - 2 -> navigatePageTo(WebsiteActivity::class.java, Constant.VR_URL) + 2 -> navigatePageTo(Constant.VR_URL) } } }) @@ -277,7 +277,7 @@ override fun onPause() { super.onPause() - mapView.onResume() + mapView.onPause() } override fun onDestroy() { diff --git a/app/src/main/java/com/casic/qd/smartwell/view/PermissionActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/PermissionActivity.kt index 0d23233..58c6db9 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/PermissionActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/PermissionActivity.kt @@ -27,7 +27,7 @@ } private fun startSplashScreenActivity() { - this.navigatePageTo(SplashScreenActivity::class.java) + navigatePageTo() finish() } diff --git a/app/src/main/java/com/casic/qd/smartwell/view/SearchAlarmActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/SearchAlarmActivity.kt index d5f8687..2b92d86 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/SearchAlarmActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/SearchAlarmActivity.kt @@ -148,8 +148,8 @@ searchButton.setChangeAlphaWhenPress(true) searchButton.setOnClickListener { //页面跳转,将查询参数传过去 - navigatePageTo( - AlarmSearchResultActivity::class.java, addAll( + navigatePageTo( + addAll( wellCodeView.text.toString().trim(), alarmType, areaId, diff --git a/app/src/main/java/com/casic/qd/smartwell/view/SearchDataActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/SearchDataActivity.kt index c8fa96e..d1b52b7 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/SearchDataActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/SearchDataActivity.kt @@ -1,9 +1,6 @@ package com.casic.qd.smartwell.view -import android.annotation.SuppressLint import android.os.Handler -import android.os.Looper -import android.os.Message import android.view.View import android.widget.EditText import android.widget.TextView @@ -21,6 +18,7 @@ import com.casic.qd.smartwell.model.DeviceDataModel import com.casic.qd.smartwell.utils.DialogHelper import com.casic.qd.smartwell.utils.LoadState +import com.casic.qd.smartwell.utils.WeakReferenceHandler import com.casic.qd.smartwell.vm.AreaViewModel import com.casic.qd.smartwell.vm.DeviceViewModel import com.casic.qd.smartwell.widgets.BottomAreaSheet @@ -28,7 +26,6 @@ import kotlinx.android.synthetic.main.activity_data_search.* import kotlinx.android.synthetic.main.include_base_title.titleView import kotlinx.android.synthetic.main.include_empty_view.* -import java.lang.ref.WeakReference /** * @author a203 @@ -66,7 +63,7 @@ } override fun initData() { - weakReferenceHandler = WeakReferenceHandler(this) + weakReferenceHandler = WeakReferenceHandler(callback) deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) areaViewModel = ViewModelProvider(this).get(AreaViewModel::class.java) } @@ -197,44 +194,34 @@ } - private class WeakReferenceHandler(activity: SearchDataActivity) : - Handler(Looper.getMainLooper()) { - private val reference: WeakReference = WeakReference(activity) - - @SuppressLint("NotifyDataSetChanged") - override fun handleMessage(msg: Message) { - super.handleMessage(msg) - val activity = reference.get()!! - if (msg.what == 2022042101) { - if (activity.isRefresh || activity.isLoadMore) { - activity.dataListAdapter.notifyDataSetChanged() - } else { - if (activity.dataBeans.size == 0) { - activity.emptyView!!.showEmptyPage { - activity.obtainSearchResult(activity.pageIndex) - } - } else { - activity.emptyView!!.hide() - activity.dataListAdapter = - DeviceDataListAdapter(activity, activity.dataBeans) - activity.resultRecyclerView!!.layoutManager = LinearLayoutManager(activity) - activity.resultRecyclerView!!.adapter = activity.dataListAdapter - activity.dataListAdapter.setOnItemClickListener(object : - DeviceDataListAdapter.OnItemClickListener { - override fun onClicked(position: Int) { - val deviceCode = activity.dataBeans[position].devcode.toString() - if (deviceCode.isBlank()) { - "设备编号异常,无法查看历史数据".show() - return - } - activity.navigatePageTo( - DeviceDataDetailActivity::class.java, deviceCode - ) - } - }) + private val callback = Handler.Callback { + if (it.what == 2022042101) { + if (isRefresh || isLoadMore) { + dataListAdapter.notifyDataSetChanged() + } else { + if (dataBeans.size == 0) { + emptyView!!.showEmptyPage { + obtainSearchResult(pageIndex) } + } else { + emptyView!!.hide() + dataListAdapter = DeviceDataListAdapter(this, dataBeans) + resultRecyclerView!!.layoutManager = LinearLayoutManager(this) + resultRecyclerView!!.adapter = dataListAdapter + dataListAdapter.setOnItemClickListener(object : + DeviceDataListAdapter.OnItemClickListener { + override fun onClicked(position: Int) { + val deviceCode = dataBeans[position].devcode.toString() + if (deviceCode.isBlank()) { + "设备编号异常,无法查看历史数据".show() + return + } + navigatePageTo(deviceCode) + } + }) } } } + true } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/qd/smartwell/view/SearchDeviceActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/SearchDeviceActivity.kt index 35dd8ef..96feba9 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/SearchDeviceActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/SearchDeviceActivity.kt @@ -1,9 +1,6 @@ package com.casic.qd.smartwell.view -import android.annotation.SuppressLint import android.os.Handler -import android.os.Looper -import android.os.Message import android.view.View import android.widget.EditText import android.widget.TextView @@ -21,10 +18,7 @@ import com.casic.qd.smartwell.model.DeviceListModel import com.casic.qd.smartwell.model.DeviceTypeModel import com.casic.qd.smartwell.model.OwnerShipModel -import com.casic.qd.smartwell.utils.Constant -import com.casic.qd.smartwell.utils.DialogHelper -import com.casic.qd.smartwell.utils.LoadState -import com.casic.qd.smartwell.utils.SaveKeyValues +import com.casic.qd.smartwell.utils.* import com.casic.qd.smartwell.vm.AreaViewModel import com.casic.qd.smartwell.vm.AuthenticateViewModel import com.casic.qd.smartwell.vm.DeviceViewModel @@ -36,7 +30,6 @@ import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton import kotlinx.android.synthetic.main.activity_device_search.* import kotlinx.android.synthetic.main.include_empty_view.* -import java.lang.ref.WeakReference /** * @author a203 @@ -89,7 +82,7 @@ userDeviceJson, object : TypeToken>() {}.type ) } - weakReferenceHandler = WeakReferenceHandler(this) + weakReferenceHandler = WeakReferenceHandler(callback) searchDeviceViewModel = ViewModelProvider(this).get(SearchResultViewModel::class.java) deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) authenticateViewModel = ViewModelProvider(this).get(AuthenticateViewModel::class.java) @@ -308,43 +301,34 @@ ) } - private class WeakReferenceHandler(activity: SearchDeviceActivity) : - Handler(Looper.getMainLooper()) { - private val reference: WeakReference = WeakReference(activity) - - @SuppressLint("NotifyDataSetChanged") - override fun handleMessage(msg: Message) { - super.handleMessage(msg) - val activity = reference.get()!! - if (msg.what == 2022042001) { - if (activity.isRefresh || activity.isLoadMore) { - activity.deviceListAdapter.notifyDataSetChanged() - } else { //首次加载数据 - if (activity.dataBeans.size == 0) { - activity.emptyView!!.showEmptyPage { - activity.obtainSearchResult(activity.pageIndex) - } - } else { - activity.emptyView!!.hide() - activity.deviceListAdapter = DeviceListAdapter(activity, activity.dataBeans) - activity.resultRecyclerView!!.layoutManager = LinearLayoutManager(activity) - activity.resultRecyclerView!!.adapter = activity.deviceListAdapter - activity.deviceListAdapter.setOnItemClickListener(object : - DeviceListAdapter.OnItemClickListener { - override fun onClicked(position: Int) { - val deviceCode = activity.dataBeans[position].devcode.toString() - if (deviceCode.isBlank()) { - "设备编号异常,无法查看历史数据".show() - return - } - activity.navigatePageTo( - DeviceDataDetailActivity::class.java, deviceCode - ) - } - }) + private val callback = Handler.Callback { + if (it.what == 2022042001) { + if (isRefresh || isLoadMore) { + deviceListAdapter.notifyDataSetChanged() + } else { //首次加载数据 + if (dataBeans.size == 0) { + emptyView!!.showEmptyPage { + obtainSearchResult(pageIndex) } + } else { + emptyView!!.hide() + deviceListAdapter = DeviceListAdapter(this, dataBeans) + resultRecyclerView!!.layoutManager = LinearLayoutManager(this) + resultRecyclerView!!.adapter = deviceListAdapter + deviceListAdapter.setOnItemClickListener(object : + DeviceListAdapter.OnItemClickListener { + override fun onClicked(position: Int) { + val deviceCode = dataBeans[position].devcode.toString() + if (deviceCode.isBlank()) { + "设备编号异常,无法查看历史数据".show() + return + } + navigatePageTo(deviceCode) + } + }) } } } + true } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/qd/smartwell/extensions/Context.kt b/app/src/main/java/com/casic/qd/smartwell/extensions/Context.kt index ab62dc8..67b1d51 100644 --- a/app/src/main/java/com/casic/qd/smartwell/extensions/Context.kt +++ b/app/src/main/java/com/casic/qd/smartwell/extensions/Context.kt @@ -3,7 +3,6 @@ import android.content.Context import android.content.Intent import android.net.ConnectivityManager -import com.casic.qd.smartwell.base.BaseActivity import com.casic.qd.smartwell.utils.Constant /** @@ -23,28 +22,31 @@ return false } -fun Context.navigatePageTo(clazz: Class) { - startActivity(Intent(this, clazz)) +/** + * Context内联函数-扩展函数 + * */ +inline fun Context.getSystemService(): T? { + return this.getSystemService(T::class.java) } -fun Context.navigatePageTo(clazz: Class, value: String) { - val intent = Intent(this, clazz) +inline fun Context.navigatePageTo() { + startActivity(Intent(this, T::class.java)) +} + +inline fun Context.navigatePageTo(value: String) { + val intent = Intent(this, T::class.java) intent.putExtra(Constant.INTENT_PARAM, value) startActivity(intent) } -fun Context.navigatePageTo(clazz: Class, values: ArrayList) { - val intent = Intent(this, clazz) +inline fun Context.navigatePageTo(values: ArrayList) { + val intent = Intent(this, T::class.java) intent.putStringArrayListExtra(Constant.INTENT_PARAM, values) startActivity(intent) } -fun Context.navigatePageTo( - clazz: Class, - index: Int, - imageList: ArrayList -) { - val intent = Intent(this, clazz) +inline fun Context.navigatePageTo(index: Int, imageList: ArrayList) { + val intent = Intent(this, T::class.java) intent.putExtra("index", index) intent.putStringArrayListExtra("images", imageList) startActivity(intent) diff --git a/app/src/main/java/com/casic/qd/smartwell/utils/WeakReferenceHandler.kt b/app/src/main/java/com/casic/qd/smartwell/utils/WeakReferenceHandler.kt new file mode 100644 index 0000000..31468d7 --- /dev/null +++ b/app/src/main/java/com/casic/qd/smartwell/utils/WeakReferenceHandler.kt @@ -0,0 +1,16 @@ +package com.casic.qd.smartwell.utils + +import android.os.Handler +import android.os.Looper +import android.os.Message +import java.lang.ref.WeakReference + +class WeakReferenceHandler(callback: Callback) : Handler(Looper.getMainLooper()) { + + private var weakReference: WeakReference = WeakReference(callback) + + override fun handleMessage(msg: Message) { + super.handleMessage(msg) + weakReference.get()?.handleMessage(msg) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/qd/smartwell/view/AlarmManagementActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/AlarmManagementActivity.kt index 67f51d9..b492537 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/AlarmManagementActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/AlarmManagementActivity.kt @@ -1,12 +1,9 @@ package com.casic.qd.smartwell.view -import android.annotation.SuppressLint import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import android.os.Handler -import android.os.Looper -import android.os.Message import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.LinearLayoutManager import com.casic.qd.smartwell.R @@ -16,15 +13,11 @@ import com.casic.qd.smartwell.extensions.show import com.casic.qd.smartwell.extensions.showEmptyPage import com.casic.qd.smartwell.model.AlarmListModel -import com.casic.qd.smartwell.utils.BroadcastReceiverManager -import com.casic.qd.smartwell.utils.Constant -import com.casic.qd.smartwell.utils.DialogHelper -import com.casic.qd.smartwell.utils.LoadState +import com.casic.qd.smartwell.utils.* import com.casic.qd.smartwell.vm.AlarmViewModel import com.pengxh.app.multilib.widget.dialog.AlertControlDialog import kotlinx.android.synthetic.main.activity_alarm_management.* import kotlinx.android.synthetic.main.include_empty_view.* -import java.lang.ref.WeakReference class AlarmManagementActivity : BaseActivity() { @@ -43,13 +36,13 @@ leftBackView.setOnClickListener { finish() } titleView.text = "当前告警" rightOptionView.setOnClickListener { - this.navigatePageTo(SearchAlarmActivity::class.java) + navigatePageTo() } } override fun initData() { alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java) - weakReferenceHandler = WeakReferenceHandler(this) + weakReferenceHandler = WeakReferenceHandler(callback) //注册广播接收者 BroadcastReceiverManager.instance.addAction(Constant.CANCEL_ALARM_ACTION, object : BroadcastReceiver() { @@ -125,66 +118,59 @@ alarmViewModel.obtainAlarmList("", "", "", "", "", "", "1", pageIndex) } - private class WeakReferenceHandler(activity: AlarmManagementActivity) : - Handler(Looper.getMainLooper()) { - private val reference: WeakReference = WeakReference(activity) - - @SuppressLint("NotifyDataSetChanged") - override fun handleMessage(msg: Message) { - super.handleMessage(msg) - val activity = reference.get()!! - if (msg.what == 2022041301) { - if (activity.isRefresh || activity.isLoadMore) { - activity.alarmListAdapter.notifyDataSetChanged() - } else { //首次加载数据 - if (activity.dataBeans.size == 0) { - activity.emptyView!!.showEmptyPage { - activity.obtainAlarmList(activity.pageIndex) - } - } else { - activity.emptyView!!.hide() - activity.alarmListAdapter = AlarmListAdapter(activity, activity.dataBeans) - activity.alarmListView!!.layoutManager = LinearLayoutManager(activity) - activity.alarmListView!!.adapter = activity.alarmListAdapter - activity.alarmListAdapter.setOnItemClickListener(object : - AlarmListAdapter.OnItemClickListener { - override fun onClicked(position: Int) { - val wellId = activity.dataBeans[position].wellId.toString() - if (wellId.isBlank()) { - "井编号异常,无法查看详情".show() - return - } - activity.navigatePageTo(WellDetailActivity::class.java, wellId) - } - - override fun onOperationClicked(position: Int) { - AlertControlDialog.Builder() - .setContext(activity) - .setTitle("确认操作") - .setMessage("确定取消报警吗?") - .setNegativeButton("取消") - .setPositiveButton("确定") - .setOnDialogButtonClickListener(object : - AlertControlDialog.OnDialogButtonClickListener { - override fun onConfirmClick() { - val alarmId = activity.dataBeans[position].id - if (alarmId.toString().isBlank()) { - "操作失败,告警ID异常".show() - return - } - activity.alarmViewModel.obtainOperationResult(alarmId!!) - } - - override fun onCancelClick() { - - } - }).build().show() - } - }) + private val callback = Handler.Callback { + if (it.what == 2022041301) { + if (isRefresh || isLoadMore) { + alarmListAdapter.notifyDataSetChanged() + } else { //首次加载数据 + if (dataBeans.size == 0) { + emptyView!!.showEmptyPage { + obtainAlarmList(pageIndex) } + } else { + emptyView!!.hide() + alarmListAdapter = AlarmListAdapter(this, dataBeans) + alarmListView!!.layoutManager = LinearLayoutManager(this) + alarmListView!!.adapter = alarmListAdapter + alarmListAdapter.setOnItemClickListener(object : + AlarmListAdapter.OnItemClickListener { + override fun onClicked(position: Int) { + val wellId = dataBeans[position].wellId.toString() + if (wellId.isBlank()) { + "井编号异常,无法查看详情".show() + return + } + navigatePageTo(wellId) + } + + override fun onOperationClicked(position: Int) { + AlertControlDialog.Builder() + .setContext(this@AlarmManagementActivity) + .setTitle("确认操作") + .setMessage("确定取消报警吗?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + val alarmId = dataBeans[position].id + if (alarmId.toString().isBlank()) { + "操作失败,告警ID异常".show() + return + } + alarmViewModel.obtainOperationResult(alarmId!!) + } + + override fun onCancelClick() { + + } + }).build().show() + } + }) } } } + true } override fun onDestroy() { diff --git a/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt index 198daf5..f19f2f7 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt @@ -1,12 +1,9 @@ package com.casic.qd.smartwell.view -import android.annotation.SuppressLint import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import android.os.Handler -import android.os.Looper -import android.os.Message import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.LinearLayoutManager import com.casic.qd.smartwell.R @@ -16,17 +13,13 @@ import com.casic.qd.smartwell.extensions.show import com.casic.qd.smartwell.extensions.showEmptyPage import com.casic.qd.smartwell.model.AlarmListModel -import com.casic.qd.smartwell.utils.BroadcastReceiverManager -import com.casic.qd.smartwell.utils.Constant -import com.casic.qd.smartwell.utils.DialogHelper -import com.casic.qd.smartwell.utils.LoadState +import com.casic.qd.smartwell.utils.* import com.casic.qd.smartwell.vm.AlarmViewModel import com.casic.qd.smartwell.vm.SearchResultViewModel import com.pengxh.app.multilib.widget.dialog.AlertControlDialog import kotlinx.android.synthetic.main.activity_alarm_search_result.* import kotlinx.android.synthetic.main.include_base_title.* import kotlinx.android.synthetic.main.include_empty_view.* -import java.lang.ref.WeakReference class AlarmSearchResultActivity : BaseActivity() { @@ -49,7 +42,7 @@ override fun initData() { args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! - weakReferenceHandler = WeakReferenceHandler(this) + weakReferenceHandler = WeakReferenceHandler(callback) searchAlarmViewModel = ViewModelProvider(this).get(SearchResultViewModel::class.java) alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java) //注册广播接收者 @@ -141,66 +134,59 @@ ) } - private class WeakReferenceHandler(activity: AlarmSearchResultActivity) : - Handler(Looper.getMainLooper()) { - private val reference: WeakReference = WeakReference(activity) - - @SuppressLint("NotifyDataSetChanged") - override fun handleMessage(msg: Message) { - super.handleMessage(msg) - val activity = reference.get()!! - if (msg.what == 2022041501) { - if (activity.isRefresh || activity.isLoadMore) { - activity.alarmListAdapter.notifyDataSetChanged() - } else { //首次加载数据 - if (activity.dataBeans.size == 0) { - activity.emptyView!!.showEmptyPage { - activity.obtainSearchResult(activity.args, activity.pageIndex) - } - } else { - activity.emptyView!!.hide() - activity.alarmListAdapter = AlarmListAdapter(activity, activity.dataBeans) - activity.resultRecyclerView!!.layoutManager = LinearLayoutManager(activity) - activity.resultRecyclerView!!.adapter = activity.alarmListAdapter - activity.alarmListAdapter.setOnItemClickListener(object : - AlarmListAdapter.OnItemClickListener { - override fun onClicked(position: Int) { - val wellId = activity.dataBeans[position].wellId.toString() - if (wellId.isBlank()) { - "井编号异常,无法查看详情".show() - return - } - activity.navigatePageTo(WellDetailActivity::class.java, wellId) - } - - override fun onOperationClicked(position: Int) { - AlertControlDialog.Builder() - .setContext(activity) - .setTitle("确认操作") - .setMessage("确定取消报警吗?") - .setNegativeButton("取消") - .setPositiveButton("确定") - .setOnDialogButtonClickListener(object : - AlertControlDialog.OnDialogButtonClickListener { - override fun onConfirmClick() { - val alarmId = activity.dataBeans[position].id - if (alarmId.toString().isBlank()) { - "操作失败,告警ID异常".show() - return - } - activity.alarmViewModel.obtainOperationResult(alarmId!!) - } - - override fun onCancelClick() { - - } - }).build().show() - } - }) + private val callback = Handler.Callback { + if (it.what == 2022041501) { + if (isRefresh || isLoadMore) { + alarmListAdapter.notifyDataSetChanged() + } else { //首次加载数据 + if (dataBeans.size == 0) { + emptyView!!.showEmptyPage { + obtainSearchResult(args, pageIndex) } + } else { + emptyView!!.hide() + alarmListAdapter = AlarmListAdapter(this, dataBeans) + resultRecyclerView!!.layoutManager = LinearLayoutManager(this) + resultRecyclerView!!.adapter = alarmListAdapter + alarmListAdapter.setOnItemClickListener(object : + AlarmListAdapter.OnItemClickListener { + override fun onClicked(position: Int) { + val wellId = dataBeans[position].wellId.toString() + if (wellId.isBlank()) { + "井编号异常,无法查看详情".show() + return + } + navigatePageTo(wellId) + } + + override fun onOperationClicked(position: Int) { + AlertControlDialog.Builder() + .setContext(this@AlarmSearchResultActivity) + .setTitle("确认操作") + .setMessage("确定取消报警吗?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + val alarmId = dataBeans[position].id + if (alarmId.toString().isBlank()) { + "操作失败,告警ID异常".show() + return + } + alarmViewModel.obtainOperationResult(alarmId!!) + } + + override fun onCancelClick() { + + } + }).build().show() + } + }) } } } + true } override fun onDestroy() { diff --git a/app/src/main/java/com/casic/qd/smartwell/view/LoginActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/LoginActivity.kt index c86ee63..ccfeb79 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/LoginActivity.kt @@ -113,7 +113,7 @@ */ authenticateViewModel.obtainAuthorByDept() //验证成功登录 - this.navigatePageTo(MainActivity::class.java) + navigatePageTo() finish() } }) diff --git a/app/src/main/java/com/casic/qd/smartwell/view/MainActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/MainActivity.kt index e005c94..b989b16 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/MainActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/MainActivity.kt @@ -106,7 +106,7 @@ //Banner点击事件 setOnBannerListener { imageModel, _ -> - navigatePageTo(WebsiteActivity::class.java, imageModel.webPageLink!!) + navigatePageTo(imageModel.webPageLink!!) } } @@ -118,20 +118,20 @@ HomeRecycleAdapter.OnGridItemClickListener { override fun onClick(position: Int) { when (position) { - 0 -> context.navigatePageTo(MapActivity::class.java) + 0 -> context.navigatePageTo() 1 -> { BottomActionSheet.Builder() .setContext(context) .setActionItemTitles(arrayOf("设备", "数据")) .setOnActionSheetListener { index -> when (index) { - 0 -> context.navigatePageTo(SearchDeviceActivity::class.java) - 1 -> context.navigatePageTo(SearchDataActivity::class.java) + 0 -> context.navigatePageTo() + 1 -> context.navigatePageTo() } }.build().show() } - 2 -> context.navigatePageTo(StatisticsActivity::class.java) + 2 -> context.navigatePageTo() } } }) @@ -155,13 +155,13 @@ loginViewModel.loadState.observe(this, { if (it == LoadState.Success) { AuthenticationHelper.removeToken() - this.navigatePageTo(LoginActivity::class.java) + navigatePageTo() PageNavigationManager.finishAllActivity() } }) rightOptionView.setOnClickListener { - navigatePageTo(AlarmManagementActivity::class.java) + navigatePageTo() } waterViewModel.waterStatistics() @@ -208,7 +208,7 @@ }) expandChartView.setOnClickListener { - navigatePageTo(WaterExpandedActivity::class.java) + navigatePageTo() } changePwdViewModel.loadState.observe(this, { @@ -219,7 +219,7 @@ is LoadState.Success -> { DialogHelper.dismissLoadingDialog() AuthenticationHelper.removeToken() - this.navigatePageTo(LoginActivity::class.java) + navigatePageTo() PageNavigationManager.finishAllActivity() } else -> { diff --git a/app/src/main/java/com/casic/qd/smartwell/view/MapActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/MapActivity.kt index 557f61e..9f16224 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/MapActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/MapActivity.kt @@ -77,7 +77,7 @@ when (position) { 0 -> aMap.mapType = AMap.MAP_TYPE_NORMAL 1 -> aMap.mapType = AMap.MAP_TYPE_SATELLITE - 2 -> navigatePageTo(WebsiteActivity::class.java, Constant.VR_URL) + 2 -> navigatePageTo(Constant.VR_URL) } } }) @@ -277,7 +277,7 @@ override fun onPause() { super.onPause() - mapView.onResume() + mapView.onPause() } override fun onDestroy() { diff --git a/app/src/main/java/com/casic/qd/smartwell/view/PermissionActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/PermissionActivity.kt index 0d23233..58c6db9 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/PermissionActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/PermissionActivity.kt @@ -27,7 +27,7 @@ } private fun startSplashScreenActivity() { - this.navigatePageTo(SplashScreenActivity::class.java) + navigatePageTo() finish() } diff --git a/app/src/main/java/com/casic/qd/smartwell/view/SearchAlarmActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/SearchAlarmActivity.kt index d5f8687..2b92d86 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/SearchAlarmActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/SearchAlarmActivity.kt @@ -148,8 +148,8 @@ searchButton.setChangeAlphaWhenPress(true) searchButton.setOnClickListener { //页面跳转,将查询参数传过去 - navigatePageTo( - AlarmSearchResultActivity::class.java, addAll( + navigatePageTo( + addAll( wellCodeView.text.toString().trim(), alarmType, areaId, diff --git a/app/src/main/java/com/casic/qd/smartwell/view/SearchDataActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/SearchDataActivity.kt index c8fa96e..d1b52b7 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/SearchDataActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/SearchDataActivity.kt @@ -1,9 +1,6 @@ package com.casic.qd.smartwell.view -import android.annotation.SuppressLint import android.os.Handler -import android.os.Looper -import android.os.Message import android.view.View import android.widget.EditText import android.widget.TextView @@ -21,6 +18,7 @@ import com.casic.qd.smartwell.model.DeviceDataModel import com.casic.qd.smartwell.utils.DialogHelper import com.casic.qd.smartwell.utils.LoadState +import com.casic.qd.smartwell.utils.WeakReferenceHandler import com.casic.qd.smartwell.vm.AreaViewModel import com.casic.qd.smartwell.vm.DeviceViewModel import com.casic.qd.smartwell.widgets.BottomAreaSheet @@ -28,7 +26,6 @@ import kotlinx.android.synthetic.main.activity_data_search.* import kotlinx.android.synthetic.main.include_base_title.titleView import kotlinx.android.synthetic.main.include_empty_view.* -import java.lang.ref.WeakReference /** * @author a203 @@ -66,7 +63,7 @@ } override fun initData() { - weakReferenceHandler = WeakReferenceHandler(this) + weakReferenceHandler = WeakReferenceHandler(callback) deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) areaViewModel = ViewModelProvider(this).get(AreaViewModel::class.java) } @@ -197,44 +194,34 @@ } - private class WeakReferenceHandler(activity: SearchDataActivity) : - Handler(Looper.getMainLooper()) { - private val reference: WeakReference = WeakReference(activity) - - @SuppressLint("NotifyDataSetChanged") - override fun handleMessage(msg: Message) { - super.handleMessage(msg) - val activity = reference.get()!! - if (msg.what == 2022042101) { - if (activity.isRefresh || activity.isLoadMore) { - activity.dataListAdapter.notifyDataSetChanged() - } else { - if (activity.dataBeans.size == 0) { - activity.emptyView!!.showEmptyPage { - activity.obtainSearchResult(activity.pageIndex) - } - } else { - activity.emptyView!!.hide() - activity.dataListAdapter = - DeviceDataListAdapter(activity, activity.dataBeans) - activity.resultRecyclerView!!.layoutManager = LinearLayoutManager(activity) - activity.resultRecyclerView!!.adapter = activity.dataListAdapter - activity.dataListAdapter.setOnItemClickListener(object : - DeviceDataListAdapter.OnItemClickListener { - override fun onClicked(position: Int) { - val deviceCode = activity.dataBeans[position].devcode.toString() - if (deviceCode.isBlank()) { - "设备编号异常,无法查看历史数据".show() - return - } - activity.navigatePageTo( - DeviceDataDetailActivity::class.java, deviceCode - ) - } - }) + private val callback = Handler.Callback { + if (it.what == 2022042101) { + if (isRefresh || isLoadMore) { + dataListAdapter.notifyDataSetChanged() + } else { + if (dataBeans.size == 0) { + emptyView!!.showEmptyPage { + obtainSearchResult(pageIndex) } + } else { + emptyView!!.hide() + dataListAdapter = DeviceDataListAdapter(this, dataBeans) + resultRecyclerView!!.layoutManager = LinearLayoutManager(this) + resultRecyclerView!!.adapter = dataListAdapter + dataListAdapter.setOnItemClickListener(object : + DeviceDataListAdapter.OnItemClickListener { + override fun onClicked(position: Int) { + val deviceCode = dataBeans[position].devcode.toString() + if (deviceCode.isBlank()) { + "设备编号异常,无法查看历史数据".show() + return + } + navigatePageTo(deviceCode) + } + }) } } } + true } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/qd/smartwell/view/SearchDeviceActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/SearchDeviceActivity.kt index 35dd8ef..96feba9 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/SearchDeviceActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/SearchDeviceActivity.kt @@ -1,9 +1,6 @@ package com.casic.qd.smartwell.view -import android.annotation.SuppressLint import android.os.Handler -import android.os.Looper -import android.os.Message import android.view.View import android.widget.EditText import android.widget.TextView @@ -21,10 +18,7 @@ import com.casic.qd.smartwell.model.DeviceListModel import com.casic.qd.smartwell.model.DeviceTypeModel import com.casic.qd.smartwell.model.OwnerShipModel -import com.casic.qd.smartwell.utils.Constant -import com.casic.qd.smartwell.utils.DialogHelper -import com.casic.qd.smartwell.utils.LoadState -import com.casic.qd.smartwell.utils.SaveKeyValues +import com.casic.qd.smartwell.utils.* import com.casic.qd.smartwell.vm.AreaViewModel import com.casic.qd.smartwell.vm.AuthenticateViewModel import com.casic.qd.smartwell.vm.DeviceViewModel @@ -36,7 +30,6 @@ import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton import kotlinx.android.synthetic.main.activity_device_search.* import kotlinx.android.synthetic.main.include_empty_view.* -import java.lang.ref.WeakReference /** * @author a203 @@ -89,7 +82,7 @@ userDeviceJson, object : TypeToken>() {}.type ) } - weakReferenceHandler = WeakReferenceHandler(this) + weakReferenceHandler = WeakReferenceHandler(callback) searchDeviceViewModel = ViewModelProvider(this).get(SearchResultViewModel::class.java) deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) authenticateViewModel = ViewModelProvider(this).get(AuthenticateViewModel::class.java) @@ -308,43 +301,34 @@ ) } - private class WeakReferenceHandler(activity: SearchDeviceActivity) : - Handler(Looper.getMainLooper()) { - private val reference: WeakReference = WeakReference(activity) - - @SuppressLint("NotifyDataSetChanged") - override fun handleMessage(msg: Message) { - super.handleMessage(msg) - val activity = reference.get()!! - if (msg.what == 2022042001) { - if (activity.isRefresh || activity.isLoadMore) { - activity.deviceListAdapter.notifyDataSetChanged() - } else { //首次加载数据 - if (activity.dataBeans.size == 0) { - activity.emptyView!!.showEmptyPage { - activity.obtainSearchResult(activity.pageIndex) - } - } else { - activity.emptyView!!.hide() - activity.deviceListAdapter = DeviceListAdapter(activity, activity.dataBeans) - activity.resultRecyclerView!!.layoutManager = LinearLayoutManager(activity) - activity.resultRecyclerView!!.adapter = activity.deviceListAdapter - activity.deviceListAdapter.setOnItemClickListener(object : - DeviceListAdapter.OnItemClickListener { - override fun onClicked(position: Int) { - val deviceCode = activity.dataBeans[position].devcode.toString() - if (deviceCode.isBlank()) { - "设备编号异常,无法查看历史数据".show() - return - } - activity.navigatePageTo( - DeviceDataDetailActivity::class.java, deviceCode - ) - } - }) + private val callback = Handler.Callback { + if (it.what == 2022042001) { + if (isRefresh || isLoadMore) { + deviceListAdapter.notifyDataSetChanged() + } else { //首次加载数据 + if (dataBeans.size == 0) { + emptyView!!.showEmptyPage { + obtainSearchResult(pageIndex) } + } else { + emptyView!!.hide() + deviceListAdapter = DeviceListAdapter(this, dataBeans) + resultRecyclerView!!.layoutManager = LinearLayoutManager(this) + resultRecyclerView!!.adapter = deviceListAdapter + deviceListAdapter.setOnItemClickListener(object : + DeviceListAdapter.OnItemClickListener { + override fun onClicked(position: Int) { + val deviceCode = dataBeans[position].devcode.toString() + if (deviceCode.isBlank()) { + "设备编号异常,无法查看历史数据".show() + return + } + navigatePageTo(deviceCode) + } + }) } } } + true } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/qd/smartwell/view/SplashScreenActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/SplashScreenActivity.kt index d535868..45e6aa1 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/SplashScreenActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/SplashScreenActivity.kt @@ -66,9 +66,9 @@ authenticateViewModel.obtainAuthorByDept() userDetailViewModel.flag.observe(this@SplashScreenActivity, { if (it) { - navigatePageTo(MainActivity::class.java) + navigatePageTo() } else { - navigatePageTo(LoginActivity::class.java) + navigatePageTo() } finish() })