diff --git a/.idea/misc.xml b/.idea/misc.xml
index c4e854b..cf5266d 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -22,6 +22,7 @@
+
@@ -50,6 +51,7 @@
+
@@ -77,6 +79,7 @@
+
@@ -95,6 +98,7 @@
+
@@ -118,14 +122,14 @@
-
+
-
+
diff --git a/.idea/misc.xml b/.idea/misc.xml
index c4e854b..cf5266d 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -22,6 +22,7 @@
+
@@ -50,6 +51,7 @@
+
@@ -77,6 +79,7 @@
+
@@ -95,6 +98,7 @@
+
@@ -118,14 +122,14 @@
-
+
-
+
diff --git a/app/build.gradle b/app/build.gradle
index 0d88385..a89466d 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -44,10 +44,10 @@
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
- implementation 'androidx.core:core-ktx:1.6.0'
+ implementation 'androidx.core:core-ktx:1.7.0'
implementation 'androidx.appcompat:appcompat:1.4.0'
implementation 'com.google.android.material:material:1.4.0'
- implementation 'androidx.constraintlayout:constraintlayout:2.1.2'
+ implementation 'androidx.constraintlayout:constraintlayout:2.1.3'
//Google官方授权框架
implementation 'pub.devrel:easypermissions:3.0.0'
//腾讯Android UI框架
diff --git a/.idea/misc.xml b/.idea/misc.xml
index c4e854b..cf5266d 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -22,6 +22,7 @@
+
@@ -50,6 +51,7 @@
+
@@ -77,6 +79,7 @@
+
@@ -95,6 +98,7 @@
+
@@ -118,14 +122,14 @@
-
+
-
+
diff --git a/app/build.gradle b/app/build.gradle
index 0d88385..a89466d 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -44,10 +44,10 @@
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
- implementation 'androidx.core:core-ktx:1.6.0'
+ implementation 'androidx.core:core-ktx:1.7.0'
implementation 'androidx.appcompat:appcompat:1.4.0'
implementation 'com.google.android.material:material:1.4.0'
- implementation 'androidx.constraintlayout:constraintlayout:2.1.2'
+ implementation 'androidx.constraintlayout:constraintlayout:2.1.3'
//Google官方授权框架
implementation 'pub.devrel:easypermissions:3.0.0'
//腾讯Android UI框架
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/impl/CaseHandledListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/impl/CaseHandledListModelImpl.java
index 02c6875..37b76ac 100644
--- a/app/src/main/java/com/casic/dcms/mvp/model/impl/CaseHandledListModelImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/model/impl/CaseHandledListModelImpl.java
@@ -26,7 +26,7 @@
*/
@Override
public Subscription sendCaseHandledListRequest(int offset) {
- Observable observable = RetrofitServiceManager.getCaseHandledListResult(offset);
+ Observable observable = RetrofitServiceManager.handleCaseResult(offset);
return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
@Override
public void onCompleted() {
diff --git a/.idea/misc.xml b/.idea/misc.xml
index c4e854b..cf5266d 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -22,6 +22,7 @@
+
@@ -50,6 +51,7 @@
+
@@ -77,6 +79,7 @@
+
@@ -95,6 +98,7 @@
+
@@ -118,14 +122,14 @@
-
+
-
+
diff --git a/app/build.gradle b/app/build.gradle
index 0d88385..a89466d 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -44,10 +44,10 @@
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
- implementation 'androidx.core:core-ktx:1.6.0'
+ implementation 'androidx.core:core-ktx:1.7.0'
implementation 'androidx.appcompat:appcompat:1.4.0'
implementation 'com.google.android.material:material:1.4.0'
- implementation 'androidx.constraintlayout:constraintlayout:2.1.2'
+ implementation 'androidx.constraintlayout:constraintlayout:2.1.3'
//Google官方授权框架
implementation 'pub.devrel:easypermissions:3.0.0'
//腾讯Android UI框架
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/impl/CaseHandledListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/impl/CaseHandledListModelImpl.java
index 02c6875..37b76ac 100644
--- a/app/src/main/java/com/casic/dcms/mvp/model/impl/CaseHandledListModelImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/model/impl/CaseHandledListModelImpl.java
@@ -26,7 +26,7 @@
*/
@Override
public Subscription sendCaseHandledListRequest(int offset) {
- Observable observable = RetrofitServiceManager.getCaseHandledListResult(offset);
+ Observable observable = RetrofitServiceManager.handleCaseResult(offset);
return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
@Override
public void onCompleted() {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
index 550750c..0c77aea 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
@@ -28,7 +28,7 @@
import com.casic.dcms.mvp.view.IGetCaseNextNodeView;
import com.casic.dcms.mvp.view.IUploadFileView;
import com.casic.dcms.ui.fragment.handle.CaseHandledFragment;
-import com.casic.dcms.ui.fragment.handle.CaseTimeoutFragment;
+import com.casic.dcms.ui.fragment.handle.CaseOverTimeFragment;
import com.casic.dcms.ui.fragment.handle.CaseTodoFragment;
import com.casic.dcms.ui.fragment.handle.CaseUrgentFragment;
import com.casic.dcms.utils.Constant;
@@ -336,7 +336,7 @@
ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS);
switch (title) {
case "超时案卷":
- CaseTimeoutFragment.sendEmptyMessage(Constant.CASE_HANDLE_OK);
+ CaseOverTimeFragment.sendEmptyMessage(Constant.CASE_HANDLE_OK);
CaseHandledFragment.sendEmptyMessage(Constant.CASE_HANDLE_OK);
break;
case "紧急案卷":
diff --git a/.idea/misc.xml b/.idea/misc.xml
index c4e854b..cf5266d 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -22,6 +22,7 @@
+
@@ -50,6 +51,7 @@
+
@@ -77,6 +79,7 @@
+
@@ -95,6 +98,7 @@
+
@@ -118,14 +122,14 @@
-
+
-
+
diff --git a/app/build.gradle b/app/build.gradle
index 0d88385..a89466d 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -44,10 +44,10 @@
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
- implementation 'androidx.core:core-ktx:1.6.0'
+ implementation 'androidx.core:core-ktx:1.7.0'
implementation 'androidx.appcompat:appcompat:1.4.0'
implementation 'com.google.android.material:material:1.4.0'
- implementation 'androidx.constraintlayout:constraintlayout:2.1.2'
+ implementation 'androidx.constraintlayout:constraintlayout:2.1.3'
//Google官方授权框架
implementation 'pub.devrel:easypermissions:3.0.0'
//腾讯Android UI框架
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/impl/CaseHandledListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/impl/CaseHandledListModelImpl.java
index 02c6875..37b76ac 100644
--- a/app/src/main/java/com/casic/dcms/mvp/model/impl/CaseHandledListModelImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/model/impl/CaseHandledListModelImpl.java
@@ -26,7 +26,7 @@
*/
@Override
public Subscription sendCaseHandledListRequest(int offset) {
- Observable observable = RetrofitServiceManager.getCaseHandledListResult(offset);
+ Observable observable = RetrofitServiceManager.handleCaseResult(offset);
return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
@Override
public void onCompleted() {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
index 550750c..0c77aea 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
@@ -28,7 +28,7 @@
import com.casic.dcms.mvp.view.IGetCaseNextNodeView;
import com.casic.dcms.mvp.view.IUploadFileView;
import com.casic.dcms.ui.fragment.handle.CaseHandledFragment;
-import com.casic.dcms.ui.fragment.handle.CaseTimeoutFragment;
+import com.casic.dcms.ui.fragment.handle.CaseOverTimeFragment;
import com.casic.dcms.ui.fragment.handle.CaseTodoFragment;
import com.casic.dcms.ui.fragment.handle.CaseUrgentFragment;
import com.casic.dcms.utils.Constant;
@@ -336,7 +336,7 @@
ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS);
switch (title) {
case "超时案卷":
- CaseTimeoutFragment.sendEmptyMessage(Constant.CASE_HANDLE_OK);
+ CaseOverTimeFragment.sendEmptyMessage(Constant.CASE_HANDLE_OK);
CaseHandledFragment.sendEmptyMessage(Constant.CASE_HANDLE_OK);
break;
case "紧急案卷":
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java
index 0e13b10..6b721eb 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java
@@ -1,8 +1,8 @@
package com.casic.dcms.ui;
+import android.content.Context;
import android.content.Intent;
import android.os.Handler;
-import android.os.Message;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.DividerItemDecoration;
@@ -16,16 +16,17 @@
import com.casic.dcms.mvp.view.ISearchCaseResultView;
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
public class CaseListResultActivity extends AndroidxBaseActivity implements ISearchCaseResultView {
+ private final Context context = this;
private CaseListPresenterImpl caseListPresenter;
private CaseListResultAdapter adapter;
private String typeCode;
@@ -53,7 +54,7 @@
@Override
protected void initData() {
caseListPresenter = new CaseListPresenterImpl(this);
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
eorc = getIntent().getStringExtra("eorc");
typeCode = getIntent().getStringExtra("typeCode");
typeDetailCode = getIntent().getStringExtra("typeDetailCode");
@@ -93,44 +94,33 @@
/**
* 弱应用Handler,防止内存泄漏
*/
- private static class WeakReferenceHandler extends Handler {
-
- private final WeakReference reference;
-
- private WeakReferenceHandler(CaseListResultActivity activity) {
- reference = new WeakReference<>(activity);
- }
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- CaseListResultActivity resultActivity = reference.get();
- if (msg.what == 20210425) {
- if (resultActivity.isRefresh || resultActivity.isLoadMore) {
- resultActivity.adapter.notifyDataSetChanged();
+ private final Handler.Callback callback = msg -> {
+ if (msg.what == 20210425) {
+ if (isRefresh || isLoadMore) {
+ adapter.notifyDataSetChanged();
+ } else {
+ //首次加载数据
+ if (dataBeans.size() == 0) {
+ viewBinding.emptyView.show("抱歉,没有查到符合您规定条件的案卷", null);
} else {
- //首次加载数据
- if (resultActivity.dataBeans.size() == 0) {
- resultActivity.viewBinding.emptyView.show("抱歉,没有查到符合您规定条件的案卷", null);
- } else {
- resultActivity.viewBinding.emptyView.hide();
- resultActivity.adapter = new CaseListResultAdapter(resultActivity, resultActivity.dataBeans);
- resultActivity.viewBinding.caseRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity));
- resultActivity.viewBinding.caseRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL));
- resultActivity.viewBinding.caseRecyclerView.setAdapter(resultActivity.adapter);
- resultActivity.adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() {
- @Override
- public void onClick(int position) {
- Intent intent = new Intent(resultActivity, CaseDetailActivity.class);
- intent.putExtra("id", resultActivity.dataBeans.get(position).getId());
- resultActivity.startActivity(intent);
- }
- });
- }
+ viewBinding.emptyView.hide();
+ adapter = new CaseListResultAdapter(context, dataBeans);
+ viewBinding.caseRecyclerView.setLayoutManager(new LinearLayoutManager(context));
+ viewBinding.caseRecyclerView.addItemDecoration(new DividerItemDecoration(context, DividerItemDecoration.VERTICAL));
+ viewBinding.caseRecyclerView.setAdapter(adapter);
+ adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() {
+ @Override
+ public void onClick(int position) {
+ Intent intent = new Intent(context, CaseDetailActivity.class);
+ intent.putExtra("id", dataBeans.get(position).getId());
+ startActivity(intent);
+ }
+ });
}
}
}
- }
+ return true;
+ };
@Override
public void showProgress() {
diff --git a/.idea/misc.xml b/.idea/misc.xml
index c4e854b..cf5266d 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -22,6 +22,7 @@
+
@@ -50,6 +51,7 @@
+
@@ -77,6 +79,7 @@
+
@@ -95,6 +98,7 @@
+
@@ -118,14 +122,14 @@
-
+
-
+
diff --git a/app/build.gradle b/app/build.gradle
index 0d88385..a89466d 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -44,10 +44,10 @@
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
- implementation 'androidx.core:core-ktx:1.6.0'
+ implementation 'androidx.core:core-ktx:1.7.0'
implementation 'androidx.appcompat:appcompat:1.4.0'
implementation 'com.google.android.material:material:1.4.0'
- implementation 'androidx.constraintlayout:constraintlayout:2.1.2'
+ implementation 'androidx.constraintlayout:constraintlayout:2.1.3'
//Google官方授权框架
implementation 'pub.devrel:easypermissions:3.0.0'
//腾讯Android UI框架
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/impl/CaseHandledListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/impl/CaseHandledListModelImpl.java
index 02c6875..37b76ac 100644
--- a/app/src/main/java/com/casic/dcms/mvp/model/impl/CaseHandledListModelImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/model/impl/CaseHandledListModelImpl.java
@@ -26,7 +26,7 @@
*/
@Override
public Subscription sendCaseHandledListRequest(int offset) {
- Observable observable = RetrofitServiceManager.getCaseHandledListResult(offset);
+ Observable observable = RetrofitServiceManager.handleCaseResult(offset);
return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
@Override
public void onCompleted() {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
index 550750c..0c77aea 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
@@ -28,7 +28,7 @@
import com.casic.dcms.mvp.view.IGetCaseNextNodeView;
import com.casic.dcms.mvp.view.IUploadFileView;
import com.casic.dcms.ui.fragment.handle.CaseHandledFragment;
-import com.casic.dcms.ui.fragment.handle.CaseTimeoutFragment;
+import com.casic.dcms.ui.fragment.handle.CaseOverTimeFragment;
import com.casic.dcms.ui.fragment.handle.CaseTodoFragment;
import com.casic.dcms.ui.fragment.handle.CaseUrgentFragment;
import com.casic.dcms.utils.Constant;
@@ -336,7 +336,7 @@
ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS);
switch (title) {
case "超时案卷":
- CaseTimeoutFragment.sendEmptyMessage(Constant.CASE_HANDLE_OK);
+ CaseOverTimeFragment.sendEmptyMessage(Constant.CASE_HANDLE_OK);
CaseHandledFragment.sendEmptyMessage(Constant.CASE_HANDLE_OK);
break;
case "紧急案卷":
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java
index 0e13b10..6b721eb 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java
@@ -1,8 +1,8 @@
package com.casic.dcms.ui;
+import android.content.Context;
import android.content.Intent;
import android.os.Handler;
-import android.os.Message;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.DividerItemDecoration;
@@ -16,16 +16,17 @@
import com.casic.dcms.mvp.view.ISearchCaseResultView;
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
public class CaseListResultActivity extends AndroidxBaseActivity implements ISearchCaseResultView {
+ private final Context context = this;
private CaseListPresenterImpl caseListPresenter;
private CaseListResultAdapter adapter;
private String typeCode;
@@ -53,7 +54,7 @@
@Override
protected void initData() {
caseListPresenter = new CaseListPresenterImpl(this);
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
eorc = getIntent().getStringExtra("eorc");
typeCode = getIntent().getStringExtra("typeCode");
typeDetailCode = getIntent().getStringExtra("typeDetailCode");
@@ -93,44 +94,33 @@
/**
* 弱应用Handler,防止内存泄漏
*/
- private static class WeakReferenceHandler extends Handler {
-
- private final WeakReference reference;
-
- private WeakReferenceHandler(CaseListResultActivity activity) {
- reference = new WeakReference<>(activity);
- }
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- CaseListResultActivity resultActivity = reference.get();
- if (msg.what == 20210425) {
- if (resultActivity.isRefresh || resultActivity.isLoadMore) {
- resultActivity.adapter.notifyDataSetChanged();
+ private final Handler.Callback callback = msg -> {
+ if (msg.what == 20210425) {
+ if (isRefresh || isLoadMore) {
+ adapter.notifyDataSetChanged();
+ } else {
+ //首次加载数据
+ if (dataBeans.size() == 0) {
+ viewBinding.emptyView.show("抱歉,没有查到符合您规定条件的案卷", null);
} else {
- //首次加载数据
- if (resultActivity.dataBeans.size() == 0) {
- resultActivity.viewBinding.emptyView.show("抱歉,没有查到符合您规定条件的案卷", null);
- } else {
- resultActivity.viewBinding.emptyView.hide();
- resultActivity.adapter = new CaseListResultAdapter(resultActivity, resultActivity.dataBeans);
- resultActivity.viewBinding.caseRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity));
- resultActivity.viewBinding.caseRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL));
- resultActivity.viewBinding.caseRecyclerView.setAdapter(resultActivity.adapter);
- resultActivity.adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() {
- @Override
- public void onClick(int position) {
- Intent intent = new Intent(resultActivity, CaseDetailActivity.class);
- intent.putExtra("id", resultActivity.dataBeans.get(position).getId());
- resultActivity.startActivity(intent);
- }
- });
- }
+ viewBinding.emptyView.hide();
+ adapter = new CaseListResultAdapter(context, dataBeans);
+ viewBinding.caseRecyclerView.setLayoutManager(new LinearLayoutManager(context));
+ viewBinding.caseRecyclerView.addItemDecoration(new DividerItemDecoration(context, DividerItemDecoration.VERTICAL));
+ viewBinding.caseRecyclerView.setAdapter(adapter);
+ adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() {
+ @Override
+ public void onClick(int position) {
+ Intent intent = new Intent(context, CaseDetailActivity.class);
+ intent.putExtra("id", dataBeans.get(position).getId());
+ startActivity(intent);
+ }
+ });
}
}
}
- }
+ return true;
+ };
@Override
public void showProgress() {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java
index 6e374cd..626720a 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java
@@ -1,6 +1,7 @@
package com.casic.dcms.ui;
import android.annotation.SuppressLint;
+import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
@@ -12,7 +13,6 @@
import android.view.MotionEvent;
import android.widget.RadioGroup;
-import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
import com.casic.dcms.R;
@@ -32,6 +32,7 @@
import com.casic.dcms.utils.ArcGisMapCreator;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.casic.dcms.widgets.AlertControlDialog;
import com.esri.arcgisruntime.concurrent.ListenableFuture;
import com.esri.arcgisruntime.data.ServiceFeatureTable;
@@ -48,7 +49,6 @@
import com.esri.arcgisruntime.symbology.PictureMarkerSymbol;
import com.esri.arcgisruntime.util.ListenableList;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -58,6 +58,7 @@
implements RadioGroup.OnCheckedChangeListener, IHandleCaseView, IVerifyCaseView, ICheckCaseView {
private static final String TAG = "CaseOnMapActivity";
+ private final Context context = this;
private HandleCasePresenterImpl handleCasePresenter;
private VerifyCasePresenterImpl caseVerifyPresenter;
private CaseCheckPresenterImpl caseCheckPresenter;
@@ -105,7 +106,7 @@
graphicsOverlays = viewBinding.mapView.getGraphicsOverlays();
//handler弱引用,防止内存泄漏
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
}
@SuppressLint("ClickableViewAccessibility")
@@ -150,48 +151,38 @@
});
}
- private static class WeakReferenceHandler extends Handler {
- private final WeakReference reference;
+ private final Handler.Callback callback = msg -> {
+ switch (msg.what) {
+ case 2021051401:
+ String caseId = (String) msg.obj;
+ new AlertControlDialog.Builder()
+ .setContext(context)
+ .setTitle("查看案卷详情")
+ .setMessage("ID:" + caseId)
+ .setNegativeButton("取消")
+ .setPositiveButton("确定")
+ .setOnDialogButtonClickListener(new AlertControlDialog.OnDialogButtonClickListener() {
+ @Override
+ public void onConfirmClick() {
+ Intent intent = new Intent(context, CaseDetailActivity.class);
+ intent.putExtra("id", caseId);
+ startActivity(intent);
+ }
- private WeakReferenceHandler(CaseOnMapActivity activity) {
- reference = new WeakReference<>(activity);
+ @Override
+ public void onCancelClick() {
+
+ }
+ }).build().show();
+ break;
+ case 2021051402:
+ ToastHelper.showToast("此附近无案卷,请重新选点", ToastHelper.WARING);
+ break;
+ default:
+ break;
}
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- CaseOnMapActivity onMapActivity = reference.get();
- switch (msg.what) {
- case 2021051401:
- String caseId = (String) msg.obj;
- new AlertControlDialog.Builder()
- .setContext(onMapActivity)
- .setTitle("查看案卷详情")
- .setMessage("ID:" + caseId)
- .setNegativeButton("取消")
- .setPositiveButton("确定")
- .setOnDialogButtonClickListener(new AlertControlDialog.OnDialogButtonClickListener() {
- @Override
- public void onConfirmClick() {
- Intent intent = new Intent(onMapActivity, CaseDetailActivity.class);
- intent.putExtra("id", caseId);
- onMapActivity.startActivity(intent);
- }
-
- @Override
- public void onCancelClick() {
-
- }
- }).build().show();
- break;
- case 2021051402:
- ToastHelper.showToast("此附近无案卷,请重新选点", ToastHelper.WARING);
- break;
- default:
- break;
- }
- }
- }
+ return true;
+ };
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
diff --git a/.idea/misc.xml b/.idea/misc.xml
index c4e854b..cf5266d 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -22,6 +22,7 @@
+
@@ -50,6 +51,7 @@
+
@@ -77,6 +79,7 @@
+
@@ -95,6 +98,7 @@
+
@@ -118,14 +122,14 @@
-
+
-
+
diff --git a/app/build.gradle b/app/build.gradle
index 0d88385..a89466d 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -44,10 +44,10 @@
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
- implementation 'androidx.core:core-ktx:1.6.0'
+ implementation 'androidx.core:core-ktx:1.7.0'
implementation 'androidx.appcompat:appcompat:1.4.0'
implementation 'com.google.android.material:material:1.4.0'
- implementation 'androidx.constraintlayout:constraintlayout:2.1.2'
+ implementation 'androidx.constraintlayout:constraintlayout:2.1.3'
//Google官方授权框架
implementation 'pub.devrel:easypermissions:3.0.0'
//腾讯Android UI框架
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/impl/CaseHandledListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/impl/CaseHandledListModelImpl.java
index 02c6875..37b76ac 100644
--- a/app/src/main/java/com/casic/dcms/mvp/model/impl/CaseHandledListModelImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/model/impl/CaseHandledListModelImpl.java
@@ -26,7 +26,7 @@
*/
@Override
public Subscription sendCaseHandledListRequest(int offset) {
- Observable observable = RetrofitServiceManager.getCaseHandledListResult(offset);
+ Observable observable = RetrofitServiceManager.handleCaseResult(offset);
return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
@Override
public void onCompleted() {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
index 550750c..0c77aea 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
@@ -28,7 +28,7 @@
import com.casic.dcms.mvp.view.IGetCaseNextNodeView;
import com.casic.dcms.mvp.view.IUploadFileView;
import com.casic.dcms.ui.fragment.handle.CaseHandledFragment;
-import com.casic.dcms.ui.fragment.handle.CaseTimeoutFragment;
+import com.casic.dcms.ui.fragment.handle.CaseOverTimeFragment;
import com.casic.dcms.ui.fragment.handle.CaseTodoFragment;
import com.casic.dcms.ui.fragment.handle.CaseUrgentFragment;
import com.casic.dcms.utils.Constant;
@@ -336,7 +336,7 @@
ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS);
switch (title) {
case "超时案卷":
- CaseTimeoutFragment.sendEmptyMessage(Constant.CASE_HANDLE_OK);
+ CaseOverTimeFragment.sendEmptyMessage(Constant.CASE_HANDLE_OK);
CaseHandledFragment.sendEmptyMessage(Constant.CASE_HANDLE_OK);
break;
case "紧急案卷":
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java
index 0e13b10..6b721eb 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java
@@ -1,8 +1,8 @@
package com.casic.dcms.ui;
+import android.content.Context;
import android.content.Intent;
import android.os.Handler;
-import android.os.Message;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.DividerItemDecoration;
@@ -16,16 +16,17 @@
import com.casic.dcms.mvp.view.ISearchCaseResultView;
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
public class CaseListResultActivity extends AndroidxBaseActivity implements ISearchCaseResultView {
+ private final Context context = this;
private CaseListPresenterImpl caseListPresenter;
private CaseListResultAdapter adapter;
private String typeCode;
@@ -53,7 +54,7 @@
@Override
protected void initData() {
caseListPresenter = new CaseListPresenterImpl(this);
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
eorc = getIntent().getStringExtra("eorc");
typeCode = getIntent().getStringExtra("typeCode");
typeDetailCode = getIntent().getStringExtra("typeDetailCode");
@@ -93,44 +94,33 @@
/**
* 弱应用Handler,防止内存泄漏
*/
- private static class WeakReferenceHandler extends Handler {
-
- private final WeakReference reference;
-
- private WeakReferenceHandler(CaseListResultActivity activity) {
- reference = new WeakReference<>(activity);
- }
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- CaseListResultActivity resultActivity = reference.get();
- if (msg.what == 20210425) {
- if (resultActivity.isRefresh || resultActivity.isLoadMore) {
- resultActivity.adapter.notifyDataSetChanged();
+ private final Handler.Callback callback = msg -> {
+ if (msg.what == 20210425) {
+ if (isRefresh || isLoadMore) {
+ adapter.notifyDataSetChanged();
+ } else {
+ //首次加载数据
+ if (dataBeans.size() == 0) {
+ viewBinding.emptyView.show("抱歉,没有查到符合您规定条件的案卷", null);
} else {
- //首次加载数据
- if (resultActivity.dataBeans.size() == 0) {
- resultActivity.viewBinding.emptyView.show("抱歉,没有查到符合您规定条件的案卷", null);
- } else {
- resultActivity.viewBinding.emptyView.hide();
- resultActivity.adapter = new CaseListResultAdapter(resultActivity, resultActivity.dataBeans);
- resultActivity.viewBinding.caseRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity));
- resultActivity.viewBinding.caseRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL));
- resultActivity.viewBinding.caseRecyclerView.setAdapter(resultActivity.adapter);
- resultActivity.adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() {
- @Override
- public void onClick(int position) {
- Intent intent = new Intent(resultActivity, CaseDetailActivity.class);
- intent.putExtra("id", resultActivity.dataBeans.get(position).getId());
- resultActivity.startActivity(intent);
- }
- });
- }
+ viewBinding.emptyView.hide();
+ adapter = new CaseListResultAdapter(context, dataBeans);
+ viewBinding.caseRecyclerView.setLayoutManager(new LinearLayoutManager(context));
+ viewBinding.caseRecyclerView.addItemDecoration(new DividerItemDecoration(context, DividerItemDecoration.VERTICAL));
+ viewBinding.caseRecyclerView.setAdapter(adapter);
+ adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() {
+ @Override
+ public void onClick(int position) {
+ Intent intent = new Intent(context, CaseDetailActivity.class);
+ intent.putExtra("id", dataBeans.get(position).getId());
+ startActivity(intent);
+ }
+ });
}
}
}
- }
+ return true;
+ };
@Override
public void showProgress() {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java
index 6e374cd..626720a 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java
@@ -1,6 +1,7 @@
package com.casic.dcms.ui;
import android.annotation.SuppressLint;
+import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
@@ -12,7 +13,6 @@
import android.view.MotionEvent;
import android.widget.RadioGroup;
-import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
import com.casic.dcms.R;
@@ -32,6 +32,7 @@
import com.casic.dcms.utils.ArcGisMapCreator;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.casic.dcms.widgets.AlertControlDialog;
import com.esri.arcgisruntime.concurrent.ListenableFuture;
import com.esri.arcgisruntime.data.ServiceFeatureTable;
@@ -48,7 +49,6 @@
import com.esri.arcgisruntime.symbology.PictureMarkerSymbol;
import com.esri.arcgisruntime.util.ListenableList;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -58,6 +58,7 @@
implements RadioGroup.OnCheckedChangeListener, IHandleCaseView, IVerifyCaseView, ICheckCaseView {
private static final String TAG = "CaseOnMapActivity";
+ private final Context context = this;
private HandleCasePresenterImpl handleCasePresenter;
private VerifyCasePresenterImpl caseVerifyPresenter;
private CaseCheckPresenterImpl caseCheckPresenter;
@@ -105,7 +106,7 @@
graphicsOverlays = viewBinding.mapView.getGraphicsOverlays();
//handler弱引用,防止内存泄漏
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
}
@SuppressLint("ClickableViewAccessibility")
@@ -150,48 +151,38 @@
});
}
- private static class WeakReferenceHandler extends Handler {
- private final WeakReference reference;
+ private final Handler.Callback callback = msg -> {
+ switch (msg.what) {
+ case 2021051401:
+ String caseId = (String) msg.obj;
+ new AlertControlDialog.Builder()
+ .setContext(context)
+ .setTitle("查看案卷详情")
+ .setMessage("ID:" + caseId)
+ .setNegativeButton("取消")
+ .setPositiveButton("确定")
+ .setOnDialogButtonClickListener(new AlertControlDialog.OnDialogButtonClickListener() {
+ @Override
+ public void onConfirmClick() {
+ Intent intent = new Intent(context, CaseDetailActivity.class);
+ intent.putExtra("id", caseId);
+ startActivity(intent);
+ }
- private WeakReferenceHandler(CaseOnMapActivity activity) {
- reference = new WeakReference<>(activity);
+ @Override
+ public void onCancelClick() {
+
+ }
+ }).build().show();
+ break;
+ case 2021051402:
+ ToastHelper.showToast("此附近无案卷,请重新选点", ToastHelper.WARING);
+ break;
+ default:
+ break;
}
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- CaseOnMapActivity onMapActivity = reference.get();
- switch (msg.what) {
- case 2021051401:
- String caseId = (String) msg.obj;
- new AlertControlDialog.Builder()
- .setContext(onMapActivity)
- .setTitle("查看案卷详情")
- .setMessage("ID:" + caseId)
- .setNegativeButton("取消")
- .setPositiveButton("确定")
- .setOnDialogButtonClickListener(new AlertControlDialog.OnDialogButtonClickListener() {
- @Override
- public void onConfirmClick() {
- Intent intent = new Intent(onMapActivity, CaseDetailActivity.class);
- intent.putExtra("id", caseId);
- onMapActivity.startActivity(intent);
- }
-
- @Override
- public void onCancelClick() {
-
- }
- }).build().show();
- break;
- case 2021051402:
- ToastHelper.showToast("此附近无案卷,请重新选点", ToastHelper.WARING);
- break;
- default:
- break;
- }
- }
- }
+ return true;
+ };
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java b/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java
index 5c037c4..6289181 100644
--- a/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java
@@ -3,7 +3,6 @@
import android.content.Context;
import android.content.Intent;
import android.os.Handler;
-import android.os.Message;
import android.text.TextUtils;
import android.view.View;
@@ -21,12 +20,12 @@
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.StringHelper;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.casic.dcms.widgets.datepicker.DatePopupWindow;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
@@ -53,7 +52,7 @@
@Override
protected void initData() {
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
recordPresenter = new CleanRecordPresenterImpl(this);
recordPresenter.onReadyRetrofitRequest(StringHelper.getUserBean().getId(), "", "", "", pageIndex);
}
@@ -139,59 +138,48 @@
OtherUtils.dismissLoadingDialog();
}
- private static class WeakReferenceHandler extends Handler {
-
- private final WeakReference reference;
-
- private WeakReferenceHandler(CleanResultListActivity activity) {
- reference = new WeakReference<>(activity);
- }
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- CleanResultListActivity resultActivity = reference.get();
- if (msg.what == 20210601) {
- if (resultActivity.isRefresh || resultActivity.isLoadMore) {
- resultActivity.adapter.notifyDataSetChanged();
+ private final Handler.Callback callback = msg -> {
+ if (msg.what == 20210601) {
+ if (isRefresh || isLoadMore) {
+ adapter.notifyDataSetChanged();
+ } else {
+ //首次加载数据
+ if (dataBeans.size() == 0) {
+ viewBinding.emptyView.show("抱歉,没有查到您的保洁工作记录", null);
} else {
- //首次加载数据
- if (resultActivity.dataBeans.size() == 0) {
- resultActivity.viewBinding.emptyView.show("抱歉,没有查到您的保洁工作记录", null);
- } else {
- resultActivity.viewBinding.emptyView.hide();
- resultActivity.adapter = new RecordListAdapter(resultActivity, resultActivity.dataBeans);
- resultActivity.viewBinding.recordRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity));
- resultActivity.viewBinding.recordRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL));
- resultActivity.viewBinding.recordRecyclerView.setAdapter(resultActivity.adapter);
- resultActivity.adapter.setOnItemClickListener(new RecordListAdapter.OnItemClickListener() {
- @Override
- public void onClick(int position) {
- CleanRecordBean.DataBean.RowsBean rowsBean = resultActivity.dataBeans.get(position);
- Intent intent = new Intent(resultActivity, WorkerOnMapActivity.class);
- intent.putExtra("userName", rowsBean.getUserName());
- intent.putExtra("createTime", rowsBean.getCreateTime());
- intent.putExtra("toiletName", rowsBean.getToiletName());
- String dataLng = rowsBean.getLng();
- if (TextUtils.isEmpty(dataLng)) {
- ToastHelper.showToast("经度异常", ToastHelper.ERROR);
- return;
- }
- intent.putExtra("lng", Double.parseDouble(dataLng));
- String dataLat = rowsBean.getLat();
- if (TextUtils.isEmpty(dataLat)) {
- ToastHelper.showToast("纬度异常", ToastHelper.ERROR);
- return;
- }
- intent.putExtra("lat", Double.parseDouble(dataLat));
- resultActivity.startActivity(intent);
+ viewBinding.emptyView.hide();
+ adapter = new RecordListAdapter(context, dataBeans);
+ viewBinding.recordRecyclerView.setLayoutManager(new LinearLayoutManager(context));
+ viewBinding.recordRecyclerView.addItemDecoration(new DividerItemDecoration(context, DividerItemDecoration.VERTICAL));
+ viewBinding.recordRecyclerView.setAdapter(adapter);
+ adapter.setOnItemClickListener(new RecordListAdapter.OnItemClickListener() {
+ @Override
+ public void onClick(int position) {
+ CleanRecordBean.DataBean.RowsBean rowsBean = dataBeans.get(position);
+ Intent intent = new Intent(context, WorkerOnMapActivity.class);
+ intent.putExtra("userName", rowsBean.getUserName());
+ intent.putExtra("createTime", rowsBean.getCreateTime());
+ intent.putExtra("toiletName", rowsBean.getToiletName());
+ String dataLng = rowsBean.getLng();
+ if (TextUtils.isEmpty(dataLng)) {
+ ToastHelper.showToast("经度异常", ToastHelper.ERROR);
+ return;
}
- });
- }
+ intent.putExtra("lng", Double.parseDouble(dataLng));
+ String dataLat = rowsBean.getLat();
+ if (TextUtils.isEmpty(dataLat)) {
+ ToastHelper.showToast("纬度异常", ToastHelper.ERROR);
+ return;
+ }
+ intent.putExtra("lat", Double.parseDouble(dataLat));
+ startActivity(intent);
+ }
+ });
}
}
}
- }
+ return true;
+ };
@Override
protected void onDestroy() {
diff --git a/.idea/misc.xml b/.idea/misc.xml
index c4e854b..cf5266d 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -22,6 +22,7 @@
+
@@ -50,6 +51,7 @@
+
@@ -77,6 +79,7 @@
+
@@ -95,6 +98,7 @@
+
@@ -118,14 +122,14 @@
-
+
-
+
diff --git a/app/build.gradle b/app/build.gradle
index 0d88385..a89466d 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -44,10 +44,10 @@
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
- implementation 'androidx.core:core-ktx:1.6.0'
+ implementation 'androidx.core:core-ktx:1.7.0'
implementation 'androidx.appcompat:appcompat:1.4.0'
implementation 'com.google.android.material:material:1.4.0'
- implementation 'androidx.constraintlayout:constraintlayout:2.1.2'
+ implementation 'androidx.constraintlayout:constraintlayout:2.1.3'
//Google官方授权框架
implementation 'pub.devrel:easypermissions:3.0.0'
//腾讯Android UI框架
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/impl/CaseHandledListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/impl/CaseHandledListModelImpl.java
index 02c6875..37b76ac 100644
--- a/app/src/main/java/com/casic/dcms/mvp/model/impl/CaseHandledListModelImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/model/impl/CaseHandledListModelImpl.java
@@ -26,7 +26,7 @@
*/
@Override
public Subscription sendCaseHandledListRequest(int offset) {
- Observable observable = RetrofitServiceManager.getCaseHandledListResult(offset);
+ Observable observable = RetrofitServiceManager.handleCaseResult(offset);
return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
@Override
public void onCompleted() {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
index 550750c..0c77aea 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
@@ -28,7 +28,7 @@
import com.casic.dcms.mvp.view.IGetCaseNextNodeView;
import com.casic.dcms.mvp.view.IUploadFileView;
import com.casic.dcms.ui.fragment.handle.CaseHandledFragment;
-import com.casic.dcms.ui.fragment.handle.CaseTimeoutFragment;
+import com.casic.dcms.ui.fragment.handle.CaseOverTimeFragment;
import com.casic.dcms.ui.fragment.handle.CaseTodoFragment;
import com.casic.dcms.ui.fragment.handle.CaseUrgentFragment;
import com.casic.dcms.utils.Constant;
@@ -336,7 +336,7 @@
ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS);
switch (title) {
case "超时案卷":
- CaseTimeoutFragment.sendEmptyMessage(Constant.CASE_HANDLE_OK);
+ CaseOverTimeFragment.sendEmptyMessage(Constant.CASE_HANDLE_OK);
CaseHandledFragment.sendEmptyMessage(Constant.CASE_HANDLE_OK);
break;
case "紧急案卷":
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java
index 0e13b10..6b721eb 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java
@@ -1,8 +1,8 @@
package com.casic.dcms.ui;
+import android.content.Context;
import android.content.Intent;
import android.os.Handler;
-import android.os.Message;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.DividerItemDecoration;
@@ -16,16 +16,17 @@
import com.casic.dcms.mvp.view.ISearchCaseResultView;
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
public class CaseListResultActivity extends AndroidxBaseActivity implements ISearchCaseResultView {
+ private final Context context = this;
private CaseListPresenterImpl caseListPresenter;
private CaseListResultAdapter adapter;
private String typeCode;
@@ -53,7 +54,7 @@
@Override
protected void initData() {
caseListPresenter = new CaseListPresenterImpl(this);
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
eorc = getIntent().getStringExtra("eorc");
typeCode = getIntent().getStringExtra("typeCode");
typeDetailCode = getIntent().getStringExtra("typeDetailCode");
@@ -93,44 +94,33 @@
/**
* 弱应用Handler,防止内存泄漏
*/
- private static class WeakReferenceHandler extends Handler {
-
- private final WeakReference reference;
-
- private WeakReferenceHandler(CaseListResultActivity activity) {
- reference = new WeakReference<>(activity);
- }
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- CaseListResultActivity resultActivity = reference.get();
- if (msg.what == 20210425) {
- if (resultActivity.isRefresh || resultActivity.isLoadMore) {
- resultActivity.adapter.notifyDataSetChanged();
+ private final Handler.Callback callback = msg -> {
+ if (msg.what == 20210425) {
+ if (isRefresh || isLoadMore) {
+ adapter.notifyDataSetChanged();
+ } else {
+ //首次加载数据
+ if (dataBeans.size() == 0) {
+ viewBinding.emptyView.show("抱歉,没有查到符合您规定条件的案卷", null);
} else {
- //首次加载数据
- if (resultActivity.dataBeans.size() == 0) {
- resultActivity.viewBinding.emptyView.show("抱歉,没有查到符合您规定条件的案卷", null);
- } else {
- resultActivity.viewBinding.emptyView.hide();
- resultActivity.adapter = new CaseListResultAdapter(resultActivity, resultActivity.dataBeans);
- resultActivity.viewBinding.caseRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity));
- resultActivity.viewBinding.caseRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL));
- resultActivity.viewBinding.caseRecyclerView.setAdapter(resultActivity.adapter);
- resultActivity.adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() {
- @Override
- public void onClick(int position) {
- Intent intent = new Intent(resultActivity, CaseDetailActivity.class);
- intent.putExtra("id", resultActivity.dataBeans.get(position).getId());
- resultActivity.startActivity(intent);
- }
- });
- }
+ viewBinding.emptyView.hide();
+ adapter = new CaseListResultAdapter(context, dataBeans);
+ viewBinding.caseRecyclerView.setLayoutManager(new LinearLayoutManager(context));
+ viewBinding.caseRecyclerView.addItemDecoration(new DividerItemDecoration(context, DividerItemDecoration.VERTICAL));
+ viewBinding.caseRecyclerView.setAdapter(adapter);
+ adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() {
+ @Override
+ public void onClick(int position) {
+ Intent intent = new Intent(context, CaseDetailActivity.class);
+ intent.putExtra("id", dataBeans.get(position).getId());
+ startActivity(intent);
+ }
+ });
}
}
}
- }
+ return true;
+ };
@Override
public void showProgress() {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java
index 6e374cd..626720a 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java
@@ -1,6 +1,7 @@
package com.casic.dcms.ui;
import android.annotation.SuppressLint;
+import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
@@ -12,7 +13,6 @@
import android.view.MotionEvent;
import android.widget.RadioGroup;
-import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
import com.casic.dcms.R;
@@ -32,6 +32,7 @@
import com.casic.dcms.utils.ArcGisMapCreator;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.casic.dcms.widgets.AlertControlDialog;
import com.esri.arcgisruntime.concurrent.ListenableFuture;
import com.esri.arcgisruntime.data.ServiceFeatureTable;
@@ -48,7 +49,6 @@
import com.esri.arcgisruntime.symbology.PictureMarkerSymbol;
import com.esri.arcgisruntime.util.ListenableList;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -58,6 +58,7 @@
implements RadioGroup.OnCheckedChangeListener, IHandleCaseView, IVerifyCaseView, ICheckCaseView {
private static final String TAG = "CaseOnMapActivity";
+ private final Context context = this;
private HandleCasePresenterImpl handleCasePresenter;
private VerifyCasePresenterImpl caseVerifyPresenter;
private CaseCheckPresenterImpl caseCheckPresenter;
@@ -105,7 +106,7 @@
graphicsOverlays = viewBinding.mapView.getGraphicsOverlays();
//handler弱引用,防止内存泄漏
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
}
@SuppressLint("ClickableViewAccessibility")
@@ -150,48 +151,38 @@
});
}
- private static class WeakReferenceHandler extends Handler {
- private final WeakReference reference;
+ private final Handler.Callback callback = msg -> {
+ switch (msg.what) {
+ case 2021051401:
+ String caseId = (String) msg.obj;
+ new AlertControlDialog.Builder()
+ .setContext(context)
+ .setTitle("查看案卷详情")
+ .setMessage("ID:" + caseId)
+ .setNegativeButton("取消")
+ .setPositiveButton("确定")
+ .setOnDialogButtonClickListener(new AlertControlDialog.OnDialogButtonClickListener() {
+ @Override
+ public void onConfirmClick() {
+ Intent intent = new Intent(context, CaseDetailActivity.class);
+ intent.putExtra("id", caseId);
+ startActivity(intent);
+ }
- private WeakReferenceHandler(CaseOnMapActivity activity) {
- reference = new WeakReference<>(activity);
+ @Override
+ public void onCancelClick() {
+
+ }
+ }).build().show();
+ break;
+ case 2021051402:
+ ToastHelper.showToast("此附近无案卷,请重新选点", ToastHelper.WARING);
+ break;
+ default:
+ break;
}
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- CaseOnMapActivity onMapActivity = reference.get();
- switch (msg.what) {
- case 2021051401:
- String caseId = (String) msg.obj;
- new AlertControlDialog.Builder()
- .setContext(onMapActivity)
- .setTitle("查看案卷详情")
- .setMessage("ID:" + caseId)
- .setNegativeButton("取消")
- .setPositiveButton("确定")
- .setOnDialogButtonClickListener(new AlertControlDialog.OnDialogButtonClickListener() {
- @Override
- public void onConfirmClick() {
- Intent intent = new Intent(onMapActivity, CaseDetailActivity.class);
- intent.putExtra("id", caseId);
- onMapActivity.startActivity(intent);
- }
-
- @Override
- public void onCancelClick() {
-
- }
- }).build().show();
- break;
- case 2021051402:
- ToastHelper.showToast("此附近无案卷,请重新选点", ToastHelper.WARING);
- break;
- default:
- break;
- }
- }
- }
+ return true;
+ };
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java b/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java
index 5c037c4..6289181 100644
--- a/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java
@@ -3,7 +3,6 @@
import android.content.Context;
import android.content.Intent;
import android.os.Handler;
-import android.os.Message;
import android.text.TextUtils;
import android.view.View;
@@ -21,12 +20,12 @@
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.StringHelper;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.casic.dcms.widgets.datepicker.DatePopupWindow;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
@@ -53,7 +52,7 @@
@Override
protected void initData() {
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
recordPresenter = new CleanRecordPresenterImpl(this);
recordPresenter.onReadyRetrofitRequest(StringHelper.getUserBean().getId(), "", "", "", pageIndex);
}
@@ -139,59 +138,48 @@
OtherUtils.dismissLoadingDialog();
}
- private static class WeakReferenceHandler extends Handler {
-
- private final WeakReference reference;
-
- private WeakReferenceHandler(CleanResultListActivity activity) {
- reference = new WeakReference<>(activity);
- }
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- CleanResultListActivity resultActivity = reference.get();
- if (msg.what == 20210601) {
- if (resultActivity.isRefresh || resultActivity.isLoadMore) {
- resultActivity.adapter.notifyDataSetChanged();
+ private final Handler.Callback callback = msg -> {
+ if (msg.what == 20210601) {
+ if (isRefresh || isLoadMore) {
+ adapter.notifyDataSetChanged();
+ } else {
+ //首次加载数据
+ if (dataBeans.size() == 0) {
+ viewBinding.emptyView.show("抱歉,没有查到您的保洁工作记录", null);
} else {
- //首次加载数据
- if (resultActivity.dataBeans.size() == 0) {
- resultActivity.viewBinding.emptyView.show("抱歉,没有查到您的保洁工作记录", null);
- } else {
- resultActivity.viewBinding.emptyView.hide();
- resultActivity.adapter = new RecordListAdapter(resultActivity, resultActivity.dataBeans);
- resultActivity.viewBinding.recordRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity));
- resultActivity.viewBinding.recordRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL));
- resultActivity.viewBinding.recordRecyclerView.setAdapter(resultActivity.adapter);
- resultActivity.adapter.setOnItemClickListener(new RecordListAdapter.OnItemClickListener() {
- @Override
- public void onClick(int position) {
- CleanRecordBean.DataBean.RowsBean rowsBean = resultActivity.dataBeans.get(position);
- Intent intent = new Intent(resultActivity, WorkerOnMapActivity.class);
- intent.putExtra("userName", rowsBean.getUserName());
- intent.putExtra("createTime", rowsBean.getCreateTime());
- intent.putExtra("toiletName", rowsBean.getToiletName());
- String dataLng = rowsBean.getLng();
- if (TextUtils.isEmpty(dataLng)) {
- ToastHelper.showToast("经度异常", ToastHelper.ERROR);
- return;
- }
- intent.putExtra("lng", Double.parseDouble(dataLng));
- String dataLat = rowsBean.getLat();
- if (TextUtils.isEmpty(dataLat)) {
- ToastHelper.showToast("纬度异常", ToastHelper.ERROR);
- return;
- }
- intent.putExtra("lat", Double.parseDouble(dataLat));
- resultActivity.startActivity(intent);
+ viewBinding.emptyView.hide();
+ adapter = new RecordListAdapter(context, dataBeans);
+ viewBinding.recordRecyclerView.setLayoutManager(new LinearLayoutManager(context));
+ viewBinding.recordRecyclerView.addItemDecoration(new DividerItemDecoration(context, DividerItemDecoration.VERTICAL));
+ viewBinding.recordRecyclerView.setAdapter(adapter);
+ adapter.setOnItemClickListener(new RecordListAdapter.OnItemClickListener() {
+ @Override
+ public void onClick(int position) {
+ CleanRecordBean.DataBean.RowsBean rowsBean = dataBeans.get(position);
+ Intent intent = new Intent(context, WorkerOnMapActivity.class);
+ intent.putExtra("userName", rowsBean.getUserName());
+ intent.putExtra("createTime", rowsBean.getCreateTime());
+ intent.putExtra("toiletName", rowsBean.getToiletName());
+ String dataLng = rowsBean.getLng();
+ if (TextUtils.isEmpty(dataLng)) {
+ ToastHelper.showToast("经度异常", ToastHelper.ERROR);
+ return;
}
- });
- }
+ intent.putExtra("lng", Double.parseDouble(dataLng));
+ String dataLat = rowsBean.getLat();
+ if (TextUtils.isEmpty(dataLat)) {
+ ToastHelper.showToast("纬度异常", ToastHelper.ERROR);
+ return;
+ }
+ intent.putExtra("lat", Double.parseDouble(dataLat));
+ startActivity(intent);
+ }
+ });
}
}
}
- }
+ return true;
+ };
@Override
protected void onDestroy() {
diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
index 6f53e4e..4684efd 100644
--- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
@@ -50,6 +50,7 @@
import com.casic.dcms.utils.StatusBarColorUtil;
import com.casic.dcms.utils.StringHelper;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.casic.dcms.utils.callback.IHttpRequestListener;
import com.google.android.material.navigation.NavigationBarView;
import com.google.gson.Gson;
@@ -57,7 +58,6 @@
import com.igexin.sdk.PushManager;
import java.io.IOException;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
@@ -89,7 +89,7 @@
protected void initData() {
//个推初始化
PushManager.getInstance().initialize(this);
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
uploadPositionPresenter = new UploadPositionPresenterImpl(this);
registerPresenter = new PushRegisterPresenterImpl(this);
mapConfigPresenter = new GetMapConfigPresenterImpl(this);
@@ -203,59 +203,48 @@
viewBinding.mainViewPager.setAdapter(mainPageAdapter);
}
- private static class WeakReferenceHandler extends Handler {
-
- private final WeakReference reference;
-
- private WeakReferenceHandler(MainActivity activity) {
- reference = new WeakReference<>(activity);
- }
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- MainActivity mainActivity = reference.get();
- if (msg.what == Constant.PUSH_REGISTER) {
- String clientId = (String) msg.obj;
- Log.d(TAG, "注册个推Client: $clientId");
- mainActivity.registerPresenter.onReadyRetrofitRequest(clientId);
- } else if (msg.what == Constant.PUSH_CREATE_NOTIFICATION) {
- //显示小红点
- try {
- mainActivity.updateMessageNumber();
- } catch (NullPointerException e) {
- e.printStackTrace();
- }
- NoticeBean noticeBean = (NoticeBean) msg.obj;
- NotificationHelper notificationHelper = NotificationHelper.getInstance(mainActivity);
- Notification notification = notificationHelper.createDefault(
- noticeBean.getTitle(),
- noticeBean.getContent(),
- noticeBean.getCaseId(),
- CaseDetailActivity.class
- );
- notificationHelper.push(1, notification);
- } else if (msg.what == Constant.MESSAGE_NUMBER) {
- mainActivity.updateMessageNumber();
- } else if (msg.what == Constant.UPLOAD_LOCATION) {
- AMapLocation aMapLocation = (AMapLocation) msg.obj;
- try {
- double[] gcjToWgs = LocationHelper.gcjToWgs(aMapLocation.getLongitude(), aMapLocation.getLatitude());
- mainActivity.uploadPositionPresenter.onReadyRetrofitRequest(mainActivity.imei,
- String.valueOf(gcjToWgs[1]),
- String.valueOf(gcjToWgs[0]));
- } catch (NullPointerException e) {
- e.printStackTrace();
- }
- } else if (msg.what == Constant.LOGIN_OUT) {
- Log.d(TAG, "退出登录");
- //回到登录页
- SaveKeyValues.putValue("autoLogin", false);
- mainActivity.startActivity(new Intent(mainActivity, LoginActivity.class));
- mainActivity.finish();
+ private final Handler.Callback callback = msg -> {
+ if (msg.what == Constant.PUSH_REGISTER) {
+ String clientId = (String) msg.obj;
+ Log.d(TAG, "注册个推Client: $clientId");
+ registerPresenter.onReadyRetrofitRequest(clientId);
+ } else if (msg.what == Constant.PUSH_CREATE_NOTIFICATION) {
+ //显示小红点
+ try {
+ updateMessageNumber();
+ } catch (NullPointerException e) {
+ e.printStackTrace();
}
+ NoticeBean noticeBean = (NoticeBean) msg.obj;
+ NotificationHelper notificationHelper = NotificationHelper.getInstance(this);
+ Notification notification = notificationHelper.createDefault(
+ noticeBean.getTitle(),
+ noticeBean.getContent(),
+ noticeBean.getCaseId(),
+ CaseDetailActivity.class
+ );
+ notificationHelper.push(1, notification);
+ } else if (msg.what == Constant.MESSAGE_NUMBER) {
+ updateMessageNumber();
+ } else if (msg.what == Constant.UPLOAD_LOCATION) {
+ AMapLocation aMapLocation = (AMapLocation) msg.obj;
+ try {
+ double[] gcjToWgs = LocationHelper.gcjToWgs(aMapLocation.getLongitude(), aMapLocation.getLatitude());
+ uploadPositionPresenter.onReadyRetrofitRequest(imei,
+ String.valueOf(gcjToWgs[1]),
+ String.valueOf(gcjToWgs[0]));
+ } catch (NullPointerException e) {
+ e.printStackTrace();
+ }
+ } else if (msg.what == Constant.LOGIN_OUT) {
+ Log.d(TAG, "退出登录");
+ //回到登录页
+ SaveKeyValues.putValue("autoLogin", false);
+ startActivity(new Intent(this, LoginActivity.class));
+ finish();
}
- }
+ return true;
+ };
private void updateMessageNumber() {
List list = BaseApplication.getDaoSession()
diff --git a/.idea/misc.xml b/.idea/misc.xml
index c4e854b..cf5266d 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -22,6 +22,7 @@
+
@@ -50,6 +51,7 @@
+
@@ -77,6 +79,7 @@
+
@@ -95,6 +98,7 @@
+
@@ -118,14 +122,14 @@
-
+
-
+
diff --git a/app/build.gradle b/app/build.gradle
index 0d88385..a89466d 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -44,10 +44,10 @@
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
- implementation 'androidx.core:core-ktx:1.6.0'
+ implementation 'androidx.core:core-ktx:1.7.0'
implementation 'androidx.appcompat:appcompat:1.4.0'
implementation 'com.google.android.material:material:1.4.0'
- implementation 'androidx.constraintlayout:constraintlayout:2.1.2'
+ implementation 'androidx.constraintlayout:constraintlayout:2.1.3'
//Google官方授权框架
implementation 'pub.devrel:easypermissions:3.0.0'
//腾讯Android UI框架
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/impl/CaseHandledListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/impl/CaseHandledListModelImpl.java
index 02c6875..37b76ac 100644
--- a/app/src/main/java/com/casic/dcms/mvp/model/impl/CaseHandledListModelImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/model/impl/CaseHandledListModelImpl.java
@@ -26,7 +26,7 @@
*/
@Override
public Subscription sendCaseHandledListRequest(int offset) {
- Observable observable = RetrofitServiceManager.getCaseHandledListResult(offset);
+ Observable observable = RetrofitServiceManager.handleCaseResult(offset);
return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
@Override
public void onCompleted() {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
index 550750c..0c77aea 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
@@ -28,7 +28,7 @@
import com.casic.dcms.mvp.view.IGetCaseNextNodeView;
import com.casic.dcms.mvp.view.IUploadFileView;
import com.casic.dcms.ui.fragment.handle.CaseHandledFragment;
-import com.casic.dcms.ui.fragment.handle.CaseTimeoutFragment;
+import com.casic.dcms.ui.fragment.handle.CaseOverTimeFragment;
import com.casic.dcms.ui.fragment.handle.CaseTodoFragment;
import com.casic.dcms.ui.fragment.handle.CaseUrgentFragment;
import com.casic.dcms.utils.Constant;
@@ -336,7 +336,7 @@
ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS);
switch (title) {
case "超时案卷":
- CaseTimeoutFragment.sendEmptyMessage(Constant.CASE_HANDLE_OK);
+ CaseOverTimeFragment.sendEmptyMessage(Constant.CASE_HANDLE_OK);
CaseHandledFragment.sendEmptyMessage(Constant.CASE_HANDLE_OK);
break;
case "紧急案卷":
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java
index 0e13b10..6b721eb 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java
@@ -1,8 +1,8 @@
package com.casic.dcms.ui;
+import android.content.Context;
import android.content.Intent;
import android.os.Handler;
-import android.os.Message;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.DividerItemDecoration;
@@ -16,16 +16,17 @@
import com.casic.dcms.mvp.view.ISearchCaseResultView;
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
public class CaseListResultActivity extends AndroidxBaseActivity implements ISearchCaseResultView {
+ private final Context context = this;
private CaseListPresenterImpl caseListPresenter;
private CaseListResultAdapter adapter;
private String typeCode;
@@ -53,7 +54,7 @@
@Override
protected void initData() {
caseListPresenter = new CaseListPresenterImpl(this);
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
eorc = getIntent().getStringExtra("eorc");
typeCode = getIntent().getStringExtra("typeCode");
typeDetailCode = getIntent().getStringExtra("typeDetailCode");
@@ -93,44 +94,33 @@
/**
* 弱应用Handler,防止内存泄漏
*/
- private static class WeakReferenceHandler extends Handler {
-
- private final WeakReference reference;
-
- private WeakReferenceHandler(CaseListResultActivity activity) {
- reference = new WeakReference<>(activity);
- }
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- CaseListResultActivity resultActivity = reference.get();
- if (msg.what == 20210425) {
- if (resultActivity.isRefresh || resultActivity.isLoadMore) {
- resultActivity.adapter.notifyDataSetChanged();
+ private final Handler.Callback callback = msg -> {
+ if (msg.what == 20210425) {
+ if (isRefresh || isLoadMore) {
+ adapter.notifyDataSetChanged();
+ } else {
+ //首次加载数据
+ if (dataBeans.size() == 0) {
+ viewBinding.emptyView.show("抱歉,没有查到符合您规定条件的案卷", null);
} else {
- //首次加载数据
- if (resultActivity.dataBeans.size() == 0) {
- resultActivity.viewBinding.emptyView.show("抱歉,没有查到符合您规定条件的案卷", null);
- } else {
- resultActivity.viewBinding.emptyView.hide();
- resultActivity.adapter = new CaseListResultAdapter(resultActivity, resultActivity.dataBeans);
- resultActivity.viewBinding.caseRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity));
- resultActivity.viewBinding.caseRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL));
- resultActivity.viewBinding.caseRecyclerView.setAdapter(resultActivity.adapter);
- resultActivity.adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() {
- @Override
- public void onClick(int position) {
- Intent intent = new Intent(resultActivity, CaseDetailActivity.class);
- intent.putExtra("id", resultActivity.dataBeans.get(position).getId());
- resultActivity.startActivity(intent);
- }
- });
- }
+ viewBinding.emptyView.hide();
+ adapter = new CaseListResultAdapter(context, dataBeans);
+ viewBinding.caseRecyclerView.setLayoutManager(new LinearLayoutManager(context));
+ viewBinding.caseRecyclerView.addItemDecoration(new DividerItemDecoration(context, DividerItemDecoration.VERTICAL));
+ viewBinding.caseRecyclerView.setAdapter(adapter);
+ adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() {
+ @Override
+ public void onClick(int position) {
+ Intent intent = new Intent(context, CaseDetailActivity.class);
+ intent.putExtra("id", dataBeans.get(position).getId());
+ startActivity(intent);
+ }
+ });
}
}
}
- }
+ return true;
+ };
@Override
public void showProgress() {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java
index 6e374cd..626720a 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java
@@ -1,6 +1,7 @@
package com.casic.dcms.ui;
import android.annotation.SuppressLint;
+import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
@@ -12,7 +13,6 @@
import android.view.MotionEvent;
import android.widget.RadioGroup;
-import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
import com.casic.dcms.R;
@@ -32,6 +32,7 @@
import com.casic.dcms.utils.ArcGisMapCreator;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.casic.dcms.widgets.AlertControlDialog;
import com.esri.arcgisruntime.concurrent.ListenableFuture;
import com.esri.arcgisruntime.data.ServiceFeatureTable;
@@ -48,7 +49,6 @@
import com.esri.arcgisruntime.symbology.PictureMarkerSymbol;
import com.esri.arcgisruntime.util.ListenableList;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -58,6 +58,7 @@
implements RadioGroup.OnCheckedChangeListener, IHandleCaseView, IVerifyCaseView, ICheckCaseView {
private static final String TAG = "CaseOnMapActivity";
+ private final Context context = this;
private HandleCasePresenterImpl handleCasePresenter;
private VerifyCasePresenterImpl caseVerifyPresenter;
private CaseCheckPresenterImpl caseCheckPresenter;
@@ -105,7 +106,7 @@
graphicsOverlays = viewBinding.mapView.getGraphicsOverlays();
//handler弱引用,防止内存泄漏
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
}
@SuppressLint("ClickableViewAccessibility")
@@ -150,48 +151,38 @@
});
}
- private static class WeakReferenceHandler extends Handler {
- private final WeakReference reference;
+ private final Handler.Callback callback = msg -> {
+ switch (msg.what) {
+ case 2021051401:
+ String caseId = (String) msg.obj;
+ new AlertControlDialog.Builder()
+ .setContext(context)
+ .setTitle("查看案卷详情")
+ .setMessage("ID:" + caseId)
+ .setNegativeButton("取消")
+ .setPositiveButton("确定")
+ .setOnDialogButtonClickListener(new AlertControlDialog.OnDialogButtonClickListener() {
+ @Override
+ public void onConfirmClick() {
+ Intent intent = new Intent(context, CaseDetailActivity.class);
+ intent.putExtra("id", caseId);
+ startActivity(intent);
+ }
- private WeakReferenceHandler(CaseOnMapActivity activity) {
- reference = new WeakReference<>(activity);
+ @Override
+ public void onCancelClick() {
+
+ }
+ }).build().show();
+ break;
+ case 2021051402:
+ ToastHelper.showToast("此附近无案卷,请重新选点", ToastHelper.WARING);
+ break;
+ default:
+ break;
}
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- CaseOnMapActivity onMapActivity = reference.get();
- switch (msg.what) {
- case 2021051401:
- String caseId = (String) msg.obj;
- new AlertControlDialog.Builder()
- .setContext(onMapActivity)
- .setTitle("查看案卷详情")
- .setMessage("ID:" + caseId)
- .setNegativeButton("取消")
- .setPositiveButton("确定")
- .setOnDialogButtonClickListener(new AlertControlDialog.OnDialogButtonClickListener() {
- @Override
- public void onConfirmClick() {
- Intent intent = new Intent(onMapActivity, CaseDetailActivity.class);
- intent.putExtra("id", caseId);
- onMapActivity.startActivity(intent);
- }
-
- @Override
- public void onCancelClick() {
-
- }
- }).build().show();
- break;
- case 2021051402:
- ToastHelper.showToast("此附近无案卷,请重新选点", ToastHelper.WARING);
- break;
- default:
- break;
- }
- }
- }
+ return true;
+ };
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java b/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java
index 5c037c4..6289181 100644
--- a/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java
@@ -3,7 +3,6 @@
import android.content.Context;
import android.content.Intent;
import android.os.Handler;
-import android.os.Message;
import android.text.TextUtils;
import android.view.View;
@@ -21,12 +20,12 @@
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.StringHelper;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.casic.dcms.widgets.datepicker.DatePopupWindow;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
@@ -53,7 +52,7 @@
@Override
protected void initData() {
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
recordPresenter = new CleanRecordPresenterImpl(this);
recordPresenter.onReadyRetrofitRequest(StringHelper.getUserBean().getId(), "", "", "", pageIndex);
}
@@ -139,59 +138,48 @@
OtherUtils.dismissLoadingDialog();
}
- private static class WeakReferenceHandler extends Handler {
-
- private final WeakReference reference;
-
- private WeakReferenceHandler(CleanResultListActivity activity) {
- reference = new WeakReference<>(activity);
- }
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- CleanResultListActivity resultActivity = reference.get();
- if (msg.what == 20210601) {
- if (resultActivity.isRefresh || resultActivity.isLoadMore) {
- resultActivity.adapter.notifyDataSetChanged();
+ private final Handler.Callback callback = msg -> {
+ if (msg.what == 20210601) {
+ if (isRefresh || isLoadMore) {
+ adapter.notifyDataSetChanged();
+ } else {
+ //首次加载数据
+ if (dataBeans.size() == 0) {
+ viewBinding.emptyView.show("抱歉,没有查到您的保洁工作记录", null);
} else {
- //首次加载数据
- if (resultActivity.dataBeans.size() == 0) {
- resultActivity.viewBinding.emptyView.show("抱歉,没有查到您的保洁工作记录", null);
- } else {
- resultActivity.viewBinding.emptyView.hide();
- resultActivity.adapter = new RecordListAdapter(resultActivity, resultActivity.dataBeans);
- resultActivity.viewBinding.recordRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity));
- resultActivity.viewBinding.recordRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL));
- resultActivity.viewBinding.recordRecyclerView.setAdapter(resultActivity.adapter);
- resultActivity.adapter.setOnItemClickListener(new RecordListAdapter.OnItemClickListener() {
- @Override
- public void onClick(int position) {
- CleanRecordBean.DataBean.RowsBean rowsBean = resultActivity.dataBeans.get(position);
- Intent intent = new Intent(resultActivity, WorkerOnMapActivity.class);
- intent.putExtra("userName", rowsBean.getUserName());
- intent.putExtra("createTime", rowsBean.getCreateTime());
- intent.putExtra("toiletName", rowsBean.getToiletName());
- String dataLng = rowsBean.getLng();
- if (TextUtils.isEmpty(dataLng)) {
- ToastHelper.showToast("经度异常", ToastHelper.ERROR);
- return;
- }
- intent.putExtra("lng", Double.parseDouble(dataLng));
- String dataLat = rowsBean.getLat();
- if (TextUtils.isEmpty(dataLat)) {
- ToastHelper.showToast("纬度异常", ToastHelper.ERROR);
- return;
- }
- intent.putExtra("lat", Double.parseDouble(dataLat));
- resultActivity.startActivity(intent);
+ viewBinding.emptyView.hide();
+ adapter = new RecordListAdapter(context, dataBeans);
+ viewBinding.recordRecyclerView.setLayoutManager(new LinearLayoutManager(context));
+ viewBinding.recordRecyclerView.addItemDecoration(new DividerItemDecoration(context, DividerItemDecoration.VERTICAL));
+ viewBinding.recordRecyclerView.setAdapter(adapter);
+ adapter.setOnItemClickListener(new RecordListAdapter.OnItemClickListener() {
+ @Override
+ public void onClick(int position) {
+ CleanRecordBean.DataBean.RowsBean rowsBean = dataBeans.get(position);
+ Intent intent = new Intent(context, WorkerOnMapActivity.class);
+ intent.putExtra("userName", rowsBean.getUserName());
+ intent.putExtra("createTime", rowsBean.getCreateTime());
+ intent.putExtra("toiletName", rowsBean.getToiletName());
+ String dataLng = rowsBean.getLng();
+ if (TextUtils.isEmpty(dataLng)) {
+ ToastHelper.showToast("经度异常", ToastHelper.ERROR);
+ return;
}
- });
- }
+ intent.putExtra("lng", Double.parseDouble(dataLng));
+ String dataLat = rowsBean.getLat();
+ if (TextUtils.isEmpty(dataLat)) {
+ ToastHelper.showToast("纬度异常", ToastHelper.ERROR);
+ return;
+ }
+ intent.putExtra("lat", Double.parseDouble(dataLat));
+ startActivity(intent);
+ }
+ });
}
}
}
- }
+ return true;
+ };
@Override
protected void onDestroy() {
diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
index 6f53e4e..4684efd 100644
--- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
@@ -50,6 +50,7 @@
import com.casic.dcms.utils.StatusBarColorUtil;
import com.casic.dcms.utils.StringHelper;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.casic.dcms.utils.callback.IHttpRequestListener;
import com.google.android.material.navigation.NavigationBarView;
import com.google.gson.Gson;
@@ -57,7 +58,6 @@
import com.igexin.sdk.PushManager;
import java.io.IOException;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
@@ -89,7 +89,7 @@
protected void initData() {
//个推初始化
PushManager.getInstance().initialize(this);
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
uploadPositionPresenter = new UploadPositionPresenterImpl(this);
registerPresenter = new PushRegisterPresenterImpl(this);
mapConfigPresenter = new GetMapConfigPresenterImpl(this);
@@ -203,59 +203,48 @@
viewBinding.mainViewPager.setAdapter(mainPageAdapter);
}
- private static class WeakReferenceHandler extends Handler {
-
- private final WeakReference reference;
-
- private WeakReferenceHandler(MainActivity activity) {
- reference = new WeakReference<>(activity);
- }
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- MainActivity mainActivity = reference.get();
- if (msg.what == Constant.PUSH_REGISTER) {
- String clientId = (String) msg.obj;
- Log.d(TAG, "注册个推Client: $clientId");
- mainActivity.registerPresenter.onReadyRetrofitRequest(clientId);
- } else if (msg.what == Constant.PUSH_CREATE_NOTIFICATION) {
- //显示小红点
- try {
- mainActivity.updateMessageNumber();
- } catch (NullPointerException e) {
- e.printStackTrace();
- }
- NoticeBean noticeBean = (NoticeBean) msg.obj;
- NotificationHelper notificationHelper = NotificationHelper.getInstance(mainActivity);
- Notification notification = notificationHelper.createDefault(
- noticeBean.getTitle(),
- noticeBean.getContent(),
- noticeBean.getCaseId(),
- CaseDetailActivity.class
- );
- notificationHelper.push(1, notification);
- } else if (msg.what == Constant.MESSAGE_NUMBER) {
- mainActivity.updateMessageNumber();
- } else if (msg.what == Constant.UPLOAD_LOCATION) {
- AMapLocation aMapLocation = (AMapLocation) msg.obj;
- try {
- double[] gcjToWgs = LocationHelper.gcjToWgs(aMapLocation.getLongitude(), aMapLocation.getLatitude());
- mainActivity.uploadPositionPresenter.onReadyRetrofitRequest(mainActivity.imei,
- String.valueOf(gcjToWgs[1]),
- String.valueOf(gcjToWgs[0]));
- } catch (NullPointerException e) {
- e.printStackTrace();
- }
- } else if (msg.what == Constant.LOGIN_OUT) {
- Log.d(TAG, "退出登录");
- //回到登录页
- SaveKeyValues.putValue("autoLogin", false);
- mainActivity.startActivity(new Intent(mainActivity, LoginActivity.class));
- mainActivity.finish();
+ private final Handler.Callback callback = msg -> {
+ if (msg.what == Constant.PUSH_REGISTER) {
+ String clientId = (String) msg.obj;
+ Log.d(TAG, "注册个推Client: $clientId");
+ registerPresenter.onReadyRetrofitRequest(clientId);
+ } else if (msg.what == Constant.PUSH_CREATE_NOTIFICATION) {
+ //显示小红点
+ try {
+ updateMessageNumber();
+ } catch (NullPointerException e) {
+ e.printStackTrace();
}
+ NoticeBean noticeBean = (NoticeBean) msg.obj;
+ NotificationHelper notificationHelper = NotificationHelper.getInstance(this);
+ Notification notification = notificationHelper.createDefault(
+ noticeBean.getTitle(),
+ noticeBean.getContent(),
+ noticeBean.getCaseId(),
+ CaseDetailActivity.class
+ );
+ notificationHelper.push(1, notification);
+ } else if (msg.what == Constant.MESSAGE_NUMBER) {
+ updateMessageNumber();
+ } else if (msg.what == Constant.UPLOAD_LOCATION) {
+ AMapLocation aMapLocation = (AMapLocation) msg.obj;
+ try {
+ double[] gcjToWgs = LocationHelper.gcjToWgs(aMapLocation.getLongitude(), aMapLocation.getLatitude());
+ uploadPositionPresenter.onReadyRetrofitRequest(imei,
+ String.valueOf(gcjToWgs[1]),
+ String.valueOf(gcjToWgs[0]));
+ } catch (NullPointerException e) {
+ e.printStackTrace();
+ }
+ } else if (msg.what == Constant.LOGIN_OUT) {
+ Log.d(TAG, "退出登录");
+ //回到登录页
+ SaveKeyValues.putValue("autoLogin", false);
+ startActivity(new Intent(this, LoginActivity.class));
+ finish();
}
- }
+ return true;
+ };
private void updateMessageNumber() {
List list = BaseApplication.getDaoSession()
diff --git a/app/src/main/java/com/casic/dcms/ui/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/ui/MaintainRecordActivity.java
index e587dd7..ef03adb 100644
--- a/app/src/main/java/com/casic/dcms/ui/MaintainRecordActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/MaintainRecordActivity.java
@@ -1,7 +1,6 @@
package com.casic.dcms.ui;
import android.os.Handler;
-import android.os.Message;
import android.view.View;
import androidx.annotation.NonNull;
@@ -17,12 +16,12 @@
import com.casic.dcms.utils.CalendarUtil;
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.casic.dcms.widgets.datepicker.DatePopupWindow;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
@@ -48,7 +47,7 @@
@Override
protected void initData() {
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
recordPresenter = new MaintainRecordPresenterImpl(this);
recordPresenter.onReadyRetrofitRequest("", "", pageIndex);
}
@@ -128,37 +127,25 @@
OtherUtils.dismissLoadingDialog();
}
- private static class WeakReferenceHandler extends Handler {
-
- private final WeakReference reference;
-
- private WeakReferenceHandler(MaintainRecordActivity activity) {
- reference = new WeakReference<>(activity);
- }
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- MaintainRecordActivity resultActivity = reference.get();
- if (msg.what == 20210622) {
- if (resultActivity.isRefresh || resultActivity.isLoadMore) {
- resultActivity.adapter.notifyDataSetChanged();
+ private final Handler.Callback callback = msg -> {
+ if (msg.what == 20210622) {
+ if (isRefresh || isLoadMore) {
+ adapter.notifyDataSetChanged();
+ } else {
+ //首次加载数据
+ if (dataBeans.size() == 0) {
+ viewBinding.emptyView.show("抱歉,没有查到相关养护记录", null);
} else {
- //首次加载数据
- if (resultActivity.dataBeans.size() == 0) {
- resultActivity.viewBinding.emptyView.show("抱歉,没有查到相关养护记录", null);
- } else {
- resultActivity.viewBinding.emptyView.hide();
- resultActivity.adapter = new MaintainRecordAdapter(resultActivity, resultActivity.dataBeans);
- resultActivity.viewBinding.recordRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity));
- resultActivity.viewBinding.recordRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL));
- resultActivity.viewBinding.recordRecyclerView.setAdapter(resultActivity.adapter);
- }
+ viewBinding.emptyView.hide();
+ adapter = new MaintainRecordAdapter(this, dataBeans);
+ viewBinding.recordRecyclerView.setLayoutManager(new LinearLayoutManager(this));
+ viewBinding.recordRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL));
+ viewBinding.recordRecyclerView.setAdapter(adapter);
}
}
}
-
- }
+ return true;
+ };
@Override
protected void onDestroy() {
diff --git a/.idea/misc.xml b/.idea/misc.xml
index c4e854b..cf5266d 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -22,6 +22,7 @@
+
@@ -50,6 +51,7 @@
+
@@ -77,6 +79,7 @@
+
@@ -95,6 +98,7 @@
+
@@ -118,14 +122,14 @@
-
+
-
+
diff --git a/app/build.gradle b/app/build.gradle
index 0d88385..a89466d 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -44,10 +44,10 @@
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
- implementation 'androidx.core:core-ktx:1.6.0'
+ implementation 'androidx.core:core-ktx:1.7.0'
implementation 'androidx.appcompat:appcompat:1.4.0'
implementation 'com.google.android.material:material:1.4.0'
- implementation 'androidx.constraintlayout:constraintlayout:2.1.2'
+ implementation 'androidx.constraintlayout:constraintlayout:2.1.3'
//Google官方授权框架
implementation 'pub.devrel:easypermissions:3.0.0'
//腾讯Android UI框架
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/impl/CaseHandledListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/impl/CaseHandledListModelImpl.java
index 02c6875..37b76ac 100644
--- a/app/src/main/java/com/casic/dcms/mvp/model/impl/CaseHandledListModelImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/model/impl/CaseHandledListModelImpl.java
@@ -26,7 +26,7 @@
*/
@Override
public Subscription sendCaseHandledListRequest(int offset) {
- Observable observable = RetrofitServiceManager.getCaseHandledListResult(offset);
+ Observable observable = RetrofitServiceManager.handleCaseResult(offset);
return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
@Override
public void onCompleted() {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
index 550750c..0c77aea 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
@@ -28,7 +28,7 @@
import com.casic.dcms.mvp.view.IGetCaseNextNodeView;
import com.casic.dcms.mvp.view.IUploadFileView;
import com.casic.dcms.ui.fragment.handle.CaseHandledFragment;
-import com.casic.dcms.ui.fragment.handle.CaseTimeoutFragment;
+import com.casic.dcms.ui.fragment.handle.CaseOverTimeFragment;
import com.casic.dcms.ui.fragment.handle.CaseTodoFragment;
import com.casic.dcms.ui.fragment.handle.CaseUrgentFragment;
import com.casic.dcms.utils.Constant;
@@ -336,7 +336,7 @@
ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS);
switch (title) {
case "超时案卷":
- CaseTimeoutFragment.sendEmptyMessage(Constant.CASE_HANDLE_OK);
+ CaseOverTimeFragment.sendEmptyMessage(Constant.CASE_HANDLE_OK);
CaseHandledFragment.sendEmptyMessage(Constant.CASE_HANDLE_OK);
break;
case "紧急案卷":
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java
index 0e13b10..6b721eb 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java
@@ -1,8 +1,8 @@
package com.casic.dcms.ui;
+import android.content.Context;
import android.content.Intent;
import android.os.Handler;
-import android.os.Message;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.DividerItemDecoration;
@@ -16,16 +16,17 @@
import com.casic.dcms.mvp.view.ISearchCaseResultView;
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
public class CaseListResultActivity extends AndroidxBaseActivity implements ISearchCaseResultView {
+ private final Context context = this;
private CaseListPresenterImpl caseListPresenter;
private CaseListResultAdapter adapter;
private String typeCode;
@@ -53,7 +54,7 @@
@Override
protected void initData() {
caseListPresenter = new CaseListPresenterImpl(this);
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
eorc = getIntent().getStringExtra("eorc");
typeCode = getIntent().getStringExtra("typeCode");
typeDetailCode = getIntent().getStringExtra("typeDetailCode");
@@ -93,44 +94,33 @@
/**
* 弱应用Handler,防止内存泄漏
*/
- private static class WeakReferenceHandler extends Handler {
-
- private final WeakReference reference;
-
- private WeakReferenceHandler(CaseListResultActivity activity) {
- reference = new WeakReference<>(activity);
- }
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- CaseListResultActivity resultActivity = reference.get();
- if (msg.what == 20210425) {
- if (resultActivity.isRefresh || resultActivity.isLoadMore) {
- resultActivity.adapter.notifyDataSetChanged();
+ private final Handler.Callback callback = msg -> {
+ if (msg.what == 20210425) {
+ if (isRefresh || isLoadMore) {
+ adapter.notifyDataSetChanged();
+ } else {
+ //首次加载数据
+ if (dataBeans.size() == 0) {
+ viewBinding.emptyView.show("抱歉,没有查到符合您规定条件的案卷", null);
} else {
- //首次加载数据
- if (resultActivity.dataBeans.size() == 0) {
- resultActivity.viewBinding.emptyView.show("抱歉,没有查到符合您规定条件的案卷", null);
- } else {
- resultActivity.viewBinding.emptyView.hide();
- resultActivity.adapter = new CaseListResultAdapter(resultActivity, resultActivity.dataBeans);
- resultActivity.viewBinding.caseRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity));
- resultActivity.viewBinding.caseRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL));
- resultActivity.viewBinding.caseRecyclerView.setAdapter(resultActivity.adapter);
- resultActivity.adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() {
- @Override
- public void onClick(int position) {
- Intent intent = new Intent(resultActivity, CaseDetailActivity.class);
- intent.putExtra("id", resultActivity.dataBeans.get(position).getId());
- resultActivity.startActivity(intent);
- }
- });
- }
+ viewBinding.emptyView.hide();
+ adapter = new CaseListResultAdapter(context, dataBeans);
+ viewBinding.caseRecyclerView.setLayoutManager(new LinearLayoutManager(context));
+ viewBinding.caseRecyclerView.addItemDecoration(new DividerItemDecoration(context, DividerItemDecoration.VERTICAL));
+ viewBinding.caseRecyclerView.setAdapter(adapter);
+ adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() {
+ @Override
+ public void onClick(int position) {
+ Intent intent = new Intent(context, CaseDetailActivity.class);
+ intent.putExtra("id", dataBeans.get(position).getId());
+ startActivity(intent);
+ }
+ });
}
}
}
- }
+ return true;
+ };
@Override
public void showProgress() {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java
index 6e374cd..626720a 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java
@@ -1,6 +1,7 @@
package com.casic.dcms.ui;
import android.annotation.SuppressLint;
+import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
@@ -12,7 +13,6 @@
import android.view.MotionEvent;
import android.widget.RadioGroup;
-import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
import com.casic.dcms.R;
@@ -32,6 +32,7 @@
import com.casic.dcms.utils.ArcGisMapCreator;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.casic.dcms.widgets.AlertControlDialog;
import com.esri.arcgisruntime.concurrent.ListenableFuture;
import com.esri.arcgisruntime.data.ServiceFeatureTable;
@@ -48,7 +49,6 @@
import com.esri.arcgisruntime.symbology.PictureMarkerSymbol;
import com.esri.arcgisruntime.util.ListenableList;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -58,6 +58,7 @@
implements RadioGroup.OnCheckedChangeListener, IHandleCaseView, IVerifyCaseView, ICheckCaseView {
private static final String TAG = "CaseOnMapActivity";
+ private final Context context = this;
private HandleCasePresenterImpl handleCasePresenter;
private VerifyCasePresenterImpl caseVerifyPresenter;
private CaseCheckPresenterImpl caseCheckPresenter;
@@ -105,7 +106,7 @@
graphicsOverlays = viewBinding.mapView.getGraphicsOverlays();
//handler弱引用,防止内存泄漏
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
}
@SuppressLint("ClickableViewAccessibility")
@@ -150,48 +151,38 @@
});
}
- private static class WeakReferenceHandler extends Handler {
- private final WeakReference reference;
+ private final Handler.Callback callback = msg -> {
+ switch (msg.what) {
+ case 2021051401:
+ String caseId = (String) msg.obj;
+ new AlertControlDialog.Builder()
+ .setContext(context)
+ .setTitle("查看案卷详情")
+ .setMessage("ID:" + caseId)
+ .setNegativeButton("取消")
+ .setPositiveButton("确定")
+ .setOnDialogButtonClickListener(new AlertControlDialog.OnDialogButtonClickListener() {
+ @Override
+ public void onConfirmClick() {
+ Intent intent = new Intent(context, CaseDetailActivity.class);
+ intent.putExtra("id", caseId);
+ startActivity(intent);
+ }
- private WeakReferenceHandler(CaseOnMapActivity activity) {
- reference = new WeakReference<>(activity);
+ @Override
+ public void onCancelClick() {
+
+ }
+ }).build().show();
+ break;
+ case 2021051402:
+ ToastHelper.showToast("此附近无案卷,请重新选点", ToastHelper.WARING);
+ break;
+ default:
+ break;
}
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- CaseOnMapActivity onMapActivity = reference.get();
- switch (msg.what) {
- case 2021051401:
- String caseId = (String) msg.obj;
- new AlertControlDialog.Builder()
- .setContext(onMapActivity)
- .setTitle("查看案卷详情")
- .setMessage("ID:" + caseId)
- .setNegativeButton("取消")
- .setPositiveButton("确定")
- .setOnDialogButtonClickListener(new AlertControlDialog.OnDialogButtonClickListener() {
- @Override
- public void onConfirmClick() {
- Intent intent = new Intent(onMapActivity, CaseDetailActivity.class);
- intent.putExtra("id", caseId);
- onMapActivity.startActivity(intent);
- }
-
- @Override
- public void onCancelClick() {
-
- }
- }).build().show();
- break;
- case 2021051402:
- ToastHelper.showToast("此附近无案卷,请重新选点", ToastHelper.WARING);
- break;
- default:
- break;
- }
- }
- }
+ return true;
+ };
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java b/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java
index 5c037c4..6289181 100644
--- a/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java
@@ -3,7 +3,6 @@
import android.content.Context;
import android.content.Intent;
import android.os.Handler;
-import android.os.Message;
import android.text.TextUtils;
import android.view.View;
@@ -21,12 +20,12 @@
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.StringHelper;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.casic.dcms.widgets.datepicker.DatePopupWindow;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
@@ -53,7 +52,7 @@
@Override
protected void initData() {
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
recordPresenter = new CleanRecordPresenterImpl(this);
recordPresenter.onReadyRetrofitRequest(StringHelper.getUserBean().getId(), "", "", "", pageIndex);
}
@@ -139,59 +138,48 @@
OtherUtils.dismissLoadingDialog();
}
- private static class WeakReferenceHandler extends Handler {
-
- private final WeakReference reference;
-
- private WeakReferenceHandler(CleanResultListActivity activity) {
- reference = new WeakReference<>(activity);
- }
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- CleanResultListActivity resultActivity = reference.get();
- if (msg.what == 20210601) {
- if (resultActivity.isRefresh || resultActivity.isLoadMore) {
- resultActivity.adapter.notifyDataSetChanged();
+ private final Handler.Callback callback = msg -> {
+ if (msg.what == 20210601) {
+ if (isRefresh || isLoadMore) {
+ adapter.notifyDataSetChanged();
+ } else {
+ //首次加载数据
+ if (dataBeans.size() == 0) {
+ viewBinding.emptyView.show("抱歉,没有查到您的保洁工作记录", null);
} else {
- //首次加载数据
- if (resultActivity.dataBeans.size() == 0) {
- resultActivity.viewBinding.emptyView.show("抱歉,没有查到您的保洁工作记录", null);
- } else {
- resultActivity.viewBinding.emptyView.hide();
- resultActivity.adapter = new RecordListAdapter(resultActivity, resultActivity.dataBeans);
- resultActivity.viewBinding.recordRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity));
- resultActivity.viewBinding.recordRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL));
- resultActivity.viewBinding.recordRecyclerView.setAdapter(resultActivity.adapter);
- resultActivity.adapter.setOnItemClickListener(new RecordListAdapter.OnItemClickListener() {
- @Override
- public void onClick(int position) {
- CleanRecordBean.DataBean.RowsBean rowsBean = resultActivity.dataBeans.get(position);
- Intent intent = new Intent(resultActivity, WorkerOnMapActivity.class);
- intent.putExtra("userName", rowsBean.getUserName());
- intent.putExtra("createTime", rowsBean.getCreateTime());
- intent.putExtra("toiletName", rowsBean.getToiletName());
- String dataLng = rowsBean.getLng();
- if (TextUtils.isEmpty(dataLng)) {
- ToastHelper.showToast("经度异常", ToastHelper.ERROR);
- return;
- }
- intent.putExtra("lng", Double.parseDouble(dataLng));
- String dataLat = rowsBean.getLat();
- if (TextUtils.isEmpty(dataLat)) {
- ToastHelper.showToast("纬度异常", ToastHelper.ERROR);
- return;
- }
- intent.putExtra("lat", Double.parseDouble(dataLat));
- resultActivity.startActivity(intent);
+ viewBinding.emptyView.hide();
+ adapter = new RecordListAdapter(context, dataBeans);
+ viewBinding.recordRecyclerView.setLayoutManager(new LinearLayoutManager(context));
+ viewBinding.recordRecyclerView.addItemDecoration(new DividerItemDecoration(context, DividerItemDecoration.VERTICAL));
+ viewBinding.recordRecyclerView.setAdapter(adapter);
+ adapter.setOnItemClickListener(new RecordListAdapter.OnItemClickListener() {
+ @Override
+ public void onClick(int position) {
+ CleanRecordBean.DataBean.RowsBean rowsBean = dataBeans.get(position);
+ Intent intent = new Intent(context, WorkerOnMapActivity.class);
+ intent.putExtra("userName", rowsBean.getUserName());
+ intent.putExtra("createTime", rowsBean.getCreateTime());
+ intent.putExtra("toiletName", rowsBean.getToiletName());
+ String dataLng = rowsBean.getLng();
+ if (TextUtils.isEmpty(dataLng)) {
+ ToastHelper.showToast("经度异常", ToastHelper.ERROR);
+ return;
}
- });
- }
+ intent.putExtra("lng", Double.parseDouble(dataLng));
+ String dataLat = rowsBean.getLat();
+ if (TextUtils.isEmpty(dataLat)) {
+ ToastHelper.showToast("纬度异常", ToastHelper.ERROR);
+ return;
+ }
+ intent.putExtra("lat", Double.parseDouble(dataLat));
+ startActivity(intent);
+ }
+ });
}
}
}
- }
+ return true;
+ };
@Override
protected void onDestroy() {
diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
index 6f53e4e..4684efd 100644
--- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
@@ -50,6 +50,7 @@
import com.casic.dcms.utils.StatusBarColorUtil;
import com.casic.dcms.utils.StringHelper;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.casic.dcms.utils.callback.IHttpRequestListener;
import com.google.android.material.navigation.NavigationBarView;
import com.google.gson.Gson;
@@ -57,7 +58,6 @@
import com.igexin.sdk.PushManager;
import java.io.IOException;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
@@ -89,7 +89,7 @@
protected void initData() {
//个推初始化
PushManager.getInstance().initialize(this);
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
uploadPositionPresenter = new UploadPositionPresenterImpl(this);
registerPresenter = new PushRegisterPresenterImpl(this);
mapConfigPresenter = new GetMapConfigPresenterImpl(this);
@@ -203,59 +203,48 @@
viewBinding.mainViewPager.setAdapter(mainPageAdapter);
}
- private static class WeakReferenceHandler extends Handler {
-
- private final WeakReference reference;
-
- private WeakReferenceHandler(MainActivity activity) {
- reference = new WeakReference<>(activity);
- }
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- MainActivity mainActivity = reference.get();
- if (msg.what == Constant.PUSH_REGISTER) {
- String clientId = (String) msg.obj;
- Log.d(TAG, "注册个推Client: $clientId");
- mainActivity.registerPresenter.onReadyRetrofitRequest(clientId);
- } else if (msg.what == Constant.PUSH_CREATE_NOTIFICATION) {
- //显示小红点
- try {
- mainActivity.updateMessageNumber();
- } catch (NullPointerException e) {
- e.printStackTrace();
- }
- NoticeBean noticeBean = (NoticeBean) msg.obj;
- NotificationHelper notificationHelper = NotificationHelper.getInstance(mainActivity);
- Notification notification = notificationHelper.createDefault(
- noticeBean.getTitle(),
- noticeBean.getContent(),
- noticeBean.getCaseId(),
- CaseDetailActivity.class
- );
- notificationHelper.push(1, notification);
- } else if (msg.what == Constant.MESSAGE_NUMBER) {
- mainActivity.updateMessageNumber();
- } else if (msg.what == Constant.UPLOAD_LOCATION) {
- AMapLocation aMapLocation = (AMapLocation) msg.obj;
- try {
- double[] gcjToWgs = LocationHelper.gcjToWgs(aMapLocation.getLongitude(), aMapLocation.getLatitude());
- mainActivity.uploadPositionPresenter.onReadyRetrofitRequest(mainActivity.imei,
- String.valueOf(gcjToWgs[1]),
- String.valueOf(gcjToWgs[0]));
- } catch (NullPointerException e) {
- e.printStackTrace();
- }
- } else if (msg.what == Constant.LOGIN_OUT) {
- Log.d(TAG, "退出登录");
- //回到登录页
- SaveKeyValues.putValue("autoLogin", false);
- mainActivity.startActivity(new Intent(mainActivity, LoginActivity.class));
- mainActivity.finish();
+ private final Handler.Callback callback = msg -> {
+ if (msg.what == Constant.PUSH_REGISTER) {
+ String clientId = (String) msg.obj;
+ Log.d(TAG, "注册个推Client: $clientId");
+ registerPresenter.onReadyRetrofitRequest(clientId);
+ } else if (msg.what == Constant.PUSH_CREATE_NOTIFICATION) {
+ //显示小红点
+ try {
+ updateMessageNumber();
+ } catch (NullPointerException e) {
+ e.printStackTrace();
}
+ NoticeBean noticeBean = (NoticeBean) msg.obj;
+ NotificationHelper notificationHelper = NotificationHelper.getInstance(this);
+ Notification notification = notificationHelper.createDefault(
+ noticeBean.getTitle(),
+ noticeBean.getContent(),
+ noticeBean.getCaseId(),
+ CaseDetailActivity.class
+ );
+ notificationHelper.push(1, notification);
+ } else if (msg.what == Constant.MESSAGE_NUMBER) {
+ updateMessageNumber();
+ } else if (msg.what == Constant.UPLOAD_LOCATION) {
+ AMapLocation aMapLocation = (AMapLocation) msg.obj;
+ try {
+ double[] gcjToWgs = LocationHelper.gcjToWgs(aMapLocation.getLongitude(), aMapLocation.getLatitude());
+ uploadPositionPresenter.onReadyRetrofitRequest(imei,
+ String.valueOf(gcjToWgs[1]),
+ String.valueOf(gcjToWgs[0]));
+ } catch (NullPointerException e) {
+ e.printStackTrace();
+ }
+ } else if (msg.what == Constant.LOGIN_OUT) {
+ Log.d(TAG, "退出登录");
+ //回到登录页
+ SaveKeyValues.putValue("autoLogin", false);
+ startActivity(new Intent(this, LoginActivity.class));
+ finish();
}
- }
+ return true;
+ };
private void updateMessageNumber() {
List list = BaseApplication.getDaoSession()
diff --git a/app/src/main/java/com/casic/dcms/ui/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/ui/MaintainRecordActivity.java
index e587dd7..ef03adb 100644
--- a/app/src/main/java/com/casic/dcms/ui/MaintainRecordActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/MaintainRecordActivity.java
@@ -1,7 +1,6 @@
package com.casic.dcms.ui;
import android.os.Handler;
-import android.os.Message;
import android.view.View;
import androidx.annotation.NonNull;
@@ -17,12 +16,12 @@
import com.casic.dcms.utils.CalendarUtil;
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.casic.dcms.widgets.datepicker.DatePopupWindow;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
@@ -48,7 +47,7 @@
@Override
protected void initData() {
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
recordPresenter = new MaintainRecordPresenterImpl(this);
recordPresenter.onReadyRetrofitRequest("", "", pageIndex);
}
@@ -128,37 +127,25 @@
OtherUtils.dismissLoadingDialog();
}
- private static class WeakReferenceHandler extends Handler {
-
- private final WeakReference reference;
-
- private WeakReferenceHandler(MaintainRecordActivity activity) {
- reference = new WeakReference<>(activity);
- }
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- MaintainRecordActivity resultActivity = reference.get();
- if (msg.what == 20210622) {
- if (resultActivity.isRefresh || resultActivity.isLoadMore) {
- resultActivity.adapter.notifyDataSetChanged();
+ private final Handler.Callback callback = msg -> {
+ if (msg.what == 20210622) {
+ if (isRefresh || isLoadMore) {
+ adapter.notifyDataSetChanged();
+ } else {
+ //首次加载数据
+ if (dataBeans.size() == 0) {
+ viewBinding.emptyView.show("抱歉,没有查到相关养护记录", null);
} else {
- //首次加载数据
- if (resultActivity.dataBeans.size() == 0) {
- resultActivity.viewBinding.emptyView.show("抱歉,没有查到相关养护记录", null);
- } else {
- resultActivity.viewBinding.emptyView.hide();
- resultActivity.adapter = new MaintainRecordAdapter(resultActivity, resultActivity.dataBeans);
- resultActivity.viewBinding.recordRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity));
- resultActivity.viewBinding.recordRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL));
- resultActivity.viewBinding.recordRecyclerView.setAdapter(resultActivity.adapter);
- }
+ viewBinding.emptyView.hide();
+ adapter = new MaintainRecordAdapter(this, dataBeans);
+ viewBinding.recordRecyclerView.setLayoutManager(new LinearLayoutManager(this));
+ viewBinding.recordRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL));
+ viewBinding.recordRecyclerView.setAdapter(adapter);
}
}
}
-
- }
+ return true;
+ };
@Override
protected void onDestroy() {
diff --git a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java
index 028ee6f..b9a8d21 100644
--- a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java
@@ -3,7 +3,6 @@
import android.content.Context;
import android.content.Intent;
import android.os.Handler;
-import android.os.Message;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
@@ -25,6 +24,7 @@
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.SaveKeyValues;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.casic.dcms.widgets.CancelAlarmDialog;
import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import com.qmuiteam.qmui.widget.popup.QMUIPopup;
@@ -33,7 +33,6 @@
import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
@@ -83,7 +82,7 @@
alarmListPresenter = new AlarmListPresenterImpl(this);
alarmListPresenter.onReadyRetrofitRequest(Constant.PAGE_LIMIT, pageIndex);
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
cancelAlarmPresenter = new CancelAlarmPresenterImpl(this);
}
@@ -109,41 +108,31 @@
});
}
- private static class WeakReferenceHandler extends Handler {
- private final WeakReference reference;
-
- private WeakReferenceHandler(PipelineManagerActivity activity) {
- reference = new WeakReference<>(activity);
- }
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- PipelineManagerActivity resultActivity = reference.get();
- if (msg.what == 20210626) {
- if (resultActivity.isRefresh || resultActivity.isLoadMore) {
- resultActivity.adapter.notifyDataSetChanged();
+ private final Handler.Callback callback = msg -> {
+ if (msg.what == 20210626) {
+ if (isRefresh || isLoadMore) {
+ adapter.notifyDataSetChanged();
+ } else {
+ //首次加载数据
+ if (dataBeans.size() == 0) {
+ viewBinding.emptyView.show("设备状态很好,没有任何报警", null);
} else {
- //首次加载数据
- if (resultActivity.dataBeans.size() == 0) {
- resultActivity.viewBinding.emptyView.show("设备状态很好,没有任何报警", null);
- } else {
- resultActivity.viewBinding.emptyView.hide();
- resultActivity.adapter = new AlarmListAdapter(resultActivity, resultActivity.dataBeans);
- resultActivity.viewBinding.warningRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity));
- resultActivity.viewBinding.warningRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL));
- resultActivity.viewBinding.warningRecyclerView.setAdapter(resultActivity.adapter);
- resultActivity.adapter.setOnCancelClickListener(new AlarmListAdapter.OnCancelClickListener() {
- @Override
- public void onClick(int position) {
- resultActivity.showSingleCancelDialog(resultActivity.dataBeans.get(position).getJobId());
- }
- });
- }
+ viewBinding.emptyView.hide();
+ adapter = new AlarmListAdapter(this, dataBeans);
+ viewBinding.warningRecyclerView.setLayoutManager(new LinearLayoutManager(this));
+ viewBinding.warningRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL));
+ viewBinding.warningRecyclerView.setAdapter(adapter);
+ adapter.setOnCancelClickListener(new AlarmListAdapter.OnCancelClickListener() {
+ @Override
+ public void onClick(int position) {
+ showSingleCancelDialog(dataBeans.get(position).getJobId());
+ }
+ });
}
}
}
- }
+ return true;
+ };
//单个消警
private void showSingleCancelDialog(String jobId) {
diff --git a/.idea/misc.xml b/.idea/misc.xml
index c4e854b..cf5266d 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -22,6 +22,7 @@
+
@@ -50,6 +51,7 @@
+
@@ -77,6 +79,7 @@
+
@@ -95,6 +98,7 @@
+
@@ -118,14 +122,14 @@
-
+
-
+
diff --git a/app/build.gradle b/app/build.gradle
index 0d88385..a89466d 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -44,10 +44,10 @@
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
- implementation 'androidx.core:core-ktx:1.6.0'
+ implementation 'androidx.core:core-ktx:1.7.0'
implementation 'androidx.appcompat:appcompat:1.4.0'
implementation 'com.google.android.material:material:1.4.0'
- implementation 'androidx.constraintlayout:constraintlayout:2.1.2'
+ implementation 'androidx.constraintlayout:constraintlayout:2.1.3'
//Google官方授权框架
implementation 'pub.devrel:easypermissions:3.0.0'
//腾讯Android UI框架
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/impl/CaseHandledListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/impl/CaseHandledListModelImpl.java
index 02c6875..37b76ac 100644
--- a/app/src/main/java/com/casic/dcms/mvp/model/impl/CaseHandledListModelImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/model/impl/CaseHandledListModelImpl.java
@@ -26,7 +26,7 @@
*/
@Override
public Subscription sendCaseHandledListRequest(int offset) {
- Observable observable = RetrofitServiceManager.getCaseHandledListResult(offset);
+ Observable observable = RetrofitServiceManager.handleCaseResult(offset);
return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
@Override
public void onCompleted() {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
index 550750c..0c77aea 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
@@ -28,7 +28,7 @@
import com.casic.dcms.mvp.view.IGetCaseNextNodeView;
import com.casic.dcms.mvp.view.IUploadFileView;
import com.casic.dcms.ui.fragment.handle.CaseHandledFragment;
-import com.casic.dcms.ui.fragment.handle.CaseTimeoutFragment;
+import com.casic.dcms.ui.fragment.handle.CaseOverTimeFragment;
import com.casic.dcms.ui.fragment.handle.CaseTodoFragment;
import com.casic.dcms.ui.fragment.handle.CaseUrgentFragment;
import com.casic.dcms.utils.Constant;
@@ -336,7 +336,7 @@
ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS);
switch (title) {
case "超时案卷":
- CaseTimeoutFragment.sendEmptyMessage(Constant.CASE_HANDLE_OK);
+ CaseOverTimeFragment.sendEmptyMessage(Constant.CASE_HANDLE_OK);
CaseHandledFragment.sendEmptyMessage(Constant.CASE_HANDLE_OK);
break;
case "紧急案卷":
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java
index 0e13b10..6b721eb 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java
@@ -1,8 +1,8 @@
package com.casic.dcms.ui;
+import android.content.Context;
import android.content.Intent;
import android.os.Handler;
-import android.os.Message;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.DividerItemDecoration;
@@ -16,16 +16,17 @@
import com.casic.dcms.mvp.view.ISearchCaseResultView;
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
public class CaseListResultActivity extends AndroidxBaseActivity implements ISearchCaseResultView {
+ private final Context context = this;
private CaseListPresenterImpl caseListPresenter;
private CaseListResultAdapter adapter;
private String typeCode;
@@ -53,7 +54,7 @@
@Override
protected void initData() {
caseListPresenter = new CaseListPresenterImpl(this);
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
eorc = getIntent().getStringExtra("eorc");
typeCode = getIntent().getStringExtra("typeCode");
typeDetailCode = getIntent().getStringExtra("typeDetailCode");
@@ -93,44 +94,33 @@
/**
* 弱应用Handler,防止内存泄漏
*/
- private static class WeakReferenceHandler extends Handler {
-
- private final WeakReference reference;
-
- private WeakReferenceHandler(CaseListResultActivity activity) {
- reference = new WeakReference<>(activity);
- }
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- CaseListResultActivity resultActivity = reference.get();
- if (msg.what == 20210425) {
- if (resultActivity.isRefresh || resultActivity.isLoadMore) {
- resultActivity.adapter.notifyDataSetChanged();
+ private final Handler.Callback callback = msg -> {
+ if (msg.what == 20210425) {
+ if (isRefresh || isLoadMore) {
+ adapter.notifyDataSetChanged();
+ } else {
+ //首次加载数据
+ if (dataBeans.size() == 0) {
+ viewBinding.emptyView.show("抱歉,没有查到符合您规定条件的案卷", null);
} else {
- //首次加载数据
- if (resultActivity.dataBeans.size() == 0) {
- resultActivity.viewBinding.emptyView.show("抱歉,没有查到符合您规定条件的案卷", null);
- } else {
- resultActivity.viewBinding.emptyView.hide();
- resultActivity.adapter = new CaseListResultAdapter(resultActivity, resultActivity.dataBeans);
- resultActivity.viewBinding.caseRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity));
- resultActivity.viewBinding.caseRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL));
- resultActivity.viewBinding.caseRecyclerView.setAdapter(resultActivity.adapter);
- resultActivity.adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() {
- @Override
- public void onClick(int position) {
- Intent intent = new Intent(resultActivity, CaseDetailActivity.class);
- intent.putExtra("id", resultActivity.dataBeans.get(position).getId());
- resultActivity.startActivity(intent);
- }
- });
- }
+ viewBinding.emptyView.hide();
+ adapter = new CaseListResultAdapter(context, dataBeans);
+ viewBinding.caseRecyclerView.setLayoutManager(new LinearLayoutManager(context));
+ viewBinding.caseRecyclerView.addItemDecoration(new DividerItemDecoration(context, DividerItemDecoration.VERTICAL));
+ viewBinding.caseRecyclerView.setAdapter(adapter);
+ adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() {
+ @Override
+ public void onClick(int position) {
+ Intent intent = new Intent(context, CaseDetailActivity.class);
+ intent.putExtra("id", dataBeans.get(position).getId());
+ startActivity(intent);
+ }
+ });
}
}
}
- }
+ return true;
+ };
@Override
public void showProgress() {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java
index 6e374cd..626720a 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java
@@ -1,6 +1,7 @@
package com.casic.dcms.ui;
import android.annotation.SuppressLint;
+import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
@@ -12,7 +13,6 @@
import android.view.MotionEvent;
import android.widget.RadioGroup;
-import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
import com.casic.dcms.R;
@@ -32,6 +32,7 @@
import com.casic.dcms.utils.ArcGisMapCreator;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.casic.dcms.widgets.AlertControlDialog;
import com.esri.arcgisruntime.concurrent.ListenableFuture;
import com.esri.arcgisruntime.data.ServiceFeatureTable;
@@ -48,7 +49,6 @@
import com.esri.arcgisruntime.symbology.PictureMarkerSymbol;
import com.esri.arcgisruntime.util.ListenableList;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -58,6 +58,7 @@
implements RadioGroup.OnCheckedChangeListener, IHandleCaseView, IVerifyCaseView, ICheckCaseView {
private static final String TAG = "CaseOnMapActivity";
+ private final Context context = this;
private HandleCasePresenterImpl handleCasePresenter;
private VerifyCasePresenterImpl caseVerifyPresenter;
private CaseCheckPresenterImpl caseCheckPresenter;
@@ -105,7 +106,7 @@
graphicsOverlays = viewBinding.mapView.getGraphicsOverlays();
//handler弱引用,防止内存泄漏
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
}
@SuppressLint("ClickableViewAccessibility")
@@ -150,48 +151,38 @@
});
}
- private static class WeakReferenceHandler extends Handler {
- private final WeakReference reference;
+ private final Handler.Callback callback = msg -> {
+ switch (msg.what) {
+ case 2021051401:
+ String caseId = (String) msg.obj;
+ new AlertControlDialog.Builder()
+ .setContext(context)
+ .setTitle("查看案卷详情")
+ .setMessage("ID:" + caseId)
+ .setNegativeButton("取消")
+ .setPositiveButton("确定")
+ .setOnDialogButtonClickListener(new AlertControlDialog.OnDialogButtonClickListener() {
+ @Override
+ public void onConfirmClick() {
+ Intent intent = new Intent(context, CaseDetailActivity.class);
+ intent.putExtra("id", caseId);
+ startActivity(intent);
+ }
- private WeakReferenceHandler(CaseOnMapActivity activity) {
- reference = new WeakReference<>(activity);
+ @Override
+ public void onCancelClick() {
+
+ }
+ }).build().show();
+ break;
+ case 2021051402:
+ ToastHelper.showToast("此附近无案卷,请重新选点", ToastHelper.WARING);
+ break;
+ default:
+ break;
}
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- CaseOnMapActivity onMapActivity = reference.get();
- switch (msg.what) {
- case 2021051401:
- String caseId = (String) msg.obj;
- new AlertControlDialog.Builder()
- .setContext(onMapActivity)
- .setTitle("查看案卷详情")
- .setMessage("ID:" + caseId)
- .setNegativeButton("取消")
- .setPositiveButton("确定")
- .setOnDialogButtonClickListener(new AlertControlDialog.OnDialogButtonClickListener() {
- @Override
- public void onConfirmClick() {
- Intent intent = new Intent(onMapActivity, CaseDetailActivity.class);
- intent.putExtra("id", caseId);
- onMapActivity.startActivity(intent);
- }
-
- @Override
- public void onCancelClick() {
-
- }
- }).build().show();
- break;
- case 2021051402:
- ToastHelper.showToast("此附近无案卷,请重新选点", ToastHelper.WARING);
- break;
- default:
- break;
- }
- }
- }
+ return true;
+ };
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java b/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java
index 5c037c4..6289181 100644
--- a/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java
@@ -3,7 +3,6 @@
import android.content.Context;
import android.content.Intent;
import android.os.Handler;
-import android.os.Message;
import android.text.TextUtils;
import android.view.View;
@@ -21,12 +20,12 @@
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.StringHelper;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.casic.dcms.widgets.datepicker.DatePopupWindow;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
@@ -53,7 +52,7 @@
@Override
protected void initData() {
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
recordPresenter = new CleanRecordPresenterImpl(this);
recordPresenter.onReadyRetrofitRequest(StringHelper.getUserBean().getId(), "", "", "", pageIndex);
}
@@ -139,59 +138,48 @@
OtherUtils.dismissLoadingDialog();
}
- private static class WeakReferenceHandler extends Handler {
-
- private final WeakReference reference;
-
- private WeakReferenceHandler(CleanResultListActivity activity) {
- reference = new WeakReference<>(activity);
- }
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- CleanResultListActivity resultActivity = reference.get();
- if (msg.what == 20210601) {
- if (resultActivity.isRefresh || resultActivity.isLoadMore) {
- resultActivity.adapter.notifyDataSetChanged();
+ private final Handler.Callback callback = msg -> {
+ if (msg.what == 20210601) {
+ if (isRefresh || isLoadMore) {
+ adapter.notifyDataSetChanged();
+ } else {
+ //首次加载数据
+ if (dataBeans.size() == 0) {
+ viewBinding.emptyView.show("抱歉,没有查到您的保洁工作记录", null);
} else {
- //首次加载数据
- if (resultActivity.dataBeans.size() == 0) {
- resultActivity.viewBinding.emptyView.show("抱歉,没有查到您的保洁工作记录", null);
- } else {
- resultActivity.viewBinding.emptyView.hide();
- resultActivity.adapter = new RecordListAdapter(resultActivity, resultActivity.dataBeans);
- resultActivity.viewBinding.recordRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity));
- resultActivity.viewBinding.recordRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL));
- resultActivity.viewBinding.recordRecyclerView.setAdapter(resultActivity.adapter);
- resultActivity.adapter.setOnItemClickListener(new RecordListAdapter.OnItemClickListener() {
- @Override
- public void onClick(int position) {
- CleanRecordBean.DataBean.RowsBean rowsBean = resultActivity.dataBeans.get(position);
- Intent intent = new Intent(resultActivity, WorkerOnMapActivity.class);
- intent.putExtra("userName", rowsBean.getUserName());
- intent.putExtra("createTime", rowsBean.getCreateTime());
- intent.putExtra("toiletName", rowsBean.getToiletName());
- String dataLng = rowsBean.getLng();
- if (TextUtils.isEmpty(dataLng)) {
- ToastHelper.showToast("经度异常", ToastHelper.ERROR);
- return;
- }
- intent.putExtra("lng", Double.parseDouble(dataLng));
- String dataLat = rowsBean.getLat();
- if (TextUtils.isEmpty(dataLat)) {
- ToastHelper.showToast("纬度异常", ToastHelper.ERROR);
- return;
- }
- intent.putExtra("lat", Double.parseDouble(dataLat));
- resultActivity.startActivity(intent);
+ viewBinding.emptyView.hide();
+ adapter = new RecordListAdapter(context, dataBeans);
+ viewBinding.recordRecyclerView.setLayoutManager(new LinearLayoutManager(context));
+ viewBinding.recordRecyclerView.addItemDecoration(new DividerItemDecoration(context, DividerItemDecoration.VERTICAL));
+ viewBinding.recordRecyclerView.setAdapter(adapter);
+ adapter.setOnItemClickListener(new RecordListAdapter.OnItemClickListener() {
+ @Override
+ public void onClick(int position) {
+ CleanRecordBean.DataBean.RowsBean rowsBean = dataBeans.get(position);
+ Intent intent = new Intent(context, WorkerOnMapActivity.class);
+ intent.putExtra("userName", rowsBean.getUserName());
+ intent.putExtra("createTime", rowsBean.getCreateTime());
+ intent.putExtra("toiletName", rowsBean.getToiletName());
+ String dataLng = rowsBean.getLng();
+ if (TextUtils.isEmpty(dataLng)) {
+ ToastHelper.showToast("经度异常", ToastHelper.ERROR);
+ return;
}
- });
- }
+ intent.putExtra("lng", Double.parseDouble(dataLng));
+ String dataLat = rowsBean.getLat();
+ if (TextUtils.isEmpty(dataLat)) {
+ ToastHelper.showToast("纬度异常", ToastHelper.ERROR);
+ return;
+ }
+ intent.putExtra("lat", Double.parseDouble(dataLat));
+ startActivity(intent);
+ }
+ });
}
}
}
- }
+ return true;
+ };
@Override
protected void onDestroy() {
diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
index 6f53e4e..4684efd 100644
--- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
@@ -50,6 +50,7 @@
import com.casic.dcms.utils.StatusBarColorUtil;
import com.casic.dcms.utils.StringHelper;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.casic.dcms.utils.callback.IHttpRequestListener;
import com.google.android.material.navigation.NavigationBarView;
import com.google.gson.Gson;
@@ -57,7 +58,6 @@
import com.igexin.sdk.PushManager;
import java.io.IOException;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
@@ -89,7 +89,7 @@
protected void initData() {
//个推初始化
PushManager.getInstance().initialize(this);
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
uploadPositionPresenter = new UploadPositionPresenterImpl(this);
registerPresenter = new PushRegisterPresenterImpl(this);
mapConfigPresenter = new GetMapConfigPresenterImpl(this);
@@ -203,59 +203,48 @@
viewBinding.mainViewPager.setAdapter(mainPageAdapter);
}
- private static class WeakReferenceHandler extends Handler {
-
- private final WeakReference reference;
-
- private WeakReferenceHandler(MainActivity activity) {
- reference = new WeakReference<>(activity);
- }
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- MainActivity mainActivity = reference.get();
- if (msg.what == Constant.PUSH_REGISTER) {
- String clientId = (String) msg.obj;
- Log.d(TAG, "注册个推Client: $clientId");
- mainActivity.registerPresenter.onReadyRetrofitRequest(clientId);
- } else if (msg.what == Constant.PUSH_CREATE_NOTIFICATION) {
- //显示小红点
- try {
- mainActivity.updateMessageNumber();
- } catch (NullPointerException e) {
- e.printStackTrace();
- }
- NoticeBean noticeBean = (NoticeBean) msg.obj;
- NotificationHelper notificationHelper = NotificationHelper.getInstance(mainActivity);
- Notification notification = notificationHelper.createDefault(
- noticeBean.getTitle(),
- noticeBean.getContent(),
- noticeBean.getCaseId(),
- CaseDetailActivity.class
- );
- notificationHelper.push(1, notification);
- } else if (msg.what == Constant.MESSAGE_NUMBER) {
- mainActivity.updateMessageNumber();
- } else if (msg.what == Constant.UPLOAD_LOCATION) {
- AMapLocation aMapLocation = (AMapLocation) msg.obj;
- try {
- double[] gcjToWgs = LocationHelper.gcjToWgs(aMapLocation.getLongitude(), aMapLocation.getLatitude());
- mainActivity.uploadPositionPresenter.onReadyRetrofitRequest(mainActivity.imei,
- String.valueOf(gcjToWgs[1]),
- String.valueOf(gcjToWgs[0]));
- } catch (NullPointerException e) {
- e.printStackTrace();
- }
- } else if (msg.what == Constant.LOGIN_OUT) {
- Log.d(TAG, "退出登录");
- //回到登录页
- SaveKeyValues.putValue("autoLogin", false);
- mainActivity.startActivity(new Intent(mainActivity, LoginActivity.class));
- mainActivity.finish();
+ private final Handler.Callback callback = msg -> {
+ if (msg.what == Constant.PUSH_REGISTER) {
+ String clientId = (String) msg.obj;
+ Log.d(TAG, "注册个推Client: $clientId");
+ registerPresenter.onReadyRetrofitRequest(clientId);
+ } else if (msg.what == Constant.PUSH_CREATE_NOTIFICATION) {
+ //显示小红点
+ try {
+ updateMessageNumber();
+ } catch (NullPointerException e) {
+ e.printStackTrace();
}
+ NoticeBean noticeBean = (NoticeBean) msg.obj;
+ NotificationHelper notificationHelper = NotificationHelper.getInstance(this);
+ Notification notification = notificationHelper.createDefault(
+ noticeBean.getTitle(),
+ noticeBean.getContent(),
+ noticeBean.getCaseId(),
+ CaseDetailActivity.class
+ );
+ notificationHelper.push(1, notification);
+ } else if (msg.what == Constant.MESSAGE_NUMBER) {
+ updateMessageNumber();
+ } else if (msg.what == Constant.UPLOAD_LOCATION) {
+ AMapLocation aMapLocation = (AMapLocation) msg.obj;
+ try {
+ double[] gcjToWgs = LocationHelper.gcjToWgs(aMapLocation.getLongitude(), aMapLocation.getLatitude());
+ uploadPositionPresenter.onReadyRetrofitRequest(imei,
+ String.valueOf(gcjToWgs[1]),
+ String.valueOf(gcjToWgs[0]));
+ } catch (NullPointerException e) {
+ e.printStackTrace();
+ }
+ } else if (msg.what == Constant.LOGIN_OUT) {
+ Log.d(TAG, "退出登录");
+ //回到登录页
+ SaveKeyValues.putValue("autoLogin", false);
+ startActivity(new Intent(this, LoginActivity.class));
+ finish();
}
- }
+ return true;
+ };
private void updateMessageNumber() {
List list = BaseApplication.getDaoSession()
diff --git a/app/src/main/java/com/casic/dcms/ui/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/ui/MaintainRecordActivity.java
index e587dd7..ef03adb 100644
--- a/app/src/main/java/com/casic/dcms/ui/MaintainRecordActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/MaintainRecordActivity.java
@@ -1,7 +1,6 @@
package com.casic.dcms.ui;
import android.os.Handler;
-import android.os.Message;
import android.view.View;
import androidx.annotation.NonNull;
@@ -17,12 +16,12 @@
import com.casic.dcms.utils.CalendarUtil;
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.casic.dcms.widgets.datepicker.DatePopupWindow;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
@@ -48,7 +47,7 @@
@Override
protected void initData() {
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
recordPresenter = new MaintainRecordPresenterImpl(this);
recordPresenter.onReadyRetrofitRequest("", "", pageIndex);
}
@@ -128,37 +127,25 @@
OtherUtils.dismissLoadingDialog();
}
- private static class WeakReferenceHandler extends Handler {
-
- private final WeakReference reference;
-
- private WeakReferenceHandler(MaintainRecordActivity activity) {
- reference = new WeakReference<>(activity);
- }
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- MaintainRecordActivity resultActivity = reference.get();
- if (msg.what == 20210622) {
- if (resultActivity.isRefresh || resultActivity.isLoadMore) {
- resultActivity.adapter.notifyDataSetChanged();
+ private final Handler.Callback callback = msg -> {
+ if (msg.what == 20210622) {
+ if (isRefresh || isLoadMore) {
+ adapter.notifyDataSetChanged();
+ } else {
+ //首次加载数据
+ if (dataBeans.size() == 0) {
+ viewBinding.emptyView.show("抱歉,没有查到相关养护记录", null);
} else {
- //首次加载数据
- if (resultActivity.dataBeans.size() == 0) {
- resultActivity.viewBinding.emptyView.show("抱歉,没有查到相关养护记录", null);
- } else {
- resultActivity.viewBinding.emptyView.hide();
- resultActivity.adapter = new MaintainRecordAdapter(resultActivity, resultActivity.dataBeans);
- resultActivity.viewBinding.recordRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity));
- resultActivity.viewBinding.recordRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL));
- resultActivity.viewBinding.recordRecyclerView.setAdapter(resultActivity.adapter);
- }
+ viewBinding.emptyView.hide();
+ adapter = new MaintainRecordAdapter(this, dataBeans);
+ viewBinding.recordRecyclerView.setLayoutManager(new LinearLayoutManager(this));
+ viewBinding.recordRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL));
+ viewBinding.recordRecyclerView.setAdapter(adapter);
}
}
}
-
- }
+ return true;
+ };
@Override
protected void onDestroy() {
diff --git a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java
index 028ee6f..b9a8d21 100644
--- a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java
@@ -3,7 +3,6 @@
import android.content.Context;
import android.content.Intent;
import android.os.Handler;
-import android.os.Message;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
@@ -25,6 +24,7 @@
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.SaveKeyValues;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.casic.dcms.widgets.CancelAlarmDialog;
import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import com.qmuiteam.qmui.widget.popup.QMUIPopup;
@@ -33,7 +33,6 @@
import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
@@ -83,7 +82,7 @@
alarmListPresenter = new AlarmListPresenterImpl(this);
alarmListPresenter.onReadyRetrofitRequest(Constant.PAGE_LIMIT, pageIndex);
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
cancelAlarmPresenter = new CancelAlarmPresenterImpl(this);
}
@@ -109,41 +108,31 @@
});
}
- private static class WeakReferenceHandler extends Handler {
- private final WeakReference reference;
-
- private WeakReferenceHandler(PipelineManagerActivity activity) {
- reference = new WeakReference<>(activity);
- }
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- PipelineManagerActivity resultActivity = reference.get();
- if (msg.what == 20210626) {
- if (resultActivity.isRefresh || resultActivity.isLoadMore) {
- resultActivity.adapter.notifyDataSetChanged();
+ private final Handler.Callback callback = msg -> {
+ if (msg.what == 20210626) {
+ if (isRefresh || isLoadMore) {
+ adapter.notifyDataSetChanged();
+ } else {
+ //首次加载数据
+ if (dataBeans.size() == 0) {
+ viewBinding.emptyView.show("设备状态很好,没有任何报警", null);
} else {
- //首次加载数据
- if (resultActivity.dataBeans.size() == 0) {
- resultActivity.viewBinding.emptyView.show("设备状态很好,没有任何报警", null);
- } else {
- resultActivity.viewBinding.emptyView.hide();
- resultActivity.adapter = new AlarmListAdapter(resultActivity, resultActivity.dataBeans);
- resultActivity.viewBinding.warningRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity));
- resultActivity.viewBinding.warningRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL));
- resultActivity.viewBinding.warningRecyclerView.setAdapter(resultActivity.adapter);
- resultActivity.adapter.setOnCancelClickListener(new AlarmListAdapter.OnCancelClickListener() {
- @Override
- public void onClick(int position) {
- resultActivity.showSingleCancelDialog(resultActivity.dataBeans.get(position).getJobId());
- }
- });
- }
+ viewBinding.emptyView.hide();
+ adapter = new AlarmListAdapter(this, dataBeans);
+ viewBinding.warningRecyclerView.setLayoutManager(new LinearLayoutManager(this));
+ viewBinding.warningRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL));
+ viewBinding.warningRecyclerView.setAdapter(adapter);
+ adapter.setOnCancelClickListener(new AlarmListAdapter.OnCancelClickListener() {
+ @Override
+ public void onClick(int position) {
+ showSingleCancelDialog(dataBeans.get(position).getJobId());
+ }
+ });
}
}
}
- }
+ return true;
+ };
//单个消警
private void showSingleCancelDialog(String jobId) {
diff --git a/app/src/main/java/com/casic/dcms/ui/WellListActivity.java b/app/src/main/java/com/casic/dcms/ui/WellListActivity.java
index 9cf4150..93aa7f8 100644
--- a/app/src/main/java/com/casic/dcms/ui/WellListActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/WellListActivity.java
@@ -2,7 +2,6 @@
import android.content.Context;
import android.os.Handler;
-import android.os.Message;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
@@ -23,6 +22,7 @@
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.casic.dcms.widgets.AlertControlDialog;
import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import com.qmuiteam.qmui.widget.popup.QMUIPopup;
@@ -31,7 +31,6 @@
import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
@@ -77,7 +76,7 @@
wellListPresenter = new WellListPresenterImpl(this);
wellListPresenter.onReadyRetrofitRequest(pageIndex);
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
optionWellPresenter = new OptionWellPresenterImpl(this);
}
@@ -103,62 +102,52 @@
});
}
- private static class WeakReferenceHandler extends Handler {
- private final WeakReference reference;
-
- private WeakReferenceHandler(WellListActivity activity) {
- reference = new WeakReference<>(activity);
- }
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- WellListActivity activity = reference.get();
- if (msg.what == 20210628) {
- if (activity.isRefresh || activity.isLoadMore) {
- activity.adapter.notifyDataSetChanged();
+ private final Handler.Callback callback = msg -> {
+ if (msg.what == 20210628) {
+ if (isRefresh || isLoadMore) {
+ adapter.notifyDataSetChanged();
+ } else {
+ //首次加载数据
+ if (dataBeans.size() == 0) {
+ viewBinding.emptyView.show("抱歉,无法为您查到窨井数据", null);
} else {
- //首次加载数据
- if (activity.dataBeans.size() == 0) {
- activity.viewBinding.emptyView.show("抱歉,无法为您查到窨井数据", null);
- } else {
- activity.viewBinding.emptyView.hide();
- activity.adapter = new WellListAdapter(activity, activity.dataBeans);
- activity.viewBinding.wellRecyclerView.setLayoutManager(new LinearLayoutManager(activity));
- activity.viewBinding.wellRecyclerView.addItemDecoration(new DividerItemDecoration(activity, DividerItemDecoration.VERTICAL));
- activity.viewBinding.wellRecyclerView.setAdapter(activity.adapter);
- activity.adapter.setOnItemClickListener(new WellListAdapter.OnItemClickListener() {
- @Override
- public void onClick(int position) {
- WellListBean.DataBean.RowsBean rowsBean = activity.dataBeans.get(position);
- String lng = rowsBean.getCoordinateX();
- String lat = rowsBean.getCoordinateY();
- OtherUtils.displayOnMap(activity, "others", lng, lat);
+ viewBinding.emptyView.hide();
+ adapter = new WellListAdapter(this, dataBeans);
+ viewBinding.wellRecyclerView.setLayoutManager(new LinearLayoutManager(this));
+ viewBinding.wellRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL));
+ viewBinding.wellRecyclerView.setAdapter(adapter);
+ adapter.setOnItemClickListener(new WellListAdapter.OnItemClickListener() {
+ @Override
+ public void onClick(int position) {
+ WellListBean.DataBean.RowsBean rowsBean = dataBeans.get(position);
+ String lng = rowsBean.getCoordinateX();
+ String lat = rowsBean.getCoordinateY();
+ OtherUtils.displayOnMap(context, "others", lng, lat);
+ }
+ });
+ adapter.setOnOptionClickListener(new WellListAdapter.OnOptionClickListener() {
+ @Override
+ public void onClick(int position) {
+ String bfzt = dataBeans.get(position).getBfzt();
+ String bfztName;
+ if (bfzt.equals("0")) {
+ bfztName = "布防";
+ bfzt = "1";
+ } else if (bfzt.equals("1")) {
+ bfztName = "撤防";
+ bfzt = "0";
+ } else {
+ ToastHelper.showToast("窨井状态错误,无法进行撤防或者布防", ToastHelper.ERROR);
+ return;
}
- });
- activity.adapter.setOnOptionClickListener(new WellListAdapter.OnOptionClickListener() {
- @Override
- public void onClick(int position) {
- String bfzt = activity.dataBeans.get(position).getBfzt();
- String bfztName;
- if (bfzt.equals("0")) {
- bfztName = "布防";
- bfzt = "1";
- } else if (bfzt.equals("1")) {
- bfztName = "撤防";
- bfzt = "0";
- } else {
- ToastHelper.showToast("窨井状态错误,无法进行撤防或者布防", ToastHelper.ERROR);
- return;
- }
- activity.showSingleOptionDialog(bfztName, activity.dataBeans.get(position).getId(), bfzt);
- }
- });
- }
+ showSingleOptionDialog(bfztName, dataBeans.get(position).getId(), bfzt);
+ }
+ });
}
}
}
- }
+ return true;
+ };
//单个撤防/布防
private void showSingleOptionDialog(String bfztName, String id, String bfzt) {
diff --git a/.idea/misc.xml b/.idea/misc.xml
index c4e854b..cf5266d 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -22,6 +22,7 @@
+
@@ -50,6 +51,7 @@
+
@@ -77,6 +79,7 @@
+
@@ -95,6 +98,7 @@
+
@@ -118,14 +122,14 @@
-
+
-
+
diff --git a/app/build.gradle b/app/build.gradle
index 0d88385..a89466d 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -44,10 +44,10 @@
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
- implementation 'androidx.core:core-ktx:1.6.0'
+ implementation 'androidx.core:core-ktx:1.7.0'
implementation 'androidx.appcompat:appcompat:1.4.0'
implementation 'com.google.android.material:material:1.4.0'
- implementation 'androidx.constraintlayout:constraintlayout:2.1.2'
+ implementation 'androidx.constraintlayout:constraintlayout:2.1.3'
//Google官方授权框架
implementation 'pub.devrel:easypermissions:3.0.0'
//腾讯Android UI框架
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/impl/CaseHandledListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/impl/CaseHandledListModelImpl.java
index 02c6875..37b76ac 100644
--- a/app/src/main/java/com/casic/dcms/mvp/model/impl/CaseHandledListModelImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/model/impl/CaseHandledListModelImpl.java
@@ -26,7 +26,7 @@
*/
@Override
public Subscription sendCaseHandledListRequest(int offset) {
- Observable observable = RetrofitServiceManager.getCaseHandledListResult(offset);
+ Observable observable = RetrofitServiceManager.handleCaseResult(offset);
return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
@Override
public void onCompleted() {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
index 550750c..0c77aea 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
@@ -28,7 +28,7 @@
import com.casic.dcms.mvp.view.IGetCaseNextNodeView;
import com.casic.dcms.mvp.view.IUploadFileView;
import com.casic.dcms.ui.fragment.handle.CaseHandledFragment;
-import com.casic.dcms.ui.fragment.handle.CaseTimeoutFragment;
+import com.casic.dcms.ui.fragment.handle.CaseOverTimeFragment;
import com.casic.dcms.ui.fragment.handle.CaseTodoFragment;
import com.casic.dcms.ui.fragment.handle.CaseUrgentFragment;
import com.casic.dcms.utils.Constant;
@@ -336,7 +336,7 @@
ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS);
switch (title) {
case "超时案卷":
- CaseTimeoutFragment.sendEmptyMessage(Constant.CASE_HANDLE_OK);
+ CaseOverTimeFragment.sendEmptyMessage(Constant.CASE_HANDLE_OK);
CaseHandledFragment.sendEmptyMessage(Constant.CASE_HANDLE_OK);
break;
case "紧急案卷":
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java
index 0e13b10..6b721eb 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java
@@ -1,8 +1,8 @@
package com.casic.dcms.ui;
+import android.content.Context;
import android.content.Intent;
import android.os.Handler;
-import android.os.Message;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.DividerItemDecoration;
@@ -16,16 +16,17 @@
import com.casic.dcms.mvp.view.ISearchCaseResultView;
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
public class CaseListResultActivity extends AndroidxBaseActivity implements ISearchCaseResultView {
+ private final Context context = this;
private CaseListPresenterImpl caseListPresenter;
private CaseListResultAdapter adapter;
private String typeCode;
@@ -53,7 +54,7 @@
@Override
protected void initData() {
caseListPresenter = new CaseListPresenterImpl(this);
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
eorc = getIntent().getStringExtra("eorc");
typeCode = getIntent().getStringExtra("typeCode");
typeDetailCode = getIntent().getStringExtra("typeDetailCode");
@@ -93,44 +94,33 @@
/**
* 弱应用Handler,防止内存泄漏
*/
- private static class WeakReferenceHandler extends Handler {
-
- private final WeakReference reference;
-
- private WeakReferenceHandler(CaseListResultActivity activity) {
- reference = new WeakReference<>(activity);
- }
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- CaseListResultActivity resultActivity = reference.get();
- if (msg.what == 20210425) {
- if (resultActivity.isRefresh || resultActivity.isLoadMore) {
- resultActivity.adapter.notifyDataSetChanged();
+ private final Handler.Callback callback = msg -> {
+ if (msg.what == 20210425) {
+ if (isRefresh || isLoadMore) {
+ adapter.notifyDataSetChanged();
+ } else {
+ //首次加载数据
+ if (dataBeans.size() == 0) {
+ viewBinding.emptyView.show("抱歉,没有查到符合您规定条件的案卷", null);
} else {
- //首次加载数据
- if (resultActivity.dataBeans.size() == 0) {
- resultActivity.viewBinding.emptyView.show("抱歉,没有查到符合您规定条件的案卷", null);
- } else {
- resultActivity.viewBinding.emptyView.hide();
- resultActivity.adapter = new CaseListResultAdapter(resultActivity, resultActivity.dataBeans);
- resultActivity.viewBinding.caseRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity));
- resultActivity.viewBinding.caseRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL));
- resultActivity.viewBinding.caseRecyclerView.setAdapter(resultActivity.adapter);
- resultActivity.adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() {
- @Override
- public void onClick(int position) {
- Intent intent = new Intent(resultActivity, CaseDetailActivity.class);
- intent.putExtra("id", resultActivity.dataBeans.get(position).getId());
- resultActivity.startActivity(intent);
- }
- });
- }
+ viewBinding.emptyView.hide();
+ adapter = new CaseListResultAdapter(context, dataBeans);
+ viewBinding.caseRecyclerView.setLayoutManager(new LinearLayoutManager(context));
+ viewBinding.caseRecyclerView.addItemDecoration(new DividerItemDecoration(context, DividerItemDecoration.VERTICAL));
+ viewBinding.caseRecyclerView.setAdapter(adapter);
+ adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() {
+ @Override
+ public void onClick(int position) {
+ Intent intent = new Intent(context, CaseDetailActivity.class);
+ intent.putExtra("id", dataBeans.get(position).getId());
+ startActivity(intent);
+ }
+ });
}
}
}
- }
+ return true;
+ };
@Override
public void showProgress() {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java
index 6e374cd..626720a 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java
@@ -1,6 +1,7 @@
package com.casic.dcms.ui;
import android.annotation.SuppressLint;
+import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
@@ -12,7 +13,6 @@
import android.view.MotionEvent;
import android.widget.RadioGroup;
-import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
import com.casic.dcms.R;
@@ -32,6 +32,7 @@
import com.casic.dcms.utils.ArcGisMapCreator;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.casic.dcms.widgets.AlertControlDialog;
import com.esri.arcgisruntime.concurrent.ListenableFuture;
import com.esri.arcgisruntime.data.ServiceFeatureTable;
@@ -48,7 +49,6 @@
import com.esri.arcgisruntime.symbology.PictureMarkerSymbol;
import com.esri.arcgisruntime.util.ListenableList;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -58,6 +58,7 @@
implements RadioGroup.OnCheckedChangeListener, IHandleCaseView, IVerifyCaseView, ICheckCaseView {
private static final String TAG = "CaseOnMapActivity";
+ private final Context context = this;
private HandleCasePresenterImpl handleCasePresenter;
private VerifyCasePresenterImpl caseVerifyPresenter;
private CaseCheckPresenterImpl caseCheckPresenter;
@@ -105,7 +106,7 @@
graphicsOverlays = viewBinding.mapView.getGraphicsOverlays();
//handler弱引用,防止内存泄漏
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
}
@SuppressLint("ClickableViewAccessibility")
@@ -150,48 +151,38 @@
});
}
- private static class WeakReferenceHandler extends Handler {
- private final WeakReference reference;
+ private final Handler.Callback callback = msg -> {
+ switch (msg.what) {
+ case 2021051401:
+ String caseId = (String) msg.obj;
+ new AlertControlDialog.Builder()
+ .setContext(context)
+ .setTitle("查看案卷详情")
+ .setMessage("ID:" + caseId)
+ .setNegativeButton("取消")
+ .setPositiveButton("确定")
+ .setOnDialogButtonClickListener(new AlertControlDialog.OnDialogButtonClickListener() {
+ @Override
+ public void onConfirmClick() {
+ Intent intent = new Intent(context, CaseDetailActivity.class);
+ intent.putExtra("id", caseId);
+ startActivity(intent);
+ }
- private WeakReferenceHandler(CaseOnMapActivity activity) {
- reference = new WeakReference<>(activity);
+ @Override
+ public void onCancelClick() {
+
+ }
+ }).build().show();
+ break;
+ case 2021051402:
+ ToastHelper.showToast("此附近无案卷,请重新选点", ToastHelper.WARING);
+ break;
+ default:
+ break;
}
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- CaseOnMapActivity onMapActivity = reference.get();
- switch (msg.what) {
- case 2021051401:
- String caseId = (String) msg.obj;
- new AlertControlDialog.Builder()
- .setContext(onMapActivity)
- .setTitle("查看案卷详情")
- .setMessage("ID:" + caseId)
- .setNegativeButton("取消")
- .setPositiveButton("确定")
- .setOnDialogButtonClickListener(new AlertControlDialog.OnDialogButtonClickListener() {
- @Override
- public void onConfirmClick() {
- Intent intent = new Intent(onMapActivity, CaseDetailActivity.class);
- intent.putExtra("id", caseId);
- onMapActivity.startActivity(intent);
- }
-
- @Override
- public void onCancelClick() {
-
- }
- }).build().show();
- break;
- case 2021051402:
- ToastHelper.showToast("此附近无案卷,请重新选点", ToastHelper.WARING);
- break;
- default:
- break;
- }
- }
- }
+ return true;
+ };
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java b/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java
index 5c037c4..6289181 100644
--- a/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java
@@ -3,7 +3,6 @@
import android.content.Context;
import android.content.Intent;
import android.os.Handler;
-import android.os.Message;
import android.text.TextUtils;
import android.view.View;
@@ -21,12 +20,12 @@
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.StringHelper;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.casic.dcms.widgets.datepicker.DatePopupWindow;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
@@ -53,7 +52,7 @@
@Override
protected void initData() {
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
recordPresenter = new CleanRecordPresenterImpl(this);
recordPresenter.onReadyRetrofitRequest(StringHelper.getUserBean().getId(), "", "", "", pageIndex);
}
@@ -139,59 +138,48 @@
OtherUtils.dismissLoadingDialog();
}
- private static class WeakReferenceHandler extends Handler {
-
- private final WeakReference reference;
-
- private WeakReferenceHandler(CleanResultListActivity activity) {
- reference = new WeakReference<>(activity);
- }
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- CleanResultListActivity resultActivity = reference.get();
- if (msg.what == 20210601) {
- if (resultActivity.isRefresh || resultActivity.isLoadMore) {
- resultActivity.adapter.notifyDataSetChanged();
+ private final Handler.Callback callback = msg -> {
+ if (msg.what == 20210601) {
+ if (isRefresh || isLoadMore) {
+ adapter.notifyDataSetChanged();
+ } else {
+ //首次加载数据
+ if (dataBeans.size() == 0) {
+ viewBinding.emptyView.show("抱歉,没有查到您的保洁工作记录", null);
} else {
- //首次加载数据
- if (resultActivity.dataBeans.size() == 0) {
- resultActivity.viewBinding.emptyView.show("抱歉,没有查到您的保洁工作记录", null);
- } else {
- resultActivity.viewBinding.emptyView.hide();
- resultActivity.adapter = new RecordListAdapter(resultActivity, resultActivity.dataBeans);
- resultActivity.viewBinding.recordRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity));
- resultActivity.viewBinding.recordRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL));
- resultActivity.viewBinding.recordRecyclerView.setAdapter(resultActivity.adapter);
- resultActivity.adapter.setOnItemClickListener(new RecordListAdapter.OnItemClickListener() {
- @Override
- public void onClick(int position) {
- CleanRecordBean.DataBean.RowsBean rowsBean = resultActivity.dataBeans.get(position);
- Intent intent = new Intent(resultActivity, WorkerOnMapActivity.class);
- intent.putExtra("userName", rowsBean.getUserName());
- intent.putExtra("createTime", rowsBean.getCreateTime());
- intent.putExtra("toiletName", rowsBean.getToiletName());
- String dataLng = rowsBean.getLng();
- if (TextUtils.isEmpty(dataLng)) {
- ToastHelper.showToast("经度异常", ToastHelper.ERROR);
- return;
- }
- intent.putExtra("lng", Double.parseDouble(dataLng));
- String dataLat = rowsBean.getLat();
- if (TextUtils.isEmpty(dataLat)) {
- ToastHelper.showToast("纬度异常", ToastHelper.ERROR);
- return;
- }
- intent.putExtra("lat", Double.parseDouble(dataLat));
- resultActivity.startActivity(intent);
+ viewBinding.emptyView.hide();
+ adapter = new RecordListAdapter(context, dataBeans);
+ viewBinding.recordRecyclerView.setLayoutManager(new LinearLayoutManager(context));
+ viewBinding.recordRecyclerView.addItemDecoration(new DividerItemDecoration(context, DividerItemDecoration.VERTICAL));
+ viewBinding.recordRecyclerView.setAdapter(adapter);
+ adapter.setOnItemClickListener(new RecordListAdapter.OnItemClickListener() {
+ @Override
+ public void onClick(int position) {
+ CleanRecordBean.DataBean.RowsBean rowsBean = dataBeans.get(position);
+ Intent intent = new Intent(context, WorkerOnMapActivity.class);
+ intent.putExtra("userName", rowsBean.getUserName());
+ intent.putExtra("createTime", rowsBean.getCreateTime());
+ intent.putExtra("toiletName", rowsBean.getToiletName());
+ String dataLng = rowsBean.getLng();
+ if (TextUtils.isEmpty(dataLng)) {
+ ToastHelper.showToast("经度异常", ToastHelper.ERROR);
+ return;
}
- });
- }
+ intent.putExtra("lng", Double.parseDouble(dataLng));
+ String dataLat = rowsBean.getLat();
+ if (TextUtils.isEmpty(dataLat)) {
+ ToastHelper.showToast("纬度异常", ToastHelper.ERROR);
+ return;
+ }
+ intent.putExtra("lat", Double.parseDouble(dataLat));
+ startActivity(intent);
+ }
+ });
}
}
}
- }
+ return true;
+ };
@Override
protected void onDestroy() {
diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
index 6f53e4e..4684efd 100644
--- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
@@ -50,6 +50,7 @@
import com.casic.dcms.utils.StatusBarColorUtil;
import com.casic.dcms.utils.StringHelper;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.casic.dcms.utils.callback.IHttpRequestListener;
import com.google.android.material.navigation.NavigationBarView;
import com.google.gson.Gson;
@@ -57,7 +58,6 @@
import com.igexin.sdk.PushManager;
import java.io.IOException;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
@@ -89,7 +89,7 @@
protected void initData() {
//个推初始化
PushManager.getInstance().initialize(this);
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
uploadPositionPresenter = new UploadPositionPresenterImpl(this);
registerPresenter = new PushRegisterPresenterImpl(this);
mapConfigPresenter = new GetMapConfigPresenterImpl(this);
@@ -203,59 +203,48 @@
viewBinding.mainViewPager.setAdapter(mainPageAdapter);
}
- private static class WeakReferenceHandler extends Handler {
-
- private final WeakReference reference;
-
- private WeakReferenceHandler(MainActivity activity) {
- reference = new WeakReference<>(activity);
- }
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- MainActivity mainActivity = reference.get();
- if (msg.what == Constant.PUSH_REGISTER) {
- String clientId = (String) msg.obj;
- Log.d(TAG, "注册个推Client: $clientId");
- mainActivity.registerPresenter.onReadyRetrofitRequest(clientId);
- } else if (msg.what == Constant.PUSH_CREATE_NOTIFICATION) {
- //显示小红点
- try {
- mainActivity.updateMessageNumber();
- } catch (NullPointerException e) {
- e.printStackTrace();
- }
- NoticeBean noticeBean = (NoticeBean) msg.obj;
- NotificationHelper notificationHelper = NotificationHelper.getInstance(mainActivity);
- Notification notification = notificationHelper.createDefault(
- noticeBean.getTitle(),
- noticeBean.getContent(),
- noticeBean.getCaseId(),
- CaseDetailActivity.class
- );
- notificationHelper.push(1, notification);
- } else if (msg.what == Constant.MESSAGE_NUMBER) {
- mainActivity.updateMessageNumber();
- } else if (msg.what == Constant.UPLOAD_LOCATION) {
- AMapLocation aMapLocation = (AMapLocation) msg.obj;
- try {
- double[] gcjToWgs = LocationHelper.gcjToWgs(aMapLocation.getLongitude(), aMapLocation.getLatitude());
- mainActivity.uploadPositionPresenter.onReadyRetrofitRequest(mainActivity.imei,
- String.valueOf(gcjToWgs[1]),
- String.valueOf(gcjToWgs[0]));
- } catch (NullPointerException e) {
- e.printStackTrace();
- }
- } else if (msg.what == Constant.LOGIN_OUT) {
- Log.d(TAG, "退出登录");
- //回到登录页
- SaveKeyValues.putValue("autoLogin", false);
- mainActivity.startActivity(new Intent(mainActivity, LoginActivity.class));
- mainActivity.finish();
+ private final Handler.Callback callback = msg -> {
+ if (msg.what == Constant.PUSH_REGISTER) {
+ String clientId = (String) msg.obj;
+ Log.d(TAG, "注册个推Client: $clientId");
+ registerPresenter.onReadyRetrofitRequest(clientId);
+ } else if (msg.what == Constant.PUSH_CREATE_NOTIFICATION) {
+ //显示小红点
+ try {
+ updateMessageNumber();
+ } catch (NullPointerException e) {
+ e.printStackTrace();
}
+ NoticeBean noticeBean = (NoticeBean) msg.obj;
+ NotificationHelper notificationHelper = NotificationHelper.getInstance(this);
+ Notification notification = notificationHelper.createDefault(
+ noticeBean.getTitle(),
+ noticeBean.getContent(),
+ noticeBean.getCaseId(),
+ CaseDetailActivity.class
+ );
+ notificationHelper.push(1, notification);
+ } else if (msg.what == Constant.MESSAGE_NUMBER) {
+ updateMessageNumber();
+ } else if (msg.what == Constant.UPLOAD_LOCATION) {
+ AMapLocation aMapLocation = (AMapLocation) msg.obj;
+ try {
+ double[] gcjToWgs = LocationHelper.gcjToWgs(aMapLocation.getLongitude(), aMapLocation.getLatitude());
+ uploadPositionPresenter.onReadyRetrofitRequest(imei,
+ String.valueOf(gcjToWgs[1]),
+ String.valueOf(gcjToWgs[0]));
+ } catch (NullPointerException e) {
+ e.printStackTrace();
+ }
+ } else if (msg.what == Constant.LOGIN_OUT) {
+ Log.d(TAG, "退出登录");
+ //回到登录页
+ SaveKeyValues.putValue("autoLogin", false);
+ startActivity(new Intent(this, LoginActivity.class));
+ finish();
}
- }
+ return true;
+ };
private void updateMessageNumber() {
List list = BaseApplication.getDaoSession()
diff --git a/app/src/main/java/com/casic/dcms/ui/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/ui/MaintainRecordActivity.java
index e587dd7..ef03adb 100644
--- a/app/src/main/java/com/casic/dcms/ui/MaintainRecordActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/MaintainRecordActivity.java
@@ -1,7 +1,6 @@
package com.casic.dcms.ui;
import android.os.Handler;
-import android.os.Message;
import android.view.View;
import androidx.annotation.NonNull;
@@ -17,12 +16,12 @@
import com.casic.dcms.utils.CalendarUtil;
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.casic.dcms.widgets.datepicker.DatePopupWindow;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
@@ -48,7 +47,7 @@
@Override
protected void initData() {
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
recordPresenter = new MaintainRecordPresenterImpl(this);
recordPresenter.onReadyRetrofitRequest("", "", pageIndex);
}
@@ -128,37 +127,25 @@
OtherUtils.dismissLoadingDialog();
}
- private static class WeakReferenceHandler extends Handler {
-
- private final WeakReference reference;
-
- private WeakReferenceHandler(MaintainRecordActivity activity) {
- reference = new WeakReference<>(activity);
- }
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- MaintainRecordActivity resultActivity = reference.get();
- if (msg.what == 20210622) {
- if (resultActivity.isRefresh || resultActivity.isLoadMore) {
- resultActivity.adapter.notifyDataSetChanged();
+ private final Handler.Callback callback = msg -> {
+ if (msg.what == 20210622) {
+ if (isRefresh || isLoadMore) {
+ adapter.notifyDataSetChanged();
+ } else {
+ //首次加载数据
+ if (dataBeans.size() == 0) {
+ viewBinding.emptyView.show("抱歉,没有查到相关养护记录", null);
} else {
- //首次加载数据
- if (resultActivity.dataBeans.size() == 0) {
- resultActivity.viewBinding.emptyView.show("抱歉,没有查到相关养护记录", null);
- } else {
- resultActivity.viewBinding.emptyView.hide();
- resultActivity.adapter = new MaintainRecordAdapter(resultActivity, resultActivity.dataBeans);
- resultActivity.viewBinding.recordRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity));
- resultActivity.viewBinding.recordRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL));
- resultActivity.viewBinding.recordRecyclerView.setAdapter(resultActivity.adapter);
- }
+ viewBinding.emptyView.hide();
+ adapter = new MaintainRecordAdapter(this, dataBeans);
+ viewBinding.recordRecyclerView.setLayoutManager(new LinearLayoutManager(this));
+ viewBinding.recordRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL));
+ viewBinding.recordRecyclerView.setAdapter(adapter);
}
}
}
-
- }
+ return true;
+ };
@Override
protected void onDestroy() {
diff --git a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java
index 028ee6f..b9a8d21 100644
--- a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java
@@ -3,7 +3,6 @@
import android.content.Context;
import android.content.Intent;
import android.os.Handler;
-import android.os.Message;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
@@ -25,6 +24,7 @@
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.SaveKeyValues;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.casic.dcms.widgets.CancelAlarmDialog;
import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import com.qmuiteam.qmui.widget.popup.QMUIPopup;
@@ -33,7 +33,6 @@
import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
@@ -83,7 +82,7 @@
alarmListPresenter = new AlarmListPresenterImpl(this);
alarmListPresenter.onReadyRetrofitRequest(Constant.PAGE_LIMIT, pageIndex);
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
cancelAlarmPresenter = new CancelAlarmPresenterImpl(this);
}
@@ -109,41 +108,31 @@
});
}
- private static class WeakReferenceHandler extends Handler {
- private final WeakReference reference;
-
- private WeakReferenceHandler(PipelineManagerActivity activity) {
- reference = new WeakReference<>(activity);
- }
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- PipelineManagerActivity resultActivity = reference.get();
- if (msg.what == 20210626) {
- if (resultActivity.isRefresh || resultActivity.isLoadMore) {
- resultActivity.adapter.notifyDataSetChanged();
+ private final Handler.Callback callback = msg -> {
+ if (msg.what == 20210626) {
+ if (isRefresh || isLoadMore) {
+ adapter.notifyDataSetChanged();
+ } else {
+ //首次加载数据
+ if (dataBeans.size() == 0) {
+ viewBinding.emptyView.show("设备状态很好,没有任何报警", null);
} else {
- //首次加载数据
- if (resultActivity.dataBeans.size() == 0) {
- resultActivity.viewBinding.emptyView.show("设备状态很好,没有任何报警", null);
- } else {
- resultActivity.viewBinding.emptyView.hide();
- resultActivity.adapter = new AlarmListAdapter(resultActivity, resultActivity.dataBeans);
- resultActivity.viewBinding.warningRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity));
- resultActivity.viewBinding.warningRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL));
- resultActivity.viewBinding.warningRecyclerView.setAdapter(resultActivity.adapter);
- resultActivity.adapter.setOnCancelClickListener(new AlarmListAdapter.OnCancelClickListener() {
- @Override
- public void onClick(int position) {
- resultActivity.showSingleCancelDialog(resultActivity.dataBeans.get(position).getJobId());
- }
- });
- }
+ viewBinding.emptyView.hide();
+ adapter = new AlarmListAdapter(this, dataBeans);
+ viewBinding.warningRecyclerView.setLayoutManager(new LinearLayoutManager(this));
+ viewBinding.warningRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL));
+ viewBinding.warningRecyclerView.setAdapter(adapter);
+ adapter.setOnCancelClickListener(new AlarmListAdapter.OnCancelClickListener() {
+ @Override
+ public void onClick(int position) {
+ showSingleCancelDialog(dataBeans.get(position).getJobId());
+ }
+ });
}
}
}
- }
+ return true;
+ };
//单个消警
private void showSingleCancelDialog(String jobId) {
diff --git a/app/src/main/java/com/casic/dcms/ui/WellListActivity.java b/app/src/main/java/com/casic/dcms/ui/WellListActivity.java
index 9cf4150..93aa7f8 100644
--- a/app/src/main/java/com/casic/dcms/ui/WellListActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/WellListActivity.java
@@ -2,7 +2,6 @@
import android.content.Context;
import android.os.Handler;
-import android.os.Message;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
@@ -23,6 +22,7 @@
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.casic.dcms.widgets.AlertControlDialog;
import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import com.qmuiteam.qmui.widget.popup.QMUIPopup;
@@ -31,7 +31,6 @@
import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
@@ -77,7 +76,7 @@
wellListPresenter = new WellListPresenterImpl(this);
wellListPresenter.onReadyRetrofitRequest(pageIndex);
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
optionWellPresenter = new OptionWellPresenterImpl(this);
}
@@ -103,62 +102,52 @@
});
}
- private static class WeakReferenceHandler extends Handler {
- private final WeakReference reference;
-
- private WeakReferenceHandler(WellListActivity activity) {
- reference = new WeakReference<>(activity);
- }
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- WellListActivity activity = reference.get();
- if (msg.what == 20210628) {
- if (activity.isRefresh || activity.isLoadMore) {
- activity.adapter.notifyDataSetChanged();
+ private final Handler.Callback callback = msg -> {
+ if (msg.what == 20210628) {
+ if (isRefresh || isLoadMore) {
+ adapter.notifyDataSetChanged();
+ } else {
+ //首次加载数据
+ if (dataBeans.size() == 0) {
+ viewBinding.emptyView.show("抱歉,无法为您查到窨井数据", null);
} else {
- //首次加载数据
- if (activity.dataBeans.size() == 0) {
- activity.viewBinding.emptyView.show("抱歉,无法为您查到窨井数据", null);
- } else {
- activity.viewBinding.emptyView.hide();
- activity.adapter = new WellListAdapter(activity, activity.dataBeans);
- activity.viewBinding.wellRecyclerView.setLayoutManager(new LinearLayoutManager(activity));
- activity.viewBinding.wellRecyclerView.addItemDecoration(new DividerItemDecoration(activity, DividerItemDecoration.VERTICAL));
- activity.viewBinding.wellRecyclerView.setAdapter(activity.adapter);
- activity.adapter.setOnItemClickListener(new WellListAdapter.OnItemClickListener() {
- @Override
- public void onClick(int position) {
- WellListBean.DataBean.RowsBean rowsBean = activity.dataBeans.get(position);
- String lng = rowsBean.getCoordinateX();
- String lat = rowsBean.getCoordinateY();
- OtherUtils.displayOnMap(activity, "others", lng, lat);
+ viewBinding.emptyView.hide();
+ adapter = new WellListAdapter(this, dataBeans);
+ viewBinding.wellRecyclerView.setLayoutManager(new LinearLayoutManager(this));
+ viewBinding.wellRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL));
+ viewBinding.wellRecyclerView.setAdapter(adapter);
+ adapter.setOnItemClickListener(new WellListAdapter.OnItemClickListener() {
+ @Override
+ public void onClick(int position) {
+ WellListBean.DataBean.RowsBean rowsBean = dataBeans.get(position);
+ String lng = rowsBean.getCoordinateX();
+ String lat = rowsBean.getCoordinateY();
+ OtherUtils.displayOnMap(context, "others", lng, lat);
+ }
+ });
+ adapter.setOnOptionClickListener(new WellListAdapter.OnOptionClickListener() {
+ @Override
+ public void onClick(int position) {
+ String bfzt = dataBeans.get(position).getBfzt();
+ String bfztName;
+ if (bfzt.equals("0")) {
+ bfztName = "布防";
+ bfzt = "1";
+ } else if (bfzt.equals("1")) {
+ bfztName = "撤防";
+ bfzt = "0";
+ } else {
+ ToastHelper.showToast("窨井状态错误,无法进行撤防或者布防", ToastHelper.ERROR);
+ return;
}
- });
- activity.adapter.setOnOptionClickListener(new WellListAdapter.OnOptionClickListener() {
- @Override
- public void onClick(int position) {
- String bfzt = activity.dataBeans.get(position).getBfzt();
- String bfztName;
- if (bfzt.equals("0")) {
- bfztName = "布防";
- bfzt = "1";
- } else if (bfzt.equals("1")) {
- bfztName = "撤防";
- bfzt = "0";
- } else {
- ToastHelper.showToast("窨井状态错误,无法进行撤防或者布防", ToastHelper.ERROR);
- return;
- }
- activity.showSingleOptionDialog(bfztName, activity.dataBeans.get(position).getId(), bfzt);
- }
- });
- }
+ showSingleOptionDialog(bfztName, dataBeans.get(position).getId(), bfzt);
+ }
+ });
}
}
}
- }
+ return true;
+ };
//单个撤防/布防
private void showSingleOptionDialog(String bfztName, String id, String bfzt) {
diff --git a/app/src/main/java/com/casic/dcms/ui/WorkerOnMapActivity.java b/app/src/main/java/com/casic/dcms/ui/WorkerOnMapActivity.java
index 280f13d..fd2feb6 100644
--- a/app/src/main/java/com/casic/dcms/ui/WorkerOnMapActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/WorkerOnMapActivity.java
@@ -7,14 +7,11 @@
import android.graphics.drawable.BitmapDrawable;
import android.location.Location;
import android.os.Handler;
-import android.os.Message;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.widget.TextView;
-import androidx.annotation.NonNull;
-
import com.amap.api.location.AMapLocation;
import com.casic.dcms.R;
import com.casic.dcms.base.AndroidxBaseActivity;
@@ -24,6 +21,7 @@
import com.casic.dcms.utils.LocationHelper;
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.casic.dcms.utils.callback.ILocationListener;
import com.esri.arcgisruntime.concurrent.ListenableFuture;
import com.esri.arcgisruntime.geometry.Point;
@@ -41,7 +39,6 @@
import com.qmuiteam.qmui.widget.popup.QMUIPopup;
import com.qmuiteam.qmui.widget.popup.QMUIPopups;
-import java.lang.ref.WeakReference;
import java.util.List;
import java.util.concurrent.ExecutionException;
@@ -74,7 +71,7 @@
Basemap baseMap = new Basemap(ArcGisMapCreator.createBaseLayer());
arcGISMap.setBasemap(baseMap);
viewBinding.mapView.setMap(arcGISMap);
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
}
@SuppressLint("ClickableViewAccessibility")
@@ -138,38 +135,28 @@
});
}
- private static class WeakReferenceHandler extends Handler {
- private final WeakReference reference;
-
- private WeakReferenceHandler(WorkerOnMapActivity activity) {
- reference = new WeakReference<>(activity);
+ private final Handler.Callback callback = msg -> {
+ if (msg.what == 2021060101) {
+ View popupView = LayoutInflater.from(this).inflate(R.layout.popu_worker, null);
+ TextView userNameView = popupView.findViewById(R.id.userNameView);
+ TextView signInTimeView = popupView.findViewById(R.id.signInTimeView);
+ TextView toiletNameView = popupView.findViewById(R.id.toiletNameView);
+ userNameView.setText(userName);
+ signInTimeView.setText(createTime);
+ toiletNameView.setText(toiletName);
+ QMUIPopups.popup(this, QMUIDisplayHelper.dp2px(this, 250))
+ .preferredDirection(QMUIPopup.DIRECTION_BOTTOM)
+ .view(popupView)
+ .edgeProtection(QMUIDisplayHelper.dp2px(this, 20))
+ .dimAmount(0.6f)
+ .animStyle(QMUIPopup.ANIM_GROW_FROM_CENTER)
+ .onDismiss(null)
+ .show(viewBinding.mapView);
+ } else if (msg.what == 2021060102) {
+ ToastHelper.showToast("附近无工作人员,请重新选点", ToastHelper.WARING);
}
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- WorkerOnMapActivity mapActivity = reference.get();
- if (msg.what == 2021060101) {
- View popupView = LayoutInflater.from(mapActivity).inflate(R.layout.popu_worker, null);
- TextView userNameView = popupView.findViewById(R.id.userNameView);
- TextView signInTimeView = popupView.findViewById(R.id.signInTimeView);
- TextView toiletNameView = popupView.findViewById(R.id.toiletNameView);
- userNameView.setText(mapActivity.userName);
- signInTimeView.setText(mapActivity.createTime);
- toiletNameView.setText(mapActivity.toiletName);
- QMUIPopups.popup(mapActivity, QMUIDisplayHelper.dp2px(mapActivity, 250))
- .preferredDirection(QMUIPopup.DIRECTION_BOTTOM)
- .view(popupView)
- .edgeProtection(QMUIDisplayHelper.dp2px(mapActivity, 20))
- .dimAmount(0.6f)
- .animStyle(QMUIPopup.ANIM_GROW_FROM_CENTER)
- .onDismiss(null)
- .show(mapActivity.viewBinding.mapView);
- } else if (msg.what == 2021060102) {
- ToastHelper.showToast("附近无工作人员,请重新选点", ToastHelper.WARING);
- }
- }
- }
+ return true;
+ };
private void addPictureMarker(Point point) {
Bitmap caseBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.on_line);
diff --git a/.idea/misc.xml b/.idea/misc.xml
index c4e854b..cf5266d 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -22,6 +22,7 @@
+
@@ -50,6 +51,7 @@
+
@@ -77,6 +79,7 @@
+
@@ -95,6 +98,7 @@
+
@@ -118,14 +122,14 @@
-
+
-
+
diff --git a/app/build.gradle b/app/build.gradle
index 0d88385..a89466d 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -44,10 +44,10 @@
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
- implementation 'androidx.core:core-ktx:1.6.0'
+ implementation 'androidx.core:core-ktx:1.7.0'
implementation 'androidx.appcompat:appcompat:1.4.0'
implementation 'com.google.android.material:material:1.4.0'
- implementation 'androidx.constraintlayout:constraintlayout:2.1.2'
+ implementation 'androidx.constraintlayout:constraintlayout:2.1.3'
//Google官方授权框架
implementation 'pub.devrel:easypermissions:3.0.0'
//腾讯Android UI框架
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/impl/CaseHandledListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/impl/CaseHandledListModelImpl.java
index 02c6875..37b76ac 100644
--- a/app/src/main/java/com/casic/dcms/mvp/model/impl/CaseHandledListModelImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/model/impl/CaseHandledListModelImpl.java
@@ -26,7 +26,7 @@
*/
@Override
public Subscription sendCaseHandledListRequest(int offset) {
- Observable observable = RetrofitServiceManager.getCaseHandledListResult(offset);
+ Observable observable = RetrofitServiceManager.handleCaseResult(offset);
return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
@Override
public void onCompleted() {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
index 550750c..0c77aea 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
@@ -28,7 +28,7 @@
import com.casic.dcms.mvp.view.IGetCaseNextNodeView;
import com.casic.dcms.mvp.view.IUploadFileView;
import com.casic.dcms.ui.fragment.handle.CaseHandledFragment;
-import com.casic.dcms.ui.fragment.handle.CaseTimeoutFragment;
+import com.casic.dcms.ui.fragment.handle.CaseOverTimeFragment;
import com.casic.dcms.ui.fragment.handle.CaseTodoFragment;
import com.casic.dcms.ui.fragment.handle.CaseUrgentFragment;
import com.casic.dcms.utils.Constant;
@@ -336,7 +336,7 @@
ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS);
switch (title) {
case "超时案卷":
- CaseTimeoutFragment.sendEmptyMessage(Constant.CASE_HANDLE_OK);
+ CaseOverTimeFragment.sendEmptyMessage(Constant.CASE_HANDLE_OK);
CaseHandledFragment.sendEmptyMessage(Constant.CASE_HANDLE_OK);
break;
case "紧急案卷":
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java
index 0e13b10..6b721eb 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java
@@ -1,8 +1,8 @@
package com.casic.dcms.ui;
+import android.content.Context;
import android.content.Intent;
import android.os.Handler;
-import android.os.Message;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.DividerItemDecoration;
@@ -16,16 +16,17 @@
import com.casic.dcms.mvp.view.ISearchCaseResultView;
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
public class CaseListResultActivity extends AndroidxBaseActivity implements ISearchCaseResultView {
+ private final Context context = this;
private CaseListPresenterImpl caseListPresenter;
private CaseListResultAdapter adapter;
private String typeCode;
@@ -53,7 +54,7 @@
@Override
protected void initData() {
caseListPresenter = new CaseListPresenterImpl(this);
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
eorc = getIntent().getStringExtra("eorc");
typeCode = getIntent().getStringExtra("typeCode");
typeDetailCode = getIntent().getStringExtra("typeDetailCode");
@@ -93,44 +94,33 @@
/**
* 弱应用Handler,防止内存泄漏
*/
- private static class WeakReferenceHandler extends Handler {
-
- private final WeakReference reference;
-
- private WeakReferenceHandler(CaseListResultActivity activity) {
- reference = new WeakReference<>(activity);
- }
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- CaseListResultActivity resultActivity = reference.get();
- if (msg.what == 20210425) {
- if (resultActivity.isRefresh || resultActivity.isLoadMore) {
- resultActivity.adapter.notifyDataSetChanged();
+ private final Handler.Callback callback = msg -> {
+ if (msg.what == 20210425) {
+ if (isRefresh || isLoadMore) {
+ adapter.notifyDataSetChanged();
+ } else {
+ //首次加载数据
+ if (dataBeans.size() == 0) {
+ viewBinding.emptyView.show("抱歉,没有查到符合您规定条件的案卷", null);
} else {
- //首次加载数据
- if (resultActivity.dataBeans.size() == 0) {
- resultActivity.viewBinding.emptyView.show("抱歉,没有查到符合您规定条件的案卷", null);
- } else {
- resultActivity.viewBinding.emptyView.hide();
- resultActivity.adapter = new CaseListResultAdapter(resultActivity, resultActivity.dataBeans);
- resultActivity.viewBinding.caseRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity));
- resultActivity.viewBinding.caseRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL));
- resultActivity.viewBinding.caseRecyclerView.setAdapter(resultActivity.adapter);
- resultActivity.adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() {
- @Override
- public void onClick(int position) {
- Intent intent = new Intent(resultActivity, CaseDetailActivity.class);
- intent.putExtra("id", resultActivity.dataBeans.get(position).getId());
- resultActivity.startActivity(intent);
- }
- });
- }
+ viewBinding.emptyView.hide();
+ adapter = new CaseListResultAdapter(context, dataBeans);
+ viewBinding.caseRecyclerView.setLayoutManager(new LinearLayoutManager(context));
+ viewBinding.caseRecyclerView.addItemDecoration(new DividerItemDecoration(context, DividerItemDecoration.VERTICAL));
+ viewBinding.caseRecyclerView.setAdapter(adapter);
+ adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() {
+ @Override
+ public void onClick(int position) {
+ Intent intent = new Intent(context, CaseDetailActivity.class);
+ intent.putExtra("id", dataBeans.get(position).getId());
+ startActivity(intent);
+ }
+ });
}
}
}
- }
+ return true;
+ };
@Override
public void showProgress() {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java
index 6e374cd..626720a 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java
@@ -1,6 +1,7 @@
package com.casic.dcms.ui;
import android.annotation.SuppressLint;
+import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
@@ -12,7 +13,6 @@
import android.view.MotionEvent;
import android.widget.RadioGroup;
-import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
import com.casic.dcms.R;
@@ -32,6 +32,7 @@
import com.casic.dcms.utils.ArcGisMapCreator;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.casic.dcms.widgets.AlertControlDialog;
import com.esri.arcgisruntime.concurrent.ListenableFuture;
import com.esri.arcgisruntime.data.ServiceFeatureTable;
@@ -48,7 +49,6 @@
import com.esri.arcgisruntime.symbology.PictureMarkerSymbol;
import com.esri.arcgisruntime.util.ListenableList;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -58,6 +58,7 @@
implements RadioGroup.OnCheckedChangeListener, IHandleCaseView, IVerifyCaseView, ICheckCaseView {
private static final String TAG = "CaseOnMapActivity";
+ private final Context context = this;
private HandleCasePresenterImpl handleCasePresenter;
private VerifyCasePresenterImpl caseVerifyPresenter;
private CaseCheckPresenterImpl caseCheckPresenter;
@@ -105,7 +106,7 @@
graphicsOverlays = viewBinding.mapView.getGraphicsOverlays();
//handler弱引用,防止内存泄漏
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
}
@SuppressLint("ClickableViewAccessibility")
@@ -150,48 +151,38 @@
});
}
- private static class WeakReferenceHandler extends Handler {
- private final WeakReference reference;
+ private final Handler.Callback callback = msg -> {
+ switch (msg.what) {
+ case 2021051401:
+ String caseId = (String) msg.obj;
+ new AlertControlDialog.Builder()
+ .setContext(context)
+ .setTitle("查看案卷详情")
+ .setMessage("ID:" + caseId)
+ .setNegativeButton("取消")
+ .setPositiveButton("确定")
+ .setOnDialogButtonClickListener(new AlertControlDialog.OnDialogButtonClickListener() {
+ @Override
+ public void onConfirmClick() {
+ Intent intent = new Intent(context, CaseDetailActivity.class);
+ intent.putExtra("id", caseId);
+ startActivity(intent);
+ }
- private WeakReferenceHandler(CaseOnMapActivity activity) {
- reference = new WeakReference<>(activity);
+ @Override
+ public void onCancelClick() {
+
+ }
+ }).build().show();
+ break;
+ case 2021051402:
+ ToastHelper.showToast("此附近无案卷,请重新选点", ToastHelper.WARING);
+ break;
+ default:
+ break;
}
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- CaseOnMapActivity onMapActivity = reference.get();
- switch (msg.what) {
- case 2021051401:
- String caseId = (String) msg.obj;
- new AlertControlDialog.Builder()
- .setContext(onMapActivity)
- .setTitle("查看案卷详情")
- .setMessage("ID:" + caseId)
- .setNegativeButton("取消")
- .setPositiveButton("确定")
- .setOnDialogButtonClickListener(new AlertControlDialog.OnDialogButtonClickListener() {
- @Override
- public void onConfirmClick() {
- Intent intent = new Intent(onMapActivity, CaseDetailActivity.class);
- intent.putExtra("id", caseId);
- onMapActivity.startActivity(intent);
- }
-
- @Override
- public void onCancelClick() {
-
- }
- }).build().show();
- break;
- case 2021051402:
- ToastHelper.showToast("此附近无案卷,请重新选点", ToastHelper.WARING);
- break;
- default:
- break;
- }
- }
- }
+ return true;
+ };
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java b/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java
index 5c037c4..6289181 100644
--- a/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java
@@ -3,7 +3,6 @@
import android.content.Context;
import android.content.Intent;
import android.os.Handler;
-import android.os.Message;
import android.text.TextUtils;
import android.view.View;
@@ -21,12 +20,12 @@
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.StringHelper;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.casic.dcms.widgets.datepicker.DatePopupWindow;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
@@ -53,7 +52,7 @@
@Override
protected void initData() {
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
recordPresenter = new CleanRecordPresenterImpl(this);
recordPresenter.onReadyRetrofitRequest(StringHelper.getUserBean().getId(), "", "", "", pageIndex);
}
@@ -139,59 +138,48 @@
OtherUtils.dismissLoadingDialog();
}
- private static class WeakReferenceHandler extends Handler {
-
- private final WeakReference reference;
-
- private WeakReferenceHandler(CleanResultListActivity activity) {
- reference = new WeakReference<>(activity);
- }
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- CleanResultListActivity resultActivity = reference.get();
- if (msg.what == 20210601) {
- if (resultActivity.isRefresh || resultActivity.isLoadMore) {
- resultActivity.adapter.notifyDataSetChanged();
+ private final Handler.Callback callback = msg -> {
+ if (msg.what == 20210601) {
+ if (isRefresh || isLoadMore) {
+ adapter.notifyDataSetChanged();
+ } else {
+ //首次加载数据
+ if (dataBeans.size() == 0) {
+ viewBinding.emptyView.show("抱歉,没有查到您的保洁工作记录", null);
} else {
- //首次加载数据
- if (resultActivity.dataBeans.size() == 0) {
- resultActivity.viewBinding.emptyView.show("抱歉,没有查到您的保洁工作记录", null);
- } else {
- resultActivity.viewBinding.emptyView.hide();
- resultActivity.adapter = new RecordListAdapter(resultActivity, resultActivity.dataBeans);
- resultActivity.viewBinding.recordRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity));
- resultActivity.viewBinding.recordRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL));
- resultActivity.viewBinding.recordRecyclerView.setAdapter(resultActivity.adapter);
- resultActivity.adapter.setOnItemClickListener(new RecordListAdapter.OnItemClickListener() {
- @Override
- public void onClick(int position) {
- CleanRecordBean.DataBean.RowsBean rowsBean = resultActivity.dataBeans.get(position);
- Intent intent = new Intent(resultActivity, WorkerOnMapActivity.class);
- intent.putExtra("userName", rowsBean.getUserName());
- intent.putExtra("createTime", rowsBean.getCreateTime());
- intent.putExtra("toiletName", rowsBean.getToiletName());
- String dataLng = rowsBean.getLng();
- if (TextUtils.isEmpty(dataLng)) {
- ToastHelper.showToast("经度异常", ToastHelper.ERROR);
- return;
- }
- intent.putExtra("lng", Double.parseDouble(dataLng));
- String dataLat = rowsBean.getLat();
- if (TextUtils.isEmpty(dataLat)) {
- ToastHelper.showToast("纬度异常", ToastHelper.ERROR);
- return;
- }
- intent.putExtra("lat", Double.parseDouble(dataLat));
- resultActivity.startActivity(intent);
+ viewBinding.emptyView.hide();
+ adapter = new RecordListAdapter(context, dataBeans);
+ viewBinding.recordRecyclerView.setLayoutManager(new LinearLayoutManager(context));
+ viewBinding.recordRecyclerView.addItemDecoration(new DividerItemDecoration(context, DividerItemDecoration.VERTICAL));
+ viewBinding.recordRecyclerView.setAdapter(adapter);
+ adapter.setOnItemClickListener(new RecordListAdapter.OnItemClickListener() {
+ @Override
+ public void onClick(int position) {
+ CleanRecordBean.DataBean.RowsBean rowsBean = dataBeans.get(position);
+ Intent intent = new Intent(context, WorkerOnMapActivity.class);
+ intent.putExtra("userName", rowsBean.getUserName());
+ intent.putExtra("createTime", rowsBean.getCreateTime());
+ intent.putExtra("toiletName", rowsBean.getToiletName());
+ String dataLng = rowsBean.getLng();
+ if (TextUtils.isEmpty(dataLng)) {
+ ToastHelper.showToast("经度异常", ToastHelper.ERROR);
+ return;
}
- });
- }
+ intent.putExtra("lng", Double.parseDouble(dataLng));
+ String dataLat = rowsBean.getLat();
+ if (TextUtils.isEmpty(dataLat)) {
+ ToastHelper.showToast("纬度异常", ToastHelper.ERROR);
+ return;
+ }
+ intent.putExtra("lat", Double.parseDouble(dataLat));
+ startActivity(intent);
+ }
+ });
}
}
}
- }
+ return true;
+ };
@Override
protected void onDestroy() {
diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
index 6f53e4e..4684efd 100644
--- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
@@ -50,6 +50,7 @@
import com.casic.dcms.utils.StatusBarColorUtil;
import com.casic.dcms.utils.StringHelper;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.casic.dcms.utils.callback.IHttpRequestListener;
import com.google.android.material.navigation.NavigationBarView;
import com.google.gson.Gson;
@@ -57,7 +58,6 @@
import com.igexin.sdk.PushManager;
import java.io.IOException;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
@@ -89,7 +89,7 @@
protected void initData() {
//个推初始化
PushManager.getInstance().initialize(this);
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
uploadPositionPresenter = new UploadPositionPresenterImpl(this);
registerPresenter = new PushRegisterPresenterImpl(this);
mapConfigPresenter = new GetMapConfigPresenterImpl(this);
@@ -203,59 +203,48 @@
viewBinding.mainViewPager.setAdapter(mainPageAdapter);
}
- private static class WeakReferenceHandler extends Handler {
-
- private final WeakReference reference;
-
- private WeakReferenceHandler(MainActivity activity) {
- reference = new WeakReference<>(activity);
- }
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- MainActivity mainActivity = reference.get();
- if (msg.what == Constant.PUSH_REGISTER) {
- String clientId = (String) msg.obj;
- Log.d(TAG, "注册个推Client: $clientId");
- mainActivity.registerPresenter.onReadyRetrofitRequest(clientId);
- } else if (msg.what == Constant.PUSH_CREATE_NOTIFICATION) {
- //显示小红点
- try {
- mainActivity.updateMessageNumber();
- } catch (NullPointerException e) {
- e.printStackTrace();
- }
- NoticeBean noticeBean = (NoticeBean) msg.obj;
- NotificationHelper notificationHelper = NotificationHelper.getInstance(mainActivity);
- Notification notification = notificationHelper.createDefault(
- noticeBean.getTitle(),
- noticeBean.getContent(),
- noticeBean.getCaseId(),
- CaseDetailActivity.class
- );
- notificationHelper.push(1, notification);
- } else if (msg.what == Constant.MESSAGE_NUMBER) {
- mainActivity.updateMessageNumber();
- } else if (msg.what == Constant.UPLOAD_LOCATION) {
- AMapLocation aMapLocation = (AMapLocation) msg.obj;
- try {
- double[] gcjToWgs = LocationHelper.gcjToWgs(aMapLocation.getLongitude(), aMapLocation.getLatitude());
- mainActivity.uploadPositionPresenter.onReadyRetrofitRequest(mainActivity.imei,
- String.valueOf(gcjToWgs[1]),
- String.valueOf(gcjToWgs[0]));
- } catch (NullPointerException e) {
- e.printStackTrace();
- }
- } else if (msg.what == Constant.LOGIN_OUT) {
- Log.d(TAG, "退出登录");
- //回到登录页
- SaveKeyValues.putValue("autoLogin", false);
- mainActivity.startActivity(new Intent(mainActivity, LoginActivity.class));
- mainActivity.finish();
+ private final Handler.Callback callback = msg -> {
+ if (msg.what == Constant.PUSH_REGISTER) {
+ String clientId = (String) msg.obj;
+ Log.d(TAG, "注册个推Client: $clientId");
+ registerPresenter.onReadyRetrofitRequest(clientId);
+ } else if (msg.what == Constant.PUSH_CREATE_NOTIFICATION) {
+ //显示小红点
+ try {
+ updateMessageNumber();
+ } catch (NullPointerException e) {
+ e.printStackTrace();
}
+ NoticeBean noticeBean = (NoticeBean) msg.obj;
+ NotificationHelper notificationHelper = NotificationHelper.getInstance(this);
+ Notification notification = notificationHelper.createDefault(
+ noticeBean.getTitle(),
+ noticeBean.getContent(),
+ noticeBean.getCaseId(),
+ CaseDetailActivity.class
+ );
+ notificationHelper.push(1, notification);
+ } else if (msg.what == Constant.MESSAGE_NUMBER) {
+ updateMessageNumber();
+ } else if (msg.what == Constant.UPLOAD_LOCATION) {
+ AMapLocation aMapLocation = (AMapLocation) msg.obj;
+ try {
+ double[] gcjToWgs = LocationHelper.gcjToWgs(aMapLocation.getLongitude(), aMapLocation.getLatitude());
+ uploadPositionPresenter.onReadyRetrofitRequest(imei,
+ String.valueOf(gcjToWgs[1]),
+ String.valueOf(gcjToWgs[0]));
+ } catch (NullPointerException e) {
+ e.printStackTrace();
+ }
+ } else if (msg.what == Constant.LOGIN_OUT) {
+ Log.d(TAG, "退出登录");
+ //回到登录页
+ SaveKeyValues.putValue("autoLogin", false);
+ startActivity(new Intent(this, LoginActivity.class));
+ finish();
}
- }
+ return true;
+ };
private void updateMessageNumber() {
List list = BaseApplication.getDaoSession()
diff --git a/app/src/main/java/com/casic/dcms/ui/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/ui/MaintainRecordActivity.java
index e587dd7..ef03adb 100644
--- a/app/src/main/java/com/casic/dcms/ui/MaintainRecordActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/MaintainRecordActivity.java
@@ -1,7 +1,6 @@
package com.casic.dcms.ui;
import android.os.Handler;
-import android.os.Message;
import android.view.View;
import androidx.annotation.NonNull;
@@ -17,12 +16,12 @@
import com.casic.dcms.utils.CalendarUtil;
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.casic.dcms.widgets.datepicker.DatePopupWindow;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
@@ -48,7 +47,7 @@
@Override
protected void initData() {
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
recordPresenter = new MaintainRecordPresenterImpl(this);
recordPresenter.onReadyRetrofitRequest("", "", pageIndex);
}
@@ -128,37 +127,25 @@
OtherUtils.dismissLoadingDialog();
}
- private static class WeakReferenceHandler extends Handler {
-
- private final WeakReference reference;
-
- private WeakReferenceHandler(MaintainRecordActivity activity) {
- reference = new WeakReference<>(activity);
- }
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- MaintainRecordActivity resultActivity = reference.get();
- if (msg.what == 20210622) {
- if (resultActivity.isRefresh || resultActivity.isLoadMore) {
- resultActivity.adapter.notifyDataSetChanged();
+ private final Handler.Callback callback = msg -> {
+ if (msg.what == 20210622) {
+ if (isRefresh || isLoadMore) {
+ adapter.notifyDataSetChanged();
+ } else {
+ //首次加载数据
+ if (dataBeans.size() == 0) {
+ viewBinding.emptyView.show("抱歉,没有查到相关养护记录", null);
} else {
- //首次加载数据
- if (resultActivity.dataBeans.size() == 0) {
- resultActivity.viewBinding.emptyView.show("抱歉,没有查到相关养护记录", null);
- } else {
- resultActivity.viewBinding.emptyView.hide();
- resultActivity.adapter = new MaintainRecordAdapter(resultActivity, resultActivity.dataBeans);
- resultActivity.viewBinding.recordRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity));
- resultActivity.viewBinding.recordRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL));
- resultActivity.viewBinding.recordRecyclerView.setAdapter(resultActivity.adapter);
- }
+ viewBinding.emptyView.hide();
+ adapter = new MaintainRecordAdapter(this, dataBeans);
+ viewBinding.recordRecyclerView.setLayoutManager(new LinearLayoutManager(this));
+ viewBinding.recordRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL));
+ viewBinding.recordRecyclerView.setAdapter(adapter);
}
}
}
-
- }
+ return true;
+ };
@Override
protected void onDestroy() {
diff --git a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java
index 028ee6f..b9a8d21 100644
--- a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java
@@ -3,7 +3,6 @@
import android.content.Context;
import android.content.Intent;
import android.os.Handler;
-import android.os.Message;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
@@ -25,6 +24,7 @@
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.SaveKeyValues;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.casic.dcms.widgets.CancelAlarmDialog;
import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import com.qmuiteam.qmui.widget.popup.QMUIPopup;
@@ -33,7 +33,6 @@
import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
@@ -83,7 +82,7 @@
alarmListPresenter = new AlarmListPresenterImpl(this);
alarmListPresenter.onReadyRetrofitRequest(Constant.PAGE_LIMIT, pageIndex);
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
cancelAlarmPresenter = new CancelAlarmPresenterImpl(this);
}
@@ -109,41 +108,31 @@
});
}
- private static class WeakReferenceHandler extends Handler {
- private final WeakReference reference;
-
- private WeakReferenceHandler(PipelineManagerActivity activity) {
- reference = new WeakReference<>(activity);
- }
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- PipelineManagerActivity resultActivity = reference.get();
- if (msg.what == 20210626) {
- if (resultActivity.isRefresh || resultActivity.isLoadMore) {
- resultActivity.adapter.notifyDataSetChanged();
+ private final Handler.Callback callback = msg -> {
+ if (msg.what == 20210626) {
+ if (isRefresh || isLoadMore) {
+ adapter.notifyDataSetChanged();
+ } else {
+ //首次加载数据
+ if (dataBeans.size() == 0) {
+ viewBinding.emptyView.show("设备状态很好,没有任何报警", null);
} else {
- //首次加载数据
- if (resultActivity.dataBeans.size() == 0) {
- resultActivity.viewBinding.emptyView.show("设备状态很好,没有任何报警", null);
- } else {
- resultActivity.viewBinding.emptyView.hide();
- resultActivity.adapter = new AlarmListAdapter(resultActivity, resultActivity.dataBeans);
- resultActivity.viewBinding.warningRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity));
- resultActivity.viewBinding.warningRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL));
- resultActivity.viewBinding.warningRecyclerView.setAdapter(resultActivity.adapter);
- resultActivity.adapter.setOnCancelClickListener(new AlarmListAdapter.OnCancelClickListener() {
- @Override
- public void onClick(int position) {
- resultActivity.showSingleCancelDialog(resultActivity.dataBeans.get(position).getJobId());
- }
- });
- }
+ viewBinding.emptyView.hide();
+ adapter = new AlarmListAdapter(this, dataBeans);
+ viewBinding.warningRecyclerView.setLayoutManager(new LinearLayoutManager(this));
+ viewBinding.warningRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL));
+ viewBinding.warningRecyclerView.setAdapter(adapter);
+ adapter.setOnCancelClickListener(new AlarmListAdapter.OnCancelClickListener() {
+ @Override
+ public void onClick(int position) {
+ showSingleCancelDialog(dataBeans.get(position).getJobId());
+ }
+ });
}
}
}
- }
+ return true;
+ };
//单个消警
private void showSingleCancelDialog(String jobId) {
diff --git a/app/src/main/java/com/casic/dcms/ui/WellListActivity.java b/app/src/main/java/com/casic/dcms/ui/WellListActivity.java
index 9cf4150..93aa7f8 100644
--- a/app/src/main/java/com/casic/dcms/ui/WellListActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/WellListActivity.java
@@ -2,7 +2,6 @@
import android.content.Context;
import android.os.Handler;
-import android.os.Message;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
@@ -23,6 +22,7 @@
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.casic.dcms.widgets.AlertControlDialog;
import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import com.qmuiteam.qmui.widget.popup.QMUIPopup;
@@ -31,7 +31,6 @@
import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
@@ -77,7 +76,7 @@
wellListPresenter = new WellListPresenterImpl(this);
wellListPresenter.onReadyRetrofitRequest(pageIndex);
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
optionWellPresenter = new OptionWellPresenterImpl(this);
}
@@ -103,62 +102,52 @@
});
}
- private static class WeakReferenceHandler extends Handler {
- private final WeakReference reference;
-
- private WeakReferenceHandler(WellListActivity activity) {
- reference = new WeakReference<>(activity);
- }
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- WellListActivity activity = reference.get();
- if (msg.what == 20210628) {
- if (activity.isRefresh || activity.isLoadMore) {
- activity.adapter.notifyDataSetChanged();
+ private final Handler.Callback callback = msg -> {
+ if (msg.what == 20210628) {
+ if (isRefresh || isLoadMore) {
+ adapter.notifyDataSetChanged();
+ } else {
+ //首次加载数据
+ if (dataBeans.size() == 0) {
+ viewBinding.emptyView.show("抱歉,无法为您查到窨井数据", null);
} else {
- //首次加载数据
- if (activity.dataBeans.size() == 0) {
- activity.viewBinding.emptyView.show("抱歉,无法为您查到窨井数据", null);
- } else {
- activity.viewBinding.emptyView.hide();
- activity.adapter = new WellListAdapter(activity, activity.dataBeans);
- activity.viewBinding.wellRecyclerView.setLayoutManager(new LinearLayoutManager(activity));
- activity.viewBinding.wellRecyclerView.addItemDecoration(new DividerItemDecoration(activity, DividerItemDecoration.VERTICAL));
- activity.viewBinding.wellRecyclerView.setAdapter(activity.adapter);
- activity.adapter.setOnItemClickListener(new WellListAdapter.OnItemClickListener() {
- @Override
- public void onClick(int position) {
- WellListBean.DataBean.RowsBean rowsBean = activity.dataBeans.get(position);
- String lng = rowsBean.getCoordinateX();
- String lat = rowsBean.getCoordinateY();
- OtherUtils.displayOnMap(activity, "others", lng, lat);
+ viewBinding.emptyView.hide();
+ adapter = new WellListAdapter(this, dataBeans);
+ viewBinding.wellRecyclerView.setLayoutManager(new LinearLayoutManager(this));
+ viewBinding.wellRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL));
+ viewBinding.wellRecyclerView.setAdapter(adapter);
+ adapter.setOnItemClickListener(new WellListAdapter.OnItemClickListener() {
+ @Override
+ public void onClick(int position) {
+ WellListBean.DataBean.RowsBean rowsBean = dataBeans.get(position);
+ String lng = rowsBean.getCoordinateX();
+ String lat = rowsBean.getCoordinateY();
+ OtherUtils.displayOnMap(context, "others", lng, lat);
+ }
+ });
+ adapter.setOnOptionClickListener(new WellListAdapter.OnOptionClickListener() {
+ @Override
+ public void onClick(int position) {
+ String bfzt = dataBeans.get(position).getBfzt();
+ String bfztName;
+ if (bfzt.equals("0")) {
+ bfztName = "布防";
+ bfzt = "1";
+ } else if (bfzt.equals("1")) {
+ bfztName = "撤防";
+ bfzt = "0";
+ } else {
+ ToastHelper.showToast("窨井状态错误,无法进行撤防或者布防", ToastHelper.ERROR);
+ return;
}
- });
- activity.adapter.setOnOptionClickListener(new WellListAdapter.OnOptionClickListener() {
- @Override
- public void onClick(int position) {
- String bfzt = activity.dataBeans.get(position).getBfzt();
- String bfztName;
- if (bfzt.equals("0")) {
- bfztName = "布防";
- bfzt = "1";
- } else if (bfzt.equals("1")) {
- bfztName = "撤防";
- bfzt = "0";
- } else {
- ToastHelper.showToast("窨井状态错误,无法进行撤防或者布防", ToastHelper.ERROR);
- return;
- }
- activity.showSingleOptionDialog(bfztName, activity.dataBeans.get(position).getId(), bfzt);
- }
- });
- }
+ showSingleOptionDialog(bfztName, dataBeans.get(position).getId(), bfzt);
+ }
+ });
}
}
}
- }
+ return true;
+ };
//单个撤防/布防
private void showSingleOptionDialog(String bfztName, String id, String bfzt) {
diff --git a/app/src/main/java/com/casic/dcms/ui/WorkerOnMapActivity.java b/app/src/main/java/com/casic/dcms/ui/WorkerOnMapActivity.java
index 280f13d..fd2feb6 100644
--- a/app/src/main/java/com/casic/dcms/ui/WorkerOnMapActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/WorkerOnMapActivity.java
@@ -7,14 +7,11 @@
import android.graphics.drawable.BitmapDrawable;
import android.location.Location;
import android.os.Handler;
-import android.os.Message;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.widget.TextView;
-import androidx.annotation.NonNull;
-
import com.amap.api.location.AMapLocation;
import com.casic.dcms.R;
import com.casic.dcms.base.AndroidxBaseActivity;
@@ -24,6 +21,7 @@
import com.casic.dcms.utils.LocationHelper;
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.casic.dcms.utils.callback.ILocationListener;
import com.esri.arcgisruntime.concurrent.ListenableFuture;
import com.esri.arcgisruntime.geometry.Point;
@@ -41,7 +39,6 @@
import com.qmuiteam.qmui.widget.popup.QMUIPopup;
import com.qmuiteam.qmui.widget.popup.QMUIPopups;
-import java.lang.ref.WeakReference;
import java.util.List;
import java.util.concurrent.ExecutionException;
@@ -74,7 +71,7 @@
Basemap baseMap = new Basemap(ArcGisMapCreator.createBaseLayer());
arcGISMap.setBasemap(baseMap);
viewBinding.mapView.setMap(arcGISMap);
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
}
@SuppressLint("ClickableViewAccessibility")
@@ -138,38 +135,28 @@
});
}
- private static class WeakReferenceHandler extends Handler {
- private final WeakReference reference;
-
- private WeakReferenceHandler(WorkerOnMapActivity activity) {
- reference = new WeakReference<>(activity);
+ private final Handler.Callback callback = msg -> {
+ if (msg.what == 2021060101) {
+ View popupView = LayoutInflater.from(this).inflate(R.layout.popu_worker, null);
+ TextView userNameView = popupView.findViewById(R.id.userNameView);
+ TextView signInTimeView = popupView.findViewById(R.id.signInTimeView);
+ TextView toiletNameView = popupView.findViewById(R.id.toiletNameView);
+ userNameView.setText(userName);
+ signInTimeView.setText(createTime);
+ toiletNameView.setText(toiletName);
+ QMUIPopups.popup(this, QMUIDisplayHelper.dp2px(this, 250))
+ .preferredDirection(QMUIPopup.DIRECTION_BOTTOM)
+ .view(popupView)
+ .edgeProtection(QMUIDisplayHelper.dp2px(this, 20))
+ .dimAmount(0.6f)
+ .animStyle(QMUIPopup.ANIM_GROW_FROM_CENTER)
+ .onDismiss(null)
+ .show(viewBinding.mapView);
+ } else if (msg.what == 2021060102) {
+ ToastHelper.showToast("附近无工作人员,请重新选点", ToastHelper.WARING);
}
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- WorkerOnMapActivity mapActivity = reference.get();
- if (msg.what == 2021060101) {
- View popupView = LayoutInflater.from(mapActivity).inflate(R.layout.popu_worker, null);
- TextView userNameView = popupView.findViewById(R.id.userNameView);
- TextView signInTimeView = popupView.findViewById(R.id.signInTimeView);
- TextView toiletNameView = popupView.findViewById(R.id.toiletNameView);
- userNameView.setText(mapActivity.userName);
- signInTimeView.setText(mapActivity.createTime);
- toiletNameView.setText(mapActivity.toiletName);
- QMUIPopups.popup(mapActivity, QMUIDisplayHelper.dp2px(mapActivity, 250))
- .preferredDirection(QMUIPopup.DIRECTION_BOTTOM)
- .view(popupView)
- .edgeProtection(QMUIDisplayHelper.dp2px(mapActivity, 20))
- .dimAmount(0.6f)
- .animStyle(QMUIPopup.ANIM_GROW_FROM_CENTER)
- .onDismiss(null)
- .show(mapActivity.viewBinding.mapView);
- } else if (msg.what == 2021060102) {
- ToastHelper.showToast("附近无工作人员,请重新选点", ToastHelper.WARING);
- }
- }
- }
+ return true;
+ };
private void addPictureMarker(Point point) {
Bitmap caseBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.on_line);
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/LightOnMapFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/LightOnMapFragment.java
index 0015d9e..fc056ef 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/LightOnMapFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/LightOnMapFragment.java
@@ -14,8 +14,6 @@
import android.widget.ImageView;
import android.widget.TextView;
-import androidx.annotation.NonNull;
-
import com.amap.api.location.AMapLocation;
import com.casic.dcms.R;
import com.casic.dcms.base.AndroidxBaseFragment;
@@ -35,6 +33,7 @@
import com.casic.dcms.utils.LocationHelper;
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.casic.dcms.utils.callback.IHttpRequestListener;
import com.casic.dcms.utils.callback.ILocationListener;
import com.esri.arcgisruntime.concurrent.ListenableFuture;
@@ -57,7 +56,6 @@
import org.json.JSONObject;
import java.io.IOException;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ExecutionException;
@@ -81,7 +79,7 @@
context = getContext();
lightLocalBeanDao = BaseApplication.getDaoSession().getStreetLightLocalBeanDao();
lightMapPresenter = new LightMapPresenterImpl(this);
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
controlPresenter = new LightControlPresenterImpl(this);
}
@@ -195,98 +193,87 @@
ToastHelper.showToast("操作失败", ToastHelper.ERROR);
}
- private static class WeakReferenceHandler extends Handler {
- private final WeakReference reference;
+ private final Handler.Callback callback = msg -> {
+ switch (msg.what) {
+ case 2021062401:
+ String lampId = (String) msg.obj;
- private WeakReferenceHandler(LightOnMapFragment fragment) {
- reference = new WeakReference<>(fragment);
- }
+ View popupView = LayoutInflater.from(context).inflate(R.layout.popu_street_light, null);
+ TextView lightStateView = popupView.findViewById(R.id.lightStateView);
+ TextView lightAddressView = popupView.findViewById(R.id.lightAddressView);
+ TextView lightStreetView = popupView.findViewById(R.id.lightStreetView);
+ TextView lightElecView = popupView.findViewById(R.id.lightElecView);
+ TextView lightVolView = popupView.findViewById(R.id.lightVolView);
+ TextView lightTimeView = popupView.findViewById(R.id.lightTimeView);
+ ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch);
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- LightOnMapFragment fragment = reference.get();
- Context context = fragment.context;
- switch (msg.what) {
- case 2021062401:
- String lampId = (String) msg.obj;
+ OtherUtils.showLoadingDialog(context, "路灯详情获取中,请稍后...");
+ HttpRequestHelper.doRequest(Constant.LIGHT_DETAIL, lampId, new IHttpRequestListener() {
+ @Override
+ public void onSuccess(ResponseBody resultBean) {
+ OtherUtils.dismissLoadingDialog();
+ try {
+ String string = resultBean.string();
+ JSONObject jsonObject = new JSONObject(string);
+ int code = jsonObject.getInt("code");
+ if (code == 200) {
+ JSONObject dataObject = jsonObject.getJSONObject("data");
- View popupView = LayoutInflater.from(context).inflate(R.layout.popu_street_light, null);
- TextView lightStateView = popupView.findViewById(R.id.lightStateView);
- TextView lightAddressView = popupView.findViewById(R.id.lightAddressView);
- TextView lightStreetView = popupView.findViewById(R.id.lightStreetView);
- TextView lightElecView = popupView.findViewById(R.id.lightElecView);
- TextView lightVolView = popupView.findViewById(R.id.lightVolView);
- TextView lightTimeView = popupView.findViewById(R.id.lightTimeView);
- ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch);
+ String statusName = dataObject.getString("statusName");
+ lightStateView.setText(statusName);
+ lightAddressView.setText(dataObject.getString("address"));
+ lightStreetView.setText(dataObject.getString("streetName"));
+ lightElecView.setText(String.valueOf(dataObject.getDouble("latestElec")));
+ lightVolView.setText(String.valueOf(dataObject.getDouble("latestVol")));
+ lightTimeView.setText(dataObject.getString("latestTime"));
- OtherUtils.showLoadingDialog(context, "路灯详情获取中,请稍后...");
- HttpRequestHelper.doRequest(Constant.LIGHT_DETAIL, lampId, new IHttpRequestListener() {
- @Override
- public void onSuccess(ResponseBody resultBean) {
- OtherUtils.dismissLoadingDialog();
- try {
- String string = resultBean.string();
- JSONObject jsonObject = new JSONObject(string);
- int code = jsonObject.getInt("code");
- if (code == 200) {
- JSONObject dataObject = jsonObject.getJSONObject("data");
+ QMUIPopups.popup(context, QMUIDisplayHelper.dp2px(context, 280))
+ .preferredDirection(QMUIPopup.DIRECTION_BOTTOM)
+ .view(popupView)
+ .edgeProtection(QMUIDisplayHelper.dp2px(context, 20))
+ .dimAmount(0.6f)
+ .animStyle(QMUIPopup.ANIM_GROW_FROM_CENTER)
+ .onDismiss(null)
+ .show(viewBinding.mapView);
- String statusName = dataObject.getString("statusName");
- lightStateView.setText(statusName);
- lightAddressView.setText(dataObject.getString("address"));
- lightStreetView.setText(dataObject.getString("streetName"));
- lightElecView.setText(String.valueOf(dataObject.getDouble("latestElec")));
- lightVolView.setText(String.valueOf(dataObject.getDouble("latestVol")));
- lightTimeView.setText(dataObject.getString("latestTime"));
+ lightSwitch.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ List lampIds = new ArrayList<>();
+ lampIds.add(Long.parseLong(lampId));
- QMUIPopups.popup(context, QMUIDisplayHelper.dp2px(context, 280))
- .preferredDirection(QMUIPopup.DIRECTION_BOTTOM)
- .view(popupView)
- .edgeProtection(QMUIDisplayHelper.dp2px(context, 20))
- .dimAmount(0.6f)
- .animStyle(QMUIPopup.ANIM_GROW_FROM_CENTER)
- .onDismiss(null)
- .show(fragment.viewBinding.mapView);
-
- lightSwitch.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- List lampIds = new ArrayList<>();
- lampIds.add(Long.parseLong(lampId));
-
- String controlType;
- if (statusName.equals("离线")) {
- controlType = "1";
- } else {
- controlType = "0";
- }
- fragment.controlPresenter.onReadyRetrofitRequest(lampIds, controlType);
+ String controlType;
+ if (statusName.equals("离线")) {
+ controlType = "1";
+ } else {
+ controlType = "0";
}
- });
- } else {
- ToastHelper.showToast("服务器异常,请重新选点", ToastHelper.ERROR);
- }
- } catch (JSONException | IOException e) {
- ToastHelper.showToast("解析失败,请重新选点", ToastHelper.ERROR);
+ controlPresenter.onReadyRetrofitRequest(lampIds, controlType);
+ }
+ });
+ } else {
+ ToastHelper.showToast("服务器异常,请重新选点", ToastHelper.ERROR);
}
+ } catch (JSONException | IOException e) {
+ ToastHelper.showToast("解析失败,请重新选点", ToastHelper.ERROR);
}
+ }
- @Override
- public void onFailure(Throwable throwable) {
- OtherUtils.dismissLoadingDialog();
- ToastHelper.showToast("网络连接失败,请重新选点", ToastHelper.ERROR);
- }
- });
- break;
- case 2021062402:
- ToastHelper.showToast("此附近无路灯,请重新选点", ToastHelper.ERROR);
- break;
- default:
- break;
- }
+ @Override
+ public void onFailure(Throwable throwable) {
+ OtherUtils.dismissLoadingDialog();
+ ToastHelper.showToast("网络连接失败,请重新选点", ToastHelper.ERROR);
+ }
+ });
+ break;
+ case 2021062402:
+ ToastHelper.showToast("此附近无路灯,请重新选点", ToastHelper.ERROR);
+ break;
+ default:
+ break;
}
- }
+ return true;
+ };
private void addPictureMarker(List points) {
for (Point point : points) {
diff --git a/.idea/misc.xml b/.idea/misc.xml
index c4e854b..cf5266d 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -22,6 +22,7 @@
+
@@ -50,6 +51,7 @@
+
@@ -77,6 +79,7 @@
+
@@ -95,6 +98,7 @@
+
@@ -118,14 +122,14 @@
-
+
-
+
diff --git a/app/build.gradle b/app/build.gradle
index 0d88385..a89466d 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -44,10 +44,10 @@
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
- implementation 'androidx.core:core-ktx:1.6.0'
+ implementation 'androidx.core:core-ktx:1.7.0'
implementation 'androidx.appcompat:appcompat:1.4.0'
implementation 'com.google.android.material:material:1.4.0'
- implementation 'androidx.constraintlayout:constraintlayout:2.1.2'
+ implementation 'androidx.constraintlayout:constraintlayout:2.1.3'
//Google官方授权框架
implementation 'pub.devrel:easypermissions:3.0.0'
//腾讯Android UI框架
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/impl/CaseHandledListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/impl/CaseHandledListModelImpl.java
index 02c6875..37b76ac 100644
--- a/app/src/main/java/com/casic/dcms/mvp/model/impl/CaseHandledListModelImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/model/impl/CaseHandledListModelImpl.java
@@ -26,7 +26,7 @@
*/
@Override
public Subscription sendCaseHandledListRequest(int offset) {
- Observable observable = RetrofitServiceManager.getCaseHandledListResult(offset);
+ Observable observable = RetrofitServiceManager.handleCaseResult(offset);
return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
@Override
public void onCompleted() {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
index 550750c..0c77aea 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
@@ -28,7 +28,7 @@
import com.casic.dcms.mvp.view.IGetCaseNextNodeView;
import com.casic.dcms.mvp.view.IUploadFileView;
import com.casic.dcms.ui.fragment.handle.CaseHandledFragment;
-import com.casic.dcms.ui.fragment.handle.CaseTimeoutFragment;
+import com.casic.dcms.ui.fragment.handle.CaseOverTimeFragment;
import com.casic.dcms.ui.fragment.handle.CaseTodoFragment;
import com.casic.dcms.ui.fragment.handle.CaseUrgentFragment;
import com.casic.dcms.utils.Constant;
@@ -336,7 +336,7 @@
ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS);
switch (title) {
case "超时案卷":
- CaseTimeoutFragment.sendEmptyMessage(Constant.CASE_HANDLE_OK);
+ CaseOverTimeFragment.sendEmptyMessage(Constant.CASE_HANDLE_OK);
CaseHandledFragment.sendEmptyMessage(Constant.CASE_HANDLE_OK);
break;
case "紧急案卷":
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java
index 0e13b10..6b721eb 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java
@@ -1,8 +1,8 @@
package com.casic.dcms.ui;
+import android.content.Context;
import android.content.Intent;
import android.os.Handler;
-import android.os.Message;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.DividerItemDecoration;
@@ -16,16 +16,17 @@
import com.casic.dcms.mvp.view.ISearchCaseResultView;
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
public class CaseListResultActivity extends AndroidxBaseActivity implements ISearchCaseResultView {
+ private final Context context = this;
private CaseListPresenterImpl caseListPresenter;
private CaseListResultAdapter adapter;
private String typeCode;
@@ -53,7 +54,7 @@
@Override
protected void initData() {
caseListPresenter = new CaseListPresenterImpl(this);
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
eorc = getIntent().getStringExtra("eorc");
typeCode = getIntent().getStringExtra("typeCode");
typeDetailCode = getIntent().getStringExtra("typeDetailCode");
@@ -93,44 +94,33 @@
/**
* 弱应用Handler,防止内存泄漏
*/
- private static class WeakReferenceHandler extends Handler {
-
- private final WeakReference reference;
-
- private WeakReferenceHandler(CaseListResultActivity activity) {
- reference = new WeakReference<>(activity);
- }
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- CaseListResultActivity resultActivity = reference.get();
- if (msg.what == 20210425) {
- if (resultActivity.isRefresh || resultActivity.isLoadMore) {
- resultActivity.adapter.notifyDataSetChanged();
+ private final Handler.Callback callback = msg -> {
+ if (msg.what == 20210425) {
+ if (isRefresh || isLoadMore) {
+ adapter.notifyDataSetChanged();
+ } else {
+ //首次加载数据
+ if (dataBeans.size() == 0) {
+ viewBinding.emptyView.show("抱歉,没有查到符合您规定条件的案卷", null);
} else {
- //首次加载数据
- if (resultActivity.dataBeans.size() == 0) {
- resultActivity.viewBinding.emptyView.show("抱歉,没有查到符合您规定条件的案卷", null);
- } else {
- resultActivity.viewBinding.emptyView.hide();
- resultActivity.adapter = new CaseListResultAdapter(resultActivity, resultActivity.dataBeans);
- resultActivity.viewBinding.caseRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity));
- resultActivity.viewBinding.caseRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL));
- resultActivity.viewBinding.caseRecyclerView.setAdapter(resultActivity.adapter);
- resultActivity.adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() {
- @Override
- public void onClick(int position) {
- Intent intent = new Intent(resultActivity, CaseDetailActivity.class);
- intent.putExtra("id", resultActivity.dataBeans.get(position).getId());
- resultActivity.startActivity(intent);
- }
- });
- }
+ viewBinding.emptyView.hide();
+ adapter = new CaseListResultAdapter(context, dataBeans);
+ viewBinding.caseRecyclerView.setLayoutManager(new LinearLayoutManager(context));
+ viewBinding.caseRecyclerView.addItemDecoration(new DividerItemDecoration(context, DividerItemDecoration.VERTICAL));
+ viewBinding.caseRecyclerView.setAdapter(adapter);
+ adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() {
+ @Override
+ public void onClick(int position) {
+ Intent intent = new Intent(context, CaseDetailActivity.class);
+ intent.putExtra("id", dataBeans.get(position).getId());
+ startActivity(intent);
+ }
+ });
}
}
}
- }
+ return true;
+ };
@Override
public void showProgress() {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java
index 6e374cd..626720a 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java
@@ -1,6 +1,7 @@
package com.casic.dcms.ui;
import android.annotation.SuppressLint;
+import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
@@ -12,7 +13,6 @@
import android.view.MotionEvent;
import android.widget.RadioGroup;
-import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
import com.casic.dcms.R;
@@ -32,6 +32,7 @@
import com.casic.dcms.utils.ArcGisMapCreator;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.casic.dcms.widgets.AlertControlDialog;
import com.esri.arcgisruntime.concurrent.ListenableFuture;
import com.esri.arcgisruntime.data.ServiceFeatureTable;
@@ -48,7 +49,6 @@
import com.esri.arcgisruntime.symbology.PictureMarkerSymbol;
import com.esri.arcgisruntime.util.ListenableList;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -58,6 +58,7 @@
implements RadioGroup.OnCheckedChangeListener, IHandleCaseView, IVerifyCaseView, ICheckCaseView {
private static final String TAG = "CaseOnMapActivity";
+ private final Context context = this;
private HandleCasePresenterImpl handleCasePresenter;
private VerifyCasePresenterImpl caseVerifyPresenter;
private CaseCheckPresenterImpl caseCheckPresenter;
@@ -105,7 +106,7 @@
graphicsOverlays = viewBinding.mapView.getGraphicsOverlays();
//handler弱引用,防止内存泄漏
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
}
@SuppressLint("ClickableViewAccessibility")
@@ -150,48 +151,38 @@
});
}
- private static class WeakReferenceHandler extends Handler {
- private final WeakReference reference;
+ private final Handler.Callback callback = msg -> {
+ switch (msg.what) {
+ case 2021051401:
+ String caseId = (String) msg.obj;
+ new AlertControlDialog.Builder()
+ .setContext(context)
+ .setTitle("查看案卷详情")
+ .setMessage("ID:" + caseId)
+ .setNegativeButton("取消")
+ .setPositiveButton("确定")
+ .setOnDialogButtonClickListener(new AlertControlDialog.OnDialogButtonClickListener() {
+ @Override
+ public void onConfirmClick() {
+ Intent intent = new Intent(context, CaseDetailActivity.class);
+ intent.putExtra("id", caseId);
+ startActivity(intent);
+ }
- private WeakReferenceHandler(CaseOnMapActivity activity) {
- reference = new WeakReference<>(activity);
+ @Override
+ public void onCancelClick() {
+
+ }
+ }).build().show();
+ break;
+ case 2021051402:
+ ToastHelper.showToast("此附近无案卷,请重新选点", ToastHelper.WARING);
+ break;
+ default:
+ break;
}
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- CaseOnMapActivity onMapActivity = reference.get();
- switch (msg.what) {
- case 2021051401:
- String caseId = (String) msg.obj;
- new AlertControlDialog.Builder()
- .setContext(onMapActivity)
- .setTitle("查看案卷详情")
- .setMessage("ID:" + caseId)
- .setNegativeButton("取消")
- .setPositiveButton("确定")
- .setOnDialogButtonClickListener(new AlertControlDialog.OnDialogButtonClickListener() {
- @Override
- public void onConfirmClick() {
- Intent intent = new Intent(onMapActivity, CaseDetailActivity.class);
- intent.putExtra("id", caseId);
- onMapActivity.startActivity(intent);
- }
-
- @Override
- public void onCancelClick() {
-
- }
- }).build().show();
- break;
- case 2021051402:
- ToastHelper.showToast("此附近无案卷,请重新选点", ToastHelper.WARING);
- break;
- default:
- break;
- }
- }
- }
+ return true;
+ };
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java b/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java
index 5c037c4..6289181 100644
--- a/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java
@@ -3,7 +3,6 @@
import android.content.Context;
import android.content.Intent;
import android.os.Handler;
-import android.os.Message;
import android.text.TextUtils;
import android.view.View;
@@ -21,12 +20,12 @@
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.StringHelper;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.casic.dcms.widgets.datepicker.DatePopupWindow;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
@@ -53,7 +52,7 @@
@Override
protected void initData() {
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
recordPresenter = new CleanRecordPresenterImpl(this);
recordPresenter.onReadyRetrofitRequest(StringHelper.getUserBean().getId(), "", "", "", pageIndex);
}
@@ -139,59 +138,48 @@
OtherUtils.dismissLoadingDialog();
}
- private static class WeakReferenceHandler extends Handler {
-
- private final WeakReference reference;
-
- private WeakReferenceHandler(CleanResultListActivity activity) {
- reference = new WeakReference<>(activity);
- }
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- CleanResultListActivity resultActivity = reference.get();
- if (msg.what == 20210601) {
- if (resultActivity.isRefresh || resultActivity.isLoadMore) {
- resultActivity.adapter.notifyDataSetChanged();
+ private final Handler.Callback callback = msg -> {
+ if (msg.what == 20210601) {
+ if (isRefresh || isLoadMore) {
+ adapter.notifyDataSetChanged();
+ } else {
+ //首次加载数据
+ if (dataBeans.size() == 0) {
+ viewBinding.emptyView.show("抱歉,没有查到您的保洁工作记录", null);
} else {
- //首次加载数据
- if (resultActivity.dataBeans.size() == 0) {
- resultActivity.viewBinding.emptyView.show("抱歉,没有查到您的保洁工作记录", null);
- } else {
- resultActivity.viewBinding.emptyView.hide();
- resultActivity.adapter = new RecordListAdapter(resultActivity, resultActivity.dataBeans);
- resultActivity.viewBinding.recordRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity));
- resultActivity.viewBinding.recordRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL));
- resultActivity.viewBinding.recordRecyclerView.setAdapter(resultActivity.adapter);
- resultActivity.adapter.setOnItemClickListener(new RecordListAdapter.OnItemClickListener() {
- @Override
- public void onClick(int position) {
- CleanRecordBean.DataBean.RowsBean rowsBean = resultActivity.dataBeans.get(position);
- Intent intent = new Intent(resultActivity, WorkerOnMapActivity.class);
- intent.putExtra("userName", rowsBean.getUserName());
- intent.putExtra("createTime", rowsBean.getCreateTime());
- intent.putExtra("toiletName", rowsBean.getToiletName());
- String dataLng = rowsBean.getLng();
- if (TextUtils.isEmpty(dataLng)) {
- ToastHelper.showToast("经度异常", ToastHelper.ERROR);
- return;
- }
- intent.putExtra("lng", Double.parseDouble(dataLng));
- String dataLat = rowsBean.getLat();
- if (TextUtils.isEmpty(dataLat)) {
- ToastHelper.showToast("纬度异常", ToastHelper.ERROR);
- return;
- }
- intent.putExtra("lat", Double.parseDouble(dataLat));
- resultActivity.startActivity(intent);
+ viewBinding.emptyView.hide();
+ adapter = new RecordListAdapter(context, dataBeans);
+ viewBinding.recordRecyclerView.setLayoutManager(new LinearLayoutManager(context));
+ viewBinding.recordRecyclerView.addItemDecoration(new DividerItemDecoration(context, DividerItemDecoration.VERTICAL));
+ viewBinding.recordRecyclerView.setAdapter(adapter);
+ adapter.setOnItemClickListener(new RecordListAdapter.OnItemClickListener() {
+ @Override
+ public void onClick(int position) {
+ CleanRecordBean.DataBean.RowsBean rowsBean = dataBeans.get(position);
+ Intent intent = new Intent(context, WorkerOnMapActivity.class);
+ intent.putExtra("userName", rowsBean.getUserName());
+ intent.putExtra("createTime", rowsBean.getCreateTime());
+ intent.putExtra("toiletName", rowsBean.getToiletName());
+ String dataLng = rowsBean.getLng();
+ if (TextUtils.isEmpty(dataLng)) {
+ ToastHelper.showToast("经度异常", ToastHelper.ERROR);
+ return;
}
- });
- }
+ intent.putExtra("lng", Double.parseDouble(dataLng));
+ String dataLat = rowsBean.getLat();
+ if (TextUtils.isEmpty(dataLat)) {
+ ToastHelper.showToast("纬度异常", ToastHelper.ERROR);
+ return;
+ }
+ intent.putExtra("lat", Double.parseDouble(dataLat));
+ startActivity(intent);
+ }
+ });
}
}
}
- }
+ return true;
+ };
@Override
protected void onDestroy() {
diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
index 6f53e4e..4684efd 100644
--- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
@@ -50,6 +50,7 @@
import com.casic.dcms.utils.StatusBarColorUtil;
import com.casic.dcms.utils.StringHelper;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.casic.dcms.utils.callback.IHttpRequestListener;
import com.google.android.material.navigation.NavigationBarView;
import com.google.gson.Gson;
@@ -57,7 +58,6 @@
import com.igexin.sdk.PushManager;
import java.io.IOException;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
@@ -89,7 +89,7 @@
protected void initData() {
//个推初始化
PushManager.getInstance().initialize(this);
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
uploadPositionPresenter = new UploadPositionPresenterImpl(this);
registerPresenter = new PushRegisterPresenterImpl(this);
mapConfigPresenter = new GetMapConfigPresenterImpl(this);
@@ -203,59 +203,48 @@
viewBinding.mainViewPager.setAdapter(mainPageAdapter);
}
- private static class WeakReferenceHandler extends Handler {
-
- private final WeakReference reference;
-
- private WeakReferenceHandler(MainActivity activity) {
- reference = new WeakReference<>(activity);
- }
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- MainActivity mainActivity = reference.get();
- if (msg.what == Constant.PUSH_REGISTER) {
- String clientId = (String) msg.obj;
- Log.d(TAG, "注册个推Client: $clientId");
- mainActivity.registerPresenter.onReadyRetrofitRequest(clientId);
- } else if (msg.what == Constant.PUSH_CREATE_NOTIFICATION) {
- //显示小红点
- try {
- mainActivity.updateMessageNumber();
- } catch (NullPointerException e) {
- e.printStackTrace();
- }
- NoticeBean noticeBean = (NoticeBean) msg.obj;
- NotificationHelper notificationHelper = NotificationHelper.getInstance(mainActivity);
- Notification notification = notificationHelper.createDefault(
- noticeBean.getTitle(),
- noticeBean.getContent(),
- noticeBean.getCaseId(),
- CaseDetailActivity.class
- );
- notificationHelper.push(1, notification);
- } else if (msg.what == Constant.MESSAGE_NUMBER) {
- mainActivity.updateMessageNumber();
- } else if (msg.what == Constant.UPLOAD_LOCATION) {
- AMapLocation aMapLocation = (AMapLocation) msg.obj;
- try {
- double[] gcjToWgs = LocationHelper.gcjToWgs(aMapLocation.getLongitude(), aMapLocation.getLatitude());
- mainActivity.uploadPositionPresenter.onReadyRetrofitRequest(mainActivity.imei,
- String.valueOf(gcjToWgs[1]),
- String.valueOf(gcjToWgs[0]));
- } catch (NullPointerException e) {
- e.printStackTrace();
- }
- } else if (msg.what == Constant.LOGIN_OUT) {
- Log.d(TAG, "退出登录");
- //回到登录页
- SaveKeyValues.putValue("autoLogin", false);
- mainActivity.startActivity(new Intent(mainActivity, LoginActivity.class));
- mainActivity.finish();
+ private final Handler.Callback callback = msg -> {
+ if (msg.what == Constant.PUSH_REGISTER) {
+ String clientId = (String) msg.obj;
+ Log.d(TAG, "注册个推Client: $clientId");
+ registerPresenter.onReadyRetrofitRequest(clientId);
+ } else if (msg.what == Constant.PUSH_CREATE_NOTIFICATION) {
+ //显示小红点
+ try {
+ updateMessageNumber();
+ } catch (NullPointerException e) {
+ e.printStackTrace();
}
+ NoticeBean noticeBean = (NoticeBean) msg.obj;
+ NotificationHelper notificationHelper = NotificationHelper.getInstance(this);
+ Notification notification = notificationHelper.createDefault(
+ noticeBean.getTitle(),
+ noticeBean.getContent(),
+ noticeBean.getCaseId(),
+ CaseDetailActivity.class
+ );
+ notificationHelper.push(1, notification);
+ } else if (msg.what == Constant.MESSAGE_NUMBER) {
+ updateMessageNumber();
+ } else if (msg.what == Constant.UPLOAD_LOCATION) {
+ AMapLocation aMapLocation = (AMapLocation) msg.obj;
+ try {
+ double[] gcjToWgs = LocationHelper.gcjToWgs(aMapLocation.getLongitude(), aMapLocation.getLatitude());
+ uploadPositionPresenter.onReadyRetrofitRequest(imei,
+ String.valueOf(gcjToWgs[1]),
+ String.valueOf(gcjToWgs[0]));
+ } catch (NullPointerException e) {
+ e.printStackTrace();
+ }
+ } else if (msg.what == Constant.LOGIN_OUT) {
+ Log.d(TAG, "退出登录");
+ //回到登录页
+ SaveKeyValues.putValue("autoLogin", false);
+ startActivity(new Intent(this, LoginActivity.class));
+ finish();
}
- }
+ return true;
+ };
private void updateMessageNumber() {
List list = BaseApplication.getDaoSession()
diff --git a/app/src/main/java/com/casic/dcms/ui/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/ui/MaintainRecordActivity.java
index e587dd7..ef03adb 100644
--- a/app/src/main/java/com/casic/dcms/ui/MaintainRecordActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/MaintainRecordActivity.java
@@ -1,7 +1,6 @@
package com.casic.dcms.ui;
import android.os.Handler;
-import android.os.Message;
import android.view.View;
import androidx.annotation.NonNull;
@@ -17,12 +16,12 @@
import com.casic.dcms.utils.CalendarUtil;
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.casic.dcms.widgets.datepicker.DatePopupWindow;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
@@ -48,7 +47,7 @@
@Override
protected void initData() {
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
recordPresenter = new MaintainRecordPresenterImpl(this);
recordPresenter.onReadyRetrofitRequest("", "", pageIndex);
}
@@ -128,37 +127,25 @@
OtherUtils.dismissLoadingDialog();
}
- private static class WeakReferenceHandler extends Handler {
-
- private final WeakReference reference;
-
- private WeakReferenceHandler(MaintainRecordActivity activity) {
- reference = new WeakReference<>(activity);
- }
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- MaintainRecordActivity resultActivity = reference.get();
- if (msg.what == 20210622) {
- if (resultActivity.isRefresh || resultActivity.isLoadMore) {
- resultActivity.adapter.notifyDataSetChanged();
+ private final Handler.Callback callback = msg -> {
+ if (msg.what == 20210622) {
+ if (isRefresh || isLoadMore) {
+ adapter.notifyDataSetChanged();
+ } else {
+ //首次加载数据
+ if (dataBeans.size() == 0) {
+ viewBinding.emptyView.show("抱歉,没有查到相关养护记录", null);
} else {
- //首次加载数据
- if (resultActivity.dataBeans.size() == 0) {
- resultActivity.viewBinding.emptyView.show("抱歉,没有查到相关养护记录", null);
- } else {
- resultActivity.viewBinding.emptyView.hide();
- resultActivity.adapter = new MaintainRecordAdapter(resultActivity, resultActivity.dataBeans);
- resultActivity.viewBinding.recordRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity));
- resultActivity.viewBinding.recordRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL));
- resultActivity.viewBinding.recordRecyclerView.setAdapter(resultActivity.adapter);
- }
+ viewBinding.emptyView.hide();
+ adapter = new MaintainRecordAdapter(this, dataBeans);
+ viewBinding.recordRecyclerView.setLayoutManager(new LinearLayoutManager(this));
+ viewBinding.recordRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL));
+ viewBinding.recordRecyclerView.setAdapter(adapter);
}
}
}
-
- }
+ return true;
+ };
@Override
protected void onDestroy() {
diff --git a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java
index 028ee6f..b9a8d21 100644
--- a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java
@@ -3,7 +3,6 @@
import android.content.Context;
import android.content.Intent;
import android.os.Handler;
-import android.os.Message;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
@@ -25,6 +24,7 @@
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.SaveKeyValues;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.casic.dcms.widgets.CancelAlarmDialog;
import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import com.qmuiteam.qmui.widget.popup.QMUIPopup;
@@ -33,7 +33,6 @@
import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
@@ -83,7 +82,7 @@
alarmListPresenter = new AlarmListPresenterImpl(this);
alarmListPresenter.onReadyRetrofitRequest(Constant.PAGE_LIMIT, pageIndex);
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
cancelAlarmPresenter = new CancelAlarmPresenterImpl(this);
}
@@ -109,41 +108,31 @@
});
}
- private static class WeakReferenceHandler extends Handler {
- private final WeakReference reference;
-
- private WeakReferenceHandler(PipelineManagerActivity activity) {
- reference = new WeakReference<>(activity);
- }
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- PipelineManagerActivity resultActivity = reference.get();
- if (msg.what == 20210626) {
- if (resultActivity.isRefresh || resultActivity.isLoadMore) {
- resultActivity.adapter.notifyDataSetChanged();
+ private final Handler.Callback callback = msg -> {
+ if (msg.what == 20210626) {
+ if (isRefresh || isLoadMore) {
+ adapter.notifyDataSetChanged();
+ } else {
+ //首次加载数据
+ if (dataBeans.size() == 0) {
+ viewBinding.emptyView.show("设备状态很好,没有任何报警", null);
} else {
- //首次加载数据
- if (resultActivity.dataBeans.size() == 0) {
- resultActivity.viewBinding.emptyView.show("设备状态很好,没有任何报警", null);
- } else {
- resultActivity.viewBinding.emptyView.hide();
- resultActivity.adapter = new AlarmListAdapter(resultActivity, resultActivity.dataBeans);
- resultActivity.viewBinding.warningRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity));
- resultActivity.viewBinding.warningRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL));
- resultActivity.viewBinding.warningRecyclerView.setAdapter(resultActivity.adapter);
- resultActivity.adapter.setOnCancelClickListener(new AlarmListAdapter.OnCancelClickListener() {
- @Override
- public void onClick(int position) {
- resultActivity.showSingleCancelDialog(resultActivity.dataBeans.get(position).getJobId());
- }
- });
- }
+ viewBinding.emptyView.hide();
+ adapter = new AlarmListAdapter(this, dataBeans);
+ viewBinding.warningRecyclerView.setLayoutManager(new LinearLayoutManager(this));
+ viewBinding.warningRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL));
+ viewBinding.warningRecyclerView.setAdapter(adapter);
+ adapter.setOnCancelClickListener(new AlarmListAdapter.OnCancelClickListener() {
+ @Override
+ public void onClick(int position) {
+ showSingleCancelDialog(dataBeans.get(position).getJobId());
+ }
+ });
}
}
}
- }
+ return true;
+ };
//单个消警
private void showSingleCancelDialog(String jobId) {
diff --git a/app/src/main/java/com/casic/dcms/ui/WellListActivity.java b/app/src/main/java/com/casic/dcms/ui/WellListActivity.java
index 9cf4150..93aa7f8 100644
--- a/app/src/main/java/com/casic/dcms/ui/WellListActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/WellListActivity.java
@@ -2,7 +2,6 @@
import android.content.Context;
import android.os.Handler;
-import android.os.Message;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
@@ -23,6 +22,7 @@
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.casic.dcms.widgets.AlertControlDialog;
import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import com.qmuiteam.qmui.widget.popup.QMUIPopup;
@@ -31,7 +31,6 @@
import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
@@ -77,7 +76,7 @@
wellListPresenter = new WellListPresenterImpl(this);
wellListPresenter.onReadyRetrofitRequest(pageIndex);
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
optionWellPresenter = new OptionWellPresenterImpl(this);
}
@@ -103,62 +102,52 @@
});
}
- private static class WeakReferenceHandler extends Handler {
- private final WeakReference reference;
-
- private WeakReferenceHandler(WellListActivity activity) {
- reference = new WeakReference<>(activity);
- }
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- WellListActivity activity = reference.get();
- if (msg.what == 20210628) {
- if (activity.isRefresh || activity.isLoadMore) {
- activity.adapter.notifyDataSetChanged();
+ private final Handler.Callback callback = msg -> {
+ if (msg.what == 20210628) {
+ if (isRefresh || isLoadMore) {
+ adapter.notifyDataSetChanged();
+ } else {
+ //首次加载数据
+ if (dataBeans.size() == 0) {
+ viewBinding.emptyView.show("抱歉,无法为您查到窨井数据", null);
} else {
- //首次加载数据
- if (activity.dataBeans.size() == 0) {
- activity.viewBinding.emptyView.show("抱歉,无法为您查到窨井数据", null);
- } else {
- activity.viewBinding.emptyView.hide();
- activity.adapter = new WellListAdapter(activity, activity.dataBeans);
- activity.viewBinding.wellRecyclerView.setLayoutManager(new LinearLayoutManager(activity));
- activity.viewBinding.wellRecyclerView.addItemDecoration(new DividerItemDecoration(activity, DividerItemDecoration.VERTICAL));
- activity.viewBinding.wellRecyclerView.setAdapter(activity.adapter);
- activity.adapter.setOnItemClickListener(new WellListAdapter.OnItemClickListener() {
- @Override
- public void onClick(int position) {
- WellListBean.DataBean.RowsBean rowsBean = activity.dataBeans.get(position);
- String lng = rowsBean.getCoordinateX();
- String lat = rowsBean.getCoordinateY();
- OtherUtils.displayOnMap(activity, "others", lng, lat);
+ viewBinding.emptyView.hide();
+ adapter = new WellListAdapter(this, dataBeans);
+ viewBinding.wellRecyclerView.setLayoutManager(new LinearLayoutManager(this));
+ viewBinding.wellRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL));
+ viewBinding.wellRecyclerView.setAdapter(adapter);
+ adapter.setOnItemClickListener(new WellListAdapter.OnItemClickListener() {
+ @Override
+ public void onClick(int position) {
+ WellListBean.DataBean.RowsBean rowsBean = dataBeans.get(position);
+ String lng = rowsBean.getCoordinateX();
+ String lat = rowsBean.getCoordinateY();
+ OtherUtils.displayOnMap(context, "others", lng, lat);
+ }
+ });
+ adapter.setOnOptionClickListener(new WellListAdapter.OnOptionClickListener() {
+ @Override
+ public void onClick(int position) {
+ String bfzt = dataBeans.get(position).getBfzt();
+ String bfztName;
+ if (bfzt.equals("0")) {
+ bfztName = "布防";
+ bfzt = "1";
+ } else if (bfzt.equals("1")) {
+ bfztName = "撤防";
+ bfzt = "0";
+ } else {
+ ToastHelper.showToast("窨井状态错误,无法进行撤防或者布防", ToastHelper.ERROR);
+ return;
}
- });
- activity.adapter.setOnOptionClickListener(new WellListAdapter.OnOptionClickListener() {
- @Override
- public void onClick(int position) {
- String bfzt = activity.dataBeans.get(position).getBfzt();
- String bfztName;
- if (bfzt.equals("0")) {
- bfztName = "布防";
- bfzt = "1";
- } else if (bfzt.equals("1")) {
- bfztName = "撤防";
- bfzt = "0";
- } else {
- ToastHelper.showToast("窨井状态错误,无法进行撤防或者布防", ToastHelper.ERROR);
- return;
- }
- activity.showSingleOptionDialog(bfztName, activity.dataBeans.get(position).getId(), bfzt);
- }
- });
- }
+ showSingleOptionDialog(bfztName, dataBeans.get(position).getId(), bfzt);
+ }
+ });
}
}
}
- }
+ return true;
+ };
//单个撤防/布防
private void showSingleOptionDialog(String bfztName, String id, String bfzt) {
diff --git a/app/src/main/java/com/casic/dcms/ui/WorkerOnMapActivity.java b/app/src/main/java/com/casic/dcms/ui/WorkerOnMapActivity.java
index 280f13d..fd2feb6 100644
--- a/app/src/main/java/com/casic/dcms/ui/WorkerOnMapActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/WorkerOnMapActivity.java
@@ -7,14 +7,11 @@
import android.graphics.drawable.BitmapDrawable;
import android.location.Location;
import android.os.Handler;
-import android.os.Message;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.widget.TextView;
-import androidx.annotation.NonNull;
-
import com.amap.api.location.AMapLocation;
import com.casic.dcms.R;
import com.casic.dcms.base.AndroidxBaseActivity;
@@ -24,6 +21,7 @@
import com.casic.dcms.utils.LocationHelper;
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.casic.dcms.utils.callback.ILocationListener;
import com.esri.arcgisruntime.concurrent.ListenableFuture;
import com.esri.arcgisruntime.geometry.Point;
@@ -41,7 +39,6 @@
import com.qmuiteam.qmui.widget.popup.QMUIPopup;
import com.qmuiteam.qmui.widget.popup.QMUIPopups;
-import java.lang.ref.WeakReference;
import java.util.List;
import java.util.concurrent.ExecutionException;
@@ -74,7 +71,7 @@
Basemap baseMap = new Basemap(ArcGisMapCreator.createBaseLayer());
arcGISMap.setBasemap(baseMap);
viewBinding.mapView.setMap(arcGISMap);
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
}
@SuppressLint("ClickableViewAccessibility")
@@ -138,38 +135,28 @@
});
}
- private static class WeakReferenceHandler extends Handler {
- private final WeakReference reference;
-
- private WeakReferenceHandler(WorkerOnMapActivity activity) {
- reference = new WeakReference<>(activity);
+ private final Handler.Callback callback = msg -> {
+ if (msg.what == 2021060101) {
+ View popupView = LayoutInflater.from(this).inflate(R.layout.popu_worker, null);
+ TextView userNameView = popupView.findViewById(R.id.userNameView);
+ TextView signInTimeView = popupView.findViewById(R.id.signInTimeView);
+ TextView toiletNameView = popupView.findViewById(R.id.toiletNameView);
+ userNameView.setText(userName);
+ signInTimeView.setText(createTime);
+ toiletNameView.setText(toiletName);
+ QMUIPopups.popup(this, QMUIDisplayHelper.dp2px(this, 250))
+ .preferredDirection(QMUIPopup.DIRECTION_BOTTOM)
+ .view(popupView)
+ .edgeProtection(QMUIDisplayHelper.dp2px(this, 20))
+ .dimAmount(0.6f)
+ .animStyle(QMUIPopup.ANIM_GROW_FROM_CENTER)
+ .onDismiss(null)
+ .show(viewBinding.mapView);
+ } else if (msg.what == 2021060102) {
+ ToastHelper.showToast("附近无工作人员,请重新选点", ToastHelper.WARING);
}
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- WorkerOnMapActivity mapActivity = reference.get();
- if (msg.what == 2021060101) {
- View popupView = LayoutInflater.from(mapActivity).inflate(R.layout.popu_worker, null);
- TextView userNameView = popupView.findViewById(R.id.userNameView);
- TextView signInTimeView = popupView.findViewById(R.id.signInTimeView);
- TextView toiletNameView = popupView.findViewById(R.id.toiletNameView);
- userNameView.setText(mapActivity.userName);
- signInTimeView.setText(mapActivity.createTime);
- toiletNameView.setText(mapActivity.toiletName);
- QMUIPopups.popup(mapActivity, QMUIDisplayHelper.dp2px(mapActivity, 250))
- .preferredDirection(QMUIPopup.DIRECTION_BOTTOM)
- .view(popupView)
- .edgeProtection(QMUIDisplayHelper.dp2px(mapActivity, 20))
- .dimAmount(0.6f)
- .animStyle(QMUIPopup.ANIM_GROW_FROM_CENTER)
- .onDismiss(null)
- .show(mapActivity.viewBinding.mapView);
- } else if (msg.what == 2021060102) {
- ToastHelper.showToast("附近无工作人员,请重新选点", ToastHelper.WARING);
- }
- }
- }
+ return true;
+ };
private void addPictureMarker(Point point) {
Bitmap caseBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.on_line);
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/LightOnMapFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/LightOnMapFragment.java
index 0015d9e..fc056ef 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/LightOnMapFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/LightOnMapFragment.java
@@ -14,8 +14,6 @@
import android.widget.ImageView;
import android.widget.TextView;
-import androidx.annotation.NonNull;
-
import com.amap.api.location.AMapLocation;
import com.casic.dcms.R;
import com.casic.dcms.base.AndroidxBaseFragment;
@@ -35,6 +33,7 @@
import com.casic.dcms.utils.LocationHelper;
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.casic.dcms.utils.callback.IHttpRequestListener;
import com.casic.dcms.utils.callback.ILocationListener;
import com.esri.arcgisruntime.concurrent.ListenableFuture;
@@ -57,7 +56,6 @@
import org.json.JSONObject;
import java.io.IOException;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ExecutionException;
@@ -81,7 +79,7 @@
context = getContext();
lightLocalBeanDao = BaseApplication.getDaoSession().getStreetLightLocalBeanDao();
lightMapPresenter = new LightMapPresenterImpl(this);
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
controlPresenter = new LightControlPresenterImpl(this);
}
@@ -195,98 +193,87 @@
ToastHelper.showToast("操作失败", ToastHelper.ERROR);
}
- private static class WeakReferenceHandler extends Handler {
- private final WeakReference reference;
+ private final Handler.Callback callback = msg -> {
+ switch (msg.what) {
+ case 2021062401:
+ String lampId = (String) msg.obj;
- private WeakReferenceHandler(LightOnMapFragment fragment) {
- reference = new WeakReference<>(fragment);
- }
+ View popupView = LayoutInflater.from(context).inflate(R.layout.popu_street_light, null);
+ TextView lightStateView = popupView.findViewById(R.id.lightStateView);
+ TextView lightAddressView = popupView.findViewById(R.id.lightAddressView);
+ TextView lightStreetView = popupView.findViewById(R.id.lightStreetView);
+ TextView lightElecView = popupView.findViewById(R.id.lightElecView);
+ TextView lightVolView = popupView.findViewById(R.id.lightVolView);
+ TextView lightTimeView = popupView.findViewById(R.id.lightTimeView);
+ ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch);
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- LightOnMapFragment fragment = reference.get();
- Context context = fragment.context;
- switch (msg.what) {
- case 2021062401:
- String lampId = (String) msg.obj;
+ OtherUtils.showLoadingDialog(context, "路灯详情获取中,请稍后...");
+ HttpRequestHelper.doRequest(Constant.LIGHT_DETAIL, lampId, new IHttpRequestListener() {
+ @Override
+ public void onSuccess(ResponseBody resultBean) {
+ OtherUtils.dismissLoadingDialog();
+ try {
+ String string = resultBean.string();
+ JSONObject jsonObject = new JSONObject(string);
+ int code = jsonObject.getInt("code");
+ if (code == 200) {
+ JSONObject dataObject = jsonObject.getJSONObject("data");
- View popupView = LayoutInflater.from(context).inflate(R.layout.popu_street_light, null);
- TextView lightStateView = popupView.findViewById(R.id.lightStateView);
- TextView lightAddressView = popupView.findViewById(R.id.lightAddressView);
- TextView lightStreetView = popupView.findViewById(R.id.lightStreetView);
- TextView lightElecView = popupView.findViewById(R.id.lightElecView);
- TextView lightVolView = popupView.findViewById(R.id.lightVolView);
- TextView lightTimeView = popupView.findViewById(R.id.lightTimeView);
- ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch);
+ String statusName = dataObject.getString("statusName");
+ lightStateView.setText(statusName);
+ lightAddressView.setText(dataObject.getString("address"));
+ lightStreetView.setText(dataObject.getString("streetName"));
+ lightElecView.setText(String.valueOf(dataObject.getDouble("latestElec")));
+ lightVolView.setText(String.valueOf(dataObject.getDouble("latestVol")));
+ lightTimeView.setText(dataObject.getString("latestTime"));
- OtherUtils.showLoadingDialog(context, "路灯详情获取中,请稍后...");
- HttpRequestHelper.doRequest(Constant.LIGHT_DETAIL, lampId, new IHttpRequestListener() {
- @Override
- public void onSuccess(ResponseBody resultBean) {
- OtherUtils.dismissLoadingDialog();
- try {
- String string = resultBean.string();
- JSONObject jsonObject = new JSONObject(string);
- int code = jsonObject.getInt("code");
- if (code == 200) {
- JSONObject dataObject = jsonObject.getJSONObject("data");
+ QMUIPopups.popup(context, QMUIDisplayHelper.dp2px(context, 280))
+ .preferredDirection(QMUIPopup.DIRECTION_BOTTOM)
+ .view(popupView)
+ .edgeProtection(QMUIDisplayHelper.dp2px(context, 20))
+ .dimAmount(0.6f)
+ .animStyle(QMUIPopup.ANIM_GROW_FROM_CENTER)
+ .onDismiss(null)
+ .show(viewBinding.mapView);
- String statusName = dataObject.getString("statusName");
- lightStateView.setText(statusName);
- lightAddressView.setText(dataObject.getString("address"));
- lightStreetView.setText(dataObject.getString("streetName"));
- lightElecView.setText(String.valueOf(dataObject.getDouble("latestElec")));
- lightVolView.setText(String.valueOf(dataObject.getDouble("latestVol")));
- lightTimeView.setText(dataObject.getString("latestTime"));
+ lightSwitch.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ List lampIds = new ArrayList<>();
+ lampIds.add(Long.parseLong(lampId));
- QMUIPopups.popup(context, QMUIDisplayHelper.dp2px(context, 280))
- .preferredDirection(QMUIPopup.DIRECTION_BOTTOM)
- .view(popupView)
- .edgeProtection(QMUIDisplayHelper.dp2px(context, 20))
- .dimAmount(0.6f)
- .animStyle(QMUIPopup.ANIM_GROW_FROM_CENTER)
- .onDismiss(null)
- .show(fragment.viewBinding.mapView);
-
- lightSwitch.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- List lampIds = new ArrayList<>();
- lampIds.add(Long.parseLong(lampId));
-
- String controlType;
- if (statusName.equals("离线")) {
- controlType = "1";
- } else {
- controlType = "0";
- }
- fragment.controlPresenter.onReadyRetrofitRequest(lampIds, controlType);
+ String controlType;
+ if (statusName.equals("离线")) {
+ controlType = "1";
+ } else {
+ controlType = "0";
}
- });
- } else {
- ToastHelper.showToast("服务器异常,请重新选点", ToastHelper.ERROR);
- }
- } catch (JSONException | IOException e) {
- ToastHelper.showToast("解析失败,请重新选点", ToastHelper.ERROR);
+ controlPresenter.onReadyRetrofitRequest(lampIds, controlType);
+ }
+ });
+ } else {
+ ToastHelper.showToast("服务器异常,请重新选点", ToastHelper.ERROR);
}
+ } catch (JSONException | IOException e) {
+ ToastHelper.showToast("解析失败,请重新选点", ToastHelper.ERROR);
}
+ }
- @Override
- public void onFailure(Throwable throwable) {
- OtherUtils.dismissLoadingDialog();
- ToastHelper.showToast("网络连接失败,请重新选点", ToastHelper.ERROR);
- }
- });
- break;
- case 2021062402:
- ToastHelper.showToast("此附近无路灯,请重新选点", ToastHelper.ERROR);
- break;
- default:
- break;
- }
+ @Override
+ public void onFailure(Throwable throwable) {
+ OtherUtils.dismissLoadingDialog();
+ ToastHelper.showToast("网络连接失败,请重新选点", ToastHelper.ERROR);
+ }
+ });
+ break;
+ case 2021062402:
+ ToastHelper.showToast("此附近无路灯,请重新选点", ToastHelper.ERROR);
+ break;
+ default:
+ break;
}
- }
+ return true;
+ };
private void addPictureMarker(List points) {
for (Point point : points) {
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/PersonOnMapFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/PersonOnMapFragment.java
index d24b583..06db9a7 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/PersonOnMapFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/PersonOnMapFragment.java
@@ -24,6 +24,7 @@
import com.casic.dcms.utils.ArcGisMapCreator;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.esri.arcgisruntime.concurrent.ListenableFuture;
import com.esri.arcgisruntime.geometry.SpatialReference;
import com.esri.arcgisruntime.mapping.ArcGISMap;
@@ -39,7 +40,6 @@
import com.qmuiteam.qmui.widget.popup.QMUIPopup;
import com.qmuiteam.qmui.widget.popup.QMUIPopups;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ExecutionException;
@@ -70,7 +70,7 @@
arcGISMap.setBasemap(baseMap);
viewBinding.mapView.setMap(arcGISMap);
graphicsOverlays = viewBinding.mapView.getGraphicsOverlays();
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
}
@SuppressLint("ClickableViewAccessibility")
@@ -113,45 +113,34 @@
});
}
- private static class WeakReferenceHandler extends Handler {
- private final WeakReference reference;
-
- private WeakReferenceHandler(PersonOnMapFragment fragment) {
- reference = new WeakReference<>(fragment);
+ private final Handler.Callback callback = msg -> {
+ switch (msg.what) {
+ case 2021051901:
+ PointPersonBean dataBean = (PointPersonBean) msg.obj;
+ View popupView = LayoutInflater.from(context).inflate(R.layout.popu_person, null);
+ TextView userNameView = popupView.findViewById(R.id.userNameView);
+ TextView deptNameView = popupView.findViewById(R.id.deptNameView);
+ TextView phoneNumberView = popupView.findViewById(R.id.phoneNumberView);
+ TextView lastTimeView = popupView.findViewById(R.id.lastTimeView);
+ userNameView.setText(dataBean.getPersonName());
+ deptNameView.setText(dataBean.getPersonDept());
+ phoneNumberView.setText(dataBean.getPersonPhone());
+ lastTimeView.setText(dataBean.getPointTime());
+ QMUIPopups.popup(context, QMUIDisplayHelper.dp2px(context, 250))
+ .preferredDirection(QMUIPopup.DIRECTION_BOTTOM)
+ .view(popupView)
+ .edgeProtection(QMUIDisplayHelper.dp2px(context, 20))
+ .dimAmount(0.6f)
+ .animStyle(QMUIPopup.ANIM_GROW_FROM_CENTER)
+ .onDismiss(null)
+ .show(viewBinding.mapView);
+ break;
+ case 2021051902:
+ ToastHelper.showToast("附近无工作人员,请重新选点", ToastHelper.WARING);
+ break;
}
-
- @Override
- public void handleMessage(Message msg) {
- super.handleMessage(msg);
- PersonOnMapFragment mapFragment = reference.get();
- Context context = mapFragment.context;
- switch (msg.what) {
- case 2021051901:
- PointPersonBean dataBean = (PointPersonBean) msg.obj;
- View popupView = LayoutInflater.from(context).inflate(R.layout.popu_person, null);
- TextView userNameView = popupView.findViewById(R.id.userNameView);
- TextView deptNameView = popupView.findViewById(R.id.deptNameView);
- TextView phoneNumberView = popupView.findViewById(R.id.phoneNumberView);
- TextView lastTimeView = popupView.findViewById(R.id.lastTimeView);
- userNameView.setText(dataBean.getPersonName());
- deptNameView.setText(dataBean.getPersonDept());
- phoneNumberView.setText(dataBean.getPersonPhone());
- lastTimeView.setText(dataBean.getPointTime());
- QMUIPopups.popup(context, QMUIDisplayHelper.dp2px(context, 250))
- .preferredDirection(QMUIPopup.DIRECTION_BOTTOM)
- .view(popupView)
- .edgeProtection(QMUIDisplayHelper.dp2px(context, 20))
- .dimAmount(0.6f)
- .animStyle(QMUIPopup.ANIM_GROW_FROM_CENTER)
- .onDismiss(null)
- .show(mapFragment.viewBinding.mapView);
- break;
- case 2021051902:
- ToastHelper.showToast("附近无工作人员,请重新选点", ToastHelper.WARING);
- break;
- }
- }
- }
+ return true;
+ };
@Override
public void onlinePerson(OnlinePersonBean resultBean) {
diff --git a/.idea/misc.xml b/.idea/misc.xml
index c4e854b..cf5266d 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -22,6 +22,7 @@
+
@@ -50,6 +51,7 @@
+
@@ -77,6 +79,7 @@
+
@@ -95,6 +98,7 @@
+
@@ -118,14 +122,14 @@
-
+
-
+
diff --git a/app/build.gradle b/app/build.gradle
index 0d88385..a89466d 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -44,10 +44,10 @@
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
- implementation 'androidx.core:core-ktx:1.6.0'
+ implementation 'androidx.core:core-ktx:1.7.0'
implementation 'androidx.appcompat:appcompat:1.4.0'
implementation 'com.google.android.material:material:1.4.0'
- implementation 'androidx.constraintlayout:constraintlayout:2.1.2'
+ implementation 'androidx.constraintlayout:constraintlayout:2.1.3'
//Google官方授权框架
implementation 'pub.devrel:easypermissions:3.0.0'
//腾讯Android UI框架
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/impl/CaseHandledListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/impl/CaseHandledListModelImpl.java
index 02c6875..37b76ac 100644
--- a/app/src/main/java/com/casic/dcms/mvp/model/impl/CaseHandledListModelImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/model/impl/CaseHandledListModelImpl.java
@@ -26,7 +26,7 @@
*/
@Override
public Subscription sendCaseHandledListRequest(int offset) {
- Observable observable = RetrofitServiceManager.getCaseHandledListResult(offset);
+ Observable observable = RetrofitServiceManager.handleCaseResult(offset);
return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
@Override
public void onCompleted() {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
index 550750c..0c77aea 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
@@ -28,7 +28,7 @@
import com.casic.dcms.mvp.view.IGetCaseNextNodeView;
import com.casic.dcms.mvp.view.IUploadFileView;
import com.casic.dcms.ui.fragment.handle.CaseHandledFragment;
-import com.casic.dcms.ui.fragment.handle.CaseTimeoutFragment;
+import com.casic.dcms.ui.fragment.handle.CaseOverTimeFragment;
import com.casic.dcms.ui.fragment.handle.CaseTodoFragment;
import com.casic.dcms.ui.fragment.handle.CaseUrgentFragment;
import com.casic.dcms.utils.Constant;
@@ -336,7 +336,7 @@
ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS);
switch (title) {
case "超时案卷":
- CaseTimeoutFragment.sendEmptyMessage(Constant.CASE_HANDLE_OK);
+ CaseOverTimeFragment.sendEmptyMessage(Constant.CASE_HANDLE_OK);
CaseHandledFragment.sendEmptyMessage(Constant.CASE_HANDLE_OK);
break;
case "紧急案卷":
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java
index 0e13b10..6b721eb 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java
@@ -1,8 +1,8 @@
package com.casic.dcms.ui;
+import android.content.Context;
import android.content.Intent;
import android.os.Handler;
-import android.os.Message;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.DividerItemDecoration;
@@ -16,16 +16,17 @@
import com.casic.dcms.mvp.view.ISearchCaseResultView;
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
public class CaseListResultActivity extends AndroidxBaseActivity implements ISearchCaseResultView {
+ private final Context context = this;
private CaseListPresenterImpl caseListPresenter;
private CaseListResultAdapter adapter;
private String typeCode;
@@ -53,7 +54,7 @@
@Override
protected void initData() {
caseListPresenter = new CaseListPresenterImpl(this);
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
eorc = getIntent().getStringExtra("eorc");
typeCode = getIntent().getStringExtra("typeCode");
typeDetailCode = getIntent().getStringExtra("typeDetailCode");
@@ -93,44 +94,33 @@
/**
* 弱应用Handler,防止内存泄漏
*/
- private static class WeakReferenceHandler extends Handler {
-
- private final WeakReference reference;
-
- private WeakReferenceHandler(CaseListResultActivity activity) {
- reference = new WeakReference<>(activity);
- }
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- CaseListResultActivity resultActivity = reference.get();
- if (msg.what == 20210425) {
- if (resultActivity.isRefresh || resultActivity.isLoadMore) {
- resultActivity.adapter.notifyDataSetChanged();
+ private final Handler.Callback callback = msg -> {
+ if (msg.what == 20210425) {
+ if (isRefresh || isLoadMore) {
+ adapter.notifyDataSetChanged();
+ } else {
+ //首次加载数据
+ if (dataBeans.size() == 0) {
+ viewBinding.emptyView.show("抱歉,没有查到符合您规定条件的案卷", null);
} else {
- //首次加载数据
- if (resultActivity.dataBeans.size() == 0) {
- resultActivity.viewBinding.emptyView.show("抱歉,没有查到符合您规定条件的案卷", null);
- } else {
- resultActivity.viewBinding.emptyView.hide();
- resultActivity.adapter = new CaseListResultAdapter(resultActivity, resultActivity.dataBeans);
- resultActivity.viewBinding.caseRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity));
- resultActivity.viewBinding.caseRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL));
- resultActivity.viewBinding.caseRecyclerView.setAdapter(resultActivity.adapter);
- resultActivity.adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() {
- @Override
- public void onClick(int position) {
- Intent intent = new Intent(resultActivity, CaseDetailActivity.class);
- intent.putExtra("id", resultActivity.dataBeans.get(position).getId());
- resultActivity.startActivity(intent);
- }
- });
- }
+ viewBinding.emptyView.hide();
+ adapter = new CaseListResultAdapter(context, dataBeans);
+ viewBinding.caseRecyclerView.setLayoutManager(new LinearLayoutManager(context));
+ viewBinding.caseRecyclerView.addItemDecoration(new DividerItemDecoration(context, DividerItemDecoration.VERTICAL));
+ viewBinding.caseRecyclerView.setAdapter(adapter);
+ adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() {
+ @Override
+ public void onClick(int position) {
+ Intent intent = new Intent(context, CaseDetailActivity.class);
+ intent.putExtra("id", dataBeans.get(position).getId());
+ startActivity(intent);
+ }
+ });
}
}
}
- }
+ return true;
+ };
@Override
public void showProgress() {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java
index 6e374cd..626720a 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java
@@ -1,6 +1,7 @@
package com.casic.dcms.ui;
import android.annotation.SuppressLint;
+import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
@@ -12,7 +13,6 @@
import android.view.MotionEvent;
import android.widget.RadioGroup;
-import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
import com.casic.dcms.R;
@@ -32,6 +32,7 @@
import com.casic.dcms.utils.ArcGisMapCreator;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.casic.dcms.widgets.AlertControlDialog;
import com.esri.arcgisruntime.concurrent.ListenableFuture;
import com.esri.arcgisruntime.data.ServiceFeatureTable;
@@ -48,7 +49,6 @@
import com.esri.arcgisruntime.symbology.PictureMarkerSymbol;
import com.esri.arcgisruntime.util.ListenableList;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -58,6 +58,7 @@
implements RadioGroup.OnCheckedChangeListener, IHandleCaseView, IVerifyCaseView, ICheckCaseView {
private static final String TAG = "CaseOnMapActivity";
+ private final Context context = this;
private HandleCasePresenterImpl handleCasePresenter;
private VerifyCasePresenterImpl caseVerifyPresenter;
private CaseCheckPresenterImpl caseCheckPresenter;
@@ -105,7 +106,7 @@
graphicsOverlays = viewBinding.mapView.getGraphicsOverlays();
//handler弱引用,防止内存泄漏
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
}
@SuppressLint("ClickableViewAccessibility")
@@ -150,48 +151,38 @@
});
}
- private static class WeakReferenceHandler extends Handler {
- private final WeakReference reference;
+ private final Handler.Callback callback = msg -> {
+ switch (msg.what) {
+ case 2021051401:
+ String caseId = (String) msg.obj;
+ new AlertControlDialog.Builder()
+ .setContext(context)
+ .setTitle("查看案卷详情")
+ .setMessage("ID:" + caseId)
+ .setNegativeButton("取消")
+ .setPositiveButton("确定")
+ .setOnDialogButtonClickListener(new AlertControlDialog.OnDialogButtonClickListener() {
+ @Override
+ public void onConfirmClick() {
+ Intent intent = new Intent(context, CaseDetailActivity.class);
+ intent.putExtra("id", caseId);
+ startActivity(intent);
+ }
- private WeakReferenceHandler(CaseOnMapActivity activity) {
- reference = new WeakReference<>(activity);
+ @Override
+ public void onCancelClick() {
+
+ }
+ }).build().show();
+ break;
+ case 2021051402:
+ ToastHelper.showToast("此附近无案卷,请重新选点", ToastHelper.WARING);
+ break;
+ default:
+ break;
}
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- CaseOnMapActivity onMapActivity = reference.get();
- switch (msg.what) {
- case 2021051401:
- String caseId = (String) msg.obj;
- new AlertControlDialog.Builder()
- .setContext(onMapActivity)
- .setTitle("查看案卷详情")
- .setMessage("ID:" + caseId)
- .setNegativeButton("取消")
- .setPositiveButton("确定")
- .setOnDialogButtonClickListener(new AlertControlDialog.OnDialogButtonClickListener() {
- @Override
- public void onConfirmClick() {
- Intent intent = new Intent(onMapActivity, CaseDetailActivity.class);
- intent.putExtra("id", caseId);
- onMapActivity.startActivity(intent);
- }
-
- @Override
- public void onCancelClick() {
-
- }
- }).build().show();
- break;
- case 2021051402:
- ToastHelper.showToast("此附近无案卷,请重新选点", ToastHelper.WARING);
- break;
- default:
- break;
- }
- }
- }
+ return true;
+ };
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java b/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java
index 5c037c4..6289181 100644
--- a/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java
@@ -3,7 +3,6 @@
import android.content.Context;
import android.content.Intent;
import android.os.Handler;
-import android.os.Message;
import android.text.TextUtils;
import android.view.View;
@@ -21,12 +20,12 @@
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.StringHelper;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.casic.dcms.widgets.datepicker.DatePopupWindow;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
@@ -53,7 +52,7 @@
@Override
protected void initData() {
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
recordPresenter = new CleanRecordPresenterImpl(this);
recordPresenter.onReadyRetrofitRequest(StringHelper.getUserBean().getId(), "", "", "", pageIndex);
}
@@ -139,59 +138,48 @@
OtherUtils.dismissLoadingDialog();
}
- private static class WeakReferenceHandler extends Handler {
-
- private final WeakReference reference;
-
- private WeakReferenceHandler(CleanResultListActivity activity) {
- reference = new WeakReference<>(activity);
- }
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- CleanResultListActivity resultActivity = reference.get();
- if (msg.what == 20210601) {
- if (resultActivity.isRefresh || resultActivity.isLoadMore) {
- resultActivity.adapter.notifyDataSetChanged();
+ private final Handler.Callback callback = msg -> {
+ if (msg.what == 20210601) {
+ if (isRefresh || isLoadMore) {
+ adapter.notifyDataSetChanged();
+ } else {
+ //首次加载数据
+ if (dataBeans.size() == 0) {
+ viewBinding.emptyView.show("抱歉,没有查到您的保洁工作记录", null);
} else {
- //首次加载数据
- if (resultActivity.dataBeans.size() == 0) {
- resultActivity.viewBinding.emptyView.show("抱歉,没有查到您的保洁工作记录", null);
- } else {
- resultActivity.viewBinding.emptyView.hide();
- resultActivity.adapter = new RecordListAdapter(resultActivity, resultActivity.dataBeans);
- resultActivity.viewBinding.recordRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity));
- resultActivity.viewBinding.recordRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL));
- resultActivity.viewBinding.recordRecyclerView.setAdapter(resultActivity.adapter);
- resultActivity.adapter.setOnItemClickListener(new RecordListAdapter.OnItemClickListener() {
- @Override
- public void onClick(int position) {
- CleanRecordBean.DataBean.RowsBean rowsBean = resultActivity.dataBeans.get(position);
- Intent intent = new Intent(resultActivity, WorkerOnMapActivity.class);
- intent.putExtra("userName", rowsBean.getUserName());
- intent.putExtra("createTime", rowsBean.getCreateTime());
- intent.putExtra("toiletName", rowsBean.getToiletName());
- String dataLng = rowsBean.getLng();
- if (TextUtils.isEmpty(dataLng)) {
- ToastHelper.showToast("经度异常", ToastHelper.ERROR);
- return;
- }
- intent.putExtra("lng", Double.parseDouble(dataLng));
- String dataLat = rowsBean.getLat();
- if (TextUtils.isEmpty(dataLat)) {
- ToastHelper.showToast("纬度异常", ToastHelper.ERROR);
- return;
- }
- intent.putExtra("lat", Double.parseDouble(dataLat));
- resultActivity.startActivity(intent);
+ viewBinding.emptyView.hide();
+ adapter = new RecordListAdapter(context, dataBeans);
+ viewBinding.recordRecyclerView.setLayoutManager(new LinearLayoutManager(context));
+ viewBinding.recordRecyclerView.addItemDecoration(new DividerItemDecoration(context, DividerItemDecoration.VERTICAL));
+ viewBinding.recordRecyclerView.setAdapter(adapter);
+ adapter.setOnItemClickListener(new RecordListAdapter.OnItemClickListener() {
+ @Override
+ public void onClick(int position) {
+ CleanRecordBean.DataBean.RowsBean rowsBean = dataBeans.get(position);
+ Intent intent = new Intent(context, WorkerOnMapActivity.class);
+ intent.putExtra("userName", rowsBean.getUserName());
+ intent.putExtra("createTime", rowsBean.getCreateTime());
+ intent.putExtra("toiletName", rowsBean.getToiletName());
+ String dataLng = rowsBean.getLng();
+ if (TextUtils.isEmpty(dataLng)) {
+ ToastHelper.showToast("经度异常", ToastHelper.ERROR);
+ return;
}
- });
- }
+ intent.putExtra("lng", Double.parseDouble(dataLng));
+ String dataLat = rowsBean.getLat();
+ if (TextUtils.isEmpty(dataLat)) {
+ ToastHelper.showToast("纬度异常", ToastHelper.ERROR);
+ return;
+ }
+ intent.putExtra("lat", Double.parseDouble(dataLat));
+ startActivity(intent);
+ }
+ });
}
}
}
- }
+ return true;
+ };
@Override
protected void onDestroy() {
diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
index 6f53e4e..4684efd 100644
--- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
@@ -50,6 +50,7 @@
import com.casic.dcms.utils.StatusBarColorUtil;
import com.casic.dcms.utils.StringHelper;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.casic.dcms.utils.callback.IHttpRequestListener;
import com.google.android.material.navigation.NavigationBarView;
import com.google.gson.Gson;
@@ -57,7 +58,6 @@
import com.igexin.sdk.PushManager;
import java.io.IOException;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
@@ -89,7 +89,7 @@
protected void initData() {
//个推初始化
PushManager.getInstance().initialize(this);
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
uploadPositionPresenter = new UploadPositionPresenterImpl(this);
registerPresenter = new PushRegisterPresenterImpl(this);
mapConfigPresenter = new GetMapConfigPresenterImpl(this);
@@ -203,59 +203,48 @@
viewBinding.mainViewPager.setAdapter(mainPageAdapter);
}
- private static class WeakReferenceHandler extends Handler {
-
- private final WeakReference reference;
-
- private WeakReferenceHandler(MainActivity activity) {
- reference = new WeakReference<>(activity);
- }
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- MainActivity mainActivity = reference.get();
- if (msg.what == Constant.PUSH_REGISTER) {
- String clientId = (String) msg.obj;
- Log.d(TAG, "注册个推Client: $clientId");
- mainActivity.registerPresenter.onReadyRetrofitRequest(clientId);
- } else if (msg.what == Constant.PUSH_CREATE_NOTIFICATION) {
- //显示小红点
- try {
- mainActivity.updateMessageNumber();
- } catch (NullPointerException e) {
- e.printStackTrace();
- }
- NoticeBean noticeBean = (NoticeBean) msg.obj;
- NotificationHelper notificationHelper = NotificationHelper.getInstance(mainActivity);
- Notification notification = notificationHelper.createDefault(
- noticeBean.getTitle(),
- noticeBean.getContent(),
- noticeBean.getCaseId(),
- CaseDetailActivity.class
- );
- notificationHelper.push(1, notification);
- } else if (msg.what == Constant.MESSAGE_NUMBER) {
- mainActivity.updateMessageNumber();
- } else if (msg.what == Constant.UPLOAD_LOCATION) {
- AMapLocation aMapLocation = (AMapLocation) msg.obj;
- try {
- double[] gcjToWgs = LocationHelper.gcjToWgs(aMapLocation.getLongitude(), aMapLocation.getLatitude());
- mainActivity.uploadPositionPresenter.onReadyRetrofitRequest(mainActivity.imei,
- String.valueOf(gcjToWgs[1]),
- String.valueOf(gcjToWgs[0]));
- } catch (NullPointerException e) {
- e.printStackTrace();
- }
- } else if (msg.what == Constant.LOGIN_OUT) {
- Log.d(TAG, "退出登录");
- //回到登录页
- SaveKeyValues.putValue("autoLogin", false);
- mainActivity.startActivity(new Intent(mainActivity, LoginActivity.class));
- mainActivity.finish();
+ private final Handler.Callback callback = msg -> {
+ if (msg.what == Constant.PUSH_REGISTER) {
+ String clientId = (String) msg.obj;
+ Log.d(TAG, "注册个推Client: $clientId");
+ registerPresenter.onReadyRetrofitRequest(clientId);
+ } else if (msg.what == Constant.PUSH_CREATE_NOTIFICATION) {
+ //显示小红点
+ try {
+ updateMessageNumber();
+ } catch (NullPointerException e) {
+ e.printStackTrace();
}
+ NoticeBean noticeBean = (NoticeBean) msg.obj;
+ NotificationHelper notificationHelper = NotificationHelper.getInstance(this);
+ Notification notification = notificationHelper.createDefault(
+ noticeBean.getTitle(),
+ noticeBean.getContent(),
+ noticeBean.getCaseId(),
+ CaseDetailActivity.class
+ );
+ notificationHelper.push(1, notification);
+ } else if (msg.what == Constant.MESSAGE_NUMBER) {
+ updateMessageNumber();
+ } else if (msg.what == Constant.UPLOAD_LOCATION) {
+ AMapLocation aMapLocation = (AMapLocation) msg.obj;
+ try {
+ double[] gcjToWgs = LocationHelper.gcjToWgs(aMapLocation.getLongitude(), aMapLocation.getLatitude());
+ uploadPositionPresenter.onReadyRetrofitRequest(imei,
+ String.valueOf(gcjToWgs[1]),
+ String.valueOf(gcjToWgs[0]));
+ } catch (NullPointerException e) {
+ e.printStackTrace();
+ }
+ } else if (msg.what == Constant.LOGIN_OUT) {
+ Log.d(TAG, "退出登录");
+ //回到登录页
+ SaveKeyValues.putValue("autoLogin", false);
+ startActivity(new Intent(this, LoginActivity.class));
+ finish();
}
- }
+ return true;
+ };
private void updateMessageNumber() {
List list = BaseApplication.getDaoSession()
diff --git a/app/src/main/java/com/casic/dcms/ui/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/ui/MaintainRecordActivity.java
index e587dd7..ef03adb 100644
--- a/app/src/main/java/com/casic/dcms/ui/MaintainRecordActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/MaintainRecordActivity.java
@@ -1,7 +1,6 @@
package com.casic.dcms.ui;
import android.os.Handler;
-import android.os.Message;
import android.view.View;
import androidx.annotation.NonNull;
@@ -17,12 +16,12 @@
import com.casic.dcms.utils.CalendarUtil;
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.casic.dcms.widgets.datepicker.DatePopupWindow;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
@@ -48,7 +47,7 @@
@Override
protected void initData() {
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
recordPresenter = new MaintainRecordPresenterImpl(this);
recordPresenter.onReadyRetrofitRequest("", "", pageIndex);
}
@@ -128,37 +127,25 @@
OtherUtils.dismissLoadingDialog();
}
- private static class WeakReferenceHandler extends Handler {
-
- private final WeakReference reference;
-
- private WeakReferenceHandler(MaintainRecordActivity activity) {
- reference = new WeakReference<>(activity);
- }
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- MaintainRecordActivity resultActivity = reference.get();
- if (msg.what == 20210622) {
- if (resultActivity.isRefresh || resultActivity.isLoadMore) {
- resultActivity.adapter.notifyDataSetChanged();
+ private final Handler.Callback callback = msg -> {
+ if (msg.what == 20210622) {
+ if (isRefresh || isLoadMore) {
+ adapter.notifyDataSetChanged();
+ } else {
+ //首次加载数据
+ if (dataBeans.size() == 0) {
+ viewBinding.emptyView.show("抱歉,没有查到相关养护记录", null);
} else {
- //首次加载数据
- if (resultActivity.dataBeans.size() == 0) {
- resultActivity.viewBinding.emptyView.show("抱歉,没有查到相关养护记录", null);
- } else {
- resultActivity.viewBinding.emptyView.hide();
- resultActivity.adapter = new MaintainRecordAdapter(resultActivity, resultActivity.dataBeans);
- resultActivity.viewBinding.recordRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity));
- resultActivity.viewBinding.recordRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL));
- resultActivity.viewBinding.recordRecyclerView.setAdapter(resultActivity.adapter);
- }
+ viewBinding.emptyView.hide();
+ adapter = new MaintainRecordAdapter(this, dataBeans);
+ viewBinding.recordRecyclerView.setLayoutManager(new LinearLayoutManager(this));
+ viewBinding.recordRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL));
+ viewBinding.recordRecyclerView.setAdapter(adapter);
}
}
}
-
- }
+ return true;
+ };
@Override
protected void onDestroy() {
diff --git a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java
index 028ee6f..b9a8d21 100644
--- a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java
@@ -3,7 +3,6 @@
import android.content.Context;
import android.content.Intent;
import android.os.Handler;
-import android.os.Message;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
@@ -25,6 +24,7 @@
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.SaveKeyValues;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.casic.dcms.widgets.CancelAlarmDialog;
import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import com.qmuiteam.qmui.widget.popup.QMUIPopup;
@@ -33,7 +33,6 @@
import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
@@ -83,7 +82,7 @@
alarmListPresenter = new AlarmListPresenterImpl(this);
alarmListPresenter.onReadyRetrofitRequest(Constant.PAGE_LIMIT, pageIndex);
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
cancelAlarmPresenter = new CancelAlarmPresenterImpl(this);
}
@@ -109,41 +108,31 @@
});
}
- private static class WeakReferenceHandler extends Handler {
- private final WeakReference reference;
-
- private WeakReferenceHandler(PipelineManagerActivity activity) {
- reference = new WeakReference<>(activity);
- }
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- PipelineManagerActivity resultActivity = reference.get();
- if (msg.what == 20210626) {
- if (resultActivity.isRefresh || resultActivity.isLoadMore) {
- resultActivity.adapter.notifyDataSetChanged();
+ private final Handler.Callback callback = msg -> {
+ if (msg.what == 20210626) {
+ if (isRefresh || isLoadMore) {
+ adapter.notifyDataSetChanged();
+ } else {
+ //首次加载数据
+ if (dataBeans.size() == 0) {
+ viewBinding.emptyView.show("设备状态很好,没有任何报警", null);
} else {
- //首次加载数据
- if (resultActivity.dataBeans.size() == 0) {
- resultActivity.viewBinding.emptyView.show("设备状态很好,没有任何报警", null);
- } else {
- resultActivity.viewBinding.emptyView.hide();
- resultActivity.adapter = new AlarmListAdapter(resultActivity, resultActivity.dataBeans);
- resultActivity.viewBinding.warningRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity));
- resultActivity.viewBinding.warningRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL));
- resultActivity.viewBinding.warningRecyclerView.setAdapter(resultActivity.adapter);
- resultActivity.adapter.setOnCancelClickListener(new AlarmListAdapter.OnCancelClickListener() {
- @Override
- public void onClick(int position) {
- resultActivity.showSingleCancelDialog(resultActivity.dataBeans.get(position).getJobId());
- }
- });
- }
+ viewBinding.emptyView.hide();
+ adapter = new AlarmListAdapter(this, dataBeans);
+ viewBinding.warningRecyclerView.setLayoutManager(new LinearLayoutManager(this));
+ viewBinding.warningRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL));
+ viewBinding.warningRecyclerView.setAdapter(adapter);
+ adapter.setOnCancelClickListener(new AlarmListAdapter.OnCancelClickListener() {
+ @Override
+ public void onClick(int position) {
+ showSingleCancelDialog(dataBeans.get(position).getJobId());
+ }
+ });
}
}
}
- }
+ return true;
+ };
//单个消警
private void showSingleCancelDialog(String jobId) {
diff --git a/app/src/main/java/com/casic/dcms/ui/WellListActivity.java b/app/src/main/java/com/casic/dcms/ui/WellListActivity.java
index 9cf4150..93aa7f8 100644
--- a/app/src/main/java/com/casic/dcms/ui/WellListActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/WellListActivity.java
@@ -2,7 +2,6 @@
import android.content.Context;
import android.os.Handler;
-import android.os.Message;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
@@ -23,6 +22,7 @@
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.casic.dcms.widgets.AlertControlDialog;
import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import com.qmuiteam.qmui.widget.popup.QMUIPopup;
@@ -31,7 +31,6 @@
import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
@@ -77,7 +76,7 @@
wellListPresenter = new WellListPresenterImpl(this);
wellListPresenter.onReadyRetrofitRequest(pageIndex);
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
optionWellPresenter = new OptionWellPresenterImpl(this);
}
@@ -103,62 +102,52 @@
});
}
- private static class WeakReferenceHandler extends Handler {
- private final WeakReference reference;
-
- private WeakReferenceHandler(WellListActivity activity) {
- reference = new WeakReference<>(activity);
- }
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- WellListActivity activity = reference.get();
- if (msg.what == 20210628) {
- if (activity.isRefresh || activity.isLoadMore) {
- activity.adapter.notifyDataSetChanged();
+ private final Handler.Callback callback = msg -> {
+ if (msg.what == 20210628) {
+ if (isRefresh || isLoadMore) {
+ adapter.notifyDataSetChanged();
+ } else {
+ //首次加载数据
+ if (dataBeans.size() == 0) {
+ viewBinding.emptyView.show("抱歉,无法为您查到窨井数据", null);
} else {
- //首次加载数据
- if (activity.dataBeans.size() == 0) {
- activity.viewBinding.emptyView.show("抱歉,无法为您查到窨井数据", null);
- } else {
- activity.viewBinding.emptyView.hide();
- activity.adapter = new WellListAdapter(activity, activity.dataBeans);
- activity.viewBinding.wellRecyclerView.setLayoutManager(new LinearLayoutManager(activity));
- activity.viewBinding.wellRecyclerView.addItemDecoration(new DividerItemDecoration(activity, DividerItemDecoration.VERTICAL));
- activity.viewBinding.wellRecyclerView.setAdapter(activity.adapter);
- activity.adapter.setOnItemClickListener(new WellListAdapter.OnItemClickListener() {
- @Override
- public void onClick(int position) {
- WellListBean.DataBean.RowsBean rowsBean = activity.dataBeans.get(position);
- String lng = rowsBean.getCoordinateX();
- String lat = rowsBean.getCoordinateY();
- OtherUtils.displayOnMap(activity, "others", lng, lat);
+ viewBinding.emptyView.hide();
+ adapter = new WellListAdapter(this, dataBeans);
+ viewBinding.wellRecyclerView.setLayoutManager(new LinearLayoutManager(this));
+ viewBinding.wellRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL));
+ viewBinding.wellRecyclerView.setAdapter(adapter);
+ adapter.setOnItemClickListener(new WellListAdapter.OnItemClickListener() {
+ @Override
+ public void onClick(int position) {
+ WellListBean.DataBean.RowsBean rowsBean = dataBeans.get(position);
+ String lng = rowsBean.getCoordinateX();
+ String lat = rowsBean.getCoordinateY();
+ OtherUtils.displayOnMap(context, "others", lng, lat);
+ }
+ });
+ adapter.setOnOptionClickListener(new WellListAdapter.OnOptionClickListener() {
+ @Override
+ public void onClick(int position) {
+ String bfzt = dataBeans.get(position).getBfzt();
+ String bfztName;
+ if (bfzt.equals("0")) {
+ bfztName = "布防";
+ bfzt = "1";
+ } else if (bfzt.equals("1")) {
+ bfztName = "撤防";
+ bfzt = "0";
+ } else {
+ ToastHelper.showToast("窨井状态错误,无法进行撤防或者布防", ToastHelper.ERROR);
+ return;
}
- });
- activity.adapter.setOnOptionClickListener(new WellListAdapter.OnOptionClickListener() {
- @Override
- public void onClick(int position) {
- String bfzt = activity.dataBeans.get(position).getBfzt();
- String bfztName;
- if (bfzt.equals("0")) {
- bfztName = "布防";
- bfzt = "1";
- } else if (bfzt.equals("1")) {
- bfztName = "撤防";
- bfzt = "0";
- } else {
- ToastHelper.showToast("窨井状态错误,无法进行撤防或者布防", ToastHelper.ERROR);
- return;
- }
- activity.showSingleOptionDialog(bfztName, activity.dataBeans.get(position).getId(), bfzt);
- }
- });
- }
+ showSingleOptionDialog(bfztName, dataBeans.get(position).getId(), bfzt);
+ }
+ });
}
}
}
- }
+ return true;
+ };
//单个撤防/布防
private void showSingleOptionDialog(String bfztName, String id, String bfzt) {
diff --git a/app/src/main/java/com/casic/dcms/ui/WorkerOnMapActivity.java b/app/src/main/java/com/casic/dcms/ui/WorkerOnMapActivity.java
index 280f13d..fd2feb6 100644
--- a/app/src/main/java/com/casic/dcms/ui/WorkerOnMapActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/WorkerOnMapActivity.java
@@ -7,14 +7,11 @@
import android.graphics.drawable.BitmapDrawable;
import android.location.Location;
import android.os.Handler;
-import android.os.Message;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.widget.TextView;
-import androidx.annotation.NonNull;
-
import com.amap.api.location.AMapLocation;
import com.casic.dcms.R;
import com.casic.dcms.base.AndroidxBaseActivity;
@@ -24,6 +21,7 @@
import com.casic.dcms.utils.LocationHelper;
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.casic.dcms.utils.callback.ILocationListener;
import com.esri.arcgisruntime.concurrent.ListenableFuture;
import com.esri.arcgisruntime.geometry.Point;
@@ -41,7 +39,6 @@
import com.qmuiteam.qmui.widget.popup.QMUIPopup;
import com.qmuiteam.qmui.widget.popup.QMUIPopups;
-import java.lang.ref.WeakReference;
import java.util.List;
import java.util.concurrent.ExecutionException;
@@ -74,7 +71,7 @@
Basemap baseMap = new Basemap(ArcGisMapCreator.createBaseLayer());
arcGISMap.setBasemap(baseMap);
viewBinding.mapView.setMap(arcGISMap);
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
}
@SuppressLint("ClickableViewAccessibility")
@@ -138,38 +135,28 @@
});
}
- private static class WeakReferenceHandler extends Handler {
- private final WeakReference reference;
-
- private WeakReferenceHandler(WorkerOnMapActivity activity) {
- reference = new WeakReference<>(activity);
+ private final Handler.Callback callback = msg -> {
+ if (msg.what == 2021060101) {
+ View popupView = LayoutInflater.from(this).inflate(R.layout.popu_worker, null);
+ TextView userNameView = popupView.findViewById(R.id.userNameView);
+ TextView signInTimeView = popupView.findViewById(R.id.signInTimeView);
+ TextView toiletNameView = popupView.findViewById(R.id.toiletNameView);
+ userNameView.setText(userName);
+ signInTimeView.setText(createTime);
+ toiletNameView.setText(toiletName);
+ QMUIPopups.popup(this, QMUIDisplayHelper.dp2px(this, 250))
+ .preferredDirection(QMUIPopup.DIRECTION_BOTTOM)
+ .view(popupView)
+ .edgeProtection(QMUIDisplayHelper.dp2px(this, 20))
+ .dimAmount(0.6f)
+ .animStyle(QMUIPopup.ANIM_GROW_FROM_CENTER)
+ .onDismiss(null)
+ .show(viewBinding.mapView);
+ } else if (msg.what == 2021060102) {
+ ToastHelper.showToast("附近无工作人员,请重新选点", ToastHelper.WARING);
}
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- WorkerOnMapActivity mapActivity = reference.get();
- if (msg.what == 2021060101) {
- View popupView = LayoutInflater.from(mapActivity).inflate(R.layout.popu_worker, null);
- TextView userNameView = popupView.findViewById(R.id.userNameView);
- TextView signInTimeView = popupView.findViewById(R.id.signInTimeView);
- TextView toiletNameView = popupView.findViewById(R.id.toiletNameView);
- userNameView.setText(mapActivity.userName);
- signInTimeView.setText(mapActivity.createTime);
- toiletNameView.setText(mapActivity.toiletName);
- QMUIPopups.popup(mapActivity, QMUIDisplayHelper.dp2px(mapActivity, 250))
- .preferredDirection(QMUIPopup.DIRECTION_BOTTOM)
- .view(popupView)
- .edgeProtection(QMUIDisplayHelper.dp2px(mapActivity, 20))
- .dimAmount(0.6f)
- .animStyle(QMUIPopup.ANIM_GROW_FROM_CENTER)
- .onDismiss(null)
- .show(mapActivity.viewBinding.mapView);
- } else if (msg.what == 2021060102) {
- ToastHelper.showToast("附近无工作人员,请重新选点", ToastHelper.WARING);
- }
- }
- }
+ return true;
+ };
private void addPictureMarker(Point point) {
Bitmap caseBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.on_line);
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/LightOnMapFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/LightOnMapFragment.java
index 0015d9e..fc056ef 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/LightOnMapFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/LightOnMapFragment.java
@@ -14,8 +14,6 @@
import android.widget.ImageView;
import android.widget.TextView;
-import androidx.annotation.NonNull;
-
import com.amap.api.location.AMapLocation;
import com.casic.dcms.R;
import com.casic.dcms.base.AndroidxBaseFragment;
@@ -35,6 +33,7 @@
import com.casic.dcms.utils.LocationHelper;
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.casic.dcms.utils.callback.IHttpRequestListener;
import com.casic.dcms.utils.callback.ILocationListener;
import com.esri.arcgisruntime.concurrent.ListenableFuture;
@@ -57,7 +56,6 @@
import org.json.JSONObject;
import java.io.IOException;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ExecutionException;
@@ -81,7 +79,7 @@
context = getContext();
lightLocalBeanDao = BaseApplication.getDaoSession().getStreetLightLocalBeanDao();
lightMapPresenter = new LightMapPresenterImpl(this);
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
controlPresenter = new LightControlPresenterImpl(this);
}
@@ -195,98 +193,87 @@
ToastHelper.showToast("操作失败", ToastHelper.ERROR);
}
- private static class WeakReferenceHandler extends Handler {
- private final WeakReference reference;
+ private final Handler.Callback callback = msg -> {
+ switch (msg.what) {
+ case 2021062401:
+ String lampId = (String) msg.obj;
- private WeakReferenceHandler(LightOnMapFragment fragment) {
- reference = new WeakReference<>(fragment);
- }
+ View popupView = LayoutInflater.from(context).inflate(R.layout.popu_street_light, null);
+ TextView lightStateView = popupView.findViewById(R.id.lightStateView);
+ TextView lightAddressView = popupView.findViewById(R.id.lightAddressView);
+ TextView lightStreetView = popupView.findViewById(R.id.lightStreetView);
+ TextView lightElecView = popupView.findViewById(R.id.lightElecView);
+ TextView lightVolView = popupView.findViewById(R.id.lightVolView);
+ TextView lightTimeView = popupView.findViewById(R.id.lightTimeView);
+ ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch);
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- LightOnMapFragment fragment = reference.get();
- Context context = fragment.context;
- switch (msg.what) {
- case 2021062401:
- String lampId = (String) msg.obj;
+ OtherUtils.showLoadingDialog(context, "路灯详情获取中,请稍后...");
+ HttpRequestHelper.doRequest(Constant.LIGHT_DETAIL, lampId, new IHttpRequestListener() {
+ @Override
+ public void onSuccess(ResponseBody resultBean) {
+ OtherUtils.dismissLoadingDialog();
+ try {
+ String string = resultBean.string();
+ JSONObject jsonObject = new JSONObject(string);
+ int code = jsonObject.getInt("code");
+ if (code == 200) {
+ JSONObject dataObject = jsonObject.getJSONObject("data");
- View popupView = LayoutInflater.from(context).inflate(R.layout.popu_street_light, null);
- TextView lightStateView = popupView.findViewById(R.id.lightStateView);
- TextView lightAddressView = popupView.findViewById(R.id.lightAddressView);
- TextView lightStreetView = popupView.findViewById(R.id.lightStreetView);
- TextView lightElecView = popupView.findViewById(R.id.lightElecView);
- TextView lightVolView = popupView.findViewById(R.id.lightVolView);
- TextView lightTimeView = popupView.findViewById(R.id.lightTimeView);
- ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch);
+ String statusName = dataObject.getString("statusName");
+ lightStateView.setText(statusName);
+ lightAddressView.setText(dataObject.getString("address"));
+ lightStreetView.setText(dataObject.getString("streetName"));
+ lightElecView.setText(String.valueOf(dataObject.getDouble("latestElec")));
+ lightVolView.setText(String.valueOf(dataObject.getDouble("latestVol")));
+ lightTimeView.setText(dataObject.getString("latestTime"));
- OtherUtils.showLoadingDialog(context, "路灯详情获取中,请稍后...");
- HttpRequestHelper.doRequest(Constant.LIGHT_DETAIL, lampId, new IHttpRequestListener() {
- @Override
- public void onSuccess(ResponseBody resultBean) {
- OtherUtils.dismissLoadingDialog();
- try {
- String string = resultBean.string();
- JSONObject jsonObject = new JSONObject(string);
- int code = jsonObject.getInt("code");
- if (code == 200) {
- JSONObject dataObject = jsonObject.getJSONObject("data");
+ QMUIPopups.popup(context, QMUIDisplayHelper.dp2px(context, 280))
+ .preferredDirection(QMUIPopup.DIRECTION_BOTTOM)
+ .view(popupView)
+ .edgeProtection(QMUIDisplayHelper.dp2px(context, 20))
+ .dimAmount(0.6f)
+ .animStyle(QMUIPopup.ANIM_GROW_FROM_CENTER)
+ .onDismiss(null)
+ .show(viewBinding.mapView);
- String statusName = dataObject.getString("statusName");
- lightStateView.setText(statusName);
- lightAddressView.setText(dataObject.getString("address"));
- lightStreetView.setText(dataObject.getString("streetName"));
- lightElecView.setText(String.valueOf(dataObject.getDouble("latestElec")));
- lightVolView.setText(String.valueOf(dataObject.getDouble("latestVol")));
- lightTimeView.setText(dataObject.getString("latestTime"));
+ lightSwitch.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ List lampIds = new ArrayList<>();
+ lampIds.add(Long.parseLong(lampId));
- QMUIPopups.popup(context, QMUIDisplayHelper.dp2px(context, 280))
- .preferredDirection(QMUIPopup.DIRECTION_BOTTOM)
- .view(popupView)
- .edgeProtection(QMUIDisplayHelper.dp2px(context, 20))
- .dimAmount(0.6f)
- .animStyle(QMUIPopup.ANIM_GROW_FROM_CENTER)
- .onDismiss(null)
- .show(fragment.viewBinding.mapView);
-
- lightSwitch.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- List lampIds = new ArrayList<>();
- lampIds.add(Long.parseLong(lampId));
-
- String controlType;
- if (statusName.equals("离线")) {
- controlType = "1";
- } else {
- controlType = "0";
- }
- fragment.controlPresenter.onReadyRetrofitRequest(lampIds, controlType);
+ String controlType;
+ if (statusName.equals("离线")) {
+ controlType = "1";
+ } else {
+ controlType = "0";
}
- });
- } else {
- ToastHelper.showToast("服务器异常,请重新选点", ToastHelper.ERROR);
- }
- } catch (JSONException | IOException e) {
- ToastHelper.showToast("解析失败,请重新选点", ToastHelper.ERROR);
+ controlPresenter.onReadyRetrofitRequest(lampIds, controlType);
+ }
+ });
+ } else {
+ ToastHelper.showToast("服务器异常,请重新选点", ToastHelper.ERROR);
}
+ } catch (JSONException | IOException e) {
+ ToastHelper.showToast("解析失败,请重新选点", ToastHelper.ERROR);
}
+ }
- @Override
- public void onFailure(Throwable throwable) {
- OtherUtils.dismissLoadingDialog();
- ToastHelper.showToast("网络连接失败,请重新选点", ToastHelper.ERROR);
- }
- });
- break;
- case 2021062402:
- ToastHelper.showToast("此附近无路灯,请重新选点", ToastHelper.ERROR);
- break;
- default:
- break;
- }
+ @Override
+ public void onFailure(Throwable throwable) {
+ OtherUtils.dismissLoadingDialog();
+ ToastHelper.showToast("网络连接失败,请重新选点", ToastHelper.ERROR);
+ }
+ });
+ break;
+ case 2021062402:
+ ToastHelper.showToast("此附近无路灯,请重新选点", ToastHelper.ERROR);
+ break;
+ default:
+ break;
}
- }
+ return true;
+ };
private void addPictureMarker(List points) {
for (Point point : points) {
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/PersonOnMapFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/PersonOnMapFragment.java
index d24b583..06db9a7 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/PersonOnMapFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/PersonOnMapFragment.java
@@ -24,6 +24,7 @@
import com.casic.dcms.utils.ArcGisMapCreator;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.esri.arcgisruntime.concurrent.ListenableFuture;
import com.esri.arcgisruntime.geometry.SpatialReference;
import com.esri.arcgisruntime.mapping.ArcGISMap;
@@ -39,7 +40,6 @@
import com.qmuiteam.qmui.widget.popup.QMUIPopup;
import com.qmuiteam.qmui.widget.popup.QMUIPopups;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ExecutionException;
@@ -70,7 +70,7 @@
arcGISMap.setBasemap(baseMap);
viewBinding.mapView.setMap(arcGISMap);
graphicsOverlays = viewBinding.mapView.getGraphicsOverlays();
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
}
@SuppressLint("ClickableViewAccessibility")
@@ -113,45 +113,34 @@
});
}
- private static class WeakReferenceHandler extends Handler {
- private final WeakReference reference;
-
- private WeakReferenceHandler(PersonOnMapFragment fragment) {
- reference = new WeakReference<>(fragment);
+ private final Handler.Callback callback = msg -> {
+ switch (msg.what) {
+ case 2021051901:
+ PointPersonBean dataBean = (PointPersonBean) msg.obj;
+ View popupView = LayoutInflater.from(context).inflate(R.layout.popu_person, null);
+ TextView userNameView = popupView.findViewById(R.id.userNameView);
+ TextView deptNameView = popupView.findViewById(R.id.deptNameView);
+ TextView phoneNumberView = popupView.findViewById(R.id.phoneNumberView);
+ TextView lastTimeView = popupView.findViewById(R.id.lastTimeView);
+ userNameView.setText(dataBean.getPersonName());
+ deptNameView.setText(dataBean.getPersonDept());
+ phoneNumberView.setText(dataBean.getPersonPhone());
+ lastTimeView.setText(dataBean.getPointTime());
+ QMUIPopups.popup(context, QMUIDisplayHelper.dp2px(context, 250))
+ .preferredDirection(QMUIPopup.DIRECTION_BOTTOM)
+ .view(popupView)
+ .edgeProtection(QMUIDisplayHelper.dp2px(context, 20))
+ .dimAmount(0.6f)
+ .animStyle(QMUIPopup.ANIM_GROW_FROM_CENTER)
+ .onDismiss(null)
+ .show(viewBinding.mapView);
+ break;
+ case 2021051902:
+ ToastHelper.showToast("附近无工作人员,请重新选点", ToastHelper.WARING);
+ break;
}
-
- @Override
- public void handleMessage(Message msg) {
- super.handleMessage(msg);
- PersonOnMapFragment mapFragment = reference.get();
- Context context = mapFragment.context;
- switch (msg.what) {
- case 2021051901:
- PointPersonBean dataBean = (PointPersonBean) msg.obj;
- View popupView = LayoutInflater.from(context).inflate(R.layout.popu_person, null);
- TextView userNameView = popupView.findViewById(R.id.userNameView);
- TextView deptNameView = popupView.findViewById(R.id.deptNameView);
- TextView phoneNumberView = popupView.findViewById(R.id.phoneNumberView);
- TextView lastTimeView = popupView.findViewById(R.id.lastTimeView);
- userNameView.setText(dataBean.getPersonName());
- deptNameView.setText(dataBean.getPersonDept());
- phoneNumberView.setText(dataBean.getPersonPhone());
- lastTimeView.setText(dataBean.getPointTime());
- QMUIPopups.popup(context, QMUIDisplayHelper.dp2px(context, 250))
- .preferredDirection(QMUIPopup.DIRECTION_BOTTOM)
- .view(popupView)
- .edgeProtection(QMUIDisplayHelper.dp2px(context, 20))
- .dimAmount(0.6f)
- .animStyle(QMUIPopup.ANIM_GROW_FROM_CENTER)
- .onDismiss(null)
- .show(mapFragment.viewBinding.mapView);
- break;
- case 2021051902:
- ToastHelper.showToast("附近无工作人员,请重新选点", ToastHelper.WARING);
- break;
- }
- }
- }
+ return true;
+ };
@Override
public void onlinePerson(OnlinePersonBean resultBean) {
diff --git a/app/src/main/java/com/casic/dcms/utils/WeakReferenceHandler.java b/app/src/main/java/com/casic/dcms/utils/WeakReferenceHandler.java
new file mode 100644
index 0000000..d635db6
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/utils/WeakReferenceHandler.java
@@ -0,0 +1,28 @@
+package com.casic.dcms.utils;
+
+import android.os.Handler;
+import android.os.Looper;
+import android.os.Message;
+
+import java.lang.ref.WeakReference;
+
+public class WeakReferenceHandler extends Handler {
+
+ private final WeakReference mWeakReference;
+
+ public WeakReferenceHandler(Callback callback) {
+ mWeakReference = new WeakReference<>(callback);
+ }
+
+ public WeakReferenceHandler(Callback callback, Looper looper) {
+ super(looper);
+ mWeakReference = new WeakReference<>(callback);
+ }
+
+ @Override
+ public void handleMessage(Message msg) {
+ if (mWeakReference != null && mWeakReference.get() != null) {
+ mWeakReference.get().handleMessage(msg);
+ }
+ }
+}
diff --git a/.idea/misc.xml b/.idea/misc.xml
index c4e854b..cf5266d 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -22,6 +22,7 @@
+
@@ -50,6 +51,7 @@
+
@@ -77,6 +79,7 @@
+
@@ -95,6 +98,7 @@
+
@@ -118,14 +122,14 @@
-
+
-
+
diff --git a/app/build.gradle b/app/build.gradle
index 0d88385..a89466d 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -44,10 +44,10 @@
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
- implementation 'androidx.core:core-ktx:1.6.0'
+ implementation 'androidx.core:core-ktx:1.7.0'
implementation 'androidx.appcompat:appcompat:1.4.0'
implementation 'com.google.android.material:material:1.4.0'
- implementation 'androidx.constraintlayout:constraintlayout:2.1.2'
+ implementation 'androidx.constraintlayout:constraintlayout:2.1.3'
//Google官方授权框架
implementation 'pub.devrel:easypermissions:3.0.0'
//腾讯Android UI框架
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/impl/CaseHandledListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/impl/CaseHandledListModelImpl.java
index 02c6875..37b76ac 100644
--- a/app/src/main/java/com/casic/dcms/mvp/model/impl/CaseHandledListModelImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/model/impl/CaseHandledListModelImpl.java
@@ -26,7 +26,7 @@
*/
@Override
public Subscription sendCaseHandledListRequest(int offset) {
- Observable observable = RetrofitServiceManager.getCaseHandledListResult(offset);
+ Observable observable = RetrofitServiceManager.handleCaseResult(offset);
return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
@Override
public void onCompleted() {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
index 550750c..0c77aea 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
@@ -28,7 +28,7 @@
import com.casic.dcms.mvp.view.IGetCaseNextNodeView;
import com.casic.dcms.mvp.view.IUploadFileView;
import com.casic.dcms.ui.fragment.handle.CaseHandledFragment;
-import com.casic.dcms.ui.fragment.handle.CaseTimeoutFragment;
+import com.casic.dcms.ui.fragment.handle.CaseOverTimeFragment;
import com.casic.dcms.ui.fragment.handle.CaseTodoFragment;
import com.casic.dcms.ui.fragment.handle.CaseUrgentFragment;
import com.casic.dcms.utils.Constant;
@@ -336,7 +336,7 @@
ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS);
switch (title) {
case "超时案卷":
- CaseTimeoutFragment.sendEmptyMessage(Constant.CASE_HANDLE_OK);
+ CaseOverTimeFragment.sendEmptyMessage(Constant.CASE_HANDLE_OK);
CaseHandledFragment.sendEmptyMessage(Constant.CASE_HANDLE_OK);
break;
case "紧急案卷":
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java
index 0e13b10..6b721eb 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java
@@ -1,8 +1,8 @@
package com.casic.dcms.ui;
+import android.content.Context;
import android.content.Intent;
import android.os.Handler;
-import android.os.Message;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.DividerItemDecoration;
@@ -16,16 +16,17 @@
import com.casic.dcms.mvp.view.ISearchCaseResultView;
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
public class CaseListResultActivity extends AndroidxBaseActivity implements ISearchCaseResultView {
+ private final Context context = this;
private CaseListPresenterImpl caseListPresenter;
private CaseListResultAdapter adapter;
private String typeCode;
@@ -53,7 +54,7 @@
@Override
protected void initData() {
caseListPresenter = new CaseListPresenterImpl(this);
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
eorc = getIntent().getStringExtra("eorc");
typeCode = getIntent().getStringExtra("typeCode");
typeDetailCode = getIntent().getStringExtra("typeDetailCode");
@@ -93,44 +94,33 @@
/**
* 弱应用Handler,防止内存泄漏
*/
- private static class WeakReferenceHandler extends Handler {
-
- private final WeakReference reference;
-
- private WeakReferenceHandler(CaseListResultActivity activity) {
- reference = new WeakReference<>(activity);
- }
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- CaseListResultActivity resultActivity = reference.get();
- if (msg.what == 20210425) {
- if (resultActivity.isRefresh || resultActivity.isLoadMore) {
- resultActivity.adapter.notifyDataSetChanged();
+ private final Handler.Callback callback = msg -> {
+ if (msg.what == 20210425) {
+ if (isRefresh || isLoadMore) {
+ adapter.notifyDataSetChanged();
+ } else {
+ //首次加载数据
+ if (dataBeans.size() == 0) {
+ viewBinding.emptyView.show("抱歉,没有查到符合您规定条件的案卷", null);
} else {
- //首次加载数据
- if (resultActivity.dataBeans.size() == 0) {
- resultActivity.viewBinding.emptyView.show("抱歉,没有查到符合您规定条件的案卷", null);
- } else {
- resultActivity.viewBinding.emptyView.hide();
- resultActivity.adapter = new CaseListResultAdapter(resultActivity, resultActivity.dataBeans);
- resultActivity.viewBinding.caseRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity));
- resultActivity.viewBinding.caseRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL));
- resultActivity.viewBinding.caseRecyclerView.setAdapter(resultActivity.adapter);
- resultActivity.adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() {
- @Override
- public void onClick(int position) {
- Intent intent = new Intent(resultActivity, CaseDetailActivity.class);
- intent.putExtra("id", resultActivity.dataBeans.get(position).getId());
- resultActivity.startActivity(intent);
- }
- });
- }
+ viewBinding.emptyView.hide();
+ adapter = new CaseListResultAdapter(context, dataBeans);
+ viewBinding.caseRecyclerView.setLayoutManager(new LinearLayoutManager(context));
+ viewBinding.caseRecyclerView.addItemDecoration(new DividerItemDecoration(context, DividerItemDecoration.VERTICAL));
+ viewBinding.caseRecyclerView.setAdapter(adapter);
+ adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() {
+ @Override
+ public void onClick(int position) {
+ Intent intent = new Intent(context, CaseDetailActivity.class);
+ intent.putExtra("id", dataBeans.get(position).getId());
+ startActivity(intent);
+ }
+ });
}
}
}
- }
+ return true;
+ };
@Override
public void showProgress() {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java
index 6e374cd..626720a 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java
@@ -1,6 +1,7 @@
package com.casic.dcms.ui;
import android.annotation.SuppressLint;
+import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
@@ -12,7 +13,6 @@
import android.view.MotionEvent;
import android.widget.RadioGroup;
-import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
import com.casic.dcms.R;
@@ -32,6 +32,7 @@
import com.casic.dcms.utils.ArcGisMapCreator;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.casic.dcms.widgets.AlertControlDialog;
import com.esri.arcgisruntime.concurrent.ListenableFuture;
import com.esri.arcgisruntime.data.ServiceFeatureTable;
@@ -48,7 +49,6 @@
import com.esri.arcgisruntime.symbology.PictureMarkerSymbol;
import com.esri.arcgisruntime.util.ListenableList;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -58,6 +58,7 @@
implements RadioGroup.OnCheckedChangeListener, IHandleCaseView, IVerifyCaseView, ICheckCaseView {
private static final String TAG = "CaseOnMapActivity";
+ private final Context context = this;
private HandleCasePresenterImpl handleCasePresenter;
private VerifyCasePresenterImpl caseVerifyPresenter;
private CaseCheckPresenterImpl caseCheckPresenter;
@@ -105,7 +106,7 @@
graphicsOverlays = viewBinding.mapView.getGraphicsOverlays();
//handler弱引用,防止内存泄漏
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
}
@SuppressLint("ClickableViewAccessibility")
@@ -150,48 +151,38 @@
});
}
- private static class WeakReferenceHandler extends Handler {
- private final WeakReference reference;
+ private final Handler.Callback callback = msg -> {
+ switch (msg.what) {
+ case 2021051401:
+ String caseId = (String) msg.obj;
+ new AlertControlDialog.Builder()
+ .setContext(context)
+ .setTitle("查看案卷详情")
+ .setMessage("ID:" + caseId)
+ .setNegativeButton("取消")
+ .setPositiveButton("确定")
+ .setOnDialogButtonClickListener(new AlertControlDialog.OnDialogButtonClickListener() {
+ @Override
+ public void onConfirmClick() {
+ Intent intent = new Intent(context, CaseDetailActivity.class);
+ intent.putExtra("id", caseId);
+ startActivity(intent);
+ }
- private WeakReferenceHandler(CaseOnMapActivity activity) {
- reference = new WeakReference<>(activity);
+ @Override
+ public void onCancelClick() {
+
+ }
+ }).build().show();
+ break;
+ case 2021051402:
+ ToastHelper.showToast("此附近无案卷,请重新选点", ToastHelper.WARING);
+ break;
+ default:
+ break;
}
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- CaseOnMapActivity onMapActivity = reference.get();
- switch (msg.what) {
- case 2021051401:
- String caseId = (String) msg.obj;
- new AlertControlDialog.Builder()
- .setContext(onMapActivity)
- .setTitle("查看案卷详情")
- .setMessage("ID:" + caseId)
- .setNegativeButton("取消")
- .setPositiveButton("确定")
- .setOnDialogButtonClickListener(new AlertControlDialog.OnDialogButtonClickListener() {
- @Override
- public void onConfirmClick() {
- Intent intent = new Intent(onMapActivity, CaseDetailActivity.class);
- intent.putExtra("id", caseId);
- onMapActivity.startActivity(intent);
- }
-
- @Override
- public void onCancelClick() {
-
- }
- }).build().show();
- break;
- case 2021051402:
- ToastHelper.showToast("此附近无案卷,请重新选点", ToastHelper.WARING);
- break;
- default:
- break;
- }
- }
- }
+ return true;
+ };
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java b/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java
index 5c037c4..6289181 100644
--- a/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java
@@ -3,7 +3,6 @@
import android.content.Context;
import android.content.Intent;
import android.os.Handler;
-import android.os.Message;
import android.text.TextUtils;
import android.view.View;
@@ -21,12 +20,12 @@
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.StringHelper;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.casic.dcms.widgets.datepicker.DatePopupWindow;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
@@ -53,7 +52,7 @@
@Override
protected void initData() {
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
recordPresenter = new CleanRecordPresenterImpl(this);
recordPresenter.onReadyRetrofitRequest(StringHelper.getUserBean().getId(), "", "", "", pageIndex);
}
@@ -139,59 +138,48 @@
OtherUtils.dismissLoadingDialog();
}
- private static class WeakReferenceHandler extends Handler {
-
- private final WeakReference reference;
-
- private WeakReferenceHandler(CleanResultListActivity activity) {
- reference = new WeakReference<>(activity);
- }
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- CleanResultListActivity resultActivity = reference.get();
- if (msg.what == 20210601) {
- if (resultActivity.isRefresh || resultActivity.isLoadMore) {
- resultActivity.adapter.notifyDataSetChanged();
+ private final Handler.Callback callback = msg -> {
+ if (msg.what == 20210601) {
+ if (isRefresh || isLoadMore) {
+ adapter.notifyDataSetChanged();
+ } else {
+ //首次加载数据
+ if (dataBeans.size() == 0) {
+ viewBinding.emptyView.show("抱歉,没有查到您的保洁工作记录", null);
} else {
- //首次加载数据
- if (resultActivity.dataBeans.size() == 0) {
- resultActivity.viewBinding.emptyView.show("抱歉,没有查到您的保洁工作记录", null);
- } else {
- resultActivity.viewBinding.emptyView.hide();
- resultActivity.adapter = new RecordListAdapter(resultActivity, resultActivity.dataBeans);
- resultActivity.viewBinding.recordRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity));
- resultActivity.viewBinding.recordRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL));
- resultActivity.viewBinding.recordRecyclerView.setAdapter(resultActivity.adapter);
- resultActivity.adapter.setOnItemClickListener(new RecordListAdapter.OnItemClickListener() {
- @Override
- public void onClick(int position) {
- CleanRecordBean.DataBean.RowsBean rowsBean = resultActivity.dataBeans.get(position);
- Intent intent = new Intent(resultActivity, WorkerOnMapActivity.class);
- intent.putExtra("userName", rowsBean.getUserName());
- intent.putExtra("createTime", rowsBean.getCreateTime());
- intent.putExtra("toiletName", rowsBean.getToiletName());
- String dataLng = rowsBean.getLng();
- if (TextUtils.isEmpty(dataLng)) {
- ToastHelper.showToast("经度异常", ToastHelper.ERROR);
- return;
- }
- intent.putExtra("lng", Double.parseDouble(dataLng));
- String dataLat = rowsBean.getLat();
- if (TextUtils.isEmpty(dataLat)) {
- ToastHelper.showToast("纬度异常", ToastHelper.ERROR);
- return;
- }
- intent.putExtra("lat", Double.parseDouble(dataLat));
- resultActivity.startActivity(intent);
+ viewBinding.emptyView.hide();
+ adapter = new RecordListAdapter(context, dataBeans);
+ viewBinding.recordRecyclerView.setLayoutManager(new LinearLayoutManager(context));
+ viewBinding.recordRecyclerView.addItemDecoration(new DividerItemDecoration(context, DividerItemDecoration.VERTICAL));
+ viewBinding.recordRecyclerView.setAdapter(adapter);
+ adapter.setOnItemClickListener(new RecordListAdapter.OnItemClickListener() {
+ @Override
+ public void onClick(int position) {
+ CleanRecordBean.DataBean.RowsBean rowsBean = dataBeans.get(position);
+ Intent intent = new Intent(context, WorkerOnMapActivity.class);
+ intent.putExtra("userName", rowsBean.getUserName());
+ intent.putExtra("createTime", rowsBean.getCreateTime());
+ intent.putExtra("toiletName", rowsBean.getToiletName());
+ String dataLng = rowsBean.getLng();
+ if (TextUtils.isEmpty(dataLng)) {
+ ToastHelper.showToast("经度异常", ToastHelper.ERROR);
+ return;
}
- });
- }
+ intent.putExtra("lng", Double.parseDouble(dataLng));
+ String dataLat = rowsBean.getLat();
+ if (TextUtils.isEmpty(dataLat)) {
+ ToastHelper.showToast("纬度异常", ToastHelper.ERROR);
+ return;
+ }
+ intent.putExtra("lat", Double.parseDouble(dataLat));
+ startActivity(intent);
+ }
+ });
}
}
}
- }
+ return true;
+ };
@Override
protected void onDestroy() {
diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
index 6f53e4e..4684efd 100644
--- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
@@ -50,6 +50,7 @@
import com.casic.dcms.utils.StatusBarColorUtil;
import com.casic.dcms.utils.StringHelper;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.casic.dcms.utils.callback.IHttpRequestListener;
import com.google.android.material.navigation.NavigationBarView;
import com.google.gson.Gson;
@@ -57,7 +58,6 @@
import com.igexin.sdk.PushManager;
import java.io.IOException;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
@@ -89,7 +89,7 @@
protected void initData() {
//个推初始化
PushManager.getInstance().initialize(this);
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
uploadPositionPresenter = new UploadPositionPresenterImpl(this);
registerPresenter = new PushRegisterPresenterImpl(this);
mapConfigPresenter = new GetMapConfigPresenterImpl(this);
@@ -203,59 +203,48 @@
viewBinding.mainViewPager.setAdapter(mainPageAdapter);
}
- private static class WeakReferenceHandler extends Handler {
-
- private final WeakReference reference;
-
- private WeakReferenceHandler(MainActivity activity) {
- reference = new WeakReference<>(activity);
- }
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- MainActivity mainActivity = reference.get();
- if (msg.what == Constant.PUSH_REGISTER) {
- String clientId = (String) msg.obj;
- Log.d(TAG, "注册个推Client: $clientId");
- mainActivity.registerPresenter.onReadyRetrofitRequest(clientId);
- } else if (msg.what == Constant.PUSH_CREATE_NOTIFICATION) {
- //显示小红点
- try {
- mainActivity.updateMessageNumber();
- } catch (NullPointerException e) {
- e.printStackTrace();
- }
- NoticeBean noticeBean = (NoticeBean) msg.obj;
- NotificationHelper notificationHelper = NotificationHelper.getInstance(mainActivity);
- Notification notification = notificationHelper.createDefault(
- noticeBean.getTitle(),
- noticeBean.getContent(),
- noticeBean.getCaseId(),
- CaseDetailActivity.class
- );
- notificationHelper.push(1, notification);
- } else if (msg.what == Constant.MESSAGE_NUMBER) {
- mainActivity.updateMessageNumber();
- } else if (msg.what == Constant.UPLOAD_LOCATION) {
- AMapLocation aMapLocation = (AMapLocation) msg.obj;
- try {
- double[] gcjToWgs = LocationHelper.gcjToWgs(aMapLocation.getLongitude(), aMapLocation.getLatitude());
- mainActivity.uploadPositionPresenter.onReadyRetrofitRequest(mainActivity.imei,
- String.valueOf(gcjToWgs[1]),
- String.valueOf(gcjToWgs[0]));
- } catch (NullPointerException e) {
- e.printStackTrace();
- }
- } else if (msg.what == Constant.LOGIN_OUT) {
- Log.d(TAG, "退出登录");
- //回到登录页
- SaveKeyValues.putValue("autoLogin", false);
- mainActivity.startActivity(new Intent(mainActivity, LoginActivity.class));
- mainActivity.finish();
+ private final Handler.Callback callback = msg -> {
+ if (msg.what == Constant.PUSH_REGISTER) {
+ String clientId = (String) msg.obj;
+ Log.d(TAG, "注册个推Client: $clientId");
+ registerPresenter.onReadyRetrofitRequest(clientId);
+ } else if (msg.what == Constant.PUSH_CREATE_NOTIFICATION) {
+ //显示小红点
+ try {
+ updateMessageNumber();
+ } catch (NullPointerException e) {
+ e.printStackTrace();
}
+ NoticeBean noticeBean = (NoticeBean) msg.obj;
+ NotificationHelper notificationHelper = NotificationHelper.getInstance(this);
+ Notification notification = notificationHelper.createDefault(
+ noticeBean.getTitle(),
+ noticeBean.getContent(),
+ noticeBean.getCaseId(),
+ CaseDetailActivity.class
+ );
+ notificationHelper.push(1, notification);
+ } else if (msg.what == Constant.MESSAGE_NUMBER) {
+ updateMessageNumber();
+ } else if (msg.what == Constant.UPLOAD_LOCATION) {
+ AMapLocation aMapLocation = (AMapLocation) msg.obj;
+ try {
+ double[] gcjToWgs = LocationHelper.gcjToWgs(aMapLocation.getLongitude(), aMapLocation.getLatitude());
+ uploadPositionPresenter.onReadyRetrofitRequest(imei,
+ String.valueOf(gcjToWgs[1]),
+ String.valueOf(gcjToWgs[0]));
+ } catch (NullPointerException e) {
+ e.printStackTrace();
+ }
+ } else if (msg.what == Constant.LOGIN_OUT) {
+ Log.d(TAG, "退出登录");
+ //回到登录页
+ SaveKeyValues.putValue("autoLogin", false);
+ startActivity(new Intent(this, LoginActivity.class));
+ finish();
}
- }
+ return true;
+ };
private void updateMessageNumber() {
List list = BaseApplication.getDaoSession()
diff --git a/app/src/main/java/com/casic/dcms/ui/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/ui/MaintainRecordActivity.java
index e587dd7..ef03adb 100644
--- a/app/src/main/java/com/casic/dcms/ui/MaintainRecordActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/MaintainRecordActivity.java
@@ -1,7 +1,6 @@
package com.casic.dcms.ui;
import android.os.Handler;
-import android.os.Message;
import android.view.View;
import androidx.annotation.NonNull;
@@ -17,12 +16,12 @@
import com.casic.dcms.utils.CalendarUtil;
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.casic.dcms.widgets.datepicker.DatePopupWindow;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
@@ -48,7 +47,7 @@
@Override
protected void initData() {
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
recordPresenter = new MaintainRecordPresenterImpl(this);
recordPresenter.onReadyRetrofitRequest("", "", pageIndex);
}
@@ -128,37 +127,25 @@
OtherUtils.dismissLoadingDialog();
}
- private static class WeakReferenceHandler extends Handler {
-
- private final WeakReference reference;
-
- private WeakReferenceHandler(MaintainRecordActivity activity) {
- reference = new WeakReference<>(activity);
- }
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- MaintainRecordActivity resultActivity = reference.get();
- if (msg.what == 20210622) {
- if (resultActivity.isRefresh || resultActivity.isLoadMore) {
- resultActivity.adapter.notifyDataSetChanged();
+ private final Handler.Callback callback = msg -> {
+ if (msg.what == 20210622) {
+ if (isRefresh || isLoadMore) {
+ adapter.notifyDataSetChanged();
+ } else {
+ //首次加载数据
+ if (dataBeans.size() == 0) {
+ viewBinding.emptyView.show("抱歉,没有查到相关养护记录", null);
} else {
- //首次加载数据
- if (resultActivity.dataBeans.size() == 0) {
- resultActivity.viewBinding.emptyView.show("抱歉,没有查到相关养护记录", null);
- } else {
- resultActivity.viewBinding.emptyView.hide();
- resultActivity.adapter = new MaintainRecordAdapter(resultActivity, resultActivity.dataBeans);
- resultActivity.viewBinding.recordRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity));
- resultActivity.viewBinding.recordRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL));
- resultActivity.viewBinding.recordRecyclerView.setAdapter(resultActivity.adapter);
- }
+ viewBinding.emptyView.hide();
+ adapter = new MaintainRecordAdapter(this, dataBeans);
+ viewBinding.recordRecyclerView.setLayoutManager(new LinearLayoutManager(this));
+ viewBinding.recordRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL));
+ viewBinding.recordRecyclerView.setAdapter(adapter);
}
}
}
-
- }
+ return true;
+ };
@Override
protected void onDestroy() {
diff --git a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java
index 028ee6f..b9a8d21 100644
--- a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java
@@ -3,7 +3,6 @@
import android.content.Context;
import android.content.Intent;
import android.os.Handler;
-import android.os.Message;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
@@ -25,6 +24,7 @@
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.SaveKeyValues;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.casic.dcms.widgets.CancelAlarmDialog;
import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import com.qmuiteam.qmui.widget.popup.QMUIPopup;
@@ -33,7 +33,6 @@
import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
@@ -83,7 +82,7 @@
alarmListPresenter = new AlarmListPresenterImpl(this);
alarmListPresenter.onReadyRetrofitRequest(Constant.PAGE_LIMIT, pageIndex);
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
cancelAlarmPresenter = new CancelAlarmPresenterImpl(this);
}
@@ -109,41 +108,31 @@
});
}
- private static class WeakReferenceHandler extends Handler {
- private final WeakReference reference;
-
- private WeakReferenceHandler(PipelineManagerActivity activity) {
- reference = new WeakReference<>(activity);
- }
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- PipelineManagerActivity resultActivity = reference.get();
- if (msg.what == 20210626) {
- if (resultActivity.isRefresh || resultActivity.isLoadMore) {
- resultActivity.adapter.notifyDataSetChanged();
+ private final Handler.Callback callback = msg -> {
+ if (msg.what == 20210626) {
+ if (isRefresh || isLoadMore) {
+ adapter.notifyDataSetChanged();
+ } else {
+ //首次加载数据
+ if (dataBeans.size() == 0) {
+ viewBinding.emptyView.show("设备状态很好,没有任何报警", null);
} else {
- //首次加载数据
- if (resultActivity.dataBeans.size() == 0) {
- resultActivity.viewBinding.emptyView.show("设备状态很好,没有任何报警", null);
- } else {
- resultActivity.viewBinding.emptyView.hide();
- resultActivity.adapter = new AlarmListAdapter(resultActivity, resultActivity.dataBeans);
- resultActivity.viewBinding.warningRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity));
- resultActivity.viewBinding.warningRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL));
- resultActivity.viewBinding.warningRecyclerView.setAdapter(resultActivity.adapter);
- resultActivity.adapter.setOnCancelClickListener(new AlarmListAdapter.OnCancelClickListener() {
- @Override
- public void onClick(int position) {
- resultActivity.showSingleCancelDialog(resultActivity.dataBeans.get(position).getJobId());
- }
- });
- }
+ viewBinding.emptyView.hide();
+ adapter = new AlarmListAdapter(this, dataBeans);
+ viewBinding.warningRecyclerView.setLayoutManager(new LinearLayoutManager(this));
+ viewBinding.warningRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL));
+ viewBinding.warningRecyclerView.setAdapter(adapter);
+ adapter.setOnCancelClickListener(new AlarmListAdapter.OnCancelClickListener() {
+ @Override
+ public void onClick(int position) {
+ showSingleCancelDialog(dataBeans.get(position).getJobId());
+ }
+ });
}
}
}
- }
+ return true;
+ };
//单个消警
private void showSingleCancelDialog(String jobId) {
diff --git a/app/src/main/java/com/casic/dcms/ui/WellListActivity.java b/app/src/main/java/com/casic/dcms/ui/WellListActivity.java
index 9cf4150..93aa7f8 100644
--- a/app/src/main/java/com/casic/dcms/ui/WellListActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/WellListActivity.java
@@ -2,7 +2,6 @@
import android.content.Context;
import android.os.Handler;
-import android.os.Message;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
@@ -23,6 +22,7 @@
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.casic.dcms.widgets.AlertControlDialog;
import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import com.qmuiteam.qmui.widget.popup.QMUIPopup;
@@ -31,7 +31,6 @@
import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
@@ -77,7 +76,7 @@
wellListPresenter = new WellListPresenterImpl(this);
wellListPresenter.onReadyRetrofitRequest(pageIndex);
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
optionWellPresenter = new OptionWellPresenterImpl(this);
}
@@ -103,62 +102,52 @@
});
}
- private static class WeakReferenceHandler extends Handler {
- private final WeakReference reference;
-
- private WeakReferenceHandler(WellListActivity activity) {
- reference = new WeakReference<>(activity);
- }
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- WellListActivity activity = reference.get();
- if (msg.what == 20210628) {
- if (activity.isRefresh || activity.isLoadMore) {
- activity.adapter.notifyDataSetChanged();
+ private final Handler.Callback callback = msg -> {
+ if (msg.what == 20210628) {
+ if (isRefresh || isLoadMore) {
+ adapter.notifyDataSetChanged();
+ } else {
+ //首次加载数据
+ if (dataBeans.size() == 0) {
+ viewBinding.emptyView.show("抱歉,无法为您查到窨井数据", null);
} else {
- //首次加载数据
- if (activity.dataBeans.size() == 0) {
- activity.viewBinding.emptyView.show("抱歉,无法为您查到窨井数据", null);
- } else {
- activity.viewBinding.emptyView.hide();
- activity.adapter = new WellListAdapter(activity, activity.dataBeans);
- activity.viewBinding.wellRecyclerView.setLayoutManager(new LinearLayoutManager(activity));
- activity.viewBinding.wellRecyclerView.addItemDecoration(new DividerItemDecoration(activity, DividerItemDecoration.VERTICAL));
- activity.viewBinding.wellRecyclerView.setAdapter(activity.adapter);
- activity.adapter.setOnItemClickListener(new WellListAdapter.OnItemClickListener() {
- @Override
- public void onClick(int position) {
- WellListBean.DataBean.RowsBean rowsBean = activity.dataBeans.get(position);
- String lng = rowsBean.getCoordinateX();
- String lat = rowsBean.getCoordinateY();
- OtherUtils.displayOnMap(activity, "others", lng, lat);
+ viewBinding.emptyView.hide();
+ adapter = new WellListAdapter(this, dataBeans);
+ viewBinding.wellRecyclerView.setLayoutManager(new LinearLayoutManager(this));
+ viewBinding.wellRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL));
+ viewBinding.wellRecyclerView.setAdapter(adapter);
+ adapter.setOnItemClickListener(new WellListAdapter.OnItemClickListener() {
+ @Override
+ public void onClick(int position) {
+ WellListBean.DataBean.RowsBean rowsBean = dataBeans.get(position);
+ String lng = rowsBean.getCoordinateX();
+ String lat = rowsBean.getCoordinateY();
+ OtherUtils.displayOnMap(context, "others", lng, lat);
+ }
+ });
+ adapter.setOnOptionClickListener(new WellListAdapter.OnOptionClickListener() {
+ @Override
+ public void onClick(int position) {
+ String bfzt = dataBeans.get(position).getBfzt();
+ String bfztName;
+ if (bfzt.equals("0")) {
+ bfztName = "布防";
+ bfzt = "1";
+ } else if (bfzt.equals("1")) {
+ bfztName = "撤防";
+ bfzt = "0";
+ } else {
+ ToastHelper.showToast("窨井状态错误,无法进行撤防或者布防", ToastHelper.ERROR);
+ return;
}
- });
- activity.adapter.setOnOptionClickListener(new WellListAdapter.OnOptionClickListener() {
- @Override
- public void onClick(int position) {
- String bfzt = activity.dataBeans.get(position).getBfzt();
- String bfztName;
- if (bfzt.equals("0")) {
- bfztName = "布防";
- bfzt = "1";
- } else if (bfzt.equals("1")) {
- bfztName = "撤防";
- bfzt = "0";
- } else {
- ToastHelper.showToast("窨井状态错误,无法进行撤防或者布防", ToastHelper.ERROR);
- return;
- }
- activity.showSingleOptionDialog(bfztName, activity.dataBeans.get(position).getId(), bfzt);
- }
- });
- }
+ showSingleOptionDialog(bfztName, dataBeans.get(position).getId(), bfzt);
+ }
+ });
}
}
}
- }
+ return true;
+ };
//单个撤防/布防
private void showSingleOptionDialog(String bfztName, String id, String bfzt) {
diff --git a/app/src/main/java/com/casic/dcms/ui/WorkerOnMapActivity.java b/app/src/main/java/com/casic/dcms/ui/WorkerOnMapActivity.java
index 280f13d..fd2feb6 100644
--- a/app/src/main/java/com/casic/dcms/ui/WorkerOnMapActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/WorkerOnMapActivity.java
@@ -7,14 +7,11 @@
import android.graphics.drawable.BitmapDrawable;
import android.location.Location;
import android.os.Handler;
-import android.os.Message;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.widget.TextView;
-import androidx.annotation.NonNull;
-
import com.amap.api.location.AMapLocation;
import com.casic.dcms.R;
import com.casic.dcms.base.AndroidxBaseActivity;
@@ -24,6 +21,7 @@
import com.casic.dcms.utils.LocationHelper;
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.casic.dcms.utils.callback.ILocationListener;
import com.esri.arcgisruntime.concurrent.ListenableFuture;
import com.esri.arcgisruntime.geometry.Point;
@@ -41,7 +39,6 @@
import com.qmuiteam.qmui.widget.popup.QMUIPopup;
import com.qmuiteam.qmui.widget.popup.QMUIPopups;
-import java.lang.ref.WeakReference;
import java.util.List;
import java.util.concurrent.ExecutionException;
@@ -74,7 +71,7 @@
Basemap baseMap = new Basemap(ArcGisMapCreator.createBaseLayer());
arcGISMap.setBasemap(baseMap);
viewBinding.mapView.setMap(arcGISMap);
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
}
@SuppressLint("ClickableViewAccessibility")
@@ -138,38 +135,28 @@
});
}
- private static class WeakReferenceHandler extends Handler {
- private final WeakReference reference;
-
- private WeakReferenceHandler(WorkerOnMapActivity activity) {
- reference = new WeakReference<>(activity);
+ private final Handler.Callback callback = msg -> {
+ if (msg.what == 2021060101) {
+ View popupView = LayoutInflater.from(this).inflate(R.layout.popu_worker, null);
+ TextView userNameView = popupView.findViewById(R.id.userNameView);
+ TextView signInTimeView = popupView.findViewById(R.id.signInTimeView);
+ TextView toiletNameView = popupView.findViewById(R.id.toiletNameView);
+ userNameView.setText(userName);
+ signInTimeView.setText(createTime);
+ toiletNameView.setText(toiletName);
+ QMUIPopups.popup(this, QMUIDisplayHelper.dp2px(this, 250))
+ .preferredDirection(QMUIPopup.DIRECTION_BOTTOM)
+ .view(popupView)
+ .edgeProtection(QMUIDisplayHelper.dp2px(this, 20))
+ .dimAmount(0.6f)
+ .animStyle(QMUIPopup.ANIM_GROW_FROM_CENTER)
+ .onDismiss(null)
+ .show(viewBinding.mapView);
+ } else if (msg.what == 2021060102) {
+ ToastHelper.showToast("附近无工作人员,请重新选点", ToastHelper.WARING);
}
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- WorkerOnMapActivity mapActivity = reference.get();
- if (msg.what == 2021060101) {
- View popupView = LayoutInflater.from(mapActivity).inflate(R.layout.popu_worker, null);
- TextView userNameView = popupView.findViewById(R.id.userNameView);
- TextView signInTimeView = popupView.findViewById(R.id.signInTimeView);
- TextView toiletNameView = popupView.findViewById(R.id.toiletNameView);
- userNameView.setText(mapActivity.userName);
- signInTimeView.setText(mapActivity.createTime);
- toiletNameView.setText(mapActivity.toiletName);
- QMUIPopups.popup(mapActivity, QMUIDisplayHelper.dp2px(mapActivity, 250))
- .preferredDirection(QMUIPopup.DIRECTION_BOTTOM)
- .view(popupView)
- .edgeProtection(QMUIDisplayHelper.dp2px(mapActivity, 20))
- .dimAmount(0.6f)
- .animStyle(QMUIPopup.ANIM_GROW_FROM_CENTER)
- .onDismiss(null)
- .show(mapActivity.viewBinding.mapView);
- } else if (msg.what == 2021060102) {
- ToastHelper.showToast("附近无工作人员,请重新选点", ToastHelper.WARING);
- }
- }
- }
+ return true;
+ };
private void addPictureMarker(Point point) {
Bitmap caseBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.on_line);
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/LightOnMapFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/LightOnMapFragment.java
index 0015d9e..fc056ef 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/LightOnMapFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/LightOnMapFragment.java
@@ -14,8 +14,6 @@
import android.widget.ImageView;
import android.widget.TextView;
-import androidx.annotation.NonNull;
-
import com.amap.api.location.AMapLocation;
import com.casic.dcms.R;
import com.casic.dcms.base.AndroidxBaseFragment;
@@ -35,6 +33,7 @@
import com.casic.dcms.utils.LocationHelper;
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.casic.dcms.utils.callback.IHttpRequestListener;
import com.casic.dcms.utils.callback.ILocationListener;
import com.esri.arcgisruntime.concurrent.ListenableFuture;
@@ -57,7 +56,6 @@
import org.json.JSONObject;
import java.io.IOException;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ExecutionException;
@@ -81,7 +79,7 @@
context = getContext();
lightLocalBeanDao = BaseApplication.getDaoSession().getStreetLightLocalBeanDao();
lightMapPresenter = new LightMapPresenterImpl(this);
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
controlPresenter = new LightControlPresenterImpl(this);
}
@@ -195,98 +193,87 @@
ToastHelper.showToast("操作失败", ToastHelper.ERROR);
}
- private static class WeakReferenceHandler extends Handler {
- private final WeakReference reference;
+ private final Handler.Callback callback = msg -> {
+ switch (msg.what) {
+ case 2021062401:
+ String lampId = (String) msg.obj;
- private WeakReferenceHandler(LightOnMapFragment fragment) {
- reference = new WeakReference<>(fragment);
- }
+ View popupView = LayoutInflater.from(context).inflate(R.layout.popu_street_light, null);
+ TextView lightStateView = popupView.findViewById(R.id.lightStateView);
+ TextView lightAddressView = popupView.findViewById(R.id.lightAddressView);
+ TextView lightStreetView = popupView.findViewById(R.id.lightStreetView);
+ TextView lightElecView = popupView.findViewById(R.id.lightElecView);
+ TextView lightVolView = popupView.findViewById(R.id.lightVolView);
+ TextView lightTimeView = popupView.findViewById(R.id.lightTimeView);
+ ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch);
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- LightOnMapFragment fragment = reference.get();
- Context context = fragment.context;
- switch (msg.what) {
- case 2021062401:
- String lampId = (String) msg.obj;
+ OtherUtils.showLoadingDialog(context, "路灯详情获取中,请稍后...");
+ HttpRequestHelper.doRequest(Constant.LIGHT_DETAIL, lampId, new IHttpRequestListener() {
+ @Override
+ public void onSuccess(ResponseBody resultBean) {
+ OtherUtils.dismissLoadingDialog();
+ try {
+ String string = resultBean.string();
+ JSONObject jsonObject = new JSONObject(string);
+ int code = jsonObject.getInt("code");
+ if (code == 200) {
+ JSONObject dataObject = jsonObject.getJSONObject("data");
- View popupView = LayoutInflater.from(context).inflate(R.layout.popu_street_light, null);
- TextView lightStateView = popupView.findViewById(R.id.lightStateView);
- TextView lightAddressView = popupView.findViewById(R.id.lightAddressView);
- TextView lightStreetView = popupView.findViewById(R.id.lightStreetView);
- TextView lightElecView = popupView.findViewById(R.id.lightElecView);
- TextView lightVolView = popupView.findViewById(R.id.lightVolView);
- TextView lightTimeView = popupView.findViewById(R.id.lightTimeView);
- ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch);
+ String statusName = dataObject.getString("statusName");
+ lightStateView.setText(statusName);
+ lightAddressView.setText(dataObject.getString("address"));
+ lightStreetView.setText(dataObject.getString("streetName"));
+ lightElecView.setText(String.valueOf(dataObject.getDouble("latestElec")));
+ lightVolView.setText(String.valueOf(dataObject.getDouble("latestVol")));
+ lightTimeView.setText(dataObject.getString("latestTime"));
- OtherUtils.showLoadingDialog(context, "路灯详情获取中,请稍后...");
- HttpRequestHelper.doRequest(Constant.LIGHT_DETAIL, lampId, new IHttpRequestListener() {
- @Override
- public void onSuccess(ResponseBody resultBean) {
- OtherUtils.dismissLoadingDialog();
- try {
- String string = resultBean.string();
- JSONObject jsonObject = new JSONObject(string);
- int code = jsonObject.getInt("code");
- if (code == 200) {
- JSONObject dataObject = jsonObject.getJSONObject("data");
+ QMUIPopups.popup(context, QMUIDisplayHelper.dp2px(context, 280))
+ .preferredDirection(QMUIPopup.DIRECTION_BOTTOM)
+ .view(popupView)
+ .edgeProtection(QMUIDisplayHelper.dp2px(context, 20))
+ .dimAmount(0.6f)
+ .animStyle(QMUIPopup.ANIM_GROW_FROM_CENTER)
+ .onDismiss(null)
+ .show(viewBinding.mapView);
- String statusName = dataObject.getString("statusName");
- lightStateView.setText(statusName);
- lightAddressView.setText(dataObject.getString("address"));
- lightStreetView.setText(dataObject.getString("streetName"));
- lightElecView.setText(String.valueOf(dataObject.getDouble("latestElec")));
- lightVolView.setText(String.valueOf(dataObject.getDouble("latestVol")));
- lightTimeView.setText(dataObject.getString("latestTime"));
+ lightSwitch.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ List lampIds = new ArrayList<>();
+ lampIds.add(Long.parseLong(lampId));
- QMUIPopups.popup(context, QMUIDisplayHelper.dp2px(context, 280))
- .preferredDirection(QMUIPopup.DIRECTION_BOTTOM)
- .view(popupView)
- .edgeProtection(QMUIDisplayHelper.dp2px(context, 20))
- .dimAmount(0.6f)
- .animStyle(QMUIPopup.ANIM_GROW_FROM_CENTER)
- .onDismiss(null)
- .show(fragment.viewBinding.mapView);
-
- lightSwitch.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- List lampIds = new ArrayList<>();
- lampIds.add(Long.parseLong(lampId));
-
- String controlType;
- if (statusName.equals("离线")) {
- controlType = "1";
- } else {
- controlType = "0";
- }
- fragment.controlPresenter.onReadyRetrofitRequest(lampIds, controlType);
+ String controlType;
+ if (statusName.equals("离线")) {
+ controlType = "1";
+ } else {
+ controlType = "0";
}
- });
- } else {
- ToastHelper.showToast("服务器异常,请重新选点", ToastHelper.ERROR);
- }
- } catch (JSONException | IOException e) {
- ToastHelper.showToast("解析失败,请重新选点", ToastHelper.ERROR);
+ controlPresenter.onReadyRetrofitRequest(lampIds, controlType);
+ }
+ });
+ } else {
+ ToastHelper.showToast("服务器异常,请重新选点", ToastHelper.ERROR);
}
+ } catch (JSONException | IOException e) {
+ ToastHelper.showToast("解析失败,请重新选点", ToastHelper.ERROR);
}
+ }
- @Override
- public void onFailure(Throwable throwable) {
- OtherUtils.dismissLoadingDialog();
- ToastHelper.showToast("网络连接失败,请重新选点", ToastHelper.ERROR);
- }
- });
- break;
- case 2021062402:
- ToastHelper.showToast("此附近无路灯,请重新选点", ToastHelper.ERROR);
- break;
- default:
- break;
- }
+ @Override
+ public void onFailure(Throwable throwable) {
+ OtherUtils.dismissLoadingDialog();
+ ToastHelper.showToast("网络连接失败,请重新选点", ToastHelper.ERROR);
+ }
+ });
+ break;
+ case 2021062402:
+ ToastHelper.showToast("此附近无路灯,请重新选点", ToastHelper.ERROR);
+ break;
+ default:
+ break;
}
- }
+ return true;
+ };
private void addPictureMarker(List points) {
for (Point point : points) {
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/PersonOnMapFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/PersonOnMapFragment.java
index d24b583..06db9a7 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/PersonOnMapFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/PersonOnMapFragment.java
@@ -24,6 +24,7 @@
import com.casic.dcms.utils.ArcGisMapCreator;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.WeakReferenceHandler;
import com.esri.arcgisruntime.concurrent.ListenableFuture;
import com.esri.arcgisruntime.geometry.SpatialReference;
import com.esri.arcgisruntime.mapping.ArcGISMap;
@@ -39,7 +40,6 @@
import com.qmuiteam.qmui.widget.popup.QMUIPopup;
import com.qmuiteam.qmui.widget.popup.QMUIPopups;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ExecutionException;
@@ -70,7 +70,7 @@
arcGISMap.setBasemap(baseMap);
viewBinding.mapView.setMap(arcGISMap);
graphicsOverlays = viewBinding.mapView.getGraphicsOverlays();
- weakReferenceHandler = new WeakReferenceHandler(this);
+ weakReferenceHandler = new WeakReferenceHandler(callback);
}
@SuppressLint("ClickableViewAccessibility")
@@ -113,45 +113,34 @@
});
}
- private static class WeakReferenceHandler extends Handler {
- private final WeakReference reference;
-
- private WeakReferenceHandler(PersonOnMapFragment fragment) {
- reference = new WeakReference<>(fragment);
+ private final Handler.Callback callback = msg -> {
+ switch (msg.what) {
+ case 2021051901:
+ PointPersonBean dataBean = (PointPersonBean) msg.obj;
+ View popupView = LayoutInflater.from(context).inflate(R.layout.popu_person, null);
+ TextView userNameView = popupView.findViewById(R.id.userNameView);
+ TextView deptNameView = popupView.findViewById(R.id.deptNameView);
+ TextView phoneNumberView = popupView.findViewById(R.id.phoneNumberView);
+ TextView lastTimeView = popupView.findViewById(R.id.lastTimeView);
+ userNameView.setText(dataBean.getPersonName());
+ deptNameView.setText(dataBean.getPersonDept());
+ phoneNumberView.setText(dataBean.getPersonPhone());
+ lastTimeView.setText(dataBean.getPointTime());
+ QMUIPopups.popup(context, QMUIDisplayHelper.dp2px(context, 250))
+ .preferredDirection(QMUIPopup.DIRECTION_BOTTOM)
+ .view(popupView)
+ .edgeProtection(QMUIDisplayHelper.dp2px(context, 20))
+ .dimAmount(0.6f)
+ .animStyle(QMUIPopup.ANIM_GROW_FROM_CENTER)
+ .onDismiss(null)
+ .show(viewBinding.mapView);
+ break;
+ case 2021051902:
+ ToastHelper.showToast("附近无工作人员,请重新选点", ToastHelper.WARING);
+ break;
}
-
- @Override
- public void handleMessage(Message msg) {
- super.handleMessage(msg);
- PersonOnMapFragment mapFragment = reference.get();
- Context context = mapFragment.context;
- switch (msg.what) {
- case 2021051901:
- PointPersonBean dataBean = (PointPersonBean) msg.obj;
- View popupView = LayoutInflater.from(context).inflate(R.layout.popu_person, null);
- TextView userNameView = popupView.findViewById(R.id.userNameView);
- TextView deptNameView = popupView.findViewById(R.id.deptNameView);
- TextView phoneNumberView = popupView.findViewById(R.id.phoneNumberView);
- TextView lastTimeView = popupView.findViewById(R.id.lastTimeView);
- userNameView.setText(dataBean.getPersonName());
- deptNameView.setText(dataBean.getPersonDept());
- phoneNumberView.setText(dataBean.getPersonPhone());
- lastTimeView.setText(dataBean.getPointTime());
- QMUIPopups.popup(context, QMUIDisplayHelper.dp2px(context, 250))
- .preferredDirection(QMUIPopup.DIRECTION_BOTTOM)
- .view(popupView)
- .edgeProtection(QMUIDisplayHelper.dp2px(context, 20))
- .dimAmount(0.6f)
- .animStyle(QMUIPopup.ANIM_GROW_FROM_CENTER)
- .onDismiss(null)
- .show(mapFragment.viewBinding.mapView);
- break;
- case 2021051902:
- ToastHelper.showToast("附近无工作人员,请重新选点", ToastHelper.WARING);
- break;
- }
- }
- }
+ return true;
+ };
@Override
public void onlinePerson(OnlinePersonBean resultBean) {
diff --git a/app/src/main/java/com/casic/dcms/utils/WeakReferenceHandler.java b/app/src/main/java/com/casic/dcms/utils/WeakReferenceHandler.java
new file mode 100644
index 0000000..d635db6
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/utils/WeakReferenceHandler.java
@@ -0,0 +1,28 @@
+package com.casic.dcms.utils;
+
+import android.os.Handler;
+import android.os.Looper;
+import android.os.Message;
+
+import java.lang.ref.WeakReference;
+
+public class WeakReferenceHandler extends Handler {
+
+ private final WeakReference mWeakReference;
+
+ public WeakReferenceHandler(Callback callback) {
+ mWeakReference = new WeakReference<>(callback);
+ }
+
+ public WeakReferenceHandler(Callback callback, Looper looper) {
+ super(looper);
+ mWeakReference = new WeakReference<>(callback);
+ }
+
+ @Override
+ public void handleMessage(Message msg) {
+ if (mWeakReference != null && mWeakReference.get() != null) {
+ mWeakReference.get().handleMessage(msg);
+ }
+ }
+}
diff --git a/build.gradle b/build.gradle
index 92c1c9a..38673b5 100644
--- a/build.gradle
+++ b/build.gradle
@@ -6,7 +6,7 @@
google()
}
dependencies {
- classpath 'com.android.tools.build:gradle:4.0.1'
+ classpath 'com.android.tools.build:gradle:3.6.3'
classpath 'org.greenrobot:greendao-gradle-plugin:3.3.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files