diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml deleted file mode 100644 index be56306..0000000 --- a/.idea/deploymentTargetDropDown.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index aa8e8fb..ce1724a 100755 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -47,6 +47,20 @@ android:supportsRtl="true" android:theme="@style/AppTheme" tools:ignore="GoogleAppIndexingWarning"> + + + + + + - - + android:screenOrientation="portrait" /> + --> - @@ -382,11 +396,12 @@ + + android:exported="true" /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + \ No newline at end of file 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 07ac267..34e90cf 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 @@ -22,6 +22,7 @@ import com.alibaba.android.arouter.launcher.ARouter; import com.google.gson.Gson; import com.sucstepsoft.cm_utils.constant.PathConfig; import com.sucstepsoft.cm_utils.constant.PermissionConstants; +import com.sucstepsoft.cm_utils.core.GlobalProvider; import com.sucstepsoft.cm_utils.core.network.update.CheckUpdateUtils; import com.sucstepsoft.cm_utils.core.retrofit_net.BaseUrlApi; import com.sucstepsoft.cm_utils.core.retrofit_net.RetrofitManager; @@ -37,7 +38,6 @@ import com.sucstepsoft.txrealtimelocation.beans.AppTokenUser; import com.sucstepsoft.txrealtimelocation.beans.BaseUserBean; import com.sucstepsoft.txrealtimelocation.beans.LoginUser; import com.sucstepsoft.txrealtimelocation.net.LocationApiService; -import com.sucstepsoft.txrealtimelocation.services.GlobalProvider; import com.sucstepsoft.txrealtimelocation.utils.AesUtil; import com.sucstepsoft.txrealtimelocation.utils.ExceptionHandler; 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 ea2a7fb..c1acacc 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 @@ -45,6 +45,7 @@ import com.sucstepsoft.txrealtimelocation.activitys.issue.IssueCheckActivity; import com.sucstepsoft.txrealtimelocation.activitys.issue.MapActivity; import com.sucstepsoft.txrealtimelocation.activitys.issue.PublicAreaActivity; import com.sucstepsoft.txrealtimelocation.activitys.lawlib.LawLibActivity; +import com.sucstepsoft.txrealtimelocation.activitys.locus.LocusMapActivity; import com.sucstepsoft.txrealtimelocation.activitys.mine.MineMissionActivity; import com.sucstepsoft.txrealtimelocation.activitys.mine.UserActivity; import com.sucstepsoft.txrealtimelocation.activitys.notice.NoticeActivity; @@ -115,24 +116,27 @@ public class MainActivity extends BaseActivity { @BindView(R.id.ll_plan) LinearLayout mLlPlan; private String[] permissions = new String[]{ - PermissionConstants.STORAGE, - PermissionConstants.PHONE, - PermissionConstants.MICROPHONE, - PermissionConstants.LOCATION + PermissionConstants.STORAGE, + PermissionConstants.PHONE, + PermissionConstants.MICROPHONE, + PermissionConstants.LOCATION }; private static final int GPS_REQUEST_CODE = 1234; private Unbinder mBind; private List mFuncs = new ArrayList<>(); - private String[] mBtnStrs = new String[]{"我的企业\n(新增企业)", "企业检查", "隐患复查", "待办任务", "固定任务", "随机任务", "公共区域", "法律法规", "企业地图", "钉钉"}; + private String[] mBtnStrs = new String[]{"我的企业\n(新增企业)", "企业检查", "隐患复查", "待办任务", "固定任务", + "随机任务", "公共区域", "法律法规", "企业地图", "工作轨迹", "钉钉"}; // private String[] mBtnStrs = new String[]{"企业信息", "隐患上报", "隐患复查", "我的任务", "历史任务", "法律法规"}; - private int[] mBtnIds = new int[]{R.drawable.ic_main_c_info, R.drawable.ic_main_report, R.drawable.ic_main_risk, - R.drawable.ic_law, - R.drawable.ic_main_mine, - R.drawable.ic_main_history, - R.drawable.ic_main_history, - R.drawable.ic_main_law, - R.drawable.ic_main_risk, - R.drawable.ic_main_report}; + private int[] mBtnIds = new int[]{R.drawable.ic_main_c_info, R.drawable.ic_main_report, + R.drawable.ic_main_risk, + R.drawable.ic_law, + R.drawable.ic_main_mine, + R.drawable.ic_main_history, + R.drawable.ic_main_history, + R.drawable.ic_main_law, + R.drawable.ic_main_risk, + R.drawable.ic_main_risk, + R.drawable.ic_main_report}; private Gson mGson = null; private AlertDialog mGpsWeakDialog; private MessageReceiver mReceiver; @@ -185,72 +189,74 @@ public class MainActivity extends BaseActivity { */ private void getUserIsGrid() { RetrofitManager.getInstance() - .create(LocationApiService.class) - .getGridInfo(UserLgUtils.getToken()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { + .create(LocationApiService.class) + .getGridInfo(UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { - } + } - @Override - public void onNext(GirdPBean girdPBean) { - if ("grid".equals(girdPBean.getPersonType())) { - int isGridOperator = girdPBean.getIsGridOperator(); - UserLgUtils.setIndustryId(isGridOperator); + @Override + public void onNext(GirdPBean girdPBean) { + if ("grid".equals(girdPBean.getPersonType())) { + int isGridOperator = girdPBean.getIsGridOperator(); + UserLgUtils.setIndustryId(isGridOperator); - } else { - UserLgUtils.setIndustryId(-1); - Iterator iterator = mFuncs.iterator(); - while (iterator.hasNext()) { - FuncBean bean = iterator.next(); - if ("隐患复查".equals(bean.getText())) { - iterator.remove(); + } else { + UserLgUtils.setIndustryId(-1); + Iterator iterator = mFuncs.iterator(); + while (iterator.hasNext()) { + FuncBean bean = iterator.next(); + if ("隐患复查".equals(bean.getText())) { + iterator.remove(); + } + } + mFunctionNumAdapter.setData(mFuncs); + } + UserLgUtils.setPersonType(girdPBean.getPersonType()); + String page = getIntent().getStringExtra("page"); + String serviceId = getIntent().getStringExtra("id"); + + if (!TextUtils.isEmpty(page)) { + switch (page) { + case "GO_CHECK2_INFO"://历史案件页面 + startActivity(new Intent(mActivity, HistoryListActivity.class)); + break; + case "GO_CHECK2_COMPLETE"://待办任务完成 + if (!TextUtils.isEmpty(serviceId)) { + String[] split = serviceId.split(":"); + Intent intent = new Intent(mActivity, + CaseCheckOptionsDetailActivity.class); + intent.putExtra("checkId", split[1]); + startActivity(intent); + } + break; + case "GO_CHECK2_HANDLE"://待办案件未完成 + if (!TextUtils.isEmpty(serviceId)) { + String[] split = serviceId.split(":"); + Intent intent = new Intent(mActivity, + CaseCheckOptionsActivity.class); + intent.putExtra("checkId", split[1]); + startActivity(intent); + } + break; } } - mFunctionNumAdapter.setData(mFuncs); } - UserLgUtils.setPersonType(girdPBean.getPersonType()); - String page = getIntent().getStringExtra("page"); - String serviceId = getIntent().getStringExtra("id"); - if (!TextUtils.isEmpty(page)) { - switch (page) { - case "GO_CHECK2_INFO"://历史案件页面 - startActivity(new Intent(mActivity, HistoryListActivity.class)); - break; - case "GO_CHECK2_COMPLETE"://待办任务完成 - if (!TextUtils.isEmpty(serviceId)) { - String[] split = serviceId.split(":"); - Intent intent = new Intent(mActivity, CaseCheckOptionsDetailActivity.class); - intent.putExtra("checkId", split[1]); - startActivity(intent); - } - break; - case "GO_CHECK2_HANDLE"://待办案件未完成 - if (!TextUtils.isEmpty(serviceId)) { - String[] split = serviceId.split(":"); - Intent intent = new Intent(mActivity, CaseCheckOptionsActivity.class); - intent.putExtra("checkId", split[1]); - startActivity(intent); - } - break; - } + @Override + public void onError(Throwable e) { + UserLgUtils.setIndustryId(-1); } - } - @Override - public void onError(Throwable e) { - UserLgUtils.setIndustryId(-1); - } + @Override + public void onComplete() { - @Override - public void onComplete() { - - } - }); + } + }); } private void startLocation() { @@ -276,14 +282,14 @@ public class MainActivity extends BaseActivity { */ private void showNotifySettingPage() { new android.app.AlertDialog.Builder(MainActivity.this) - .setIcon(android.R.drawable.ic_dialog_info) - .setTitle("提示") - .setMessage("为了您能正常接收到系统消息通知,请前往设置页面,将App通知权限开启.") - .setNegativeButton("取消", null) - .setPositiveButton("立即前往", (dialogInterface, i) -> { - NotificationUtils.toSettingPage(getApplicationContext()); - }) - .show(); + .setIcon(android.R.drawable.ic_dialog_info) + .setTitle("提示") + .setMessage("为了您能正常接收到系统消息通知,请前往设置页面,将App通知权限开启.") + .setNegativeButton("取消", null) + .setPositiveButton("立即前往", (dialogInterface, i) -> { + NotificationUtils.toSettingPage(getApplicationContext()); + }) + .show(); } @@ -347,6 +353,9 @@ public class MainActivity extends BaseActivity { case "随机任务": intent = new Intent(this, RandomMissionActivity.class); break; + case "工作轨迹": + intent= new Intent(this, LocusMapActivity.class); + break; } if (intent != null) { startActivity(intent); @@ -369,11 +378,11 @@ public class MainActivity extends BaseActivity { } 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); + .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); // Glide.with(mActivity) // .load(R.drawable.ic_nomal) // .into(mIvState); @@ -391,147 +400,147 @@ public class MainActivity extends BaseActivity { */ private void getNumberByMine() { RetrofitManager.getInstance() - .create(LocationApiService.class) - .getArticleCount("94d1691f-65e6-4c82-8537-98c4a318b09e", UserLgUtils.getToken()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { + .create(LocationApiService.class) + .getArticleCount("94d1691f-65e6-4c82-8537-98c4a318b09e", UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { - } - - @Override - public void onNext(BaseUserBean baseUserBean) { - if (!TextUtils.isEmpty(baseUserBean.getData())) { - int i = Integer.parseInt(baseUserBean.getData()); - if (i >= 100) { - mTvAvisoNum.setText("99+"); - } else { - mTvAvisoNum.setText(baseUserBean.getData() + ""); - } } - } + @Override + public void onNext(BaseUserBean baseUserBean) { + if (!TextUtils.isEmpty(baseUserBean.getData())) { + int i = Integer.parseInt(baseUserBean.getData()); + if (i >= 100) { + mTvAvisoNum.setText("99+"); + } else { + mTvAvisoNum.setText(baseUserBean.getData() + ""); + } + } - @Override - public void onError(Throwable e) { + } - } + @Override + public void onError(Throwable e) { - @Override - public void onComplete() { + } - } - }); + @Override + public void onComplete() { + + } + }); } private void getMineCurrentNum() { RetrofitManager.getInstance() - .create(LocationApiService.class) - .getPlanMineNum(UserLgUtils.getToken()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { + .create(LocationApiService.class) + .getPlanMineNum(UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { - } - - @Override - public void onNext(SuccCountBean baseUserBean) { - refreshView(STATE_LOAD_SUCCESS); - if (baseUserBean != null && baseUserBean.getData() != null) { - mTvPlanNum.setText(baseUserBean.getData().getCheckPlanCount() + ""); - } else { - mTvPlanNum.setText("0"); } - } - @Override - public void onError(Throwable e) { + @Override + public void onNext(SuccCountBean baseUserBean) { + refreshView(STATE_LOAD_SUCCESS); + if (baseUserBean != null && baseUserBean.getData() != null) { + mTvPlanNum.setText(baseUserBean.getData().getCheckPlanCount() + ""); + } else { + mTvPlanNum.setText("0"); + } + } - } + @Override + public void onError(Throwable e) { - @Override - public void onComplete() { + } - } - }); + @Override + public void onComplete() { + + } + }); } private void getNumberEnter() { RetrofitManager.getInstance() - .create(LocationApiService.class) - .getClaimedCount(UserLgUtils.getToken()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { + .create(LocationApiService.class) + .getClaimedCount(UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { - } - - @Override - public void onNext(BaseUserBean baseUserBean) { - if (!TextUtils.isEmpty(baseUserBean.getData())) { - int i = Integer.parseInt(baseUserBean.getData()); - if (i >= 100) { - mTvMineIssueNum.setText("99+"); - } else { - mTvMineIssueNum.setText(baseUserBean.getData() + ""); - } } - } + @Override + public void onNext(BaseUserBean baseUserBean) { + if (!TextUtils.isEmpty(baseUserBean.getData())) { + int i = Integer.parseInt(baseUserBean.getData()); + if (i >= 100) { + mTvMineIssueNum.setText("99+"); + } else { + mTvMineIssueNum.setText(baseUserBean.getData() + ""); + } + } - @Override - public void onError(Throwable e) { + } - } + @Override + public void onError(Throwable e) { - @Override - public void onComplete() { + } - } - }); + @Override + public void onComplete() { + + } + }); } private void getNumberHistory() { RetrofitManager.getInstance() - .create(LocationApiService.class) - .getHistoryCount(UserLgUtils.getToken()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { + .create(LocationApiService.class) + .getHistoryCount(UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { - } - - @Override - public void onNext(BaseUserBean baseUserBean) { - if (!TextUtils.isEmpty(baseUserBean.getData())) { - int i = Integer.parseInt(baseUserBean.getData()); - if (i >= 100) { - mTvHistoryNum.setText("99+"); - } else { - mTvHistoryNum.setText(baseUserBean.getData() + ""); - } } - } + @Override + public void onNext(BaseUserBean baseUserBean) { + if (!TextUtils.isEmpty(baseUserBean.getData())) { + int i = Integer.parseInt(baseUserBean.getData()); + if (i >= 100) { + mTvHistoryNum.setText("99+"); + } else { + mTvHistoryNum.setText(baseUserBean.getData() + ""); + } + } - @Override - public void onError(Throwable e) { + } - } + @Override + public void onError(Throwable e) { - @Override - public void onComplete() { + } - } - }); + @Override + public void onComplete() { + + } + }); } private AlertDialog mGpsSettingDialog; @@ -543,14 +552,14 @@ public class MainActivity extends BaseActivity { private void openGpsSetting() { if (mGpsSettingDialog == null) { mGpsSettingDialog = new AlertDialog.Builder(this).setTitle("打开GPS") - .setMessage("定位需要打开GPS,请前往设置") - .setNegativeButton("取消", (dialogInterface, i) -> dialogInterface.dismiss()) - .setPositiveButton("前往", (dialogInterface, i) -> { - Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS); - startActivityForResult(intent, GPS_REQUEST_CODE); - }) - .setCancelable(false) - .create(); + .setMessage("定位需要打开GPS,请前往设置") + .setNegativeButton("取消", (dialogInterface, i) -> dialogInterface.dismiss()) + .setPositiveButton("前往", (dialogInterface, i) -> { + Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS); + startActivityForResult(intent, GPS_REQUEST_CODE); + }) + .setCancelable(false) + .create(); } if (!mGpsSettingDialog.isShowing()) { mGpsSettingDialog.show(); @@ -599,35 +608,36 @@ public class MainActivity extends BaseActivity { */ private void checkAppVersion() { RetrofitManager.getInstance() - .create(LocationApiService.class) - .doCheckAppVersion(PathConfig.APP_VERSION_ID, UserLgUtils.getToken()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { + .create(LocationApiService.class) + .doCheckAppVersion(PathConfig.APP_VERSION_ID, UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { - } + } - @Override - public void onNext(VersionBean successBean) { - if (successBean != null && successBean.getData() > 0) { - if (CheckUpdateUtils.checkcode(MainActivity.this, successBean.getData() + "")) { - startDownloadApk(); + @Override + public void onNext(VersionBean successBean) { + if (successBean != null && successBean.getData() > 0) { + if (CheckUpdateUtils.checkcode(MainActivity.this, + successBean.getData() + "")) { + startDownloadApk(); + } } } - } - @Override - public void onError(Throwable e) { + @Override + public void onError(Throwable e) { - } + } - @Override - public void onComplete() { + @Override + public void onComplete() { - } - }); + } + }); } @@ -652,11 +662,11 @@ public class MainActivity extends BaseActivity { * report 案件上报 */ @OnClick({ - R.id.ll_mine_issue, - R.id.ll_history, - R.id.ll_plan, - R.id.ll_user_center, - R.id.ll_day_aviso}) + R.id.ll_mine_issue, + R.id.ll_history, + R.id.ll_plan, + R.id.ll_user_center, + R.id.ll_day_aviso}) public void onViewClicked(View view) { switch (view.getId()) { case R.id.ll_issue_dis://待办案件 @@ -689,11 +699,11 @@ public class MainActivity extends BaseActivity { protected void onResume() { super.onResume(); 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); + .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); } @Override 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 21d5f00..202b817 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,1081 +1,1014 @@ -//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.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); +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.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +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); // } // }); -//// 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()); + 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); + 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.showErrorShort("获取围栏数据失败,请稍后重试"); -// } -// -// @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.showSuccessShort("请选择当前时间之前的日期."); -// } 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.showErrorShort("获取工作路径失败,请稍后重试."); -// } -// -// @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.showErrorShort("暂无历史工作轨迹"); -// } -// } -// -// @Override -// public void onError(Throwable e) { -// mProgressDialog.dismiss(); -// ToastUtils.showErrorShort("获取历史工作轨迹失败,请稍后重试."); -// } -// -// @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()); +// 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(); + getUserList(TimeUtils.getNowStr()); + } + + + 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.showErrorShort("获取围栏数据失败,请稍后重试"); + } + + @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.showSuccessShort("请选择当前时间之前的日期."); + } 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.showErrorShort("获取工作路径失败,请稍后重试."); + } + + @Override + public void onComplete() { + + } + }); + } + + private List mTextBeans = new ArrayList<>(); + + private void drawLine(List datas) { + //添加开始点 + MineLocationBean startBean = datas.get(0); + LocusTextBean bean = new LocusTextBean(); + bean.setAddress("定位地址:未知"); + 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 = date + " 23:59:59"; + String start = date + " 00:00:00"; + RetrofitManager.getInstance().create(LocationApiService.class).getUserLocationList(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.showErrorShort("暂无历史工作轨迹"); + } + } + + @Override + public void onError(Throwable e) { + mProgressDialog.dismiss(); + ToastUtils.showErrorShort("获取历史工作轨迹失败,请稍后重试."); + } + + @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.getLat()), + Double.parseDouble(preBean.getLng())); + LatLng nextLatlng = new LatLng(Double.parseDouble(nextBean.getLat()), + Double.parseDouble(nextBean.getLng())); + if (i == 0) { + LocusTextBean bean = new LocusTextBean(); + bean.setAddress("定位地址:未知"); + 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(); + bean.setAddress("定位地址:未知"); + 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(); + bean.setAddress("定位地址:未知"); + 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(); + bean.setAddress("定位地址:未知"); + 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(); + bean.setAddress("定位地址:未知"); + 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(); + bean.setAddress("定位地址:未知"); + 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(); + bean.setAddress("定位地址:未知"); + 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(); + bean.setAddress("定位地址:未知"); + 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(); + bean.setAddress("定位地址:未知"); + 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(); + bean.setAddress("定位地址:未知"); + 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(); + bean.setAddress("定位地址:未知"); + 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(); + bean1.setAddress("定位地址:未知"); + 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.showErrorShort("获取历史轨迹数据失败,请稍后重试"); + } + + @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.getLat()), + Double.parseDouble(preBean.getLng())); + LatLng nextLatlng = new LatLng(Double.parseDouble(nextBean.getLat()), + Double.parseDouble(nextBean.getLng())); + //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; // } -// 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.showErrorShort("获取历史轨迹数据失败,请稍后重试"); -// } -// -// @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); + 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).getLat()), + Double.parseDouble(beans.get(0).getLng())))//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); // } -// } -// -// /** -// * 画线到地图上 -// * -// * @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(); -// } -// -//} + if (mBind != null) { + mBind.unbind(); + } + super.onDestroy(); + } + +} diff --git a/app/src/main/java/com/sucstepsoft/txrealtimelocation/activitys/mine/ChangePwdActivity.java b/app/src/main/java/com/sucstepsoft/txrealtimelocation/activitys/mine/ChangePwdActivity.java index fd1fdcd..e7e850b 100755 --- a/app/src/main/java/com/sucstepsoft/txrealtimelocation/activitys/mine/ChangePwdActivity.java +++ b/app/src/main/java/com/sucstepsoft/txrealtimelocation/activitys/mine/ChangePwdActivity.java @@ -10,6 +10,7 @@ import android.widget.EditText; import android.widget.ImageView; import com.google.gson.Gson; +import com.sucstepsoft.cm_utils.core.GlobalProvider; import com.sucstepsoft.cm_utils.core.retrofit_net.RetrofitManager; import com.sucstepsoft.cm_utils.core.widget.base.BaseActivity; import com.sucstepsoft.cm_utils.utils.EncryptUtils; @@ -20,7 +21,6 @@ import com.sucstepsoft.txrealtimelocation.R; import com.sucstepsoft.txrealtimelocation.beans.ChangePwdBean; import com.sucstepsoft.txrealtimelocation.beans.SuccessBean; import com.sucstepsoft.txrealtimelocation.net.LocationApiService; -import com.sucstepsoft.txrealtimelocation.services.GlobalProvider; import com.sucstepsoft.txrealtimelocation.utils.ExceptionHandler; import butterknife.BindView; diff --git a/app/src/main/java/com/sucstepsoft/txrealtimelocation/activitys/mine/MsgDetailActivity.java b/app/src/main/java/com/sucstepsoft/txrealtimelocation/activitys/mine/MsgDetailActivity.java new file mode 100644 index 0000000..ddbe8e0 --- /dev/null +++ b/app/src/main/java/com/sucstepsoft/txrealtimelocation/activitys/mine/MsgDetailActivity.java @@ -0,0 +1,38 @@ +package com.sucstepsoft.txrealtimelocation.activitys.mine; + +import com.sucstepsoft.cm_utils.core.beans.MessageBean; +import com.sucstepsoft.cm_utils.core.widget.base.BaseActivity; +import com.sucstepsoft.txrealtimelocation.R; + +import butterknife.ButterKnife; +import butterknife.Unbinder; + +/** + * 消息详情 + */ +public class MsgDetailActivity extends BaseActivity { + + + private Unbinder mBind; + private MessageBean mBean; + + @Override + protected int setLayoutId() { + return R.layout.activity_msg_detail; + } + + @Override + public void initData() { + mBind = ButterKnife.bind(this); + mTvBaseTitle.setText("消息详情"); + mBean = (MessageBean) getIntent().getSerializableExtra("bean"); + if (mBean != null) { + setDataToView(); + } + } + + private void setDataToView() { + refreshView(STATE_LOAD_SUCCESS); + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/sucstepsoft/txrealtimelocation/activitys/mine/MsgListActivity.java b/app/src/main/java/com/sucstepsoft/txrealtimelocation/activitys/mine/MsgListActivity.java new file mode 100644 index 0000000..9885193 --- /dev/null +++ b/app/src/main/java/com/sucstepsoft/txrealtimelocation/activitys/mine/MsgListActivity.java @@ -0,0 +1,64 @@ +package com.sucstepsoft.txrealtimelocation.activitys.mine; + +import android.content.Intent; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.text.TextUtils; + +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import com.sucstepsoft.cm_utils.core.GlobalProvider; +import com.sucstepsoft.cm_utils.core.beans.MessageBean; +import com.sucstepsoft.cm_utils.core.widget.base.BaseActivity; +import com.sucstepsoft.txrealtimelocation.R; +import com.sucstepsoft.txrealtimelocation.adapters.MsgListAdapter; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.ButterKnife; +import butterknife.Unbinder; + +/** + * 消息列表 + */ +public class MsgListActivity extends BaseActivity { + + @BindView(R.id.rlv_msg) + RecyclerView mRlvMsg; + private Unbinder mBind; + private List mData = new ArrayList<>(); + private MsgListAdapter mAdapter; + + @Override + protected int setLayoutId() { + return R.layout.activity_msg_list; + } + + @Override + public void initData() { + mBind = ButterKnife.bind(this); + refreshView(STATE_LOAD_SUCCESS); + mTvBaseTitle.setText("通知消息"); + mAdapter = new MsgListAdapter(this, mData); + mRlvMsg.setLayoutManager(new LinearLayoutManager(this)); + mRlvMsg.setAdapter(mAdapter); + String socketMsg = GlobalProvider.getString(this, "socketMsg"); + if (TextUtils.isEmpty(socketMsg)) { + refreshView(STATE_LOAD_EMPTY); + } else { + Gson gson = new Gson(); + List beans = gson.fromJson(socketMsg, new TypeToken>() { + }.getType()); + mData = beans; + mAdapter.setData(mData); + refreshView(STATE_LOAD_SUCCESS); + } + mAdapter.addOnItemClickListener(messageBean -> { + Intent intent = new Intent(MsgListActivity.this, MsgDetailActivity.class); + intent.putExtra("bean", messageBean); + startActivity(intent); + }); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/sucstepsoft/txrealtimelocation/activitys/mine/UserActivity.java b/app/src/main/java/com/sucstepsoft/txrealtimelocation/activitys/mine/UserActivity.java index be9e32e..e03539a 100755 --- a/app/src/main/java/com/sucstepsoft/txrealtimelocation/activitys/mine/UserActivity.java +++ b/app/src/main/java/com/sucstepsoft/txrealtimelocation/activitys/mine/UserActivity.java @@ -1,10 +1,7 @@ package com.sucstepsoft.txrealtimelocation.activitys.mine; -import android.Manifest; import android.app.ProgressDialog; -import android.content.Context; import android.content.Intent; -import android.content.pm.PackageManager; import android.database.Cursor; import android.graphics.Bitmap; import android.graphics.BitmapFactory; @@ -12,10 +9,8 @@ import android.net.Uri; import android.os.Build; import android.provider.MediaStore; import android.provider.Settings; -import android.support.v4.app.ActivityCompat; import android.support.v4.content.FileProvider; import android.support.v7.app.AlertDialog; -import android.telephony.TelephonyManager; import android.text.TextUtils; import android.util.Base64; import android.view.Gravity; @@ -32,6 +27,7 @@ import com.bumptech.glide.load.resource.bitmap.CircleCrop; import com.bumptech.glide.request.RequestOptions; import com.google.gson.Gson; import com.sucstepsoft.cm_utils.constant.PathConfig; +import com.sucstepsoft.cm_utils.core.GlobalProvider; import com.sucstepsoft.cm_utils.core.network.update.CheckUpdateUtils; import com.sucstepsoft.cm_utils.core.retrofit_net.BaseUrlApi; import com.sucstepsoft.cm_utils.core.retrofit_net.RetrofitManager; @@ -39,7 +35,6 @@ import com.sucstepsoft.cm_utils.core.widget.base.BaseActivity; import com.sucstepsoft.cm_utils.core.widget.views.ButtomDialogView; 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.FileUtils; import com.sucstepsoft.cm_utils.utils.LogUtils; import com.sucstepsoft.cm_utils.utils.ProiderUtil; @@ -54,13 +49,10 @@ import com.sucstepsoft.txrealtimelocation.beans.LoginUser; import com.sucstepsoft.txrealtimelocation.beans.SuccessBean; import com.sucstepsoft.txrealtimelocation.beans.VersionBean; import com.sucstepsoft.txrealtimelocation.net.LocationApiService; -import com.sucstepsoft.txrealtimelocation.services.GlobalProvider; import com.sucstepsoft.txrealtimelocation.utils.AesUtil; import com.sucstepsoft.txrealtimelocation.utils.ExceptionHandler; import java.io.File; -import java.io.IOException; -import java.util.UUID; import butterknife.BindView; import butterknife.ButterKnife; @@ -108,6 +100,8 @@ public class UserActivity extends BaseActivity { RelativeLayout mRlLeaveCheck; @BindView(R.id.rl_data_center) RelativeLayout mRlDataCenter; + @BindView(R.id.rl_msg) + RelativeLayout mRlMsg; private String mPicPath; private Unbinder mBind; @@ -131,6 +125,7 @@ public class UserActivity extends BaseActivity { mRlLeave.setOnClickListener(v -> choosePage(3)); mRlLeaveCheck.setOnClickListener(v -> choosePage(4)); mRlDataCenter.setOnClickListener(v -> choosePage(5)); + mRlMsg.setOnClickListener(v -> choosePage(6)); String dirSize = FileUtils.getDirSize(PathConfig.PROJECT_CATCH_PATH); mTvCacheNum.setText(dirSize); mTvVersionNum.setText("v " + AppUtils.getAppVersionName()); @@ -284,7 +279,8 @@ public class UserActivity extends BaseActivity { @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); + MultipartBody.Part body = MultipartBody.Part.createFormData("image", file.getName(), + requestFile); RetrofitManager.getInstance() .create(LocationApiService.class) .uploadImage(body, UserLgUtils.getToken()) @@ -407,7 +403,8 @@ public class UserActivity extends BaseActivity { if (!TextUtils.isEmpty(baseUserBean.getData())) { byte[] decode = Base64.decode(baseUserBean.getData(), Base64.DEFAULT); try { - String loginUserInfo = AesUtil.aesCommonDecoder(PathConfig.SECRET, new String(decode, "UTF-8")); + String loginUserInfo = AesUtil.aesCommonDecoder(PathConfig.SECRET, new String(decode, + "UTF-8")); LogUtils.e(loginUserInfo); if (!TextUtils.isEmpty(loginUserInfo)) { AppTokenUser appTokenUser = gson.fromJson(loginUserInfo, AppTokenUser.class); @@ -573,6 +570,9 @@ public class UserActivity extends BaseActivity { case 5: startActivity(new Intent(UserActivity.this, StatisticsActivity.class)); break; + case 6: + startActivity(new Intent(UserActivity.this, MsgListActivity.class)); + break; } } diff --git a/app/src/main/java/com/sucstepsoft/txrealtimelocation/adapters/MsgListAdapter.java b/app/src/main/java/com/sucstepsoft/txrealtimelocation/adapters/MsgListAdapter.java new file mode 100755 index 0000000..9d53568 --- /dev/null +++ b/app/src/main/java/com/sucstepsoft/txrealtimelocation/adapters/MsgListAdapter.java @@ -0,0 +1,36 @@ +package com.sucstepsoft.txrealtimelocation.adapters; + +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import com.sucstepsoft.cm_utils.core.beans.MessageBean; +import com.sucstepsoft.cm_utils.core.widget.base.BaseRecyclerAdapter; +import com.sucstepsoft.txrealtimelocation.R; +import com.sucstepsoft.txrealtimelocation.adapters.holders.MsgHolder; + +import java.util.List; + +/** + * 作者: Adam + * 日期: 2019/8/14 - 15:35 + * 邮箱: itgaojian@163.com + * 描述: + */ +public class MsgListAdapter extends BaseRecyclerAdapter { + public MsgListAdapter(Context ctx, List list) { + super(ctx, list); + } + + @Override + public MsgHolder createHolder(ViewGroup parent, int viewType) { + View itemView = LayoutInflater.from(mContext).inflate(R.layout.item_msg_list, parent, false); + return new MsgHolder(itemView); + } + + @Override + public void bindHolder(MsgHolder h, int i) { + h.mTvTime.setText(mData.get(i).getTimestamp() + ""); + } +} diff --git a/app/src/main/java/com/sucstepsoft/txrealtimelocation/adapters/holders/MsgHolder.java b/app/src/main/java/com/sucstepsoft/txrealtimelocation/adapters/holders/MsgHolder.java new file mode 100644 index 0000000..a13c568 --- /dev/null +++ b/app/src/main/java/com/sucstepsoft/txrealtimelocation/adapters/holders/MsgHolder.java @@ -0,0 +1,19 @@ +package com.sucstepsoft.txrealtimelocation.adapters.holders; + +import android.support.annotation.NonNull; +import android.support.v7.widget.RecyclerView; +import android.view.View; +import android.widget.TextView; + +import com.sucstepsoft.txrealtimelocation.R; + +public class MsgHolder extends RecyclerView.ViewHolder { + public TextView mTvTitle; + public TextView mTvTime; + + public MsgHolder(@NonNull View itemView) { + super(itemView); + mTvTitle = itemView.findViewById(R.id.tv_title); + mTvTime = itemView.findViewById(R.id.tv_time); + } +} 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 5420281..9b2ae73 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/beans/MineLocationBean.java b/app/src/main/java/com/sucstepsoft/txrealtimelocation/beans/MineLocationBean.java index 1273596..eed57b3 100755 --- a/app/src/main/java/com/sucstepsoft/txrealtimelocation/beans/MineLocationBean.java +++ b/app/src/main/java/com/sucstepsoft/txrealtimelocation/beans/MineLocationBean.java @@ -7,63 +7,19 @@ package com.sucstepsoft.txrealtimelocation.beans; * 描述: */ public class MineLocationBean implements Comparable { - - /** - * userLocationId : 32dcd59c-808b-4220-a586-68acb041b931 - * userLongitude : 111.7705 - * userLatitude : 40.871871 - * userLocation : 中国内蒙古自治区呼和浩特市新城区科尔沁北路 - * isOverstep : 0未越界,1越界 -1异常 - * creator : 1 - * gmtCreate : 2019-08-09 09:27:52 - */ - - private String userLocationId; - private String userLongitude; - private String userLatitude; - private String userLocation; - private String isOverstep; + private String actionPointId; private String creator; + private String creatorName; private String gmtCreate; + private String lat; + private String lng; - public String getUserLocationId() { - return userLocationId; + public String getActionPointId() { + return actionPointId; } - public void setUserLocationId(String userLocationId) { - this.userLocationId = userLocationId; - } - - public String getUserLongitude() { - return userLongitude; - } - - public void setUserLongitude(String userLongitude) { - this.userLongitude = userLongitude; - } - - public String getUserLatitude() { - return userLatitude; - } - - public void setUserLatitude(String userLatitude) { - this.userLatitude = userLatitude; - } - - public String getUserLocation() { - return userLocation; - } - - public void setUserLocation(String userLocation) { - this.userLocation = userLocation; - } - - public String getIsOverstep() { - return isOverstep; - } - - public void setIsOverstep(String isOverstep) { - this.isOverstep = isOverstep; + public void setActionPointId(String actionPointId) { + this.actionPointId = actionPointId; } public String getCreator() { @@ -74,6 +30,14 @@ public class MineLocationBean implements Comparable { this.creator = creator; } + public String getCreatorName() { + return creatorName; + } + + public void setCreatorName(String creatorName) { + this.creatorName = creatorName; + } + public String getGmtCreate() { return gmtCreate; } @@ -82,6 +46,22 @@ public class MineLocationBean implements Comparable { this.gmtCreate = gmtCreate; } + public String getLat() { + return lat; + } + + public void setLat(String lat) { + this.lat = lat; + } + + public String getLng() { + return lng; + } + + public void setLng(String lng) { + this.lng = lng; + } + @Override public int compareTo(MineLocationBean o) { diff --git a/app/src/main/java/com/sucstepsoft/txrealtimelocation/net/LocationApiService.java b/app/src/main/java/com/sucstepsoft/txrealtimelocation/net/LocationApiService.java index a61a582..4d4634e 100755 --- a/app/src/main/java/com/sucstepsoft/txrealtimelocation/net/LocationApiService.java +++ b/app/src/main/java/com/sucstepsoft/txrealtimelocation/net/LocationApiService.java @@ -2,7 +2,6 @@ package com.sucstepsoft.txrealtimelocation.net; import com.google.gson.JsonObject; -import com.sucstepsoft.cm_utils.core.retrofit_net.BaseUrlApi; import com.sucstepsoft.txrealtimelocation.beans.AddressListBean; import com.sucstepsoft.txrealtimelocation.beans.AreaListBean; import com.sucstepsoft.txrealtimelocation.beans.BaseDictionaryBean; @@ -62,7 +61,6 @@ import java.util.List; import io.reactivex.Observable; import okhttp3.MultipartBody; -import okhttp3.Request; import okhttp3.RequestBody; import retrofit2.http.Body; import retrofit2.http.DELETE; @@ -103,7 +101,8 @@ public interface LocationApiService { */ @Headers({"Content-Type: application/json", "Accept: application/json"}) @GET("appversion/getappversionnumber/{appVersionId}") - Observable doCheckAppVersion(@Path("appVersionId") String appVersionId, @Header("token") String token); + Observable doCheckAppVersion(@Path("appVersionId") String appVersionId, @Header( + "token") String token); @Headers({"Content-Type:application/json", "Accept:application/json"}) @GET("user/getappuser") @@ -192,7 +191,9 @@ public interface LocationApiService { */ @Headers({"base_url_name:dict", "Content-Type:application/json", "Accept:application/json"}) @GET("app/news/listpagenews/{newsType}") - Observable getNewsList(@Path("newsType") String newsType, @Query("rows") String rows, @Query("page") String page, @Header("token") String token); + Observable getNewsList(@Path("newsType") String newsType, + @Query("rows") String rows, @Query("page") String page, + @Header("token") String token); /** * 获取下级部门和用户列表 @@ -203,7 +204,8 @@ public interface LocationApiService { */ @Headers({"Content-Type: application/json", "Accept: application/json"}) @GET("department/getsubdepartmentanduserlist") - Observable getDepartmentUsers(@Query("id") String id, @Header("token") String token); + Observable getDepartmentUsers(@Query("id") String id, + @Header("token") String token); /** * 获取树 @@ -214,8 +216,10 @@ public interface LocationApiService { */ @Headers({"Content-Type:application/json", "Accept:application/json"}) @GET("department/listztreedepartments") - Observable> getDepartmentList(@Query("id") String id, @Header("token") String token); - //==========================================================案件相关接口===================Start=================================================== + Observable> getDepartmentList(@Query("id") String id, + @Header("token") String token); + //==========================================================案件相关接口===================Start + // =================================================== /** * 获取首页消息数量 @@ -230,11 +234,13 @@ public interface LocationApiService { //地区的上级ID传:9d179f05-3ea0-48f7-853c-d3b7124b791c @Headers({"base_url_name:dict"}) @GET("app/dict/listdict/{dicParentId}") - Observable> getDictList(@Path("dicParentId") String dicParentId, @Header("token") String token); + Observable> getDictList(@Path("dicParentId") String dicParentId, @Header( + "token") String token); @Headers({"base_url_name:dict"}) @GET("app/dict/listdictall/{dictParentId}") - Observable> getDictListAll(@Path("dictParentId") String pId, @Header("token") String token); + Observable> getDictListAll(@Path("dictParentId") String pId, @Header( + "token") String token); /** * 片长详情 @@ -246,7 +252,8 @@ public interface LocationApiService { */ @Headers({"base_url_name:dict"}) @GET("app/communityboss/listcommunitybossdetail/{areaId}/{communityBossParentId}") - Observable> getListCommunityList(@Path("areaId") String areaId, @Path("communityBossParentId") String bossId, @Header("token") String token); + Observable> getListCommunityList(@Path("areaId") String areaId, @Path( + "communityBossParentId") String bossId, @Header("token") String token); /** * 获取小区列表 @@ -257,7 +264,8 @@ public interface LocationApiService { */ @Headers({"base_url_name:dict"}) @GET("app/community/listareacommunity/{areaId}") - Observable> getCommunityList(@Path("areaId") String areaId, @Header("token") String token); + Observable> getCommunityList(@Path("areaId") String areaId, @Header( + "token") String token); /** * 上传图片文件 @@ -270,7 +278,8 @@ public interface LocationApiService { @Headers({"base_url_name:dict"}) @Multipart @POST("file/uploadimage") - Observable uploadImage(@Part MultipartBody.Part file, @Header("token") String token); + Observable uploadImage(@Part MultipartBody.Part file, + @Header("token") String token); /** * 修改个人信息 @@ -281,7 +290,8 @@ public interface LocationApiService { */ @Headers({"Content-Type:application/json", "Accept:application/json"}) @PUT("user/updateuserinfo") - Observable doChangeUserInfo(@Body RequestBody userInfo, @Header("token") String token); + Observable doChangeUserInfo(@Body RequestBody userInfo, + @Header("token") String token); /** * 修改密码 @@ -305,7 +315,8 @@ public interface LocationApiService { @Headers({"base_url_name:dict"}) @Multipart @POST("file/uploadaudio") - Observable uploadVideo(@Part MultipartBody.Part file, @Header("token") String token); + Observable uploadVideo(@Part MultipartBody.Part file, + @Header("token") String token); /** * 上传音频文件 @@ -318,7 +329,8 @@ public interface LocationApiService { @Headers({"base_url_name:dict"}) @Multipart @POST("file/uploadfile") - Observable uploadFile(@Part MultipartBody.Part file, @Header("token") String token); + Observable uploadFile(@Part MultipartBody.Part file, + @Header("token") String token); /** * 保存案件上报 @@ -329,7 +341,8 @@ public interface LocationApiService { */ @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @POST("app/reportcase/savereportcase") - Observable doReportIssue(@Body RequestBody IssueReportBody, @Header("token") String token); + Observable doReportIssue(@Body RequestBody IssueReportBody, + @Header("token") String token); /** * 获取待下派列表 @@ -341,7 +354,9 @@ public interface LocationApiService { */ @Headers({"base_url_name:dict"}) @GET("app/reportcase/listpagereportcaseassign") - Observable getIssueSubList(@Query("rows") String rows, @Query("page") String page, @Header("token") String token); + Observable getIssueSubList(@Query("rows") String rows, + @Query("page") String page, + @Header("token") String token); /** * 获取待处理列表 @@ -353,7 +368,9 @@ public interface LocationApiService { */ @Headers({"base_url_name:dict"}) @GET("app/reportcase/listpagereportcasehandle") - Observable getIssueDisList(@Query("rows") String ros, @Query("page") String page, @Header("token") String token); + Observable getIssueDisList(@Query("rows") String ros, + @Query("page") String page, + @Header("token") String token); /** * 获取待检查列表 @@ -365,11 +382,14 @@ public interface LocationApiService { */ @Headers({"base_url_name:dict"}) @GET("app/reportcase/listpagereportcaseinspect") - Observable getIssueInspectList(@Query("rows") String row, @Query("page") String page, @Header("token") String token); + Observable getIssueInspectList(@Query("rows") String row, + @Query("page") String page, + @Header("token") String token); @Headers({"base_url_name:dict"}) @GET("app/reportcase/getreportcase/{reportCaseId}") - Observable getIssueDetail(@Path("reportCaseId") String id, @Header("token") String token); + Observable getIssueDetail(@Path("reportCaseId") String id, + @Header("token") String token); //GET /app/reportcase/getreportcase/{reportCaseId} @@ -383,7 +403,9 @@ public interface LocationApiService { */ @Headers({"base_url_name:dict"}) @GET("app/reportcase/listpagereportcaseclose") - Observable getIssueCloseList(@Query("rows") String rows, @Query("page") String page, @Header("token") String token); + Observable getIssueCloseList(@Query("rows") String rows, + @Query("page") String page, + @Header("token") String token); /** * 获取案件归档列表 @@ -395,7 +417,10 @@ public interface LocationApiService { */ @Headers({"base_url_name:dict"}) @GET("app/reportcase/listpagereportcase") - Observable getIssueFinishList(@Query("caseStatus") String status, @Query("rows") String rows, @Query("page") String page, @Header("token") String token); + Observable getIssueFinishList(@Query("caseStatus") String status, + @Query("rows") String rows, + @Query("page") String page, + @Header("token") String token); /** * 保存处理案件 @@ -407,7 +432,9 @@ public interface LocationApiService { */ @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @POST("app/reportcase/savereportcasehandle/{caseId}") - Observable saveIssueDis(@Path("caseId") String caseId, @Body RequestBody requestBody, @Header("token") String token); + Observable saveIssueDis(@Path("caseId") String caseId, + @Body RequestBody requestBody, + @Header("token") String token); /** * 保存案件检查 @@ -419,7 +446,9 @@ public interface LocationApiService { */ @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @POST("app/reportcase/savereportcaseinspect/{caseId}") - Observable saveIssueInspect(@Path("caseId") String caseId, @Body RequestBody requestBody, @Header("token") String token); + Observable saveIssueInspect(@Path("caseId") String caseId, + @Body RequestBody requestBody, + @Header("token") String token); /** * 我的待检查案件列表 @@ -431,7 +460,9 @@ public interface LocationApiService { */ @Headers({"base_url_name:dict"}) @GET("app/reportcase/listpagereportcaseinspectofmine") - Observable getMineInspectList(@Query("rows") String rows, @Query("page") String page, @Header("token") String token); + Observable getMineInspectList(@Query("rows") String rows, + @Query("page") String page, + @Header("token") String token); /** * 我的待处理 @@ -443,7 +474,9 @@ public interface LocationApiService { */ @Headers({"base_url_name:dict"}) @GET("app/reportcase/listpagereportcasehandleofmine") - Observable getMineIssueDisList(@Query("rows") String ros, @Query("page") String page, @Header("token") String token); + Observable getMineIssueDisList(@Query("rows") String ros, + @Query("page") String page, + @Header("token") String token); /** @@ -456,7 +489,9 @@ public interface LocationApiService { */ @Headers({"base_url_name:dict"}) @GET("app/reportcase/listpagetotalreportcasehandleofmine") - Observable getMineTransactList(@Query("rows") String ros, @Query("page") String page, @Header("token") String token); + Observable getMineTransactList(@Query("rows") String ros, + @Query("page") String page, + @Header("token") String token); /** * 我的案件列表 @@ -468,7 +503,9 @@ public interface LocationApiService { */ @Headers({"base_url_name:dict"}) @GET("app/reportcase/listreportcaseofmine") - Observable getMineIssueList(@Query("rows") String rows, @Query("page") String page, @Header("token") String token); + Observable getMineIssueList(@Query("rows") String rows, + @Query("page") String page, + @Header("token") String token); /** * 获取案件流程 @@ -478,10 +515,13 @@ public interface LocationApiService { */ @Headers({"base_url_name:dict"}) @GET("app/reportcase/listreportcaselog/{caseId}") - Observable> getCaseFlowList(@Path("caseId") String caseId, @Header("token") String token); - //==================================================案件相关接口====================End=================================================== + Observable> getCaseFlowList(@Path("caseId") String caseId, + @Header("token") String token); + //==================================================案件相关接口====================End + // =================================================== - //==================================================请假接口====================Start=================================================== + //==================================================请假接口====================Start + // =================================================== @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @POST("app/leave/saveleave") Observable saveLeave(@Body RequestBody leaveBody, @Header("token") String token); @@ -496,7 +536,9 @@ public interface LocationApiService { */ @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @GET("app/leave/listpageleaveofmine") - Observable getLeaveListByMine(@Query("rows") String rows, @Query("page") String page, @Header("token") String token); + Observable getLeaveListByMine(@Query("rows") String rows, + @Query("page") String page, + @Header("token") String token); /** * 获取我的请假列表 @@ -508,11 +550,13 @@ public interface LocationApiService { */ @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @GET("app/leave/listpageleaveofapproval") - Observable getLeaveListByMineApproval(@Query("rows") String rows, @Query("page") String page, @Header("token") String token); + Observable getLeaveListByMineApproval(@Query("rows") String rows, @Query("page" + ) String page, @Header("token") String token); @Headers({"base_url_name:dict"}) @GET("app/leave/getleave/{leaveId}") - Observable getLeaveDetail(@Path("leaveId") String leaveId, @Header("token") String token); + Observable getLeaveDetail(@Path("leaveId") String leaveId, + @Header("token") String token); /** @@ -523,11 +567,15 @@ public interface LocationApiService { */ @Headers({"base_url_name:dict", "Content-Type:application/json", "Accept:application/json"}) @PUT("app/leave/updateleaveofapproval/{leaveId}") - Observable doCheckLeave(@Path("leaveId") String leaveid, @Body RequestBody checkBean, @Header("token") String token); + Observable doCheckLeave(@Path("leaveId") String leaveid, + @Body RequestBody checkBean, + @Header("token") String token); // PUT /api/leave/updateleaveofapproval/{leaveId} // GET /app/leave/listpageleaveofapproval - //==================================================请假接口====================End=================================================== - //==================================================定位相关接口====================Start=================================================== + //==================================================请假接口====================End + // =================================================== + //==================================================定位相关接口====================Start + // =================================================== /** * 上传定位坐标信息 @@ -538,7 +586,8 @@ public interface LocationApiService { */ @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @POST("app/userlocation/saveuserlocation") - Observable saveLocationData(@Body RequestBody locationPoint, @Header("token") String token); + Observable saveLocationData(@Body RequestBody locationPoint, + @Header("token") String token); /** * 获取下属定位数据 @@ -550,7 +599,9 @@ public interface LocationApiService { */ @Headers({"base_url_name:dict", "Content-Type:application/json", "Accept:application/json"}) @GET("app/userlocation/listuserlocationbyuserid/{userId}") - Observable> getUnderlingLocationList(@Path("userId") String userId, @Query("showTime") String showTime, @Header("token") String token); + Observable> getUnderlingLocationList(@Path("userId") String userId, + @Query("showTime") String showTime + , @Header("token") String token); /** * 获取人员列表 @@ -559,8 +610,10 @@ public interface LocationApiService { * @return */ @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) - @GET("app/userlocation/listuserlocationofmine") - Observable> getUserLocationList(@Query("date") String date, @Query("startTime") String startTime, @Query("endTime") String endTime, @Header("token") String token); + @GET("action/point/list") + Observable> getUserLocationList(@Query("startDate") String startTime, + @Query("endDate") String endTime, + @Header("token") String token); /** * 获取用户部门数据 @@ -602,9 +655,12 @@ public interface LocationApiService { */ @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @GET("app/userlocation/listuserlocationofmine/{leaderType}/{isOnline}") - Observable> getMineLeaderList(@Path("leaderType") String leaderType, @Header("token") String token, @Path("isOnline") boolean isOnline); + Observable> getMineLeaderList(@Path("leaderType") String leaderType, + @Header("token") String token, @Path( + "isOnline") boolean isOnline); - //==================================================定位相关接口====================End=================================================== + //==================================================定位相关接口====================End + // =================================================== //============================================企业隐患上报=========================================== @@ -614,78 +670,94 @@ public interface LocationApiService { // GET /app/datadictionary/listdictionarybyparentid/{dictionaryParentId} @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @GET("datadictionary/listdictionarybyparentid/{dictionaryParentId}") - Observable> getDicrList(@Path("dictionaryParentId") String pId, @Header("token") String token); + Observable> getDicrList(@Path("dictionaryParentId") String pId, @Header("token" + ) String token); //====================================================企业待认领========================================================== //获取待认领企业列表-全部 @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @GET("enterpriseofgridoperator/listpageunclaimedenterpriseofmine") - Observable getCompanyWaitList(@Query("page") String page, @Header("token") String token); + Observable getCompanyWaitList(@Query("page") String page, @Header("token" + ) String token); //获取待认领企业列表-关键字 @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @GET("enterpriseofgridoperator/listpageunclaimedenterpriseofmine") - Observable getCompanyWaitListByName(@Query("page") String page, @Query("keywords") String name, @Header("token") String token); + Observable getCompanyWaitListByName(@Query("page") String page, @Query( + "keywords") String name, @Header("token") String token); //获取待认领企业列表-类型 @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @GET("enterpriseofgridoperator/listpageunclaimedenterpriseofmine") - Observable getCompanyWaitListByType(@Query("page") String page, @Query("type") String type, @Header("token") String token); + Observable getCompanyWaitListByType(@Query("page") String page, @Query( + "type") String type, @Header("token") String token); //获取待认领企业列表-名称和类型 @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @GET("enterpriseofgridoperator/listpageunclaimedenterpriseofmine") - Observable getCompanyWaitListByAll(@Query("page") String page, @Query("keywords") String name, @Query("type") String type, @Header("token") String token); + Observable getCompanyWaitListByAll(@Query("page") String page, @Query( + "keywords") String name, @Query("type") String type, @Header("token") String token); //获取企业列表 全部 @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @GET("enterpriseofgridoperator/listpageenterpriseofgridoperatorbyuserid/{userId}") - Observable getCompanyList(@Path("userId") String userId, @Query("page") String page, @Header("token") String token); + Observable getCompanyList(@Path("userId") String userId, + @Query("page") String page, + @Header("token") String token); //获取企业列表 全部 @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @GET("enterpriseofgridoperator/listpageenterpriseofgridoperatorbyuserid/{userId}") - Observable getCompanyListByName(@Path("userId") String userId, @Query("page") String page, @Query("keywords") String name, @Header("token") String token); + Observable getCompanyListByName(@Path("userId") String userId, @Query( + "page") String page, @Query("keywords") String name, @Header("token") String token); //获取企业列表 全部 @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @GET("enterpriseofgridoperator/listpageenterpriseofgridoperatorbyuserid/{userId}") - Observable getCompanyListByType(@Path("userId") String userId, @Query("page") String page, @Query("type") String type, @Header("token") String token); + Observable getCompanyListByType(@Path("userId") String userId, @Query( + "page") String page, @Query("type") String type, @Header("token") String token); //获取企业列表 全部 @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @GET("enterpriseofgridoperator/listpageenterpriseofgridoperatorbyuserid/{userId}") - Observable getCompanyListByAll(@Path("userId") String userId, @Query("page") String page, @Query("keywords") String name, @Query("type") String type, @Header("token") String token); + Observable getCompanyListByAll(@Path("userId") String userId, @Query( + "page") String page, @Query("keywords") String name, @Query("type") String type, + @Header("token") String token); //获取企业列表 我的-搜索 全部条件 //GET /app/enterpriseofgridoperator/listpageenterpriseofgridoperatorofmine @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @GET("enterpriseofgridoperator/listpageenterpriseofgridoperatorofmine") - Observable getCompanyListMineByAll(@Query("page") String page, @Query("keywords") String name, @Query("type") String type, @Header("token") String token); + Observable getCompanyListMineByAll(@Query("page") String page, @Query( + "keywords") String name, @Query("type") String type, @Header("token") String token); //获取企业列表 我的-搜索 名称 //GET /app/enterpriseofgridoperator/listpageenterpriseofgridoperatorofmine @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @GET("enterpriseofgridoperator/listpageenterpriseofgridoperatorofmine") - Observable getCompanyListMineByName(@Query("page") String page, @Query("keywords") String name, @Header("token") String token); + Observable getCompanyListMineByName(@Query("page") String page, @Query( + "keywords") String name, @Header("token") String token); //获取企业列表 我的-搜索 类型 //GET /app/enterpriseofgridoperator/listpageenterpriseofgridoperatorofmine @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @GET("enterpriseofgridoperator/listpageenterpriseofgridoperatorofmine") - Observable getCompanyListMineByType(@Query("page") String page, @Query("type") String type, @Header("token") String token); + Observable getCompanyListMineByType(@Query("page") String page, @Query( + "type") String type, @Header("token") String token); //获取企业列表 我的 //GET /app/enterpriseofgridoperator/listpageenterpriseofgridoperatorofmine @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @GET("enterpriseofgridoperator/listpageenterpriseofgridoperatorofmine") - Observable getCompanyListMine(@Query("page") String page, @Header("token") String token); + Observable getCompanyListMine(@Query("page") String page, @Header("token" + ) String token); //获取企业详情 @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @GET("enterprise/getenterprisebyid/{enterpriseId}") - Observable getCompanyDetail(@Path("enterpriseId") String page, @Header("token") String token); + Observable getCompanyDetail(@Path("enterpriseId") String page, @Header( + "token") String token); //获取我的全部企业 //GET /app/enterprise/listenterpriseofmine @@ -696,19 +768,23 @@ public interface LocationApiService { //企业信息录入 @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @POST("enterprise/saveenterprise") - Observable doSaveCompanyInfo(@Body RequestBody leaveBody, @Header("token") String token); + Observable doSaveCompanyInfo(@Body RequestBody leaveBody, + @Header("token") String token); //企业信息修改 //PUT /app/enterprise/updateenterprise/{enterpriseId} @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @PUT("enterprise/updateenterprise/{enterpriseId}") - Observable doEditCompanyInfo(@Body RequestBody leaveBody, @Path("enterpriseId") String id, @Header("token") String token); + Observable doEditCompanyInfo(@Body RequestBody leaveBody, + @Path("enterpriseId") String id, + @Header("token") String token); //获取检查项 //TODO 现在用的 //industrycheckitem/listindustrycheckitem/{id} // @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) // @GET("industrycheckitem/listindustrycheckitem") -// Observable> getCheckOptionsList(@Query("classifyId") String nId, @Header("token") String token); +// Observable> getCheckOptionsList(@Query("classifyId") String nId, +// @Header("token") String token); // ///GET /app/industrycheckitem/list-of-mine @@ -720,18 +796,21 @@ public interface LocationApiService { //GET /app/checkitemoption/listcheckitemoption @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @GET("checkitemoption/listcheckitemoption") - Observable> getCheckItemOptionList(@Query("industryId") String id, @Header("token") String token); + Observable> getCheckItemOptionList(@Query("industryId") String id, + @Header("token") String token); //保存检查结果 @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @POST("check2/save") - Observable doSaveOptions(@Body RequestBody leaveBody, @Header("token") String token); + Observable doSaveOptions(@Body RequestBody leaveBody, + @Header("token") String token); //绑定企业 //enterpriseofgridoperator/saveenterpriseofgridoperator @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @POST("enterpriseofgridoperator/saveenterpriseofgridoperator") - Observable doBindCompany(@Body RequestBody leaveBody, @Header("token") String token); + Observable doBindCompany(@Body RequestBody leaveBody, + @Header("token") String token); //解除绑定企业 //DELETE /app/enterpriseofgridoperator/removeenterpriseofgridoperator/{ids} @@ -743,22 +822,28 @@ public interface LocationApiService { //复查列表 @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @GET("check2/listpage-recheck-of-mine") - Observable getCounterCheckList(@Query("page") String page, @Header("token") String token); + Observable getCounterCheckList(@Query("page") String page, @Header( + "token") String token); //复查列表-name @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @GET("check2/listpage-recheck-of-mine") - Observable getCounterCheckListByName(@Query("page") String page, @Query("keywords") String name, @Header("token") String token); + Observable getCounterCheckListByName(@Query("page") String page, + @Query("keywords") String name, + @Header("token") String token); //复查列表-type @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @GET("check2/listpage-recheck-of-mine") - Observable getCounterCheckListByType(@Query("page") String page, @Query("type") String type, @Header("token") String token); + Observable getCounterCheckListByType(@Query("page") String page, + @Query("type") String type, + @Header("token") String token); //复查列表-all @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @GET("check2/listpage-recheck-of-mine") - Observable getCounterCheckListByAll(@Query("page") String page, @Query("keywords") String name, @Query("type") String type, @Header("token") String token); + Observable getCounterCheckListByAll(@Query("page") String page, @Query( + "keywords") String name, @Query("type") String type, @Header("token") String token); //获取复查项列表 //GET /app/check/listcheckitemunpassbycheckid/{checkId} @@ -769,85 +854,108 @@ public interface LocationApiService { //保存复查结果 @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @POST("check2/save-re/{checkId}") - Observable doSaveCounterCheckOptions(@Body RequestBody leaveBody, @Path("checkId") String checkId, @Header("token") String token); + Observable doSaveCounterCheckOptions(@Body RequestBody leaveBody, @Path("checkId" + ) String checkId, @Header("token") String token); //我的历史任务列表 //check/listpagecheckofmine @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @GET("check2/listpage-check-of-mine") - Observable getMineCheckList(@Query("page") String page, @Header("token") String token); + Observable getMineCheckList(@Query("page") String page, + @Header("token") String token); //历史任务-name @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @GET("check2/listpage-check-of-mine") - Observable getMineCheckListByName(@Query("page") String page, @Query("keywords") String name, @Header("token") String token); + Observable getMineCheckListByName(@Query("page") String page, @Query( + "keywords") String name, @Header("token") String token); //历史任务-type @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @GET("check2/listpage-check-of-mine") - Observable getMineCheckListByType(@Query("page") String page, @Query("type") String type, @Header("token") String token); + Observable getMineCheckListByType(@Query("page") String page, @Query( + "type") String type, @Header("token") String token); //历史任务-all @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @GET("check2/listpage-check-of-mine") - Observable getMineCheckListByAll(@Query("page") String page, @Query("keywords") String name, @Query("type") String type, @Header("token") String token); + Observable getMineCheckListByAll(@Query("page") String page, @Query( + "keywords") String name, @Query("type") String type, @Header("token") String token); //我的历史任务列表 //check/listpagecheckofmine @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @GET("check2/listpage-check-of-mine") - Observable getMineCheckListByMouth(@Query("page") String page, @Query("checkMonth") String mouth, @Query("checkType") String cType, @Header("token") String token); + Observable getMineCheckListByMouth(@Query("page") String page, @Query( + "checkMonth") String mouth, @Query("checkType") String cType, + @Header("token") String token); //历史任务-name @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @GET("check2/listpage-check-of-mine") - Observable getMineCheckListByNameByMouth(@Query("page") String page, @Query("keywords") String name, @Query("checkMonth") String mouth, @Query("checkType") String cType, @Header("token") String token); + Observable getMineCheckListByNameByMouth(@Query("page") String page, + @Query("keywords") String name + , @Query("checkMonth") String mouth, @Query("checkType") String cType, @Header("token" + ) String token); //历史任务-type @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @GET("check2/listpage-check-of-mine") - Observable getMineCheckListByTypeByMouth(@Query("page") String page, @Query("type") String type, @Query("checkMonth") String mouth, @Query("checkType") String cType, @Header("token") String token); + Observable getMineCheckListByTypeByMouth(@Query("page") String page, + @Query("type") String type, + @Query("checkMonth") String mouth, @Query("checkType") String cType, @Header("token") String token); //历史任务-all @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @GET("check2/listpage-check-of-mine") - Observable getMineCheckListByAllByMouth(@Query("page") String page, @Query("keywords") String name, @Query("type") String type, @Query("checkMonth") String mouth, @Query("checkType") String cType, @Header("token") String token); + Observable getMineCheckListByAllByMouth(@Query("page") String page, + @Query("keywords") String name, + @Query("type") String type, + @Query("checkMonth") String mouth, @Query("checkType") String cType, @Header("token") String token); //历史任务详情 //check/getcheckbyid/{checkId} @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @GET("check2/listcheckitembycheckid/{checkId}") - Observable> getHistoryDetail(@Path("checkId") String checkId, @Header("token") String token); + Observable> getHistoryDetail(@Path("checkId") String checkId, + @Header("token") String token); //历史任务详情 --- 新接口 @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @GET("check2/get/{checkId}") - Observable getHistoryDetailById(@Path("checkId") String checkId, @Header("token") String token); + Observable getHistoryDetailById(@Path("checkId") String checkId, @Header( + "token") String token); //通知列表 @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @GET("articlecontent/listpagearticlecontent") - Observable getNoticeListById(@Query("articleCategoryId") String typeId, @Query("page") String page, @Header("token") String token); + Observable getNoticeListById(@Query("articleCategoryId") String typeId, @Query( + "page") String page, @Header("token") String token); //根据名称搜索通知 @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @GET("articlecontent/listpagearticlecontent") - Observable getNoticeListByKeyWords(@Query("articleCategoryId") String typeId, @Query("page") String page, @Query("keywords") String keyWords, @Header("token") String token); + Observable getNoticeListByKeyWords(@Query("articleCategoryId") String typeId, + @Query("page") String page, + @Query("keywords") String keyWords, @Header( + "token") String token); //通知详情 @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @GET("articlecontent/getarticlecontentbyid/{articleContentId}") - Observable getNoticeDetailById(@Path("articleContentId") String id, @Header("token") String token); + Observable getNoticeDetailById(@Path("articleContentId") String id, + @Header("token") String token); //获取通知公告数量 //getNumberByMine @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @GET("articlecontent/countarticlecount") - Observable getArticleCount(@Query("articleCategoryId") String id, @Header("token") String token); + Observable getArticleCount(@Query("articleCategoryId") String id, @Header( + "token") String token); //获取我的未认领企业数量 GET /app/enterpriseofgridoperator/countunclaimedenterpriseofmine @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @@ -880,24 +988,29 @@ public interface LocationApiService { //GET /app/taskcheck/listpagetaskcheckofmine @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @GET("taskcheck/listpagetaskcheckofmine") - Observable getCheckListOfMine(@Query("page") String page, @Header("token") String token); + Observable getCheckListOfMine(@Query("page") String page, @Header("token" + ) String token); //我的任务 //GET /app/taskcheck/listpagetaskcheckofmine @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @GET("taskcheck/listpagetaskcheckofmine") - Observable getCheckListOfMineByName(@Query("keywords") String keyWords, @Query("page") String page, @Header("token") String token); + Observable getCheckListOfMineByName(@Query("keywords") String keyWords, + @Query("page") String page, @Header( + "token") String token); //复查公共隐患 //PUT /app/publicareareport/updatepublicareareport/{publicAreaReportId} @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @PUT("publicareareport/updatepublicareareport/{publicAreaReportId}") - Observable doUpdatePublicTrouble(@Body RequestBody leaveBody, @Path("publicAreaReportId") String id, @Header("token") String token); + Observable doUpdatePublicTrouble(@Body RequestBody leaveBody, @Path( + "publicAreaReportId") String id, @Header("token") String token); //保存公共隐患 @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @POST("publicareareport/savepublicareareport") - Observable doSavePublicTrouble(@Body RequestBody leaveBody, @Header("token") String token); + Observable doSavePublicTrouble(@Body RequestBody leaveBody, + @Header("token") String token); //获取公共隐患详情 //GET /app/publicareareport/getpublicareareportbyid/{publicAreaReportId} @@ -917,21 +1030,25 @@ public interface LocationApiService { @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) // @GET("publicareareport/listpagepublicareareportofmine") @GET("publicareareport/listpagepublicareareportofmine") - Observable getPublicTroubleList(@Query("page") String page, @Header("token") String token); + Observable getPublicTroubleList(@Query("page") String page, @Header( + "token") String token); //获取公共隐患记录日志 //GET /app/publiclog/listpagepubliclog @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @GET("publiclog/listpubliclogbypublicareareportid/{publicAreaReportId}") - Observable> getPublicTroubleLogList(@Path("publicAreaReportId") String id, @Header("token") String token); + Observable> getPublicTroubleLogList(@Path("publicAreaReportId") String id + , @Header("token") String token); //获取公共隐患列表-名称搜索 //GET /app/publicareareport/listpagepublicareareportofmine @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @GET("publicareareport/listpagepublicareareportofmine") - Observable getPublicTroubleListByName(@Query("page") String page, @Query("keywords") String key, @Header("token") String token); + Observable getPublicTroubleListByName(@Query("page") String page, + @Query("keywords") String key, + @Header("token") String token); //保存计划 // POST /app/checkplan/savecheckplan @@ -954,12 +1071,16 @@ public interface LocationApiService { //保存NatureID @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @PUT("enterprise/updateenterprisenature/{enterpriseId}") - Observable doSaveNatureId(@Body RequestBody nature, @Path("enterpriseId") String companyId, @Header("token") String token); + Observable doSaveNatureId(@Body RequestBody nature, + @Path("enterpriseId") String companyId, @Header("token" + ) String token); //更新企业分类 @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @PUT("enterprise/updateenterpriseclassify/{enterpriseId}") - Observable doSaveClassifyId(@Body RequestBody body, @Path("enterpriseId") String companyId, @Header("token") String token); + Observable doSaveClassifyId(@Body RequestBody body, + @Path("enterpriseId") String companyId, @Header( + "token") String token); @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @GET("count/countcurrentmonthofmine") @@ -969,106 +1090,134 @@ public interface LocationApiService { //我的街道案件列表 @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @GET("check2/listpage-street-of-mine") - Observable getMineStreetCaseList(@Query("page") String page, @Header("token") String token); + Observable getMineStreetCaseList(@Query("page") String page, + @Header("token") String token); //我的旗县区案件列表 @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @GET("check2/listpage-district-of-mine") - Observable getMineDistrictCaseList(@Query("page") String page, @Header("token") String token); + Observable getMineDistrictCaseList(@Query("page") String page, + @Header("token") String token); //我的旗县区委办局案件列表 @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @GET("check2/listpage-district-department-of-mine") - Observable getMineDistrictDepartmentCaseList(@Query("page") String page, @Header("token") String token); + Observable getMineDistrictDepartmentCaseList(@Query("page") String page, + @Header("token") String token); //我的市案件列表 @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @GET("check2/listpage-city-of-mine") - Observable getMineCityCaseList(@Query("page") String page, @Header("token") String token); + Observable getMineCityCaseList(@Query("page") String page, + @Header("token") String token); /*历史列表*/ //我的案件历史列表 @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @GET("check2/listpage-history-of-mine") - Observable getMineHistoryStreetCaseList(@Query("page") String page, @Header("token") String token); + Observable getMineHistoryStreetCaseList(@Query("page") String page, @Header( + "token") String token); //我的旗县区历史列表 @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @GET("check2/listpage-district-of-mine") - Observable getMineHistoryDistrictCaseList(@Query("page") String page, @Header("token") String token); + Observable getMineHistoryDistrictCaseList(@Query("page") String page, @Header( + "token") String token); //我的旗县区委办局历史列表 @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @GET("check2/listpage-district-department-of-mine") - Observable getMineHistoryDistrictDepartmentCaseList(@Query("page") String page, @Header("token") String token); + Observable getMineHistoryDistrictDepartmentCaseList(@Query("page") String page, + @Header("token") String token); //我的市历史列表 @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @GET("check2/listpage-city-of-mine") - Observable getMineHistoryCityCaseList(@Query("page") String page, @Header("token") String token); + Observable getMineHistoryCityCaseList(@Query("page") String page, @Header( + "token") String token); //获取案件详情 @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @GET("check2/get/{checkId}") - Observable getMineCaseDetailById(@Path("checkId") String id, @Header("token") String token); + Observable getMineCaseDetailById(@Path("checkId") String id, + @Header("token") String token); //街道案件完成 @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @PUT("check2/update-street-complete/{checkId}") - Observable doCompleteCaseStreet(@Body RequestBody body, @Path("checkId") String checkId, @Header("token") String token); + Observable doCompleteCaseStreet(@Body RequestBody body, + @Path("checkId") String checkId, + @Header("token") String token); //街道案件上级处理 @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @PUT("check2/update-street-to-leader/{checkId}") - Observable doSuperiorCaseStreet(@Body RequestBody body, @Path("checkId") String checkId, @Header("token") String token); + Observable doSuperiorCaseStreet(@Body RequestBody body, + @Path("checkId") String checkId, + @Header("token") String token); //旗县区案件回退 @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @PUT("check2/update-district-back/{checkId}") - Observable doDistrictCaseBack(@Body RequestBody body, @Path("checkId") String checkId, @Header("token") String token); + Observable doDistrictCaseBack(@Body RequestBody body, + @Path("checkId") String checkId, + @Header("token") String token); //旗县区案件完成 @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @PUT("check2/update-district-complete/{checkId}") - Observable doDistrictCaseComplete(@Body RequestBody body, @Path("checkId") String checkId, @Header("token") String token); + Observable doDistrictCaseComplete(@Body RequestBody body, + @Path("checkId") String checkId, @Header( + "token") String token); //旗县区案件上报领导 @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @PUT("check2/update-district-to-leader/{checkId}") - Observable doDistrictCaseToLeader(@Body RequestBody body, @Path("checkId") String checkId, @Header("token") String token); + Observable doDistrictCaseToLeader(@Body RequestBody body, + @Path("checkId") String checkId, @Header( + "token") String token); //旗县区委办局案件回退 @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @PUT("check2/update-district-department-back/{checkId}") - Observable doDistrictDepartmentCaseBack(@Body RequestBody body, @Path("checkId") String checkId, @Header("token") String token); + Observable doDistrictDepartmentCaseBack(@Body RequestBody body, + @Path("checkId") String checkId, + @Header("token") String token); //旗县区委办局案件完成 @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @PUT("check2/update-district-department-complete/{checkId}") - Observable doDistrictDepartmentCaseComplete(@Body RequestBody body, @Path("checkId") String checkId, @Header("token") String token); + Observable doDistrictDepartmentCaseComplete(@Body RequestBody body, @Path( + "checkId") String checkId, @Header("token") String token); //旗县区委办局案件回退 @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @PUT("check2/update-city-back/{checkId}") - Observable doCityCaseBack(@Body RequestBody body, @Path("checkId") String checkId, @Header("token") String token); + Observable doCityCaseBack(@Body RequestBody body, + @Path("checkId") String checkId, + @Header("token") String token); //旗县区委办局案件完成 @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @PUT("check2/update-city-complete/{checkId}") - Observable doCityCaseComplete(@Body RequestBody body, @Path("checkId") String checkId, @Header("token") String token); + Observable doCityCaseComplete(@Body RequestBody body, + @Path("checkId") String checkId, + @Header("token") String token); //获取旗县区领导名单 @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @GET("gridpersonnel/list") - Observable> getDistrictPersonList(@Query("personType") String type, @Header("token") String token); + Observable> getDistrictPersonList(@Query("personType") String type, + @Header("token") String token); //案件日志 @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @GET("check2/list-check-log/{checkId}") - Observable> getCaseLogList(@Path("checkId") String checkId, @Header("token") String token); + Observable> getCaseLogList(@Path("checkId") String checkId, + @Header("token") String token); /*============================随机任务==========================*/ /** @@ -1076,14 +1225,17 @@ public interface LocationApiService { */ @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @GET("taskcheck/v1/listpagetaskcheckofmine") - Observable getMineMission(@Query("isCompleted") String isCompleted, @Query("page") String page, @Header("token") String token); + Observable getMineMission(@Query("isCompleted") String isCompleted, + @Query("page") String page, + @Header("token") String token); /** * 新任务企业列表 */ @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @GET("taskcheck/v1/listpagetaskenterpriseofmine/{taskId}") - Observable getMissionEnterpriseList(@Path("taskId") String taskId, @Query("isCompleted") String isCompleted, @Query("page") String page, @Header("token") String token); + Observable getMissionEnterpriseList(@Path("taskId") String taskId, + @Query("isCompleted") String isCompleted, @Query("page") String page, @Header("token") String token); /** * 获取检查项 @@ -1105,7 +1257,8 @@ public interface LocationApiService { */ @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @GET("taskcheck/v1/listtaskcheckreport/{checkItemListType}/{taskEnterpriseId}") - Observable> getCheckEnterpriseHistoryDetail(@Path("checkItemListType") String checkItemListType, @Path("taskEnterpriseId") String taskEnterpriseId, @Header("token") String token); + Observable> getCheckEnterpriseHistoryDetail(@Path( + "checkItemListType") String checkItemListType, @Path("taskEnterpriseId") String taskEnterpriseId, @Header("token") String token); } diff --git a/app/src/main/res/drawable-xhdpi/ic_msg_list.png b/app/src/main/res/drawable-xhdpi/ic_msg_list.png new file mode 100644 index 0000000..cc68e57 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_msg_list.png differ diff --git a/app/src/main/res/layout/activity_locus_map.xml b/app/src/main/res/layout/activity_locus_map.xml index f5e76e1..1c3789a 100755 --- a/app/src/main/res/layout/activity_locus_map.xml +++ b/app/src/main/res/layout/activity_locus_map.xml @@ -33,7 +33,8 @@ android:layout_height="wrap_content" android:background="@drawable/bm_btn_background" android:minWidth="0dp" - android:minHeight="0dp" /> + android:minHeight="0dp" + tools:ignore="SpeakableTextPresentCheck,TouchTargetSizeCheck" /> + android:textColor="@drawable/sel_btn_text_white_black" + tools:ignore="TouchTargetSizeCheck,TextContrastCheck" /> + android:textColor="@drawable/sel_btn_text_white_black" + tools:ignore="TouchTargetSizeCheck" /> @@ -122,7 +125,8 @@ android:paddingRight="40dp" android:paddingBottom="8dp" android:text="地图" - android:textColor="@drawable/sel_btn_text_white_black" /> + android:textColor="@drawable/sel_btn_text_white_black" + tools:ignore="TouchTargetSizeCheck" /> + android:textColor="@drawable/sel_btn_text_white_black" + tools:ignore="TouchTargetSizeCheck" /> + android:src="@drawable/ic_user_default" + tools:ignore="ImageContrastCheck" /> + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_msg_list.xml b/app/src/main/res/layout/activity_msg_list.xml new file mode 100644 index 0000000..c489c6a --- /dev/null +++ b/app/src/main/res/layout/activity_msg_list.xml @@ -0,0 +1,14 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_user.xml b/app/src/main/res/layout/activity_user.xml index cb7a382..050a44b 100755 --- a/app/src/main/res/layout/activity_user.xml +++ b/app/src/main/res/layout/activity_user.xml @@ -1,6 +1,5 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/sucstepsoft/txrealtimelocation/services/GlobalProvider.java b/cm_utils/src/main/java/com/sucstepsoft/cm_utils/core/GlobalProvider.java similarity index 99% rename from app/src/main/java/com/sucstepsoft/txrealtimelocation/services/GlobalProvider.java rename to cm_utils/src/main/java/com/sucstepsoft/cm_utils/core/GlobalProvider.java index 35d6181..d9ad5e3 100755 --- a/app/src/main/java/com/sucstepsoft/txrealtimelocation/services/GlobalProvider.java +++ b/cm_utils/src/main/java/com/sucstepsoft/cm_utils/core/GlobalProvider.java @@ -1,4 +1,4 @@ -package com.sucstepsoft.txrealtimelocation.services; +package com.sucstepsoft.cm_utils.core; import android.content.ContentProvider; import android.content.ContentValues; diff --git a/cm_utils/src/main/java/com/sucstepsoft/cm_utils/core/retrofit_net/BaseUrlApi.java b/cm_utils/src/main/java/com/sucstepsoft/cm_utils/core/retrofit_net/BaseUrlApi.java index b59181b..b850ac0 100755 --- a/cm_utils/src/main/java/com/sucstepsoft/cm_utils/core/retrofit_net/BaseUrlApi.java +++ b/cm_utils/src/main/java/com/sucstepsoft/cm_utils/core/retrofit_net/BaseUrlApi.java @@ -10,8 +10,9 @@ import com.sucstepsoft.cm_utils.constant.PathConfig; public class BaseUrlApi { // public static final String IP = "http://1.180.60.42:8083/usercenter/";/* 正式IP */ - public static final String IP = "http://1.180.60.42:8084/usercenter/";/* 试用IP */ +// public static final String IP = "http://1.180.60.42:8084/usercenter/";/* 试用IP */ // public static final String IP = "http://192.168.0.103:7001/usercenter/";/* 测试IP */ + public static final String IP = "http://49.233.36.36:58091/usercenter/";/* 测试IP */ public static final String PROJECT_NAME = "app/"; public static final String BASE_URL = IP + PROJECT_NAME; public static final String APP_VERSION = BASE_URL + "appCmVersionManagement/getAppVersion"; @@ -20,7 +21,8 @@ public class BaseUrlApi { public static final int PHOTO_REQUEST = 233; public static final int CAMERA_REQUEST = 123; // public static final String BASE_IP = "http://1.180.60.42:8083/inspection/";/* 正式IP */ - public static final String BASE_IP = "http://1.180.60.42:8084/inspection/";/* 试用IP */ +// public static final String BASE_IP = "http://1.180.60.42:8084/inspection/";/* 试用IP */ + public static final String BASE_IP = "http://49.233.36.36:58092/inspection/";/* 试用IP */ // public static final String BASE_IP = "http://192.168.0.103:7012/inspection/";/* 测试IP */ public static final String BASE_IMG_URL = BASE_IP + "route/file/downloadfile/true/"; // public static final String SOCKET_IP = "http://192.168.0.103:7001/usercenter/ws";/*SocketIP测试*/ diff --git a/cm_utils/src/main/java/com/sucstepsoft/cm_utils/core/retrofit_net/api/BaseApiService.java b/cm_utils/src/main/java/com/sucstepsoft/cm_utils/core/retrofit_net/api/BaseApiService.java index 48391e0..109418f 100755 --- a/cm_utils/src/main/java/com/sucstepsoft/cm_utils/core/retrofit_net/api/BaseApiService.java +++ b/cm_utils/src/main/java/com/sucstepsoft/cm_utils/core/retrofit_net/api/BaseApiService.java @@ -5,12 +5,15 @@ import com.sucstepsoft.cm_utils.core.beans.DictionaryBean; import com.sucstepsoft.cm_utils.core.beans.DistrictPersonBean; import com.sucstepsoft.cm_utils.core.beans.UploadBean; import com.sucstepsoft.cm_utils.core.retrofit_net.bean.BaseResponseBean; +import com.sucstepsoft.cm_utils.core.retrofit_net.bean.BaseSuccessBean; import com.sucstepsoft.cm_utils.core.retrofit_net.bean.VersionBean; import java.util.List; import io.reactivex.Observable; import okhttp3.MultipartBody; +import okhttp3.RequestBody; +import retrofit2.http.Body; import retrofit2.http.Field; import retrofit2.http.FormUrlEncoded; import retrofit2.http.GET; @@ -46,5 +49,15 @@ public interface BaseApiService { //获取旗县区领导名单 @Headers({"base_url_name:dict", "Content-Type: application/json", "Accept: application/json"}) @GET("gridpersonnel/list") - Observable> getDistrictPersonList(@Query("personType") String type, @Header("token") String token); + Observable> getDistrictPersonList(@Query("personType") String type, + @Header("token") String token); + + /** + * 上传定位点 + */ + @Headers({"base_url_name:dict", "Content-Type:application/json", "Accept:application/json"}) + @POST("action/point/save") + Observable doSaveLocation(@Body RequestBody location, + @Header("token") String token); + } diff --git a/cm_utils/src/main/java/com/sucstepsoft/cm_utils/core/retrofit_net/bean/BaseSuccessBean.java b/cm_utils/src/main/java/com/sucstepsoft/cm_utils/core/retrofit_net/bean/BaseSuccessBean.java new file mode 100755 index 0000000..f1f2b2d --- /dev/null +++ b/cm_utils/src/main/java/com/sucstepsoft/cm_utils/core/retrofit_net/bean/BaseSuccessBean.java @@ -0,0 +1,11 @@ +package com.sucstepsoft.cm_utils.core.retrofit_net.bean; + +/** + * 作者: Adam + * 日期: 2019/8/5 - 14:35 + * 邮箱: itgaojian@163.com + * 描述: + */ +public class BaseSuccessBean { + +} diff --git a/cm_utils/src/main/java/com/sucstepsoft/cm_utils/core/retrofit_net/bean/SaveLocationBean.java b/cm_utils/src/main/java/com/sucstepsoft/cm_utils/core/retrofit_net/bean/SaveLocationBean.java new file mode 100644 index 0000000..dd3d586 --- /dev/null +++ b/cm_utils/src/main/java/com/sucstepsoft/cm_utils/core/retrofit_net/bean/SaveLocationBean.java @@ -0,0 +1,23 @@ +package com.sucstepsoft.cm_utils.core.retrofit_net.bean; + +public class SaveLocationBean { + + private String lat; + private String lng; + + public String getLat() { + return lat; + } + + public void setLat(String lat) { + this.lat = lat; + } + + public String getLng() { + return lng; + } + + public void setLng(String lng) { + this.lng = lng; + } +} diff --git a/cm_utils/src/main/java/com/sucstepsoft/cm_utils/keeplive/services/BusinessService.java b/cm_utils/src/main/java/com/sucstepsoft/cm_utils/keeplive/services/BusinessService.java index 83ca3c0..88ab5bd 100644 --- a/cm_utils/src/main/java/com/sucstepsoft/cm_utils/keeplive/services/BusinessService.java +++ b/cm_utils/src/main/java/com/sucstepsoft/cm_utils/keeplive/services/BusinessService.java @@ -21,11 +21,17 @@ import com.baidu.location.BDLocation; import com.baidu.location.LocationClient; import com.baidu.location.LocationClientOption; import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; import com.sucstepsoft.cm_utils.KeepLiveAidl; import com.sucstepsoft.cm_utils.R; import com.sucstepsoft.cm_utils.constant.PathConfig; +import com.sucstepsoft.cm_utils.core.GlobalProvider; import com.sucstepsoft.cm_utils.core.beans.MessageBean; import com.sucstepsoft.cm_utils.core.retrofit_net.BaseUrlApi; +import com.sucstepsoft.cm_utils.core.retrofit_net.RetrofitManager; +import com.sucstepsoft.cm_utils.core.retrofit_net.api.BaseApiService; +import com.sucstepsoft.cm_utils.core.retrofit_net.bean.BaseSuccessBean; +import com.sucstepsoft.cm_utils.core.retrofit_net.bean.SaveLocationBean; import com.sucstepsoft.cm_utils.core.sockets.AppSocketMessage; import com.sucstepsoft.cm_utils.core.sockets.BaseSocketBodyBean; import com.sucstepsoft.cm_utils.core.sockets.SocketNoticeBean; @@ -52,6 +58,9 @@ import io.reactivex.Observable; 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.RequestBody; /** * 作者: adam @@ -346,10 +355,43 @@ public class BusinessService extends Service { * 构建定位上传参数 */ private void buildUploadPoint() { - LogUtils.e("定位点数====" + mTempList.size() + "==="); if (mTempList.size() > 0) { BDLocation bdLocation = mTempList.get(0); - LogUtils.e(bdLocation.getCityCode() + "===" + bdLocation.getLatitude() + "==" + bdLocation.getLongitude()); + SaveLocationBean bean = new SaveLocationBean(); + bean.setLat(bdLocation.getLatitude() + ""); + bean.setLng(bdLocation.getLongitude() + ""); + Gson gson = new Gson(); + String obj = gson.toJson(bean); + RequestBody body = + RequestBody.create(MediaType.parse("application/json;charset" + "=utf-8"), obj); + RetrofitManager.getInstance() + .create(BaseApiService.class).doSaveLocation(body, + UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { + + } + + @Override + public void onNext(BaseSuccessBean baseSuccessBean) { + LogUtils.e("上传成功"); + mTempList.clear(); + } + + @Override + public void onError(Throwable e) { + e.printStackTrace(); + LogUtils.e("上传失败"); + } + + @Override + public void onComplete() { + + } + }); } } @@ -458,7 +500,7 @@ public class BusinessService extends Service { LogUtils.e(data); JSONObject jsonObject = new JSONObject(data); String from = jsonObject.getString("from"); - + saveLocalDatabase(data); int type = jsonObject.getInt("type"); //系统消息 switch (type) { @@ -479,7 +521,7 @@ public class BusinessService extends Service { msgIntent.setAction(PathConfig.ACTION_MSG_CHAT); msgIntent.putExtra(PathConfig.KEY_MSG_FROM, data); sendBroadcast(msgIntent); - saveLocalDatabase(data); +// saveLocalDatabase(data); break; case PathConfig.MSG_UPCOMING: //待办通知 @@ -526,7 +568,8 @@ public class BusinessService extends Service { */ private String buildSocketMsg(int type, String system, String serviceId) { String filePath = - getApplicationContext().getExternalFilesDir("Cache").getAbsolutePath() + File.separator + "identity.txt"; + getApplicationContext().getExternalFilesDir("Cache").getAbsolutePath() + File.separator + "identity" + + ".txt"; File file = new File(filePath); AppSocketMessage message = new AppSocketMessage(); message.setType(type); @@ -559,7 +602,19 @@ public class BusinessService extends Service { * 聊天信息保存到本地数据库 */ private void saveLocalDatabase(String data) { - + String socketMsg = GlobalProvider.getString(this, "socketMsg"); + if (TextUtils.isEmpty(socketMsg)) { + GlobalProvider.save(this, "socketMsg", data); + } else { + Gson gson = new Gson(); + List beans = gson.fromJson(socketMsg, new TypeToken>() { + }.getType()); + MessageBean b = gson.fromJson(data, new TypeToken() { + }.getType()); + beans.add(b); + String s = gson.toJson(beans); + GlobalProvider.save(this, "socketMsg", s); + } } /** diff --git a/cm_utils/src/main/java/com/sucstepsoft/cm_utils/utils/TimeUtils.java b/cm_utils/src/main/java/com/sucstepsoft/cm_utils/utils/TimeUtils.java index 5d6d2a4..5180bb7 100755 --- a/cm_utils/src/main/java/com/sucstepsoft/cm_utils/utils/TimeUtils.java +++ b/cm_utils/src/main/java/com/sucstepsoft/cm_utils/utils/TimeUtils.java @@ -1,6 +1,5 @@ package com.sucstepsoft.cm_utils.utils; -import android.service.quicksettings.Tile; import android.support.annotation.NonNull; import com.sucstepsoft.cm_utils.constant.TimeConstants; @@ -145,17 +144,11 @@ public final class TimeUtils { return null; } -// public static String getHMStr(String orgTime) { -// Date date = null; -// try { -// date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(orgTime); -// String newString = new SimpleDateFormat("HH:mm").format(date); //09:00 -// return newString; -// } catch (ParseException e) { -// e.printStackTrace(); -// return "异常"; -// } -// } + public static String getNowStr() { + String date = null; + date = new SimpleDateFormat("yyyy-MM-dd").format(new Date()); + return date; + } /** * 秒转换小时-分-秒 @@ -276,8 +269,7 @@ public final class TimeUtils { * * @return the time span, in unit */ - public static long getTimeSpan(final String time1, - final String time2, + public static long getTimeSpan(final String time1, final String time2, @TimeConstants.Unit final int unit) { return getTimeSpan(time1, time2, getDefaultFormat(), unit); } @@ -383,8 +375,7 @@ public final class TimeUtils { * * @return the time span, in unit */ - public static long getTimeSpan(final String time1, - final String time2, + public static long getTimeSpan(final String time1, final String time2, @NonNull final DateFormat format, @TimeConstants.Unit final int unit) { return millis2TimeSpan(string2Millis(time1, format) - string2Millis(time2, format), unit); @@ -405,8 +396,7 @@ public final class TimeUtils { * * @return the time span, in unit */ - public static long getTimeSpan(final Date date1, - final Date date2, + public static long getTimeSpan(final Date date1, final Date date2, @TimeConstants.Unit final int unit) { return millis2TimeSpan(date2Millis(date1) - date2Millis(date2), unit); } @@ -426,8 +416,7 @@ public final class TimeUtils { * * @return the time span, in unit */ - public static long getTimeSpan(final long millis1, - final long millis2, + public static long getTimeSpan(final long millis1, final long millis2, @TimeConstants.Unit final int unit) { return millis2TimeSpan(millis1 - millis2, unit); } @@ -449,10 +438,10 @@ public final class TimeUtils { * * @return the fit time span */ - public static String getFitTimeSpan(final String time1, - final String time2, + public static String getFitTimeSpan(final String time1, final String time2, final int precision) { - long delta = string2Millis(time1, getDefaultFormat()) - string2Millis(time2, getDefaultFormat()); + long delta = string2Millis(time1, getDefaultFormat()) - string2Millis(time2, + getDefaultFormat()); return millis2FitTimeSpan(delta, precision); } @@ -473,10 +462,8 @@ public final class TimeUtils { * * @return the fit time span */ - public static String getFitTimeSpan(final String time1, - final String time2, - @NonNull final DateFormat format, - final int precision) { + public static String getFitTimeSpan(final String time1, final String time2, + @NonNull final DateFormat format, final int precision) { long delta = string2Millis(time1, format) - string2Millis(time2, format); return millis2FitTimeSpan(delta, precision); } @@ -497,8 +484,7 @@ public final class TimeUtils { * * @return the fit time span */ - public static String getFitTimeSpan(final Date date1, final Date date2, - final int precision) { + public static String getFitTimeSpan(final Date date1, final Date date2, final int precision) { return millis2FitTimeSpan(date2Millis(date1) - date2Millis(date2), precision); } @@ -518,8 +504,7 @@ public final class TimeUtils { * * @return the fit time span */ - public static String getFitTimeSpan(final long millis1, - final long millis2, + public static String getFitTimeSpan(final long millis1, final long millis2, final int precision) { return millis2FitTimeSpan(millis1 - millis2, precision); } @@ -601,8 +586,7 @@ public final class TimeUtils { // // } - public static boolean belongCalendar(Date nowTime, Date beginTime, - Date endTime) { + public static boolean belongCalendar(Date nowTime, Date beginTime, Date endTime) { Calendar date = Calendar.getInstance(); date.setTime(nowTime); Calendar begin = Calendar.getInstance(); @@ -724,8 +708,7 @@ public final class TimeUtils { * * @return the time span by now, in unit */ - public static long getTimeSpanByNow(final String time, - @NonNull final DateFormat format, + public static long getTimeSpanByNow(final String time, @NonNull final DateFormat format, @TimeConstants.Unit final int unit) { return getTimeSpan(time, getNowString(format), format, unit); } @@ -802,8 +785,7 @@ public final class TimeUtils { * * @return the fit time span by now */ - public static String getFitTimeSpanByNow(final String time, - @NonNull final DateFormat format, + public static String getFitTimeSpanByNow(final String time, @NonNull final DateFormat format, final int precision) { return getFitTimeSpan(time, getNowString(format), format, precision); } @@ -908,10 +890,8 @@ public final class TimeUtils { Date a = sdf.parse(time1); Date b = sdf.parse(time2); //Date类的一个方法,如果a早于b返回true,否则返回false - if (a.before(b)) - return true; - else - return false; + if (a.before(b)) return true; + else return false; } catch (Exception e) { LogUtils.e(e.getMessage()); e.printStackTrace(); @@ -1002,8 +982,7 @@ public final class TimeUtils { * * @return the milliseconds differ time span */ - public static long getMillis(final long millis, - final long timeSpan, + public static long getMillis(final long millis, final long timeSpan, @TimeConstants.Unit final int unit) { return millis + timeSpan2Millis(timeSpan, unit); } @@ -1024,8 +1003,7 @@ public final class TimeUtils { * * @return the milliseconds differ time span */ - public static long getMillis(final String time, - final long timeSpan, + public static long getMillis(final String time, final long timeSpan, @TimeConstants.Unit final int unit) { return getMillis(time, getDefaultFormat(), timeSpan, unit); } @@ -1046,10 +1024,8 @@ public final class TimeUtils { * * @return the milliseconds differ time span. */ - public static long getMillis(final String time, - @NonNull final DateFormat format, - final long timeSpan, - @TimeConstants.Unit final int unit) { + public static long getMillis(final String time, @NonNull final DateFormat format, + final long timeSpan, @TimeConstants.Unit final int unit) { return string2Millis(time, format) + timeSpan2Millis(timeSpan, unit); } @@ -1068,8 +1044,7 @@ public final class TimeUtils { * * @return the milliseconds differ time span. */ - public static long getMillis(final Date date, - final long timeSpan, + public static long getMillis(final Date date, final long timeSpan, @TimeConstants.Unit final int unit) { return date2Millis(date) + timeSpan2Millis(timeSpan, unit); } @@ -1090,8 +1065,7 @@ public final class TimeUtils { * * @return the formatted time string differ time span */ - public static String getString(final long millis, - final long timeSpan, + public static String getString(final long millis, final long timeSpan, @TimeConstants.Unit final int unit) { return getString(millis, getDefaultFormat(), timeSpan, unit); } @@ -1112,10 +1086,8 @@ public final class TimeUtils { * * @return the formatted time string differ time span */ - public static String getString(final long millis, - @NonNull final DateFormat format, - final long timeSpan, - @TimeConstants.Unit final int unit) { + public static String getString(final long millis, @NonNull final DateFormat format, + final long timeSpan, @TimeConstants.Unit final int unit) { return millis2String(millis + timeSpan2Millis(timeSpan, unit), format); } @@ -1135,8 +1107,7 @@ public final class TimeUtils { * * @return the formatted time string differ time span */ - public static String getString(final String time, - final long timeSpan, + public static String getString(final String time, final long timeSpan, @TimeConstants.Unit final int unit) { return getString(time, getDefaultFormat(), timeSpan, unit); } @@ -1157,10 +1128,8 @@ public final class TimeUtils { * * @return the formatted time string differ time span */ - public static String getString(final String time, - @NonNull final DateFormat format, - final long timeSpan, - @TimeConstants.Unit final int unit) { + public static String getString(final String time, @NonNull final DateFormat format, + final long timeSpan, @TimeConstants.Unit final int unit) { return millis2String(string2Millis(time, format) + timeSpan2Millis(timeSpan, unit), format); } @@ -1180,8 +1149,7 @@ public final class TimeUtils { * * @return the formatted time string differ time span */ - public static String getString(final Date date, - final long timeSpan, + public static String getString(final Date date, final long timeSpan, @TimeConstants.Unit final int unit) { return getString(date, getDefaultFormat(), timeSpan, unit); } @@ -1202,10 +1170,8 @@ public final class TimeUtils { * * @return the formatted time string differ time span */ - public static String getString(final Date date, - @NonNull final DateFormat format, - final long timeSpan, - @TimeConstants.Unit final int unit) { + public static String getString(final Date date, @NonNull final DateFormat format, + final long timeSpan, @TimeConstants.Unit final int unit) { return millis2String(date2Millis(date) + timeSpan2Millis(timeSpan, unit), format); } @@ -1224,8 +1190,7 @@ public final class TimeUtils { * * @return the date differ time span */ - public static Date getDate(final long millis, - final long timeSpan, + public static Date getDate(final long millis, final long timeSpan, @TimeConstants.Unit final int unit) { return millis2Date(millis + timeSpan2Millis(timeSpan, unit)); } @@ -1246,8 +1211,7 @@ public final class TimeUtils { * * @return the date differ time span */ - public static Date getDate(final String time, - final long timeSpan, + public static Date getDate(final String time, final long timeSpan, @TimeConstants.Unit final int unit) { return getDate(time, getDefaultFormat(), timeSpan, unit); } @@ -1268,10 +1232,8 @@ public final class TimeUtils { * * @return the date differ time span */ - public static Date getDate(final String time, - @NonNull final DateFormat format, - final long timeSpan, - @TimeConstants.Unit final int unit) { + public static Date getDate(final String time, @NonNull final DateFormat format, + final long timeSpan, @TimeConstants.Unit final int unit) { return millis2Date(string2Millis(time, format) + timeSpan2Millis(timeSpan, unit)); } @@ -1290,8 +1252,7 @@ public final class TimeUtils { * * @return the date differ time span */ - public static Date getDate(final Date date, - final long timeSpan, + public static Date getDate(final Date date, final long timeSpan, @TimeConstants.Unit final int unit) { return millis2Date(date2Millis(date) + timeSpan2Millis(timeSpan, unit)); } @@ -1329,8 +1290,7 @@ public final class TimeUtils { * * @return the formatted time string differ time span by now */ - public static String getStringByNow(final long timeSpan, - @TimeConstants.Unit final int unit) { + public static String getStringByNow(final long timeSpan, @TimeConstants.Unit final int unit) { return getStringByNow(timeSpan, getDefaultFormat(), unit); } @@ -1349,8 +1309,7 @@ public final class TimeUtils { * * @return the formatted time string differ time span by now */ - public static String getStringByNow(final long timeSpan, - @NonNull final DateFormat format, + public static String getStringByNow(final long timeSpan, @NonNull final DateFormat format, @TimeConstants.Unit final int unit) { return getString(getNowMills(), format, timeSpan, unit); } @@ -1509,8 +1468,7 @@ public final class TimeUtils { Calendar cal = Calendar.getInstance(); cal.setTime(date); int w = cal.get(Calendar.DAY_OF_WEEK) - 1; - if (w < 0) - w = 0; + if (w < 0) w = 0; return weekDays[w]; } @@ -1600,9 +1558,8 @@ public final class TimeUtils { * * @return the value of the given calendar field */ - public static int getValueByCalendarField(final String time, - @NonNull final DateFormat format, - final int field) { + public static int getValueByCalendarField(final String time, @NonNull final DateFormat format + , final int field) { return getValueByCalendarField(string2Date(time, format), field); } @@ -1646,8 +1603,8 @@ public final class TimeUtils { return cal.get(field); } - private static final String[] CHINESE_ZODIAC = - {"猴", "鸡", "狗", "猪", "鼠", "牛", "虎", "兔", "龙", "蛇", "马", "羊"}; + private static final String[] CHINESE_ZODIAC = {"猴", "鸡", "狗", "猪", "鼠", "牛", "虎", "兔", "龙", + "蛇", "马", "羊"}; /** * Return the Chinese zodiac. @@ -1704,10 +1661,8 @@ public final class TimeUtils { } private static final int[] ZODIAC_FLAGS = {20, 19, 21, 21, 21, 22, 23, 23, 23, 24, 23, 22}; - private static final String[] ZODIAC = { - "水瓶座", "双鱼座", "白羊座", "金牛座", "双子座", "巨蟹座", - "狮子座", "处女座", "天秤座", "天蝎座", "射手座", "魔羯座" - }; + private static final String[] ZODIAC = {"水瓶座", "双鱼座", "白羊座", "金牛座", "双子座", "巨蟹座", "狮子座", + "处女座", "天秤座", "天蝎座", "射手座", "魔羯座"}; /** * Return the zodiac. @@ -1763,13 +1718,10 @@ public final class TimeUtils { * @return the zodiac */ public static String getZodiac(final int month, final int day) { - return ZODIAC[day >= ZODIAC_FLAGS[month - 1] - ? month - 1 - : (month + 10) % 12]; + return ZODIAC[day >= ZODIAC_FLAGS[month - 1] ? month - 1 : (month + 10) % 12]; } - private static long timeSpan2Millis(final long timeSpan, - @TimeConstants.Unit final int unit) { + private static long timeSpan2Millis(final long timeSpan, @TimeConstants.Unit final int unit) { return timeSpan * unit; } diff --git a/modulemap/src/test/java/com/tengshisoft/modulemap/ExampleUnitTest.java b/modulemap/src/test/java/com/tengshisoft/modulemap/ExampleUnitTest.java index dd49b22..171bfb6 100644 --- a/modulemap/src/test/java/com/tengshisoft/modulemap/ExampleUnitTest.java +++ b/modulemap/src/test/java/com/tengshisoft/modulemap/ExampleUnitTest.java @@ -1,9 +1,12 @@ package com.tengshisoft.modulemap; -import org.junit.Test; + + import static org.junit.Assert.*; +import org.junit.Test; + /** * Example local unit test, which will execute on the development machine (host). *