diff --git a/.idea/gradle.xml b/.idea/gradle.xml index ddb7cbe..3a41d1a 100755 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -1,8 +1,11 @@ + diff --git a/app/build.gradle b/app/build.gradle index a41b78b..b011027 100755 --- a/app/build.gradle +++ b/app/build.gradle @@ -51,11 +51,11 @@ dependencies { implementation project(':cm_utils') implementation project(':camera') //百度地图 - implementation files('libs/BaiduLBS_Android.jar') - implementation files('libs/IndoorscapeAlbumPlugin.jar') +// implementation files('libs/BaiduLBS_Android.jar') +// implementation files('libs/IndoorscapeAlbumPlugin.jar') //极光推送 - implementation files('libs/jcore-android-2.0.1.jar') - implementation files('libs/jpush-android-3.3.4.jar') +// implementation files('libs/jcore-android-2.0.1.jar') +// implementation files('libs/jpush-android-3.3.4.jar') implementation 'com.android.support:multidex:1.0.3' //Rxjava diff --git a/app/libs/BaiduLBS_Android.jar b/app/libs/BaiduLBS_Android.jar deleted file mode 100755 index eb51137..0000000 Binary files a/app/libs/BaiduLBS_Android.jar and /dev/null differ diff --git a/app/libs/IndoorscapeAlbumPlugin.jar b/app/libs/IndoorscapeAlbumPlugin.jar deleted file mode 100755 index 6c1b773..0000000 Binary files a/app/libs/IndoorscapeAlbumPlugin.jar and /dev/null differ diff --git a/app/libs/arm64-v8a/libBaiduMapSDK_base_v6_0_0.so b/app/libs/arm64-v8a/libBaiduMapSDK_base_v6_0_0.so deleted file mode 100755 index 275df2e..0000000 Binary files a/app/libs/arm64-v8a/libBaiduMapSDK_base_v6_0_0.so and /dev/null differ diff --git a/app/libs/arm64-v8a/libBaiduMapSDK_bikenavi_v5_4_0.so b/app/libs/arm64-v8a/libBaiduMapSDK_bikenavi_v5_4_0.so deleted file mode 100755 index a2d8cc6..0000000 Binary files a/app/libs/arm64-v8a/libBaiduMapSDK_bikenavi_v5_4_0.so and /dev/null differ diff --git a/app/libs/arm64-v8a/libBaiduMapSDK_map_for_bikenavi_v5_4_0.so b/app/libs/arm64-v8a/libBaiduMapSDK_map_for_bikenavi_v5_4_0.so deleted file mode 100755 index 9c98621..0000000 Binary files a/app/libs/arm64-v8a/libBaiduMapSDK_map_for_bikenavi_v5_4_0.so and /dev/null differ diff --git a/app/libs/arm64-v8a/libBaiduMapSDK_map_v6_0_0.so b/app/libs/arm64-v8a/libBaiduMapSDK_map_v6_0_0.so deleted file mode 100755 index a8df920..0000000 Binary files a/app/libs/arm64-v8a/libBaiduMapSDK_map_v6_0_0.so and /dev/null differ diff --git a/app/libs/arm64-v8a/libapp_BaiduPanoramaAppLib.so b/app/libs/arm64-v8a/libapp_BaiduPanoramaAppLib.so deleted file mode 100755 index 3aa174a..0000000 Binary files a/app/libs/arm64-v8a/libapp_BaiduPanoramaAppLib.so and /dev/null differ diff --git a/app/libs/arm64-v8a/libindoor.so b/app/libs/arm64-v8a/libindoor.so deleted file mode 100755 index bfb6f75..0000000 Binary files a/app/libs/arm64-v8a/libindoor.so and /dev/null differ diff --git a/app/libs/arm64-v8a/libjcore201.so b/app/libs/arm64-v8a/libjcore201.so deleted file mode 100755 index 2ee8e0f..0000000 Binary files a/app/libs/arm64-v8a/libjcore201.so and /dev/null differ diff --git a/app/libs/arm64-v8a/liblocSDK8a.so b/app/libs/arm64-v8a/liblocSDK8a.so deleted file mode 100755 index cd47e16..0000000 Binary files a/app/libs/arm64-v8a/liblocSDK8a.so and /dev/null differ diff --git a/app/libs/armeabi-v7a/libBaiduMapSDK_base_v6_0_0.so b/app/libs/armeabi-v7a/libBaiduMapSDK_base_v6_0_0.so deleted file mode 100755 index 2685834..0000000 Binary files a/app/libs/armeabi-v7a/libBaiduMapSDK_base_v6_0_0.so and /dev/null differ diff --git a/app/libs/armeabi-v7a/libBaiduMapSDK_bikenavi_v5_4_0.so b/app/libs/armeabi-v7a/libBaiduMapSDK_bikenavi_v5_4_0.so deleted file mode 100755 index eeb2075..0000000 Binary files a/app/libs/armeabi-v7a/libBaiduMapSDK_bikenavi_v5_4_0.so and /dev/null differ diff --git a/app/libs/armeabi-v7a/libBaiduMapSDK_map_for_bikenavi_v5_4_0.so b/app/libs/armeabi-v7a/libBaiduMapSDK_map_for_bikenavi_v5_4_0.so deleted file mode 100755 index f2db8b0..0000000 Binary files a/app/libs/armeabi-v7a/libBaiduMapSDK_map_for_bikenavi_v5_4_0.so and /dev/null differ diff --git a/app/libs/armeabi-v7a/libBaiduMapSDK_map_v6_0_0.so b/app/libs/armeabi-v7a/libBaiduMapSDK_map_v6_0_0.so deleted file mode 100755 index 7abbf31..0000000 Binary files a/app/libs/armeabi-v7a/libBaiduMapSDK_map_v6_0_0.so and /dev/null differ diff --git a/app/libs/armeabi-v7a/libapp_BaiduPanoramaAppLib.so b/app/libs/armeabi-v7a/libapp_BaiduPanoramaAppLib.so deleted file mode 100755 index 716d03d..0000000 Binary files a/app/libs/armeabi-v7a/libapp_BaiduPanoramaAppLib.so and /dev/null differ diff --git a/app/libs/armeabi-v7a/libindoor.so b/app/libs/armeabi-v7a/libindoor.so deleted file mode 100755 index b59be91..0000000 Binary files a/app/libs/armeabi-v7a/libindoor.so and /dev/null differ diff --git a/app/libs/armeabi-v7a/libjcore201.so b/app/libs/armeabi-v7a/libjcore201.so deleted file mode 100755 index 05ff4aa..0000000 Binary files a/app/libs/armeabi-v7a/libjcore201.so and /dev/null differ diff --git a/app/libs/armeabi-v7a/liblocSDK8a.so b/app/libs/armeabi-v7a/liblocSDK8a.so deleted file mode 100755 index 0c6e58c..0000000 Binary files a/app/libs/armeabi-v7a/liblocSDK8a.so and /dev/null differ diff --git a/app/libs/armeabi/libBaiduMapSDK_base_v6_0_0.so b/app/libs/armeabi/libBaiduMapSDK_base_v6_0_0.so deleted file mode 100755 index 77f049e..0000000 Binary files a/app/libs/armeabi/libBaiduMapSDK_base_v6_0_0.so and /dev/null differ diff --git a/app/libs/armeabi/libBaiduMapSDK_bikenavi_v5_4_0.so b/app/libs/armeabi/libBaiduMapSDK_bikenavi_v5_4_0.so deleted file mode 100755 index 0762fcf..0000000 Binary files a/app/libs/armeabi/libBaiduMapSDK_bikenavi_v5_4_0.so and /dev/null differ diff --git a/app/libs/armeabi/libBaiduMapSDK_map_for_bikenavi_v5_4_0.so b/app/libs/armeabi/libBaiduMapSDK_map_for_bikenavi_v5_4_0.so deleted file mode 100755 index d02e2fc..0000000 Binary files a/app/libs/armeabi/libBaiduMapSDK_map_for_bikenavi_v5_4_0.so and /dev/null differ diff --git a/app/libs/armeabi/libBaiduMapSDK_map_v6_0_0.so b/app/libs/armeabi/libBaiduMapSDK_map_v6_0_0.so deleted file mode 100755 index d3d829e..0000000 Binary files a/app/libs/armeabi/libBaiduMapSDK_map_v6_0_0.so and /dev/null differ diff --git a/app/libs/armeabi/libapp_BaiduPanoramaAppLib.so b/app/libs/armeabi/libapp_BaiduPanoramaAppLib.so deleted file mode 100755 index c7d1d92..0000000 Binary files a/app/libs/armeabi/libapp_BaiduPanoramaAppLib.so and /dev/null differ diff --git a/app/libs/armeabi/libindoor.so b/app/libs/armeabi/libindoor.so deleted file mode 100755 index a0879cf..0000000 Binary files a/app/libs/armeabi/libindoor.so and /dev/null differ diff --git a/app/libs/armeabi/libjcore201.so b/app/libs/armeabi/libjcore201.so deleted file mode 100755 index 1aa7654..0000000 Binary files a/app/libs/armeabi/libjcore201.so and /dev/null differ diff --git a/app/libs/armeabi/liblocSDK8a.so b/app/libs/armeabi/liblocSDK8a.so deleted file mode 100755 index 5286996..0000000 Binary files a/app/libs/armeabi/liblocSDK8a.so and /dev/null differ diff --git a/app/libs/jcore-android-2.0.1.jar b/app/libs/jcore-android-2.0.1.jar deleted file mode 100755 index 30faabc..0000000 Binary files a/app/libs/jcore-android-2.0.1.jar and /dev/null differ diff --git a/app/libs/jpush-android-3.3.4.jar b/app/libs/jpush-android-3.3.4.jar deleted file mode 100755 index fef22f8..0000000 Binary files a/app/libs/jpush-android-3.3.4.jar and /dev/null differ diff --git a/app/libs/x86/libBaiduMapSDK_base_v6_0_0.so b/app/libs/x86/libBaiduMapSDK_base_v6_0_0.so deleted file mode 100755 index 0f3e255..0000000 Binary files a/app/libs/x86/libBaiduMapSDK_base_v6_0_0.so and /dev/null differ diff --git a/app/libs/x86/libBaiduMapSDK_bikenavi_v5_4_0.so b/app/libs/x86/libBaiduMapSDK_bikenavi_v5_4_0.so deleted file mode 100755 index b38e98f..0000000 Binary files a/app/libs/x86/libBaiduMapSDK_bikenavi_v5_4_0.so and /dev/null differ diff --git a/app/libs/x86/libBaiduMapSDK_map_for_bikenavi_v5_4_0.so b/app/libs/x86/libBaiduMapSDK_map_for_bikenavi_v5_4_0.so deleted file mode 100755 index 513411c..0000000 Binary files a/app/libs/x86/libBaiduMapSDK_map_for_bikenavi_v5_4_0.so and /dev/null differ diff --git a/app/libs/x86/libBaiduMapSDK_map_v6_0_0.so b/app/libs/x86/libBaiduMapSDK_map_v6_0_0.so deleted file mode 100755 index be7cd25..0000000 Binary files a/app/libs/x86/libBaiduMapSDK_map_v6_0_0.so and /dev/null differ diff --git a/app/libs/x86/libapp_BaiduPanoramaAppLib.so b/app/libs/x86/libapp_BaiduPanoramaAppLib.so deleted file mode 100755 index 6fdfda4..0000000 Binary files a/app/libs/x86/libapp_BaiduPanoramaAppLib.so and /dev/null differ diff --git a/app/libs/x86/libindoor.so b/app/libs/x86/libindoor.so deleted file mode 100755 index 1de0a2c..0000000 Binary files a/app/libs/x86/libindoor.so and /dev/null differ diff --git a/app/libs/x86/libjcore201.so b/app/libs/x86/libjcore201.so deleted file mode 100755 index 40e5493..0000000 Binary files a/app/libs/x86/libjcore201.so and /dev/null differ diff --git a/app/libs/x86/liblocSDK8a.so b/app/libs/x86/liblocSDK8a.so deleted file mode 100755 index cc24465..0000000 Binary files a/app/libs/x86/liblocSDK8a.so and /dev/null differ diff --git a/app/libs/x86_64/libBaiduMapSDK_base_v6_0_0.so b/app/libs/x86_64/libBaiduMapSDK_base_v6_0_0.so deleted file mode 100755 index ca00551..0000000 Binary files a/app/libs/x86_64/libBaiduMapSDK_base_v6_0_0.so and /dev/null differ diff --git a/app/libs/x86_64/libBaiduMapSDK_bikenavi_v5_4_0.so b/app/libs/x86_64/libBaiduMapSDK_bikenavi_v5_4_0.so deleted file mode 100755 index 22c2320..0000000 Binary files a/app/libs/x86_64/libBaiduMapSDK_bikenavi_v5_4_0.so and /dev/null differ diff --git a/app/libs/x86_64/libBaiduMapSDK_map_for_bikenavi_v5_4_0.so b/app/libs/x86_64/libBaiduMapSDK_map_for_bikenavi_v5_4_0.so deleted file mode 100755 index 51bc1ab..0000000 Binary files a/app/libs/x86_64/libBaiduMapSDK_map_for_bikenavi_v5_4_0.so and /dev/null differ diff --git a/app/libs/x86_64/libBaiduMapSDK_map_v6_0_0.so b/app/libs/x86_64/libBaiduMapSDK_map_v6_0_0.so deleted file mode 100755 index fa166ef..0000000 Binary files a/app/libs/x86_64/libBaiduMapSDK_map_v6_0_0.so and /dev/null differ diff --git a/app/libs/x86_64/libapp_BaiduPanoramaAppLib.so b/app/libs/x86_64/libapp_BaiduPanoramaAppLib.so deleted file mode 100755 index 090a2e4..0000000 Binary files a/app/libs/x86_64/libapp_BaiduPanoramaAppLib.so and /dev/null differ diff --git a/app/libs/x86_64/libindoor.so b/app/libs/x86_64/libindoor.so deleted file mode 100755 index 80a00c6..0000000 Binary files a/app/libs/x86_64/libindoor.so and /dev/null differ diff --git a/app/libs/x86_64/libjcore201.so b/app/libs/x86_64/libjcore201.so deleted file mode 100755 index 79009e5..0000000 Binary files a/app/libs/x86_64/libjcore201.so and /dev/null differ diff --git a/app/libs/x86_64/liblocSDK8a.so b/app/libs/x86_64/liblocSDK8a.so deleted file mode 100755 index b66eb9a..0000000 Binary files a/app/libs/x86_64/liblocSDK8a.so and /dev/null differ diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 1a3f60d..b508389 100755 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -38,7 +38,7 @@ - - + + - + + + + + + + + + + - - - - - + + + + + + + + + + + + + + - - - - - - - + + + + + + + + + + + + - - - + + + @@ -224,42 +239,42 @@ android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/provider_paths" /> - + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - + + + + + + - @@ -271,7 +286,7 @@ - + @@ -279,7 +294,7 @@ @@ -287,13 +302,13 @@ @@ -301,35 +316,35 @@ - + + + + - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - + + + diff --git a/app/src/main/java/com/sucstepsoft/txrealtimelocation/activitys/base/LoginActivity.java b/app/src/main/java/com/sucstepsoft/txrealtimelocation/activitys/base/LoginActivity.java index e75d692..1bc0da3 100755 --- a/app/src/main/java/com/sucstepsoft/txrealtimelocation/activitys/base/LoginActivity.java +++ b/app/src/main/java/com/sucstepsoft/txrealtimelocation/activitys/base/LoginActivity.java @@ -1,12 +1,7 @@ package com.sucstepsoft.txrealtimelocation.activitys.base; -import android.Manifest; -import android.content.Context; import android.content.Intent; -import android.content.pm.PackageManager; import android.provider.Settings; -import android.support.v4.app.ActivityCompat; -import android.telephony.TelephonyManager; import android.text.Editable; import android.text.Selection; import android.text.TextUtils; @@ -17,6 +12,7 @@ import android.util.Base64; import android.view.View; import android.view.WindowManager; import android.widget.Button; +import android.widget.CheckBox; import android.widget.EditText; import android.widget.ImageView; import android.widget.TextView; @@ -31,7 +27,6 @@ import com.sucstepsoft.cm_utils.core.widget.base.BaseActivity; import com.sucstepsoft.cm_utils.utils.AppUtils; import com.sucstepsoft.cm_utils.utils.EncryptUtils; import com.sucstepsoft.cm_utils.utils.FileIOUtils; -import com.sucstepsoft.cm_utils.utils.LogUtils; import com.sucstepsoft.cm_utils.utils.PermissionUtils; import com.sucstepsoft.cm_utils.utils.ToastUtils; import com.sucstepsoft.cm_utils.utils.UserLgUtils; @@ -51,7 +46,6 @@ import java.util.UUID; import butterknife.BindView; import butterknife.ButterKnife; import butterknife.Unbinder; -import cn.jpush.android.api.JPushInterface; import io.reactivex.Observer; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.disposables.Disposable; @@ -74,6 +68,8 @@ public class LoginActivity extends BaseActivity { ImageView mIvShowPwd; @BindView(R.id.iv_clear_phone) ImageView mIvClosePhone; + @BindView(R.id.cb_remember) + CheckBox mCbRemember; private Unbinder mUnbinder; private boolean isShowPwd = false; private Disposable mDisposable; @@ -90,9 +86,7 @@ public class LoginActivity extends BaseActivity { mRlTitleBar.setVisibility(View.GONE); refreshView(STATE_LOAD_SUCCESS); mRlNotify.setVisibility(View.GONE); - mBtnConfirm.setOnClickListener(v -> { - login(); - }); + mBtnConfirm.setOnClickListener(v -> login()); mTvChangePwd.setOnClickListener(v -> ToastUtils.showShort("请联系管理员")); mIvShowPwd.setOnClickListener(v -> { Editable etext = mEtUserPwd.getText(); @@ -107,6 +101,20 @@ public class LoginActivity extends BaseActivity { mEtUserPwd.setTransformationMethod(HideReturnsTransformationMethod.getInstance()); } }); +// mScvCheck.setOnClickListener(v -> { +// EmStateCheck state = mScvCheck.getViewState(); +// switch (state) { +// case NORMAL: +// mScvCheck.setCheckState(EmStateCheck.CHECK); +// break; +// case CHECK: +// mScvCheck.setCheckState(EmStateCheck.UNCHECK); +// break; +// case UNCHECK: +// mScvCheck.setCheckState(EmStateCheck.NORMAL); +// break; +// } +// }); setEditTextInhibitInputSpeChat(mEtUserPhone); setEditTextInhibitInputSpeChat(mEtUserPwd); mEtUserPhone.addTextChangedListener(new TextWatcher() { @@ -143,13 +151,15 @@ public class LoginActivity extends BaseActivity { /** * 登录 + * TODO 跳转测试页面 */ private void login() { - if (checkUserInputInfo()) { - String userName = mEtUserPhone.getText().toString().trim(); - String pwd = mEtUserPwd.getText().toString().trim(); - doLoginApp(userName, pwd); - } + startActivity(new Intent(this, MainActivity.class)); +// if (checkUserInputInfo()) { +// String userName = mEtUserPhone.getText().toString().trim(); +// String pwd = mEtUserPwd.getText().toString().trim(); +// doLoginApp(userName, pwd); +// } } /** @@ -157,15 +167,7 @@ public class LoginActivity extends BaseActivity { */ private void doLoginApp(String name, String pwd) { refreshLoginState(11); - TelephonyManager manager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); - if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) { - ToastUtils.showShort("未授权"); - return; - } - String deviceId = manager.getDeviceId(); - if (TextUtils.isEmpty(deviceId)) { - deviceId = getDeviceId(); - } + String deviceId = getDeviceId(); String md5Pwd = EncryptUtils.encryptMD5ToStringTimes(pwd, 3); LoginUser info = new LoginUser(); info.setAppVersion(AppUtils.getAppVersionCode()); @@ -173,9 +175,9 @@ public class LoginActivity extends BaseActivity { info.setPassword(md5Pwd); info.setUsername(name); info.setDeviceNo(deviceId); - if (!UserLgUtils.getAliasIsSeting()) { - JPushInterface.setAlias(getApplicationContext(), 65536, deviceId); - } +// if (!UserLgUtils.getAliasIsSeting()) { +// JPushInterface.setAlias(getApplicationContext(), 65536, deviceId); +// } Gson gson = new Gson(); String obj = gson.toJson(info); RequestBody body = RequestBody.create(okhttp3.MediaType.parse("application/json; charset=utf-8"), obj); diff --git a/app/src/main/java/com/sucstepsoft/txrealtimelocation/activitys/base/MainActivity.java b/app/src/main/java/com/sucstepsoft/txrealtimelocation/activitys/base/MainActivity.java index 6605c1e..c458f43 100755 --- a/app/src/main/java/com/sucstepsoft/txrealtimelocation/activitys/base/MainActivity.java +++ b/app/src/main/java/com/sucstepsoft/txrealtimelocation/activitys/base/MainActivity.java @@ -6,7 +6,6 @@ import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.graphics.Color; -import android.graphics.Path; import android.os.Build; import android.provider.Settings; import android.support.v7.app.AlertDialog; @@ -19,12 +18,6 @@ import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.TextView; -import com.baidu.location.BDAbstractLocationListener; -import com.baidu.location.BDLocation; -import com.baidu.location.LocationClient; -import com.baidu.location.LocationClientOption; -import com.baidu.mapapi.map.BitmapDescriptor; -import com.baidu.mapapi.model.LatLng; import com.bumptech.glide.Glide; import com.bumptech.glide.load.resource.bitmap.CircleCrop; import com.bumptech.glide.request.RequestOptions; @@ -51,8 +44,6 @@ import com.sucstepsoft.txrealtimelocation.activitys.addresslist.AddressListMainA import com.sucstepsoft.txrealtimelocation.activitys.issue.IssueCheckActivity; import com.sucstepsoft.txrealtimelocation.activitys.issue.IssueMineActivity; import com.sucstepsoft.txrealtimelocation.activitys.issue.IssueRecordActivity; -import com.sucstepsoft.txrealtimelocation.activitys.issue.IssueReportActivity; -import com.sucstepsoft.txrealtimelocation.activitys.locus.LocusMapActivity; import com.sucstepsoft.txrealtimelocation.activitys.mine.UserActivity; import com.sucstepsoft.txrealtimelocation.activitys.notice.NoticeActivity; import com.sucstepsoft.txrealtimelocation.adapters.FunctionAdapter; @@ -63,9 +54,6 @@ import com.sucstepsoft.txrealtimelocation.beans.CheckSignOffBean; import com.sucstepsoft.txrealtimelocation.beans.LocationPosition; import com.sucstepsoft.txrealtimelocation.beans.MainNumBean; import com.sucstepsoft.txrealtimelocation.beans.PenLineBean; -import com.sucstepsoft.txrealtimelocation.beans.SignBean; -import com.sucstepsoft.txrealtimelocation.beans.SignDataBean; -import com.sucstepsoft.txrealtimelocation.beans.SignOffBean; import com.sucstepsoft.txrealtimelocation.beans.SignTimeBean; import com.sucstepsoft.txrealtimelocation.beans.SuccessBean; import com.sucstepsoft.txrealtimelocation.beans.VersionBean; @@ -76,7 +64,6 @@ import com.sucstepsoft.txrealtimelocation.services.LocationService; import com.sucstepsoft.txrealtimelocation.utils.ExceptionHandler; import com.sucstepsoft.txrealtimelocation.utils.GpsUtils; import com.sucstepsoft.txrealtimelocation.utils.IntentWrapper; -import com.sucstepsoft.txrealtimelocation.utils.PointUtils; import java.io.File; import java.util.ArrayList; @@ -96,6 +83,10 @@ import okhttp3.MediaType; import okhttp3.MultipartBody; import okhttp3.RequestBody; +//import com.sucstepsoft.txrealtimelocation.activitys.issue.IssueReportActivity; +//import com.sucstepsoft.txrealtimelocation.activitys.locus.LocusMapActivity; +//import com.sucstepsoft.txrealtimelocation.utils.PointUtils; + public class MainActivity extends BaseActivity { private static final int GPS_REQUEST_CODE = 1234; public static boolean isForeground = false; @@ -146,12 +137,12 @@ public class MainActivity extends BaseActivity { PermissionConstants.MICROPHONE, }; private MessageReceiver mMessageReceiver; - private BitmapDescriptor mBitMap; +// private BitmapDescriptor mBitMap; //TODO 默认坐标点 private double latitude = 111.771815; private double longitude = 40.823879; //109.926934,40.574501 - private BDLocation mCurrentLocation; +// private BDLocation mCurrentLocation; private Unbinder mBind; private int userType = 2;//1是N员 2是片长 public static final String MESSAGE_JPUSH = "com.example.jpushdemo.MESSAGE_RECEIVED_ACTION"; @@ -159,13 +150,11 @@ public class MainActivity extends BaseActivity { public static final String KEY_MESSAGE = "message"; public static final String KEY_EXTRAS = "extras"; private List mFuncs = new ArrayList<>(); - private String[] mBtnStrs = new String[]{"案件上报", "案件记录", "案件处理", "工作路径", "通讯录", "通知公告"}; + private String[] mBtnStrs = new String[]{"企业信息", "隐患上报", "隐患复查", "法律法规"}; private int[] mBtnIds = new int[]{R.drawable.ic_issue_report, R.drawable.ic_issue_record, R.drawable.ic_issue_disp, - R.drawable.ic_work_path, - R.drawable.ic_address_list, - R.drawable.ic_notice}; + R.drawable.ic_work_path}; private Gson mGson = null; private boolean isSgin = false;//是否签到 private boolean isSignOff = false;//是否签退 @@ -173,7 +162,7 @@ public class MainActivity extends BaseActivity { private boolean isForeg = true;//是否在前台 private Disposable mGpsDis; private SignTimeBean mSignTimeBean; - private List> mPenLineList; +// private List> mPenLineList; private int mPrecisionDefault = 70; private int mPrecMax = 150; private int mPrecision = mPrecisionDefault; @@ -181,7 +170,7 @@ public class MainActivity extends BaseActivity { private AlertDialog mGpsSettingDialog; private AlertDialog mGpsWeakDialog; private long mCurrentLongTime; - private LocationClient mLocationClient; +// private LocationClient mLocationClient; @Override protected int setLayoutId() { @@ -195,15 +184,15 @@ public class MainActivity extends BaseActivity { mRlTitleBar.setVisibility(View.GONE); initMainFuncs(); //TODO 一像素保活 - initScreenListener(); +// initScreenListener(); mCurrentLongTime = 0; PermissionUtils.permission(permissions).callback(new PermissionUtils.SimpleCallback() { @Override public void onGranted() { - registerMessageReceiver(); +// registerMessageReceiver(); createCacheFile(); - startListenLocation(); - startSignLocation(); +// startListenLocation(); +// startSignLocation(); } @Override @@ -213,13 +202,13 @@ public class MainActivity extends BaseActivity { }).request(); initBaseView(); //TODO - getPunchTime(123); - setSignText(); - getUserPenList(); - interval(); - registerGpsSignal(); +// getPunchTime(123); +// setSignText(); +// getUserPenList(); +// interval(); +// registerGpsSignal(); // checkLocalText(); - registerGpsState(); +// registerGpsState(); } @@ -397,7 +386,7 @@ public class MainActivity extends BaseActivity { mFuncs.add(bean); } FunctionAdapter adapter = new FunctionAdapter(mActivity, mFuncs); - mRlvBtns.setLayoutManager(new GridLayoutManager(mActivity, 3)); + mRlvBtns.setLayoutManager(new GridLayoutManager(mActivity, 2)); mRlvBtns.setAdapter(adapter); adapter.addOnItemClickListener(this::chosePage); } @@ -411,7 +400,7 @@ public class MainActivity extends BaseActivity { // "案件上报", "案件记录", "案件处理", "工作路径", "通讯录", "通知公告" switch (bean.getText()) { case "案件上报": - startActivity(new Intent(MainActivity.this, IssueReportActivity.class)); +// startActivity(new Intent(MainActivity.this, IssueReportActivity.class)); break; case "案件记录"://案件记录 startActivity(new Intent(MainActivity.this, IssueRecordActivity.class)); @@ -423,7 +412,7 @@ public class MainActivity extends BaseActivity { // if (userType == 1) { // startActivity(new Intent(MainActivity.this, LocusManagerActivity.class)); // } else { - startActivity(new Intent(MainActivity.this, LocusMapActivity.class)); +// startActivity(new Intent(MainActivity.this, LocusMapActivity.class)); // } break; case "通讯录"://通讯录 @@ -583,10 +572,10 @@ public class MainActivity extends BaseActivity { private void uploadPoint() { LocationPosition position = new LocationPosition(); - position.setUserLatitude(mCurrentLocation.getLatitude() + ""); - position.setUserLongitude(mCurrentLocation.getLongitude() + ""); - position.setUserLocation(mCurrentLocation.getAddress().address); - position.setUserSpeed(mCurrentLocation.getSpeed() + ""); +// position.setUserLatitude(mCurrentLocation.getLatitude() + ""); +// position.setUserLongitude(mCurrentLocation.getLongitude() + ""); +// position.setUserLocation(mCurrentLocation.getAddress().address); +// position.setUserSpeed(mCurrentLocation.getSpeed() + ""); Gson gson = new Gson(); String s = gson.toJson(position); RequestBody body = RequestBody.create(okhttp3.MediaType.parse("application/json; charset=utf-8"), s); @@ -779,15 +768,15 @@ public class MainActivity extends BaseActivity { */ private void showSignDialog() { // test(); - if (mCurrentLocation == null) { - ToastUtils.showShort("正在定位中,请稍后重试."); - } else { - if (2 == userType) { - show();//片长签到退 - } else { - showN();//显示N员签到退 - } - } +// if (mCurrentLocation == null) { +// ToastUtils.showShort("正在定位中,请稍后重试."); +// } else { +// if (2 == userType) { +// show();//片长签到退 +// } else { +// showN();//显示N员签到退 +// } +// } } private void test() { @@ -814,33 +803,33 @@ public class MainActivity extends BaseActivity { } else { boolean isTimeLegal = TimeUtils.isInTime(mSignTimeBean.getNEndWorkTime() + "-" + mSignTimeBean.getNEndPunchTime(), nowHour); LogUtils.e("N员签到时间区间=" + mSignTimeBean.getNEndWorkTime() + "-" + mSignTimeBean.getNEndPunchTime()); - if (isTimeLegal) { - if (mPenLineList != null && mPenLineList.size() > 0) { - if (checkCurrenPointIsBeyond(mCurrentLocation)) { - showSignOffDialog(); - } else { - ToastUtils.showShort("当前位置不在所管辖片区内,请前往片区内进行签到或签退操作."); - } - } else { - getPenList(); - } - } else { - ToastUtils.showShort("未到签退时间"); - } +// if (isTimeLegal) { +// if (mPenLineList != null && mPenLineList.size() > 0) { +// if (checkCurrenPointIsBeyond(mCurrentLocation)) { +// showSignOffDialog(); +// } else { +// ToastUtils.showShort("当前位置不在所管辖片区内,请前往片区内进行签到或签退操作."); +// } +// } else { +// getPenList(); +// } +// } else { +// ToastUtils.showShort("未到签退时间"); +// } } } else { //未签到 boolean isLegalTime = TimeUtils.isInTime(mSignTimeBean.getNStartPunchTime() + "-" + mSignTimeBean.getNEndPunchTime(), nowHour); if (isLegalTime) { - if (mPenLineList != null && mPenLineList.size() > 0) { - if (checkCurrenPointIsBeyond(mCurrentLocation)) { - showSDialog(); - } else { - ToastUtils.showShort("当前位置不在所管辖片区内,请前往片区内进行签到或签退操作."); - } - } else { - getPenList(); - } +// if (mPenLineList != null && mPenLineList.size() > 0) { +// if (checkCurrenPointIsBeyond(mCurrentLocation)) { +// showSDialog(); +// } else { +// ToastUtils.showShort("当前位置不在所管辖片区内,请前往片区内进行签到或签退操作."); +// } +// } else { +// getPenList(); +// } } else { ToastUtils.showShort("未到签到时间"); } @@ -869,15 +858,15 @@ public class MainActivity extends BaseActivity { boolean isPmPunch = TimeUtils.isInTime(mSignTimeBean.getPmStartPunchTime() + "-" + mSignTimeBean.getPmEndPunchTime(), nowHour); if (isPmPunch) { if (2 == userType) { - if (mPenLineList != null && mPenLineList.size() > 0) { - if (checkCurrenPointIsBeyond(mCurrentLocation)) { - showSDialog(); - } else { - ToastUtils.showShort("当前位置不在所管辖片区内,请前往片区内进行签到或签退操作."); - } - } else { - getPenList(); - } +// if (mPenLineList != null && mPenLineList.size() > 0) { +// if (checkCurrenPointIsBeyond(mCurrentLocation)) { +// showSDialog(); +// } else { +// ToastUtils.showShort("当前位置不在所管辖片区内,请前往片区内进行签到或签退操作."); +// } +// } else { +// getPenList(); +// } } else { showSDialog(); } @@ -891,15 +880,15 @@ public class MainActivity extends BaseActivity { boolean isPmPunch = TimeUtils.isInTime(mSignTimeBean.getPmEndWorkTime() + "-" + mSignTimeBean.getPmEndPunchTime(), nowHour); if (isAmPunch || isPmPunch) { if (2 == userType) { - if (mPenLineList != null && mPenLineList.size() > 0) { - if (checkCurrenPointIsBeyond(mCurrentLocation)) { - showSignOffDialog(); - } else { - ToastUtils.showShort("当前位置不在所管辖片区内,请前往片区内进行签到或签退操作."); - } - } else { - getPenList(); - } +// if (mPenLineList != null && mPenLineList.size() > 0) { +// if (checkCurrenPointIsBeyond(mCurrentLocation)) { +// showSignOffDialog(); +// } else { +// ToastUtils.showShort("当前位置不在所管辖片区内,请前往片区内进行签到或签退操作."); +// } +// } else { +// getPenList(); +// } } else { showSignOffDialog(); @@ -920,30 +909,30 @@ public class MainActivity extends BaseActivity { LogUtils.e("下午签到时间:" + mSignTimeBean.getPmStartPunchTime() + "-" + mSignTimeBean.getPmEndPunchTime()); if (isInAmTime) { if (2 == userType) { - if (mPenLineList != null && mPenLineList.size() > 0) { - if (checkCurrenPointIsBeyond(mCurrentLocation)) { - showSDialog(); - } else { - ToastUtils.showShort("当前位置不在所管辖片区内,请前往片区内进行签到或签退操作."); - } - } else { - getPenList(); - } +// if (mPenLineList != null && mPenLineList.size() > 0) { +// if (checkCurrenPointIsBeyond(mCurrentLocation)) { +// showSDialog(); +// } else { +// ToastUtils.showShort("当前位置不在所管辖片区内,请前往片区内进行签到或签退操作."); +// } +// } else { +// getPenList(); +// } } else { showSDialog(); } } else { if (isInPmTime) { if (2 == userType) { - if (mPenLineList != null && mPenLineList.size() > 0) { - if (checkCurrenPointIsBeyond(mCurrentLocation)) { - showSDialog(); - } else { - ToastUtils.showShort("当前位置不在所管辖片区内,请前往片区内进行签到或签退操作."); - } - } else { - getPenList(); - } +// if (mPenLineList != null && mPenLineList.size() > 0) { +// if (checkCurrenPointIsBeyond(mCurrentLocation)) { +// showSDialog(); +// } else { +// ToastUtils.showShort("当前位置不在所管辖片区内,请前往片区内进行签到或签退操作."); +// } +// } else { +// getPenList(); +// } } else { showSDialog(); } @@ -993,46 +982,46 @@ public class MainActivity extends BaseActivity { * 签退 */ private void doSignOff() { - ProgressDialog dialog = UIUtil.initDialog(mActivity, "签退中..."); - dialog.show(); - SignOffBean bean = new SignOffBean(); - bean.setSignoutLatitude(mCurrentLocation.getLatitude() + ""); - bean.setSignoutLongitude(mCurrentLocation.getLongitude() + ""); - Gson gson = new Gson(); - String obj = gson.toJson(bean); - RequestBody body = RequestBody.create(okhttp3.MediaType.parse("application/json; charset=utf-8"), obj); - RetrofitManager.getInstance() - .create(LocationApiService.class) - .doSignOff(body, UserLgUtils.getToken()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { - } - - @Override - public void onNext(SuccessBean successBean) { -// uploadPoint(); - dialog.dismiss(); - isSignOff = true; - setSignCompleteText(); - mTvSign.setTextColor(Color.WHITE); - ToastUtils.showLong("签退成功"); - GlobalProvider.save(mActivity, "isUpload", "12"); - } - - @Override - public void onError(Throwable e) { - dialog.dismiss(); - ExceptionHandler.handleException(e); - } - - @Override - public void onComplete() { - - } - }); +// ProgressDialog dialog = UIUtil.initDialog(mActivity, "签退中..."); +// dialog.show(); +// SignOffBean bean = new SignOffBean(); +// bean.setSignoutLatitude(mCurrentLocation.getLatitude() + ""); +// bean.setSignoutLongitude(mCurrentLocation.getLongitude() + ""); +// Gson gson = new Gson(); +// String obj = gson.toJson(bean); +// RequestBody body = RequestBody.create(okhttp3.MediaType.parse("application/json; charset=utf-8"), obj); +// RetrofitManager.getInstance() +// .create(LocationApiService.class) +// .doSignOff(body, UserLgUtils.getToken()) +// .subscribeOn(Schedulers.io()) +// .observeOn(AndroidSchedulers.mainThread()) +// .subscribe(new Observer() { +// @Override +// public void onSubscribe(Disposable d) { +// } +// +// @Override +// public void onNext(SuccessBean successBean) { +//// uploadPoint(); +// dialog.dismiss(); +// isSignOff = true; +// setSignCompleteText(); +// mTvSign.setTextColor(Color.WHITE); +// ToastUtils.showLong("签退成功"); +// GlobalProvider.save(mActivity, "isUpload", "12"); +// } +// +// @Override +// public void onError(Throwable e) { +// dialog.dismiss(); +// ExceptionHandler.handleException(e); +// } +// +// @Override +// public void onComplete() { +// +// } +// }); } private void getUserPenList() { @@ -1050,7 +1039,7 @@ public class MainActivity extends BaseActivity { @Override public void onNext(List penLineBeans) { if (penLineBeans != null && penLineBeans.size() > 0) { - buildPenList(penLineBeans); +// buildPenList(penLineBeans); } } @@ -1086,25 +1075,25 @@ public class MainActivity extends BaseActivity { @Override public void onNext(List penLineBeans) { dialog.dismiss(); - if (penLineBeans != null && penLineBeans.size() > 0) { - mPenLineList = new ArrayList<>(); - for (int i = 0; i < penLineBeans.size(); i++) { - List areaPoints = penLineBeans.get(i).getAreaPoints(); - if (areaPoints != null && areaPoints.size() > 0) { - List tempList = new ArrayList<>(); - for (int j = 0; j < areaPoints.size(); j++) { - LatLng latLng = new LatLng(Double.parseDouble(areaPoints.get(j).getLatitude()), Double.parseDouble(areaPoints.get(j).getLongitude())); - tempList.add(latLng); - } - LatLng latLng = new LatLng(Double.parseDouble(areaPoints.get(0).getLatitude()), Double.parseDouble(areaPoints.get(0).getLongitude())); - tempList.add(latLng); - mPenLineList.add(tempList); - } - } - ToastUtils.showShort("获取片区数据成功,请重新签到或签退"); - } else { - ToastUtils.showShort("暂无片区数据"); - } +// if (penLineBeans != null && penLineBeans.size() > 0) { +// mPenLineList = new ArrayList<>(); +// for (int i = 0; i < penLineBeans.size(); i++) { +// List areaPoints = penLineBeans.get(i).getAreaPoints(); +// if (areaPoints != null && areaPoints.size() > 0) { +// List tempList = new ArrayList<>(); +// for (int j = 0; j < areaPoints.size(); j++) { +// LatLng latLng = new LatLng(Double.parseDouble(areaPoints.get(j).getLatitude()), Double.parseDouble(areaPoints.get(j).getLongitude())); +// tempList.add(latLng); +// } +// LatLng latLng = new LatLng(Double.parseDouble(areaPoints.get(0).getLatitude()), Double.parseDouble(areaPoints.get(0).getLongitude())); +// tempList.add(latLng); +// mPenLineList.add(tempList); +// } +// } +// ToastUtils.showShort("获取片区数据成功,请重新签到或签退"); +// } else { +// ToastUtils.showShort("暂无片区数据"); +// } } @Override @@ -1126,99 +1115,99 @@ public class MainActivity extends BaseActivity { * * @param bdLocation */ - private boolean checkCurrenPointIsBeyond(BDLocation bdLocation) { - if (mPenLineList != null && mPenLineList.size() > 0) { - for (int i = 0; i < mPenLineList.size(); i++) { - LatLng latLng = new LatLng(bdLocation.getLatitude(), bdLocation.getLongitude()); - boolean inPolygon = PointUtils.isInPolygon(latLng, mPenLineList.get(i)); - if (inPolygon) { - return true; - } - } - return false; - } else { - return false; - } - } +// private boolean checkCurrenPointIsBeyond(BDLocation bdLocation) { +// if (mPenLineList != null && mPenLineList.size() > 0) { +// for (int i = 0; i < mPenLineList.size(); i++) { +// LatLng latLng = new LatLng(bdLocation.getLatitude(), bdLocation.getLongitude()); +// boolean inPolygon = PointUtils.isInPolygon(latLng, mPenLineList.get(i)); +// if (inPolygon) { +// return true; +// } +// } +// return false; +// } else { +// return false; +// } +// } - private void buildPenList(List penLineBeans) { - mPenLineList = new ArrayList<>(); - for (int i = 0; i < penLineBeans.size(); i++) { - List areaPoints = penLineBeans.get(i).getAreaPoints(); - if (areaPoints != null && areaPoints.size() > 0) { - List tempList = new ArrayList<>(); - for (int j = 0; j < areaPoints.size(); j++) { - LatLng latLng = new LatLng(Double.parseDouble(areaPoints.get(j).getLatitude()), Double.parseDouble(areaPoints.get(j).getLongitude())); - tempList.add(latLng); - } - LatLng latLng = new LatLng(Double.parseDouble(areaPoints.get(0).getLatitude()), Double.parseDouble(areaPoints.get(0).getLongitude())); - tempList.add(latLng); - mPenLineList.add(tempList); - } - } - } +// private void buildPenList(List penLineBeans) { +// mPenLineList = new ArrayList<>(); +// for (int i = 0; i < penLineBeans.size(); i++) { +// List areaPoints = penLineBeans.get(i).getAreaPoints(); +// if (areaPoints != null && areaPoints.size() > 0) { +// List tempList = new ArrayList<>(); +// for (int j = 0; j < areaPoints.size(); j++) { +// LatLng latLng = new LatLng(Double.parseDouble(areaPoints.get(j).getLatitude()), Double.parseDouble(areaPoints.get(j).getLongitude())); +// tempList.add(latLng); +// } +// LatLng latLng = new LatLng(Double.parseDouble(areaPoints.get(0).getLatitude()), Double.parseDouble(areaPoints.get(0).getLongitude())); +// tempList.add(latLng); +// mPenLineList.add(tempList); +// } +// } +// } /** * 进行签到 */ private void doSign() { - ProgressDialog dialog = UIUtil.initDialog(mActivity, "签到中..."); - dialog.show(); - SignBean bean = new SignBean(); - bean.setSigninLatitude(mCurrentLocation.getLatitude() + ""); - bean.setSigninLongitude(mCurrentLocation.getLongitude() + ""); - Gson gson = new Gson(); - String obj = gson.toJson(bean); - RequestBody body = RequestBody.create(okhttp3.MediaType.parse("application/json; charset=utf-8"), obj); - RetrofitManager.getInstance() - .create(LocationApiService.class) - .doSign(body, UserLgUtils.getToken()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { - - } - - @Override - public void onNext(SignDataBean successBean) { -// LogUtils.e(successBean); -// uploadPoint(); - isSgin = true; - isSignOff = false; - if (successBean.isData()) { - Glide.with(mActivity) - .load(R.drawable.ic_late) - .into(mIvState); - mTvState.setText("迟到"); - mTvState.setTextColor(Color.RED); - } else { - Glide.with(mActivity) - .load(R.drawable.ic_nomal) - .into(mIvState); - mTvState.setText("正常"); - mTvState.setTextColor(Color.WHITE); - } - dialog.dismiss(); - GlobalProvider.save(mActivity, "isUpload", "13"); - setSignOffText(); - mTvSign.setTextColor(Color.WHITE); - ToastUtils.showLong("签到成功"); - } - - @Override - public void onError(Throwable e) { - e.printStackTrace(); - dialog.dismiss(); - ExceptionHandler.handleException(e); - } - - @Override - public void onComplete() { - - } - }); +// ProgressDialog dialog = UIUtil.initDialog(mActivity, "签到中..."); +// dialog.show(); +// SignBean bean = new SignBean(); +// bean.setSigninLatitude(mCurrentLocation.getLatitude() + ""); +// bean.setSigninLongitude(mCurrentLocation.getLongitude() + ""); +// Gson gson = new Gson(); +// String obj = gson.toJson(bean); +// RequestBody body = RequestBody.create(okhttp3.MediaType.parse("application/json; charset=utf-8"), obj); +// RetrofitManager.getInstance() +// .create(LocationApiService.class) +// .doSign(body, UserLgUtils.getToken()) +// .subscribeOn(Schedulers.io()) +// .observeOn(AndroidSchedulers.mainThread()) +// .subscribe(new Observer() { +// @Override +// public void onSubscribe(Disposable d) { +// +// } +// +// @Override +// public void onNext(SignDataBean successBean) { +//// LogUtils.e(successBean); +//// uploadPoint(); +// isSgin = true; +// isSignOff = false; +// if (successBean.isData()) { +// Glide.with(mActivity) +// .load(R.drawable.ic_late) +// .into(mIvState); +// mTvState.setText("迟到"); +// mTvState.setTextColor(Color.RED); +// } else { +// Glide.with(mActivity) +// .load(R.drawable.ic_nomal) +// .into(mIvState); +// mTvState.setText("正常"); +// mTvState.setTextColor(Color.WHITE); +// } +// dialog.dismiss(); +// GlobalProvider.save(mActivity, "isUpload", "13"); +// setSignOffText(); +// mTvSign.setTextColor(Color.WHITE); +// ToastUtils.showLong("签到成功"); +// } +// +// @Override +// public void onError(Throwable e) { +// e.printStackTrace(); +// dialog.dismiss(); +// ExceptionHandler.handleException(e); +// } +// +// @Override +// public void onComplete() { +// +// } +// }); } /** @@ -1606,79 +1595,79 @@ public class MainActivity extends BaseActivity { private void startSignLocation() { stopLocation(); - mLocationClient = new LocationClient(getApplicationContext()); - LocationClientOption locationOption = new LocationClientOption(); - SignLocationListener myLocationListener = new SignLocationListener(); - mLocationClient.registerLocationListener(myLocationListener); - locationOption.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy); - locationOption.setCoorType("bd09ll"); - locationOption.setScanSpan(30 * 1000); - locationOption.setIsNeedAddress(true); - locationOption.setNeedDeviceDirect(false); - locationOption.setLocationNotify(false); - locationOption.setIgnoreKillProcess(true); - locationOption.setIsNeedLocationDescribe(true); - locationOption.setIsNeedLocationPoiList(true); - locationOption.SetIgnoreCacheException(false); - locationOption.setOpenGps(true); - locationOption.setIsNeedAltitude(false); -// locationOption.setLocationPurpose(LocationClientOption.BDLocationPurpose.SignIn); - mLocationClient.setLocOption(locationOption); - //开始定位 - mLocationClient.start(); +// mLocationClient = new LocationClient(getApplicationContext()); +// LocationClientOption locationOption = new LocationClientOption(); +// SignLocationListener myLocationListener = new SignLocationListener(); +// mLocationClient.registerLocationListener(myLocationListener); +// locationOption.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy); +// locationOption.setCoorType("bd09ll"); +// locationOption.setScanSpan(30 * 1000); +// locationOption.setIsNeedAddress(true); +// locationOption.setNeedDeviceDirect(false); +// locationOption.setLocationNotify(false); +// locationOption.setIgnoreKillProcess(true); +// locationOption.setIsNeedLocationDescribe(true); +// locationOption.setIsNeedLocationPoiList(true); +// locationOption.SetIgnoreCacheException(false); +// locationOption.setOpenGps(true); +// locationOption.setIsNeedAltitude(false); +//// locationOption.setLocationPurpose(LocationClientOption.BDLocationPurpose.SignIn); +// mLocationClient.setLocOption(locationOption); +// //开始定位 +// mLocationClient.start(); } private void stopLocation() { - if (null != mLocationClient) { - mLocationClient.stop(); - } +// if (null != mLocationClient) { +// mLocationClient.stop(); +// } } - private class SignLocationListener extends BDAbstractLocationListener { - @Override - public void onReceiveLocation(BDLocation bdLocation) { - if (bdLocation != null && bdLocation.getLatitude() != 0 && bdLocation.getLongitude() != 0) { - checkPointIsLegal(bdLocation); - } - } - } +// private class SignLocationListener extends BDAbstractLocationListener { +// @Override +// public void onReceiveLocation(BDLocation bdLocation) { +// if (bdLocation != null && bdLocation.getLatitude() != 0 && bdLocation.getLongitude() != 0) { +// checkPointIsLegal(bdLocation); +// } +// } +// } - private void checkPointIsLegal(BDLocation bdLocation) { - if (PathConfig.CITY_CODE_DEFAULT.equals(bdLocation.getCityCode())) { - if (bdLocation != null && bdLocation.getLatitude() != 0 && bdLocation.getLongitude() != 0) { - if (mPrecision >= mPrecMax) { - mPrecision = mPrecisionDefault; - if (mGpsWeakDialog == null) { - AlertDialog.Builder builder = new AlertDialog.Builder(mActivity); - builder.setMessage("当前GPS信号较弱,请调整当前所在位置,或检查手机GPS是否开启,将Wifi与蓝牙打开会提高定位精度.") - .setTitle("提示") - .setNegativeButton("确定", (dialog, which) -> dialog.dismiss()); - mGpsWeakDialog = builder.create(); - } - if (!mGpsWeakDialog.isShowing()) { - mGpsWeakDialog.show(); - } - } else { - if (bdLocation.getRadius() <= mPrecision) { - mPrecision = mPrecisionDefault; - if (bdLocation.getLatitude() != Double.MIN_VALUE && bdLocation.getLongitude() != Double.MIN_VALUE) { - mCurrentLocation = bdLocation; - if (mGpsDis != null && !mGpsDis.isDisposed()) { - mGpsDis.dispose(); - } - if (TextUtils.isEmpty(mCurrentLocation.getAddrStr())) { - mTvCurrentTime.setText("当前地址:未知"); - } else { - mTvCurrentTime.setText("当前地址:" + mCurrentLocation.getAddrStr()); - } - } - } else { - mPrecision += 10; - } - } - } - } - } +// private void checkPointIsLegal(BDLocation bdLocation) { +// if (PathConfig.CITY_CODE_DEFAULT.equals(bdLocation.getCityCode())) { +// if (bdLocation != null && bdLocation.getLatitude() != 0 && bdLocation.getLongitude() != 0) { +// if (mPrecision >= mPrecMax) { +// mPrecision = mPrecisionDefault; +// if (mGpsWeakDialog == null) { +// AlertDialog.Builder builder = new AlertDialog.Builder(mActivity); +// builder.setMessage("当前GPS信号较弱,请调整当前所在位置,或检查手机GPS是否开启,将Wifi与蓝牙打开会提高定位精度.") +// .setTitle("提示") +// .setNegativeButton("确定", (dialog, which) -> dialog.dismiss()); +// mGpsWeakDialog = builder.create(); +// } +// if (!mGpsWeakDialog.isShowing()) { +// mGpsWeakDialog.show(); +// } +// } else { +// if (bdLocation.getRadius() <= mPrecision) { +// mPrecision = mPrecisionDefault; +// if (bdLocation.getLatitude() != Double.MIN_VALUE && bdLocation.getLongitude() != Double.MIN_VALUE) { +// mCurrentLocation = bdLocation; +// if (mGpsDis != null && !mGpsDis.isDisposed()) { +// mGpsDis.dispose(); +// } +// if (TextUtils.isEmpty(mCurrentLocation.getAddrStr())) { +// mTvCurrentTime.setText("当前地址:未知"); +// } else { +// mTvCurrentTime.setText("当前地址:" + mCurrentLocation.getAddrStr()); +// } +// } +// } else { +// mPrecision += 10; +// } +// } +// } +// } +// } @Override public void onBackPressed() { diff --git a/app/src/main/java/com/sucstepsoft/txrealtimelocation/activitys/issue/CheckOptionsActivity.java b/app/src/main/java/com/sucstepsoft/txrealtimelocation/activitys/issue/CheckOptionsActivity.java new file mode 100644 index 0000000..c63d506 --- /dev/null +++ b/app/src/main/java/com/sucstepsoft/txrealtimelocation/activitys/issue/CheckOptionsActivity.java @@ -0,0 +1,270 @@ +package com.sucstepsoft.txrealtimelocation.activitys.issue; + + +import android.app.ProgressDialog; +import android.content.Intent; +import android.database.Cursor; +import android.net.Uri; +import android.os.Build; +import android.provider.MediaStore; +import android.support.v4.content.FileProvider; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.text.TextUtils; +import android.view.Gravity; + +import com.sucstepsoft.cm_utils.constant.PathConfig; +import com.sucstepsoft.cm_utils.core.beans.AddPhotoBean; +import com.sucstepsoft.cm_utils.core.retrofit_net.BaseUrlApi; +import com.sucstepsoft.cm_utils.core.retrofit_net.RetrofitManager; +import com.sucstepsoft.cm_utils.core.widget.base.BaseActivity; +import com.sucstepsoft.cm_utils.core.widget.views.ButtomDialogView; +import com.sucstepsoft.cm_utils.utils.ProiderUtil; +import com.sucstepsoft.cm_utils.utils.ToastUtils; +import com.sucstepsoft.cm_utils.utils.UIUtil; +import com.sucstepsoft.cm_utils.utils.UserLgUtils; +import com.sucstepsoft.txrealtimelocation.R; +import com.sucstepsoft.txrealtimelocation.activitys.common.PhotoActivity; +import com.sucstepsoft.txrealtimelocation.activitys.issue.demo.Options; +import com.sucstepsoft.txrealtimelocation.activitys.issue.demo.OptionsAdapter; +import com.sucstepsoft.txrealtimelocation.beans.BaseUserBean; +import com.sucstepsoft.txrealtimelocation.net.LocationApiService; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.ButterKnife; +import butterknife.Unbinder; +import io.reactivex.Observer; +import io.reactivex.android.schedulers.AndroidSchedulers; +import io.reactivex.disposables.Disposable; +import io.reactivex.schedulers.Schedulers; +import okhttp3.MediaType; +import okhttp3.MultipartBody; +import okhttp3.RequestBody; +import top.zibin.luban.Luban; +import top.zibin.luban.OnCompressListener; + +public class CheckOptionsActivity extends BaseActivity { + Unbinder mBind; + @BindView(R.id.rlv_options) + RecyclerView mRlvOptions; + private AddPhotoBean mCurrentBean; + private String mPicPath; + private int mCurrentIndex = 0; + private List mOptions; + private OptionsAdapter mAdapter; + + @Override + protected int setLayoutId() { + return R.layout.activity_check_options_ce; + } + + @Override + public void initData() { + mBind = ButterKnife.bind(this); + refreshView(STATE_LOAD_SUCCESS); + mTvBaseTitle.setText("企业检查"); + mOptions = new ArrayList<>(); + for (int i = 0; i < 200; i++) { + List mPhotos = new ArrayList<>(); + mPhotos.add(new AddPhotoBean()); + Options o = new Options(); + o.setTitle("测试检查项" + i); + o.setPhotos(mPhotos); + mOptions.add(o); + } + mAdapter = new OptionsAdapter(this, mOptions); + mRlvOptions.setAdapter(mAdapter); + mRlvOptions.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false)); + mAdapter.addSelectPhotoListener((bean, options, i, type) -> { + if (type == 1) { + //选择图片 + mCurrentIndex = i; + showSelectPhoto(bean); + } else { + //预览 + ArrayList list = new ArrayList<>(); + list.add(bean.getPath()); + Intent intent = new Intent(); + intent.putExtra(PhotoActivity.TAG_IMGURL, list); + intent.setClass(CheckOptionsActivity.this, PhotoActivity.class); + startActivity(intent); + } + }); + } + + /** + * 显示选择图片 + * + * @param bean + */ + private void showSelectPhoto(AddPhotoBean bean) { + hideSoftKeyboard(); + ButtomDialogView buttomDialogView = new ButtomDialogView.DialogBuilder(mActivity) + .setIsBackCancelable(true) + .setIscancelable(true) + .setShowLocation(Gravity.BOTTOM) + .setIsShowFile(false) + .build(); + buttomDialogView.addOnChoseListener(new ButtomDialogView.OnChoseListener() { + @Override + public void choseFile() { + } + + @Override + public void choseAlbum() { + mCurrentBean = bean; + Intent intent = new Intent(Intent.ACTION_PICK, null); + intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, + "image/*"); + startActivityForResult(intent, BaseUrlApi.PHOTO_REQUEST); + buttomDialogView.dismiss(); + } + + @Override + public void choseShoot() { + mCurrentBean = bean; + mPicPath = PathConfig.CATCH_PATH + System.currentTimeMillis() + ".jpg"; + File file = new File(mPicPath); + Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); + // 下面这句指定调用相机拍照后的照片存储的路径 + Uri uri; + if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M) { + uri = Uri.fromFile(file); + } else { + uri = FileProvider.getUriForFile(mActivity, ProiderUtil.getFileProviderName(mActivity), file); + } + intent.putExtra(MediaStore.EXTRA_OUTPUT, uri); + startActivityForResult(intent, BaseUrlApi.CAMERA_REQUEST); + } + + @Override + public void loginOut() { + + } + + @Override + public void changePwd() { + + } + }); + buttomDialogView.show(); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + if (resultCode == RESULT_OK) { + switch (requestCode) { + case BaseUrlApi.CAMERA_REQUEST://相机 + uploadImg(mPicPath, 1); + break; + case BaseUrlApi.PHOTO_REQUEST://相册 + try { + if (data == null) return; + Uri uri = data.getData(); + String[] proj = {MediaStore.Images.Media.DATA}; + Cursor cursor = managedQuery(uri, proj, null, null, null); + int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); + cursor.moveToFirst(); + String srcPath = cursor.getString(column_index); + uploadImg(srcPath, 2); + } catch (Exception e) { + e.printStackTrace(); + } + break; + } + } + super.onActivityResult(requestCode, resultCode, data); + } + + /** + * 上传文件 + * + * @param picPath + */ + private void uploadImg(String picPath, int src) { + mOptions.get(mCurrentIndex).getPhotos().add(new AddPhotoBean()); + mCurrentBean.setPath(picPath); + mCurrentBean.setId("1234"); + mAdapter.notifyItemChanged(mCurrentIndex); +// File file = new File(picPath); +// if (!file.exists()) { +// showToast("图片路径错误."); +// return; +// } +// ProgressDialog progressDialog = UIUtil.initDialog(mActivity, "正在上传..."); +// progressDialog.show(); +// Luban.with(mActivity) +// .load(picPath) +// .ignoreBy(100) +// .setTargetDir(PathConfig.CATCH_PATH) +// .filter(path -> !(TextUtils.isEmpty(path) || path.toLowerCase().endsWith(".gif"))) +// .setCompressListener(new OnCompressListener() { +// @Override +// public void onStart() { +// +// } +// +// @Override +// public void onSuccess(File file) { +// RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"), file); +// MultipartBody.Part body = MultipartBody.Part.createFormData("image", file.getName(), requestFile); +// RetrofitManager.getInstance() +// .create(LocationApiService.class) +// .uploadImage(body, UserLgUtils.getToken()) +// .subscribeOn(Schedulers.io()) +// .observeOn(AndroidSchedulers.mainThread()) +// .subscribe(new Observer() { +// @Override +// public void onSubscribe(Disposable d) { +// +// } +// +// @Override +// public void onNext(BaseUserBean baseUserBean) { +// if (progressDialog != null && progressDialog.isShowing()) { +// progressDialog.dismiss(); +// } +// ToastUtils.showShort("上传成功"); +//// mPhotoIds += (baseUserBean.getData() + ","); +//// mCurrentBean.setId(baseUserBean.getData()); +//// mCurrentBean.setPath(picPath); +//// if (mPhotos.size() < 4) { +//// mPhotos.add(new AddPhotoBean()); +//// } +//// mPhotoAdapter.notifyDataSetChanged(); +//// mCurrentBean = null; +// } +// +// @Override +// public void onError(Throwable e) { +// if (progressDialog != null && progressDialog.isShowing()) { +// progressDialog.dismiss(); +// } +// ToastUtils.showShort("上传失败,请稍后重试."); +// if (file.exists()) { +// file.delete(); +// } +// } +// +// @Override +// public void onComplete() { +// +// } +// }); +// } +// +// @Override +// public void onError(Throwable e) { +// if (progressDialog.isShowing()) { +// progressDialog.dismiss(); +// } +// ToastUtils.showShort("图片上传失败,请稍后重试"); +// } +// }) +// .launch(); + } +} diff --git a/app/src/main/java/com/sucstepsoft/txrealtimelocation/activitys/issue/IssueDetailActivity.java b/app/src/main/java/com/sucstepsoft/txrealtimelocation/activitys/issue/IssueDetailActivity.java index 233c34d..8318e8f 100755 --- a/app/src/main/java/com/sucstepsoft/txrealtimelocation/activitys/issue/IssueDetailActivity.java +++ b/app/src/main/java/com/sucstepsoft/txrealtimelocation/activitys/issue/IssueDetailActivity.java @@ -1,877 +1,877 @@ -package com.sucstepsoft.txrealtimelocation.activitys.issue; - -import android.app.ProgressDialog; -import android.content.Intent; -import android.database.Cursor; -import android.graphics.Color; -import android.graphics.drawable.AnimationDrawable; -import android.net.Uri; -import android.os.Build; -import android.provider.MediaStore; -import android.support.v4.content.FileProvider; -import android.support.v7.widget.GridLayoutManager; -import android.support.v7.widget.RecyclerView; -import android.text.Html; -import android.text.TextUtils; -import android.view.Gravity; -import android.view.View; -import android.widget.Button; -import android.widget.EditText; -import android.widget.ImageView; -import android.widget.LinearLayout; -import android.widget.RelativeLayout; -import android.widget.Switch; -import android.widget.TextView; -import android.widget.ZoomControls; - -import com.baidu.mapapi.map.BaiduMap; -import com.baidu.mapapi.map.BitmapDescriptor; -import com.baidu.mapapi.map.BitmapDescriptorFactory; -import com.baidu.mapapi.map.MapStatus; -import com.baidu.mapapi.map.MapStatusUpdateFactory; -import com.baidu.mapapi.map.MarkerOptions; -import com.baidu.mapapi.map.TextureMapView; -import com.baidu.mapapi.model.LatLng; -import com.cjt2325.cameralibrary.videorecord.MediaManager; -import com.google.gson.Gson; -import com.sucstepsoft.cm_utils.constant.PathConfig; -import com.sucstepsoft.cm_utils.core.beans.AddPhotoBean; -import com.sucstepsoft.cm_utils.core.retrofit_net.BaseUrlApi; -import com.sucstepsoft.cm_utils.core.retrofit_net.RetrofitManager; -import com.sucstepsoft.cm_utils.core.widget.base.AddPhotoAdapter; -import com.sucstepsoft.cm_utils.core.widget.base.BaseActivity; -import com.sucstepsoft.cm_utils.core.widget.base.BaseShowPhotoAdapter; -import com.sucstepsoft.cm_utils.core.widget.views.ButtomDialogView; -import com.sucstepsoft.cm_utils.utils.ProiderUtil; -import com.sucstepsoft.cm_utils.utils.ToastUtils; -import com.sucstepsoft.cm_utils.utils.UIUtil; -import com.sucstepsoft.cm_utils.utils.UserLgUtils; -import com.sucstepsoft.txrealtimelocation.R; -import com.sucstepsoft.txrealtimelocation.activitys.common.PhotoActivity; -import com.sucstepsoft.txrealtimelocation.beans.BaseUserBean; -import com.sucstepsoft.txrealtimelocation.beans.IssueCheckBean; -import com.sucstepsoft.txrealtimelocation.beans.IssueDisBean; -import com.sucstepsoft.txrealtimelocation.beans.IssueSubBean; -import com.sucstepsoft.txrealtimelocation.beans.SuccessBean; -import com.sucstepsoft.txrealtimelocation.net.LocationApiService; - -import java.io.File; -import java.util.ArrayList; -import java.util.List; - -import butterknife.BindView; -import butterknife.ButterKnife; -import butterknife.Unbinder; -import io.reactivex.Observer; -import io.reactivex.android.schedulers.AndroidSchedulers; -import io.reactivex.disposables.Disposable; -import io.reactivex.schedulers.Schedulers; -import okhttp3.MediaType; -import okhttp3.MultipartBody; -import okhttp3.RequestBody; -import top.zibin.luban.Luban; -import top.zibin.luban.OnCompressListener; - -/** - * createTime:2019年8月1日 14:00:00 - * 案件详情 - */ -public class IssueDetailActivity extends BaseActivity { - @BindView(R.id.tmv_map) - TextureMapView mMapView; - @BindView(R.id.tv_up_org) - TextView mTvUpOrg; - @BindView(R.id.tv_state) - TextView mTvState; - @BindView(R.id.tv_issue_desc) - TextView mTvIssueDesc; - @BindView(R.id.tv_up_time) - TextView mTvUpTime; - @BindView(R.id.tv_type) - TextView mTvType; - @BindView(R.id.rlv_photos) - RecyclerView mRlvPhotos;//显示上报案件 - @BindView(R.id.tv_issue_address) - TextView mTvIssueAddress; - @BindView(R.id.tv_issue_dis_title) - TextView mTvIssueDisTitle; - @BindView(R.id.et_issue_dis_desc) - EditText mEtIssueDisDesc; - @BindView(R.id.sw_issue_state) - Switch mSwIssueState; - @BindView(R.id.rlv_issue_dis_photo) - RecyclerView mRlvIssueDisPhoto;//上传案件图片 - @BindView(R.id.btn_issue_dis) - Button mBtnIssueDis; - @BindView(R.id.ll_issue_dis) - LinearLayout mLlIssueDis; - @BindView(R.id.tv_up_user) - TextView mTvUpUser; - @BindView(R.id.tv_issue_dis_desc) - TextView mTvIssueDisDesc; - @BindView(R.id.rlv_dis_photo) - RecyclerView mRlvDisPhoto;//展示案件处理的图片 - @BindView(R.id.ll_issue_dis_detail) - LinearLayout mLlIssueDisDetail; - @BindView(R.id.tv_issue_switch_title) - TextView mTvSwitchTitle; - @BindView(R.id.tv_handle_user) - TextView mTvHandleUser; - @BindView(R.id.tv_handle_time) - TextView mTvHandleTime; - @BindView(R.id.btn_reload) - Button mBtnReload; - @BindView(R.id.rl_accept) - RelativeLayout mRlAccept; - @BindView(R.id.ll_voice) - LinearLayout mLlVoice; - @BindView(R.id.tv_voice_anim) - TextView mTvVoiceAnim; - private Unbinder mBind; - private IssueSubBean.RowsBean mRowsBean; - private List mPhotos = new ArrayList<>(); - private AddPhotoBean mCurrentBean; - private String mPicPath; - private AddPhotoAdapter mPhotoAdapter; - private String mPhotoIds = "";//相片Id - private boolean isAccept = true; - private String mCheck; - private boolean isSelf = false;//是否是自处理 - - @Override - protected int setLayoutId() { - return R.layout.activity_issue_detail; - } - - @Override - public void initData() { - mBind = ButterKnife.bind(this); - refreshView(STATE_LOAD_SUCCESS); - mTvBaseTitle.setText("上报详情"); - mTvPublish.setVisibility(View.VISIBLE); - mTvPublish.setText("流程"); - mRowsBean = (IssueSubBean.RowsBean) getIntent().getSerializableExtra("bean"); - getDetail(mRowsBean); - String mine = getIntent().getStringExtra("mine"); - mCheck = getIntent().getStringExtra("check"); - if (TextUtils.isEmpty(mCheck)) { - mLlIssueDisDetail.setVisibility(View.GONE); - } else { - mLlIssueDisDetail.setVisibility(View.VISIBLE); - } - if (!TextUtils.isEmpty(mine)) { - mLlIssueDis.setVisibility(View.VISIBLE); - initDisView(); - } else { - mLlIssueDis.setVisibility(View.GONE); - } - setDetailDataToView(); - mTvPublish.setOnClickListener(v -> { - Intent intent = new Intent(IssueDetailActivity.this, IssueStepActivity.class); - intent.putExtra("caseId", mRowsBean.getReportCaseId()); - startActivity(intent); - }); - View child = mMapView.getChildAt(1); - if (child != null && (child instanceof ImageView || child instanceof ZoomControls)) { - child.setVisibility(View.GONE); - } - mMapView.showZoomControls(false); - setEditTextInhibitInputSpeChat(mEtIssueDisDesc); - } - - private void getDetail(IssueSubBean.RowsBean rowsBean) { - if (rowsBean != null) { - RetrofitManager.getInstance() - .create(LocationApiService.class) - .getIssueDetail(rowsBean.getReportCaseId(), UserLgUtils.getToken()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { - - } - - @Override - public void onNext(Object o) { - - } - - @Override - public void onError(Throwable e) { - - } - - @Override - public void onComplete() { - - } - }); - } - } - - /** - * 初始化案件处理视图 - */ - private void initDisView() { - mPhotos.add(new AddPhotoBean()); - //删除上传的相片 - mPhotoAdapter = new AddPhotoAdapter(mActivity, mPhotos); - mRlvIssueDisPhoto.setLayoutManager(new GridLayoutManager(mActivity, 4)); - mRlvIssueDisPhoto.setAdapter(mPhotoAdapter); - mPhotoAdapter.addOnDeleteListener(((bean, i) -> { - mPhotoAdapter.removeItem(bean); - mPhotoIds = mPhotoIds.replace(bean.getId() + ",", ""); - })); - mPhotoAdapter.addOnItemClickListener(bean -> { - if (TextUtils.isEmpty(bean.getPath())) { - //空数据 - showSelectPhoto(bean); - } else { - //预览 - ArrayList list = new ArrayList<>(); - list.add(bean.getPath()); - Intent intent = new Intent(); - intent.putExtra(PhotoActivity.TAG_IMGURL, list); - intent.setClass(IssueDetailActivity.this, PhotoActivity.class); - startActivity(intent); - } - }); - //检查 - if (!TextUtils.isEmpty(mCheck)) { - mLlIssueDisDetail.setVisibility(View.VISIBLE); - mTvSwitchTitle.setText("是否合格"); - mEtIssueDisDesc.setHint("请输入评价内容"); - mTvIssueDisTitle.setText(Html.fromHtml(getResources().getString(R.string.tip_issue_start_check))); - } else { - mLlIssueDisDetail.setVisibility(View.GONE); - mTvSwitchTitle.setText("处理状态"); - mEtIssueDisDesc.setHint("请输入处理描述内容"); - mTvIssueDisTitle.setText(Html.fromHtml(getResources().getString(R.string.tip_issue_start_dis))); - } - //选择是否接受 选择是否合格 - mSwIssueState.setOnCheckedChangeListener((buttonView, isChecked) -> { - isAccept = isChecked; - if (TextUtils.isEmpty(mCheck)) { - if (isChecked) { -// mRlvIssueDisPhoto.setVisibility(View.VISIBLE); - mEtIssueDisDesc.setHint("请输入处理描述内容"); - } else { -// mRlvIssueDisPhoto.setVisibility(View.GONE); - mEtIssueDisDesc.setHint("请输入不处理的原因"); - } - } else { - mRlvIssueDisPhoto.setVisibility(View.VISIBLE); - mEtIssueDisDesc.setHint("请输入评价内容"); - } - }); - mBtnIssueDis.setOnClickListener(v -> doDisportIssue()); - } - - private void doDisportIssue() { - if (TextUtils.isEmpty(mCheck)) { - if (checkParams()) { - doDis(); - } - } else { - doCheck(); - } - } - - /** - * 检查案件 - */ - private void doCheck() { - if (checkInspectParams()) { - ProgressDialog dialog = UIUtil.initDialog(mActivity, "上报中..."); - dialog.show(); - IssueCheckBean issueDisBean = buildCheckParams(); - Gson gson = new Gson(); - String obj = gson.toJson(issueDisBean); - RequestBody body = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), obj); - RetrofitManager.getInstance() - .create(LocationApiService.class) - .saveIssueInspect(mRowsBean.getReportCaseId(), body, UserLgUtils.getToken()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { - - } - - @Override - public void onNext(SuccessBean successBean) { - if (dialog != null && dialog.isShowing()) { - dialog.dismiss(); - } - ToastUtils.showShort("处理成功"); - finish(); - } - - @Override - public void onError(Throwable e) { - e.printStackTrace(); - if (dialog != null && dialog.isShowing()) { - dialog.dismiss(); - } - ToastUtils.showShort("处理失败,请稍后重试"); - } - - @Override - public void onComplete() { - - } - }); - } - - } - - private IssueCheckBean buildCheckParams() { - IssueCheckBean bean = new IssueCheckBean(); - String desc = mEtIssueDisDesc.getText().toString().trim(); - //处理 - String ids = ""; - for (int i = 0; i < mPhotoAdapter.getData().size(); i++) { - if (!TextUtils.isEmpty(mPhotoAdapter.getData().get(i).getId())) { - ids += mPhotoAdapter.getData().get(i).getId() + ","; - } - } - bean.setInspectPhotos(ids); - bean.setInspectOpinion(desc); - if (isAccept) { - bean.setIsPass(1); - } else { - bean.setIsPass(0); - } - return bean; - } - - /** - * 校验检查参数 - * - * @return - */ - private boolean checkInspectParams() { - if (mPhotoAdapter.getData() == null || mPhotoAdapter.getData().size() <= 1) { - ToastUtils.showShort("请上传现场照片."); - return false; - } - String desc = mEtIssueDisDesc.getText().toString().trim(); - if (TextUtils.isEmpty(desc)) { - ToastUtils.showShort("请输入检查描述内容."); - return false; - } - return true; - } - - /** - * 处理案件 - */ - private void doDis() { - ProgressDialog dialog = UIUtil.initDialog(mActivity, "上报中..."); - dialog.show(); - IssueDisBean issueDisBean = buildParasm(); - Gson gson = new Gson(); - String obj = gson.toJson(issueDisBean); - RequestBody body = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), obj); - RetrofitManager.getInstance() - .create(LocationApiService.class) - .saveIssueDis(mRowsBean.getReportCaseId(), body, UserLgUtils.getToken()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { - - } - - @Override - public void onNext(SuccessBean successBean) { - if (isSelf) { - if (isAccept) { - doCheckSelf(dialog); - } else { - if (dialog != null && dialog.isShowing()) { - dialog.dismiss(); - } - ToastUtils.showShort("处理成功"); - finish(); - } - } else { - if (dialog != null && dialog.isShowing()) { - dialog.dismiss(); - } - ToastUtils.showShort("处理成功"); - finish(); - } - - } - - @Override - public void onError(Throwable e) { - e.printStackTrace(); - if (dialog != null && dialog.isShowing()) { - dialog.dismiss(); - } - ToastUtils.showShort("处理失败,请稍后重试."); - } - - @Override - public void onComplete() { - - } - }); - } - - private IssueDisBean buildParasm() { - IssueDisBean bean = new IssueDisBean(); - String desc = mEtIssueDisDesc.getText().toString().trim(); - String ids = ""; - for (int i = 0; i < mPhotoAdapter.getData().size(); i++) { - if (!TextUtils.isEmpty(mPhotoAdapter.getData().get(i).getId())) { - ids += mPhotoAdapter.getData().get(i).getId() + ","; - } - } - bean.setHandlePhotos(ids); - bean.setHandleOpinion(desc); - if (isAccept) { - //处理 - bean.setHandleStatus(1); - } else { - //不处理 - bean.setHandleStatus(0); - } - return bean; - } - - private boolean checkParams() { - if (isAccept) { - String desc = mEtIssueDisDesc.getText().toString().trim(); - if (TextUtils.isEmpty(desc)) { - ToastUtils.showShort("请输入处理描述内容."); - return false; - } - } else { - //不接受 - String desc = mEtIssueDisDesc.getText().toString().trim(); - if (TextUtils.isEmpty(desc)) { - ToastUtils.showShort("请输入不处理的原因."); - return false; - } - } - //接受 - if (mPhotoAdapter.getData() == null || mPhotoAdapter.getData().size() <= 1) { - ToastUtils.showShort("请上传处理现场照片."); - return false; - } - return true; - } - - /** - * 检查 自处理 - * - * @param dialog - */ - private void doCheckSelf(ProgressDialog dialog) { - IssueCheckBean issueDisBean = new IssueCheckBean(); - if (isAccept) { - issueDisBean.setIsPass(1); - } else { - issueDisBean.setIsPass(0); - } - String ids = ""; - for (int i = 0; i < mPhotoAdapter.getData().size(); i++) { - if (!TextUtils.isEmpty(mPhotoAdapter.getData().get(i).getId())) { - ids += mPhotoAdapter.getData().get(i).getId() + ","; - } - } - issueDisBean.setInspectPhotos(ids); - issueDisBean.setInspectOpinion("自动检查(自处理)"); - Gson gson = new Gson(); - String obj = gson.toJson(issueDisBean); - RequestBody body = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), obj); - RetrofitManager.getInstance() - .create(LocationApiService.class) - .saveIssueInspect(mRowsBean.getReportCaseId(), body, UserLgUtils.getToken()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { - - } - - @Override - public void onNext(SuccessBean successBean) { - if (dialog != null && dialog.isShowing()) { - dialog.dismiss(); - } - ToastUtils.showShort("处理成功"); - finish(); - } - - @Override - public void onError(Throwable e) { - e.printStackTrace(); - if (dialog != null && dialog.isShowing()) { - dialog.dismiss(); - } - ToastUtils.showShort("处理失败,请稍后重试"); - } - - @Override - public void onComplete() { - - } - }); - } - - private void setDetailDataToView() { - if (mRowsBean != null) { - //区域 - if (0 == mRowsBean.getIsSelf()) { - isSelf = false; - //mRlAccept.setVisibility(View.VISIBLE); - } else { - isSelf = true; - /*自处理是否需要将选择处理选择去除*/ - //isAccept = true; - //mRlAccept.setVisibility(View.GONE); - } - mTvUpOrg.setText(mRowsBean.getCommunityName()); - //状态 - //描述 - mTvIssueDesc.setText(mRowsBean.getCaseContent()); - //上报时间 - mTvUpTime.setText("上报时间:" + mRowsBean.getReportDate()); - //类型 - mTvType.setText("上报类型:" + mRowsBean.getCaseTypeName()); - //上报人 - mTvUpUser.setText("上报人员:" + mRowsBean.getCaseReporter()); - if (!TextUtils.isEmpty(mRowsBean.getCaseAudio())) { - mLlVoice.setVisibility(View.VISIBLE); - mLlVoice.setOnClickListener(v -> playVoice(mRowsBean.getCaseAudio())); - } else { - mLlVoice.setVisibility(View.GONE); - } - if (!TextUtils.isEmpty(mRowsBean.getCaseStatus())) { - switch (mRowsBean.getCaseStatus()) { - case "0"://待受理 - mTvState.setText("待受理"); - mTvState.setTextColor(Color.parseColor("#DE0E0E")); - mTvState.setBackgroundResource(R.drawable.shp_status_red); - break; - case "1": - mTvState.setText("待立案"); - mTvState.setTextColor(Color.parseColor("#DE0E0E")); - mTvState.setBackgroundResource(R.drawable.shp_status_red); - break; - case "2": - mTvState.setText("待下派"); - mTvState.setTextColor(Color.parseColor("#FFAE3B")); - mTvState.setBackgroundResource(R.drawable.shp_status_yellow); - break; - case "3": - mTvState.setText("待处理"); - mTvState.setTextColor(Color.parseColor("#DE0E0E")); - mTvState.setBackgroundResource(R.drawable.shp_status_red); - break; - case "4": - mTvState.setText("待检查"); - mTvState.setTextColor(Color.parseColor("#1189FF")); - mTvState.setBackgroundResource(R.drawable.shp_status_blue); - break; - case "5": - mTvState.setText("待结案"); - mTvState.setTextColor(Color.parseColor("#0EC843")); - mTvState.setBackgroundResource(R.drawable.shp_status_green); - break; - case "6": - mTvState.setText("已归档"); - mTvState.setTextColor(Color.parseColor("#D8D8D8")); - mTvState.setBackgroundResource(R.drawable.shp_status_gray); - break; - default: - mTvState.setText("异常"); - mTvState.setTextColor(Color.parseColor("#DE0E0E")); - mTvState.setBackgroundResource(R.drawable.shp_status_red); - break; - } - } else { - mTvState.setText("异常"); - mTvState.setTextColor(Color.parseColor("#DE0E0E")); - mTvState.setBackgroundResource(R.drawable.shp_status_red); - } - mTvIssueAddress.setText(mRowsBean.getCasePosition()); - String caseLongitude = mRowsBean.getCaseLongitude(); - String caseLatitude = mRowsBean.getCaseLatitude(); - if (!TextUtils.isEmpty(caseLatitude) && !TextUtils.isEmpty(caseLongitude)) { - Double l = Double.parseDouble(caseLongitude); - Double a = Double.parseDouble(caseLatitude); - BaiduMap map = mMapView.getMap(); - BitmapDescriptor mapIcon = BitmapDescriptorFactory.fromResource(R.drawable.ic_map_marker); - MapStatus ms = new MapStatus.Builder().zoom(14).target(new LatLng(a, l)).build(); - map.animateMapStatus(MapStatusUpdateFactory.newMapStatus(ms)); - MarkerOptions markerOptions = new MarkerOptions() - .position(new LatLng(a, l))//mark出现的位置 - .icon(mapIcon) //mark图标 - .draggable(false)//mark可拖拽 - .animateType(MarkerOptions.MarkerAnimateType.none); - map.addOverlay(markerOptions); - mBtnReload.setOnClickListener(v -> map.animateMapStatus(MapStatusUpdateFactory.newMapStatus(ms))); - } - if (!TextUtils.isEmpty(mRowsBean.getCasePhotos())) { - mRlvPhotos.setVisibility(View.VISIBLE); - List photos = new ArrayList<>(); - String[] split = mRowsBean.getCasePhotos().split(","); - for (int i = 0; i < split.length; i++) { - if (!TextUtils.isEmpty(split[i])) { - photos.add(BaseUrlApi.BASE_IMG_URL + split[i]); - } - } - BaseShowPhotoAdapter adapter = new BaseShowPhotoAdapter(mActivity, photos); - GridLayoutManager manager = new GridLayoutManager(mActivity, 4) { - @Override - public boolean canScrollVertically() { - return false; - } - }; - mRlvPhotos.setLayoutManager(manager); - mRlvPhotos.setAdapter(adapter); - adapter.addOnItemClickListener(url -> { - Intent intent = new Intent(IssueDetailActivity.this, PhotoActivity.class); - intent.putExtra("imgUrls", new ArrayList<>(adapter.getData())); - startActivity(intent); - }); - } else { - mRlvPhotos.setVisibility(View.GONE); - } - //TODO 填充处理数据 - if (!TextUtils.isEmpty(mCheck)) { - mTvHandleTime.setText("处理时间:" + mRowsBean.getHandleDate()); - mTvHandleUser.setText("处理人:" + mRowsBean.getHandleUserName()); - mTvIssueDisDesc.setText(mRowsBean.getHandleOpinion()); - if (TextUtils.isEmpty(mRowsBean.getHandlePhotos())) { - mRlvDisPhoto.setVisibility(View.GONE); - } else { - mRlvDisPhoto.setVisibility(View.VISIBLE); - List photos = new ArrayList<>(); - String[] split = mRowsBean.getHandlePhotos().split(","); - for (int i = 0; i < split.length; i++) { - if (!TextUtils.isEmpty(split[i])) { - photos.add(BaseUrlApi.BASE_IMG_URL + split[i]); - } - } - BaseShowPhotoAdapter adapter = new BaseShowPhotoAdapter(mActivity, photos); - GridLayoutManager manager = new GridLayoutManager(mActivity, 4) { - @Override - public boolean canScrollVertically() { - return false; - } - }; - mRlvDisPhoto.setLayoutManager(manager); - mRlvDisPhoto.setAdapter(adapter); - adapter.addOnItemClickListener(url -> { - Intent intent = new Intent(IssueDetailActivity.this, PhotoActivity.class); - intent.putExtra("imgUrls", new ArrayList<>(adapter.getData())); - startActivity(intent); - }); - } - } - } - } - - /** - * 播放案件录音 - * - * @param caseAudio - */ - private void playVoice(String caseAudio) { - AnimationDrawable animationDrawable = (AnimationDrawable) mTvVoiceAnim.getBackground(); - animationDrawable.start(); - MediaManager.playSound(BaseUrlApi.BASE_IMG_URL + caseAudio, - mp -> { - animationDrawable.selectDrawable(0);//显示动画第一帧 - animationDrawable.stop(); - MediaManager.destroy(); - }); - } - - /** - * 显示选择图片 - * - * @param bean - */ - private void showSelectPhoto(AddPhotoBean bean) { - ButtomDialogView buttomDialogView = new ButtomDialogView.DialogBuilder(mActivity) - .setIsBackCancelable(true) - .setIscancelable(true) - .setShowLocation(Gravity.BOTTOM) - .setIsShowFile(false) - .build(); - buttomDialogView.addOnChoseListener(new ButtomDialogView.OnChoseListener() { - @Override - public void choseFile() { - } - - @Override - public void choseAlbum() { - mCurrentBean = bean; - Intent intent = new Intent(Intent.ACTION_PICK, null); - intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, - "image/*"); - startActivityForResult(intent, BaseUrlApi.PHOTO_REQUEST); - buttomDialogView.dismiss(); - } - - @Override - public void choseShoot() { - mCurrentBean = bean; - mPicPath = PathConfig.CATCH_PATH + System.currentTimeMillis() + ".jpg"; - File file = new File(mPicPath); - Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); - // 下面这句指定调用相机拍照后的照片存储的路径 - Uri uri; - if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M) { - uri = Uri.fromFile(file); - } else { - uri = FileProvider.getUriForFile(mActivity, ProiderUtil.getFileProviderName(mActivity), file); - } - intent.putExtra(MediaStore.EXTRA_OUTPUT, uri); - startActivityForResult(intent, BaseUrlApi.CAMERA_REQUEST); - } - - @Override - public void loginOut() { - - } - - @Override - public void changePwd() { - - } - }); - buttomDialogView.show(); - } - - @Override - protected void onActivityResult(int requestCode, int resultCode, Intent data) { - if (resultCode == RESULT_OK) { - switch (requestCode) { - case BaseUrlApi.CAMERA_REQUEST://相机 - uploadImg(mPicPath, 1); - break; - case BaseUrlApi.PHOTO_REQUEST://相册 - try { - if (data == null) return; - Uri uri = data.getData(); - String[] proj = {MediaStore.Images.Media.DATA}; - Cursor cursor = managedQuery(uri, proj, null, null, null); - int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); - cursor.moveToFirst(); - String srcPath = cursor.getString(column_index); - uploadImg(srcPath, 2); - } catch (Exception e) { - e.printStackTrace(); - } - break; - } - } - super.onActivityResult(requestCode, resultCode, data); - } - - /** - * 上传文件 - * - * @param picPath - */ - private void uploadImg(String picPath, int src) { - File file = new File(picPath); - if (!file.exists()) { - showToast("图片路径错误."); - return; - } - ProgressDialog progressDialog = UIUtil.initDialog(mActivity, "正在上传..."); - progressDialog.show(); - Luban.with(mActivity) - .load(picPath) - .ignoreBy(100) - .setTargetDir(PathConfig.CATCH_PATH) - .filter(path -> !(TextUtils.isEmpty(path) || path.toLowerCase().endsWith(".gif"))) - .setCompressListener(new OnCompressListener() { - @Override - public void onStart() { - - } - - @Override - public void onSuccess(File file) { - RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"), file); - MultipartBody.Part body = MultipartBody.Part.createFormData("image", file.getName(), requestFile); - RetrofitManager.getInstance() - .create(LocationApiService.class) - .uploadImage(body, UserLgUtils.getToken()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { - - } - - @Override - public void onNext(BaseUserBean baseUserBean) { - if (progressDialog != null && progressDialog.isShowing()) { - progressDialog.dismiss(); - } - ToastUtils.showShort("上传成功"); - mPhotoIds += (baseUserBean.getData() + ","); - mCurrentBean.setId(baseUserBean.getData()); - mCurrentBean.setPath(picPath); - if (mPhotos.size() < 4) { - mPhotos.add(new AddPhotoBean()); - } - mPhotoAdapter.notifyDataSetChanged(); - mCurrentBean = null; - } - - @Override - public void onError(Throwable e) { - if (progressDialog != null && progressDialog.isShowing()) { - progressDialog.dismiss(); - } - ToastUtils.showShort("上传失败,请稍后重试."); - if (file.exists()) { - file.delete(); - } - } - - @Override - public void onComplete() { - - } - }); - } - - @Override - public void onError(Throwable e) { - if (progressDialog.isShowing()) { - progressDialog.dismiss(); - } - ToastUtils.showShort("图片上传失败,请稍后重试"); - } - }) - .launch(); - } - - @Override - protected void onDestroy() { - mMapView.onDestroy(); - if (mBind != null) { - mBind.unbind(); - } - super.onDestroy(); - } - -} +//package com.sucstepsoft.txrealtimelocation.activitys.issue; +// +//import android.app.ProgressDialog; +//import android.content.Intent; +//import android.database.Cursor; +//import android.graphics.Color; +//import android.graphics.drawable.AnimationDrawable; +//import android.net.Uri; +//import android.os.Build; +//import android.provider.MediaStore; +//import android.support.v4.content.FileProvider; +//import android.support.v7.widget.GridLayoutManager; +//import android.support.v7.widget.RecyclerView; +//import android.text.Html; +//import android.text.TextUtils; +//import android.view.Gravity; +//import android.view.View; +//import android.widget.Button; +//import android.widget.EditText; +//import android.widget.ImageView; +//import android.widget.LinearLayout; +//import android.widget.RelativeLayout; +//import android.widget.Switch; +//import android.widget.TextView; +//import android.widget.ZoomControls; +// +//import com.baidu.mapapi.map.BaiduMap; +//import com.baidu.mapapi.map.BitmapDescriptor; +//import com.baidu.mapapi.map.BitmapDescriptorFactory; +//import com.baidu.mapapi.map.MapStatus; +//import com.baidu.mapapi.map.MapStatusUpdateFactory; +//import com.baidu.mapapi.map.MarkerOptions; +//import com.baidu.mapapi.map.TextureMapView; +//import com.baidu.mapapi.model.LatLng; +//import com.cjt2325.cameralibrary.videorecord.MediaManager; +//import com.google.gson.Gson; +//import com.sucstepsoft.cm_utils.constant.PathConfig; +//import com.sucstepsoft.cm_utils.core.beans.AddPhotoBean; +//import com.sucstepsoft.cm_utils.core.retrofit_net.BaseUrlApi; +//import com.sucstepsoft.cm_utils.core.retrofit_net.RetrofitManager; +//import com.sucstepsoft.cm_utils.core.widget.base.AddPhotoAdapter; +//import com.sucstepsoft.cm_utils.core.widget.base.BaseActivity; +//import com.sucstepsoft.cm_utils.core.widget.base.BaseShowPhotoAdapter; +//import com.sucstepsoft.cm_utils.core.widget.views.ButtomDialogView; +//import com.sucstepsoft.cm_utils.utils.ProiderUtil; +//import com.sucstepsoft.cm_utils.utils.ToastUtils; +//import com.sucstepsoft.cm_utils.utils.UIUtil; +//import com.sucstepsoft.cm_utils.utils.UserLgUtils; +//import com.sucstepsoft.txrealtimelocation.R; +//import com.sucstepsoft.txrealtimelocation.activitys.common.PhotoActivity; +//import com.sucstepsoft.txrealtimelocation.beans.BaseUserBean; +//import com.sucstepsoft.txrealtimelocation.beans.IssueCheckBean; +//import com.sucstepsoft.txrealtimelocation.beans.IssueDisBean; +//import com.sucstepsoft.txrealtimelocation.beans.IssueSubBean; +//import com.sucstepsoft.txrealtimelocation.beans.SuccessBean; +//import com.sucstepsoft.txrealtimelocation.net.LocationApiService; +// +//import java.io.File; +//import java.util.ArrayList; +//import java.util.List; +// +//import butterknife.BindView; +//import butterknife.ButterKnife; +//import butterknife.Unbinder; +//import io.reactivex.Observer; +//import io.reactivex.android.schedulers.AndroidSchedulers; +//import io.reactivex.disposables.Disposable; +//import io.reactivex.schedulers.Schedulers; +//import okhttp3.MediaType; +//import okhttp3.MultipartBody; +//import okhttp3.RequestBody; +//import top.zibin.luban.Luban; +//import top.zibin.luban.OnCompressListener; +// +///** +// * createTime:2019年8月1日 14:00:00 +// * 案件详情 +// */ +//public class IssueDetailActivity extends BaseActivity { +//// @BindView(R.id.tmv_map) +//// TextureMapView mMapView; +// @BindView(R.id.tv_up_org) +// TextView mTvUpOrg; +// @BindView(R.id.tv_state) +// TextView mTvState; +// @BindView(R.id.tv_issue_desc) +// TextView mTvIssueDesc; +// @BindView(R.id.tv_up_time) +// TextView mTvUpTime; +// @BindView(R.id.tv_type) +// TextView mTvType; +// @BindView(R.id.rlv_photos) +// RecyclerView mRlvPhotos;//显示上报案件 +// @BindView(R.id.tv_issue_address) +// TextView mTvIssueAddress; +// @BindView(R.id.tv_issue_dis_title) +// TextView mTvIssueDisTitle; +// @BindView(R.id.et_issue_dis_desc) +// EditText mEtIssueDisDesc; +// @BindView(R.id.sw_issue_state) +// Switch mSwIssueState; +// @BindView(R.id.rlv_issue_dis_photo) +// RecyclerView mRlvIssueDisPhoto;//上传案件图片 +// @BindView(R.id.btn_issue_dis) +// Button mBtnIssueDis; +// @BindView(R.id.ll_issue_dis) +// LinearLayout mLlIssueDis; +// @BindView(R.id.tv_up_user) +// TextView mTvUpUser; +// @BindView(R.id.tv_issue_dis_desc) +// TextView mTvIssueDisDesc; +// @BindView(R.id.rlv_dis_photo) +// RecyclerView mRlvDisPhoto;//展示案件处理的图片 +// @BindView(R.id.ll_issue_dis_detail) +// LinearLayout mLlIssueDisDetail; +// @BindView(R.id.tv_issue_switch_title) +// TextView mTvSwitchTitle; +// @BindView(R.id.tv_handle_user) +// TextView mTvHandleUser; +// @BindView(R.id.tv_handle_time) +// TextView mTvHandleTime; +// @BindView(R.id.btn_reload) +// Button mBtnReload; +// @BindView(R.id.rl_accept) +// RelativeLayout mRlAccept; +// @BindView(R.id.ll_voice) +// LinearLayout mLlVoice; +// @BindView(R.id.tv_voice_anim) +// TextView mTvVoiceAnim; +// private Unbinder mBind; +// private IssueSubBean.RowsBean mRowsBean; +// private List mPhotos = new ArrayList<>(); +// private AddPhotoBean mCurrentBean; +// private String mPicPath; +// private AddPhotoAdapter mPhotoAdapter; +// private String mPhotoIds = "";//相片Id +// private boolean isAccept = true; +// private String mCheck; +// private boolean isSelf = false;//是否是自处理 +// +// @Override +// protected int setLayoutId() { +// return R.layout.activity_issue_detail; +// } +// +// @Override +// public void initData() { +// mBind = ButterKnife.bind(this); +// refreshView(STATE_LOAD_SUCCESS); +// mTvBaseTitle.setText("上报详情"); +// mTvPublish.setVisibility(View.VISIBLE); +// mTvPublish.setText("流程"); +// mRowsBean = (IssueSubBean.RowsBean) getIntent().getSerializableExtra("bean"); +// getDetail(mRowsBean); +// String mine = getIntent().getStringExtra("mine"); +// mCheck = getIntent().getStringExtra("check"); +// if (TextUtils.isEmpty(mCheck)) { +// mLlIssueDisDetail.setVisibility(View.GONE); +// } else { +// mLlIssueDisDetail.setVisibility(View.VISIBLE); +// } +// if (!TextUtils.isEmpty(mine)) { +// mLlIssueDis.setVisibility(View.VISIBLE); +// initDisView(); +// } else { +// mLlIssueDis.setVisibility(View.GONE); +// } +// setDetailDataToView(); +// mTvPublish.setOnClickListener(v -> { +// Intent intent = new Intent(IssueDetailActivity.this, IssueStepActivity.class); +// intent.putExtra("caseId", mRowsBean.getReportCaseId()); +// startActivity(intent); +// }); +//// View child = mMapView.getChildAt(1); +//// if (child != null && (child instanceof ImageView || child instanceof ZoomControls)) { +//// child.setVisibility(View.GONE); +//// } +//// mMapView.showZoomControls(false); +// setEditTextInhibitInputSpeChat(mEtIssueDisDesc); +// } +// +// private void getDetail(IssueSubBean.RowsBean rowsBean) { +// if (rowsBean != null) { +// RetrofitManager.getInstance() +// .create(LocationApiService.class) +// .getIssueDetail(rowsBean.getReportCaseId(), UserLgUtils.getToken()) +// .subscribeOn(Schedulers.io()) +// .observeOn(AndroidSchedulers.mainThread()) +// .subscribe(new Observer() { +// @Override +// public void onSubscribe(Disposable d) { +// +// } +// +// @Override +// public void onNext(Object o) { +// +// } +// +// @Override +// public void onError(Throwable e) { +// +// } +// +// @Override +// public void onComplete() { +// +// } +// }); +// } +// } +// +// /** +// * 初始化案件处理视图 +// */ +// private void initDisView() { +// mPhotos.add(new AddPhotoBean()); +// //删除上传的相片 +// mPhotoAdapter = new AddPhotoAdapter(mActivity, mPhotos); +// mRlvIssueDisPhoto.setLayoutManager(new GridLayoutManager(mActivity, 4)); +// mRlvIssueDisPhoto.setAdapter(mPhotoAdapter); +// mPhotoAdapter.addOnDeleteListener(((bean, i) -> { +// mPhotoAdapter.removeItem(bean); +// mPhotoIds = mPhotoIds.replace(bean.getId() + ",", ""); +// })); +// mPhotoAdapter.addOnItemClickListener(bean -> { +// if (TextUtils.isEmpty(bean.getPath())) { +// //空数据 +// showSelectPhoto(bean); +// } else { +// //预览 +// ArrayList list = new ArrayList<>(); +// list.add(bean.getPath()); +// Intent intent = new Intent(); +// intent.putExtra(PhotoActivity.TAG_IMGURL, list); +// intent.setClass(IssueDetailActivity.this, PhotoActivity.class); +// startActivity(intent); +// } +// }); +// //检查 +// if (!TextUtils.isEmpty(mCheck)) { +// mLlIssueDisDetail.setVisibility(View.VISIBLE); +// mTvSwitchTitle.setText("是否合格"); +// mEtIssueDisDesc.setHint("请输入评价内容"); +// mTvIssueDisTitle.setText(Html.fromHtml(getResources().getString(R.string.tip_issue_start_check))); +// } else { +// mLlIssueDisDetail.setVisibility(View.GONE); +// mTvSwitchTitle.setText("处理状态"); +// mEtIssueDisDesc.setHint("请输入处理描述内容"); +// mTvIssueDisTitle.setText(Html.fromHtml(getResources().getString(R.string.tip_issue_start_dis))); +// } +// //选择是否接受 选择是否合格 +// mSwIssueState.setOnCheckedChangeListener((buttonView, isChecked) -> { +// isAccept = isChecked; +// if (TextUtils.isEmpty(mCheck)) { +// if (isChecked) { +//// mRlvIssueDisPhoto.setVisibility(View.VISIBLE); +// mEtIssueDisDesc.setHint("请输入处理描述内容"); +// } else { +//// mRlvIssueDisPhoto.setVisibility(View.GONE); +// mEtIssueDisDesc.setHint("请输入不处理的原因"); +// } +// } else { +// mRlvIssueDisPhoto.setVisibility(View.VISIBLE); +// mEtIssueDisDesc.setHint("请输入评价内容"); +// } +// }); +// mBtnIssueDis.setOnClickListener(v -> doDisportIssue()); +// } +// +// private void doDisportIssue() { +// if (TextUtils.isEmpty(mCheck)) { +// if (checkParams()) { +// doDis(); +// } +// } else { +// doCheck(); +// } +// } +// +// /** +// * 检查案件 +// */ +// private void doCheck() { +// if (checkInspectParams()) { +// ProgressDialog dialog = UIUtil.initDialog(mActivity, "上报中..."); +// dialog.show(); +// IssueCheckBean issueDisBean = buildCheckParams(); +// Gson gson = new Gson(); +// String obj = gson.toJson(issueDisBean); +// RequestBody body = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), obj); +// RetrofitManager.getInstance() +// .create(LocationApiService.class) +// .saveIssueInspect(mRowsBean.getReportCaseId(), body, UserLgUtils.getToken()) +// .subscribeOn(Schedulers.io()) +// .observeOn(AndroidSchedulers.mainThread()) +// .subscribe(new Observer() { +// @Override +// public void onSubscribe(Disposable d) { +// +// } +// +// @Override +// public void onNext(SuccessBean successBean) { +// if (dialog != null && dialog.isShowing()) { +// dialog.dismiss(); +// } +// ToastUtils.showShort("处理成功"); +// finish(); +// } +// +// @Override +// public void onError(Throwable e) { +// e.printStackTrace(); +// if (dialog != null && dialog.isShowing()) { +// dialog.dismiss(); +// } +// ToastUtils.showShort("处理失败,请稍后重试"); +// } +// +// @Override +// public void onComplete() { +// +// } +// }); +// } +// +// } +// +// private IssueCheckBean buildCheckParams() { +// IssueCheckBean bean = new IssueCheckBean(); +// String desc = mEtIssueDisDesc.getText().toString().trim(); +// //处理 +// String ids = ""; +// for (int i = 0; i < mPhotoAdapter.getData().size(); i++) { +// if (!TextUtils.isEmpty(mPhotoAdapter.getData().get(i).getId())) { +// ids += mPhotoAdapter.getData().get(i).getId() + ","; +// } +// } +// bean.setInspectPhotos(ids); +// bean.setInspectOpinion(desc); +// if (isAccept) { +// bean.setIsPass(1); +// } else { +// bean.setIsPass(0); +// } +// return bean; +// } +// +// /** +// * 校验检查参数 +// * +// * @return +// */ +// private boolean checkInspectParams() { +// if (mPhotoAdapter.getData() == null || mPhotoAdapter.getData().size() <= 1) { +// ToastUtils.showShort("请上传现场照片."); +// return false; +// } +// String desc = mEtIssueDisDesc.getText().toString().trim(); +// if (TextUtils.isEmpty(desc)) { +// ToastUtils.showShort("请输入检查描述内容."); +// return false; +// } +// return true; +// } +// +// /** +// * 处理案件 +// */ +// private void doDis() { +// ProgressDialog dialog = UIUtil.initDialog(mActivity, "上报中..."); +// dialog.show(); +// IssueDisBean issueDisBean = buildParasm(); +// Gson gson = new Gson(); +// String obj = gson.toJson(issueDisBean); +// RequestBody body = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), obj); +// RetrofitManager.getInstance() +// .create(LocationApiService.class) +// .saveIssueDis(mRowsBean.getReportCaseId(), body, UserLgUtils.getToken()) +// .subscribeOn(Schedulers.io()) +// .observeOn(AndroidSchedulers.mainThread()) +// .subscribe(new Observer() { +// @Override +// public void onSubscribe(Disposable d) { +// +// } +// +// @Override +// public void onNext(SuccessBean successBean) { +// if (isSelf) { +// if (isAccept) { +// doCheckSelf(dialog); +// } else { +// if (dialog != null && dialog.isShowing()) { +// dialog.dismiss(); +// } +// ToastUtils.showShort("处理成功"); +// finish(); +// } +// } else { +// if (dialog != null && dialog.isShowing()) { +// dialog.dismiss(); +// } +// ToastUtils.showShort("处理成功"); +// finish(); +// } +// +// } +// +// @Override +// public void onError(Throwable e) { +// e.printStackTrace(); +// if (dialog != null && dialog.isShowing()) { +// dialog.dismiss(); +// } +// ToastUtils.showShort("处理失败,请稍后重试."); +// } +// +// @Override +// public void onComplete() { +// +// } +// }); +// } +// +// private IssueDisBean buildParasm() { +// IssueDisBean bean = new IssueDisBean(); +// String desc = mEtIssueDisDesc.getText().toString().trim(); +// String ids = ""; +// for (int i = 0; i < mPhotoAdapter.getData().size(); i++) { +// if (!TextUtils.isEmpty(mPhotoAdapter.getData().get(i).getId())) { +// ids += mPhotoAdapter.getData().get(i).getId() + ","; +// } +// } +// bean.setHandlePhotos(ids); +// bean.setHandleOpinion(desc); +// if (isAccept) { +// //处理 +// bean.setHandleStatus(1); +// } else { +// //不处理 +// bean.setHandleStatus(0); +// } +// return bean; +// } +// +// private boolean checkParams() { +// if (isAccept) { +// String desc = mEtIssueDisDesc.getText().toString().trim(); +// if (TextUtils.isEmpty(desc)) { +// ToastUtils.showShort("请输入处理描述内容."); +// return false; +// } +// } else { +// //不接受 +// String desc = mEtIssueDisDesc.getText().toString().trim(); +// if (TextUtils.isEmpty(desc)) { +// ToastUtils.showShort("请输入不处理的原因."); +// return false; +// } +// } +// //接受 +// if (mPhotoAdapter.getData() == null || mPhotoAdapter.getData().size() <= 1) { +// ToastUtils.showShort("请上传处理现场照片."); +// return false; +// } +// return true; +// } +// +// /** +// * 检查 自处理 +// * +// * @param dialog +// */ +// private void doCheckSelf(ProgressDialog dialog) { +// IssueCheckBean issueDisBean = new IssueCheckBean(); +// if (isAccept) { +// issueDisBean.setIsPass(1); +// } else { +// issueDisBean.setIsPass(0); +// } +// String ids = ""; +// for (int i = 0; i < mPhotoAdapter.getData().size(); i++) { +// if (!TextUtils.isEmpty(mPhotoAdapter.getData().get(i).getId())) { +// ids += mPhotoAdapter.getData().get(i).getId() + ","; +// } +// } +// issueDisBean.setInspectPhotos(ids); +// issueDisBean.setInspectOpinion("自动检查(自处理)"); +// Gson gson = new Gson(); +// String obj = gson.toJson(issueDisBean); +// RequestBody body = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), obj); +// RetrofitManager.getInstance() +// .create(LocationApiService.class) +// .saveIssueInspect(mRowsBean.getReportCaseId(), body, UserLgUtils.getToken()) +// .subscribeOn(Schedulers.io()) +// .observeOn(AndroidSchedulers.mainThread()) +// .subscribe(new Observer() { +// @Override +// public void onSubscribe(Disposable d) { +// +// } +// +// @Override +// public void onNext(SuccessBean successBean) { +// if (dialog != null && dialog.isShowing()) { +// dialog.dismiss(); +// } +// ToastUtils.showShort("处理成功"); +// finish(); +// } +// +// @Override +// public void onError(Throwable e) { +// e.printStackTrace(); +// if (dialog != null && dialog.isShowing()) { +// dialog.dismiss(); +// } +// ToastUtils.showShort("处理失败,请稍后重试"); +// } +// +// @Override +// public void onComplete() { +// +// } +// }); +// } +// +// private void setDetailDataToView() { +// if (mRowsBean != null) { +// //区域 +// if (0 == mRowsBean.getIsSelf()) { +// isSelf = false; +// //mRlAccept.setVisibility(View.VISIBLE); +// } else { +// isSelf = true; +// /*自处理是否需要将选择处理选择去除*/ +// //isAccept = true; +// //mRlAccept.setVisibility(View.GONE); +// } +// mTvUpOrg.setText(mRowsBean.getCommunityName()); +// //状态 +// //描述 +// mTvIssueDesc.setText(mRowsBean.getCaseContent()); +// //上报时间 +// mTvUpTime.setText("上报时间:" + mRowsBean.getReportDate()); +// //类型 +// mTvType.setText("上报类型:" + mRowsBean.getCaseTypeName()); +// //上报人 +// mTvUpUser.setText("上报人员:" + mRowsBean.getCaseReporter()); +// if (!TextUtils.isEmpty(mRowsBean.getCaseAudio())) { +// mLlVoice.setVisibility(View.VISIBLE); +// mLlVoice.setOnClickListener(v -> playVoice(mRowsBean.getCaseAudio())); +// } else { +// mLlVoice.setVisibility(View.GONE); +// } +// if (!TextUtils.isEmpty(mRowsBean.getCaseStatus())) { +// switch (mRowsBean.getCaseStatus()) { +// case "0"://待受理 +// mTvState.setText("待受理"); +// mTvState.setTextColor(Color.parseColor("#DE0E0E")); +// mTvState.setBackgroundResource(R.drawable.shp_status_red); +// break; +// case "1": +// mTvState.setText("待立案"); +// mTvState.setTextColor(Color.parseColor("#DE0E0E")); +// mTvState.setBackgroundResource(R.drawable.shp_status_red); +// break; +// case "2": +// mTvState.setText("待下派"); +// mTvState.setTextColor(Color.parseColor("#FFAE3B")); +// mTvState.setBackgroundResource(R.drawable.shp_status_yellow); +// break; +// case "3": +// mTvState.setText("待处理"); +// mTvState.setTextColor(Color.parseColor("#DE0E0E")); +// mTvState.setBackgroundResource(R.drawable.shp_status_red); +// break; +// case "4": +// mTvState.setText("待检查"); +// mTvState.setTextColor(Color.parseColor("#1189FF")); +// mTvState.setBackgroundResource(R.drawable.shp_status_blue); +// break; +// case "5": +// mTvState.setText("待结案"); +// mTvState.setTextColor(Color.parseColor("#0EC843")); +// mTvState.setBackgroundResource(R.drawable.shp_status_green); +// break; +// case "6": +// mTvState.setText("已归档"); +// mTvState.setTextColor(Color.parseColor("#D8D8D8")); +// mTvState.setBackgroundResource(R.drawable.shp_status_gray); +// break; +// default: +// mTvState.setText("异常"); +// mTvState.setTextColor(Color.parseColor("#DE0E0E")); +// mTvState.setBackgroundResource(R.drawable.shp_status_red); +// break; +// } +// } else { +// mTvState.setText("异常"); +// mTvState.setTextColor(Color.parseColor("#DE0E0E")); +// mTvState.setBackgroundResource(R.drawable.shp_status_red); +// } +// mTvIssueAddress.setText(mRowsBean.getCasePosition()); +// String caseLongitude = mRowsBean.getCaseLongitude(); +// String caseLatitude = mRowsBean.getCaseLatitude(); +// if (!TextUtils.isEmpty(caseLatitude) && !TextUtils.isEmpty(caseLongitude)) { +// Double l = Double.parseDouble(caseLongitude); +// Double a = Double.parseDouble(caseLatitude); +// BaiduMap map = mMapView.getMap(); +// BitmapDescriptor mapIcon = BitmapDescriptorFactory.fromResource(R.drawable.ic_map_marker); +// MapStatus ms = new MapStatus.Builder().zoom(14).target(new LatLng(a, l)).build(); +// map.animateMapStatus(MapStatusUpdateFactory.newMapStatus(ms)); +// MarkerOptions markerOptions = new MarkerOptions() +// .position(new LatLng(a, l))//mark出现的位置 +// .icon(mapIcon) //mark图标 +// .draggable(false)//mark可拖拽 +// .animateType(MarkerOptions.MarkerAnimateType.none); +// map.addOverlay(markerOptions); +// mBtnReload.setOnClickListener(v -> map.animateMapStatus(MapStatusUpdateFactory.newMapStatus(ms))); +// } +// if (!TextUtils.isEmpty(mRowsBean.getCasePhotos())) { +// mRlvPhotos.setVisibility(View.VISIBLE); +// List photos = new ArrayList<>(); +// String[] split = mRowsBean.getCasePhotos().split(","); +// for (int i = 0; i < split.length; i++) { +// if (!TextUtils.isEmpty(split[i])) { +// photos.add(BaseUrlApi.BASE_IMG_URL + split[i]); +// } +// } +// BaseShowPhotoAdapter adapter = new BaseShowPhotoAdapter(mActivity, photos); +// GridLayoutManager manager = new GridLayoutManager(mActivity, 4) { +// @Override +// public boolean canScrollVertically() { +// return false; +// } +// }; +// mRlvPhotos.setLayoutManager(manager); +// mRlvPhotos.setAdapter(adapter); +// adapter.addOnItemClickListener(url -> { +// Intent intent = new Intent(IssueDetailActivity.this, PhotoActivity.class); +// intent.putExtra("imgUrls", new ArrayList<>(adapter.getData())); +// startActivity(intent); +// }); +// } else { +// mRlvPhotos.setVisibility(View.GONE); +// } +// //TODO 填充处理数据 +// if (!TextUtils.isEmpty(mCheck)) { +// mTvHandleTime.setText("处理时间:" + mRowsBean.getHandleDate()); +// mTvHandleUser.setText("处理人:" + mRowsBean.getHandleUserName()); +// mTvIssueDisDesc.setText(mRowsBean.getHandleOpinion()); +// if (TextUtils.isEmpty(mRowsBean.getHandlePhotos())) { +// mRlvDisPhoto.setVisibility(View.GONE); +// } else { +// mRlvDisPhoto.setVisibility(View.VISIBLE); +// List photos = new ArrayList<>(); +// String[] split = mRowsBean.getHandlePhotos().split(","); +// for (int i = 0; i < split.length; i++) { +// if (!TextUtils.isEmpty(split[i])) { +// photos.add(BaseUrlApi.BASE_IMG_URL + split[i]); +// } +// } +// BaseShowPhotoAdapter adapter = new BaseShowPhotoAdapter(mActivity, photos); +// GridLayoutManager manager = new GridLayoutManager(mActivity, 4) { +// @Override +// public boolean canScrollVertically() { +// return false; +// } +// }; +// mRlvDisPhoto.setLayoutManager(manager); +// mRlvDisPhoto.setAdapter(adapter); +// adapter.addOnItemClickListener(url -> { +// Intent intent = new Intent(IssueDetailActivity.this, PhotoActivity.class); +// intent.putExtra("imgUrls", new ArrayList<>(adapter.getData())); +// startActivity(intent); +// }); +// } +// } +// } +// } +// +// /** +// * 播放案件录音 +// * +// * @param caseAudio +// */ +// private void playVoice(String caseAudio) { +// AnimationDrawable animationDrawable = (AnimationDrawable) mTvVoiceAnim.getBackground(); +// animationDrawable.start(); +// MediaManager.playSound(BaseUrlApi.BASE_IMG_URL + caseAudio, +// mp -> { +// animationDrawable.selectDrawable(0);//显示动画第一帧 +// animationDrawable.stop(); +// MediaManager.destroy(); +// }); +// } +// +// /** +// * 显示选择图片 +// * +// * @param bean +// */ +// private void showSelectPhoto(AddPhotoBean bean) { +// ButtomDialogView buttomDialogView = new ButtomDialogView.DialogBuilder(mActivity) +// .setIsBackCancelable(true) +// .setIscancelable(true) +// .setShowLocation(Gravity.BOTTOM) +// .setIsShowFile(false) +// .build(); +// buttomDialogView.addOnChoseListener(new ButtomDialogView.OnChoseListener() { +// @Override +// public void choseFile() { +// } +// +// @Override +// public void choseAlbum() { +// mCurrentBean = bean; +// Intent intent = new Intent(Intent.ACTION_PICK, null); +// intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, +// "image/*"); +// startActivityForResult(intent, BaseUrlApi.PHOTO_REQUEST); +// buttomDialogView.dismiss(); +// } +// +// @Override +// public void choseShoot() { +// mCurrentBean = bean; +// mPicPath = PathConfig.CATCH_PATH + System.currentTimeMillis() + ".jpg"; +// File file = new File(mPicPath); +// Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); +// // 下面这句指定调用相机拍照后的照片存储的路径 +// Uri uri; +// if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M) { +// uri = Uri.fromFile(file); +// } else { +// uri = FileProvider.getUriForFile(mActivity, ProiderUtil.getFileProviderName(mActivity), file); +// } +// intent.putExtra(MediaStore.EXTRA_OUTPUT, uri); +// startActivityForResult(intent, BaseUrlApi.CAMERA_REQUEST); +// } +// +// @Override +// public void loginOut() { +// +// } +// +// @Override +// public void changePwd() { +// +// } +// }); +// buttomDialogView.show(); +// } +// +// @Override +// protected void onActivityResult(int requestCode, int resultCode, Intent data) { +// if (resultCode == RESULT_OK) { +// switch (requestCode) { +// case BaseUrlApi.CAMERA_REQUEST://相机 +// uploadImg(mPicPath, 1); +// break; +// case BaseUrlApi.PHOTO_REQUEST://相册 +// try { +// if (data == null) return; +// Uri uri = data.getData(); +// String[] proj = {MediaStore.Images.Media.DATA}; +// Cursor cursor = managedQuery(uri, proj, null, null, null); +// int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); +// cursor.moveToFirst(); +// String srcPath = cursor.getString(column_index); +// uploadImg(srcPath, 2); +// } catch (Exception e) { +// e.printStackTrace(); +// } +// break; +// } +// } +// super.onActivityResult(requestCode, resultCode, data); +// } +// +// /** +// * 上传文件 +// * +// * @param picPath +// */ +// private void uploadImg(String picPath, int src) { +// File file = new File(picPath); +// if (!file.exists()) { +// showToast("图片路径错误."); +// return; +// } +// ProgressDialog progressDialog = UIUtil.initDialog(mActivity, "正在上传..."); +// progressDialog.show(); +// Luban.with(mActivity) +// .load(picPath) +// .ignoreBy(100) +// .setTargetDir(PathConfig.CATCH_PATH) +// .filter(path -> !(TextUtils.isEmpty(path) || path.toLowerCase().endsWith(".gif"))) +// .setCompressListener(new OnCompressListener() { +// @Override +// public void onStart() { +// +// } +// +// @Override +// public void onSuccess(File file) { +// RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"), file); +// MultipartBody.Part body = MultipartBody.Part.createFormData("image", file.getName(), requestFile); +// RetrofitManager.getInstance() +// .create(LocationApiService.class) +// .uploadImage(body, UserLgUtils.getToken()) +// .subscribeOn(Schedulers.io()) +// .observeOn(AndroidSchedulers.mainThread()) +// .subscribe(new Observer() { +// @Override +// public void onSubscribe(Disposable d) { +// +// } +// +// @Override +// public void onNext(BaseUserBean baseUserBean) { +// if (progressDialog != null && progressDialog.isShowing()) { +// progressDialog.dismiss(); +// } +// ToastUtils.showShort("上传成功"); +// mPhotoIds += (baseUserBean.getData() + ","); +// mCurrentBean.setId(baseUserBean.getData()); +// mCurrentBean.setPath(picPath); +// if (mPhotos.size() < 4) { +// mPhotos.add(new AddPhotoBean()); +// } +// mPhotoAdapter.notifyDataSetChanged(); +// mCurrentBean = null; +// } +// +// @Override +// public void onError(Throwable e) { +// if (progressDialog != null && progressDialog.isShowing()) { +// progressDialog.dismiss(); +// } +// ToastUtils.showShort("上传失败,请稍后重试."); +// if (file.exists()) { +// file.delete(); +// } +// } +// +// @Override +// public void onComplete() { +// +// } +// }); +// } +// +// @Override +// public void onError(Throwable e) { +// if (progressDialog.isShowing()) { +// progressDialog.dismiss(); +// } +// ToastUtils.showShort("图片上传失败,请稍后重试"); +// } +// }) +// .launch(); +// } +// +// @Override +// protected void onDestroy() { +// mMapView.onDestroy(); +// if (mBind != null) { +// mBind.unbind(); +// } +// super.onDestroy(); +// } +// +//} diff --git a/app/src/main/java/com/sucstepsoft/txrealtimelocation/activitys/issue/IssueReportActivity.java b/app/src/main/java/com/sucstepsoft/txrealtimelocation/activitys/issue/IssueReportActivity.java index 189d3ab..e92c887 100755 --- a/app/src/main/java/com/sucstepsoft/txrealtimelocation/activitys/issue/IssueReportActivity.java +++ b/app/src/main/java/com/sucstepsoft/txrealtimelocation/activitys/issue/IssueReportActivity.java @@ -1,1052 +1,1052 @@ -package com.sucstepsoft.txrealtimelocation.activitys.issue; - -import android.app.ProgressDialog; -import android.content.BroadcastReceiver; -import android.content.ContentResolver; -import android.content.Context; -import android.content.Intent; -import android.content.IntentFilter; -import android.database.Cursor; -import android.graphics.Color; -import android.graphics.drawable.AnimationDrawable; -import android.net.Uri; -import android.os.Build; -import android.provider.MediaStore; -import android.support.v4.content.FileProvider; -import android.support.v7.widget.GridLayoutManager; -import android.support.v7.widget.RecyclerView; -import android.text.TextUtils; -import android.view.Gravity; -import android.view.View; -import android.widget.Button; -import android.widget.EditText; -import android.widget.LinearLayout; -import android.widget.Switch; -import android.widget.TextView; - -import com.baidu.location.BDLocation; -import com.bigkoo.pickerview.builder.OptionsPickerBuilder; -import com.bigkoo.pickerview.view.OptionsPickerView; -import com.cjt2325.cameralibrary.videorecord.AudioRecordButton; -import com.cjt2325.cameralibrary.videorecord.MediaManager; -import com.google.gson.Gson; -import com.sucstepsoft.cm_utils.constant.PathConfig; -import com.sucstepsoft.cm_utils.core.beans.AddPhotoBean; -import com.sucstepsoft.cm_utils.core.retrofit_net.BaseUrlApi; -import com.sucstepsoft.cm_utils.core.retrofit_net.RetrofitManager; -import com.sucstepsoft.cm_utils.core.widget.base.AddPhotoAdapter; -import com.sucstepsoft.cm_utils.core.widget.base.BaseActivity; -import com.sucstepsoft.cm_utils.core.widget.views.ButtomDialogView; -import com.sucstepsoft.cm_utils.utils.LogUtils; -import com.sucstepsoft.cm_utils.utils.ProiderUtil; -import com.sucstepsoft.cm_utils.utils.ToastUtils; -import com.sucstepsoft.cm_utils.utils.UIUtil; -import com.sucstepsoft.cm_utils.utils.UserLgUtils; -import com.sucstepsoft.txrealtimelocation.R; -import com.sucstepsoft.txrealtimelocation.activitys.common.PhotoActivity; -import com.sucstepsoft.txrealtimelocation.beans.AppTokenUser; -import com.sucstepsoft.txrealtimelocation.beans.AreaListBean; -import com.sucstepsoft.txrealtimelocation.beans.BaseUserBean; -import com.sucstepsoft.txrealtimelocation.beans.CommunityBean; -import com.sucstepsoft.txrealtimelocation.beans.IssueReportBody; -import com.sucstepsoft.txrealtimelocation.beans.SuccessBean; -import com.sucstepsoft.txrealtimelocation.beans.TypeListBean; -import com.sucstepsoft.txrealtimelocation.beans.UserDepartmentBean; -import com.sucstepsoft.txrealtimelocation.net.LocationApiService; -import com.sucstepsoft.txrealtimelocation.utils.ExceptionHandler; - -import java.io.File; -import java.util.ArrayList; -import java.util.List; - -import butterknife.BindView; -import butterknife.ButterKnife; -import butterknife.Unbinder; -import io.reactivex.Observer; -import io.reactivex.android.schedulers.AndroidSchedulers; -import io.reactivex.disposables.Disposable; -import io.reactivex.schedulers.Schedulers; -import okhttp3.MediaType; -import okhttp3.MultipartBody; -import okhttp3.RequestBody; -import top.zibin.luban.Luban; -import top.zibin.luban.OnCompressListener; - - -/** - * createTime: 2019-7-25 11:00:00 - *

- * 案件上报 - */ -public class IssueReportActivity extends BaseActivity { - - @BindView(R.id.tv_area_content) - TextView mTvAreaContent; - @BindView(R.id.tv_comm_content) - TextView mTvCommContent; - @BindView(R.id.tv_type_content) - TextView mTvTypeContent; - @BindView(R.id.tv_address_content) - TextView mTvAddressContent; - // @BindView(R.id.et_address) -// EditText mEtAddress; - @BindView(R.id.et_issue_desc) - EditText mEtIssueDesc; - @BindView(R.id.rlv_locale_photo) - RecyclerView mRlvLocalePhoto; - @BindView(R.id.btn_submit) - Button mBtnSubmit; - @BindView(R.id.arb_audio) - AudioRecordButton mArbVideo; - @BindView(R.id.tv_voice_anim) - TextView mTvVoiceAnim; - @BindView(R.id.ll_voice) - LinearLayout mLlVoice; - @BindView(R.id.tv_source_content) - TextView mTvSourceContent; - @BindView(R.id.tv_issue_detail_info) - TextView mTvIssueDInfo; - @BindView(R.id.tv_issue_base_info) - TextView mTvIssueBaseInfo; - @BindView(R.id.sw_is_self) - Switch mSwIsSelf; - private Unbinder mBind; - private List mPhotos = new ArrayList<>(); - private AddPhotoBean mCurrentBean; - private String mPicPath; - private AddPhotoAdapter mPhotoAdapter; - private String mVideoPath; - private String mVideoId = "";//录音ID - private String mPhotoIds = "";//相片Id - private List mAreaList; - private AreaListBean mSelectAreaBean = null; - private OptionsPickerView mAreaPicker; - private ProgressDialog mProgressDialog; - private List mCommunityList; - private CommunityBean mSelectCommBean = null; - private OptionsPickerView mCommunityPicker; - private List mTypeList; - private OptionsPickerView mTypePicker; - private TypeListBean mSelTypeBean; - private TypeListBean.SubDictsBean mSelTypeSubBean; - private BDLocation mCurrentLocation; - private IssueLocationReceiver mLo; - private List mSources = new ArrayList<>(); - private OptionsPickerView mSourcePicker; - private String mSelSource = "2"; - private boolean isSelf; - private Disposable mDictDis; - private Disposable mCommunityDis; - private Disposable mCaseTypeDis; - private String mSelAddress; - private String mSelLo; - private String mSelLa; - private UserDepartmentBean mUserDepartmentBean; - - @Override - protected int setLayoutId() { - return R.layout.activity_issue_report; - } - - @Override - public void initData() { - mBind = ButterKnife.bind(this); - refreshView(STATE_LOAD_SUCCESS); - mTvBaseTitle.setText("案件上报"); - initView(); - registerMessageReceiver(); - getUserArea(); -// getAreaList(0); - getCaseTypeList(0); - } - - private void getUserArea() { - RetrofitManager.getInstance() - .create(LocationApiService.class) - .getUserDepartment(UserLgUtils.getToken()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer>() { - @Override - public void onSubscribe(Disposable d) { - - } - - @Override - public void onNext(List userDepartmentBeans) { - if (userDepartmentBeans != null && userDepartmentBeans.size() > 0) { - mUserDepartmentBean = userDepartmentBeans.get(0); - } - getAreaList(0); - } - - @Override - public void onError(Throwable e) { - getAreaList(0); - } - - @Override - public void onComplete() { - - } - }); - } - - /** - * 初始化视图 - */ - private void initView() { - mTvSourceContent.setText("巡检采集"); - Gson mGson = new Gson(); - String loginInfo = UserLgUtils.getLoginInfo(); - if (!TextUtils.isEmpty(loginInfo)) { - AppTokenUser appTokenUser = mGson.fromJson(loginInfo, AppTokenUser.class); - if (appTokenUser.getRoles() != null && appTokenUser.getRoles().size() > 0) { - for (int i = 0; i < appTokenUser.getRoles().size(); i++) { - if (PathConfig.USER_TYPE_N.equals(appTokenUser.getRoles().get(i).getRoleId())) { - //N员 - mSelSource = "3"; - mTvSourceContent.setText("N员上报"); - break; - } - } - } else { - //片长 - mSelSource = "2"; - mTvSourceContent.setText("巡检采集"); - } - } else { - mTvSourceContent.setText("巡检采集"); - mSelSource = "2"; - } - -// mTvIssueBaseInfo.setText(Html.fromHtml(getResources().getString(R.string.tip_issue_base))); -// mTvIssueDInfo.setText(Html.fromHtml(getResources().getString(R.string.tip_issue_detail))); -// mTvTypeTitle.setText(Html.fromHtml(getResources().getString(R.string.tip_issue_type))); -// mTvAddressTitle.setText(Html.fromHtml(getResources().getString(R.string.tip_issue_address))); -// mTvSourceTitle.setText(Html.fromHtml(getResources().getString(R.string.tip_issue_source))); -// mTvLocalePhotoTitle.setText(Html.fromHtml(getResources().getString(R.string.tip_issue_photo))); -// mTvDescTitle.setText(Html.fromHtml(getResources().getString(R.string.tip_issue_desc))); - mPhotos.add(new AddPhotoBean()); - mPhotoAdapter = new AddPhotoAdapter(IssueReportActivity.this, mPhotos); - mRlvLocalePhoto.setLayoutManager(new GridLayoutManager(mActivity, 4)); - mRlvLocalePhoto.setAdapter(mPhotoAdapter); - //删除上传的相片 - mPhotoAdapter.addOnDeleteListener(((bean, i) -> { - mPhotoAdapter.removeItem(bean); - mPhotoIds = mPhotoIds.replace(bean.getId() + ",", ""); - })); - mPhotoAdapter.addOnItemClickListener(bean -> { - if (TextUtils.isEmpty(bean.getPath())) { - //空数据 - showSelectPhoto(bean); - } else { - //预览 - ArrayList list = new ArrayList<>(); - list.add(bean.getPath()); - Intent intent = new Intent(); - intent.putExtra(PhotoActivity.TAG_IMGURL, list); - intent.setClass(IssueReportActivity.this, PhotoActivity.class); - startActivity(intent); - } - }); - mArbVideo.setHasRecordPromission(true); - mArbVideo.setAudioFinishRecorderListener((seconds, filePath) -> { - uploadVoice(filePath); - }); - mLlVoice.setOnClickListener(v -> { - if (!TextUtils.isEmpty(mVideoPath)) { - AnimationDrawable animationDrawable = (AnimationDrawable) mTvVoiceAnim.getBackground(); - animationDrawable.start(); - MediaManager.playSound(mVideoPath, - mp -> { - animationDrawable.selectDrawable(0);//显示动画第一帧 - animationDrawable.stop(); - MediaManager.destroy(); - }); - } else { - LogUtils.e("" + mVideoPath); - } - }); - mSwIsSelf.setOnCheckedChangeListener((buttonView, isChecked) -> { - isSelf = isChecked; - if (isSelf) { - if ("3".equals(mSelSource)) { - mTvSourceContent.setText("N员上报(自处理)"); - } - } else { - if ("3".equals(mSelSource)) { - mTvSourceContent.setText("N员上报"); - } - } - }); -// mSources.add("群众举报"); -// mSources.add("巡检采集"); -// mSources.add("N员上报"); -// mSources.add("N员上报(自处理)"); -// mTvSourceContent.setText(mSources.get(0)); -// mTvSourceContent.setOnClickListener(v -> showSourcePicker()); - mTvAreaContent.setOnClickListener(v -> onShowAreaPicker()); - mTvCommContent.setOnClickListener(v -> onShowCommunityPicker()); - mTvTypeContent.setOnClickListener(v -> onShowTypePicker()); - mBtnSubmit.setOnClickListener(v -> doSubmit()); - mTvAddressContent.setOnClickListener(v -> { - Intent intent = new Intent(mActivity, TakePointActivity.class); - startActivityForResult(intent, 1234); - }); - setEditTextInhibitInputSpeChat(mEtIssueDesc); - } - - private void showSourcePicker() { - hideSoftKeyboard(); - if (mSourcePicker == null) { - mSourcePicker = new OptionsPickerBuilder(IssueReportActivity.this, (options1, options2, options3, v) -> { - switch (mSources.get(options1)) { -// case "群众举报": -// mSelSource = "1"; +//package com.sucstepsoft.txrealtimelocation.activitys.issue; +// +//import android.app.ProgressDialog; +//import android.content.BroadcastReceiver; +//import android.content.ContentResolver; +//import android.content.Context; +//import android.content.Intent; +//import android.content.IntentFilter; +//import android.database.Cursor; +//import android.graphics.Color; +//import android.graphics.drawable.AnimationDrawable; +//import android.net.Uri; +//import android.os.Build; +//import android.provider.MediaStore; +//import android.support.v4.content.FileProvider; +//import android.support.v7.widget.GridLayoutManager; +//import android.support.v7.widget.RecyclerView; +//import android.text.TextUtils; +//import android.view.Gravity; +//import android.view.View; +//import android.widget.Button; +//import android.widget.EditText; +//import android.widget.LinearLayout; +//import android.widget.Switch; +//import android.widget.TextView; +// +//import com.baidu.location.BDLocation; +//import com.bigkoo.pickerview.builder.OptionsPickerBuilder; +//import com.bigkoo.pickerview.view.OptionsPickerView; +//import com.cjt2325.cameralibrary.videorecord.AudioRecordButton; +//import com.cjt2325.cameralibrary.videorecord.MediaManager; +//import com.google.gson.Gson; +//import com.sucstepsoft.cm_utils.constant.PathConfig; +//import com.sucstepsoft.cm_utils.core.beans.AddPhotoBean; +//import com.sucstepsoft.cm_utils.core.retrofit_net.BaseUrlApi; +//import com.sucstepsoft.cm_utils.core.retrofit_net.RetrofitManager; +//import com.sucstepsoft.cm_utils.core.widget.base.AddPhotoAdapter; +//import com.sucstepsoft.cm_utils.core.widget.base.BaseActivity; +//import com.sucstepsoft.cm_utils.core.widget.views.ButtomDialogView; +//import com.sucstepsoft.cm_utils.utils.LogUtils; +//import com.sucstepsoft.cm_utils.utils.ProiderUtil; +//import com.sucstepsoft.cm_utils.utils.ToastUtils; +//import com.sucstepsoft.cm_utils.utils.UIUtil; +//import com.sucstepsoft.cm_utils.utils.UserLgUtils; +//import com.sucstepsoft.txrealtimelocation.R; +//import com.sucstepsoft.txrealtimelocation.activitys.common.PhotoActivity; +//import com.sucstepsoft.txrealtimelocation.beans.AppTokenUser; +//import com.sucstepsoft.txrealtimelocation.beans.AreaListBean; +//import com.sucstepsoft.txrealtimelocation.beans.BaseUserBean; +//import com.sucstepsoft.txrealtimelocation.beans.CommunityBean; +//import com.sucstepsoft.txrealtimelocation.beans.IssueReportBody; +//import com.sucstepsoft.txrealtimelocation.beans.SuccessBean; +//import com.sucstepsoft.txrealtimelocation.beans.TypeListBean; +//import com.sucstepsoft.txrealtimelocation.beans.UserDepartmentBean; +//import com.sucstepsoft.txrealtimelocation.net.LocationApiService; +//import com.sucstepsoft.txrealtimelocation.utils.ExceptionHandler; +// +//import java.io.File; +//import java.util.ArrayList; +//import java.util.List; +// +//import butterknife.BindView; +//import butterknife.ButterKnife; +//import butterknife.Unbinder; +//import io.reactivex.Observer; +//import io.reactivex.android.schedulers.AndroidSchedulers; +//import io.reactivex.disposables.Disposable; +//import io.reactivex.schedulers.Schedulers; +//import okhttp3.MediaType; +//import okhttp3.MultipartBody; +//import okhttp3.RequestBody; +//import top.zibin.luban.Luban; +//import top.zibin.luban.OnCompressListener; +// +// +///** +// * createTime: 2019-7-25 11:00:00 +// *

+// * 案件上报 +// */ +//public class IssueReportActivity extends BaseActivity { +// +// @BindView(R.id.tv_area_content) +// TextView mTvAreaContent; +// @BindView(R.id.tv_comm_content) +// TextView mTvCommContent; +// @BindView(R.id.tv_type_content) +// TextView mTvTypeContent; +// @BindView(R.id.tv_address_content) +// TextView mTvAddressContent; +// // @BindView(R.id.et_address) +//// EditText mEtAddress; +// @BindView(R.id.et_issue_desc) +// EditText mEtIssueDesc; +// @BindView(R.id.rlv_locale_photo) +// RecyclerView mRlvLocalePhoto; +// @BindView(R.id.btn_submit) +// Button mBtnSubmit; +// @BindView(R.id.arb_audio) +// AudioRecordButton mArbVideo; +// @BindView(R.id.tv_voice_anim) +// TextView mTvVoiceAnim; +// @BindView(R.id.ll_voice) +// LinearLayout mLlVoice; +// @BindView(R.id.tv_source_content) +// TextView mTvSourceContent; +// @BindView(R.id.tv_issue_detail_info) +// TextView mTvIssueDInfo; +// @BindView(R.id.tv_issue_base_info) +// TextView mTvIssueBaseInfo; +// @BindView(R.id.sw_is_self) +// Switch mSwIsSelf; +// private Unbinder mBind; +// private List mPhotos = new ArrayList<>(); +// private AddPhotoBean mCurrentBean; +// private String mPicPath; +// private AddPhotoAdapter mPhotoAdapter; +// private String mVideoPath; +// private String mVideoId = "";//录音ID +// private String mPhotoIds = "";//相片Id +// private List mAreaList; +// private AreaListBean mSelectAreaBean = null; +// private OptionsPickerView mAreaPicker; +// private ProgressDialog mProgressDialog; +// private List mCommunityList; +// private CommunityBean mSelectCommBean = null; +// private OptionsPickerView mCommunityPicker; +// private List mTypeList; +// private OptionsPickerView mTypePicker; +// private TypeListBean mSelTypeBean; +// private TypeListBean.SubDictsBean mSelTypeSubBean; +// private BDLocation mCurrentLocation; +// private IssueLocationReceiver mLo; +// private List mSources = new ArrayList<>(); +// private OptionsPickerView mSourcePicker; +// private String mSelSource = "2"; +// private boolean isSelf; +// private Disposable mDictDis; +// private Disposable mCommunityDis; +// private Disposable mCaseTypeDis; +// private String mSelAddress; +// private String mSelLo; +// private String mSelLa; +// private UserDepartmentBean mUserDepartmentBean; +// +// @Override +// protected int setLayoutId() { +// return R.layout.activity_issue_report; +// } +// +// @Override +// public void initData() { +// mBind = ButterKnife.bind(this); +// refreshView(STATE_LOAD_SUCCESS); +// mTvBaseTitle.setText("案件上报"); +// initView(); +// registerMessageReceiver(); +// getUserArea(); +//// getAreaList(0); +// getCaseTypeList(0); +// } +// +// private void getUserArea() { +// RetrofitManager.getInstance() +// .create(LocationApiService.class) +// .getUserDepartment(UserLgUtils.getToken()) +// .subscribeOn(Schedulers.io()) +// .observeOn(AndroidSchedulers.mainThread()) +// .subscribe(new Observer>() { +// @Override +// public void onSubscribe(Disposable d) { +// +// } +// +// @Override +// public void onNext(List userDepartmentBeans) { +// if (userDepartmentBeans != null && userDepartmentBeans.size() > 0) { +// mUserDepartmentBean = userDepartmentBeans.get(0); +// } +// getAreaList(0); +// } +// +// @Override +// public void onError(Throwable e) { +// getAreaList(0); +// } +// +// @Override +// public void onComplete() { +// +// } +// }); +// } +// +// /** +// * 初始化视图 +// */ +// private void initView() { +// mTvSourceContent.setText("巡检采集"); +// Gson mGson = new Gson(); +// String loginInfo = UserLgUtils.getLoginInfo(); +// if (!TextUtils.isEmpty(loginInfo)) { +// AppTokenUser appTokenUser = mGson.fromJson(loginInfo, AppTokenUser.class); +// if (appTokenUser.getRoles() != null && appTokenUser.getRoles().size() > 0) { +// for (int i = 0; i < appTokenUser.getRoles().size(); i++) { +// if (PathConfig.USER_TYPE_N.equals(appTokenUser.getRoles().get(i).getRoleId())) { +// //N员 +// mSelSource = "3"; +// mTvSourceContent.setText("N员上报"); // break; - case "巡检采集": - mSelSource = "2"; - break; - case "N员上报": - mSelSource = "3"; - break; - case "N员上报(自处理)": - mSelSource = "4"; - break; - } - mTvSourceContent.setText(mSources.get(options1)); - }) - .setTitleText("请选择来源") - .setCancelColor(Color.parseColor("#1189FF")) - .setSubmitColor(Color.parseColor("#1189FF")) - .setTitleColor(Color.parseColor("#1189FF")) - .build(); - mSourcePicker.setPicker(mSources); - } - mSourcePicker.show(); - } - - private void doSubmit() { - IssueReportBody body = checkParams(); - if (body != null) { - Gson gson = new Gson(); - String obj = gson.toJson(body); - RequestBody requestBody = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), obj); - ProgressDialog progressDialog = UIUtil.initDialog(IssueReportActivity.this, "案件上报中..."); - progressDialog.show(); - RetrofitManager.getInstance() - .create(LocationApiService.class) - .doReportIssue(requestBody, UserLgUtils.getToken()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { - - } - - @Override - public void onNext(SuccessBean s) { - progressDialog.dismiss(); - ToastUtils.showShort("上报成功"); - finish(); - } - - @Override - public void onError(Throwable e) { - progressDialog.dismiss(); - ExceptionHandler.handleException(e); - } - - @Override - public void onComplete() { - - } - }); - - } - } - - /** - * 校验保存的参数 - * - * @return - */ - private IssueReportBody checkParams() { - if (mSelectAreaBean == null) { - ToastUtils.showShort("请选择所属区域"); - return null; - } - if (mSelectCommBean == null) { - ToastUtils.showShort("请选择所属社区"); - return null; - } - if (mSelTypeSubBean == null) { - ToastUtils.showShort("请选择案件类别"); - return null; - } - String address = mTvAddressContent.getText().toString().trim(); - if (TextUtils.isEmpty(address)) { - ToastUtils.showShort("请输入案件地址"); - return null; - } - String desc = mEtIssueDesc.getText().toString().trim(); - if (TextUtils.isEmpty(desc)) { - ToastUtils.showShort("请输入案件描述"); - return null; - } - if (mPhotoAdapter.getData() == null || mPhotoAdapter.getData().size() <= 1) { - ToastUtils.showShort("请上传现场照片"); - return null; - } - IssueReportBody body = new IssueReportBody(); - body.setAreaId(mSelectAreaBean.getDictId()); - body.setAreaName(mSelectAreaBean.getDictName()); - body.setCommunityId(mSelectCommBean.getCommunityId()); - body.setCommunityName(mSelectCommBean.getCommunityName()); - body.setCaseTypeId(mSelTypeSubBean.getDictId()); - body.setCaseTypeName(mSelTypeSubBean.getDictName()); - body.setCasePosition(mSelAddress); - body.setCaseLatitude(mSelLa); - body.setCaseLongitude(mSelLo); - if (isSelf) { - body.setIsSelf("1"); - if ("2".equals(mSelSource)) { - //N员上报自处理 - mSelSource = "4"; - } - } else { - body.setIsSelf("0"); - } - body.setCaseContent(desc); - String ids = ""; - for (int i = 0; i < mPhotoAdapter.getData().size(); i++) { - if (!TextUtils.isEmpty(mPhotoAdapter.getData().get(i).getId())) { - ids += mPhotoAdapter.getData().get(i).getId() + ","; - } - } - body.setCasePhotos(ids); - if (!TextUtils.isEmpty(mVideoId)) { - body.setCaseAudio(mVideoId); - } -// 上报来源 - if (!TextUtils.isEmpty(mSelSource)) { - body.setCaseSource(mSelSource); - } - LogUtils.e(body.toString()); - return body; - } - - - public void registerMessageReceiver() { - mTvAddressContent.setHint("获取案件地址中..."); - mLo = new IssueLocationReceiver(); - IntentFilter filter = new IntentFilter(); - filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY); - filter.addAction(PathConfig.ACTION_LOCATION_MESSAGE); - registerReceiver(mLo, filter); - } - - - public class IssueLocationReceiver extends BroadcastReceiver { - @Override - public void onReceive(Context context, Intent intent) { - if (PathConfig.ACTION_LOCATION_MESSAGE.equals(intent.getAction())) { - BDLocation location = intent.getParcelableExtra("data"); - if (location != null && location.getLatitude() != Double.MIN_VALUE && location.getLongitude() != Double.MIN_VALUE) { - if (location.getRadius() <= 65) { - if (mCurrentLocation == null) { - if (TextUtils.isEmpty(mSelAddress)) { - mCurrentLocation = location; - mSelLa = mCurrentLocation.getLatitude() + ""; - mSelLo = mCurrentLocation.getLongitude() + ""; - if (mCurrentLocation.getAddress() != null && !TextUtils.isEmpty(mCurrentLocation.getAddress().address)) { - mSelAddress = mCurrentLocation.getAddrStr(); - mTvAddressContent.setText(mCurrentLocation.getAddress().address); - } - } - } - } - } - } - } - } - - /** - * 上传录音 - * - * @param filePath - */ - private void uploadVoice(String filePath) { - ProgressDialog progressDialog = UIUtil.initDialog(IssueReportActivity.this, "录音上传中..."); - progressDialog.show(); - File file = new File(filePath); - if (file.exists()) { - RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"), file); - MultipartBody.Part body = MultipartBody.Part.createFormData("audio", file.getName(), requestFile); - RetrofitManager.getInstance() - .create(LocationApiService.class) - .uploadVideo(body, UserLgUtils.getToken()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { - - } - - @Override - public void onNext(BaseUserBean baseUserBean) { - if (progressDialog != null && progressDialog.isShowing()) { - progressDialog.dismiss(); - } - ToastUtils.showShort("上传成功"); - mVideoPath = filePath; - mVideoId = baseUserBean.getData(); - mTvVoiceAnim.setVisibility(View.VISIBLE); - } - - @Override - public void onError(Throwable e) { - if (progressDialog != null && progressDialog.isShowing()) { - progressDialog.dismiss(); - } - ToastUtils.showShort("上传失败,请稍后重试."); - if (file.exists()) { - file.delete(); - } - } - - @Override - public void onComplete() { - - } - }); - } else { - progressDialog.dismiss(); - ToastUtils.showShort("录音文件路径有误."); - } - } - - /** - * 显示案件类别 - */ - private void onShowTypePicker() { - hideSoftKeyboard(); - if (mTypeList != null && mTypeList.size() > 0) { - if (mTypePicker == null) { - mTypePicker = new OptionsPickerBuilder(IssueReportActivity.this, (options1, options2, options3, v) -> { - TypeListBean typeListBean = mTypeList.get(options1); - if (typeListBean.getSubDicts() != null && typeListBean.getSubDicts().size() > 0) { - mSelTypeBean = mTypeList.get(options1); - mSelTypeSubBean = mTypeList.get(options1).getSubDicts().get(options2); - mTvTypeContent.setText(mTypeList.get(options1).getDictName() + " - " + mTypeList.get(options1).getSubDicts().get(options2).getDictName()); - } else { - ToastUtils.showShort("请选择案件类型"); - } - }).setTitleText("请选择类型") - .setCancelColor(Color.parseColor("#1189FF")) - .setSubmitColor(Color.parseColor("#1189FF")) - .setTitleColor(Color.parseColor("#1189FF")) - .build(); - mTypePicker.setPicker(mTypeList, mTypeSubBenas); - } - mTypePicker.show(); - } else { - getCaseTypeList(1); - } - } - - /** - * 获取案件类别 - */ - private void getCaseTypeList(int i) { - RetrofitManager.getInstance() - .create(LocationApiService.class) - .getDictListAll("46d108b2-4ef9-4f6f-b30c-0c700e3ee852", UserLgUtils.getToken()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer>() { - @Override - public void onSubscribe(Disposable d) { - mCaseTypeDis = d; - } - - @Override - public void onNext(List areaListBeans) { - if (null != areaListBeans && areaListBeans.size() > 0) { - mTypeList = areaListBeans; - if (mTypeList.get(0).getSubDicts() != null && mTypeList.get(0).getSubDicts().size() > 0) { - mSelTypeBean = mTypeList.get(0); - mSelTypeSubBean = mTypeList.get(0).getSubDicts().get(0); - mTvTypeContent.setText(mSelTypeBean.getDictName() + " - " + mSelTypeSubBean.getDictName()); - } - buildTypelistDatas(areaListBeans, i); - } else { - ToastUtils.showShort("暂无类别数据"); - } - } - - @Override - public void onError(Throwable e) { - LogUtils.e(e); - } - - @Override - public void onComplete() { - - } - }); - } - - private List> mTypeSubBenas = new ArrayList<>(); - - private void buildTypelistDatas(List areaListBeans, int type) { - for (int i = 0; i < areaListBeans.size(); i++) { - if (areaListBeans.get(i).getSubDicts() != null && areaListBeans.get(i).getSubDicts().size() > 0) { - mTypeSubBenas.add(areaListBeans.get(i).getSubDicts()); - } else { - mTypeSubBenas.add(new ArrayList<>()); - } - } - if (type == 1) { - onShowTypePicker(); - } - } - - /** - * 获取区域列表 - */ - private void getAreaList(int i) { - mProgressDialog = null; - if (i == 1) { - mProgressDialog = new ProgressDialog(IssueReportActivity.this); - mProgressDialog.setMessage("加载中..."); - mProgressDialog.setCancelable(false); - mProgressDialog.setCanceledOnTouchOutside(false); - mProgressDialog.show(); - } - - RetrofitManager.getInstance() - .create(LocationApiService.class) - .getDictList("9d179f05-3ea0-48f7-853c-d3b7124b791c", UserLgUtils.getToken()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer>() { - @Override - public void onSubscribe(Disposable d) { - mDictDis = d; - } - - @Override - public void onNext(List areaListBeans) { - if (mProgressDialog != null && mProgressDialog.isShowing()) { - mProgressDialog.dismiss(); - } - if (null != areaListBeans && areaListBeans.size() > 0) { - mAreaList = areaListBeans; - if (i == 0) { - if (mUserDepartmentBean != null) { - for (int j = 0; j < areaListBeans.size(); j++) { - if (areaListBeans.get(j).getDictId().equals(mUserDepartmentBean.getAreaId())) { - mTvAreaContent.setText(mAreaList.get(j).getDictName()); - mSelectAreaBean = mAreaList.get(j); - break; - } else { - mTvAreaContent.setText(mAreaList.get(0).getDictName()); - mSelectAreaBean = mAreaList.get(0); - } - } - } else { - mTvAreaContent.setText(mAreaList.get(0).getDictName()); - mSelectAreaBean = mAreaList.get(0); - } - getCommunityList(mSelectAreaBean.getDictId(), 0); - } else { - mTvAreaContent.setText(mAreaList.get(0).getDictName()); - mSelectAreaBean = mAreaList.get(0); - getCommunityList(mAreaList.get(0).getDictId(), 0); - } - if (i == 1) { - onShowAreaPicker(); - } - } else { - - ToastUtils.showShort("暂无区域数据"); - } - } - - @Override - public void onError(Throwable e) { - if (mProgressDialog != null && mProgressDialog.isShowing()) { - mProgressDialog.dismiss(); - } - ToastUtils.showShort("获取区域失败"); - } - - @Override - public void onComplete() { - - } - }); - } - - /** - * 显示区域选择 - */ - private void onShowAreaPicker() { - hideSoftKeyboard(); - if (null == mAreaList || mAreaList.size() <= 0) { - getAreaList(1); - } else { - mAreaPicker = new OptionsPickerBuilder(IssueReportActivity.this, (options1, options2, options3, v) -> { - mTvAreaContent.setText(mAreaList.get(options1).getDictName()); - mSelectAreaBean = mAreaList.get(options1); - getCommunityList(mSelectAreaBean.getDictId(), 1); - }) - .setTitleText("请选择区域") - .setCancelColor(Color.parseColor("#1189FF")) - .setSubmitColor(Color.parseColor("#1189FF")) - .setTitleColor(Color.parseColor("#1189FF")) - .build(); - mAreaPicker.setPicker(mAreaList); - mAreaPicker.show(); - } - } - - /** - * 获取社区连表 - */ - private void getCommunityList(String areaId, int i) { - if (i == 1) { - mProgressDialog = new ProgressDialog(IssueReportActivity.this); - mProgressDialog.setMessage("获取社区中..."); - mProgressDialog.setCanceledOnTouchOutside(false); - mProgressDialog.setCancelable(false); - mProgressDialog.show(); - } - RetrofitManager.getInstance() - .create(LocationApiService.class) - .getCommunityList(areaId, UserLgUtils.getToken()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer>() { - @Override - public void onSubscribe(Disposable d) { - mCommunityDis = d; - } - - @Override - public void onNext(List communityBeans) { - if (null != mProgressDialog && mProgressDialog.isShowing()) { - mProgressDialog.dismiss(); - } - if (null != communityBeans && communityBeans.size() > 0) { - if (i == 0) { - //第一次 - if (mUserDepartmentBean != null && !TextUtils.isEmpty(mUserDepartmentBean.getCommunityIds())) { - for (int j = 0; j < communityBeans.size(); j++) { - if (mUserDepartmentBean.getCommunityIds().contains(communityBeans.get(j).getCommunityId())) { - LogUtils.e("=社区匹配到了="); - mCommunityList = communityBeans; - mTvCommContent.setText(communityBeans.get(j).getCommunityName()); - mSelectCommBean = mCommunityList.get(j); - break; - } else { - mCommunityList = communityBeans; - mTvCommContent.setText(communityBeans.get(0).getCommunityName()); - mSelectCommBean = mCommunityList.get(0); - } - } - } else { - mCommunityList = communityBeans; - mTvCommContent.setText(communityBeans.get(0).getCommunityName()); - mSelectCommBean = mCommunityList.get(0); - if (mCommunityPicker != null) { - mCommunityPicker.setPicker(mCommunityList); - } - } - } else { - mCommunityList = communityBeans; - mTvCommContent.setText(communityBeans.get(0).getCommunityName()); - mSelectCommBean = mCommunityList.get(0); - if (mCommunityPicker != null) { - mCommunityPicker.setPicker(mCommunityList); - } - } - } else { - mTvCommContent.setText(""); - mTvCommContent.setHint("请选择社区"); - mSelectCommBean = null; - mCommunityList = null; - ToastUtils.showShort("当前区域暂无社区"); - } - } - - @Override - public void onError(Throwable e) { - if (null != mProgressDialog && mProgressDialog.isShowing()) { - mProgressDialog.dismiss(); - } - } - - @Override - public void onComplete() { - - } - }); - } - - private void onShowCommunityPicker() { - hideSoftKeyboard(); - if (null == mCommunityList || mCommunityList.size() <= 0) { - ToastUtils.showShort("所选区域暂无社区"); - } else { - if (mCommunityPicker == null) { - mCommunityPicker = new OptionsPickerBuilder(IssueReportActivity.this, (options1, options2, options3, v) -> { - mTvCommContent.setText(mCommunityList.get(options1).getCommunityName()); - mSelectCommBean = mCommunityList.get(options1); - }) - .setTitleText("请选择社区") - .setCancelColor(Color.parseColor("#1189FF")) - .setSubmitColor(Color.parseColor("#1189FF")) - .setTitleColor(Color.parseColor("#1189FF")) - .build(); - mCommunityPicker.setPicker(mCommunityList); - } - mCommunityPicker.show(); - } - } - - /** - * 显示选择图片 - * - * @param bean - */ - private void showSelectPhoto(AddPhotoBean bean) { - hideSoftKeyboard(); - ButtomDialogView buttomDialogView = new ButtomDialogView.DialogBuilder(mActivity) - .setIsBackCancelable(true) - .setIscancelable(true) - .setShowLocation(Gravity.BOTTOM) - .setIsShowFile(false) - .build(); - buttomDialogView.addOnChoseListener(new ButtomDialogView.OnChoseListener() { - @Override - public void choseFile() { - } - - @Override - public void choseAlbum() { - mCurrentBean = bean; - Intent intent = new Intent(Intent.ACTION_PICK, null); - intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, - "image/*"); - startActivityForResult(intent, BaseUrlApi.PHOTO_REQUEST); - buttomDialogView.dismiss(); - } - - @Override - public void choseShoot() { - mCurrentBean = bean; - mPicPath = PathConfig.CATCH_PATH + System.currentTimeMillis() + ".jpg"; - File file = new File(mPicPath); - Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); - // 下面这句指定调用相机拍照后的照片存储的路径 - Uri uri; - if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M) { - uri = Uri.fromFile(file); - } else { - uri = FileProvider.getUriForFile(mActivity, ProiderUtil.getFileProviderName(mActivity), file); - } - intent.putExtra(MediaStore.EXTRA_OUTPUT, uri); - startActivityForResult(intent, BaseUrlApi.CAMERA_REQUEST); - } - - @Override - public void loginOut() { - - } - - @Override - public void changePwd() { - - } - }); - buttomDialogView.show(); - } - - @Override - protected void onActivityResult(int requestCode, int resultCode, Intent data) { - if (resultCode == RESULT_OK) { - switch (requestCode) { - case BaseUrlApi.CAMERA_REQUEST://相机 - uploadImg(mPicPath, 1); - break; - case BaseUrlApi.PHOTO_REQUEST://相册 - try { - if (data == null) return; - Uri uri = data.getData(); - String[] proj = {MediaStore.Images.Media.DATA}; - Cursor cursor = managedQuery(uri, proj, null, null, null); - int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); - cursor.moveToFirst(); - String srcPath = cursor.getString(column_index); - uploadImg(srcPath, 2); - } catch (Exception e) { - e.printStackTrace(); - } - break; - case 1234: - String lo = data.getStringExtra("lo"); - String la = data.getStringExtra("la"); - String address = data.getStringExtra("address"); - mSelAddress = address; - mSelLa = la; - mSelLo = lo; - mTvAddressContent.setText(address); - break; - } - } - super.onActivityResult(requestCode, resultCode, data); - } - - public Uri geturi(android.content.Intent intent) { - Uri uri = intent.getData(); - String type = intent.getType(); - if (uri.getScheme().equals("file") && (type.contains("image/*"))) { - String path = uri.getEncodedPath(); - if (path != null) { - path = Uri.decode(path); - ContentResolver cr = mActivity.getContentResolver(); - StringBuffer buff = new StringBuffer(); - buff.append("(").append(MediaStore.Images.ImageColumns.DATA).append("=") - .append("'" + path + "'").append(")"); - Cursor cur = cr.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, - new String[]{MediaStore.Images.ImageColumns._ID}, - buff.toString(), null, null); - int index = 0; - for (cur.moveToFirst(); !cur.isAfterLast(); cur.moveToNext()) { - index = cur.getColumnIndex(MediaStore.Images.ImageColumns._ID); - index = cur.getInt(index); - } - if (index == 0) { - ToastUtils.showShort("图片路径有误,请重新选择"); - } else { - Uri uri_temp = Uri.parse("content://media/external/images/media/" + index); - if (uri_temp != null) { - uri = uri_temp; - } - } - } - } - return uri; - } - - /** - * 上传文件 - * - * @param picPath - */ - private void uploadImg(String picPath, int src) { - File file = new File(picPath); - if (!file.exists()) { - showToast("图片路径错误."); - return; - } - ProgressDialog progressDialog = UIUtil.initDialog(mActivity, "正在上传..."); - progressDialog.show(); - Luban.with(mActivity) - .load(picPath) - .ignoreBy(100) - .setTargetDir(PathConfig.CATCH_PATH) - .filter(path -> !(TextUtils.isEmpty(path) || path.toLowerCase().endsWith(".gif"))) - .setCompressListener(new OnCompressListener() { - @Override - public void onStart() { - - } - - @Override - public void onSuccess(File file) { - RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"), file); - MultipartBody.Part body = MultipartBody.Part.createFormData("image", file.getName(), requestFile); - RetrofitManager.getInstance() - .create(LocationApiService.class) - .uploadImage(body, UserLgUtils.getToken()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { - - } - - @Override - public void onNext(BaseUserBean baseUserBean) { - if (progressDialog != null && progressDialog.isShowing()) { - progressDialog.dismiss(); - } - ToastUtils.showShort("上传成功"); - mPhotoIds += (baseUserBean.getData() + ","); - mCurrentBean.setId(baseUserBean.getData()); - mCurrentBean.setPath(picPath); - if (mPhotos.size() < 4) { - mPhotos.add(new AddPhotoBean()); - } - mPhotoAdapter.notifyDataSetChanged(); - mCurrentBean = null; - } - - @Override - public void onError(Throwable e) { - if (progressDialog != null && progressDialog.isShowing()) { - progressDialog.dismiss(); - } - ToastUtils.showShort("上传失败,请稍后重试."); - if (file.exists()) { - file.delete(); - } - } - - @Override - public void onComplete() { - - } - }); - } - - @Override - public void onError(Throwable e) { - if (progressDialog.isShowing()) { - progressDialog.dismiss(); - } - ToastUtils.showShort("图片上传失败,请稍后重试"); - } - }) - .launch(); - } - - @Override - protected void onDestroy() { - mArbVideo.onDestroy(); - if (mCommunityDis != null && !mCommunityDis.isDisposed()) { - mCommunityDis.dispose(); - } - if (mCaseTypeDis != null && !mCaseTypeDis.isDisposed()) { - mCaseTypeDis.dispose(); - } - if (mDictDis != null && !mDictDis.isDisposed()) { - mDictDis.dispose(); - } - if (mLo != null) { - unregisterReceiver(mLo); - } - if (mBind != null) { - mBind.unbind(); - } - super.onDestroy(); - } - -} +// } +// } +// } else { +// //片长 +// mSelSource = "2"; +// mTvSourceContent.setText("巡检采集"); +// } +// } else { +// mTvSourceContent.setText("巡检采集"); +// mSelSource = "2"; +// } +// +//// mTvIssueBaseInfo.setText(Html.fromHtml(getResources().getString(R.string.tip_issue_base))); +//// mTvIssueDInfo.setText(Html.fromHtml(getResources().getString(R.string.tip_issue_detail))); +//// mTvTypeTitle.setText(Html.fromHtml(getResources().getString(R.string.tip_issue_type))); +//// mTvAddressTitle.setText(Html.fromHtml(getResources().getString(R.string.tip_issue_address))); +//// mTvSourceTitle.setText(Html.fromHtml(getResources().getString(R.string.tip_issue_source))); +//// mTvLocalePhotoTitle.setText(Html.fromHtml(getResources().getString(R.string.tip_issue_photo))); +//// mTvDescTitle.setText(Html.fromHtml(getResources().getString(R.string.tip_issue_desc))); +// mPhotos.add(new AddPhotoBean()); +// mPhotoAdapter = new AddPhotoAdapter(IssueReportActivity.this, mPhotos); +// mRlvLocalePhoto.setLayoutManager(new GridLayoutManager(mActivity, 4)); +// mRlvLocalePhoto.setAdapter(mPhotoAdapter); +// //删除上传的相片 +// mPhotoAdapter.addOnDeleteListener(((bean, i) -> { +// mPhotoAdapter.removeItem(bean); +// mPhotoIds = mPhotoIds.replace(bean.getId() + ",", ""); +// })); +// mPhotoAdapter.addOnItemClickListener(bean -> { +// if (TextUtils.isEmpty(bean.getPath())) { +// //空数据 +// showSelectPhoto(bean); +// } else { +// //预览 +// ArrayList list = new ArrayList<>(); +// list.add(bean.getPath()); +// Intent intent = new Intent(); +// intent.putExtra(PhotoActivity.TAG_IMGURL, list); +// intent.setClass(IssueReportActivity.this, PhotoActivity.class); +// startActivity(intent); +// } +// }); +// mArbVideo.setHasRecordPromission(true); +// mArbVideo.setAudioFinishRecorderListener((seconds, filePath) -> { +// uploadVoice(filePath); +// }); +// mLlVoice.setOnClickListener(v -> { +// if (!TextUtils.isEmpty(mVideoPath)) { +// AnimationDrawable animationDrawable = (AnimationDrawable) mTvVoiceAnim.getBackground(); +// animationDrawable.start(); +// MediaManager.playSound(mVideoPath, +// mp -> { +// animationDrawable.selectDrawable(0);//显示动画第一帧 +// animationDrawable.stop(); +// MediaManager.destroy(); +// }); +// } else { +// LogUtils.e("" + mVideoPath); +// } +// }); +// mSwIsSelf.setOnCheckedChangeListener((buttonView, isChecked) -> { +// isSelf = isChecked; +// if (isSelf) { +// if ("3".equals(mSelSource)) { +// mTvSourceContent.setText("N员上报(自处理)"); +// } +// } else { +// if ("3".equals(mSelSource)) { +// mTvSourceContent.setText("N员上报"); +// } +// } +// }); +//// mSources.add("群众举报"); +//// mSources.add("巡检采集"); +//// mSources.add("N员上报"); +//// mSources.add("N员上报(自处理)"); +//// mTvSourceContent.setText(mSources.get(0)); +//// mTvSourceContent.setOnClickListener(v -> showSourcePicker()); +// mTvAreaContent.setOnClickListener(v -> onShowAreaPicker()); +// mTvCommContent.setOnClickListener(v -> onShowCommunityPicker()); +// mTvTypeContent.setOnClickListener(v -> onShowTypePicker()); +// mBtnSubmit.setOnClickListener(v -> doSubmit()); +// mTvAddressContent.setOnClickListener(v -> { +// Intent intent = new Intent(mActivity, TakePointActivity.class); +// startActivityForResult(intent, 1234); +// }); +// setEditTextInhibitInputSpeChat(mEtIssueDesc); +// } +// +// private void showSourcePicker() { +// hideSoftKeyboard(); +// if (mSourcePicker == null) { +// mSourcePicker = new OptionsPickerBuilder(IssueReportActivity.this, (options1, options2, options3, v) -> { +// switch (mSources.get(options1)) { +//// case "群众举报": +//// mSelSource = "1"; +//// break; +// case "巡检采集": +// mSelSource = "2"; +// break; +// case "N员上报": +// mSelSource = "3"; +// break; +// case "N员上报(自处理)": +// mSelSource = "4"; +// break; +// } +// mTvSourceContent.setText(mSources.get(options1)); +// }) +// .setTitleText("请选择来源") +// .setCancelColor(Color.parseColor("#1189FF")) +// .setSubmitColor(Color.parseColor("#1189FF")) +// .setTitleColor(Color.parseColor("#1189FF")) +// .build(); +// mSourcePicker.setPicker(mSources); +// } +// mSourcePicker.show(); +// } +// +// private void doSubmit() { +// IssueReportBody body = checkParams(); +// if (body != null) { +// Gson gson = new Gson(); +// String obj = gson.toJson(body); +// RequestBody requestBody = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), obj); +// ProgressDialog progressDialog = UIUtil.initDialog(IssueReportActivity.this, "案件上报中..."); +// progressDialog.show(); +// RetrofitManager.getInstance() +// .create(LocationApiService.class) +// .doReportIssue(requestBody, UserLgUtils.getToken()) +// .subscribeOn(Schedulers.io()) +// .observeOn(AndroidSchedulers.mainThread()) +// .subscribe(new Observer() { +// @Override +// public void onSubscribe(Disposable d) { +// +// } +// +// @Override +// public void onNext(SuccessBean s) { +// progressDialog.dismiss(); +// ToastUtils.showShort("上报成功"); +// finish(); +// } +// +// @Override +// public void onError(Throwable e) { +// progressDialog.dismiss(); +// ExceptionHandler.handleException(e); +// } +// +// @Override +// public void onComplete() { +// +// } +// }); +// +// } +// } +// +// /** +// * 校验保存的参数 +// * +// * @return +// */ +// private IssueReportBody checkParams() { +// if (mSelectAreaBean == null) { +// ToastUtils.showShort("请选择所属区域"); +// return null; +// } +// if (mSelectCommBean == null) { +// ToastUtils.showShort("请选择所属社区"); +// return null; +// } +// if (mSelTypeSubBean == null) { +// ToastUtils.showShort("请选择案件类别"); +// return null; +// } +// String address = mTvAddressContent.getText().toString().trim(); +// if (TextUtils.isEmpty(address)) { +// ToastUtils.showShort("请输入案件地址"); +// return null; +// } +// String desc = mEtIssueDesc.getText().toString().trim(); +// if (TextUtils.isEmpty(desc)) { +// ToastUtils.showShort("请输入案件描述"); +// return null; +// } +// if (mPhotoAdapter.getData() == null || mPhotoAdapter.getData().size() <= 1) { +// ToastUtils.showShort("请上传现场照片"); +// return null; +// } +// IssueReportBody body = new IssueReportBody(); +// body.setAreaId(mSelectAreaBean.getDictId()); +// body.setAreaName(mSelectAreaBean.getDictName()); +// body.setCommunityId(mSelectCommBean.getCommunityId()); +// body.setCommunityName(mSelectCommBean.getCommunityName()); +// body.setCaseTypeId(mSelTypeSubBean.getDictId()); +// body.setCaseTypeName(mSelTypeSubBean.getDictName()); +// body.setCasePosition(mSelAddress); +// body.setCaseLatitude(mSelLa); +// body.setCaseLongitude(mSelLo); +// if (isSelf) { +// body.setIsSelf("1"); +// if ("2".equals(mSelSource)) { +// //N员上报自处理 +// mSelSource = "4"; +// } +// } else { +// body.setIsSelf("0"); +// } +// body.setCaseContent(desc); +// String ids = ""; +// for (int i = 0; i < mPhotoAdapter.getData().size(); i++) { +// if (!TextUtils.isEmpty(mPhotoAdapter.getData().get(i).getId())) { +// ids += mPhotoAdapter.getData().get(i).getId() + ","; +// } +// } +// body.setCasePhotos(ids); +// if (!TextUtils.isEmpty(mVideoId)) { +// body.setCaseAudio(mVideoId); +// } +//// 上报来源 +// if (!TextUtils.isEmpty(mSelSource)) { +// body.setCaseSource(mSelSource); +// } +// LogUtils.e(body.toString()); +// return body; +// } +// +// +// public void registerMessageReceiver() { +// mTvAddressContent.setHint("获取案件地址中..."); +// mLo = new IssueLocationReceiver(); +// IntentFilter filter = new IntentFilter(); +// filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY); +// filter.addAction(PathConfig.ACTION_LOCATION_MESSAGE); +// registerReceiver(mLo, filter); +// } +// +// +// public class IssueLocationReceiver extends BroadcastReceiver { +// @Override +// public void onReceive(Context context, Intent intent) { +// if (PathConfig.ACTION_LOCATION_MESSAGE.equals(intent.getAction())) { +// BDLocation location = intent.getParcelableExtra("data"); +// if (location != null && location.getLatitude() != Double.MIN_VALUE && location.getLongitude() != Double.MIN_VALUE) { +// if (location.getRadius() <= 65) { +// if (mCurrentLocation == null) { +// if (TextUtils.isEmpty(mSelAddress)) { +// mCurrentLocation = location; +// mSelLa = mCurrentLocation.getLatitude() + ""; +// mSelLo = mCurrentLocation.getLongitude() + ""; +// if (mCurrentLocation.getAddress() != null && !TextUtils.isEmpty(mCurrentLocation.getAddress().address)) { +// mSelAddress = mCurrentLocation.getAddrStr(); +// mTvAddressContent.setText(mCurrentLocation.getAddress().address); +// } +// } +// } +// } +// } +// } +// } +// } +// +// /** +// * 上传录音 +// * +// * @param filePath +// */ +// private void uploadVoice(String filePath) { +// ProgressDialog progressDialog = UIUtil.initDialog(IssueReportActivity.this, "录音上传中..."); +// progressDialog.show(); +// File file = new File(filePath); +// if (file.exists()) { +// RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"), file); +// MultipartBody.Part body = MultipartBody.Part.createFormData("audio", file.getName(), requestFile); +// RetrofitManager.getInstance() +// .create(LocationApiService.class) +// .uploadVideo(body, UserLgUtils.getToken()) +// .subscribeOn(Schedulers.io()) +// .observeOn(AndroidSchedulers.mainThread()) +// .subscribe(new Observer() { +// @Override +// public void onSubscribe(Disposable d) { +// +// } +// +// @Override +// public void onNext(BaseUserBean baseUserBean) { +// if (progressDialog != null && progressDialog.isShowing()) { +// progressDialog.dismiss(); +// } +// ToastUtils.showShort("上传成功"); +// mVideoPath = filePath; +// mVideoId = baseUserBean.getData(); +// mTvVoiceAnim.setVisibility(View.VISIBLE); +// } +// +// @Override +// public void onError(Throwable e) { +// if (progressDialog != null && progressDialog.isShowing()) { +// progressDialog.dismiss(); +// } +// ToastUtils.showShort("上传失败,请稍后重试."); +// if (file.exists()) { +// file.delete(); +// } +// } +// +// @Override +// public void onComplete() { +// +// } +// }); +// } else { +// progressDialog.dismiss(); +// ToastUtils.showShort("录音文件路径有误."); +// } +// } +// +// /** +// * 显示案件类别 +// */ +// private void onShowTypePicker() { +// hideSoftKeyboard(); +// if (mTypeList != null && mTypeList.size() > 0) { +// if (mTypePicker == null) { +// mTypePicker = new OptionsPickerBuilder(IssueReportActivity.this, (options1, options2, options3, v) -> { +// TypeListBean typeListBean = mTypeList.get(options1); +// if (typeListBean.getSubDicts() != null && typeListBean.getSubDicts().size() > 0) { +// mSelTypeBean = mTypeList.get(options1); +// mSelTypeSubBean = mTypeList.get(options1).getSubDicts().get(options2); +// mTvTypeContent.setText(mTypeList.get(options1).getDictName() + " - " + mTypeList.get(options1).getSubDicts().get(options2).getDictName()); +// } else { +// ToastUtils.showShort("请选择案件类型"); +// } +// }).setTitleText("请选择类型") +// .setCancelColor(Color.parseColor("#1189FF")) +// .setSubmitColor(Color.parseColor("#1189FF")) +// .setTitleColor(Color.parseColor("#1189FF")) +// .build(); +// mTypePicker.setPicker(mTypeList, mTypeSubBenas); +// } +// mTypePicker.show(); +// } else { +// getCaseTypeList(1); +// } +// } +// +// /** +// * 获取案件类别 +// */ +// private void getCaseTypeList(int i) { +// RetrofitManager.getInstance() +// .create(LocationApiService.class) +// .getDictListAll("46d108b2-4ef9-4f6f-b30c-0c700e3ee852", UserLgUtils.getToken()) +// .subscribeOn(Schedulers.io()) +// .observeOn(AndroidSchedulers.mainThread()) +// .subscribe(new Observer>() { +// @Override +// public void onSubscribe(Disposable d) { +// mCaseTypeDis = d; +// } +// +// @Override +// public void onNext(List areaListBeans) { +// if (null != areaListBeans && areaListBeans.size() > 0) { +// mTypeList = areaListBeans; +// if (mTypeList.get(0).getSubDicts() != null && mTypeList.get(0).getSubDicts().size() > 0) { +// mSelTypeBean = mTypeList.get(0); +// mSelTypeSubBean = mTypeList.get(0).getSubDicts().get(0); +// mTvTypeContent.setText(mSelTypeBean.getDictName() + " - " + mSelTypeSubBean.getDictName()); +// } +// buildTypelistDatas(areaListBeans, i); +// } else { +// ToastUtils.showShort("暂无类别数据"); +// } +// } +// +// @Override +// public void onError(Throwable e) { +// LogUtils.e(e); +// } +// +// @Override +// public void onComplete() { +// +// } +// }); +// } +// +// private List> mTypeSubBenas = new ArrayList<>(); +// +// private void buildTypelistDatas(List areaListBeans, int type) { +// for (int i = 0; i < areaListBeans.size(); i++) { +// if (areaListBeans.get(i).getSubDicts() != null && areaListBeans.get(i).getSubDicts().size() > 0) { +// mTypeSubBenas.add(areaListBeans.get(i).getSubDicts()); +// } else { +// mTypeSubBenas.add(new ArrayList<>()); +// } +// } +// if (type == 1) { +// onShowTypePicker(); +// } +// } +// +// /** +// * 获取区域列表 +// */ +// private void getAreaList(int i) { +// mProgressDialog = null; +// if (i == 1) { +// mProgressDialog = new ProgressDialog(IssueReportActivity.this); +// mProgressDialog.setMessage("加载中..."); +// mProgressDialog.setCancelable(false); +// mProgressDialog.setCanceledOnTouchOutside(false); +// mProgressDialog.show(); +// } +// +// RetrofitManager.getInstance() +// .create(LocationApiService.class) +// .getDictList("9d179f05-3ea0-48f7-853c-d3b7124b791c", UserLgUtils.getToken()) +// .subscribeOn(Schedulers.io()) +// .observeOn(AndroidSchedulers.mainThread()) +// .subscribe(new Observer>() { +// @Override +// public void onSubscribe(Disposable d) { +// mDictDis = d; +// } +// +// @Override +// public void onNext(List areaListBeans) { +// if (mProgressDialog != null && mProgressDialog.isShowing()) { +// mProgressDialog.dismiss(); +// } +// if (null != areaListBeans && areaListBeans.size() > 0) { +// mAreaList = areaListBeans; +// if (i == 0) { +// if (mUserDepartmentBean != null) { +// for (int j = 0; j < areaListBeans.size(); j++) { +// if (areaListBeans.get(j).getDictId().equals(mUserDepartmentBean.getAreaId())) { +// mTvAreaContent.setText(mAreaList.get(j).getDictName()); +// mSelectAreaBean = mAreaList.get(j); +// break; +// } else { +// mTvAreaContent.setText(mAreaList.get(0).getDictName()); +// mSelectAreaBean = mAreaList.get(0); +// } +// } +// } else { +// mTvAreaContent.setText(mAreaList.get(0).getDictName()); +// mSelectAreaBean = mAreaList.get(0); +// } +// getCommunityList(mSelectAreaBean.getDictId(), 0); +// } else { +// mTvAreaContent.setText(mAreaList.get(0).getDictName()); +// mSelectAreaBean = mAreaList.get(0); +// getCommunityList(mAreaList.get(0).getDictId(), 0); +// } +// if (i == 1) { +// onShowAreaPicker(); +// } +// } else { +// +// ToastUtils.showShort("暂无区域数据"); +// } +// } +// +// @Override +// public void onError(Throwable e) { +// if (mProgressDialog != null && mProgressDialog.isShowing()) { +// mProgressDialog.dismiss(); +// } +// ToastUtils.showShort("获取区域失败"); +// } +// +// @Override +// public void onComplete() { +// +// } +// }); +// } +// +// /** +// * 显示区域选择 +// */ +// private void onShowAreaPicker() { +// hideSoftKeyboard(); +// if (null == mAreaList || mAreaList.size() <= 0) { +// getAreaList(1); +// } else { +// mAreaPicker = new OptionsPickerBuilder(IssueReportActivity.this, (options1, options2, options3, v) -> { +// mTvAreaContent.setText(mAreaList.get(options1).getDictName()); +// mSelectAreaBean = mAreaList.get(options1); +// getCommunityList(mSelectAreaBean.getDictId(), 1); +// }) +// .setTitleText("请选择区域") +// .setCancelColor(Color.parseColor("#1189FF")) +// .setSubmitColor(Color.parseColor("#1189FF")) +// .setTitleColor(Color.parseColor("#1189FF")) +// .build(); +// mAreaPicker.setPicker(mAreaList); +// mAreaPicker.show(); +// } +// } +// +// /** +// * 获取社区连表 +// */ +// private void getCommunityList(String areaId, int i) { +// if (i == 1) { +// mProgressDialog = new ProgressDialog(IssueReportActivity.this); +// mProgressDialog.setMessage("获取社区中..."); +// mProgressDialog.setCanceledOnTouchOutside(false); +// mProgressDialog.setCancelable(false); +// mProgressDialog.show(); +// } +// RetrofitManager.getInstance() +// .create(LocationApiService.class) +// .getCommunityList(areaId, UserLgUtils.getToken()) +// .subscribeOn(Schedulers.io()) +// .observeOn(AndroidSchedulers.mainThread()) +// .subscribe(new Observer>() { +// @Override +// public void onSubscribe(Disposable d) { +// mCommunityDis = d; +// } +// +// @Override +// public void onNext(List communityBeans) { +// if (null != mProgressDialog && mProgressDialog.isShowing()) { +// mProgressDialog.dismiss(); +// } +// if (null != communityBeans && communityBeans.size() > 0) { +// if (i == 0) { +// //第一次 +// if (mUserDepartmentBean != null && !TextUtils.isEmpty(mUserDepartmentBean.getCommunityIds())) { +// for (int j = 0; j < communityBeans.size(); j++) { +// if (mUserDepartmentBean.getCommunityIds().contains(communityBeans.get(j).getCommunityId())) { +// LogUtils.e("=社区匹配到了="); +// mCommunityList = communityBeans; +// mTvCommContent.setText(communityBeans.get(j).getCommunityName()); +// mSelectCommBean = mCommunityList.get(j); +// break; +// } else { +// mCommunityList = communityBeans; +// mTvCommContent.setText(communityBeans.get(0).getCommunityName()); +// mSelectCommBean = mCommunityList.get(0); +// } +// } +// } else { +// mCommunityList = communityBeans; +// mTvCommContent.setText(communityBeans.get(0).getCommunityName()); +// mSelectCommBean = mCommunityList.get(0); +// if (mCommunityPicker != null) { +// mCommunityPicker.setPicker(mCommunityList); +// } +// } +// } else { +// mCommunityList = communityBeans; +// mTvCommContent.setText(communityBeans.get(0).getCommunityName()); +// mSelectCommBean = mCommunityList.get(0); +// if (mCommunityPicker != null) { +// mCommunityPicker.setPicker(mCommunityList); +// } +// } +// } else { +// mTvCommContent.setText(""); +// mTvCommContent.setHint("请选择社区"); +// mSelectCommBean = null; +// mCommunityList = null; +// ToastUtils.showShort("当前区域暂无社区"); +// } +// } +// +// @Override +// public void onError(Throwable e) { +// if (null != mProgressDialog && mProgressDialog.isShowing()) { +// mProgressDialog.dismiss(); +// } +// } +// +// @Override +// public void onComplete() { +// +// } +// }); +// } +// +// private void onShowCommunityPicker() { +// hideSoftKeyboard(); +// if (null == mCommunityList || mCommunityList.size() <= 0) { +// ToastUtils.showShort("所选区域暂无社区"); +// } else { +// if (mCommunityPicker == null) { +// mCommunityPicker = new OptionsPickerBuilder(IssueReportActivity.this, (options1, options2, options3, v) -> { +// mTvCommContent.setText(mCommunityList.get(options1).getCommunityName()); +// mSelectCommBean = mCommunityList.get(options1); +// }) +// .setTitleText("请选择社区") +// .setCancelColor(Color.parseColor("#1189FF")) +// .setSubmitColor(Color.parseColor("#1189FF")) +// .setTitleColor(Color.parseColor("#1189FF")) +// .build(); +// mCommunityPicker.setPicker(mCommunityList); +// } +// mCommunityPicker.show(); +// } +// } +// +// /** +// * 显示选择图片 +// * +// * @param bean +// */ +// private void showSelectPhoto(AddPhotoBean bean) { +// hideSoftKeyboard(); +// ButtomDialogView buttomDialogView = new ButtomDialogView.DialogBuilder(mActivity) +// .setIsBackCancelable(true) +// .setIscancelable(true) +// .setShowLocation(Gravity.BOTTOM) +// .setIsShowFile(false) +// .build(); +// buttomDialogView.addOnChoseListener(new ButtomDialogView.OnChoseListener() { +// @Override +// public void choseFile() { +// } +// +// @Override +// public void choseAlbum() { +// mCurrentBean = bean; +// Intent intent = new Intent(Intent.ACTION_PICK, null); +// intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, +// "image/*"); +// startActivityForResult(intent, BaseUrlApi.PHOTO_REQUEST); +// buttomDialogView.dismiss(); +// } +// +// @Override +// public void choseShoot() { +// mCurrentBean = bean; +// mPicPath = PathConfig.CATCH_PATH + System.currentTimeMillis() + ".jpg"; +// File file = new File(mPicPath); +// Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); +// // 下面这句指定调用相机拍照后的照片存储的路径 +// Uri uri; +// if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M) { +// uri = Uri.fromFile(file); +// } else { +// uri = FileProvider.getUriForFile(mActivity, ProiderUtil.getFileProviderName(mActivity), file); +// } +// intent.putExtra(MediaStore.EXTRA_OUTPUT, uri); +// startActivityForResult(intent, BaseUrlApi.CAMERA_REQUEST); +// } +// +// @Override +// public void loginOut() { +// +// } +// +// @Override +// public void changePwd() { +// +// } +// }); +// buttomDialogView.show(); +// } +// +// @Override +// protected void onActivityResult(int requestCode, int resultCode, Intent data) { +// if (resultCode == RESULT_OK) { +// switch (requestCode) { +// case BaseUrlApi.CAMERA_REQUEST://相机 +// uploadImg(mPicPath, 1); +// break; +// case BaseUrlApi.PHOTO_REQUEST://相册 +// try { +// if (data == null) return; +// Uri uri = data.getData(); +// String[] proj = {MediaStore.Images.Media.DATA}; +// Cursor cursor = managedQuery(uri, proj, null, null, null); +// int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); +// cursor.moveToFirst(); +// String srcPath = cursor.getString(column_index); +// uploadImg(srcPath, 2); +// } catch (Exception e) { +// e.printStackTrace(); +// } +// break; +// case 1234: +// String lo = data.getStringExtra("lo"); +// String la = data.getStringExtra("la"); +// String address = data.getStringExtra("address"); +// mSelAddress = address; +// mSelLa = la; +// mSelLo = lo; +// mTvAddressContent.setText(address); +// break; +// } +// } +// super.onActivityResult(requestCode, resultCode, data); +// } +// +// public Uri geturi(android.content.Intent intent) { +// Uri uri = intent.getData(); +// String type = intent.getType(); +// if (uri.getScheme().equals("file") && (type.contains("image/*"))) { +// String path = uri.getEncodedPath(); +// if (path != null) { +// path = Uri.decode(path); +// ContentResolver cr = mActivity.getContentResolver(); +// StringBuffer buff = new StringBuffer(); +// buff.append("(").append(MediaStore.Images.ImageColumns.DATA).append("=") +// .append("'" + path + "'").append(")"); +// Cursor cur = cr.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, +// new String[]{MediaStore.Images.ImageColumns._ID}, +// buff.toString(), null, null); +// int index = 0; +// for (cur.moveToFirst(); !cur.isAfterLast(); cur.moveToNext()) { +// index = cur.getColumnIndex(MediaStore.Images.ImageColumns._ID); +// index = cur.getInt(index); +// } +// if (index == 0) { +// ToastUtils.showShort("图片路径有误,请重新选择"); +// } else { +// Uri uri_temp = Uri.parse("content://media/external/images/media/" + index); +// if (uri_temp != null) { +// uri = uri_temp; +// } +// } +// } +// } +// return uri; +// } +// +// /** +// * 上传文件 +// * +// * @param picPath +// */ +// private void uploadImg(String picPath, int src) { +// File file = new File(picPath); +// if (!file.exists()) { +// showToast("图片路径错误."); +// return; +// } +// ProgressDialog progressDialog = UIUtil.initDialog(mActivity, "正在上传..."); +// progressDialog.show(); +// Luban.with(mActivity) +// .load(picPath) +// .ignoreBy(100) +// .setTargetDir(PathConfig.CATCH_PATH) +// .filter(path -> !(TextUtils.isEmpty(path) || path.toLowerCase().endsWith(".gif"))) +// .setCompressListener(new OnCompressListener() { +// @Override +// public void onStart() { +// +// } +// +// @Override +// public void onSuccess(File file) { +// RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"), file); +// MultipartBody.Part body = MultipartBody.Part.createFormData("image", file.getName(), requestFile); +// RetrofitManager.getInstance() +// .create(LocationApiService.class) +// .uploadImage(body, UserLgUtils.getToken()) +// .subscribeOn(Schedulers.io()) +// .observeOn(AndroidSchedulers.mainThread()) +// .subscribe(new Observer() { +// @Override +// public void onSubscribe(Disposable d) { +// +// } +// +// @Override +// public void onNext(BaseUserBean baseUserBean) { +// if (progressDialog != null && progressDialog.isShowing()) { +// progressDialog.dismiss(); +// } +// ToastUtils.showShort("上传成功"); +// mPhotoIds += (baseUserBean.getData() + ","); +// mCurrentBean.setId(baseUserBean.getData()); +// mCurrentBean.setPath(picPath); +// if (mPhotos.size() < 4) { +// mPhotos.add(new AddPhotoBean()); +// } +// mPhotoAdapter.notifyDataSetChanged(); +// mCurrentBean = null; +// } +// +// @Override +// public void onError(Throwable e) { +// if (progressDialog != null && progressDialog.isShowing()) { +// progressDialog.dismiss(); +// } +// ToastUtils.showShort("上传失败,请稍后重试."); +// if (file.exists()) { +// file.delete(); +// } +// } +// +// @Override +// public void onComplete() { +// +// } +// }); +// } +// +// @Override +// public void onError(Throwable e) { +// if (progressDialog.isShowing()) { +// progressDialog.dismiss(); +// } +// ToastUtils.showShort("图片上传失败,请稍后重试"); +// } +// }) +// .launch(); +// } +// +// @Override +// protected void onDestroy() { +// mArbVideo.onDestroy(); +// if (mCommunityDis != null && !mCommunityDis.isDisposed()) { +// mCommunityDis.dispose(); +// } +// if (mCaseTypeDis != null && !mCaseTypeDis.isDisposed()) { +// mCaseTypeDis.dispose(); +// } +// if (mDictDis != null && !mDictDis.isDisposed()) { +// mDictDis.dispose(); +// } +// if (mLo != null) { +// unregisterReceiver(mLo); +// } +// if (mBind != null) { +// mBind.unbind(); +// } +// super.onDestroy(); +// } +// +//} diff --git a/app/src/main/java/com/sucstepsoft/txrealtimelocation/activitys/issue/TakePointActivity.java b/app/src/main/java/com/sucstepsoft/txrealtimelocation/activitys/issue/TakePointActivity.java index d14c074..30be34b 100755 --- a/app/src/main/java/com/sucstepsoft/txrealtimelocation/activitys/issue/TakePointActivity.java +++ b/app/src/main/java/com/sucstepsoft/txrealtimelocation/activitys/issue/TakePointActivity.java @@ -1,42 +1,12 @@ package com.sucstepsoft.txrealtimelocation.activitys.issue; -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.text.TextUtils; import android.view.View; import android.widget.Button; import android.widget.EditText; -import android.widget.ImageView; import android.widget.RadioGroup; import android.widget.TextView; -import android.widget.ZoomControls; -import com.baidu.location.BDAbstractLocationListener; -import com.baidu.location.BDLocation; -import com.baidu.location.LocationClient; -import com.baidu.location.LocationClientOption; -import com.baidu.mapapi.map.BaiduMap; -import com.baidu.mapapi.map.BitmapDescriptor; -import com.baidu.mapapi.map.BitmapDescriptorFactory; -import com.baidu.mapapi.map.MapPoi; -import com.baidu.mapapi.map.MapStatus; -import com.baidu.mapapi.map.MapStatusUpdate; -import com.baidu.mapapi.map.MapStatusUpdateFactory; -import com.baidu.mapapi.map.MarkerOptions; -import com.baidu.mapapi.map.MyLocationData; -import com.baidu.mapapi.map.OverlayOptions; -import com.baidu.mapapi.map.TextureMapView; -import com.baidu.mapapi.model.LatLng; -import com.baidu.mapapi.search.core.SearchResult; -import com.baidu.mapapi.search.geocode.GeoCodeResult; -import com.baidu.mapapi.search.geocode.GeoCoder; -import com.baidu.mapapi.search.geocode.OnGetGeoCoderResultListener; -import com.baidu.mapapi.search.geocode.ReverseGeoCodeOption; -import com.baidu.mapapi.search.geocode.ReverseGeoCodeResult; -import com.sucstepsoft.cm_utils.constant.PathConfig; import com.sucstepsoft.cm_utils.core.widget.base.BaseActivity; -import com.sucstepsoft.cm_utils.utils.ToastUtils; import com.sucstepsoft.txrealtimelocation.R; import butterknife.BindView; @@ -51,18 +21,18 @@ public class TakePointActivity extends BaseActivity { TextView mTvLatitude; @BindView(R.id.tv_longitude) TextView mTvLongitude; - @BindView(R.id.tmv_map) - TextureMapView mTmvMap; +// @BindView(R.id.tmv_map) +// TextureMapView mTmvMap; @BindView(R.id.rg_map_type) RadioGroup mRgMapType; @BindView(R.id.btn_reload) Button mBtnReload; private Unbinder mBind; - private BaiduMap mBaiduMap; - private GeoCoder mGeoCoder; - private BitmapDescriptor mBitmap; - private MessageReceiver mReceiver; - private LocationClient mLocationClient; +// private BaiduMap mBaiduMap; +// private GeoCoder mGeoCoder; +// private BitmapDescriptor mBitmap; +// private MessageReceiver mReceiver; +// private LocationClient mLocationClient; @Override protected int setLayoutId() { @@ -76,263 +46,263 @@ public class TakePointActivity extends BaseActivity { mTvBaseTitle.setText("地图选点"); mTvPublish.setVisibility(View.VISIBLE); mTvPublish.setText("确定"); - mTvPublish.setOnClickListener(v -> confirmLocation()); - mBaiduMap = mTmvMap.getMap(); - //将地图移动到中心点 - LatLng point = new LatLng(PathConfig.LA, PathConfig.LO); - MapStatus.Builder builder = new MapStatus.Builder(); - builder.target(point).zoom(18.0f); - mBaiduMap.animateMapStatus(MapStatusUpdateFactory.newMapStatus(builder.build())); - //添加marker - mBaiduMap.setOnMapClickListener(new BaiduMap.OnMapClickListener() { - @Override - public void onMapClick(LatLng latLng) { - LatLng position = latLng; - if (position != null && position.latitude != 0 && position.longitude != 0) { - if (position.longitude != Double.MIN_VALUE && position.latitude != Double.MIN_VALUE) { - addMarker(position); - mTvLatitude.setText(position.latitude + ""); - mTvLongitude.setText(position.longitude + ""); - if (mGeoCoder != null) { - String address = mEtAddress.getText().toString().trim(); - if (!TextUtils.isEmpty(address)) { - mEtAddress.setText(""); - mEtAddress.setHint("正在获取地址中..."); - } else { - mEtAddress.setHint("正在获取地址中..."); - } - mGeoCoder.reverseGeoCode(new ReverseGeoCodeOption().location(position)); - } else { - initGeoCoder(position); - } - } else { - ToastUtils.showShort("请重新选择地点"); - } - } else { - ToastUtils.showShort("请重新选择地点"); - } - } - - @Override - public void onMapPoiClick(MapPoi mapPoi) { - - } - }); - initGeoCoder(null); - mRgMapType.setOnCheckedChangeListener((group, checkedId) -> { - int id = 0; - switch (checkedId) { - case R.id.rb_type_map://普通的 - id = 123; - break; - case R.id.rb_satellite://卫星地图 - id = 1234; - break; - } - if (id != 0) { - setMapType(id); - } - }); -// mReceiver = new MessageReceiver(); -// IntentFilter filter = new IntentFilter(); -// filter.addAction(PathConfig.ACTION_LOCATION_MESSAGE); -// registerReceiver(mReceiver, filter); - View child = mTmvMap.getChildAt(1); - if (child != null && (child instanceof ImageView || child instanceof ZoomControls)) { - child.setVisibility(View.GONE); - } - mTmvMap.showZoomControls(false); - startSignLocation(); - mBtnReload.setOnClickListener(v -> { - if (mCurrentLocation != null && mCurrentLocation.getLatitude() != 0 && mCurrentLocation.getLongitude() != 0) { - MapStatus cur = new MapStatus.Builder().zoom(16).target(new LatLng(mCurrentLocation.getLatitude(), mCurrentLocation.getLongitude())).build(); - MapStatusUpdate curUpdate = MapStatusUpdateFactory.newMapStatus(cur); - mBaiduMap.animateMapStatus(curUpdate); - } - }); - } - - private void setMapType(int id) { - if (id == 123) { - mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL); - } else { - mBaiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE); - } - } - - /** - * 校验参数 - */ - private boolean checkParams() { - String la = mTvLatitude.getText().toString().trim(); - String lo = mTvLongitude.getText().toString().trim(); - String address = mEtAddress.getText().toString().trim(); - if (TextUtils.isEmpty(la) || TextUtils.isEmpty(lo)) { - ToastUtils.showShort("请点击地图进行选点"); - return false; - } - if (TextUtils.isEmpty(address)) { - ToastUtils.showShort("请输入案件地址"); - return false; - } - return true; - } - - private void confirmLocation() { - hideSoftKeyboard(); - if (checkParams()) { - String la = mTvLatitude.getText().toString().trim(); - String lo = mTvLongitude.getText().toString().trim(); - String address = mEtAddress.getText().toString().trim(); - Intent intent = new Intent(); - intent.putExtra("lo", lo); - intent.putExtra("la", la); - intent.putExtra("address", address); - setResult(RESULT_OK, intent); - finish(); - } - } - - /** - * 添加marker - * - * @param latLng - */ - private void addMarker(LatLng latLng) { - mBaiduMap.clear(); - if (mBitmap == null) { - mBitmap = BitmapDescriptorFactory.fromResource(R.drawable.ic_map_marker); - } - OverlayOptions option = new MarkerOptions() - .position(latLng) - .icon(mBitmap) - .animateType(MarkerOptions.MarkerAnimateType.drop); - mBaiduMap.addOverlay(option); - } - - private void initGeoCoder(LatLng latLng) { - if (mGeoCoder == null) { - mGeoCoder = GeoCoder.newInstance(); - mGeoCoder.setOnGetGeoCodeResultListener(new OnGetGeoCoderResultListener() { - @Override - public void onGetGeoCodeResult(GeoCodeResult geoCodeResult) { - - } - - @Override - public void onGetReverseGeoCodeResult(ReverseGeoCodeResult result) { - if (result == null - || result.error != SearchResult.ERRORNO.NO_ERROR) { - // 没有检测到结果 - mEtAddress.setText(""); - mEtAddress.setHint("获取地址失败,请手动输入地址."); - } else { - mEtAddress.setText(result.getAddress()); - } - } - }); - } else { - if (latLng != null) { - String address = mEtAddress.getText().toString().trim(); - if (!TextUtils.isEmpty(address)) { - mEtAddress.setText(""); - mEtAddress.setHint("正在获取地址中..."); - } - mGeoCoder.reverseGeoCode(new ReverseGeoCodeOption().location(latLng)); - } - } - } - - private BDLocation mCurrentLocation = null; - - public class MessageReceiver extends BroadcastReceiver { - @Override - public void onReceive(Context context, Intent intent) { - if (PathConfig.ACTION_LOCATION_MESSAGE.equals(intent.getAction())) { - BDLocation location = intent.getParcelableExtra("data"); - //显示定位图标 - - } - } - } - - private void startSignLocation() { - stopLocation(); - mLocationClient = new LocationClient(getApplicationContext()); - LocationClientOption locationOption = new LocationClientOption(); - SignLocationListener myLocationListener = new SignLocationListener(); - mLocationClient.registerLocationListener(myLocationListener); - locationOption.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy); - locationOption.setCoorType("bd09ll"); - locationOption.setScanSpan(30 * 1000); - locationOption.setIsNeedAddress(true); - locationOption.setNeedDeviceDirect(false); - locationOption.setLocationNotify(false); - locationOption.setIgnoreKillProcess(true); - locationOption.setIsNeedLocationDescribe(true); - locationOption.setIsNeedLocationPoiList(true); - locationOption.SetIgnoreCacheException(false); - locationOption.setOpenGps(true); - locationOption.setIsNeedAltitude(false); - mLocationClient.setLocOption(locationOption); - //开始定位 - mLocationClient.start(); - } - - private void stopLocation() { - if (null != mLocationClient) { - mLocationClient.stop(); - } - } - - private class SignLocationListener extends BDAbstractLocationListener { - @Override - public void onReceiveLocation(BDLocation bdLocation) { - if (bdLocation != null && bdLocation.getLatitude() != 0 && bdLocation.getLongitude() != 0) { - checkPointIsLegal(bdLocation); - } - } - } - - private void checkPointIsLegal(BDLocation bdLocation) { - if (PathConfig.CITY_CODE_DEFAULT.equals(bdLocation.getCityCode())) { - if (bdLocation != null && bdLocation.getLatitude() != 0 && bdLocation.getLongitude() != 0) { - if (bdLocation.getRadius() <= 150) { - if (bdLocation != null && bdLocation.getLatitude() != Double.MIN_VALUE && bdLocation.getLongitude() != Double.MIN_VALUE) { - mBaiduMap.setMyLocationEnabled(true); - MyLocationData locData = new MyLocationData.Builder() - .accuracy(bdLocation.getRadius()) - .latitude(bdLocation.getLatitude()) - .longitude(bdLocation.getLongitude()).build(); - mBaiduMap.setMyLocationData(locData); - if (mCurrentLocation == null) { - mCurrentLocation = bdLocation; - moveMapToCenter(new LatLng(mCurrentLocation.getLatitude(), mCurrentLocation.getLongitude())); - } - } - } - } - } - //显示定位图标 - } - - private void moveMapToCenter(LatLng latLng) { - MapStatus ms = new MapStatus.Builder().zoom(16).target(latLng).build(); - MapStatusUpdate u = MapStatusUpdateFactory.newMapStatus(ms); - mBaiduMap.setMapStatus(u); +// mTvPublish.setOnClickListener(v -> confirmLocation()); +// mBaiduMap = mTmvMap.getMap(); +// //将地图移动到中心点 +// LatLng point = new LatLng(PathConfig.LA, PathConfig.LO); +// MapStatus.Builder builder = new MapStatus.Builder(); +// builder.target(point).zoom(18.0f); +// mBaiduMap.animateMapStatus(MapStatusUpdateFactory.newMapStatus(builder.build())); +// //添加marker +// mBaiduMap.setOnMapClickListener(new BaiduMap.OnMapClickListener() { +// @Override +// public void onMapClick(LatLng latLng) { +// LatLng position = latLng; +// if (position != null && position.latitude != 0 && position.longitude != 0) { +// if (position.longitude != Double.MIN_VALUE && position.latitude != Double.MIN_VALUE) { +// addMarker(position); +// mTvLatitude.setText(position.latitude + ""); +// mTvLongitude.setText(position.longitude + ""); +// if (mGeoCoder != null) { +// String address = mEtAddress.getText().toString().trim(); +// if (!TextUtils.isEmpty(address)) { +// mEtAddress.setText(""); +// mEtAddress.setHint("正在获取地址中..."); +// } else { +// mEtAddress.setHint("正在获取地址中..."); +// } +// mGeoCoder.reverseGeoCode(new ReverseGeoCodeOption().location(position)); +// } else { +// initGeoCoder(position); +// } +// } else { +// ToastUtils.showShort("请重新选择地点"); +// } +// } else { +// ToastUtils.showShort("请重新选择地点"); +// } +// } +// +// @Override +// public void onMapPoiClick(MapPoi mapPoi) { +// +// } +// }); +// initGeoCoder(null); +// mRgMapType.setOnCheckedChangeListener((group, checkedId) -> { +// int id = 0; +// switch (checkedId) { +// case R.id.rb_type_map://普通的 +// id = 123; +// break; +// case R.id.rb_satellite://卫星地图 +// id = 1234; +// break; +// } +// if (id != 0) { +// setMapType(id); +// } +// }); +//// mReceiver = new MessageReceiver(); +//// IntentFilter filter = new IntentFilter(); +//// filter.addAction(PathConfig.ACTION_LOCATION_MESSAGE); +//// registerReceiver(mReceiver, filter); +// View child = mTmvMap.getChildAt(1); +// if (child != null && (child instanceof ImageView || child instanceof ZoomControls)) { +// child.setVisibility(View.GONE); +// } +// mTmvMap.showZoomControls(false); +// startSignLocation(); +// mBtnReload.setOnClickListener(v -> { +// if (mCurrentLocation != null && mCurrentLocation.getLatitude() != 0 && mCurrentLocation.getLongitude() != 0) { +// MapStatus cur = new MapStatus.Builder().zoom(16).target(new LatLng(mCurrentLocation.getLatitude(), mCurrentLocation.getLongitude())).build(); +// MapStatusUpdate curUpdate = MapStatusUpdateFactory.newMapStatus(cur); +// mBaiduMap.animateMapStatus(curUpdate); +// } +// }); } +// +// private void setMapType(int id) { +// if (id == 123) { +// mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL); +// } else { +// mBaiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE); +// } +// } +// +// /** +// * 校验参数 +// */ +// private boolean checkParams() { +// String la = mTvLatitude.getText().toString().trim(); +// String lo = mTvLongitude.getText().toString().trim(); +// String address = mEtAddress.getText().toString().trim(); +// if (TextUtils.isEmpty(la) || TextUtils.isEmpty(lo)) { +// ToastUtils.showShort("请点击地图进行选点"); +// return false; +// } +// if (TextUtils.isEmpty(address)) { +// ToastUtils.showShort("请输入案件地址"); +// return false; +// } +// return true; +// } +// +// private void confirmLocation() { +// hideSoftKeyboard(); +// if (checkParams()) { +// String la = mTvLatitude.getText().toString().trim(); +// String lo = mTvLongitude.getText().toString().trim(); +// String address = mEtAddress.getText().toString().trim(); +// Intent intent = new Intent(); +// intent.putExtra("lo", lo); +// intent.putExtra("la", la); +// intent.putExtra("address", address); +// setResult(RESULT_OK, intent); +// finish(); +// } +// } +// +// /** +// * 添加marker +// * +// * @param latLng +// */ +// private void addMarker(LatLng latLng) { +// mBaiduMap.clear(); +// if (mBitmap == null) { +// mBitmap = BitmapDescriptorFactory.fromResource(R.drawable.ic_map_marker); +// } +// OverlayOptions option = new MarkerOptions() +// .position(latLng) +// .icon(mBitmap) +// .animateType(MarkerOptions.MarkerAnimateType.drop); +// mBaiduMap.addOverlay(option); +// } +// +// private void initGeoCoder(LatLng latLng) { +// if (mGeoCoder == null) { +// mGeoCoder = GeoCoder.newInstance(); +// mGeoCoder.setOnGetGeoCodeResultListener(new OnGetGeoCoderResultListener() { +// @Override +// public void onGetGeoCodeResult(GeoCodeResult geoCodeResult) { +// +// } +// +// @Override +// public void onGetReverseGeoCodeResult(ReverseGeoCodeResult result) { +// if (result == null +// || result.error != SearchResult.ERRORNO.NO_ERROR) { +// // 没有检测到结果 +// mEtAddress.setText(""); +// mEtAddress.setHint("获取地址失败,请手动输入地址."); +// } else { +// mEtAddress.setText(result.getAddress()); +// } +// } +// }); +// } else { +// if (latLng != null) { +// String address = mEtAddress.getText().toString().trim(); +// if (!TextUtils.isEmpty(address)) { +// mEtAddress.setText(""); +// mEtAddress.setHint("正在获取地址中..."); +// } +// mGeoCoder.reverseGeoCode(new ReverseGeoCodeOption().location(latLng)); +// } +// } +// } +// +// private BDLocation mCurrentLocation = null; +// +// public class MessageReceiver extends BroadcastReceiver { +// @Override +// public void onReceive(Context context, Intent intent) { +// if (PathConfig.ACTION_LOCATION_MESSAGE.equals(intent.getAction())) { +// BDLocation location = intent.getParcelableExtra("data"); +// //显示定位图标 +// +// } +// } +// } +// +// private void startSignLocation() { +// stopLocation(); +// mLocationClient = new LocationClient(getApplicationContext()); +// LocationClientOption locationOption = new LocationClientOption(); +// SignLocationListener myLocationListener = new SignLocationListener(); +// mLocationClient.registerLocationListener(myLocationListener); +// locationOption.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy); +// locationOption.setCoorType("bd09ll"); +// locationOption.setScanSpan(30 * 1000); +// locationOption.setIsNeedAddress(true); +// locationOption.setNeedDeviceDirect(false); +// locationOption.setLocationNotify(false); +// locationOption.setIgnoreKillProcess(true); +// locationOption.setIsNeedLocationDescribe(true); +// locationOption.setIsNeedLocationPoiList(true); +// locationOption.SetIgnoreCacheException(false); +// locationOption.setOpenGps(true); +// locationOption.setIsNeedAltitude(false); +// mLocationClient.setLocOption(locationOption); +// //开始定位 +// mLocationClient.start(); +// } +// +// private void stopLocation() { +// if (null != mLocationClient) { +// mLocationClient.stop(); +// } +// } +// +// private class SignLocationListener extends BDAbstractLocationListener { +// @Override +// public void onReceiveLocation(BDLocation bdLocation) { +// if (bdLocation != null && bdLocation.getLatitude() != 0 && bdLocation.getLongitude() != 0) { +// checkPointIsLegal(bdLocation); +// } +// } +// } +// +// private void checkPointIsLegal(BDLocation bdLocation) { +// if (PathConfig.CITY_CODE_DEFAULT.equals(bdLocation.getCityCode())) { +// if (bdLocation != null && bdLocation.getLatitude() != 0 && bdLocation.getLongitude() != 0) { +// if (bdLocation.getRadius() <= 150) { +// if (bdLocation != null && bdLocation.getLatitude() != Double.MIN_VALUE && bdLocation.getLongitude() != Double.MIN_VALUE) { +// mBaiduMap.setMyLocationEnabled(true); +// MyLocationData locData = new MyLocationData.Builder() +// .accuracy(bdLocation.getRadius()) +// .latitude(bdLocation.getLatitude()) +// .longitude(bdLocation.getLongitude()).build(); +// mBaiduMap.setMyLocationData(locData); +// if (mCurrentLocation == null) { +// mCurrentLocation = bdLocation; +// moveMapToCenter(new LatLng(mCurrentLocation.getLatitude(), mCurrentLocation.getLongitude())); +// } +// } +// } +// } +// } +// //显示定位图标 +// } +// +// private void moveMapToCenter(LatLng latLng) { +// MapStatus ms = new MapStatus.Builder().zoom(16).target(latLng).build(); +// MapStatusUpdate u = MapStatusUpdateFactory.newMapStatus(ms); +// mBaiduMap.setMapStatus(u); +// } @Override protected void onDestroy() { - stopLocation(); - mBaiduMap = null; - mBitmap = null; - mGeoCoder.destroy(); - mGeoCoder = null; - mTmvMap.onDestroy(); - if (mBind != null) { - mBind.unbind(); - } +// stopLocation(); +// mBaiduMap = null; +// mBitmap = null; +// mGeoCoder.destroy(); +// mGeoCoder = null; +// mTmvMap.onDestroy(); +// if (mBind != null) { +// mBind.unbind(); +// } super.onDestroy(); } diff --git a/app/src/main/java/com/sucstepsoft/txrealtimelocation/activitys/issue/demo/Options.java b/app/src/main/java/com/sucstepsoft/txrealtimelocation/activitys/issue/demo/Options.java new file mode 100644 index 0000000..eb30724 --- /dev/null +++ b/app/src/main/java/com/sucstepsoft/txrealtimelocation/activitys/issue/demo/Options.java @@ -0,0 +1,43 @@ +package com.sucstepsoft.txrealtimelocation.activitys.issue.demo; + +import com.sucstepsoft.cm_utils.core.beans.AddPhotoBean; +import com.sucstepsoft.txrealtimelocation.widget.EmStateCheck; + +import java.util.List; + +/** + * 作者: adam + * 日期: 2020/3/27 - 10:30 AM + * 邮箱: itgaojian@163.com + * 描述: + */ +public class Options { + private List photos; + private String title; + private EmStateCheck state = EmStateCheck.NORMAL; + + public List getPhotos() { + return photos; + } + + public void setPhotos(List photos) { + this.photos = photos; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + + public EmStateCheck getState() { + return state; + } + + public void setState(EmStateCheck state) { + this.state = state; + } +} diff --git a/app/src/main/java/com/sucstepsoft/txrealtimelocation/activitys/issue/demo/OptionsAdapter.java b/app/src/main/java/com/sucstepsoft/txrealtimelocation/activitys/issue/demo/OptionsAdapter.java new file mode 100644 index 0000000..fabcae6 --- /dev/null +++ b/app/src/main/java/com/sucstepsoft/txrealtimelocation/activitys/issue/demo/OptionsAdapter.java @@ -0,0 +1,96 @@ +package com.sucstepsoft.txrealtimelocation.activitys.issue.demo; + +import android.content.Context; +import android.support.v7.widget.GridLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.text.TextUtils; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import com.sucstepsoft.cm_utils.core.beans.AddPhotoBean; +import com.sucstepsoft.cm_utils.core.widget.base.AddPhotoAdapter; +import com.sucstepsoft.cm_utils.core.widget.base.BaseRecyclerAdapter; +import com.sucstepsoft.txrealtimelocation.R; +import com.sucstepsoft.txrealtimelocation.widget.EmStateCheck; + +import java.util.List; + +/** + * 作者: adam + * 日期: 2020/3/27 - 10:30 AM + * 邮箱: itgaojian@163.com + * 描述: + */ +public class OptionsAdapter extends BaseRecyclerAdapter { + public OptionsAdapter(Context ctx, List list) { + super(ctx, list); + } + + @Override + public OptionsHolder createHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(mContext).inflate(R.layout.item_options, parent, false); + return new OptionsHolder(view); + } + + + @Override + public void bindHolder(OptionsHolder oHolder, int i) { + oHolder.mScvOptions.setCheckState(mData.get(i).getState()); + oHolder.mScvOptions.setOnClickListener(v -> { + EmStateCheck state = oHolder.mScvOptions.getViewState(); + switch (state) { + case NORMAL: + oHolder.mScvOptions.setCheckState(EmStateCheck.CHECK); + mData.get(i).setState(EmStateCheck.CHECK); + oHolder.mRlvPhotos.setVisibility(View.GONE); + break; + case CHECK: + oHolder.mScvOptions.setCheckState(EmStateCheck.UNCHECK); + mData.get(i).setState(EmStateCheck.UNCHECK); + oHolder.mRlvPhotos.setVisibility(View.VISIBLE); + initPhotosView(oHolder.mRlvPhotos, mData.get(i), i); + break; + case UNCHECK: + oHolder.mRlvPhotos.setVisibility(View.GONE); + oHolder.mScvOptions.setCheckState(EmStateCheck.NORMAL); + mData.get(i).setState(EmStateCheck.NORMAL); + break; + } + }); + if (mData.get(i).getState() == EmStateCheck.UNCHECK) { + oHolder.mRlvPhotos.setVisibility(View.VISIBLE); + initPhotosView(oHolder.mRlvPhotos, mData.get(i), i); + } else { + oHolder.mRlvPhotos.setVisibility(View.GONE); + } + oHolder.mTvTitle.setText(mData.get(i).getTitle()); + } + + public void initPhotosView(RecyclerView rlv, Options op, int index) { + AddPhotoAdapter photoAdapter = new AddPhotoAdapter(mContext, op.getPhotos()); + rlv.setAdapter(photoAdapter); + rlv.setLayoutManager(new GridLayoutManager(mContext, 4)); + photoAdapter.addOnItemClickListener(bean -> { + if (mSelectPhotoListener != null) { + if (TextUtils.isEmpty(bean.getPath())) { + //空数据,选择图片 + mSelectPhotoListener.onSelectPhoto(bean, op, index,1); + } else { + mSelectPhotoListener.onSelectPhoto(bean,op,index,2); + + } + } + }); + } + + private SelectPhoto mSelectPhotoListener; + + public void addSelectPhotoListener(SelectPhoto selectPhotoListener) { + this.mSelectPhotoListener = selectPhotoListener; + } + + public interface SelectPhoto { + void onSelectPhoto(AddPhotoBean bean, Options options, int i,int type); + } +} diff --git a/app/src/main/java/com/sucstepsoft/txrealtimelocation/activitys/issue/demo/OptionsHolder.java b/app/src/main/java/com/sucstepsoft/txrealtimelocation/activitys/issue/demo/OptionsHolder.java new file mode 100644 index 0000000..ea71788 --- /dev/null +++ b/app/src/main/java/com/sucstepsoft/txrealtimelocation/activitys/issue/demo/OptionsHolder.java @@ -0,0 +1,28 @@ +package com.sucstepsoft.txrealtimelocation.activitys.issue.demo; + +import android.support.annotation.NonNull; +import android.support.v7.widget.RecyclerView; +import android.view.View; +import android.widget.TextView; + +import com.sucstepsoft.txrealtimelocation.R; +import com.sucstepsoft.txrealtimelocation.widget.StateCheckView; + +/** + * 作者: adam + * 日期: 2020/3/27 - 10:32 AM + * 邮箱: itgaojian@163.com + * 描述: + */ +public class OptionsHolder extends RecyclerView.ViewHolder { + public TextView mTvTitle; + public StateCheckView mScvOptions; + public RecyclerView mRlvPhotos; + + public OptionsHolder(@NonNull View itemView) { + super(itemView); + mTvTitle = itemView.findViewById(R.id.tv_title); + mScvOptions = itemView.findViewById(R.id.scv_options); + mRlvPhotos = itemView.findViewById(R.id.rlv_photos); + } +} diff --git a/app/src/main/java/com/sucstepsoft/txrealtimelocation/activitys/locus/LocusMapActivity.java b/app/src/main/java/com/sucstepsoft/txrealtimelocation/activitys/locus/LocusMapActivity.java index 1d8c895..bedb536 100755 --- a/app/src/main/java/com/sucstepsoft/txrealtimelocation/activitys/locus/LocusMapActivity.java +++ b/app/src/main/java/com/sucstepsoft/txrealtimelocation/activitys/locus/LocusMapActivity.java @@ -1,1082 +1,1082 @@ -package com.sucstepsoft.txrealtimelocation.activitys.locus; - -import android.app.ProgressDialog; -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.graphics.Color; -import android.graphics.Path; -import android.support.v7.widget.LinearLayoutManager; -import android.support.v7.widget.RecyclerView; -import android.text.TextUtils; -import android.view.View; -import android.widget.Button; -import android.widget.ImageView; -import android.widget.RadioGroup; -import android.widget.RelativeLayout; -import android.widget.TextView; -import android.widget.ZoomControls; - -import com.baidu.location.BDAbstractLocationListener; -import com.baidu.location.BDLocation; -import com.baidu.location.LocationClient; -import com.baidu.location.LocationClientOption; -import com.baidu.mapapi.map.BaiduMap; -import com.baidu.mapapi.map.BitmapDescriptor; -import com.baidu.mapapi.map.BitmapDescriptorFactory; -import com.baidu.mapapi.map.InfoWindow; -import com.baidu.mapapi.map.MapStatus; -import com.baidu.mapapi.map.MapStatusUpdate; -import com.baidu.mapapi.map.MapStatusUpdateFactory; -import com.baidu.mapapi.map.MapView; -import com.baidu.mapapi.map.MarkerOptions; -import com.baidu.mapapi.map.MyLocationData; -import com.baidu.mapapi.map.OverlayOptions; -import com.baidu.mapapi.map.PolygonOptions; -import com.baidu.mapapi.map.PolylineOptions; -import com.baidu.mapapi.map.Stroke; -import com.baidu.mapapi.model.LatLng; -import com.baidu.mapapi.utils.DistanceUtil; -import com.bigkoo.pickerview.builder.TimePickerBuilder; -import com.bigkoo.pickerview.view.TimePickerView; -import com.bumptech.glide.Glide; -import com.bumptech.glide.load.resource.bitmap.CircleCrop; -import com.bumptech.glide.request.RequestOptions; -import com.sucstepsoft.cm_utils.constant.PathConfig; -import com.sucstepsoft.cm_utils.constant.TimeConstants; -import com.sucstepsoft.cm_utils.core.retrofit_net.BaseUrlApi; -import com.sucstepsoft.cm_utils.core.retrofit_net.RetrofitManager; -import com.sucstepsoft.cm_utils.core.widget.base.BaseActivity; -import com.sucstepsoft.cm_utils.utils.LogUtils; -import com.sucstepsoft.cm_utils.utils.TimeUtils; -import com.sucstepsoft.cm_utils.utils.ToastUtils; -import com.sucstepsoft.cm_utils.utils.UIUtil; -import com.sucstepsoft.cm_utils.utils.UserLgUtils; -import com.sucstepsoft.txrealtimelocation.R; -import com.sucstepsoft.txrealtimelocation.adapters.LocusStepAdapter; -import com.sucstepsoft.txrealtimelocation.beans.DrawMapLineBean; -import com.sucstepsoft.txrealtimelocation.beans.LocusTextBean; -import com.sucstepsoft.txrealtimelocation.beans.MineLocationBean; -import com.sucstepsoft.txrealtimelocation.beans.PenLineBean; -import com.sucstepsoft.txrealtimelocation.net.LocationApiService; -import com.sucstepsoft.txrealtimelocation.utils.PointUtils; - -import java.text.DecimalFormat; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -import butterknife.BindView; -import butterknife.ButterKnife; -import butterknife.Unbinder; -import io.reactivex.Observable; -import io.reactivex.Observer; -import io.reactivex.android.schedulers.AndroidSchedulers; -import io.reactivex.disposables.Disposable; -import io.reactivex.schedulers.Schedulers; - -/** - * createTime:2019-7-30 - * 工作轨迹 - */ -public class LocusMapActivity extends BaseActivity { - @BindView(R.id.mv_map) - MapView mMapView; - @BindView(R.id.rg_type) - RadioGroup mRgShowType; - @BindView(R.id.rlv_step) - RecyclerView mRlvStep; - @BindView(R.id.iv_user_icon) - ImageView mIvUserIcon; - @BindView(R.id.tv_user_name) - TextView mTvUserName; - @BindView(R.id.tv_date) - TextView mTvDate; - @BindView(R.id.tv_distance) - TextView mTvDistance; - @BindView(R.id.btn_reload) - Button mBtnReload; - @BindView(R.id.rg_map_type) - RadioGroup mRgMapType; - @BindView(R.id.rl_map_view) - RelativeLayout mRlMapView; - // @BindView(R.id.tv_end_date) -// TextView mTvEndDate; -// @BindView(R.id.btn_search) -// Button mBtnSearch; - private Unbinder mBind; - private BaiduMap mBaiduMap; - private TimePickerView mTimePickerView; - private int mCurrentShowType = 1;//1是地图 2是文本 - // private double latitude = 111.771815; -// private double longitude = 40.823879; - //109.926934,40.574501 - private LatLng mDefaultLocation = new LatLng(PathConfig.LA, PathConfig.LO); - private SimpleDateFormat mDateFormat = new SimpleDateFormat("yyyy-MM-dd"); - private SimpleDateFormat mTimeFormat = new SimpleDateFormat("HH:mm:ss"); - private String mChooseDate = ""; - private String mNowDate; - private List mStepBeansMain; - private LocusStepAdapter mAdapter; - private BitmapDescriptor mBitMap; - private ProgressDialog mProgressDialog; - private List mPenLineBeans = new ArrayList<>(); - private MessageReceiver mReceiver; - private String mCurrentDistance = "0米"; - private DecimalFormat mFormat; - private String mEndTime; - private LocationClient mLocationClient; - - @Override - protected int setLayoutId() { - return R.layout.activity_locus_map; - } - - @Override - public void initData() { - mBind = ButterKnife.bind(this); - refreshView(STATE_LOAD_SUCCESS); - mTvBaseTitle.setText("工作路径"); - mBaiduMap = mMapView.getMap(); - MapStatus ms = new MapStatus.Builder().zoom(16).target(mDefaultLocation).build(); - MapStatusUpdate u = MapStatusUpdateFactory.newMapStatus(ms); - mBaiduMap.animateMapStatus(u); - List mStep = new ArrayList<>(); - mAdapter = new LocusStepAdapter(this, mStep); - mRlvStep.setLayoutManager(new LinearLayoutManager(this)); - setCurrentShowView(); - mRlvStep.setAdapter(mAdapter); - mRgShowType.setOnCheckedChangeListener((group, checkedId) -> { - switch (checkedId) { - case R.id.rb_map: - mCurrentShowType = 1; - break; - case R.id.rb_text: - mCurrentShowType = 2; - break; - } - setCurrentShowView(); - }); - mRgMapType.setOnCheckedChangeListener((group, checkedId) -> { - int id = 0; - switch (checkedId) { - case R.id.rb_type_map://普通的 - id = 123; - break; - case R.id.rb_satellite://卫星地图 - id = 1234; - break; - } - if (id != 0) { - setMapType(id); - } - }); -// mBtnSearch.setOnClickListener(v -> { -// if (TextUtils.isEmpty(mEndTime) || TextUtils.isEmpty(mChooseDate)) { -// ToastUtils.showShort("请选择时间"); -// } else { -// getUserList(mChooseDate, mEndTime); +//package com.sucstepsoft.txrealtimelocation.activitys.locus; +// +//import android.app.ProgressDialog; +//import android.content.BroadcastReceiver; +//import android.content.Context; +//import android.content.Intent; +//import android.graphics.Color; +//import android.graphics.Path; +//import android.support.v7.widget.LinearLayoutManager; +//import android.support.v7.widget.RecyclerView; +//import android.text.TextUtils; +//import android.view.View; +//import android.widget.Button; +//import android.widget.ImageView; +//import android.widget.RadioGroup; +//import android.widget.RelativeLayout; +//import android.widget.TextView; +//import android.widget.ZoomControls; +// +//import com.baidu.location.BDAbstractLocationListener; +//import com.baidu.location.BDLocation; +//import com.baidu.location.LocationClient; +//import com.baidu.location.LocationClientOption; +//import com.baidu.mapapi.map.BaiduMap; +//import com.baidu.mapapi.map.BitmapDescriptor; +//import com.baidu.mapapi.map.BitmapDescriptorFactory; +//import com.baidu.mapapi.map.InfoWindow; +//import com.baidu.mapapi.map.MapStatus; +//import com.baidu.mapapi.map.MapStatusUpdate; +//import com.baidu.mapapi.map.MapStatusUpdateFactory; +//import com.baidu.mapapi.map.MapView; +//import com.baidu.mapapi.map.MarkerOptions; +//import com.baidu.mapapi.map.MyLocationData; +//import com.baidu.mapapi.map.OverlayOptions; +//import com.baidu.mapapi.map.PolygonOptions; +//import com.baidu.mapapi.map.PolylineOptions; +//import com.baidu.mapapi.map.Stroke; +//import com.baidu.mapapi.model.LatLng; +//import com.baidu.mapapi.utils.DistanceUtil; +//import com.bigkoo.pickerview.builder.TimePickerBuilder; +//import com.bigkoo.pickerview.view.TimePickerView; +//import com.bumptech.glide.Glide; +//import com.bumptech.glide.load.resource.bitmap.CircleCrop; +//import com.bumptech.glide.request.RequestOptions; +//import com.sucstepsoft.cm_utils.constant.PathConfig; +//import com.sucstepsoft.cm_utils.constant.TimeConstants; +//import com.sucstepsoft.cm_utils.core.retrofit_net.BaseUrlApi; +//import com.sucstepsoft.cm_utils.core.retrofit_net.RetrofitManager; +//import com.sucstepsoft.cm_utils.core.widget.base.BaseActivity; +//import com.sucstepsoft.cm_utils.utils.LogUtils; +//import com.sucstepsoft.cm_utils.utils.TimeUtils; +//import com.sucstepsoft.cm_utils.utils.ToastUtils; +//import com.sucstepsoft.cm_utils.utils.UIUtil; +//import com.sucstepsoft.cm_utils.utils.UserLgUtils; +//import com.sucstepsoft.txrealtimelocation.R; +//import com.sucstepsoft.txrealtimelocation.adapters.LocusStepAdapter; +//import com.sucstepsoft.txrealtimelocation.beans.DrawMapLineBean; +//import com.sucstepsoft.txrealtimelocation.beans.LocusTextBean; +//import com.sucstepsoft.txrealtimelocation.beans.MineLocationBean; +//import com.sucstepsoft.txrealtimelocation.beans.PenLineBean; +//import com.sucstepsoft.txrealtimelocation.net.LocationApiService; +//import com.sucstepsoft.txrealtimelocation.utils.PointUtils; +// +//import java.text.DecimalFormat; +//import java.text.SimpleDateFormat; +//import java.util.ArrayList; +//import java.util.Collections; +//import java.util.List; +// +//import butterknife.BindView; +//import butterknife.ButterKnife; +//import butterknife.Unbinder; +//import io.reactivex.Observable; +//import io.reactivex.Observer; +//import io.reactivex.android.schedulers.AndroidSchedulers; +//import io.reactivex.disposables.Disposable; +//import io.reactivex.schedulers.Schedulers; +// +///** +// * createTime:2019-7-30 +// * 工作轨迹 +// */ +//public class LocusMapActivity extends BaseActivity { +// @BindView(R.id.mv_map) +// MapView mMapView; +// @BindView(R.id.rg_type) +// RadioGroup mRgShowType; +// @BindView(R.id.rlv_step) +// RecyclerView mRlvStep; +// @BindView(R.id.iv_user_icon) +// ImageView mIvUserIcon; +// @BindView(R.id.tv_user_name) +// TextView mTvUserName; +// @BindView(R.id.tv_date) +// TextView mTvDate; +// @BindView(R.id.tv_distance) +// TextView mTvDistance; +// @BindView(R.id.btn_reload) +// Button mBtnReload; +// @BindView(R.id.rg_map_type) +// RadioGroup mRgMapType; +// @BindView(R.id.rl_map_view) +// RelativeLayout mRlMapView; +// // @BindView(R.id.tv_end_date) +//// TextView mTvEndDate; +//// @BindView(R.id.btn_search) +//// Button mBtnSearch; +// private Unbinder mBind; +// private BaiduMap mBaiduMap; +// private TimePickerView mTimePickerView; +// private int mCurrentShowType = 1;//1是地图 2是文本 +// // private double latitude = 111.771815; +//// private double longitude = 40.823879; +// //109.926934,40.574501 +// private LatLng mDefaultLocation = new LatLng(PathConfig.LA, PathConfig.LO); +// private SimpleDateFormat mDateFormat = new SimpleDateFormat("yyyy-MM-dd"); +// private SimpleDateFormat mTimeFormat = new SimpleDateFormat("HH:mm:ss"); +// private String mChooseDate = ""; +// private String mNowDate; +// private List mStepBeansMain; +// private LocusStepAdapter mAdapter; +// private BitmapDescriptor mBitMap; +// private ProgressDialog mProgressDialog; +// private List mPenLineBeans = new ArrayList<>(); +// private MessageReceiver mReceiver; +// private String mCurrentDistance = "0米"; +// private DecimalFormat mFormat; +// private String mEndTime; +// private LocationClient mLocationClient; +// +// @Override +// protected int setLayoutId() { +// return R.layout.activity_locus_map; +// } +// +// @Override +// public void initData() { +// mBind = ButterKnife.bind(this); +// refreshView(STATE_LOAD_SUCCESS); +// mTvBaseTitle.setText("工作路径"); +// mBaiduMap = mMapView.getMap(); +// MapStatus ms = new MapStatus.Builder().zoom(16).target(mDefaultLocation).build(); +// MapStatusUpdate u = MapStatusUpdateFactory.newMapStatus(ms); +// mBaiduMap.animateMapStatus(u); +// List mStep = new ArrayList<>(); +// mAdapter = new LocusStepAdapter(this, mStep); +// mRlvStep.setLayoutManager(new LinearLayoutManager(this)); +// setCurrentShowView(); +// mRlvStep.setAdapter(mAdapter); +// mRgShowType.setOnCheckedChangeListener((group, checkedId) -> { +// switch (checkedId) { +// case R.id.rb_map: +// mCurrentShowType = 1; +// break; +// case R.id.rb_text: +// mCurrentShowType = 2; +// break; +// } +// setCurrentShowView(); +// }); +// mRgMapType.setOnCheckedChangeListener((group, checkedId) -> { +// int id = 0; +// switch (checkedId) { +// case R.id.rb_type_map://普通的 +// id = 123; +// break; +// case R.id.rb_satellite://卫星地图 +// id = 1234; +// break; +// } +// if (id != 0) { +// setMapType(id); // } // }); - mFormat = new DecimalFormat("#.00"); - mNowDate = mDateFormat.format(System.currentTimeMillis()); - getCurrentDataList(); - setTouchDelegate(mTvDate, 30); - mTvDate.setText(mNowDate); - mTvDate.setOnClickListener(v -> showPickerView()); - mTvUserName.setText("登录人:" + UserLgUtils.getName()); - Glide.with(mActivity) - .load(BaseUrlApi.BASE_IMG_URL + UserLgUtils.getAvatar()) - .apply(RequestOptions.bitmapTransform(new CircleCrop()) - .error(R.drawable.ic_user_default) - .placeholder(R.drawable.ic_user_default)) - .into(mIvUserIcon); - getUserPenList(); -// mReceiver = new MessageReceiver(); -// IntentFilter filter = new IntentFilter(); -// filter.addAction(PathConfig.ACTION_LOCATION_MESSAGE); -// registerReceiver(mReceiver, filter); - mBtnReload.setOnClickListener(v -> { - if (mCurrent != null && mCurrent.getLatitude() != 0 && mCurrent.getLongitude() != 0) { - MapStatus cur = new MapStatus.Builder().zoom(16).target(new LatLng(mCurrent.getLatitude(), mCurrent.getLongitude())).build(); - MapStatusUpdate curUpdate = MapStatusUpdateFactory.newMapStatus(cur); - mBaiduMap.animateMapStatus(curUpdate); - } - }); - View child = mMapView.getChildAt(1); - if (child != null && (child instanceof ImageView || child instanceof ZoomControls)) { - child.setVisibility(View.GONE); - } - mMapView.showZoomControls(false); - startSignLocation(); - } - - - private void setMapType(int id) { - if (id == 123) { - mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL); - } else { - mBaiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE); - } - } - - private void getUserPenList() { - RetrofitManager.getInstance() - .create(LocationApiService.class) - .getUserPenList(UserLgUtils.getToken()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer>() { - @Override - public void onSubscribe(Disposable d) { - - } - - @Override - public void onNext(List penLineBeans) { - if (penLineBeans != null && penLineBeans.size() > 0) { - mPenLineBeans = penLineBeans; - drawPenToMap(penLineBeans); - } - } - - @Override - public void onError(Throwable e) { - ToastUtils.showShort("获取围栏数据失败,请稍后重试"); - } - - @Override - public void onComplete() { - - } - }); - } - - /** - * 显示时间 - */ - private void showPickerView() { - if (mTimePickerView == null) { - mTimePickerView = new TimePickerBuilder(mActivity, (date, v) -> { - boolean i = TimeUtils.compare(mNowDate, mDateFormat.format(date)); - if (i) { - ToastUtils.showShort("请选择当前时间之前的日期."); - } else { - mTvDate.setText(mDateFormat.format(date)); - mChooseDate = mDateFormat.format(date); - getUserList(mChooseDate); - } - }) - .setTitleText("请选择日期") - .setCancelColor(Color.parseColor("#1189FF")) - .setSubmitColor(Color.parseColor("#1189FF")) - .setType(new boolean[]{true, true, true, false, false, false}) - .setTitleColor(Color.parseColor("#1189FF")) - .build(); - } - mTimePickerView.show(); - } - - /** - * 获取当天数据 - */ - private void getCurrentDataList() { - mProgressDialog = UIUtil.initDialog(mActivity, "数据加载中..."); - mProgressDialog.show(); - RetrofitManager.getInstance() - .create(LocationApiService.class) - .getUserLocationList(UserLgUtils.getToken()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer>() { - @Override - public void onSubscribe(Disposable d) { - - } - - @Override - public void onNext(List mineLocationBeans) { - LogUtils.e(mineLocationBeans.size()); - if (mineLocationBeans != null && mineLocationBeans.size() > 0) { - drawLineToMap(mineLocationBeans); -// parserPoint(mineLocationBeans); - parserLocationPoint(mineLocationBeans); - } else { - mProgressDialog.dismiss(); -// ToastUtils.showShort("暂无定位数据"); - } - } - - @Override - public void onError(Throwable e) { - mProgressDialog.dismiss(); - ToastUtils.showShort("获取工作路径失败,请稍后重试."); - } - - @Override - public void onComplete() { - - } - }); - } - - private List mTextBeans = new ArrayList<>(); - - private void drawLine(List datas) { - //添加开始点 - MineLocationBean startBean = datas.get(0); - LocusTextBean bean = new LocusTextBean(); - if (TextUtils.isEmpty(startBean.getUserLocation()) || "null".equals(startBean.getUserLocation())) { - bean.setAddress("定位地址:未知"); - } else { - bean.setAddress(startBean.getUserLocation()); - } - bean.setTime(startBean.getGmtCreate()); - bean.setStateTime("开始定位" + startBean.getGmtCreate()); - bean.setType(LocusStepAdapter.TYPE_START); - bean.setCreateTime(startBean.getGmtCreate()); - mTextBeans.add(bean); - for (int i = 0; i < datas.size(); i++) { - if (i == datas.size() - 1) { - break; - } - MineLocationBean bean1 = datas.get(i); - MineLocationBean bean2 = datas.get(i + 1); - draw(bean1, bean2); - } - } - - private void draw(MineLocationBean bean1, MineLocationBean bean2) { - - } - - /** - * 根据时间范围获取数据 - */ - private void getUserList(String date) { - mProgressDialog = UIUtil.initDialog(mActivity, "数据加载中..."); - mProgressDialog.show(); - String end = "23:59:59"; - String start = "00:00:00"; - RetrofitManager.getInstance() - .create(LocationApiService.class) - .getUserLocationList(date, start, end, UserLgUtils.getToken()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer>() { - @Override - public void onSubscribe(Disposable d) { - - } - - @Override - public void onNext(List mineLocationBeans) { - LogUtils.e(mineLocationBeans.size()); - if (mineLocationBeans != null && mineLocationBeans.size() > 0) { - drawLineToMap(mineLocationBeans); -// parserPoint(mineLocationBeans); - parserLocationPoint(mineLocationBeans); - } else { - mAdapter.setData(new ArrayList<>()); - mBaiduMap.clear(); - if (mPenLineBeans != null && mPenLineBeans.size() > 0) { - drawPenToMap(mPenLineBeans); - } - mProgressDialog.dismiss(); - ToastUtils.showShort("暂无历史工作轨迹"); - } - } - - @Override - public void onError(Throwable e) { - mProgressDialog.dismiss(); - ToastUtils.showShort("获取历史工作轨迹失败,请稍后重试."); - } - - @Override - public void onComplete() { - - } - }); - } - - - /** - * TODO 解析文本数据 - * - * @param mineBeans - */ - private void parserLocationPoint(List mineBeans) { - Collections.sort(mineBeans); - Observable.just(mineBeans) - .map((List mineLocationBeans) -> { - List mStepBeans = new ArrayList<>(); - if (mineBeans.size() >= 2) { - for (int i = 0; i < mineBeans.size(); i++) { - if (i != mineBeans.size() - 1) { - //第一个 - MineLocationBean preBean = mineBeans.get(i); - //下一点 - MineLocationBean nextBean = mineBeans.get(i + 1); - long timeSpan = TimeUtils.getTimeSpan(nextBean.getGmtCreate(), preBean.getGmtCreate(), TimeConstants.SEC); - LatLng preLatlng = new LatLng(Double.parseDouble(preBean.getUserLatitude()), Double.parseDouble(preBean.getUserLongitude())); - LatLng nextLatlng = new LatLng(Double.parseDouble(nextBean.getUserLatitude()), Double.parseDouble(nextBean.getUserLongitude())); - if (i == 0) { - LocusTextBean bean = new LocusTextBean(); - if (TextUtils.isEmpty(preBean.getUserLocation()) || "null".equals(preBean.getUserLocation())) { - bean.setAddress("定位地址:未知"); - } else { - bean.setAddress(preBean.getUserLocation()); - } - bean.setTime(preBean.getGmtCreate()); - bean.setStateTime("开始定位" + preBean.getGmtCreate()); - bean.setType(LocusStepAdapter.TYPE_START); - bean.setCreateTime(preBean.getGmtCreate()); - bean.setOrder(i); - mStepBeans.add(bean); - } else { - //TODO 1、距离 - double distance = DistanceUtil.getDistance(preLatlng, nextLatlng); - if (timeSpan < 600) { - //在线 - if (distance / timeSpan > 20) { - //TODO 速度大于20/s异常 - if (mStepBeans != null && mStepBeans.size() > 0) { - LocusTextBean tempbean = mStepBeans.get(mStepBeans.size() - 1); - if (tempbean.getType() == LocusStepAdapter.TYPE_UNUSUAL) { - //上一条也是移动的 //将停止时间累计 - long timeSpan2 = TimeUtils.getTimeSpan(nextBean.getGmtCreate(), tempbean.getCreateTime(), TimeConstants.SEC); - tempbean.setStateTime(timeSpan2 + ""); - tempbean.setCreateTime(nextBean.getGmtCreate()); - long l = tempbean.getSecond() + timeSpan2; - tempbean.setOrder(i); - tempbean.setSecond(l); - } else { - LocusTextBean text = mStepBeans.get(mStepBeans.size() - 1); - LocusTextBean bean = new LocusTextBean(); - if (TextUtils.isEmpty(preBean.getUserLocation()) || "null".equals(preBean.getUserLocation())) { - bean.setAddress("定位地址:未知"); - } else { - bean.setAddress("定位地址:" + preBean.getUserLocation()); - } - bean.setCreateTime(nextBean.getGmtCreate()); - bean.setTime(text.getCreateTime()); - long timeSpan1 = TimeUtils.getTimeSpan(nextBean.getGmtCreate(), text.getCreateTime(), TimeConstants.SEC); - bean.setStateTime(timeSpan1 + ""); - bean.setType(LocusStepAdapter.TYPE_UNUSUAL); - bean.setSecond(timeSpan1); - bean.setOrder(i); - mStepBeans.add(bean); - } - } else { - LocusTextBean bean = new LocusTextBean(); - if (TextUtils.isEmpty(preBean.getUserLocation()) || "null".equals(preBean.getUserLocation())) { - bean.setAddress("定位地址:未知"); - } else { - bean.setAddress("定位地址:" + preBean.getUserLocation()); - } - bean.setCreateTime(nextBean.getGmtCreate()); - bean.setTime(preBean.getGmtCreate()); - long timeSpan1 = TimeUtils.getTimeSpan(nextBean.getGmtCreate(), preBean.getGmtCreate(), TimeConstants.SEC); - bean.setStateTime(timeSpan1 + ""); - bean.setSecond(timeSpan1); - bean.setType(LocusStepAdapter.TYPE_UNUSUAL); - bean.setOrder(i); - mStepBeans.add(bean); - } - } else if (distance / timeSpan <= 0.5) { - //TODO 速度小于0.5m/s等待 - if (mStepBeans != null && mStepBeans.size() > 0) { - LocusTextBean tempbean = mStepBeans.get(mStepBeans.size() - 1); - if (tempbean.getType() == LocusStepAdapter.TYPE_STAY) { - //上一条也是移动的 //将停止时间累计 - long timeSpan2 = TimeUtils.getTimeSpan(nextBean.getGmtCreate(), tempbean.getCreateTime(), TimeConstants.SEC); - tempbean.setStateTime(timeSpan2 + ""); - tempbean.setCreateTime(nextBean.getGmtCreate()); - long l = tempbean.getSecond() + timeSpan2; - tempbean.setOrder(i); - tempbean.setSecond(l); - } else { - LocusTextBean text = mStepBeans.get(mStepBeans.size() - 1); - LocusTextBean bean = new LocusTextBean(); - if (TextUtils.isEmpty(preBean.getUserLocation()) || "null".equals(preBean.getUserLocation())) { - bean.setAddress("定位地址:未知"); - } else { - bean.setAddress("定位地址:" + preBean.getUserLocation()); - } - bean.setCreateTime(nextBean.getGmtCreate()); - bean.setTime(text.getCreateTime()); - long timeSpan1 = TimeUtils.getTimeSpan(nextBean.getGmtCreate(), text.getCreateTime(), TimeConstants.SEC); - bean.setStateTime(timeSpan1 + ""); - bean.setType(LocusStepAdapter.TYPE_STAY); - bean.setOrder(i); - bean.setSecond(timeSpan1); - mStepBeans.add(bean); - } - } else { - LocusTextBean bean = new LocusTextBean(); - if (TextUtils.isEmpty(preBean.getUserLocation()) || "null".equals(preBean.getUserLocation())) { - bean.setAddress("定位地址:未知"); - } else { - bean.setAddress("定位地址:" + preBean.getUserLocation()); - } - bean.setCreateTime(nextBean.getGmtCreate()); - bean.setTime(preBean.getGmtCreate()); - long timeSpan1 = TimeUtils.getTimeSpan(nextBean.getGmtCreate(), preBean.getGmtCreate(), TimeConstants.SEC); - bean.setStateTime(timeSpan1 + ""); - bean.setSecond(timeSpan1); - bean.setType(LocusStepAdapter.TYPE_STAY); - bean.setOrder(i); - mStepBeans.add(bean); - } - } else { - //TODO 移动 - if (mStepBeans != null && mStepBeans.size() > 0) { - LocusTextBean tempbean = mStepBeans.get(mStepBeans.size() - 1); - if (tempbean.getType() == LocusStepAdapter.TYPE_ONLINE) { - //上一条也是移动的 //将停止时间累计 - long timeSpan2 = TimeUtils.getTimeSpan(nextBean.getGmtCreate(), tempbean.getCreateTime(), TimeConstants.SEC); - tempbean.setStateTime(timeSpan2 + ""); - tempbean.setCreateTime(nextBean.getGmtCreate()); - long l = tempbean.getSecond() + timeSpan2; - tempbean.setSecond(l); - tempbean.setOrder(i); - } else { - LocusTextBean locusTextBean = mStepBeans.get(mStepBeans.size() - 1); - LocusTextBean bean = new LocusTextBean(); - if (TextUtils.isEmpty(preBean.getUserLocation()) || "null".equals(preBean.getUserLocation())) { - bean.setAddress("定位地址:未知"); - } else { - bean.setAddress("定位地址:" + preBean.getUserLocation()); - } - bean.setCreateTime(nextBean.getGmtCreate()); - bean.setTime(locusTextBean.getCreateTime()); - long timeSpan1 = TimeUtils.getTimeSpan(nextBean.getGmtCreate(), locusTextBean.getCreateTime(), TimeConstants.SEC); - bean.setStateTime(timeSpan1 + ""); - bean.setType(LocusStepAdapter.TYPE_ONLINE); - bean.setSecond(timeSpan1); - bean.setOrder(i); - mStepBeans.add(bean); - } - } else { - LocusTextBean bean = new LocusTextBean(); - if (TextUtils.isEmpty(preBean.getUserLocation()) || "null".equals(preBean.getUserLocation())) { - bean.setAddress("定位地址:未知"); - } else { - bean.setAddress("定位地址:" + preBean.getUserLocation()); - } - bean.setCreateTime(nextBean.getGmtCreate()); - bean.setTime(preBean.getGmtCreate()); - long timeSpan1 = TimeUtils.getTimeSpan(nextBean.getGmtCreate(), preBean.getGmtCreate(), TimeConstants.SEC); - bean.setStateTime(timeSpan1 + ""); - bean.setSecond(timeSpan1); - bean.setType(LocusStepAdapter.TYPE_ONLINE); - bean.setOrder(i); - mStepBeans.add(bean); - } - } - } else { - //TODO 失联 - if (mStepBeans != null && mStepBeans.size() > 0) { - LocusTextBean tempbean = mStepBeans.get(mStepBeans.size() - 1); - if (tempbean.getType() == LocusStepAdapter.TYPE_OFFLINE) { - //上一条也是移动的 //将停止时间累计 - long timeSpan2 = TimeUtils.getTimeSpan(nextBean.getGmtCreate(), tempbean.getCreateTime(), TimeConstants.SEC); - tempbean.setStateTime(timeSpan2 + ""); - tempbean.setCreateTime(nextBean.getGmtCreate()); - long l = tempbean.getSecond() + timeSpan2; - tempbean.setSecond(l); - tempbean.setOrder(i); - } else { - LocusTextBean locusTextBean = mStepBeans.get(mStepBeans.size() - 1); - LocusTextBean bean = new LocusTextBean(); - if (TextUtils.isEmpty(preBean.getUserLocation()) || "null".equals(preBean.getUserLocation())) { - bean.setAddress("定位地址:未知"); - } else { - bean.setAddress("定位地址:" + preBean.getUserLocation()); - } - bean.setCreateTime(nextBean.getGmtCreate()); - bean.setTime(locusTextBean.getCreateTime()); - long timeSpan1 = TimeUtils.getTimeSpan(nextBean.getGmtCreate(), locusTextBean.getCreateTime(), TimeConstants.SEC); - bean.setStateTime(timeSpan1 + ""); - bean.setType(LocusStepAdapter.TYPE_OFFLINE); - bean.setSecond(timeSpan1); - bean.setOrder(i); - mStepBeans.add(bean); - } - } else { - LocusTextBean bean = new LocusTextBean(); - if (TextUtils.isEmpty(preBean.getUserLocation()) || "null".equals(preBean.getUserLocation())) { - bean.setAddress("定位地址:未知"); - } else { - bean.setAddress("定位地址:" + preBean.getUserLocation()); - } - bean.setOrder(i); - bean.setCreateTime(nextBean.getGmtCreate()); - bean.setTime(preBean.getGmtCreate()); - long timeSpan1 = TimeUtils.getTimeSpan(nextBean.getGmtCreate(), preBean.getGmtCreate(), TimeConstants.SEC); - bean.setStateTime(timeSpan1 + ""); - bean.setSecond(timeSpan1); - bean.setType(LocusStepAdapter.TYPE_OFFLINE); - mStepBeans.add(bean); - } - } - } - } else { - //最后一个点 - MineLocationBean mineLocationBean = mineBeans.get(mineBeans.size() - 1); - LocusTextBean bean = new LocusTextBean(); - if (TextUtils.isEmpty(mineLocationBean.getUserLocation()) || "null".equals(mineLocationBean.getUserLocation())) { - bean.setAddress("定位地址:未知"); - } else { - bean.setAddress(mineLocationBean.getUserLocation()); - } - bean.setOrder(i); - bean.setTime(mineLocationBean.getGmtCreate()); - bean.setStateTime("开始定位" + mineLocationBean.getGmtCreate()); - bean.setType(LocusStepAdapter.TYPE_STOP); - bean.setCreateTime(mineLocationBean.getGmtCreate()); - mStepBeans.add(bean); - } - } - } else { - MineLocationBean mineLocationBean = mineBeans.get(mineBeans.size() - 1); - LocusTextBean bean = new LocusTextBean(); - if (TextUtils.isEmpty(mineLocationBean.getUserLocation()) || "null".equals(mineLocationBean.getUserLocation())) { - bean.setAddress("定位地址:未知"); - } else { - bean.setAddress(mineLocationBean.getUserLocation()); - } - bean.setOrder(2); - bean.setTime(mineLocationBean.getGmtCreate()); - bean.setStateTime("开始定位" + mineLocationBean.getGmtCreate()); - bean.setType(LocusStepAdapter.TYPE_START); - bean.setCreateTime(mineLocationBean.getGmtCreate()); - mStepBeans.add(bean); - - LocusTextBean bean1 = new LocusTextBean(); - if (TextUtils.isEmpty(mineLocationBean.getUserLocation()) || "null".equals(mineLocationBean.getUserLocation())) { - bean1.setAddress("定位地址:未知"); - } else { - bean1.setAddress(mineLocationBean.getUserLocation()); - } - bean1.setOrder(1); - bean1.setTime(mineLocationBean.getGmtCreate()); - bean1.setStateTime("开始定位" + mineLocationBean.getGmtCreate()); - bean1.setType(LocusStepAdapter.TYPE_STOP); - bean1.setCreateTime(mineLocationBean.getGmtCreate()); - mStepBeans.add(bean1); - } - return mStepBeans; - }).subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer>() { - @Override - public void onSubscribe(Disposable d) { - - } - - @Override - public void onNext(List locusTextBeans) { - if (locusTextBeans != null && locusTextBeans.size() > 0) { - Collections.sort(locusTextBeans); - mAdapter.setData(locusTextBeans); - } - if (mProgressDialog != null && mProgressDialog.isShowing()) { - mProgressDialog.dismiss(); - } - } - - @Override - public void onError(Throwable e) { - e.printStackTrace(); - if (mProgressDialog != null && mProgressDialog.isShowing()) { - mProgressDialog.dismiss(); - } - ToastUtils.showShort("获取历史轨迹数据失败,请稍后重试"); - } - - @Override - public void onComplete() { - - } - }); - } - - /** - * 视图切换 - */ - private void setCurrentShowView() { - if (mCurrentShowType == 1) { - //显示地图 - mRlMapView.setVisibility(View.VISIBLE); - mRlvStep.setVisibility(View.GONE); - } else { - //显示文本 - mRlvStep.setVisibility(View.VISIBLE); - mRlMapView.setVisibility(View.GONE); - } - } - - /** - * 画线到地图上 - * - * @param mBeas - */ - private void drawLineToMap(List mBeas) { - //清除之前的 - if (mBeas.size() > 2) { - Collections.sort(mBeas); - List mTempBeans = new ArrayList<>(mBeas); - Observable.just(mTempBeans) - .map(mineLocationBeans -> { - //坐标集合 - //颜色集合 - List lineDatas = new ArrayList<>(); - for (int i = 0; i < mineLocationBeans.size(); i++) { - if (i != mineLocationBeans.size() - 1) { - //TODO 12:移动 13:等待 14:异常 - DrawMapLineBean bean = new DrawMapLineBean(); - //第一个 - MineLocationBean preBean = mineLocationBeans.get(i); - //下一点 - MineLocationBean nextBean = mineLocationBeans.get(i + 1); - long timeSpan = TimeUtils.getTimeSpan(nextBean.getGmtCreate(), preBean.getGmtCreate(), TimeConstants.SEC); - LatLng preLatlng = new LatLng(Double.parseDouble(preBean.getUserLatitude()), Double.parseDouble(preBean.getUserLongitude())); - LatLng nextLatlng = new LatLng(Double.parseDouble(nextBean.getUserLatitude()), Double.parseDouble(nextBean.getUserLongitude())); - //TODO 1、距离 - double distance = DistanceUtil.getDistance(preLatlng, nextLatlng); - if (timeSpan < 600) { - //在线 - if (distance / timeSpan > 20) { - //TODO 速度大于20/s异常 - bean.setOnePoint(preLatlng); - bean.setTwoPoint(nextLatlng); - bean.setType(14); - bean.setLineColor(Integer.valueOf(Color.RED)); - } else if (distance / timeSpan <= 0.5) { - //TODO 速度小于0.5m/s等待 - bean.setOnePoint(preLatlng); - bean.setTwoPoint(nextLatlng); - bean.setType(13); - bean.setLineColor(Integer.valueOf(Color.YELLOW)); - } else { - //TODO 移动 绿色 - bean.setOnePoint(preLatlng); - bean.setTwoPoint(nextLatlng); - bean.setType(12); - bean.setLineColor(Integer.valueOf(Color.parseColor("#218868"))); - } - } else { - //TODO 失联 - bean.setOnePoint(preLatlng); - bean.setTwoPoint(nextLatlng); - bean.setType(12); - bean.setLineColor(Integer.valueOf(Color.GRAY)); - } - lineDatas.add(bean); - } - } - return lineDatas; - }) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer>() { - @Override - public void onSubscribe(Disposable d) { - - } - - @Override - public void onNext(List o) { - mBaiduMap.clear(); - if (o != null && o.size() > 0) { - for (int i = 0; i < o.size(); i++) { - List points = new ArrayList<>(); - points.add(o.get(i).getOnePoint()); - points.add(o.get(i).getTwoPoint()); -// boolean dottedLine = false; -// if (o.get(i).getType() == 14 || o.get(i).getType() == 12) { -// dottedLine = true; -// } - OverlayOptions ooPolyline11 = new PolylineOptions() - .width(10) - .dottedLine(false) - .color(o.get(i).getLineColor()) - .points(points); - mBaiduMap.addOverlay(ooPolyline11); - } - moveMapToCenter(o.get(0).getOnePoint()); - } - if (mPenLineBeans != null && mPenLineBeans.size() > 0) { - drawPenToMap(mPenLineBeans); - } - } - - @Override - public void onError(Throwable e) { - e.printStackTrace(); - } - - @Override - public void onComplete() { - - } - }); - } - } - - private void moveMapToCenter(LatLng latLng) { - MapStatus ms = new MapStatus.Builder().zoom(16).target(latLng).build(); - MapStatusUpdate u = MapStatusUpdateFactory.newMapStatus(ms); - mBaiduMap.setMapStatus(u); - } - - /** - * 越界marker - * - * @param beans - */ - private void drawOverstepMarker(List beans) { - if (mBitMap == null) { - mBitMap = BitmapDescriptorFactory.fromResource(R.drawable.ic_beyond); - } - MarkerOptions markerOptions = new MarkerOptions() - .position(new LatLng(Double.parseDouble(beans.get(0).getUserLatitude()), Double.parseDouble(beans.get(0).getUserLongitude())))//mark出现的位置 - .icon(mBitMap) //mark图标 - .draggable(false)//mark可拖拽 - .animateType(MarkerOptions.MarkerAnimateType.none); - mBaiduMap.addOverlay(markerOptions); - } - - /** - * 批量添加mark - * - * @param points - */ - private void addMarksToMap(List points) { - View view = View.inflate(this, R.layout.item_mark_user, null); - BitmapDescriptor markIcon = BitmapDescriptorFactory.fromView(view); - int height = markIcon.getBitmap().getHeight(); - LogUtils.e(height); - List options = new ArrayList(); - LatLng point1 = new LatLng(39.92235, 116.380338); - LatLng point2 = new LatLng(39.947246, 116.414977); - OverlayOptions option1 = new MarkerOptions() - .position(point1) - .icon(markIcon); - OverlayOptions option2 = new MarkerOptions() - .position(point2) - .icon(markIcon); - options.add(option1); - options.add(option2); - mBaiduMap.addOverlays(options); - mBaiduMap.setOnMarkerClickListener(marker -> { - View infoView = View.inflate(this, R.layout.item_mark_info, null); - BitmapDescriptor infoBitmap = BitmapDescriptorFactory.fromView(infoView); - InfoWindow infoWindow = new InfoWindow(infoBitmap, marker.getPosition(), -height, () -> { - mBaiduMap.hideInfoWindow(); - }); - mBaiduMap.showInfoWindow(infoWindow); - return true; - }); - } - //TODO 片区中间绘制文字 -// LatLng center = PointUtils.getCenterOfGravityPoint(pts); -// OverlayOptions textOption = new TextOptions() -// .bgColor(0xAAFFFF00) -// .fontSize(24) -// .fontColor(0xFFFF00FF) -// .text(UserLgUtils.getName()) -// .rotate(-30) -// .position(center); -// mBaiduMap.addOverlay(textOption); - - /** - * 画电子围栏 - */ - private void drawPenToMap(List penLineBeans) { - for (int i = 0; i < penLineBeans.size(); i++) { - List areaPoints = penLineBeans.get(i).getAreaPoints(); - if (areaPoints != null && areaPoints.size() >= 4) { - List pts = new ArrayList<>(); - for (int j = 0; j < areaPoints.size(); j++) { - double la = Double.parseDouble(areaPoints.get(j).getLatitude()); - double lo = Double.parseDouble(areaPoints.get(j).getLongitude()); - pts.add(new LatLng(la, lo)); - } - double laend = Double.parseDouble(areaPoints.get(0).getLatitude()); - double loend = Double.parseDouble(areaPoints.get(0).getLongitude()); - pts.add(new LatLng(laend, loend)); - PenLineBean bean = penLineBeans.get(i); - int borderColor = Color.argb(80, bean.getBorderRed(), bean.getBorderGreen(), bean.getBorderBlue()); - int areColor = Color.argb(50, bean.getAreaRed(), bean.getAreaGreen(), bean.getAreaBlue()); - OverlayOptions polygonOption = new PolygonOptions() - .points(pts) - .stroke(new Stroke(3, borderColor)) - .fillColor(areColor); - mBaiduMap.addOverlay(polygonOption); - } - } - } - - private BDLocation mCurrent; - - public class MessageReceiver extends BroadcastReceiver { - @Override - public void onReceive(Context context, Intent intent) { - if (PathConfig.ACTION_LOCATION_MESSAGE.equals(intent.getAction())) { - - } - } - } - - private void startSignLocation() { - stopLocation(); - mLocationClient = new LocationClient(getApplicationContext()); - LocationClientOption locationOption = new LocationClientOption(); - SignLocationListener myLocationListener = new SignLocationListener(); - mLocationClient.registerLocationListener(myLocationListener); - locationOption.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy); - locationOption.setCoorType("bd09ll"); - locationOption.setScanSpan(30 * 1000); - locationOption.setIsNeedAddress(true); - locationOption.setNeedDeviceDirect(false); - locationOption.setLocationNotify(false); - locationOption.setIgnoreKillProcess(true); - locationOption.setIsNeedLocationDescribe(true); - locationOption.setIsNeedLocationPoiList(true); - locationOption.SetIgnoreCacheException(false); - locationOption.setOpenGps(true); - locationOption.setIsNeedAltitude(false); - mLocationClient.setLocOption(locationOption); - //开始定位 - mLocationClient.start(); - } - - private void stopLocation() { - if (null != mLocationClient) { - mLocationClient.stop(); - } - } - - private class SignLocationListener extends BDAbstractLocationListener { - @Override - public void onReceiveLocation(BDLocation bdLocation) { - if (bdLocation != null && bdLocation.getLatitude() != 0 && bdLocation.getLongitude() != 0) { - checkPointIsLegal(bdLocation); - } - } - } - - private void checkPointIsLegal(BDLocation bdLocation) { - if (PathConfig.CITY_CODE_DEFAULT.equals(bdLocation.getCityCode())) { - if (bdLocation != null && bdLocation.getLatitude() != Double.MIN_VALUE && bdLocation.getLongitude() != Double.MIN_VALUE) { - if (bdLocation.getRadius() <= 150) { - mBaiduMap.setMyLocationEnabled(true); - MyLocationData locData = new MyLocationData.Builder() - .accuracy(bdLocation.getRadius()) - .latitude(bdLocation.getLatitude()) - .longitude(bdLocation.getLongitude()).build(); - mBaiduMap.setMyLocationData(locData); - if (mCurrent == null) { - mCurrent = bdLocation; - moveMapToCenter(new LatLng(mCurrent.getLatitude(), mCurrent.getLongitude())); - } - if (mPenLineBeans != null && mPenLineBeans.size() > 0) { - boolean isIn = getPointIsIn(bdLocation, mPenLineBeans); - if (!isIn) { - setDisToView(bdLocation); - } else { - mTvDistance.setText("已在片区内"); - } - } - } - } - } - //显示定位图标 - } - - /** - * 设置距片区距离 - * - * @param location - */ - private void setDisToView(BDLocation location) { - List maxMin = new ArrayList<>(); - for (int i = 0; i < mPenLineBeans.size(); i++) { - PenLineBean penLineBean = mPenLineBeans.get(i); - if (penLineBean.getAreaPoints() != null && penLineBean.getAreaPoints().size() > 0) { - if (penLineBean.getAreaPoints() != null && penLineBean.getAreaPoints().size() >= 3) { - List tempList = new ArrayList<>(); - for (int j = 0; j < penLineBean.getAreaPoints().size(); j++) { - PenLineBean.AreaPointsBean areaPointsBean = penLineBean.getAreaPoints().get(j); - double la = Double.parseDouble(areaPointsBean.getLatitude()); - double lo = Double.parseDouble(areaPointsBean.getLongitude()); - LatLng latLng = new LatLng(la, lo); - LatLng currentLa = new LatLng(location.getLatitude(), location.getLongitude()); - double distance = DistanceUtil.getDistance(latLng, currentLa); - tempList.add(distance); - } - Double min = Collections.min(tempList); - maxMin.add(min); - } - } - } - if (maxMin.size() > 0) { - Double min = Collections.min(maxMin); - if (min > 1) { - String format = mFormat.format(min); - mTvDistance.setText("距片区距离:" + format + "米"); - } - } - } - - /** - * 判断是否在片区内 - * - * @param location - * @param penLineBeans - * @return - */ - private boolean getPointIsIn(BDLocation location, List penLineBeans) { - boolean isIn = false; - LatLng cur = new LatLng(location.getLatitude(), location.getLongitude()); - if (penLineBeans != null && penLineBeans.size() > 0) { - for (int i = 0; i < penLineBeans.size(); i++) { - List areaPoints = penLineBeans.get(i).getAreaPoints(); - if (areaPoints != null && areaPoints.size() > 3) { - List temps = new ArrayList<>(); - for (int j = 0; j < areaPoints.size(); j++) { - double la = Double.parseDouble(areaPoints.get(j).getLatitude()); - double lo = Double.parseDouble(areaPoints.get(j).getLongitude()); - LatLng latLng = new LatLng(la, lo); - temps.add(latLng); - } - boolean is = PointUtils.isInPolygon(cur, temps); - if (is) { - isIn = true; - break; - } - } - } - } - return isIn; - } - - - @Override - protected void onDestroy() { - stopLocation(); - mMapView.onDestroy(); -// if (mReceiver != null) { -// unregisterReceiver(mReceiver); +//// mBtnSearch.setOnClickListener(v -> { +//// if (TextUtils.isEmpty(mEndTime) || TextUtils.isEmpty(mChooseDate)) { +//// ToastUtils.showShort("请选择时间"); +//// } else { +//// getUserList(mChooseDate, mEndTime); +//// } +//// }); +// mFormat = new DecimalFormat("#.00"); +// mNowDate = mDateFormat.format(System.currentTimeMillis()); +// getCurrentDataList(); +// setTouchDelegate(mTvDate, 30); +// mTvDate.setText(mNowDate); +// mTvDate.setOnClickListener(v -> showPickerView()); +// mTvUserName.setText("登录人:" + UserLgUtils.getName()); +// Glide.with(mActivity) +// .load(BaseUrlApi.BASE_IMG_URL + UserLgUtils.getAvatar()) +// .apply(RequestOptions.bitmapTransform(new CircleCrop()) +// .error(R.drawable.ic_user_default) +// .placeholder(R.drawable.ic_user_default)) +// .into(mIvUserIcon); +// getUserPenList(); +//// mReceiver = new MessageReceiver(); +//// IntentFilter filter = new IntentFilter(); +//// filter.addAction(PathConfig.ACTION_LOCATION_MESSAGE); +//// registerReceiver(mReceiver, filter); +// mBtnReload.setOnClickListener(v -> { +// if (mCurrent != null && mCurrent.getLatitude() != 0 && mCurrent.getLongitude() != 0) { +// MapStatus cur = new MapStatus.Builder().zoom(16).target(new LatLng(mCurrent.getLatitude(), mCurrent.getLongitude())).build(); +// MapStatusUpdate curUpdate = MapStatusUpdateFactory.newMapStatus(cur); +// mBaiduMap.animateMapStatus(curUpdate); +// } +// }); +// View child = mMapView.getChildAt(1); +// if (child != null && (child instanceof ImageView || child instanceof ZoomControls)) { +// child.setVisibility(View.GONE); // } - if (mBind != null) { - mBind.unbind(); - } - super.onDestroy(); - } - -} +// mMapView.showZoomControls(false); +// startSignLocation(); +// } +// +// +// private void setMapType(int id) { +// if (id == 123) { +// mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL); +// } else { +// mBaiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE); +// } +// } +// +// private void getUserPenList() { +// RetrofitManager.getInstance() +// .create(LocationApiService.class) +// .getUserPenList(UserLgUtils.getToken()) +// .subscribeOn(Schedulers.io()) +// .observeOn(AndroidSchedulers.mainThread()) +// .subscribe(new Observer>() { +// @Override +// public void onSubscribe(Disposable d) { +// +// } +// +// @Override +// public void onNext(List penLineBeans) { +// if (penLineBeans != null && penLineBeans.size() > 0) { +// mPenLineBeans = penLineBeans; +// drawPenToMap(penLineBeans); +// } +// } +// +// @Override +// public void onError(Throwable e) { +// ToastUtils.showShort("获取围栏数据失败,请稍后重试"); +// } +// +// @Override +// public void onComplete() { +// +// } +// }); +// } +// +// /** +// * 显示时间 +// */ +// private void showPickerView() { +// if (mTimePickerView == null) { +// mTimePickerView = new TimePickerBuilder(mActivity, (date, v) -> { +// boolean i = TimeUtils.compare(mNowDate, mDateFormat.format(date)); +// if (i) { +// ToastUtils.showShort("请选择当前时间之前的日期."); +// } else { +// mTvDate.setText(mDateFormat.format(date)); +// mChooseDate = mDateFormat.format(date); +// getUserList(mChooseDate); +// } +// }) +// .setTitleText("请选择日期") +// .setCancelColor(Color.parseColor("#1189FF")) +// .setSubmitColor(Color.parseColor("#1189FF")) +// .setType(new boolean[]{true, true, true, false, false, false}) +// .setTitleColor(Color.parseColor("#1189FF")) +// .build(); +// } +// mTimePickerView.show(); +// } +// +// /** +// * 获取当天数据 +// */ +// private void getCurrentDataList() { +// mProgressDialog = UIUtil.initDialog(mActivity, "数据加载中..."); +// mProgressDialog.show(); +// RetrofitManager.getInstance() +// .create(LocationApiService.class) +// .getUserLocationList(UserLgUtils.getToken()) +// .subscribeOn(Schedulers.io()) +// .observeOn(AndroidSchedulers.mainThread()) +// .subscribe(new Observer>() { +// @Override +// public void onSubscribe(Disposable d) { +// +// } +// +// @Override +// public void onNext(List mineLocationBeans) { +// LogUtils.e(mineLocationBeans.size()); +// if (mineLocationBeans != null && mineLocationBeans.size() > 0) { +// drawLineToMap(mineLocationBeans); +//// parserPoint(mineLocationBeans); +// parserLocationPoint(mineLocationBeans); +// } else { +// mProgressDialog.dismiss(); +//// ToastUtils.showShort("暂无定位数据"); +// } +// } +// +// @Override +// public void onError(Throwable e) { +// mProgressDialog.dismiss(); +// ToastUtils.showShort("获取工作路径失败,请稍后重试."); +// } +// +// @Override +// public void onComplete() { +// +// } +// }); +// } +// +// private List mTextBeans = new ArrayList<>(); +// +// private void drawLine(List datas) { +// //添加开始点 +// MineLocationBean startBean = datas.get(0); +// LocusTextBean bean = new LocusTextBean(); +// if (TextUtils.isEmpty(startBean.getUserLocation()) || "null".equals(startBean.getUserLocation())) { +// bean.setAddress("定位地址:未知"); +// } else { +// bean.setAddress(startBean.getUserLocation()); +// } +// bean.setTime(startBean.getGmtCreate()); +// bean.setStateTime("开始定位" + startBean.getGmtCreate()); +// bean.setType(LocusStepAdapter.TYPE_START); +// bean.setCreateTime(startBean.getGmtCreate()); +// mTextBeans.add(bean); +// for (int i = 0; i < datas.size(); i++) { +// if (i == datas.size() - 1) { +// break; +// } +// MineLocationBean bean1 = datas.get(i); +// MineLocationBean bean2 = datas.get(i + 1); +// draw(bean1, bean2); +// } +// } +// +// private void draw(MineLocationBean bean1, MineLocationBean bean2) { +// +// } +// +// /** +// * 根据时间范围获取数据 +// */ +// private void getUserList(String date) { +// mProgressDialog = UIUtil.initDialog(mActivity, "数据加载中..."); +// mProgressDialog.show(); +// String end = "23:59:59"; +// String start = "00:00:00"; +// RetrofitManager.getInstance() +// .create(LocationApiService.class) +// .getUserLocationList(date, start, end, UserLgUtils.getToken()) +// .subscribeOn(Schedulers.io()) +// .observeOn(AndroidSchedulers.mainThread()) +// .subscribe(new Observer>() { +// @Override +// public void onSubscribe(Disposable d) { +// +// } +// +// @Override +// public void onNext(List mineLocationBeans) { +// LogUtils.e(mineLocationBeans.size()); +// if (mineLocationBeans != null && mineLocationBeans.size() > 0) { +// drawLineToMap(mineLocationBeans); +//// parserPoint(mineLocationBeans); +// parserLocationPoint(mineLocationBeans); +// } else { +// mAdapter.setData(new ArrayList<>()); +// mBaiduMap.clear(); +// if (mPenLineBeans != null && mPenLineBeans.size() > 0) { +// drawPenToMap(mPenLineBeans); +// } +// mProgressDialog.dismiss(); +// ToastUtils.showShort("暂无历史工作轨迹"); +// } +// } +// +// @Override +// public void onError(Throwable e) { +// mProgressDialog.dismiss(); +// ToastUtils.showShort("获取历史工作轨迹失败,请稍后重试."); +// } +// +// @Override +// public void onComplete() { +// +// } +// }); +// } +// +// +// /** +// * TODO 解析文本数据 +// * +// * @param mineBeans +// */ +// private void parserLocationPoint(List mineBeans) { +// Collections.sort(mineBeans); +// Observable.just(mineBeans) +// .map((List mineLocationBeans) -> { +// List mStepBeans = new ArrayList<>(); +// if (mineBeans.size() >= 2) { +// for (int i = 0; i < mineBeans.size(); i++) { +// if (i != mineBeans.size() - 1) { +// //第一个 +// MineLocationBean preBean = mineBeans.get(i); +// //下一点 +// MineLocationBean nextBean = mineBeans.get(i + 1); +// long timeSpan = TimeUtils.getTimeSpan(nextBean.getGmtCreate(), preBean.getGmtCreate(), TimeConstants.SEC); +// LatLng preLatlng = new LatLng(Double.parseDouble(preBean.getUserLatitude()), Double.parseDouble(preBean.getUserLongitude())); +// LatLng nextLatlng = new LatLng(Double.parseDouble(nextBean.getUserLatitude()), Double.parseDouble(nextBean.getUserLongitude())); +// if (i == 0) { +// LocusTextBean bean = new LocusTextBean(); +// if (TextUtils.isEmpty(preBean.getUserLocation()) || "null".equals(preBean.getUserLocation())) { +// bean.setAddress("定位地址:未知"); +// } else { +// bean.setAddress(preBean.getUserLocation()); +// } +// bean.setTime(preBean.getGmtCreate()); +// bean.setStateTime("开始定位" + preBean.getGmtCreate()); +// bean.setType(LocusStepAdapter.TYPE_START); +// bean.setCreateTime(preBean.getGmtCreate()); +// bean.setOrder(i); +// mStepBeans.add(bean); +// } else { +// //TODO 1、距离 +// double distance = DistanceUtil.getDistance(preLatlng, nextLatlng); +// if (timeSpan < 600) { +// //在线 +// if (distance / timeSpan > 20) { +// //TODO 速度大于20/s异常 +// if (mStepBeans != null && mStepBeans.size() > 0) { +// LocusTextBean tempbean = mStepBeans.get(mStepBeans.size() - 1); +// if (tempbean.getType() == LocusStepAdapter.TYPE_UNUSUAL) { +// //上一条也是移动的 //将停止时间累计 +// long timeSpan2 = TimeUtils.getTimeSpan(nextBean.getGmtCreate(), tempbean.getCreateTime(), TimeConstants.SEC); +// tempbean.setStateTime(timeSpan2 + ""); +// tempbean.setCreateTime(nextBean.getGmtCreate()); +// long l = tempbean.getSecond() + timeSpan2; +// tempbean.setOrder(i); +// tempbean.setSecond(l); +// } else { +// LocusTextBean text = mStepBeans.get(mStepBeans.size() - 1); +// LocusTextBean bean = new LocusTextBean(); +// if (TextUtils.isEmpty(preBean.getUserLocation()) || "null".equals(preBean.getUserLocation())) { +// bean.setAddress("定位地址:未知"); +// } else { +// bean.setAddress("定位地址:" + preBean.getUserLocation()); +// } +// bean.setCreateTime(nextBean.getGmtCreate()); +// bean.setTime(text.getCreateTime()); +// long timeSpan1 = TimeUtils.getTimeSpan(nextBean.getGmtCreate(), text.getCreateTime(), TimeConstants.SEC); +// bean.setStateTime(timeSpan1 + ""); +// bean.setType(LocusStepAdapter.TYPE_UNUSUAL); +// bean.setSecond(timeSpan1); +// bean.setOrder(i); +// mStepBeans.add(bean); +// } +// } else { +// LocusTextBean bean = new LocusTextBean(); +// if (TextUtils.isEmpty(preBean.getUserLocation()) || "null".equals(preBean.getUserLocation())) { +// bean.setAddress("定位地址:未知"); +// } else { +// bean.setAddress("定位地址:" + preBean.getUserLocation()); +// } +// bean.setCreateTime(nextBean.getGmtCreate()); +// bean.setTime(preBean.getGmtCreate()); +// long timeSpan1 = TimeUtils.getTimeSpan(nextBean.getGmtCreate(), preBean.getGmtCreate(), TimeConstants.SEC); +// bean.setStateTime(timeSpan1 + ""); +// bean.setSecond(timeSpan1); +// bean.setType(LocusStepAdapter.TYPE_UNUSUAL); +// bean.setOrder(i); +// mStepBeans.add(bean); +// } +// } else if (distance / timeSpan <= 0.5) { +// //TODO 速度小于0.5m/s等待 +// if (mStepBeans != null && mStepBeans.size() > 0) { +// LocusTextBean tempbean = mStepBeans.get(mStepBeans.size() - 1); +// if (tempbean.getType() == LocusStepAdapter.TYPE_STAY) { +// //上一条也是移动的 //将停止时间累计 +// long timeSpan2 = TimeUtils.getTimeSpan(nextBean.getGmtCreate(), tempbean.getCreateTime(), TimeConstants.SEC); +// tempbean.setStateTime(timeSpan2 + ""); +// tempbean.setCreateTime(nextBean.getGmtCreate()); +// long l = tempbean.getSecond() + timeSpan2; +// tempbean.setOrder(i); +// tempbean.setSecond(l); +// } else { +// LocusTextBean text = mStepBeans.get(mStepBeans.size() - 1); +// LocusTextBean bean = new LocusTextBean(); +// if (TextUtils.isEmpty(preBean.getUserLocation()) || "null".equals(preBean.getUserLocation())) { +// bean.setAddress("定位地址:未知"); +// } else { +// bean.setAddress("定位地址:" + preBean.getUserLocation()); +// } +// bean.setCreateTime(nextBean.getGmtCreate()); +// bean.setTime(text.getCreateTime()); +// long timeSpan1 = TimeUtils.getTimeSpan(nextBean.getGmtCreate(), text.getCreateTime(), TimeConstants.SEC); +// bean.setStateTime(timeSpan1 + ""); +// bean.setType(LocusStepAdapter.TYPE_STAY); +// bean.setOrder(i); +// bean.setSecond(timeSpan1); +// mStepBeans.add(bean); +// } +// } else { +// LocusTextBean bean = new LocusTextBean(); +// if (TextUtils.isEmpty(preBean.getUserLocation()) || "null".equals(preBean.getUserLocation())) { +// bean.setAddress("定位地址:未知"); +// } else { +// bean.setAddress("定位地址:" + preBean.getUserLocation()); +// } +// bean.setCreateTime(nextBean.getGmtCreate()); +// bean.setTime(preBean.getGmtCreate()); +// long timeSpan1 = TimeUtils.getTimeSpan(nextBean.getGmtCreate(), preBean.getGmtCreate(), TimeConstants.SEC); +// bean.setStateTime(timeSpan1 + ""); +// bean.setSecond(timeSpan1); +// bean.setType(LocusStepAdapter.TYPE_STAY); +// bean.setOrder(i); +// mStepBeans.add(bean); +// } +// } else { +// //TODO 移动 +// if (mStepBeans != null && mStepBeans.size() > 0) { +// LocusTextBean tempbean = mStepBeans.get(mStepBeans.size() - 1); +// if (tempbean.getType() == LocusStepAdapter.TYPE_ONLINE) { +// //上一条也是移动的 //将停止时间累计 +// long timeSpan2 = TimeUtils.getTimeSpan(nextBean.getGmtCreate(), tempbean.getCreateTime(), TimeConstants.SEC); +// tempbean.setStateTime(timeSpan2 + ""); +// tempbean.setCreateTime(nextBean.getGmtCreate()); +// long l = tempbean.getSecond() + timeSpan2; +// tempbean.setSecond(l); +// tempbean.setOrder(i); +// } else { +// LocusTextBean locusTextBean = mStepBeans.get(mStepBeans.size() - 1); +// LocusTextBean bean = new LocusTextBean(); +// if (TextUtils.isEmpty(preBean.getUserLocation()) || "null".equals(preBean.getUserLocation())) { +// bean.setAddress("定位地址:未知"); +// } else { +// bean.setAddress("定位地址:" + preBean.getUserLocation()); +// } +// bean.setCreateTime(nextBean.getGmtCreate()); +// bean.setTime(locusTextBean.getCreateTime()); +// long timeSpan1 = TimeUtils.getTimeSpan(nextBean.getGmtCreate(), locusTextBean.getCreateTime(), TimeConstants.SEC); +// bean.setStateTime(timeSpan1 + ""); +// bean.setType(LocusStepAdapter.TYPE_ONLINE); +// bean.setSecond(timeSpan1); +// bean.setOrder(i); +// mStepBeans.add(bean); +// } +// } else { +// LocusTextBean bean = new LocusTextBean(); +// if (TextUtils.isEmpty(preBean.getUserLocation()) || "null".equals(preBean.getUserLocation())) { +// bean.setAddress("定位地址:未知"); +// } else { +// bean.setAddress("定位地址:" + preBean.getUserLocation()); +// } +// bean.setCreateTime(nextBean.getGmtCreate()); +// bean.setTime(preBean.getGmtCreate()); +// long timeSpan1 = TimeUtils.getTimeSpan(nextBean.getGmtCreate(), preBean.getGmtCreate(), TimeConstants.SEC); +// bean.setStateTime(timeSpan1 + ""); +// bean.setSecond(timeSpan1); +// bean.setType(LocusStepAdapter.TYPE_ONLINE); +// bean.setOrder(i); +// mStepBeans.add(bean); +// } +// } +// } else { +// //TODO 失联 +// if (mStepBeans != null && mStepBeans.size() > 0) { +// LocusTextBean tempbean = mStepBeans.get(mStepBeans.size() - 1); +// if (tempbean.getType() == LocusStepAdapter.TYPE_OFFLINE) { +// //上一条也是移动的 //将停止时间累计 +// long timeSpan2 = TimeUtils.getTimeSpan(nextBean.getGmtCreate(), tempbean.getCreateTime(), TimeConstants.SEC); +// tempbean.setStateTime(timeSpan2 + ""); +// tempbean.setCreateTime(nextBean.getGmtCreate()); +// long l = tempbean.getSecond() + timeSpan2; +// tempbean.setSecond(l); +// tempbean.setOrder(i); +// } else { +// LocusTextBean locusTextBean = mStepBeans.get(mStepBeans.size() - 1); +// LocusTextBean bean = new LocusTextBean(); +// if (TextUtils.isEmpty(preBean.getUserLocation()) || "null".equals(preBean.getUserLocation())) { +// bean.setAddress("定位地址:未知"); +// } else { +// bean.setAddress("定位地址:" + preBean.getUserLocation()); +// } +// bean.setCreateTime(nextBean.getGmtCreate()); +// bean.setTime(locusTextBean.getCreateTime()); +// long timeSpan1 = TimeUtils.getTimeSpan(nextBean.getGmtCreate(), locusTextBean.getCreateTime(), TimeConstants.SEC); +// bean.setStateTime(timeSpan1 + ""); +// bean.setType(LocusStepAdapter.TYPE_OFFLINE); +// bean.setSecond(timeSpan1); +// bean.setOrder(i); +// mStepBeans.add(bean); +// } +// } else { +// LocusTextBean bean = new LocusTextBean(); +// if (TextUtils.isEmpty(preBean.getUserLocation()) || "null".equals(preBean.getUserLocation())) { +// bean.setAddress("定位地址:未知"); +// } else { +// bean.setAddress("定位地址:" + preBean.getUserLocation()); +// } +// bean.setOrder(i); +// bean.setCreateTime(nextBean.getGmtCreate()); +// bean.setTime(preBean.getGmtCreate()); +// long timeSpan1 = TimeUtils.getTimeSpan(nextBean.getGmtCreate(), preBean.getGmtCreate(), TimeConstants.SEC); +// bean.setStateTime(timeSpan1 + ""); +// bean.setSecond(timeSpan1); +// bean.setType(LocusStepAdapter.TYPE_OFFLINE); +// mStepBeans.add(bean); +// } +// } +// } +// } else { +// //最后一个点 +// MineLocationBean mineLocationBean = mineBeans.get(mineBeans.size() - 1); +// LocusTextBean bean = new LocusTextBean(); +// if (TextUtils.isEmpty(mineLocationBean.getUserLocation()) || "null".equals(mineLocationBean.getUserLocation())) { +// bean.setAddress("定位地址:未知"); +// } else { +// bean.setAddress(mineLocationBean.getUserLocation()); +// } +// bean.setOrder(i); +// bean.setTime(mineLocationBean.getGmtCreate()); +// bean.setStateTime("开始定位" + mineLocationBean.getGmtCreate()); +// bean.setType(LocusStepAdapter.TYPE_STOP); +// bean.setCreateTime(mineLocationBean.getGmtCreate()); +// mStepBeans.add(bean); +// } +// } +// } else { +// MineLocationBean mineLocationBean = mineBeans.get(mineBeans.size() - 1); +// LocusTextBean bean = new LocusTextBean(); +// if (TextUtils.isEmpty(mineLocationBean.getUserLocation()) || "null".equals(mineLocationBean.getUserLocation())) { +// bean.setAddress("定位地址:未知"); +// } else { +// bean.setAddress(mineLocationBean.getUserLocation()); +// } +// bean.setOrder(2); +// bean.setTime(mineLocationBean.getGmtCreate()); +// bean.setStateTime("开始定位" + mineLocationBean.getGmtCreate()); +// bean.setType(LocusStepAdapter.TYPE_START); +// bean.setCreateTime(mineLocationBean.getGmtCreate()); +// mStepBeans.add(bean); +// +// LocusTextBean bean1 = new LocusTextBean(); +// if (TextUtils.isEmpty(mineLocationBean.getUserLocation()) || "null".equals(mineLocationBean.getUserLocation())) { +// bean1.setAddress("定位地址:未知"); +// } else { +// bean1.setAddress(mineLocationBean.getUserLocation()); +// } +// bean1.setOrder(1); +// bean1.setTime(mineLocationBean.getGmtCreate()); +// bean1.setStateTime("开始定位" + mineLocationBean.getGmtCreate()); +// bean1.setType(LocusStepAdapter.TYPE_STOP); +// bean1.setCreateTime(mineLocationBean.getGmtCreate()); +// mStepBeans.add(bean1); +// } +// return mStepBeans; +// }).subscribeOn(Schedulers.io()) +// .observeOn(AndroidSchedulers.mainThread()) +// .subscribe(new Observer>() { +// @Override +// public void onSubscribe(Disposable d) { +// +// } +// +// @Override +// public void onNext(List locusTextBeans) { +// if (locusTextBeans != null && locusTextBeans.size() > 0) { +// Collections.sort(locusTextBeans); +// mAdapter.setData(locusTextBeans); +// } +// if (mProgressDialog != null && mProgressDialog.isShowing()) { +// mProgressDialog.dismiss(); +// } +// } +// +// @Override +// public void onError(Throwable e) { +// e.printStackTrace(); +// if (mProgressDialog != null && mProgressDialog.isShowing()) { +// mProgressDialog.dismiss(); +// } +// ToastUtils.showShort("获取历史轨迹数据失败,请稍后重试"); +// } +// +// @Override +// public void onComplete() { +// +// } +// }); +// } +// +// /** +// * 视图切换 +// */ +// private void setCurrentShowView() { +// if (mCurrentShowType == 1) { +// //显示地图 +// mRlMapView.setVisibility(View.VISIBLE); +// mRlvStep.setVisibility(View.GONE); +// } else { +// //显示文本 +// mRlvStep.setVisibility(View.VISIBLE); +// mRlMapView.setVisibility(View.GONE); +// } +// } +// +// /** +// * 画线到地图上 +// * +// * @param mBeas +// */ +// private void drawLineToMap(List mBeas) { +// //清除之前的 +// if (mBeas.size() > 2) { +// Collections.sort(mBeas); +// List mTempBeans = new ArrayList<>(mBeas); +// Observable.just(mTempBeans) +// .map(mineLocationBeans -> { +// //坐标集合 +// //颜色集合 +// List lineDatas = new ArrayList<>(); +// for (int i = 0; i < mineLocationBeans.size(); i++) { +// if (i != mineLocationBeans.size() - 1) { +// //TODO 12:移动 13:等待 14:异常 +// DrawMapLineBean bean = new DrawMapLineBean(); +// //第一个 +// MineLocationBean preBean = mineLocationBeans.get(i); +// //下一点 +// MineLocationBean nextBean = mineLocationBeans.get(i + 1); +// long timeSpan = TimeUtils.getTimeSpan(nextBean.getGmtCreate(), preBean.getGmtCreate(), TimeConstants.SEC); +// LatLng preLatlng = new LatLng(Double.parseDouble(preBean.getUserLatitude()), Double.parseDouble(preBean.getUserLongitude())); +// LatLng nextLatlng = new LatLng(Double.parseDouble(nextBean.getUserLatitude()), Double.parseDouble(nextBean.getUserLongitude())); +// //TODO 1、距离 +// double distance = DistanceUtil.getDistance(preLatlng, nextLatlng); +// if (timeSpan < 600) { +// //在线 +// if (distance / timeSpan > 20) { +// //TODO 速度大于20/s异常 +// bean.setOnePoint(preLatlng); +// bean.setTwoPoint(nextLatlng); +// bean.setType(14); +// bean.setLineColor(Integer.valueOf(Color.RED)); +// } else if (distance / timeSpan <= 0.5) { +// //TODO 速度小于0.5m/s等待 +// bean.setOnePoint(preLatlng); +// bean.setTwoPoint(nextLatlng); +// bean.setType(13); +// bean.setLineColor(Integer.valueOf(Color.YELLOW)); +// } else { +// //TODO 移动 绿色 +// bean.setOnePoint(preLatlng); +// bean.setTwoPoint(nextLatlng); +// bean.setType(12); +// bean.setLineColor(Integer.valueOf(Color.parseColor("#218868"))); +// } +// } else { +// //TODO 失联 +// bean.setOnePoint(preLatlng); +// bean.setTwoPoint(nextLatlng); +// bean.setType(12); +// bean.setLineColor(Integer.valueOf(Color.GRAY)); +// } +// lineDatas.add(bean); +// } +// } +// return lineDatas; +// }) +// .subscribeOn(Schedulers.io()) +// .observeOn(AndroidSchedulers.mainThread()) +// .subscribe(new Observer>() { +// @Override +// public void onSubscribe(Disposable d) { +// +// } +// +// @Override +// public void onNext(List o) { +// mBaiduMap.clear(); +// if (o != null && o.size() > 0) { +// for (int i = 0; i < o.size(); i++) { +// List points = new ArrayList<>(); +// points.add(o.get(i).getOnePoint()); +// points.add(o.get(i).getTwoPoint()); +//// boolean dottedLine = false; +//// if (o.get(i).getType() == 14 || o.get(i).getType() == 12) { +//// dottedLine = true; +//// } +// OverlayOptions ooPolyline11 = new PolylineOptions() +// .width(10) +// .dottedLine(false) +// .color(o.get(i).getLineColor()) +// .points(points); +// mBaiduMap.addOverlay(ooPolyline11); +// } +// moveMapToCenter(o.get(0).getOnePoint()); +// } +// if (mPenLineBeans != null && mPenLineBeans.size() > 0) { +// drawPenToMap(mPenLineBeans); +// } +// } +// +// @Override +// public void onError(Throwable e) { +// e.printStackTrace(); +// } +// +// @Override +// public void onComplete() { +// +// } +// }); +// } +// } +// +// private void moveMapToCenter(LatLng latLng) { +// MapStatus ms = new MapStatus.Builder().zoom(16).target(latLng).build(); +// MapStatusUpdate u = MapStatusUpdateFactory.newMapStatus(ms); +// mBaiduMap.setMapStatus(u); +// } +// +// /** +// * 越界marker +// * +// * @param beans +// */ +// private void drawOverstepMarker(List beans) { +// if (mBitMap == null) { +// mBitMap = BitmapDescriptorFactory.fromResource(R.drawable.ic_beyond); +// } +// MarkerOptions markerOptions = new MarkerOptions() +// .position(new LatLng(Double.parseDouble(beans.get(0).getUserLatitude()), Double.parseDouble(beans.get(0).getUserLongitude())))//mark出现的位置 +// .icon(mBitMap) //mark图标 +// .draggable(false)//mark可拖拽 +// .animateType(MarkerOptions.MarkerAnimateType.none); +// mBaiduMap.addOverlay(markerOptions); +// } +// +// /** +// * 批量添加mark +// * +// * @param points +// */ +// private void addMarksToMap(List points) { +// View view = View.inflate(this, R.layout.item_mark_user, null); +// BitmapDescriptor markIcon = BitmapDescriptorFactory.fromView(view); +// int height = markIcon.getBitmap().getHeight(); +// LogUtils.e(height); +// List options = new ArrayList(); +// LatLng point1 = new LatLng(39.92235, 116.380338); +// LatLng point2 = new LatLng(39.947246, 116.414977); +// OverlayOptions option1 = new MarkerOptions() +// .position(point1) +// .icon(markIcon); +// OverlayOptions option2 = new MarkerOptions() +// .position(point2) +// .icon(markIcon); +// options.add(option1); +// options.add(option2); +// mBaiduMap.addOverlays(options); +// mBaiduMap.setOnMarkerClickListener(marker -> { +// View infoView = View.inflate(this, R.layout.item_mark_info, null); +// BitmapDescriptor infoBitmap = BitmapDescriptorFactory.fromView(infoView); +// InfoWindow infoWindow = new InfoWindow(infoBitmap, marker.getPosition(), -height, () -> { +// mBaiduMap.hideInfoWindow(); +// }); +// mBaiduMap.showInfoWindow(infoWindow); +// return true; +// }); +// } +// //TODO 片区中间绘制文字 +//// LatLng center = PointUtils.getCenterOfGravityPoint(pts); +//// OverlayOptions textOption = new TextOptions() +//// .bgColor(0xAAFFFF00) +//// .fontSize(24) +//// .fontColor(0xFFFF00FF) +//// .text(UserLgUtils.getName()) +//// .rotate(-30) +//// .position(center); +//// mBaiduMap.addOverlay(textOption); +// +// /** +// * 画电子围栏 +// */ +// private void drawPenToMap(List penLineBeans) { +// for (int i = 0; i < penLineBeans.size(); i++) { +// List areaPoints = penLineBeans.get(i).getAreaPoints(); +// if (areaPoints != null && areaPoints.size() >= 4) { +// List pts = new ArrayList<>(); +// for (int j = 0; j < areaPoints.size(); j++) { +// double la = Double.parseDouble(areaPoints.get(j).getLatitude()); +// double lo = Double.parseDouble(areaPoints.get(j).getLongitude()); +// pts.add(new LatLng(la, lo)); +// } +// double laend = Double.parseDouble(areaPoints.get(0).getLatitude()); +// double loend = Double.parseDouble(areaPoints.get(0).getLongitude()); +// pts.add(new LatLng(laend, loend)); +// PenLineBean bean = penLineBeans.get(i); +// int borderColor = Color.argb(80, bean.getBorderRed(), bean.getBorderGreen(), bean.getBorderBlue()); +// int areColor = Color.argb(50, bean.getAreaRed(), bean.getAreaGreen(), bean.getAreaBlue()); +// OverlayOptions polygonOption = new PolygonOptions() +// .points(pts) +// .stroke(new Stroke(3, borderColor)) +// .fillColor(areColor); +// mBaiduMap.addOverlay(polygonOption); +// } +// } +// } +// +// private BDLocation mCurrent; +// +// public class MessageReceiver extends BroadcastReceiver { +// @Override +// public void onReceive(Context context, Intent intent) { +// if (PathConfig.ACTION_LOCATION_MESSAGE.equals(intent.getAction())) { +// +// } +// } +// } +// +// private void startSignLocation() { +// stopLocation(); +// mLocationClient = new LocationClient(getApplicationContext()); +// LocationClientOption locationOption = new LocationClientOption(); +// SignLocationListener myLocationListener = new SignLocationListener(); +// mLocationClient.registerLocationListener(myLocationListener); +// locationOption.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy); +// locationOption.setCoorType("bd09ll"); +// locationOption.setScanSpan(30 * 1000); +// locationOption.setIsNeedAddress(true); +// locationOption.setNeedDeviceDirect(false); +// locationOption.setLocationNotify(false); +// locationOption.setIgnoreKillProcess(true); +// locationOption.setIsNeedLocationDescribe(true); +// locationOption.setIsNeedLocationPoiList(true); +// locationOption.SetIgnoreCacheException(false); +// locationOption.setOpenGps(true); +// locationOption.setIsNeedAltitude(false); +// mLocationClient.setLocOption(locationOption); +// //开始定位 +// mLocationClient.start(); +// } +// +// private void stopLocation() { +// if (null != mLocationClient) { +// mLocationClient.stop(); +// } +// } +// +// private class SignLocationListener extends BDAbstractLocationListener { +// @Override +// public void onReceiveLocation(BDLocation bdLocation) { +// if (bdLocation != null && bdLocation.getLatitude() != 0 && bdLocation.getLongitude() != 0) { +// checkPointIsLegal(bdLocation); +// } +// } +// } +// +// private void checkPointIsLegal(BDLocation bdLocation) { +// if (PathConfig.CITY_CODE_DEFAULT.equals(bdLocation.getCityCode())) { +// if (bdLocation != null && bdLocation.getLatitude() != Double.MIN_VALUE && bdLocation.getLongitude() != Double.MIN_VALUE) { +// if (bdLocation.getRadius() <= 150) { +// mBaiduMap.setMyLocationEnabled(true); +// MyLocationData locData = new MyLocationData.Builder() +// .accuracy(bdLocation.getRadius()) +// .latitude(bdLocation.getLatitude()) +// .longitude(bdLocation.getLongitude()).build(); +// mBaiduMap.setMyLocationData(locData); +// if (mCurrent == null) { +// mCurrent = bdLocation; +// moveMapToCenter(new LatLng(mCurrent.getLatitude(), mCurrent.getLongitude())); +// } +// if (mPenLineBeans != null && mPenLineBeans.size() > 0) { +// boolean isIn = getPointIsIn(bdLocation, mPenLineBeans); +// if (!isIn) { +// setDisToView(bdLocation); +// } else { +// mTvDistance.setText("已在片区内"); +// } +// } +// } +// } +// } +// //显示定位图标 +// } +// +// /** +// * 设置距片区距离 +// * +// * @param location +// */ +// private void setDisToView(BDLocation location) { +// List maxMin = new ArrayList<>(); +// for (int i = 0; i < mPenLineBeans.size(); i++) { +// PenLineBean penLineBean = mPenLineBeans.get(i); +// if (penLineBean.getAreaPoints() != null && penLineBean.getAreaPoints().size() > 0) { +// if (penLineBean.getAreaPoints() != null && penLineBean.getAreaPoints().size() >= 3) { +// List tempList = new ArrayList<>(); +// for (int j = 0; j < penLineBean.getAreaPoints().size(); j++) { +// PenLineBean.AreaPointsBean areaPointsBean = penLineBean.getAreaPoints().get(j); +// double la = Double.parseDouble(areaPointsBean.getLatitude()); +// double lo = Double.parseDouble(areaPointsBean.getLongitude()); +// LatLng latLng = new LatLng(la, lo); +// LatLng currentLa = new LatLng(location.getLatitude(), location.getLongitude()); +// double distance = DistanceUtil.getDistance(latLng, currentLa); +// tempList.add(distance); +// } +// Double min = Collections.min(tempList); +// maxMin.add(min); +// } +// } +// } +// if (maxMin.size() > 0) { +// Double min = Collections.min(maxMin); +// if (min > 1) { +// String format = mFormat.format(min); +// mTvDistance.setText("距片区距离:" + format + "米"); +// } +// } +// } +// +// /** +// * 判断是否在片区内 +// * +// * @param location +// * @param penLineBeans +// * @return +// */ +// private boolean getPointIsIn(BDLocation location, List penLineBeans) { +// boolean isIn = false; +// LatLng cur = new LatLng(location.getLatitude(), location.getLongitude()); +// if (penLineBeans != null && penLineBeans.size() > 0) { +// for (int i = 0; i < penLineBeans.size(); i++) { +// List areaPoints = penLineBeans.get(i).getAreaPoints(); +// if (areaPoints != null && areaPoints.size() > 3) { +// List temps = new ArrayList<>(); +// for (int j = 0; j < areaPoints.size(); j++) { +// double la = Double.parseDouble(areaPoints.get(j).getLatitude()); +// double lo = Double.parseDouble(areaPoints.get(j).getLongitude()); +// LatLng latLng = new LatLng(la, lo); +// temps.add(latLng); +// } +// boolean is = PointUtils.isInPolygon(cur, temps); +// if (is) { +// isIn = true; +// break; +// } +// } +// } +// } +// return isIn; +// } +// +// +// @Override +// protected void onDestroy() { +// stopLocation(); +// mMapView.onDestroy(); +//// if (mReceiver != null) { +//// unregisterReceiver(mReceiver); +//// } +// if (mBind != null) { +// mBind.unbind(); +// } +// super.onDestroy(); +// } +// +//} diff --git a/app/src/main/java/com/sucstepsoft/txrealtimelocation/base/BaseApplication.java b/app/src/main/java/com/sucstepsoft/txrealtimelocation/base/BaseApplication.java index 749b8b8..4c016fb 100755 --- a/app/src/main/java/com/sucstepsoft/txrealtimelocation/base/BaseApplication.java +++ b/app/src/main/java/com/sucstepsoft/txrealtimelocation/base/BaseApplication.java @@ -4,13 +4,9 @@ import android.content.Context; import android.support.multidex.MultiDex; import android.support.multidex.MultiDexApplication; -import com.baidu.mapapi.CoordType; -import com.baidu.mapapi.SDKInitializer; import com.squareup.leakcanary.LeakCanary; import com.tencent.bugly.crashreport.CrashReport; -import cn.jpush.android.api.JPushInterface; - /** * 作者: Adam * 日期: 2019/6/24 - 14:38 @@ -26,12 +22,9 @@ public class BaseApplication extends MultiDexApplication { protected void attachBaseContext(Context base) { super.attachBaseContext(base); MultiDex.install(this); - initBaiduMap(); } private void initJPush() { - JPushInterface.setDebugMode(false); - JPushInterface.init(this); } private void initLeak() { @@ -54,10 +47,10 @@ public class BaseApplication extends MultiDexApplication { * 百度地图初始化 */ private void initBaiduMap() { - SDKInitializer.initialize(this); +// SDKInitializer.initialize(this); //自4.3.0起,百度地图SDK所有接口均支持百度坐标和国测局坐标,用此方法设置您使用的坐标类型. //包括BD09LL和GCJ02两种坐标,默认是BD09LL坐标。 - SDKInitializer.setCoordType(CoordType.BD09LL); +// SDKInitializer.setCoordType(CoordType.BD09LL); } // public static LocationChangBroadcastReceiver getlocationChangeBoardcase() { diff --git a/app/src/main/java/com/sucstepsoft/txrealtimelocation/beans/DrawMapLineBean.java b/app/src/main/java/com/sucstepsoft/txrealtimelocation/beans/DrawMapLineBean.java index 9b2ae73..5420281 100755 --- a/app/src/main/java/com/sucstepsoft/txrealtimelocation/beans/DrawMapLineBean.java +++ b/app/src/main/java/com/sucstepsoft/txrealtimelocation/beans/DrawMapLineBean.java @@ -1,48 +1,48 @@ -package com.sucstepsoft.txrealtimelocation.beans; - -import com.baidu.mapapi.model.LatLng; - -/** - * 作者: Adam - * 日期: 2019/8/29 - 17:34 - * 邮箱: itgaojian@163.com - * 描述: type 线的类型 12:移动 13:等待 14:异常 - */ -public class DrawMapLineBean { - private int type;//线的类型 - private LatLng onePoint; - private LatLng twoPoint; - private Integer lineColor; - - public int getType() { - return type; - } - - public void setType(int type) { - this.type = type; - } - - public LatLng getOnePoint() { - return onePoint; - } - - public void setOnePoint(LatLng onePoint) { - this.onePoint = onePoint; - } - - public LatLng getTwoPoint() { - return twoPoint; - } - - public void setTwoPoint(LatLng twoPoint) { - this.twoPoint = twoPoint; - } - - public Integer getLineColor() { - return lineColor; - } - - public void setLineColor(Integer lineColor) { - this.lineColor = lineColor; - } -} +//package com.sucstepsoft.txrealtimelocation.beans; +// +//import com.baidu.mapapi.model.LatLng; +// +///** +// * 作者: Adam +// * 日期: 2019/8/29 - 17:34 +// * 邮箱: itgaojian@163.com +// * 描述: type 线的类型 12:移动 13:等待 14:异常 +// */ +//public class DrawMapLineBean { +// private int type;//线的类型 +// private LatLng onePoint; +// private LatLng twoPoint; +// private Integer lineColor; +// +// public int getType() { +// return type; +// } +// +// public void setType(int type) { +// this.type = type; +// } +// +// public LatLng getOnePoint() { +// return onePoint; +// } +// +// public void setOnePoint(LatLng onePoint) { +// this.onePoint = onePoint; +// } +// +// public LatLng getTwoPoint() { +// return twoPoint; +// } +// +// public void setTwoPoint(LatLng twoPoint) { +// this.twoPoint = twoPoint; +// } +// +// public Integer getLineColor() { +// return lineColor; +// } +// +// public void setLineColor(Integer lineColor) { +// this.lineColor = lineColor; +// } +//} diff --git a/app/src/main/java/com/sucstepsoft/txrealtimelocation/fragments/issue/MineIssueFragment.java b/app/src/main/java/com/sucstepsoft/txrealtimelocation/fragments/issue/MineIssueFragment.java index 6901e94..8726cfe 100755 --- a/app/src/main/java/com/sucstepsoft/txrealtimelocation/fragments/issue/MineIssueFragment.java +++ b/app/src/main/java/com/sucstepsoft/txrealtimelocation/fragments/issue/MineIssueFragment.java @@ -15,7 +15,7 @@ import com.sucstepsoft.cm_utils.core.widget.base.LazyFragment; import com.sucstepsoft.cm_utils.utils.ToastUtils; import com.sucstepsoft.cm_utils.utils.UserLgUtils; import com.sucstepsoft.txrealtimelocation.R; -import com.sucstepsoft.txrealtimelocation.activitys.issue.IssueDetailActivity; +//import com.sucstepsoft.txrealtimelocation.activitys.issue.IssueDetailActivity; import com.sucstepsoft.txrealtimelocation.adapters.IssueSubAdapter; import com.sucstepsoft.txrealtimelocation.beans.IssueSubBean; import com.sucstepsoft.txrealtimelocation.net.LocationApiService; @@ -101,9 +101,9 @@ public class MineIssueFragment extends LazyFragment { * @param bean */ private void showIssueDetail(IssueSubBean.RowsBean bean) { - Intent intent = new Intent(mActivity, IssueDetailActivity.class); - intent.putExtra("bean", bean); - startActivity(intent); +// Intent intent = new Intent(mActivity, IssueDetailActivity.class); +// intent.putExtra("bean", bean); +// startActivity(intent); } @Override diff --git a/app/src/main/java/com/sucstepsoft/txrealtimelocation/fragments/issue/PendingFragment.java b/app/src/main/java/com/sucstepsoft/txrealtimelocation/fragments/issue/PendingFragment.java index 1743a5a..4d8750e 100755 --- a/app/src/main/java/com/sucstepsoft/txrealtimelocation/fragments/issue/PendingFragment.java +++ b/app/src/main/java/com/sucstepsoft/txrealtimelocation/fragments/issue/PendingFragment.java @@ -15,7 +15,7 @@ import com.sucstepsoft.cm_utils.core.widget.base.LazyFragment; import com.sucstepsoft.cm_utils.utils.ToastUtils; import com.sucstepsoft.cm_utils.utils.UserLgUtils; import com.sucstepsoft.txrealtimelocation.R; -import com.sucstepsoft.txrealtimelocation.activitys.issue.IssueDetailActivity; +//import com.sucstepsoft.txrealtimelocation.activitys.issue.IssueDetailActivity; import com.sucstepsoft.txrealtimelocation.adapters.IssueSubAdapter; import com.sucstepsoft.txrealtimelocation.beans.IssueSubBean; import com.sucstepsoft.txrealtimelocation.net.LocationApiService; @@ -121,27 +121,27 @@ public class PendingFragment extends LazyFragment { * @param bean */ private void showIssueDetail(IssueSubBean.RowsBean bean) { - Intent intent = new Intent(mActivity, IssueDetailActivity.class); - intent.putExtra("bean", bean); - switch (bean.getCaseStatus()) { - case "0"://待受理 - break; - case "1"://待立案 - break; - case "2"://待下派 - break; - case "3"://待处理 - break; - case "4": - case "5": - intent.putExtra("check", "check"); - break; - case "6"://已经归档 - break; - default: - break; - } - startActivity(intent); +// Intent intent = new Intent(mActivity, IssueDetailActivity.class); +// intent.putExtra("bean", bean); +// switch (bean.getCaseStatus()) { +// case "0"://待受理 +// break; +// case "1"://待立案 +// break; +// case "2"://待下派 +// break; +// case "3"://待处理 +// break; +// case "4": +// case "5": +// intent.putExtra("check", "check"); +// break; +// case "6"://已经归档 +// break; +// default: +// break; +// } +// startActivity(intent); } @Override diff --git a/app/src/main/java/com/sucstepsoft/txrealtimelocation/fragments/locus/LocusMapFragment.java b/app/src/main/java/com/sucstepsoft/txrealtimelocation/fragments/locus/LocusMapFragment.java index 8e6c26a..6a2c3b0 100755 --- a/app/src/main/java/com/sucstepsoft/txrealtimelocation/fragments/locus/LocusMapFragment.java +++ b/app/src/main/java/com/sucstepsoft/txrealtimelocation/fragments/locus/LocusMapFragment.java @@ -4,29 +4,13 @@ import android.app.Activity; import android.app.ProgressDialog; import android.graphics.Color; import android.os.Bundle; -import android.view.LayoutInflater; import android.view.View; import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; -import android.widget.ZoomControls; -import com.baidu.mapapi.map.BaiduMap; -import com.baidu.mapapi.map.BitmapDescriptor; -import com.baidu.mapapi.map.BitmapDescriptorFactory; -import com.baidu.mapapi.map.InfoWindow; -import com.baidu.mapapi.map.MapStatus; -import com.baidu.mapapi.map.MapStatusUpdate; -import com.baidu.mapapi.map.MapStatusUpdateFactory; -import com.baidu.mapapi.map.MapView; -import com.baidu.mapapi.map.MarkerOptions; -import com.baidu.mapapi.map.OverlayOptions; -import com.baidu.mapapi.map.PolylineOptions; -import com.baidu.mapapi.model.LatLng; import com.bigkoo.pickerview.builder.TimePickerBuilder; import com.bigkoo.pickerview.view.TimePickerView; -import com.bumptech.glide.Glide; -import com.sucstepsoft.cm_utils.constant.PathConfig; import com.sucstepsoft.cm_utils.core.retrofit_net.RetrofitManager; import com.sucstepsoft.cm_utils.core.widget.base.LazyFragment; import com.sucstepsoft.cm_utils.utils.ToastUtils; @@ -39,11 +23,9 @@ import com.sucstepsoft.txrealtimelocation.net.LocationApiService; import com.sucstepsoft.txrealtimelocation.widget.ListPopup; import java.text.SimpleDateFormat; -import java.util.ArrayList; import java.util.List; import butterknife.BindView; -import butterknife.ButterKnife; import butterknife.OnClick; import butterknife.Unbinder; import io.reactivex.Observer; @@ -58,8 +40,8 @@ import io.reactivex.schedulers.Schedulers; * 描述: */ public class LocusMapFragment extends LazyFragment { - @BindView(R.id.mv_map) - MapView mMapView; +// @BindView(R.id.mv_map) +// MapView mMapView; @BindView(R.id.tv_time) TextView mTvTime; @BindView(R.id.iv_4) @@ -74,45 +56,45 @@ public class LocusMapFragment extends LazyFragment { private String mPath; private List mUserBeans; private boolean mIsOnline; - private BaiduMap mBaiduMap; - private LatLng mDefaultPoint; +// private BaiduMap mBaiduMap; +// private LatLng mDefaultPoint; private String mSelUserId; private String mSelTime; @Override protected void onCreateViewLazy(Bundle savedInstanceState) { super.onCreateViewLazy(savedInstanceState); - View view = LayoutInflater.from(mActivity).inflate(R.layout.fragment_locus_map, null); - setContentView(view); - mBind = ButterKnife.bind(this, view); - mUserBeans = new ArrayList<>(); - mDefaultPoint = new LatLng(PathConfig.LA, PathConfig.LO); - mPath = getArguments().getString("title"); - mIsOnline = getArguments().getBoolean("isOnline"); - mBaiduMap = mMapView.getMap(); - MapStatus ms = new MapStatus.Builder().zoom(14).target(mDefaultPoint).build(); - MapStatusUpdate u = MapStatusUpdateFactory.newMapStatus(ms); - View child = mMapView.getChildAt(1); - if (child != null && (child instanceof ImageView || child instanceof ZoomControls)) { - child.setVisibility(View.GONE); - } - mMapView.showZoomControls(false); - mBaiduMap.animateMapStatus(u); - getOfflineUserList(mPath, mIsOnline); - mSelTime = mDateFormat.format(System.currentTimeMillis()); - mTvTime.setText(mSelTime); - mBtnReload.setOnClickListener(v -> { - mSelTime = mDateFormat.format(System.currentTimeMillis()); - mTvTime.setText(mSelTime); - mSelUserId = ""; - mBaiduMap.clear(); - if (mUserBeans != null && mUserBeans.size() > 0) { - addMarkers(); - } - }); - Glide.with(mActivity) - .load(R.drawable.ic_user_default) - .into(mIvUser_4); +// View view = LayoutInflater.from(mActivity).inflate(R.layout.fragment_locus_map, null); +// setContentView(view); +// mBind = ButterKnife.bind(this, view); +// mUserBeans = new ArrayList<>(); +// mDefaultPoint = new LatLng(PathConfig.LA, PathConfig.LO); +// mPath = getArguments().getString("title"); +// mIsOnline = getArguments().getBoolean("isOnline"); +// mBaiduMap = mMapView.getMap(); +// MapStatus ms = new MapStatus.Builder().zoom(14).target(mDefaultPoint).build(); +// MapStatusUpdate u = MapStatusUpdateFactory.newMapStatus(ms); +// View child = mMapView.getChildAt(1); +// if (child != null && (child instanceof ImageView || child instanceof ZoomControls)) { +// child.setVisibility(View.GONE); +// } +// mMapView.showZoomControls(false); +// mBaiduMap.animateMapStatus(u); +// getOfflineUserList(mPath, mIsOnline); +// mSelTime = mDateFormat.format(System.currentTimeMillis()); +// mTvTime.setText(mSelTime); +// mBtnReload.setOnClickListener(v -> { +// mSelTime = mDateFormat.format(System.currentTimeMillis()); +// mTvTime.setText(mSelTime); +// mSelUserId = ""; +// mBaiduMap.clear(); +// if (mUserBeans != null && mUserBeans.size() > 0) { +// addMarkers(); +// } +// }); +// Glide.with(mActivity) +// .load(R.drawable.ic_user_default) +// .into(mIvUser_4); } @@ -181,11 +163,11 @@ public class LocusMapFragment extends LazyFragment { @Override protected void onDestroyViewLazy() { - mMapView.onDestroy(); - mMapView = null; - if (mBind != null) { - mBind.unbind(); - } +// mMapView.onDestroy(); +// mMapView = null; +// if (mBind != null) { +// mBind.unbind(); +// } super.onDestroyViewLazy(); } @@ -249,24 +231,24 @@ public class LocusMapFragment extends LazyFragment { private void drawUserLines(List userocationBeans) { if (userocationBeans.size() > 2) { - mBaiduMap.clear(); - List points11 = new ArrayList<>(); - for (int i = 0; i < userocationBeans.size(); i++) { - double l = Double.parseDouble(userocationBeans.get(i).getUserLongitude()); - double a = Double.parseDouble(userocationBeans.get(i).getUserLatitude()); - LatLng latLng = new LatLng(a, l); -// if ("1".equals(userocationBeans.get(i).getIsOverstep())) { -// beans.add(userocationBeans.get(i)); -// } - points11.add(latLng); - } - - OverlayOptions ooPolyline11 = new PolylineOptions() - .width(20) - .points(points11) - .dottedLine(false) - .customTexture(BitmapDescriptorFactory.fromResource(R.drawable.ic_road_red)); - mBaiduMap.addOverlay(ooPolyline11); +// mBaiduMap.clear(); +// List points11 = new ArrayList<>(); +// for (int i = 0; i < userocationBeans.size(); i++) { +// double l = Double.parseDouble(userocationBeans.get(i).getUserLongitude()); +// double a = Double.parseDouble(userocationBeans.get(i).getUserLatitude()); +// LatLng latLng = new LatLng(a, l); +//// if ("1".equals(userocationBeans.get(i).getIsOverstep())) { +//// beans.add(userocationBeans.get(i)); +//// } +// points11.add(latLng); +// } +// +// OverlayOptions ooPolyline11 = new PolylineOptions() +// .width(20) +// .points(points11) +// .dottedLine(false) +// .customTexture(BitmapDescriptorFactory.fromResource(R.drawable.ic_road_red)); +// mBaiduMap.addOverlay(ooPolyline11); } else { ToastUtils.showShort("暂无数据"); } @@ -274,40 +256,40 @@ public class LocusMapFragment extends LazyFragment { private void addMarkers() { - List options = new ArrayList(); - View view = View.inflate(mActivity, R.layout.item_map_user_icon, null); - for (int i = 0; i < mUserBeans.size(); i++) { - LatLng latLng = new LatLng(Double.parseDouble(mUserBeans.get(i).getUserLatitude()), Double.parseDouble(mUserBeans.get(i).getUserLongitude())); - TextView mTvName = view.findViewById(R.id.tv_name); - mTvName.setText(mUserBeans.get(i).getUseName()); - BitmapDescriptor bt = BitmapDescriptorFactory.fromView(view); - Bundle bundle = new Bundle(); - bundle.putString("uId", mUserBeans.get(i).getCreator()); - bundle.putString("uName", mUserBeans.get(i).getUseName()); - bundle.putString("uLocation", mUserBeans.get(i).getUserLocation()); - bundle.putString("uTime", mUserBeans.get(i).getGmtCreate()); - OverlayOptions option1 = new MarkerOptions() - .position(latLng) - .perspective(true) - .extraInfo(bundle) - .anchor(0.3f, 1f) - .icon(bt); - options.add(option1); - } - mBaiduMap.addOverlays(options); - mBaiduMap.setOnMarkerClickListener(marker -> { - View infoView = View.inflate(mActivity, R.layout.item_map_user_info, null); - TextView mTvName = infoView.findViewById(R.id.tv_user_name); - TextView mTvLocation = infoView.findViewById(R.id.tv_user_location); - TextView mTvTime = infoView.findViewById(R.id.tv_user_time); - mTvName.setText("姓名 :" + marker.getExtraInfo().getString("uName")); - mTvLocation.setText(marker.getExtraInfo().getString("uLocation")); - mTvTime.setText("时间 :" + marker.getExtraInfo().getString("uTime")); - InfoWindow infoWindow = new InfoWindow(infoView, marker.getPosition(), -view.getHeight()); - mBaiduMap.showInfoWindow(infoWindow); - infoView.setOnClickListener(v -> mBaiduMap.hideInfoWindow()); - return false; - }); +// List options = new ArrayList(); +// View view = View.inflate(mActivity, R.layout.item_map_user_icon, null); +// for (int i = 0; i < mUserBeans.size(); i++) { +// LatLng latLng = new LatLng(Double.parseDouble(mUserBeans.get(i).getUserLatitude()), Double.parseDouble(mUserBeans.get(i).getUserLongitude())); +// TextView mTvName = view.findViewById(R.id.tv_name); +// mTvName.setText(mUserBeans.get(i).getUseName()); +// BitmapDescriptor bt = BitmapDescriptorFactory.fromView(view); +// Bundle bundle = new Bundle(); +// bundle.putString("uId", mUserBeans.get(i).getCreator()); +// bundle.putString("uName", mUserBeans.get(i).getUseName()); +// bundle.putString("uLocation", mUserBeans.get(i).getUserLocation()); +// bundle.putString("uTime", mUserBeans.get(i).getGmtCreate()); +// OverlayOptions option1 = new MarkerOptions() +// .position(latLng) +// .perspective(true) +// .extraInfo(bundle) +// .anchor(0.3f, 1f) +// .icon(bt); +// options.add(option1); +// } +// mBaiduMap.addOverlays(options); +// mBaiduMap.setOnMarkerClickListener(marker -> { +// View infoView = View.inflate(mActivity, R.layout.item_map_user_info, null); +// TextView mTvName = infoView.findViewById(R.id.tv_user_name); +// TextView mTvLocation = infoView.findViewById(R.id.tv_user_location); +// TextView mTvTime = infoView.findViewById(R.id.tv_user_time); +// mTvName.setText("姓名 :" + marker.getExtraInfo().getString("uName")); +// mTvLocation.setText(marker.getExtraInfo().getString("uLocation")); +// mTvTime.setText("时间 :" + marker.getExtraInfo().getString("uTime")); +// InfoWindow infoWindow = new InfoWindow(infoView, marker.getPosition(), -view.getHeight()); +// mBaiduMap.showInfoWindow(infoWindow); +// infoView.setOnClickListener(v -> mBaiduMap.hideInfoWindow()); +// return false; +// }); } private void showTimePicker() { @@ -328,9 +310,9 @@ public class LocusMapFragment extends LazyFragment { @Override public void onDestroy() { - if (mMapView != null) { - mMapView.onDestroy(); - } +// if (mMapView != null) { +// mMapView.onDestroy(); +// } super.onDestroy(); } } diff --git a/app/src/main/java/com/sucstepsoft/txrealtimelocation/services/Utils.java b/app/src/main/java/com/sucstepsoft/txrealtimelocation/services/Utils.java index a9319e1..68f7e38 100755 --- a/app/src/main/java/com/sucstepsoft/txrealtimelocation/services/Utils.java +++ b/app/src/main/java/com/sucstepsoft/txrealtimelocation/services/Utils.java @@ -21,8 +21,6 @@ import android.os.Environment; import android.text.TextUtils; import android.util.Log; - -import com.baidu.location.BDLocation; import com.sucstepsoft.cm_utils.constant.PathConfig; import com.sucstepsoft.cm_utils.utils.LogUtils; import com.sucstepsoft.txrealtimelocation.R; diff --git a/app/src/main/java/com/sucstepsoft/txrealtimelocation/utils/PointUtils.java b/app/src/main/java/com/sucstepsoft/txrealtimelocation/utils/PointUtils.java index efc20cc..8a19eff 100755 --- a/app/src/main/java/com/sucstepsoft/txrealtimelocation/utils/PointUtils.java +++ b/app/src/main/java/com/sucstepsoft/txrealtimelocation/utils/PointUtils.java @@ -1,167 +1,167 @@ -package com.sucstepsoft.txrealtimelocation.utils; - -import com.baidu.mapapi.model.LatLng; - -import java.util.List; - -/** - * 作者: Adam - * 日期: 2019/7/17 - 16:42 - * 邮箱: itgaojian@163.com - * 描述: - */ -public class PointUtils { - - private static double EARTH_RADIUS = 6378.137; - - public static boolean isMove(LatLng p1, LatLng p2, int i) { - - return false; - } - - /** - * 获取list范围内的中心点 - * - * @param mPoints - * @return - */ - public static LatLng getCenterOfGravityPoint(List mPoints) { - double area = 0.000000000;//多边形面积 - double x = 0.0000000d, y = 0.0000000000d;// 重心的x、y - for (int i = 1; i <= mPoints.size(); i++) { - double iLat = mPoints.get(i % mPoints.size()).latitude; - double iLng = mPoints.get(i % mPoints.size()).longitude; - double nextLat = mPoints.get(i - 1).latitude; - double nextLng = mPoints.get(i - 1).longitude; - double temp = (iLat * nextLng - iLng * nextLat) / 2.0f; - area += temp; - x += temp * (iLat + nextLat) / 3.0f; - y += temp * (iLng + nextLng) / 3.0f; - } - x = x / area; - y = y / area; - return new LatLng(x, y); - } - - private static LatLng GetCenterPoint(List latLngs) { - int total = latLngs.size(); - double lat = 0, lon = 0; - for (LatLng g : latLngs) { - lat += g.latitude * Math.PI / 180; - lon += g.longitude * Math.PI / 180; - } - lat /= total; - lon /= total; - return new LatLng(lat * 180 / Math.PI, lon * 180 / Math.PI); - } - - /** - * 判断点是否在多边形内 - * - * @param point 测试点 - * @param pts 多边形的点 - * @return boolean - * @throws - * @Title: IsPointInPoly - */ - public static boolean isInPolygon(LatLng point, List pts) { - - int N = pts.size(); - boolean boundOrVertex = true; - int intersectCount = 0;//交叉点数量 - double precision = 2e-10; //浮点类型计算时候与0比较时候的容差 - LatLng p1, p2;//临近顶点 - LatLng p = point; //当前点 - p1 = pts.get(0); - for (int i = 1; i <= N; ++i) { - if (p.equals(p1)) { - return boundOrVertex; - } - p2 = pts.get(i % N); - if (p.latitude < Math.min(p1.latitude, p2.latitude) || p.latitude > Math.max(p1.latitude, p2.latitude)) { - p1 = p2; - continue; - } - //射线穿过算法 - if (p.latitude > Math.min(p1.latitude, p2.latitude) && p.latitude < Math.max(p1.latitude, p2.latitude)) { - if (p.longitude <= Math.max(p1.longitude, p2.longitude)) { - if (p1.latitude == p2.latitude && p.longitude >= Math.min(p1.longitude, p2.longitude)) { - return boundOrVertex; - } - if (p1.longitude == p2.longitude) { - if (p1.longitude == p.longitude) { - return boundOrVertex; - } else { - ++intersectCount; - } - } else { - double xinters = (p.latitude - p1.latitude) * (p2.longitude - p1.longitude) / (p2.latitude - p1.latitude) + p1.longitude; - if (Math.abs(p.longitude - xinters) < precision) { - return boundOrVertex; - } - - if (p.longitude < xinters) { - ++intersectCount; - } - } - } - } else { - if (p.latitude == p2.latitude && p.longitude <= p2.longitude) { - LatLng p3 = pts.get((i + 1) % N); - if (p.latitude >= Math.min(p1.latitude, p3.latitude) && p.latitude <= Math.max(p1.latitude, p3.latitude)) { - ++intersectCount; - } else { - intersectCount += 2; - } - } - } - p1 = p2; - } - if (intersectCount % 2 == 0) {//偶数在多边形外 - return false; - } else { //奇数在多边形内 - return true; - } - } - - /** - * 通过经纬度获取距离(单位:米) - * - * @param lat1 - * @param lng1 - * @param lat2 - * @param lng2 - * @return - */ - public static double getDistance(double lat1, double lng1, double lat2, - double lng2) { - double radLat1 = rad(lat1); - double radLat2 = rad(lat2); - double a = radLat1 - radLat2; - double b = rad(lng1) - rad(lng2); - double s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + - Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2))); - s = s * EARTH_RADIUS; - s = Math.round(s * 10000d) / 10000d; - return s; - } - - /** - * 判断一个点是否在圆形区域内 - */ - public static boolean isInCircle(double lng1, double lat1, double lng2, double lat2, String radius) { - double distance = getDistance(lat1, lng1, lat2, lng2); - double r = Double.parseDouble(radius); - if (distance > r) { - return false; - } else { - return true; - } - - } - - private static double rad(double d) { - return d * Math.PI / 180.0; - } - -} +//package com.sucstepsoft.txrealtimelocation.utils; +// +//import com.baidu.mapapi.model.LatLng; +// +//import java.util.List; +// +///** +// * 作者: Adam +// * 日期: 2019/7/17 - 16:42 +// * 邮箱: itgaojian@163.com +// * 描述: +// */ +//public class PointUtils { +// +// private static double EARTH_RADIUS = 6378.137; +// +// public static boolean isMove(LatLng p1, LatLng p2, int i) { +// +// return false; +// } +// +// /** +// * 获取list范围内的中心点 +// * +// * @param mPoints +// * @return +// */ +// public static LatLng getCenterOfGravityPoint(List mPoints) { +// double area = 0.000000000;//多边形面积 +// double x = 0.0000000d, y = 0.0000000000d;// 重心的x、y +// for (int i = 1; i <= mPoints.size(); i++) { +// double iLat = mPoints.get(i % mPoints.size()).latitude; +// double iLng = mPoints.get(i % mPoints.size()).longitude; +// double nextLat = mPoints.get(i - 1).latitude; +// double nextLng = mPoints.get(i - 1).longitude; +// double temp = (iLat * nextLng - iLng * nextLat) / 2.0f; +// area += temp; +// x += temp * (iLat + nextLat) / 3.0f; +// y += temp * (iLng + nextLng) / 3.0f; +// } +// x = x / area; +// y = y / area; +// return new LatLng(x, y); +// } +// +// private static LatLng GetCenterPoint(List latLngs) { +// int total = latLngs.size(); +// double lat = 0, lon = 0; +// for (LatLng g : latLngs) { +// lat += g.latitude * Math.PI / 180; +// lon += g.longitude * Math.PI / 180; +// } +// lat /= total; +// lon /= total; +// return new LatLng(lat * 180 / Math.PI, lon * 180 / Math.PI); +// } +// +// /** +// * 判断点是否在多边形内 +// * +// * @param point 测试点 +// * @param pts 多边形的点 +// * @return boolean +// * @throws +// * @Title: IsPointInPoly +// */ +// public static boolean isInPolygon(LatLng point, List pts) { +// +// int N = pts.size(); +// boolean boundOrVertex = true; +// int intersectCount = 0;//交叉点数量 +// double precision = 2e-10; //浮点类型计算时候与0比较时候的容差 +// LatLng p1, p2;//临近顶点 +// LatLng p = point; //当前点 +// p1 = pts.get(0); +// for (int i = 1; i <= N; ++i) { +// if (p.equals(p1)) { +// return boundOrVertex; +// } +// p2 = pts.get(i % N); +// if (p.latitude < Math.min(p1.latitude, p2.latitude) || p.latitude > Math.max(p1.latitude, p2.latitude)) { +// p1 = p2; +// continue; +// } +// //射线穿过算法 +// if (p.latitude > Math.min(p1.latitude, p2.latitude) && p.latitude < Math.max(p1.latitude, p2.latitude)) { +// if (p.longitude <= Math.max(p1.longitude, p2.longitude)) { +// if (p1.latitude == p2.latitude && p.longitude >= Math.min(p1.longitude, p2.longitude)) { +// return boundOrVertex; +// } +// if (p1.longitude == p2.longitude) { +// if (p1.longitude == p.longitude) { +// return boundOrVertex; +// } else { +// ++intersectCount; +// } +// } else { +// double xinters = (p.latitude - p1.latitude) * (p2.longitude - p1.longitude) / (p2.latitude - p1.latitude) + p1.longitude; +// if (Math.abs(p.longitude - xinters) < precision) { +// return boundOrVertex; +// } +// +// if (p.longitude < xinters) { +// ++intersectCount; +// } +// } +// } +// } else { +// if (p.latitude == p2.latitude && p.longitude <= p2.longitude) { +// LatLng p3 = pts.get((i + 1) % N); +// if (p.latitude >= Math.min(p1.latitude, p3.latitude) && p.latitude <= Math.max(p1.latitude, p3.latitude)) { +// ++intersectCount; +// } else { +// intersectCount += 2; +// } +// } +// } +// p1 = p2; +// } +// if (intersectCount % 2 == 0) {//偶数在多边形外 +// return false; +// } else { //奇数在多边形内 +// return true; +// } +// } +// +// /** +// * 通过经纬度获取距离(单位:米) +// * +// * @param lat1 +// * @param lng1 +// * @param lat2 +// * @param lng2 +// * @return +// */ +// public static double getDistance(double lat1, double lng1, double lat2, +// double lng2) { +// double radLat1 = rad(lat1); +// double radLat2 = rad(lat2); +// double a = radLat1 - radLat2; +// double b = rad(lng1) - rad(lng2); +// double s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + +// Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2))); +// s = s * EARTH_RADIUS; +// s = Math.round(s * 10000d) / 10000d; +// return s; +// } +// +// /** +// * 判断一个点是否在圆形区域内 +// */ +// public static boolean isInCircle(double lng1, double lat1, double lng2, double lat2, String radius) { +// double distance = getDistance(lat1, lng1, lat2, lng2); +// double r = Double.parseDouble(radius); +// if (distance > r) { +// return false; +// } else { +// return true; +// } +// +// } +// +// private static double rad(double d) { +// return d * Math.PI / 180.0; +// } +// +//} diff --git a/app/src/main/java/com/sucstepsoft/txrealtimelocation/widget/EmStateCheck.java b/app/src/main/java/com/sucstepsoft/txrealtimelocation/widget/EmStateCheck.java new file mode 100644 index 0000000..16f62c5 --- /dev/null +++ b/app/src/main/java/com/sucstepsoft/txrealtimelocation/widget/EmStateCheck.java @@ -0,0 +1,11 @@ +package com.sucstepsoft.txrealtimelocation.widget; + +/** + * 作者: adam + * 日期: 2020-03-26 - 12:53 + * 邮箱: itgaojian@163.com + * 描述: + */ +public enum EmStateCheck { + UNCHECK, NORMAL, CHECK +} diff --git a/app/src/main/java/com/sucstepsoft/txrealtimelocation/widget/StateCheckView.java b/app/src/main/java/com/sucstepsoft/txrealtimelocation/widget/StateCheckView.java new file mode 100644 index 0000000..9f8cef0 --- /dev/null +++ b/app/src/main/java/com/sucstepsoft/txrealtimelocation/widget/StateCheckView.java @@ -0,0 +1,86 @@ +package com.sucstepsoft.txrealtimelocation.widget; + +import android.content.Context; +import android.support.annotation.Nullable; +import android.util.AttributeSet; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.LinearLayout; +import android.widget.TextView; + +import com.sucstepsoft.txrealtimelocation.R; + +/** + * 作者: adam + * 日期: 2020-03-26 - 12:47 + * 邮箱: itgaojian@163.com + * 描述: + */ +public class StateCheckView extends LinearLayout { + private static final int[] STATE_NORMAL = new int[]{R.attr.state_normal}; + private static final int[] STATE_CHECK = new int[]{R.attr.state_check}; + private static final int[] STATE_UNCHECK = new int[]{R.attr.state_uncheck}; + + private EmStateCheck mState = EmStateCheck.NORMAL; + private TextView mTvState; + + public StateCheckView(Context context) { + super(context); + initView(); + } + + public StateCheckView(Context context, @Nullable AttributeSet attrs) { + super(context, attrs); + initView(); + } + + public StateCheckView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + initView(); + } + + private void initView() { + View view = LayoutInflater.from(getContext()).inflate(R.layout.options_state, this); + mTvState = view.findViewById(R.id.tv_state); + mTvState.setText("未检查"); + } + + @Override + protected int[] onCreateDrawableState(int extraSpace) { + int[] sate = super.onCreateDrawableState(extraSpace + 1); + switch (mState) { + case NORMAL: + mergeDrawableStates(sate, STATE_NORMAL); + break; + case CHECK: + mergeDrawableStates(sate, STATE_CHECK); + break; + case UNCHECK: + mergeDrawableStates(sate, STATE_UNCHECK); + break; + } + return sate; + } + + public void setCheckState(EmStateCheck state) { + if (state != mState) { + mState = state; + refreshDrawableState(); + switch (mState) { + case NORMAL: + mTvState.setText("未检查"); + break; + case CHECK: + mTvState.setText("已检查"); + break; + case UNCHECK: + mTvState.setText("不合格"); + break; + } + } + } + + public EmStateCheck getViewState() { + return mState; + } +} diff --git a/app/src/main/res/drawable-xhdpi/ic_check_del.png b/app/src/main/res/drawable-xhdpi/ic_check_del.png new file mode 100644 index 0000000..f971b2b Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_check_del.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_check_sel.png b/app/src/main/res/drawable-xhdpi/ic_check_sel.png new file mode 100644 index 0000000..2594880 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_check_sel.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_check_un.png b/app/src/main/res/drawable-xhdpi/ic_check_un.png new file mode 100644 index 0000000..83124b8 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_check_un.png differ diff --git a/app/src/main/res/drawable/sel_check_options.xml b/app/src/main/res/drawable/sel_check_options.xml new file mode 100644 index 0000000..5f3f9fc --- /dev/null +++ b/app/src/main/res/drawable/sel_check_options.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_check_options_ce.xml b/app/src/main/res/layout/activity_check_options_ce.xml new file mode 100644 index 0000000..a9ff9f9 --- /dev/null +++ b/app/src/main/res/layout/activity_check_options_ce.xml @@ -0,0 +1,13 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index 21584a6..44af02d 100755 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -12,11 +12,6 @@ android:layout_margin="50dp"> - - - - - - + + + + android:textSize="15sp" + android:visibility="gone" /> + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index a370c1f..eb41095 100755 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -22,7 +22,6 @@ android:layout_centerInParent="true" android:gravity="center_vertical"> - + android:orientation="horizontal" + android:visibility="gone"> diff --git a/app/src/main/res/layout/item_main_func.xml b/app/src/main/res/layout/item_main_func.xml index 2d9e256..e31a6bb 100755 --- a/app/src/main/res/layout/item_main_func.xml +++ b/app/src/main/res/layout/item_main_func.xml @@ -10,9 +10,9 @@ android:gravity="center" android:orientation="vertical" android:paddingLeft="15dp" - android:paddingTop="10dp" + android:paddingTop="25dp" android:paddingRight="15dp" - android:paddingBottom="10dp"> + android:paddingBottom="25dp"> + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/options_state.xml b/app/src/main/res/layout/options_state.xml new file mode 100644 index 0000000..ec43765 --- /dev/null +++ b/app/src/main/res/layout/options_state.xml @@ -0,0 +1,27 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/attrs.xml b/app/src/main/res/values/attrs.xml new file mode 100644 index 0000000..a38fced --- /dev/null +++ b/app/src/main/res/values/attrs.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 4a565f6..8e39b58 100755 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,6 +1,6 @@ - 应急管理局 - + 应急管理局 + 定位点记录中... 所属区域 * ]]> * 详细信息]]>