From d94f04b27e2e052665e80d66aa1616d30312637f Mon Sep 17 00:00:00 2001 From: wds Date: Wed, 14 Jul 2021 18:34:49 +0800 Subject: [PATCH] =?UTF-8?q?=E7=85=A7=E7=89=87=E5=91=BD=E5=90=8D=E8=A7=84?= =?UTF-8?q?=E5=88=99=EF=BC=8C=E5=85=85=E7=94=B5=E7=AB=99=E5=92=8C=E5=85=85?= =?UTF-8?q?=E7=94=B5=E6=A1=A9=E7=9A=84=E5=85=B3=E8=81=94=EF=BC=8C=E5=85=85?= =?UTF-8?q?=E7=94=B5=E7=AB=99=E7=9A=84=E7=82=B9=E5=87=BB=E4=BA=8B=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 2 +- .../outdoor/adapter/ChargingPileAdapter.java | 15 +- .../outdoor/adapter/PoiRecycleAdapter.java | 111 +++++++--- .../com/navinfo/outdoor/api/Constant.java | 1 + .../com/navinfo/outdoor/bean/PoiBean.java | 12 +- .../fragment/ChargingPileFragment.java | 20 +- .../fragment/ChargingStationFragment.java | 199 +++++++----------- .../navinfo/outdoor/fragment/PoiFragment.java | 79 +++---- .../outdoor/fragment/TreasureFragment.java | 38 +++- .../navinfo/outdoor/room/ChargingPileDao.java | 6 +- app/src/main/res/layout/item_poi.xml | 2 +- 11 files changed, 259 insertions(+), 226 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 6d77245..da1dba2 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -3,7 +3,7 @@ apply plugin: 'com.android.application' android { compileSdkVersion 29 buildToolsVersion '29.0.2' - ndkVersion '23.0.7123448' + //ndkVersion '23.0.7123448' defaultConfig { applicationId "com.navinfo.outdoor" diff --git a/app/src/main/java/com/navinfo/outdoor/adapter/ChargingPileAdapter.java b/app/src/main/java/com/navinfo/outdoor/adapter/ChargingPileAdapter.java index 9b9821e..d2047c0 100644 --- a/app/src/main/java/com/navinfo/outdoor/adapter/ChargingPileAdapter.java +++ b/app/src/main/java/com/navinfo/outdoor/adapter/ChargingPileAdapter.java @@ -44,10 +44,12 @@ public class ChargingPileAdapter extends RecyclerView.Adapter phoneData; private ArrayList poiBeans; private Button btnSaveLocal; private Button btnUploading; @@ -93,9 +93,8 @@ public class ChargingStationFragment extends BaseDrawerFragment implements View. private PoiDao poiDao; private CheckBox checkBoxLife; private CheckBox checkBoxRight; - private String phone = null; private Spinner spinnerType; - String[] ctype = new String[]{ "充电站", "充换电站", "充电桩组", "换电站"};//1."充电站"2 "充换电站"3 "充电桩组"4 "换电站"5 , + String[] ctype = new String[]{"充电站", "充换电站", "充电桩组", "换电站"};//1."充电站"2 "充换电站"3 "充电桩组"4 "换电站"5 , String[] spinner = new String[]{"存在", "不存在", "无法验证"}; private ArrayAdapter adapter; private LinearLayout linearChargingPile; @@ -108,11 +107,6 @@ public class ChargingStationFragment extends BaseDrawerFragment implements View. private RelativeLayout linearExist; private Spinner spinnerExist; private Integer body; - private String takePhotoPath1; - private String takePhotoPath2; - private String takePhotoPath3; - private String takePhotoPath4; - private String takePhotoPath5; public static ChargingStationFragment newInstance(Bundle bundle) { ChargingStationFragment fragment = new ChargingStationFragment(); @@ -308,37 +302,19 @@ public class ChargingStationFragment extends BaseDrawerFragment implements View. recyclerPhone.addItemDecoration(new DividerItemDecoration(getContext(), DividerItemDecoration.VERTICAL)); poiRecycleAdapter = new PoiRecycleAdapter(getContext()); recyclerPhone.setAdapter(poiRecycleAdapter); - poiRecycleAdapter.setInitPoiClick(new PoiRecycleAdapter.initPoiClick() { - @Override - public void item(int aInt) { - if (aInt == 0) { - poiRecycleAdapter.addData(new PoiBean("", null, R.drawable.icon_del_bg)); - } else { - poiRecycleAdapter.removeData(aInt); - if (phoneData.size() > 0) { - phoneData.remove(aInt); - Log.d("TAG", "initView: " + phoneData.toString()); - } - } - } - }); - poiRecycleAdapter.setInitPoiEditClick(new PoiRecycleAdapter.initPoiEditClick() { - @Override - public void item(String a, String data, int aInt) { - if (data.length() == 11) { - if (a != null) { - phoneData.add(aInt, a + "," + data); - } else { - phoneData.add(aInt, data); - } - Log.d("TAG", "initView: " + phoneData.toString()); - } - } - }); recyclerStation = findViewById(R.id.recycler_station); recyclerStation.setLayoutManager(new GridLayoutManager(getContext(), 3)); chargingPileAdapter = new ChargingPileAdapter(getContext()); recyclerStation.setAdapter(chargingPileAdapter); + chargingPileAdapter.setOnLickItem(new ChargingPileAdapter.onLickItem() { + @Override + public void item(ChargingPileEntity chargingPileEntity) { + Message obtains = Message.obtain(); + obtains.what = Constant.CHARGING_STATION_ITEM; + obtains.obj = chargingPileEntity; + EventBus.getDefault().post(obtains); + } + }); //数据展示 initShowPoi(); //禁用所有可操作控件 @@ -372,14 +348,39 @@ public class ChargingStationFragment extends BaseDrawerFragment implements View. spinnerType.setSelection(station_type, true); String telPhone = showPoiEntity.getTelPhone(); if (telPhone != null && !telPhone.equals("")) { - phoneData.add(showPoiEntity.getTelPhone()); - poiBeans.add(new PoiBean("电话*", telPhone, R.drawable.icon_add_bg)); + String[] phones = telPhone.split("\\|"); + for (int i = 0; i < phones.length; i++) { + if (i==0) { + if (!StringUtils.isEmpty(phones[i])) { + String[] split = phones[i].split("-"); + if (split[0] == phones[i]) { + poiBeans.add(new PoiBean("电话*", phones[i], "", R.drawable.icon_add_bg)); + } else { + poiBeans.add(new PoiBean("电话*", split[1], split[0], R.drawable.icon_add_bg)); + } + + } + } else { + if (!StringUtils.isEmpty(phones[i])) { + String[] split = phones[i].split("-"); + if (split[0] == phones[i]) { + poiBeans.add(new PoiBean("", phones[i], "", R.drawable.icon_del_bg)); + } else { + poiBeans.add(new PoiBean("", split[1], split[0], R.drawable.icon_del_bg)); + } + } + } + + } } else { - poiBeans.add(new PoiBean("电话*", " ", R.drawable.icon_add_bg)); + poiBeans.add(new PoiBean("电话*", "", "", R.drawable.icon_add_bg)); } - body=showPoiEntity.getBodyId(); + body = showPoiEntity.getBodyId(); poiRecycleAdapter.setList(poiBeans); - linearExist.setVisibility(View.VISIBLE); + if (showPoiEntity.getName() != null) { + linearExist.setVisibility(View.VISIBLE); + + } if (showPoiEntity.getPhotoInfo() != null) { for (int i = 0; i < showPoiEntity.getPhotoInfo().size(); i++) { String photo = showPoiEntity.getPhotoInfo().get(i).getPhoto(); @@ -423,7 +424,7 @@ public class ChargingStationFragment extends BaseDrawerFragment implements View. } }).start(); - if (showPoiEntity.getId()!=0){ + if (showPoiEntity.getId() != 0) { initPile(); } } @@ -483,8 +484,6 @@ public class ChargingStationFragment extends BaseDrawerFragment implements View. super.initData(); //存储对象 poiBeans = new ArrayList<>(); - //存储手机号 - phoneData = new ArrayList<>(); } @@ -497,7 +496,6 @@ public class ChargingStationFragment extends BaseDrawerFragment implements View. ArrayList chargingPileEntities = new ArrayList<>(); chargingPileEntities.add(chargingPileEntity); chargingPileAdapter.setChargingPileEntities(chargingPileEntities); - } } @@ -533,7 +531,7 @@ public class ChargingStationFragment extends BaseDrawerFragment implements View. Toast.makeText(getActivity(), "请确定点位", Toast.LENGTH_SHORT).show(); return; } else { - String encode = Geohash.getInstance().encode(latLng.latitude,latLng.longitude); + String encode = Geohash.getInstance().encode(latLng.latitude, latLng.longitude); poiEntity.setGeoWkt(encode); poiEntity.setX(String.valueOf(latLng.longitude)); poiEntity.setY(String.valueOf(latLng.latitude)); @@ -545,13 +543,14 @@ public class ChargingStationFragment extends BaseDrawerFragment implements View. } else { poiEntity.setDescribe(describe); } - if (phoneData.size()<= 0) { + boolean phoneBean = poiRecycleAdapter.getPhoneBean(); + if (phoneBean){ + String list = poiRecycleAdapter.getList(); + poiEntity.setTelPhone(list); + }else { Toast.makeText(getActivity(), "请输入手机号", Toast.LENGTH_SHORT).show(); return; - } else { - poiEntity.setTelPhone(phoneData.get(0)); } - String tagPanorama = (String) ivPanorama.getTag(); if (tagPanorama == null) { Toast.makeText(getActivity(), "请拍照 全景图", Toast.LENGTH_SHORT).show(); @@ -605,7 +604,6 @@ public class ChargingStationFragment extends BaseDrawerFragment implements View. getActivity().runOnUiThread(new Runnable() { @Override public void run() { - phoneByWork(poiEntity); chargingStationSaveByWork(poiEntity); } }); @@ -707,46 +705,6 @@ public class ChargingStationFragment extends BaseDrawerFragment implements View. } } - private void phoneByWork(PoiEntity poiEntity) { - showLoadingDialog(); - HttpParams httpParams = new HttpParams(); - httpParams.put("geo",poiEntity.getGeoWkt()); - OkGoBuilder.getInstance() - .Builder(getActivity()) - .url(HttpInterface.GET_PHONE) - .method(OkGoBuilder.GET) - .cls(GetPhoneBean.class) - .params(httpParams) - .callback(new Callback() { - @Override - public void onSuccess(GetPhoneBean getPhoneBean, int id) { - dismissLoadingDialog(); - String code = getPhoneBean.getBody().getCode(); - new Thread(new Runnable() { - @Override - public void run() { - InsertAndUpdateUtils.getInstance().insertOrUpdate(getContext(), poiEntity); - getActivity().runOnUiThread(new Runnable() { - @Override - public void run() { - - Toast.makeText(getActivity(), "保存成功", Toast.LENGTH_SHORT).show(); - Log.d("TAG", "onSuccess: " + getPhoneBean.getBody()); - } - }); - } - }).start(); - } - - @Override - public void onError(Throwable e, int id) { - dismissLoadingDialog(); - Toast.makeText(getActivity(), e.getMessage(), Toast.LENGTH_SHORT).show(); - Log.d("TAG", "onError: " + e.getMessage()); - } - }).build(); - } - private void stationUploadByNetWork(Integer body, ArrayList chargingStationList) { @@ -755,13 +713,13 @@ public class ChargingStationFragment extends BaseDrawerFragment implements View. private void chargingStationSaveByWork(PoiEntity poiEntity) { showLoadingDialog(); HttpParams httpParams = new HttpParams(); - httpParams.put("id",poiEntity.getTaskId()); + httpParams.put("id", poiEntity.getTaskId()); httpParams.put("sptype", poiEntity.getStation_type()); httpParams.put("name", poiEntity.getName()); httpParams.put("address", poiEntity.getAddress()); httpParams.put("telephone", poiEntity.getTelPhone()); httpParams.put("memo", poiEntity.getMemo()); - httpParams.put("geo",poiEntity.getGeoWkt()); + httpParams.put("geo", poiEntity.getGeoWkt()); OkGoBuilder.getInstance() .Builder(getActivity()) .url(HttpInterface.SUBMIT_CTASK) @@ -818,8 +776,10 @@ public class ChargingStationFragment extends BaseDrawerFragment implements View. if (describe != null && !describe.equals("")) { poiEntity.setDescribe(describe); } - if (phoneData.size() > 0) { - poiEntity.setTelPhone(phoneData.get(0)); + boolean phoneBean = poiRecycleAdapter.getPhoneBean(); + if (phoneBean){ + String list = poiRecycleAdapter.getList(); + poiEntity.setTelPhone(list); } String tagPanorama = (String) ivPanorama.getTag(); if (tagPanorama != null && !tagPanorama.equals("")) { @@ -841,11 +801,6 @@ public class ChargingStationFragment extends BaseDrawerFragment implements View. if (tagScutcheon != null && !tagScutcheon.equals("")) { infoPhoto.add(new Info(tagScutcheon)); } - if (showPoiEntity != null) { - if (showPoiEntity.getTaskId() != 0) { - poiEntity.setTaskId(showPoiEntity.getTaskId()); - } - } poiEntity.setPhotoInfo(infoPhoto); poiEntity.setStation_type(station_type); DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); @@ -898,8 +853,10 @@ public class ChargingStationFragment extends BaseDrawerFragment implements View. if (describe != null && !describe.equals("")) { poiEntity.setDescribe(describe); } - if (phoneData.size() > 0) { - poiEntity.setTelPhone(phoneData.get(0)); + boolean phoneBean = poiRecycleAdapter.getPhoneBean(); + if (phoneBean){ + String list = poiRecycleAdapter.getList(); + poiEntity.setTelPhone(list); } String tagPanorama = (String) ivPanorama.getTag(); if (tagPanorama != null && !tagPanorama.equals("")) { @@ -921,11 +878,6 @@ public class ChargingStationFragment extends BaseDrawerFragment implements View. if (tagScutcheon != null && !tagScutcheon.equals("")) { infoPhoto.add(new Info(tagScutcheon)); } - if (showPoiEntity != null) { - if (showPoiEntity.getTaskId() != 0) { - poiEntity.setTaskId(showPoiEntity.getTaskId()); - } - } poiEntity.setPhotoInfo(infoPhoto); poiEntity.setStation_type(station_type); DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); @@ -963,9 +915,8 @@ public class ChargingStationFragment extends BaseDrawerFragment implements View. } }); } else { - //int angle1 = PictureUtil.readPictureDegree(takePhotoPath1); - takePhotoPath1 = PhotoPathUtil.getTakePhotoPath(data, "a",Geohash.getInstance().encode(latLng.latitude,latLng.longitude)); - ivPanorama.setTag(takePhotoPath1); + String takePhotoPath = PhotoPathUtil.getTakePhotoPath(data, "a", Geohash.getInstance().encode(latLng.latitude, latLng.longitude)); + ivPanorama.setTag(takePhotoPath); ivPanorama.setImageBitmap(bitmap);//显示图像 } } else if (requestCode == 102 && resultCode == RESULT_OK) { @@ -984,9 +935,8 @@ public class ChargingStationFragment extends BaseDrawerFragment implements View. } }); } else { - // int angle2 = PictureUtil.readPictureDegree(takePhotoPath2); - takePhotoPath2 = PhotoPathUtil.getTakePhotoPath(data, "b",Geohash.getInstance().encode(latLng.latitude,latLng.longitude)); - ivName.setTag(takePhotoPath2); + String takePhotoPath = PhotoPathUtil.getTakePhotoPath(data, "b", Geohash.getInstance().encode(latLng.latitude, latLng.longitude)); + ivName.setTag(takePhotoPath); ivName.setImageBitmap(bitmap);//显示图像 } } else if (requestCode == 103 && resultCode == RESULT_OK) { @@ -1005,9 +955,8 @@ public class ChargingStationFragment extends BaseDrawerFragment implements View. } }); } else { - // int angle3 = PictureUtil.readPictureDegree(takePhotoPath3); - takePhotoPath3 = PhotoPathUtil.getTakePhotoPath(data, "c",Geohash.getInstance().encode(latLng.latitude,latLng.longitude)); - ivInternal.setTag(takePhotoPath3); + String takePhotoPath = PhotoPathUtil.getTakePhotoPath(data, "c", Geohash.getInstance().encode(latLng.latitude, latLng.longitude)); + ivInternal.setTag(takePhotoPath); ivInternal.setImageBitmap(bitmap);//显示图像 } } else if (requestCode == 104 && resultCode == RESULT_OK) { @@ -1026,9 +975,8 @@ public class ChargingStationFragment extends BaseDrawerFragment implements View. } }); } else { - // int angle4 = PictureUtil.readPictureDegree(takePhotoPath4); - takePhotoPath4 = PhotoPathUtil.getTakePhotoPath(data, "d",Geohash.getInstance().encode(latLng.latitude,latLng.longitude)); - ivElse.setTag(takePhotoPath4); + String takePhotoPath = PhotoPathUtil.getTakePhotoPath(data, "d", Geohash.getInstance().encode(latLng.latitude, latLng.longitude)); + ivElse.setTag(takePhotoPath); ivElse.setImageBitmap(bitmap);//显示图像 } } else if (requestCode == 105 && resultCode == RESULT_OK) { @@ -1047,9 +995,8 @@ public class ChargingStationFragment extends BaseDrawerFragment implements View. } }); } else { - // int angle5 = PictureUtil.readPictureDegree(takePhotoPath5); - takePhotoPath5 = PhotoPathUtil.getTakePhotoPath(data, "e",Geohash.getInstance().encode(latLng.latitude,latLng.longitude)); - ivScutcheon.setTag(takePhotoPath5); + String takePhotoPath = PhotoPathUtil.getTakePhotoPath(data, "e", Geohash.getInstance().encode(latLng.latitude, latLng.longitude)); + ivScutcheon.setTag(takePhotoPath); ivScutcheon.setImageBitmap(bitmap);//显示图像 } @@ -1061,5 +1008,15 @@ public class ChargingStationFragment extends BaseDrawerFragment implements View. if (EventBus.getDefault().isRegistered(this))//加上判断 EventBus.getDefault().unregister(this); super.onDestroy(); + new Thread(new Runnable() { + @Override + public void run() { + PoiEntity poiDaoPoiEntity = poiDao.getPoiEntity(showPoiEntity.getId()); + if (poiDaoPoiEntity.getName() == null) { + poiDao.deletePoiEntity(poiDaoPoiEntity); + chargingPileDao.deleteChargingFidPileEntity(showPoiEntity.getId()); + } + } + }).start(); } } \ No newline at end of file diff --git a/app/src/main/java/com/navinfo/outdoor/fragment/PoiFragment.java b/app/src/main/java/com/navinfo/outdoor/fragment/PoiFragment.java index 58f939a..0179c79 100644 --- a/app/src/main/java/com/navinfo/outdoor/fragment/PoiFragment.java +++ b/app/src/main/java/com/navinfo/outdoor/fragment/PoiFragment.java @@ -28,6 +28,8 @@ import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import com.bumptech.glide.Glide; +import com.github.lazylibrary.util.DensityUtil; +import com.github.lazylibrary.util.StringUtils; import com.google.gson.Gson; import com.hjq.permissions.OnPermissionCallback; import com.hjq.permissions.Permission; @@ -82,7 +84,6 @@ public class PoiFragment extends BaseDrawerFragment implements View.OnClickListe private EditText editNameContent, editSiteContent; private RecyclerView recyclerPhone; private PoiRecycleAdapter poiRecycleAdapter; - private ArrayList phoneData; private ArrayList poiBeans; private Button btnSaveLocal; private Button btnUploading; @@ -234,33 +235,6 @@ public class PoiFragment extends BaseDrawerFragment implements View.OnClickListe recyclerPhone.addItemDecoration(new DividerItemDecoration(getContext(), DividerItemDecoration.VERTICAL)); poiRecycleAdapter = new PoiRecycleAdapter(getContext()); recyclerPhone.setAdapter(poiRecycleAdapter); - poiRecycleAdapter.setInitPoiClick(new PoiRecycleAdapter.initPoiClick() { - @Override - public void item(int aInt) { - if (aInt == 0) { - poiRecycleAdapter.addData(new PoiBean("", null, R.drawable.icon_del_bg)); - } else { - poiRecycleAdapter.removeData(aInt); - if (phoneData.size() > 0) { - phoneData.remove(aInt); - Log.d("TAG", "initView: " + phoneData.toString()); - } - } - } - }); - poiRecycleAdapter.setInitPoiEditClick(new PoiRecycleAdapter.initPoiEditClick() { - @Override - public void item(String a, String data, int aInt) { - if (data.length() == 11) { - if (a != null) { - phoneData.add(aInt, a + "," + data); - } else { - phoneData.add(aInt, data); - } - Log.d("TAG", "initView: " + phoneData.toString()); - } - } - }); //数据展示 initShowPoi(); //禁用所有可操作控件 @@ -293,10 +267,32 @@ public class PoiFragment extends BaseDrawerFragment implements View.OnClickListe } String telPhone = showPoiEntity.getTelPhone(); if (telPhone != null && !telPhone.equals("")) { - phoneData.add(showPoiEntity.getTelPhone()); - poiBeans.add(new PoiBean("电话*", telPhone, R.drawable.icon_add_bg)); + String[] phones = telPhone.split("\\|"); + for (int i = 0; i < phones.length; i++) { + if (i==0) { + if (!StringUtils.isEmpty(phones[i])) { + String[] split = phones[i].split("-"); + if (split[0] == phones[i]) { + poiBeans.add(new PoiBean("电话*", phones[i], "", R.drawable.icon_add_bg)); + } else { + poiBeans.add(new PoiBean("电话*", split[1], split[0], R.drawable.icon_add_bg)); + } + + } + } else { + if (!StringUtils.isEmpty(phones[i])) { + String[] split = phones[i].split("-"); + if (split[0] == phones[i]) { + poiBeans.add(new PoiBean("", phones[i], "", R.drawable.icon_del_bg)); + } else { + poiBeans.add(new PoiBean("", split[1], split[0], R.drawable.icon_del_bg)); + } + } + } + + } } else { - poiBeans.add(new PoiBean("电话*", "", R.drawable.icon_add_bg)); + poiBeans.add(new PoiBean("电话*", "", "", R.drawable.icon_add_bg)); } body=showPoiEntity.getBodyId(); poiRecycleAdapter.setList(poiBeans); @@ -347,10 +343,8 @@ public class PoiFragment extends BaseDrawerFragment implements View.OnClickListe @Override protected void initData() { super.initData(); - //存储对象 + //存储手机号对象 poiBeans = new ArrayList<>(); - //存储手机号 - phoneData = new ArrayList<>(); } @@ -405,11 +399,13 @@ public class PoiFragment extends BaseDrawerFragment implements View.OnClickListe } else { poiEntity.setDescribe(describe); } - if (phoneData.size() <= 0) { + boolean phoneBean = poiRecycleAdapter.getPhoneBean(); + if (phoneBean){ + String list = poiRecycleAdapter.getList(); + poiEntity.setTelPhone(list); + }else { Toast.makeText(getActivity(), "请输入手机号", Toast.LENGTH_SHORT).show(); return; - } else { - poiEntity.setTelPhone(phoneData.get(0)); } String tagPanorama = (String) ivPanorama.getTag(); if (tagPanorama == null) { @@ -656,8 +652,13 @@ public class PoiFragment extends BaseDrawerFragment implements View.OnClickListe if (describe != null && !describe.equals("")) { poiEntity.setDescribe(describe); } - if (phoneData.size() > 0) { - poiEntity.setTelPhone(phoneData.get(0)); + boolean phoneBean = poiRecycleAdapter.getPhoneBean(); + if (phoneBean){ + String list = poiRecycleAdapter.getList(); + poiEntity.setTelPhone(list); + }else { + Toast.makeText(getActivity(), "请输入手机号", Toast.LENGTH_SHORT).show(); + return; } String tagPanorama = (String) ivPanorama.getTag(); if (tagPanorama != null && !tagPanorama.equals("")) { diff --git a/app/src/main/java/com/navinfo/outdoor/fragment/TreasureFragment.java b/app/src/main/java/com/navinfo/outdoor/fragment/TreasureFragment.java index 68abb6b..093bb4d 100644 --- a/app/src/main/java/com/navinfo/outdoor/fragment/TreasureFragment.java +++ b/app/src/main/java/com/navinfo/outdoor/fragment/TreasureFragment.java @@ -1,5 +1,6 @@ package com.navinfo.outdoor.fragment; +import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.graphics.Bitmap; @@ -26,6 +27,7 @@ import androidx.appcompat.app.AppCompatActivity; import androidx.core.widget.NestedScrollView; import androidx.fragment.app.FragmentTransaction; +import com.github.lazylibrary.util.DensityUtil; import com.github.lazylibrary.util.FileUtils; import com.google.gson.Gson; import com.hjq.permissions.OnPermissionCallback; @@ -48,6 +50,7 @@ import com.navinfo.outdoor.bean.NameAuthenticationBean; import com.navinfo.outdoor.http.DialogCallback; import com.navinfo.outdoor.http.HttpInterface; import com.navinfo.outdoor.room.ChargingPileEntity; +import com.navinfo.outdoor.room.InsertAndUpdateUtils; import com.navinfo.outdoor.room.PoiDao; import com.navinfo.outdoor.room.PoiDatabase; import com.navinfo.outdoor.room.PoiEntity; @@ -827,6 +830,12 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen showSlidingFragment(chargingPileFragment); } else if (data.what == Constant.CHARGING_STATION_PILE) {//充电站的充电桩 chargingPileEntity = (ChargingPileEntity) data.obj; + } else if (data.what == Constant.CHARGING_STATION_ITEM) {//充电站的item 跳转到充电桩 + Bundle bundle = new Bundle(); + bundle.putBoolean("isSliding", false); // 通知抽屉不收回 + bundle.putSerializable("chargingPileEntity", (ChargingPileEntity) data.obj); + ChargingPileFragment chargingPileFragment = ChargingPileFragment.newInstance(bundle); + showSlidingFragment(chargingPileFragment); } else if (data.what == Constant.HOME_TREASURE) {//寻宝的刷新 if ((boolean) data.obj) { initList(Constant.currentLocation); @@ -1064,36 +1073,51 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen LatLng mapCenterPoint = getMapCenterPoint(); poiEntity.setX(mapCenterPoint.longitude + ""); poiEntity.setY(mapCenterPoint.latitude + ""); - bundle.putSerializable("poiEntity", poiEntity); ShareDialog.show((AppCompatActivity) getActivity(), itemList, new ShareDialog.OnItemClickListener() { @Override public boolean onClick(ShareDialog shareDialog, int index, ShareDialog.Item item) { switch (index) { case 0: + bundle.putSerializable("poiEntity", poiEntity); BitmapDescriptor poiDescriptor = BitmapDescriptorFactory.fromResource(R.drawable.marker_poi_have_bg); markerPoi = tencentMap.addMarker(new MarkerOptions(mapCenterPoint).icon(poiDescriptor)); PoiFragment poiFragment = PoiFragment.newInstance(bundle); showSlidingFragment(poiFragment); break; case 1: + bundle.putSerializable("poiEntity", poiEntity); BitmapDescriptor poiVideoDescriptor = BitmapDescriptorFactory.fromResource(R.drawable.poi_video_have_bg); markerPoi = tencentMap.addMarker(new MarkerOptions(mapCenterPoint).icon(poiVideoDescriptor)); PoiVideoFragment poiVideoFragment = PoiVideoFragment.newInstance(bundle); showSlidingFragment(poiVideoFragment); break; case 2: + bundle.putSerializable("poiEntity", poiEntity); BitmapDescriptor roadDescriptor = BitmapDescriptorFactory.fromResource(R.drawable.marker_road_have_bg); markerPoi = tencentMap.addMarker(new MarkerOptions(mapCenterPoint).icon(roadDescriptor)); RoadFragment roadFragment = RoadFragment.newInstance(bundle); showSlidingFragment(roadFragment); break; case 3: - BitmapDescriptor chargeDescriptor = BitmapDescriptorFactory.fromResource(R.drawable.marker_charge_have_bg); - markerPoi = tencentMap.addMarker(new MarkerOptions(mapCenterPoint).icon(chargeDescriptor)); - ChargingStationFragment chargingStationFragment = ChargingStationFragment.newInstance(bundle); - showSlidingFragment(chargingStationFragment); + new Thread(new Runnable() { + @Override + public void run() { + InsertAndUpdateUtils.getInstance().insertOrUpdate(getContext(), poiEntity); + bundle.putSerializable("poiEntity", poiEntity); + getActivity().runOnUiThread(new Runnable() { + @Override + public void run() { + BitmapDescriptor chargeDescriptor = BitmapDescriptorFactory.fromResource(R.drawable.marker_charge_have_bg); + markerPoi = tencentMap.addMarker(new MarkerOptions(mapCenterPoint).icon(chargeDescriptor)); + ChargingStationFragment chargingStationFragment = ChargingStationFragment.newInstance(bundle); + showSlidingFragment(chargingStationFragment); + } + }); + } + }).start(); break; case 4: + bundle.putSerializable("poiEntity", poiEntity); BitmapDescriptor otherDescriptor = BitmapDescriptorFactory.fromResource(R.drawable.marker_other_have_bg); markerPoi = tencentMap.addMarker(new MarkerOptions(mapCenterPoint).icon(otherDescriptor)); OtherFragment otherFragment = OtherFragment.newInstance(bundle); @@ -1135,7 +1159,9 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen */ private void showSlidingFragment(BaseDrawerFragment fragment) { fragmentTransaction = supportFragmentManager.beginTransaction(); - sliding_layout.setPanelHeight(1000); + int[] deviceInfo = DensityUtil.getDeviceInfo(getActivity()); + + sliding_layout.setPanelHeight(deviceInfo[1] / 3); sliding_layout.setPanelState(SlidingUpPanelLayout.PanelState.COLLAPSED); fragmentTransaction.add(R.id.scroll_view, fragment, fragment.getClass().getName()); if (!(fragment instanceof FilterFragment)) { diff --git a/app/src/main/java/com/navinfo/outdoor/room/ChargingPileDao.java b/app/src/main/java/com/navinfo/outdoor/room/ChargingPileDao.java index d99c561..be0f72f 100644 --- a/app/src/main/java/com/navinfo/outdoor/room/ChargingPileDao.java +++ b/app/src/main/java/com/navinfo/outdoor/room/ChargingPileDao.java @@ -41,7 +41,11 @@ public interface ChargingPileDao { */ @Delete void deleteChargingPileEntity(ChargingPileEntity... chargingPileEntities); - + /** + * 删除 + */ + @Query("DELETE FROM pile where fid=:fid") + void deleteChargingFidPileEntity(long fid); /** *删除 * @param chargingPileEntities diff --git a/app/src/main/res/layout/item_poi.xml b/app/src/main/res/layout/item_poi.xml index 76c6cc2..6e3f90a 100644 --- a/app/src/main/res/layout/item_poi.xml +++ b/app/src/main/res/layout/item_poi.xml @@ -32,7 +32,7 @@ app:layout_constraintTop_toTopOf="parent">