diff --git a/app/src/main/java/com/casic/dcms/bean/ProjectConfigBean.java b/app/src/main/java/com/casic/dcms/bean/ProjectConfigBean.java new file mode 100644 index 0000000..86c6b13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/ProjectConfigBean.java @@ -0,0 +1,143 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class ProjectConfigBean { + + private String title; + private String baseUrl; + private String mainPage; + private boolean singleSys; + private String city; + private String mapUrl; + private String labelUrl; + private int zoom; + private List center; + private List bridges; + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getBaseUrl() { + return baseUrl; + } + + public void setBaseUrl(String baseUrl) { + this.baseUrl = baseUrl; + } + + public String getMainPage() { + return mainPage; + } + + public void setMainPage(String mainPage) { + this.mainPage = mainPage; + } + + public boolean isSingleSys() { + return singleSys; + } + + public void setSingleSys(boolean singleSys) { + this.singleSys = singleSys; + } + + public String getCity() { + return city; + } + + public void setCity(String city) { + this.city = city; + } + + public String getMapUrl() { + return mapUrl; + } + + public void setMapUrl(String mapUrl) { + this.mapUrl = mapUrl; + } + + public String getLabelUrl() { + return labelUrl; + } + + public void setLabelUrl(String labelUrl) { + this.labelUrl = labelUrl; + } + + public int getZoom() { + return zoom; + } + + public void setZoom(int zoom) { + this.zoom = zoom; + } + + public List getCenter() { + return center; + } + + public void setCenter(List center) { + this.center = center; + } + + public List getBridges() { + return bridges; + } + + public void setBridges(List bridges) { + this.bridges = bridges; + } + + public static class BridgesBean { + /** + * id : 1 + * name : 永胜桥 + * lat : 27.76277293762729 + * lng : 116.04329466819765 + */ + + private int id; + private String name; + private double lat; + private double lng; + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public double getLat() { + return lat; + } + + public void setLat(double lat) { + this.lat = lat; + } + + public double getLng() { + return lng; + } + + public void setLng(double lng) { + this.lng = lng; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/ProjectConfigBean.java b/app/src/main/java/com/casic/dcms/bean/ProjectConfigBean.java new file mode 100644 index 0000000..86c6b13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/ProjectConfigBean.java @@ -0,0 +1,143 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class ProjectConfigBean { + + private String title; + private String baseUrl; + private String mainPage; + private boolean singleSys; + private String city; + private String mapUrl; + private String labelUrl; + private int zoom; + private List center; + private List bridges; + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getBaseUrl() { + return baseUrl; + } + + public void setBaseUrl(String baseUrl) { + this.baseUrl = baseUrl; + } + + public String getMainPage() { + return mainPage; + } + + public void setMainPage(String mainPage) { + this.mainPage = mainPage; + } + + public boolean isSingleSys() { + return singleSys; + } + + public void setSingleSys(boolean singleSys) { + this.singleSys = singleSys; + } + + public String getCity() { + return city; + } + + public void setCity(String city) { + this.city = city; + } + + public String getMapUrl() { + return mapUrl; + } + + public void setMapUrl(String mapUrl) { + this.mapUrl = mapUrl; + } + + public String getLabelUrl() { + return labelUrl; + } + + public void setLabelUrl(String labelUrl) { + this.labelUrl = labelUrl; + } + + public int getZoom() { + return zoom; + } + + public void setZoom(int zoom) { + this.zoom = zoom; + } + + public List getCenter() { + return center; + } + + public void setCenter(List center) { + this.center = center; + } + + public List getBridges() { + return bridges; + } + + public void setBridges(List bridges) { + this.bridges = bridges; + } + + public static class BridgesBean { + /** + * id : 1 + * name : 永胜桥 + * lat : 27.76277293762729 + * lng : 116.04329466819765 + */ + + private int id; + private String name; + private double lat; + private double lng; + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public double getLat() { + return lat; + } + + public void setLat(double lat) { + this.lat = lat; + } + + public double getLng() { + return lng; + } + + public void setLng(double lng) { + this.lng = lng; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/ui/BridgeMaintainActivity.java index e596a36..8ee7e90 100644 --- a/app/src/main/java/com/casic/dcms/ui/BridgeMaintainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/BridgeMaintainActivity.java @@ -15,8 +15,10 @@ import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.ProjectConfigBean; import com.casic.dcms.mvp.presenter.SubmitMaintainPresenterImpl; import com.casic.dcms.mvp.view.IMaintainSubmitView; +import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.OtherUtils; import com.casic.dcms.utils.SaveKeyValues; @@ -26,10 +28,14 @@ import com.casic.dcms.utils.callback.IAddressListener; import com.casic.dcms.utils.callback.ILocationListener; import com.casic.dcms.widgets.SignInDialog; +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; import com.qmuiteam.qmui.widget.QMUITopBarLayout; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; +import java.lang.reflect.Type; +import java.util.List; import java.util.Timer; import java.util.TimerTask; @@ -114,22 +120,30 @@ public void onClick(View v) { switch (v.getId()) { case R.id.bridgeLayout: - new QMUIBottomSheet.BottomListSheetBuilder(this) - .setTitle("选择桥梁") - .addItem("永胜桥") - .addItem("黄洲桥") - .addItem("光明桥") - .setGravityCenter(true) - .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); + String bridgeJson = (String) SaveKeyValues.getValue(Constant.BRIDGES, ""); + if (bridgeJson.equals("")) { + ToastHelper.showToast("获取桥梁数据异常", ToastHelper.ERROR); + return; + } + Type type = new TypeToken>() { + }.getType(); + List bridges = new Gson().fromJson(bridgeJson, type); - bridgeId = String.valueOf((1 + position)); - bridgeNameView.setText(tag); - bridgeNameView.setTextColor(ContextCompat.getColor(context, R.color.textColor)); - } - }).build().show(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("选择桥梁"); + for (ProjectConfigBean.BridgesBean bean : bridges) { + sheetBuilder.addItem(bean.getName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + bridgeId = String.valueOf(bridges.get(position).getId()); + bridgeNameView.setText(tag); + bridgeNameView.setTextColor(ContextCompat.getColor(context, R.color.textColor)); + } + }).build().show(); break; case R.id.maintainContentLayout: new QMUIBottomSheet.BottomListSheetBuilder(this) diff --git a/app/src/main/java/com/casic/dcms/bean/ProjectConfigBean.java b/app/src/main/java/com/casic/dcms/bean/ProjectConfigBean.java new file mode 100644 index 0000000..86c6b13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/ProjectConfigBean.java @@ -0,0 +1,143 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class ProjectConfigBean { + + private String title; + private String baseUrl; + private String mainPage; + private boolean singleSys; + private String city; + private String mapUrl; + private String labelUrl; + private int zoom; + private List center; + private List bridges; + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getBaseUrl() { + return baseUrl; + } + + public void setBaseUrl(String baseUrl) { + this.baseUrl = baseUrl; + } + + public String getMainPage() { + return mainPage; + } + + public void setMainPage(String mainPage) { + this.mainPage = mainPage; + } + + public boolean isSingleSys() { + return singleSys; + } + + public void setSingleSys(boolean singleSys) { + this.singleSys = singleSys; + } + + public String getCity() { + return city; + } + + public void setCity(String city) { + this.city = city; + } + + public String getMapUrl() { + return mapUrl; + } + + public void setMapUrl(String mapUrl) { + this.mapUrl = mapUrl; + } + + public String getLabelUrl() { + return labelUrl; + } + + public void setLabelUrl(String labelUrl) { + this.labelUrl = labelUrl; + } + + public int getZoom() { + return zoom; + } + + public void setZoom(int zoom) { + this.zoom = zoom; + } + + public List getCenter() { + return center; + } + + public void setCenter(List center) { + this.center = center; + } + + public List getBridges() { + return bridges; + } + + public void setBridges(List bridges) { + this.bridges = bridges; + } + + public static class BridgesBean { + /** + * id : 1 + * name : 永胜桥 + * lat : 27.76277293762729 + * lng : 116.04329466819765 + */ + + private int id; + private String name; + private double lat; + private double lng; + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public double getLat() { + return lat; + } + + public void setLat(double lat) { + this.lat = lat; + } + + public double getLng() { + return lng; + } + + public void setLng(double lng) { + this.lng = lng; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/ui/BridgeMaintainActivity.java index e596a36..8ee7e90 100644 --- a/app/src/main/java/com/casic/dcms/ui/BridgeMaintainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/BridgeMaintainActivity.java @@ -15,8 +15,10 @@ import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.ProjectConfigBean; import com.casic.dcms.mvp.presenter.SubmitMaintainPresenterImpl; import com.casic.dcms.mvp.view.IMaintainSubmitView; +import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.OtherUtils; import com.casic.dcms.utils.SaveKeyValues; @@ -26,10 +28,14 @@ import com.casic.dcms.utils.callback.IAddressListener; import com.casic.dcms.utils.callback.ILocationListener; import com.casic.dcms.widgets.SignInDialog; +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; import com.qmuiteam.qmui.widget.QMUITopBarLayout; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; +import java.lang.reflect.Type; +import java.util.List; import java.util.Timer; import java.util.TimerTask; @@ -114,22 +120,30 @@ public void onClick(View v) { switch (v.getId()) { case R.id.bridgeLayout: - new QMUIBottomSheet.BottomListSheetBuilder(this) - .setTitle("选择桥梁") - .addItem("永胜桥") - .addItem("黄洲桥") - .addItem("光明桥") - .setGravityCenter(true) - .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); + String bridgeJson = (String) SaveKeyValues.getValue(Constant.BRIDGES, ""); + if (bridgeJson.equals("")) { + ToastHelper.showToast("获取桥梁数据异常", ToastHelper.ERROR); + return; + } + Type type = new TypeToken>() { + }.getType(); + List bridges = new Gson().fromJson(bridgeJson, type); - bridgeId = String.valueOf((1 + position)); - bridgeNameView.setText(tag); - bridgeNameView.setTextColor(ContextCompat.getColor(context, R.color.textColor)); - } - }).build().show(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("选择桥梁"); + for (ProjectConfigBean.BridgesBean bean : bridges) { + sheetBuilder.addItem(bean.getName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + bridgeId = String.valueOf(bridges.get(position).getId()); + bridgeNameView.setText(tag); + bridgeNameView.setTextColor(ContextCompat.getColor(context, R.color.textColor)); + } + }).build().show(); break; case R.id.maintainContentLayout: new QMUIBottomSheet.BottomListSheetBuilder(this) diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java index 37466d0..05b678b 100644 --- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java @@ -23,6 +23,7 @@ import com.casic.dcms.base.DoubleClickExitActivity; import com.casic.dcms.bean.ActionResultBean; import com.casic.dcms.bean.NoticeBean; +import com.casic.dcms.bean.ProjectConfigBean; import com.casic.dcms.greendao.NoticeBeanDao; import com.casic.dcms.mvp.presenter.PushRegisterPresenterImpl; import com.casic.dcms.mvp.presenter.UploadPositionPresenterImpl; @@ -34,21 +35,26 @@ import com.casic.dcms.ui.fragment.NoticePageFragment; import com.casic.dcms.ui.fragment.PhonePageFragment; import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.NotificationHelper; import com.casic.dcms.utils.OtherUtils; import com.casic.dcms.utils.SaveKeyValues; import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.callback.IHttpRequestListener; import com.casic.dcms.widgets.NoScrollViewPager; import com.google.android.material.bottomnavigation.BottomNavigationView; +import com.google.gson.Gson; import com.gyf.immersionbar.ImmersionBar; import com.igexin.sdk.message.GTTransmitMessage; +import java.io.IOException; import java.lang.ref.WeakReference; import java.util.ArrayList; import java.util.List; import butterknife.BindView; +import okhttp3.ResponseBody; public class MainActivity extends DoubleClickExitActivity implements IUploadPositionView, IPushRegisterView { @@ -96,6 +102,9 @@ pageList.add(new MinePageFragment()); imei = OtherUtils.obtainSimCardSerialNumber(this); + //获取桥梁配置项 + obtainProjectConfig(); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { startForegroundService(new Intent(this, UploadLocationService.class)); } else { @@ -104,6 +113,27 @@ updateMessageNumber(); } + private void obtainProjectConfig() { + HttpRequestHelper.doRequest(Constant.PROJECT_CONFIG, new IHttpRequestListener() { + @Override + public void onSuccess(ResponseBody resultBean) { + try { + Gson gson = new Gson(); + String resultStr = resultBean.string(); + List bridges = gson.fromJson(resultStr, ProjectConfigBean.class).getBridges(); + SaveKeyValues.putValue(Constant.BRIDGES, gson.toJson(bridges)); + } catch (IOException e) { + e.printStackTrace(); + } + } + + @Override + public void onFailure(Throwable throwable) { + + } + }); + } + @Override public void initEvent() { bottomNavigation.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() { diff --git a/app/src/main/java/com/casic/dcms/bean/ProjectConfigBean.java b/app/src/main/java/com/casic/dcms/bean/ProjectConfigBean.java new file mode 100644 index 0000000..86c6b13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/ProjectConfigBean.java @@ -0,0 +1,143 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class ProjectConfigBean { + + private String title; + private String baseUrl; + private String mainPage; + private boolean singleSys; + private String city; + private String mapUrl; + private String labelUrl; + private int zoom; + private List center; + private List bridges; + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getBaseUrl() { + return baseUrl; + } + + public void setBaseUrl(String baseUrl) { + this.baseUrl = baseUrl; + } + + public String getMainPage() { + return mainPage; + } + + public void setMainPage(String mainPage) { + this.mainPage = mainPage; + } + + public boolean isSingleSys() { + return singleSys; + } + + public void setSingleSys(boolean singleSys) { + this.singleSys = singleSys; + } + + public String getCity() { + return city; + } + + public void setCity(String city) { + this.city = city; + } + + public String getMapUrl() { + return mapUrl; + } + + public void setMapUrl(String mapUrl) { + this.mapUrl = mapUrl; + } + + public String getLabelUrl() { + return labelUrl; + } + + public void setLabelUrl(String labelUrl) { + this.labelUrl = labelUrl; + } + + public int getZoom() { + return zoom; + } + + public void setZoom(int zoom) { + this.zoom = zoom; + } + + public List getCenter() { + return center; + } + + public void setCenter(List center) { + this.center = center; + } + + public List getBridges() { + return bridges; + } + + public void setBridges(List bridges) { + this.bridges = bridges; + } + + public static class BridgesBean { + /** + * id : 1 + * name : 永胜桥 + * lat : 27.76277293762729 + * lng : 116.04329466819765 + */ + + private int id; + private String name; + private double lat; + private double lng; + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public double getLat() { + return lat; + } + + public void setLat(double lat) { + this.lat = lat; + } + + public double getLng() { + return lng; + } + + public void setLng(double lng) { + this.lng = lng; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/ui/BridgeMaintainActivity.java index e596a36..8ee7e90 100644 --- a/app/src/main/java/com/casic/dcms/ui/BridgeMaintainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/BridgeMaintainActivity.java @@ -15,8 +15,10 @@ import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.ProjectConfigBean; import com.casic.dcms.mvp.presenter.SubmitMaintainPresenterImpl; import com.casic.dcms.mvp.view.IMaintainSubmitView; +import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.OtherUtils; import com.casic.dcms.utils.SaveKeyValues; @@ -26,10 +28,14 @@ import com.casic.dcms.utils.callback.IAddressListener; import com.casic.dcms.utils.callback.ILocationListener; import com.casic.dcms.widgets.SignInDialog; +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; import com.qmuiteam.qmui.widget.QMUITopBarLayout; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; +import java.lang.reflect.Type; +import java.util.List; import java.util.Timer; import java.util.TimerTask; @@ -114,22 +120,30 @@ public void onClick(View v) { switch (v.getId()) { case R.id.bridgeLayout: - new QMUIBottomSheet.BottomListSheetBuilder(this) - .setTitle("选择桥梁") - .addItem("永胜桥") - .addItem("黄洲桥") - .addItem("光明桥") - .setGravityCenter(true) - .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); + String bridgeJson = (String) SaveKeyValues.getValue(Constant.BRIDGES, ""); + if (bridgeJson.equals("")) { + ToastHelper.showToast("获取桥梁数据异常", ToastHelper.ERROR); + return; + } + Type type = new TypeToken>() { + }.getType(); + List bridges = new Gson().fromJson(bridgeJson, type); - bridgeId = String.valueOf((1 + position)); - bridgeNameView.setText(tag); - bridgeNameView.setTextColor(ContextCompat.getColor(context, R.color.textColor)); - } - }).build().show(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("选择桥梁"); + for (ProjectConfigBean.BridgesBean bean : bridges) { + sheetBuilder.addItem(bean.getName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + bridgeId = String.valueOf(bridges.get(position).getId()); + bridgeNameView.setText(tag); + bridgeNameView.setTextColor(ContextCompat.getColor(context, R.color.textColor)); + } + }).build().show(); break; case R.id.maintainContentLayout: new QMUIBottomSheet.BottomListSheetBuilder(this) diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java index 37466d0..05b678b 100644 --- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java @@ -23,6 +23,7 @@ import com.casic.dcms.base.DoubleClickExitActivity; import com.casic.dcms.bean.ActionResultBean; import com.casic.dcms.bean.NoticeBean; +import com.casic.dcms.bean.ProjectConfigBean; import com.casic.dcms.greendao.NoticeBeanDao; import com.casic.dcms.mvp.presenter.PushRegisterPresenterImpl; import com.casic.dcms.mvp.presenter.UploadPositionPresenterImpl; @@ -34,21 +35,26 @@ import com.casic.dcms.ui.fragment.NoticePageFragment; import com.casic.dcms.ui.fragment.PhonePageFragment; import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.NotificationHelper; import com.casic.dcms.utils.OtherUtils; import com.casic.dcms.utils.SaveKeyValues; import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.callback.IHttpRequestListener; import com.casic.dcms.widgets.NoScrollViewPager; import com.google.android.material.bottomnavigation.BottomNavigationView; +import com.google.gson.Gson; import com.gyf.immersionbar.ImmersionBar; import com.igexin.sdk.message.GTTransmitMessage; +import java.io.IOException; import java.lang.ref.WeakReference; import java.util.ArrayList; import java.util.List; import butterknife.BindView; +import okhttp3.ResponseBody; public class MainActivity extends DoubleClickExitActivity implements IUploadPositionView, IPushRegisterView { @@ -96,6 +102,9 @@ pageList.add(new MinePageFragment()); imei = OtherUtils.obtainSimCardSerialNumber(this); + //获取桥梁配置项 + obtainProjectConfig(); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { startForegroundService(new Intent(this, UploadLocationService.class)); } else { @@ -104,6 +113,27 @@ updateMessageNumber(); } + private void obtainProjectConfig() { + HttpRequestHelper.doRequest(Constant.PROJECT_CONFIG, new IHttpRequestListener() { + @Override + public void onSuccess(ResponseBody resultBean) { + try { + Gson gson = new Gson(); + String resultStr = resultBean.string(); + List bridges = gson.fromJson(resultStr, ProjectConfigBean.class).getBridges(); + SaveKeyValues.putValue(Constant.BRIDGES, gson.toJson(bridges)); + } catch (IOException e) { + e.printStackTrace(); + } + } + + @Override + public void onFailure(Throwable throwable) { + + } + }); + } + @Override public void initEvent() { bottomNavigation.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() { diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java index 5096801..6922b43 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -36,7 +36,8 @@ Color.rgb(216, 248, 183), Color.rgb(129, 178, 20), Color.rgb(120, 104, 230)}; - public static final String IP_KEY = "BASE_IP"; + public static final String IP_KEY = "ip"; + public static final String BRIDGES = "projectBridges"; public static final long HALF_YEAR = 180 * 60 * 60 * 24 * 1000L; public static final long ONE_YEAR = 365 * 60 * 60 * 24 * 1000L; @@ -70,8 +71,8 @@ public static final int DEPT_DONE = 23; public static final int CANCEL_ALARM_DONE = 24; - public static final double DEFAULT_LNG = 116.06639658728571; - public static final double DEFAULT_LAT = 27.759547805536418; + public static final double DEFAULT_LNG = 116.05695247650146; + public static final double DEFAULT_LAT = 27.76725390642336; public static final double DELTA_LNG_10 = 0.00002536; // 10米范围经度值偏移量(大约) public static final double DELTA_LAT_10 = 0.00002256;// 10米范围纬度值偏移量(大约) public static final double DELTA_LNG_75 = 0.00075; @@ -84,15 +85,18 @@ public static final String SHOP_MERCHANT_ID = "/shop/merchant/getIdByCode?shopCode="; public static final String LIGHT_DETAIL = "/lightCr/overview/lampDetail?lampId="; + //配置项 + public static final String PROJECT_CONFIG = "http://223.82.47.232:11504/bridge/static/project.config.json"; + //生产环境 public static final String BASE_MAP_SERVICE_URL = "http://111.198.10.15:13002/arcgis/rest/services/crdt/MapServer";//崇仁城管地图底图 public static final String BASE_MAP_NO_SERVICE_URL = "http://111.198.10.15:13002/arcgis/rest/services/crdt_1/MapServer";//崇仁城管地图不带网格底图 - public static final String COMPONENT_SERVICE_URL = "http://111.198.10.15:13002/arcgis/rest/services/crbj/FeatureServer";//崇仁部件图层 - public static final String WELL_SERVICE_URL = "http://111.198.10.15:13002/arcgis/rest/services/fsw/MapServer";//崇仁窨井图层 + public static final String COMPONENT_SERVICE_URL = "http://111.198.10.15:13002/arcgis/rest/services/crbj/FeatureServer";//崇仁部件特征图层 + public static final String TOILET_SERVICE_URL = "http://111.198.10.15:13002/arcgis/rest/services/crbjfc/FeatureServer";//崇仁公厕特征图层 //正式环境 // public static final String BASE_MAP_SERVICE_URL = "http://223.82.47.232:11408/arcgis/rest/services/crdt/MapServer";//崇仁城管地图底图 // public static final String BASE_MAP_NO_SERVICE_URL = "http://223.82.47.232:11408/arcgis/rest/services/crdt_1/MapServer";//崇仁城管地图不带网格底图 // public static final String COMPONENT_SERVICE_URL = "http://223.82.47.232:11408/arcgis/rest/services/crbj/FeatureServer";//崇仁部件图层 -// public static final String WELL_SERVICE_URL = "http://111.198.10.15:13002/arcgis/rest/services/fsw/MapServer";//崇仁窨井图层 +// public static final String TOILET_SERVICE_URL = "http://223.82.47.232:11408/arcgis/rest/services/crbjfc/MapServer/34";//公厕图层 } diff --git a/app/src/main/java/com/casic/dcms/bean/ProjectConfigBean.java b/app/src/main/java/com/casic/dcms/bean/ProjectConfigBean.java new file mode 100644 index 0000000..86c6b13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/ProjectConfigBean.java @@ -0,0 +1,143 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class ProjectConfigBean { + + private String title; + private String baseUrl; + private String mainPage; + private boolean singleSys; + private String city; + private String mapUrl; + private String labelUrl; + private int zoom; + private List center; + private List bridges; + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getBaseUrl() { + return baseUrl; + } + + public void setBaseUrl(String baseUrl) { + this.baseUrl = baseUrl; + } + + public String getMainPage() { + return mainPage; + } + + public void setMainPage(String mainPage) { + this.mainPage = mainPage; + } + + public boolean isSingleSys() { + return singleSys; + } + + public void setSingleSys(boolean singleSys) { + this.singleSys = singleSys; + } + + public String getCity() { + return city; + } + + public void setCity(String city) { + this.city = city; + } + + public String getMapUrl() { + return mapUrl; + } + + public void setMapUrl(String mapUrl) { + this.mapUrl = mapUrl; + } + + public String getLabelUrl() { + return labelUrl; + } + + public void setLabelUrl(String labelUrl) { + this.labelUrl = labelUrl; + } + + public int getZoom() { + return zoom; + } + + public void setZoom(int zoom) { + this.zoom = zoom; + } + + public List getCenter() { + return center; + } + + public void setCenter(List center) { + this.center = center; + } + + public List getBridges() { + return bridges; + } + + public void setBridges(List bridges) { + this.bridges = bridges; + } + + public static class BridgesBean { + /** + * id : 1 + * name : 永胜桥 + * lat : 27.76277293762729 + * lng : 116.04329466819765 + */ + + private int id; + private String name; + private double lat; + private double lng; + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public double getLat() { + return lat; + } + + public void setLat(double lat) { + this.lat = lat; + } + + public double getLng() { + return lng; + } + + public void setLng(double lng) { + this.lng = lng; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/ui/BridgeMaintainActivity.java index e596a36..8ee7e90 100644 --- a/app/src/main/java/com/casic/dcms/ui/BridgeMaintainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/BridgeMaintainActivity.java @@ -15,8 +15,10 @@ import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.ProjectConfigBean; import com.casic.dcms.mvp.presenter.SubmitMaintainPresenterImpl; import com.casic.dcms.mvp.view.IMaintainSubmitView; +import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.OtherUtils; import com.casic.dcms.utils.SaveKeyValues; @@ -26,10 +28,14 @@ import com.casic.dcms.utils.callback.IAddressListener; import com.casic.dcms.utils.callback.ILocationListener; import com.casic.dcms.widgets.SignInDialog; +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; import com.qmuiteam.qmui.widget.QMUITopBarLayout; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; +import java.lang.reflect.Type; +import java.util.List; import java.util.Timer; import java.util.TimerTask; @@ -114,22 +120,30 @@ public void onClick(View v) { switch (v.getId()) { case R.id.bridgeLayout: - new QMUIBottomSheet.BottomListSheetBuilder(this) - .setTitle("选择桥梁") - .addItem("永胜桥") - .addItem("黄洲桥") - .addItem("光明桥") - .setGravityCenter(true) - .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); + String bridgeJson = (String) SaveKeyValues.getValue(Constant.BRIDGES, ""); + if (bridgeJson.equals("")) { + ToastHelper.showToast("获取桥梁数据异常", ToastHelper.ERROR); + return; + } + Type type = new TypeToken>() { + }.getType(); + List bridges = new Gson().fromJson(bridgeJson, type); - bridgeId = String.valueOf((1 + position)); - bridgeNameView.setText(tag); - bridgeNameView.setTextColor(ContextCompat.getColor(context, R.color.textColor)); - } - }).build().show(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("选择桥梁"); + for (ProjectConfigBean.BridgesBean bean : bridges) { + sheetBuilder.addItem(bean.getName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + bridgeId = String.valueOf(bridges.get(position).getId()); + bridgeNameView.setText(tag); + bridgeNameView.setTextColor(ContextCompat.getColor(context, R.color.textColor)); + } + }).build().show(); break; case R.id.maintainContentLayout: new QMUIBottomSheet.BottomListSheetBuilder(this) diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java index 37466d0..05b678b 100644 --- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java @@ -23,6 +23,7 @@ import com.casic.dcms.base.DoubleClickExitActivity; import com.casic.dcms.bean.ActionResultBean; import com.casic.dcms.bean.NoticeBean; +import com.casic.dcms.bean.ProjectConfigBean; import com.casic.dcms.greendao.NoticeBeanDao; import com.casic.dcms.mvp.presenter.PushRegisterPresenterImpl; import com.casic.dcms.mvp.presenter.UploadPositionPresenterImpl; @@ -34,21 +35,26 @@ import com.casic.dcms.ui.fragment.NoticePageFragment; import com.casic.dcms.ui.fragment.PhonePageFragment; import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.NotificationHelper; import com.casic.dcms.utils.OtherUtils; import com.casic.dcms.utils.SaveKeyValues; import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.callback.IHttpRequestListener; import com.casic.dcms.widgets.NoScrollViewPager; import com.google.android.material.bottomnavigation.BottomNavigationView; +import com.google.gson.Gson; import com.gyf.immersionbar.ImmersionBar; import com.igexin.sdk.message.GTTransmitMessage; +import java.io.IOException; import java.lang.ref.WeakReference; import java.util.ArrayList; import java.util.List; import butterknife.BindView; +import okhttp3.ResponseBody; public class MainActivity extends DoubleClickExitActivity implements IUploadPositionView, IPushRegisterView { @@ -96,6 +102,9 @@ pageList.add(new MinePageFragment()); imei = OtherUtils.obtainSimCardSerialNumber(this); + //获取桥梁配置项 + obtainProjectConfig(); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { startForegroundService(new Intent(this, UploadLocationService.class)); } else { @@ -104,6 +113,27 @@ updateMessageNumber(); } + private void obtainProjectConfig() { + HttpRequestHelper.doRequest(Constant.PROJECT_CONFIG, new IHttpRequestListener() { + @Override + public void onSuccess(ResponseBody resultBean) { + try { + Gson gson = new Gson(); + String resultStr = resultBean.string(); + List bridges = gson.fromJson(resultStr, ProjectConfigBean.class).getBridges(); + SaveKeyValues.putValue(Constant.BRIDGES, gson.toJson(bridges)); + } catch (IOException e) { + e.printStackTrace(); + } + } + + @Override + public void onFailure(Throwable throwable) { + + } + }); + } + @Override public void initEvent() { bottomNavigation.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() { diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java index 5096801..6922b43 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -36,7 +36,8 @@ Color.rgb(216, 248, 183), Color.rgb(129, 178, 20), Color.rgb(120, 104, 230)}; - public static final String IP_KEY = "BASE_IP"; + public static final String IP_KEY = "ip"; + public static final String BRIDGES = "projectBridges"; public static final long HALF_YEAR = 180 * 60 * 60 * 24 * 1000L; public static final long ONE_YEAR = 365 * 60 * 60 * 24 * 1000L; @@ -70,8 +71,8 @@ public static final int DEPT_DONE = 23; public static final int CANCEL_ALARM_DONE = 24; - public static final double DEFAULT_LNG = 116.06639658728571; - public static final double DEFAULT_LAT = 27.759547805536418; + public static final double DEFAULT_LNG = 116.05695247650146; + public static final double DEFAULT_LAT = 27.76725390642336; public static final double DELTA_LNG_10 = 0.00002536; // 10米范围经度值偏移量(大约) public static final double DELTA_LAT_10 = 0.00002256;// 10米范围纬度值偏移量(大约) public static final double DELTA_LNG_75 = 0.00075; @@ -84,15 +85,18 @@ public static final String SHOP_MERCHANT_ID = "/shop/merchant/getIdByCode?shopCode="; public static final String LIGHT_DETAIL = "/lightCr/overview/lampDetail?lampId="; + //配置项 + public static final String PROJECT_CONFIG = "http://223.82.47.232:11504/bridge/static/project.config.json"; + //生产环境 public static final String BASE_MAP_SERVICE_URL = "http://111.198.10.15:13002/arcgis/rest/services/crdt/MapServer";//崇仁城管地图底图 public static final String BASE_MAP_NO_SERVICE_URL = "http://111.198.10.15:13002/arcgis/rest/services/crdt_1/MapServer";//崇仁城管地图不带网格底图 - public static final String COMPONENT_SERVICE_URL = "http://111.198.10.15:13002/arcgis/rest/services/crbj/FeatureServer";//崇仁部件图层 - public static final String WELL_SERVICE_URL = "http://111.198.10.15:13002/arcgis/rest/services/fsw/MapServer";//崇仁窨井图层 + public static final String COMPONENT_SERVICE_URL = "http://111.198.10.15:13002/arcgis/rest/services/crbj/FeatureServer";//崇仁部件特征图层 + public static final String TOILET_SERVICE_URL = "http://111.198.10.15:13002/arcgis/rest/services/crbjfc/FeatureServer";//崇仁公厕特征图层 //正式环境 // public static final String BASE_MAP_SERVICE_URL = "http://223.82.47.232:11408/arcgis/rest/services/crdt/MapServer";//崇仁城管地图底图 // public static final String BASE_MAP_NO_SERVICE_URL = "http://223.82.47.232:11408/arcgis/rest/services/crdt_1/MapServer";//崇仁城管地图不带网格底图 // public static final String COMPONENT_SERVICE_URL = "http://223.82.47.232:11408/arcgis/rest/services/crbj/FeatureServer";//崇仁部件图层 -// public static final String WELL_SERVICE_URL = "http://111.198.10.15:13002/arcgis/rest/services/fsw/MapServer";//崇仁窨井图层 +// public static final String TOILET_SERVICE_URL = "http://223.82.47.232:11408/arcgis/rest/services/crbjfc/MapServer/34";//公厕图层 } diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java index 1194b81..24b3e3c 100644 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java @@ -73,4 +73,53 @@ } }); } + + public static void doRequest(String url, IHttpRequestListener listener) { + Observable.create(new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { + @Override + public void log(@NotNull String message) { + Log.d(TAG, "log: " + message); + } + }); + interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + + OkHttpClient client = new OkHttpClient.Builder() + .addInterceptor(interceptor) + .readTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .build(); + + Request request = new Request.Builder() + .addHeader("token", AuthenticationHelper.getToken()) + .url(url) + .get() + .build();//创建Request 对象 + try { + Response response = client.newCall(request).execute(); + subscriber.onNext(response.body()); + } catch (IOException e) { + subscriber.onError(e); + } + } + }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + listener.onFailure(e); + } + + @Override + public void onNext(ResponseBody responseBody) { + listener.onSuccess(responseBody); + } + }); + } } diff --git a/app/src/main/java/com/casic/dcms/bean/ProjectConfigBean.java b/app/src/main/java/com/casic/dcms/bean/ProjectConfigBean.java new file mode 100644 index 0000000..86c6b13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/ProjectConfigBean.java @@ -0,0 +1,143 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class ProjectConfigBean { + + private String title; + private String baseUrl; + private String mainPage; + private boolean singleSys; + private String city; + private String mapUrl; + private String labelUrl; + private int zoom; + private List center; + private List bridges; + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getBaseUrl() { + return baseUrl; + } + + public void setBaseUrl(String baseUrl) { + this.baseUrl = baseUrl; + } + + public String getMainPage() { + return mainPage; + } + + public void setMainPage(String mainPage) { + this.mainPage = mainPage; + } + + public boolean isSingleSys() { + return singleSys; + } + + public void setSingleSys(boolean singleSys) { + this.singleSys = singleSys; + } + + public String getCity() { + return city; + } + + public void setCity(String city) { + this.city = city; + } + + public String getMapUrl() { + return mapUrl; + } + + public void setMapUrl(String mapUrl) { + this.mapUrl = mapUrl; + } + + public String getLabelUrl() { + return labelUrl; + } + + public void setLabelUrl(String labelUrl) { + this.labelUrl = labelUrl; + } + + public int getZoom() { + return zoom; + } + + public void setZoom(int zoom) { + this.zoom = zoom; + } + + public List getCenter() { + return center; + } + + public void setCenter(List center) { + this.center = center; + } + + public List getBridges() { + return bridges; + } + + public void setBridges(List bridges) { + this.bridges = bridges; + } + + public static class BridgesBean { + /** + * id : 1 + * name : 永胜桥 + * lat : 27.76277293762729 + * lng : 116.04329466819765 + */ + + private int id; + private String name; + private double lat; + private double lng; + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public double getLat() { + return lat; + } + + public void setLat(double lat) { + this.lat = lat; + } + + public double getLng() { + return lng; + } + + public void setLng(double lng) { + this.lng = lng; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/ui/BridgeMaintainActivity.java index e596a36..8ee7e90 100644 --- a/app/src/main/java/com/casic/dcms/ui/BridgeMaintainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/BridgeMaintainActivity.java @@ -15,8 +15,10 @@ import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.ProjectConfigBean; import com.casic.dcms.mvp.presenter.SubmitMaintainPresenterImpl; import com.casic.dcms.mvp.view.IMaintainSubmitView; +import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.OtherUtils; import com.casic.dcms.utils.SaveKeyValues; @@ -26,10 +28,14 @@ import com.casic.dcms.utils.callback.IAddressListener; import com.casic.dcms.utils.callback.ILocationListener; import com.casic.dcms.widgets.SignInDialog; +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; import com.qmuiteam.qmui.widget.QMUITopBarLayout; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; +import java.lang.reflect.Type; +import java.util.List; import java.util.Timer; import java.util.TimerTask; @@ -114,22 +120,30 @@ public void onClick(View v) { switch (v.getId()) { case R.id.bridgeLayout: - new QMUIBottomSheet.BottomListSheetBuilder(this) - .setTitle("选择桥梁") - .addItem("永胜桥") - .addItem("黄洲桥") - .addItem("光明桥") - .setGravityCenter(true) - .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); + String bridgeJson = (String) SaveKeyValues.getValue(Constant.BRIDGES, ""); + if (bridgeJson.equals("")) { + ToastHelper.showToast("获取桥梁数据异常", ToastHelper.ERROR); + return; + } + Type type = new TypeToken>() { + }.getType(); + List bridges = new Gson().fromJson(bridgeJson, type); - bridgeId = String.valueOf((1 + position)); - bridgeNameView.setText(tag); - bridgeNameView.setTextColor(ContextCompat.getColor(context, R.color.textColor)); - } - }).build().show(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("选择桥梁"); + for (ProjectConfigBean.BridgesBean bean : bridges) { + sheetBuilder.addItem(bean.getName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + bridgeId = String.valueOf(bridges.get(position).getId()); + bridgeNameView.setText(tag); + bridgeNameView.setTextColor(ContextCompat.getColor(context, R.color.textColor)); + } + }).build().show(); break; case R.id.maintainContentLayout: new QMUIBottomSheet.BottomListSheetBuilder(this) diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java index 37466d0..05b678b 100644 --- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java @@ -23,6 +23,7 @@ import com.casic.dcms.base.DoubleClickExitActivity; import com.casic.dcms.bean.ActionResultBean; import com.casic.dcms.bean.NoticeBean; +import com.casic.dcms.bean.ProjectConfigBean; import com.casic.dcms.greendao.NoticeBeanDao; import com.casic.dcms.mvp.presenter.PushRegisterPresenterImpl; import com.casic.dcms.mvp.presenter.UploadPositionPresenterImpl; @@ -34,21 +35,26 @@ import com.casic.dcms.ui.fragment.NoticePageFragment; import com.casic.dcms.ui.fragment.PhonePageFragment; import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.NotificationHelper; import com.casic.dcms.utils.OtherUtils; import com.casic.dcms.utils.SaveKeyValues; import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.callback.IHttpRequestListener; import com.casic.dcms.widgets.NoScrollViewPager; import com.google.android.material.bottomnavigation.BottomNavigationView; +import com.google.gson.Gson; import com.gyf.immersionbar.ImmersionBar; import com.igexin.sdk.message.GTTransmitMessage; +import java.io.IOException; import java.lang.ref.WeakReference; import java.util.ArrayList; import java.util.List; import butterknife.BindView; +import okhttp3.ResponseBody; public class MainActivity extends DoubleClickExitActivity implements IUploadPositionView, IPushRegisterView { @@ -96,6 +102,9 @@ pageList.add(new MinePageFragment()); imei = OtherUtils.obtainSimCardSerialNumber(this); + //获取桥梁配置项 + obtainProjectConfig(); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { startForegroundService(new Intent(this, UploadLocationService.class)); } else { @@ -104,6 +113,27 @@ updateMessageNumber(); } + private void obtainProjectConfig() { + HttpRequestHelper.doRequest(Constant.PROJECT_CONFIG, new IHttpRequestListener() { + @Override + public void onSuccess(ResponseBody resultBean) { + try { + Gson gson = new Gson(); + String resultStr = resultBean.string(); + List bridges = gson.fromJson(resultStr, ProjectConfigBean.class).getBridges(); + SaveKeyValues.putValue(Constant.BRIDGES, gson.toJson(bridges)); + } catch (IOException e) { + e.printStackTrace(); + } + } + + @Override + public void onFailure(Throwable throwable) { + + } + }); + } + @Override public void initEvent() { bottomNavigation.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() { diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java index 5096801..6922b43 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -36,7 +36,8 @@ Color.rgb(216, 248, 183), Color.rgb(129, 178, 20), Color.rgb(120, 104, 230)}; - public static final String IP_KEY = "BASE_IP"; + public static final String IP_KEY = "ip"; + public static final String BRIDGES = "projectBridges"; public static final long HALF_YEAR = 180 * 60 * 60 * 24 * 1000L; public static final long ONE_YEAR = 365 * 60 * 60 * 24 * 1000L; @@ -70,8 +71,8 @@ public static final int DEPT_DONE = 23; public static final int CANCEL_ALARM_DONE = 24; - public static final double DEFAULT_LNG = 116.06639658728571; - public static final double DEFAULT_LAT = 27.759547805536418; + public static final double DEFAULT_LNG = 116.05695247650146; + public static final double DEFAULT_LAT = 27.76725390642336; public static final double DELTA_LNG_10 = 0.00002536; // 10米范围经度值偏移量(大约) public static final double DELTA_LAT_10 = 0.00002256;// 10米范围纬度值偏移量(大约) public static final double DELTA_LNG_75 = 0.00075; @@ -84,15 +85,18 @@ public static final String SHOP_MERCHANT_ID = "/shop/merchant/getIdByCode?shopCode="; public static final String LIGHT_DETAIL = "/lightCr/overview/lampDetail?lampId="; + //配置项 + public static final String PROJECT_CONFIG = "http://223.82.47.232:11504/bridge/static/project.config.json"; + //生产环境 public static final String BASE_MAP_SERVICE_URL = "http://111.198.10.15:13002/arcgis/rest/services/crdt/MapServer";//崇仁城管地图底图 public static final String BASE_MAP_NO_SERVICE_URL = "http://111.198.10.15:13002/arcgis/rest/services/crdt_1/MapServer";//崇仁城管地图不带网格底图 - public static final String COMPONENT_SERVICE_URL = "http://111.198.10.15:13002/arcgis/rest/services/crbj/FeatureServer";//崇仁部件图层 - public static final String WELL_SERVICE_URL = "http://111.198.10.15:13002/arcgis/rest/services/fsw/MapServer";//崇仁窨井图层 + public static final String COMPONENT_SERVICE_URL = "http://111.198.10.15:13002/arcgis/rest/services/crbj/FeatureServer";//崇仁部件特征图层 + public static final String TOILET_SERVICE_URL = "http://111.198.10.15:13002/arcgis/rest/services/crbjfc/FeatureServer";//崇仁公厕特征图层 //正式环境 // public static final String BASE_MAP_SERVICE_URL = "http://223.82.47.232:11408/arcgis/rest/services/crdt/MapServer";//崇仁城管地图底图 // public static final String BASE_MAP_NO_SERVICE_URL = "http://223.82.47.232:11408/arcgis/rest/services/crdt_1/MapServer";//崇仁城管地图不带网格底图 // public static final String COMPONENT_SERVICE_URL = "http://223.82.47.232:11408/arcgis/rest/services/crbj/FeatureServer";//崇仁部件图层 -// public static final String WELL_SERVICE_URL = "http://111.198.10.15:13002/arcgis/rest/services/fsw/MapServer";//崇仁窨井图层 +// public static final String TOILET_SERVICE_URL = "http://223.82.47.232:11408/arcgis/rest/services/crbjfc/MapServer/34";//公厕图层 } diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java index 1194b81..24b3e3c 100644 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java @@ -73,4 +73,53 @@ } }); } + + public static void doRequest(String url, IHttpRequestListener listener) { + Observable.create(new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { + @Override + public void log(@NotNull String message) { + Log.d(TAG, "log: " + message); + } + }); + interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + + OkHttpClient client = new OkHttpClient.Builder() + .addInterceptor(interceptor) + .readTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .build(); + + Request request = new Request.Builder() + .addHeader("token", AuthenticationHelper.getToken()) + .url(url) + .get() + .build();//创建Request 对象 + try { + Response response = client.newCall(request).execute(); + subscriber.onNext(response.body()); + } catch (IOException e) { + subscriber.onError(e); + } + } + }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + listener.onFailure(e); + } + + @Override + public void onNext(ResponseBody responseBody) { + listener.onSuccess(responseBody); + } + }); + } } diff --git a/app/src/main/java/com/casic/dcms/utils/SaveKeyValues.java b/app/src/main/java/com/casic/dcms/utils/SaveKeyValues.java index 5781791..b2fd5b4 100644 --- a/app/src/main/java/com/casic/dcms/utils/SaveKeyValues.java +++ b/app/src/main/java/com/casic/dcms/utils/SaveKeyValues.java @@ -3,15 +3,11 @@ import android.annotation.SuppressLint; import android.content.Context; import android.content.SharedPreferences; -import android.util.Log; public class SaveKeyValues { private static final String TAG = "SaveKeyValues"; - @SuppressLint({"StaticFieldLeak"}) private static Context context; - private static SharedPreferences sharedPreferences; - private static SharedPreferences.Editor editor; private static String fileName; public static void initSharedPreferences(Context mContext) { @@ -19,38 +15,35 @@ String packageName = context.getPackageName(); //获取到的包名带有“.”方便命名,取最后一个作为sp文件名,例如:com.casic.dcms String[] split = packageName.split("\\.");//先转义.之后才能分割 - int length = split.length; - fileName = split[length - 1]; - Log.d(TAG, fileName); + fileName = split[split.length - 1]; } /** * 存储 */ public static void putValue(String key, Object object) { - sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE); - editor = sharedPreferences.edit(); + SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE); + SharedPreferences.Editor editor = sharedPreferences.edit(); if (object instanceof String) { - editor.putString(key, (String) object); + editor.putString(key, (String) object).apply(); } else if (object instanceof Integer) { editor.putInt(key, (Integer) object); } else if (object instanceof Boolean) { - editor.putBoolean(key, (Boolean) object); + editor.putBoolean(key, (Boolean) object).apply(); } else if (object instanceof Float) { - editor.putFloat(key, (Float) object); + editor.putFloat(key, (Float) object).apply(); } else if (object instanceof Long) { - editor.putLong(key, (Long) object); + editor.putLong(key, (Long) object).apply(); } else { - editor.putString(key, object.toString()); + editor.putString(key, object.toString()).apply(); } - editor.apply(); } /** * 获取保存的数据 */ public static Object getValue(String key, Object defaultObject) { - sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE); + SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE); if (defaultObject instanceof String) { return sharedPreferences.getString(key, (String) defaultObject); } else if (defaultObject instanceof Integer) { @@ -70,23 +63,23 @@ * 移除某个key值已经对应的值 */ public static void removeKey(String key) { - editor.remove(key); - editor.commit(); + SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE); + sharedPreferences.edit().remove(key).apply(); } /** * 清除所有数据 */ public static void clearAll() { - editor.clear(); - editor.commit(); + SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE); + sharedPreferences.edit().clear().apply(); } /** * 查询某个key是否存在 */ public static boolean containsKey(String key) { - sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE); + SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE); return sharedPreferences.contains(key); } }