diff --git a/app/build.gradle b/app/build.gradle index b48ec2e..ddad9ff 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -2,8 +2,8 @@ apply plugin: 'com.android.application' android { compileSdkVersion 29 - buildToolsVersion "29.0.0" - ndkVersion '23.0.7123448' + buildToolsVersion '29.0.2' + // ndkVersion '23.0.7123448' defaultConfig { applicationId "com.navinfo.outdoor" diff --git a/app/src/main/java/com/navinfo/outdoor/activity/FragmentManagement.java b/app/src/main/java/com/navinfo/outdoor/activity/FragmentManagement.java index d7f8ec3..4ff74a3 100644 --- a/app/src/main/java/com/navinfo/outdoor/activity/FragmentManagement.java +++ b/app/src/main/java/com/navinfo/outdoor/activity/FragmentManagement.java @@ -9,6 +9,7 @@ import com.navinfo.outdoor.fragment.AboutFragment; import com.navinfo.outdoor.fragment.CapacityEvaluationFragment; import com.navinfo.outdoor.fragment.CapacityEvaluationFragment2; import com.navinfo.outdoor.fragment.CapacityMeasurementFragment; +import com.navinfo.outdoor.fragment.ChargingPileFragment; import com.navinfo.outdoor.fragment.ContactFragment; import com.navinfo.outdoor.fragment.EventPrefectureFragment; import com.navinfo.outdoor.fragment.FilterFragment; @@ -86,6 +87,8 @@ public class FragmentManagement extends BaseActivity { private PoiTaskFragment poiTaskFragment;//记录-已提交-POI任务列表的fragment -31 private FilterFragment filterFragment;//寻宝-筛选界面 -32 private OtherFragment otherFragment;//寻宝-上传-其他的fragment -33 + private ChargingPileFragment chargingPileFragment;//寻宝-上传-充电站-充电桩的fragment-34 + @Override protected int getLayout() { return R.layout.management_fragment; @@ -170,6 +173,8 @@ public class FragmentManagement extends BaseActivity { fragmentTransaction.hide(filterFragment); if (otherFragment != null)//寻宝-上传-其他 -33 fragmentTransaction.hide(otherFragment); + if (chargingPileFragment!=null)//寻宝-上传-充电站-充电桩的fragment-34 + fragmentTransaction.hide(chargingPileFragment); } @@ -445,6 +450,13 @@ public class FragmentManagement extends BaseActivity { fragmentTransaction.show(otherFragment); } break; + case 34://寻宝-上传-充电站-充电桩 + if (chargingPileFragment ==null){ + chargingPileFragment =ChargingPileFragment.newInstance(new Bundle()); + fragmentTransaction.add(R.id.frame_layout,chargingPileFragment); + }else { + fragmentTransaction.show(chargingPileFragment); + } } fragmentTransaction.commit(); } diff --git a/app/src/main/java/com/navinfo/outdoor/api/Constant.java b/app/src/main/java/com/navinfo/outdoor/api/Constant.java index d05b482..8a36fb8 100644 --- a/app/src/main/java/com/navinfo/outdoor/api/Constant.java +++ b/app/src/main/java/com/navinfo/outdoor/api/Constant.java @@ -49,7 +49,9 @@ public class Constant { public static final int GATHER_GET_RETURN = 11;//参加领取的返回 public static final int MAIN_CHARGING_STATION = 13;//充电站的Fragment 对地图页面marker 的一个展示 public static final int CHARGING_STATION_WORD = 15;//地图页面marker 的经纬都回传 - + public static final int CHARGING_STATION = 16;//跳转到充电桩 + public static final int MAIN_CHARGING_PILE= 18;//充电桩的Fragment 对地图页面marker 的一个展示 + public static final int CHARGING_PILE_WORD = 20;//地图页面marker 的经纬都回传 /** * 用户当前位置 */ diff --git a/app/src/main/java/com/navinfo/outdoor/fragment/ChargingPileFragment.java b/app/src/main/java/com/navinfo/outdoor/fragment/ChargingPileFragment.java new file mode 100644 index 0000000..31af99d --- /dev/null +++ b/app/src/main/java/com/navinfo/outdoor/fragment/ChargingPileFragment.java @@ -0,0 +1,531 @@ +package com.navinfo.outdoor.fragment; + +import android.content.Intent; +import android.graphics.Bitmap; +import android.os.Bundle; +import android.os.Message; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.Button; +import android.widget.CheckBox; +import android.widget.CompoundButton; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.RadioButton; +import android.widget.RadioGroup; +import android.widget.RelativeLayout; +import android.widget.Spinner; +import android.widget.TextView; +import android.widget.Toast; + +import androidx.annotation.Nullable; +import androidx.appcompat.app.AppCompatActivity; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.hjq.permissions.OnPermissionCallback; +import com.hjq.permissions.Permission; +import com.hjq.permissions.XXPermissions; +import com.kongzue.dialog.interfaces.OnDialogButtonClickListener; +import com.kongzue.dialog.util.BaseDialog; +import com.kongzue.dialog.util.DialogSettings; +import com.kongzue.dialog.v3.MessageDialog; +import com.navinfo.outdoor.R; +import com.navinfo.outdoor.adapter.PoiRecycleAdapter; +import com.navinfo.outdoor.api.Constant; +import com.navinfo.outdoor.base.BaseDrawerFragment; +import com.navinfo.outdoor.bean.Info; +import com.navinfo.outdoor.bean.PoiBean; +import com.navinfo.outdoor.room.PoiDao; +import com.navinfo.outdoor.room.PoiDatabase; +import com.navinfo.outdoor.room.PoiEntity; +import com.navinfo.outdoor.util.PhotoPathUtil; + +import org.greenrobot.eventbus.EventBus; +import org.greenrobot.eventbus.Subscribe; + +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import static android.app.Activity.RESULT_OK; + +/** + * 充电站中的充电桩的Fragment + * 2021-5-25 + */ +public class ChargingPileFragment extends BaseDrawerFragment implements View.OnClickListener { + private EditText editDescribe, editNameContent; + private Button btnSaveLocal; + private PoiDatabase poiDatabase; + private PoiDao poiDao; + private String inode; + private List photoBean; + private CheckBox checkBoxLife, checkBoxRight; + private Spinner spinnerType, spinnerScutcheon, spinnerStake; + String[] type = new String[]{"地上五层", "地上四层", "地上三层", "地上二层", "地上一层","地下一层", "地下二层", "地下三层", "地下四层", "地下五层"}; + String[] scutcheon = new String[]{"存在", "不存在"}; + String[] stake = new String[]{"全部", "poi", "道路", "充电站", "其他"}; + private ArrayAdapter adapterType, adapterScutcheon, adapterStake; + private RadioGroup radioGroup; + private RadioButton radioButton1, radioButton2, radioButton3, radioButton4, radioButton5, radioButton6; + private RelativeLayout rlPanorama, rlCoding, rlEquipment, rlFacility, rlUsable, rlAvailable, rlParking, rlNumber; + private ImageView ivPanorama, ivCoding, ivEquipment, ivFacility, ivUsable, ivAvailable, ivParking, ivNumber; + + public static ChargingPileFragment newInstance(Bundle bundle) { + ChargingPileFragment fragment = new ChargingPileFragment(); + fragment.setArguments(bundle); + return fragment; + } + + @Override + protected int getLayout() { + return R.layout.charging_pile_fragment; + } + + @Override + public void onStart() { + super.onStart(); + if (!EventBus.getDefault().isRegistered(this)) {//加上判断 + EventBus.getDefault().register(this); + } + View header = LayoutInflater.from(getActivity()).inflate(R.layout.charging_pile_header, null); + Message obtain = Message.obtain(); + obtain.what = Constant.MAIN_HEADER; + obtain.obj = header; + EventBus.getDefault().post(obtain); + } + + @Override + protected void initView() { + super.initView(); + poiDatabase = PoiDatabase.getInstance(getContext()); + poiDao = poiDatabase.getPoiDao(); + checkBoxLife = findViewById(R.id.check_pot_life); + checkBoxRight = findViewById(R.id.check_pot_right); + checkBoxLife.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + Message obtain = Message.obtain(); + obtain.what = Constant.MAIN_CHARGING_PILE; + obtain.obj = isChecked; + EventBus.getDefault().post(obtain); + } + }); + checkBoxRight.setVisibility(View.GONE); + editNameContent = findViewById(R.id.tv_name_content); + radioGroup = findViewById(R.id.radio_group); + radioButton1 = findViewById(R.id.radio_button1); + radioButton2 = findViewById(R.id.radio_button2); + radioButton3 = findViewById(R.id.radio_button3); + radioButton4 = findViewById(R.id.radio_button4); + radioButton5 = findViewById(R.id.radio_button5); + radioButton6 = findViewById(R.id.radio_button6); + spinnerType = findViewById(R.id.spinner_type); + adapterType = new ArrayAdapter<>(getContext(), android.R.layout.simple_spinner_item, type); + adapterType.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); //设置下拉列表框的下拉选项样式 + spinnerType.setAdapter(adapterType); + spinnerType.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView parent, View view, int position, long id) { + + } + + @Override + public void onNothingSelected(AdapterView parent) { + + } + }); + spinnerScutcheon = findViewById(R.id.spinner_scutcheon); + adapterScutcheon = new ArrayAdapter<>(getContext(), android.R.layout.simple_spinner_item, scutcheon); + adapterScutcheon.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); //设置下拉列表框的下拉选项样式 + spinnerScutcheon.setAdapter(adapterScutcheon); + spinnerScutcheon.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView parent, View view, int position, long id) { + + } + + @Override + public void onNothingSelected(AdapterView parent) { + + } + }); + spinnerStake = findViewById(R.id.spinner_stake); + adapterStake = new ArrayAdapter<>(getContext(), android.R.layout.simple_spinner_item, stake); + adapterStake.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); //设置下拉列表框的下拉选项样式 + spinnerStake.setAdapter(adapterStake); + spinnerStake.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView parent, View view, int position, long id) { + + } + + @Override + public void onNothingSelected(AdapterView parent) { + + } + }); + rlPanorama = findViewById(R.id.rl_panorama); + rlPanorama.setOnClickListener(this::onClick); + ivPanorama = findViewById(R.id.iv_panorama); + rlCoding = findViewById(R.id.rl_coding); + rlCoding.setOnClickListener(this::onClick); + ivCoding = findViewById(R.id.iv_coding); + rlEquipment = findViewById(R.id.rl_equipment); + rlEquipment.setOnClickListener(this::onClick); + ivEquipment = findViewById(R.id.iv_equipment); + rlFacility = findViewById(R.id.rl_facility); + rlFacility.setOnClickListener(this::onClick); + ivFacility = findViewById(R.id.iv_facility); + rlUsable = findViewById(R.id.rl_usable); + rlUsable.setOnClickListener(this::onClick); + ivUsable = findViewById(R.id.iv_usable); + rlAvailable = findViewById(R.id.rl_available); + rlAvailable.setOnClickListener(this::onClick); + ivAvailable = findViewById(R.id.iv_available); + rlParking = findViewById(R.id.rl_parking); + rlParking.setOnClickListener(this::onClick); + ivParking = findViewById(R.id.iv_parking); + rlNumber = findViewById(R.id.rl_number); + rlNumber.setOnClickListener(this::onClick); + ivNumber = findViewById(R.id.iv_number); + editDescribe = findViewById(R.id.edit_describe); + btnSaveLocal = findViewById(R.id.btn_save_local); + btnSaveLocal.setOnClickListener(this::onClick); + + + } + + //禁用所有可操作性控件 + private void disables() { + checkBoxLife.setEnabled(false); + editNameContent.setEnabled(false); + editDescribe.setEnabled(false); + btnSaveLocal.setEnabled(false); + } + + @Override + protected void initData() { + super.initData(); + //存储图片地址 + photoBean = new ArrayList<>(); + } + + + @Subscribe + public void onEvent(Message data) { + if (data.what == Constant.CHARGING_PILE_WORD) { + inode = data.obj.toString(); + Toast.makeText(getContext(), inode, Toast.LENGTH_SHORT).show(); + } + } + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.btn_save_local: + XXPermissions.with(this) + //读写权限 + .permission(Permission.MANAGE_EXTERNAL_STORAGE) + .request(new OnPermissionCallback() { + @Override + public void onGranted(List permissions, boolean all) { + if (all) { + //保存数据库: + PoiEntity poiEntity = new PoiEntity(); + String name = editNameContent.getText().toString().trim();//名称 + if (name == null || name.equals("")) { + Toast.makeText(getActivity(), "请输入 名称", Toast.LENGTH_SHORT).show(); + return; + } else { + poiEntity.setName(name); + } + if (inode == null || inode.equals("")) { + Toast.makeText(getActivity(), "请确定点位", Toast.LENGTH_SHORT).show(); + return; + } else { + String[] split = inode.split(","); + poiEntity.setX(split[0]); + poiEntity.setY(split[1]); + } + String describe = editDescribe.getText().toString().trim(); + if (describe == null || describe.equals("")) { + Toast.makeText(getActivity(), "请输入任务描述", Toast.LENGTH_SHORT).show(); + return; + } else { + poiEntity.setDescribe(describe); + } + if (photoBean.size() < 0) { + Toast.makeText(getActivity(), "请拍照", Toast.LENGTH_SHORT).show(); + return; + } else { + poiEntity.setPhotoInfo(photoBean); + } + DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Calendar calendar = Calendar.getInstance(); + calendar.setTimeInMillis(System.currentTimeMillis()); + String format = formatter.format(calendar.getTime()); + poiEntity.setCreateTime(format); + poiEntity.setTaskStatus(0); + new Thread(new Runnable() { + @Override + public void run() { + poiDao.insertPoiEntity(poiEntity); + } + }).start(); + Message obtains = Message.obtain(); + obtains.what = Constant.TREASURE_FRAGMENT; + obtains.obj = false; + EventBus.getDefault().post(obtains); + onBackPressed(); + } else { + Toast.makeText(getActivity(), "没有申请权限,请手动申请", Toast.LENGTH_SHORT).show(); + } + } + + @Override + public void onDenied(List permissions, boolean never) { + if (never) { + Toast.makeText(getActivity(), "被永久拒绝授权,请手动授予权限", Toast.LENGTH_SHORT).show(); + // 如果是被永久拒绝就跳转到应用权限系统设置页面 + XXPermissions.startPermissionActivity(getActivity(), permissions); + } + } + }); + break; + case R.id.rl_panorama: + Intent intentPanorama = new Intent("android.media.action.IMAGE_CAPTURE"); + startActivityForResult(intentPanorama, 101); + break; + case R.id.rl_coding: + Intent intentCoding = new Intent("android.media.action.IMAGE_CAPTURE"); + startActivityForResult(intentCoding, 102); + break; + case R.id.rl_equipment: + Intent intentEquipment = new Intent("android.media.action.IMAGE_CAPTURE"); + startActivityForResult(intentEquipment, 103); + break; + case R.id.rl_facility: + Intent intentFacility = new Intent("android.media.action.IMAGE_CAPTURE"); + startActivityForResult(intentFacility, 104); + break; + case R.id.rl_usable: + Intent intentUsable = new Intent("android.media.action.IMAGE_CAPTURE"); + startActivityForResult(intentUsable, 105); + break; + case R.id.rl_available: + Intent intentAvailable = new Intent("android.media.action.IMAGE_CAPTURE"); + startActivityForResult(intentAvailable, 106); + break; + case R.id.rl_parking: + Intent intentParking = new Intent("android.media.action.IMAGE_CAPTURE"); + startActivityForResult(intentParking, 107); + break; + case R.id.rl_number: + Intent intentNumber = new Intent("android.media.action.IMAGE_CAPTURE"); + startActivityForResult(intentNumber, 108); + break; + } + } + + + @Override + public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (requestCode == 101 && resultCode == RESULT_OK) { + Bundle extras = data.getExtras();//从Intent中获取附加值 + Bitmap bitmap = (Bitmap) extras.get("data");//从附加值中获取返回的图像 + int height = bitmap.getHeight(); + int width = bitmap.getWidth(); + if (height > width) { + DialogSettings.style = DialogSettings.STYLE.STYLE_KONGZUE; + MessageDialog.show((AppCompatActivity) getContext(), "提示", "请重新拍照,要求横屏拍照", "确定").setOkButton(new OnDialogButtonClickListener() { + @Override + public boolean onClick(BaseDialog baseDialog, View v) { + Intent intentPanorama = new Intent("android.media.action.IMAGE_CAPTURE"); + startActivityForResult(intentPanorama, 101); + return false; + } + }); + } else { + String takePhotoPath = PhotoPathUtil.getTakePhotoPath(data); + Info info = new Info(); + info.setPhoto(takePhotoPath); + photoBean.add(info); + ivPanorama.setImageBitmap(bitmap);//显示图像 + } + } else if (requestCode == 102 && resultCode == RESULT_OK) { + Bundle extras = data.getExtras();//从Intent中获取附加值 + Bitmap bitmap = (Bitmap) extras.get("data");//从附加值中获取返回的图像 + int height = bitmap.getHeight(); + int width = bitmap.getWidth(); + if (height > width) { + DialogSettings.style = DialogSettings.STYLE.STYLE_KONGZUE; + MessageDialog.show((AppCompatActivity) getContext(), "提示", "请重新拍照,要求横屏拍照", "确定").setOkButton(new OnDialogButtonClickListener() { + @Override + public boolean onClick(BaseDialog baseDialog, View v) { + Intent intentPanorama = new Intent("android.media.action.IMAGE_CAPTURE"); + startActivityForResult(intentPanorama, 102); + return false; + } + }); + } else { + String takePhotoPath = PhotoPathUtil.getTakePhotoPath(data); + Info info = new Info(); + info.setPhoto(takePhotoPath); + photoBean.add(info); + ivCoding.setImageBitmap(bitmap);//显示图像 + } + } else if (requestCode == 103 && resultCode == RESULT_OK) { + Bundle extras = data.getExtras();//从Intent中获取附加值 + Bitmap bitmap = (Bitmap) extras.get("data");//从附加值中获取返回的图像 + int height = bitmap.getHeight(); + int width = bitmap.getWidth(); + if (height > width) { + DialogSettings.style = DialogSettings.STYLE.STYLE_KONGZUE; + MessageDialog.show((AppCompatActivity) getContext(), "提示", "请重新拍照,要求横屏拍照", "确定").setOkButton(new OnDialogButtonClickListener() { + @Override + public boolean onClick(BaseDialog baseDialog, View v) { + Intent intentPanorama = new Intent("android.media.action.IMAGE_CAPTURE"); + startActivityForResult(intentPanorama, 103); + return false; + } + }); + } else { + String takePhotoPath = PhotoPathUtil.getTakePhotoPath(data); + Info info = new Info(); + info.setPhoto(takePhotoPath); + photoBean.add(info); + ivEquipment.setImageBitmap(bitmap);//显示图像 + } + }else if (requestCode == 104 && resultCode == RESULT_OK) { + Bundle extras = data.getExtras();//从Intent中获取附加值 + Bitmap bitmap = (Bitmap) extras.get("data");//从附加值中获取返回的图像 + int height = bitmap.getHeight(); + int width = bitmap.getWidth(); + if (height > width) { + DialogSettings.style = DialogSettings.STYLE.STYLE_KONGZUE; + MessageDialog.show((AppCompatActivity) getContext(), "提示", "请重新拍照,要求横屏拍照", "确定").setOkButton(new OnDialogButtonClickListener() { + @Override + public boolean onClick(BaseDialog baseDialog, View v) { + Intent intentPanorama = new Intent("android.media.action.IMAGE_CAPTURE"); + startActivityForResult(intentPanorama, 104); + return false; + } + }); + } else { + String takePhotoPath = PhotoPathUtil.getTakePhotoPath(data); + Info info = new Info(); + info.setPhoto(takePhotoPath); + photoBean.add(info); + ivFacility.setImageBitmap(bitmap);//显示图像 + } + }else if (requestCode == 105 && resultCode == RESULT_OK) { + Bundle extras = data.getExtras();//从Intent中获取附加值 + Bitmap bitmap = (Bitmap) extras.get("data");//从附加值中获取返回的图像 + int height = bitmap.getHeight(); + int width = bitmap.getWidth(); + if (height > width) { + DialogSettings.style = DialogSettings.STYLE.STYLE_KONGZUE; + MessageDialog.show((AppCompatActivity) getContext(), "提示", "请重新拍照,要求横屏拍照", "确定").setOkButton(new OnDialogButtonClickListener() { + @Override + public boolean onClick(BaseDialog baseDialog, View v) { + Intent intentPanorama = new Intent("android.media.action.IMAGE_CAPTURE"); + startActivityForResult(intentPanorama, 105); + return false; + } + }); + } else { + String takePhotoPath = PhotoPathUtil.getTakePhotoPath(data); + Info info = new Info(); + info.setPhoto(takePhotoPath); + photoBean.add(info); + ivUsable.setImageBitmap(bitmap);//显示图像 + } + }else if (requestCode == 106 && resultCode == RESULT_OK) { + Bundle extras = data.getExtras();//从Intent中获取附加值 + Bitmap bitmap = (Bitmap) extras.get("data");//从附加值中获取返回的图像 + int height = bitmap.getHeight(); + int width = bitmap.getWidth(); + if (height > width) { + DialogSettings.style = DialogSettings.STYLE.STYLE_KONGZUE; + MessageDialog.show((AppCompatActivity) getContext(), "提示", "请重新拍照,要求横屏拍照", "确定").setOkButton(new OnDialogButtonClickListener() { + @Override + public boolean onClick(BaseDialog baseDialog, View v) { + Intent intentPanorama = new Intent("android.media.action.IMAGE_CAPTURE"); + startActivityForResult(intentPanorama, 106); + return false; + } + }); + } else { + String takePhotoPath = PhotoPathUtil.getTakePhotoPath(data); + Info info = new Info(); + info.setPhoto(takePhotoPath); + photoBean.add(info); + ivAvailable.setImageBitmap(bitmap);//显示图像 + } + }else if (requestCode == 107 && resultCode == RESULT_OK) { + Bundle extras = data.getExtras();//从Intent中获取附加值 + Bitmap bitmap = (Bitmap) extras.get("data");//从附加值中获取返回的图像 + int height = bitmap.getHeight(); + int width = bitmap.getWidth(); + if (height > width) { + DialogSettings.style = DialogSettings.STYLE.STYLE_KONGZUE; + MessageDialog.show((AppCompatActivity) getContext(), "提示", "请重新拍照,要求横屏拍照", "确定").setOkButton(new OnDialogButtonClickListener() { + @Override + public boolean onClick(BaseDialog baseDialog, View v) { + Intent intentPanorama = new Intent("android.media.action.IMAGE_CAPTURE"); + startActivityForResult(intentPanorama, 107); + return false; + } + }); + } else { + String takePhotoPath = PhotoPathUtil.getTakePhotoPath(data); + Info info = new Info(); + info.setPhoto(takePhotoPath); + photoBean.add(info); + ivParking.setImageBitmap(bitmap);//显示图像 + } + }else if (requestCode == 108 && resultCode == RESULT_OK) { + Bundle extras = data.getExtras();//从Intent中获取附加值 + Bitmap bitmap = (Bitmap) extras.get("data");//从附加值中获取返回的图像 + int height = bitmap.getHeight(); + int width = bitmap.getWidth(); + if (height > width) { + DialogSettings.style = DialogSettings.STYLE.STYLE_KONGZUE; + MessageDialog.show((AppCompatActivity) getContext(), "提示", "请重新拍照,要求横屏拍照", "确定").setOkButton(new OnDialogButtonClickListener() { + @Override + public boolean onClick(BaseDialog baseDialog, View v) { + Intent intentPanorama = new Intent("android.media.action.IMAGE_CAPTURE"); + startActivityForResult(intentPanorama, 108); + return false; + } + }); + } else { + String takePhotoPath = PhotoPathUtil.getTakePhotoPath(data); + Info info = new Info(); + info.setPhoto(takePhotoPath); + photoBean.add(info); + ivNumber.setImageBitmap(bitmap);//显示图像 + } + } + } + + + @Override + public void onDestroy() { + if (EventBus.getDefault().isRegistered(this))//加上判断 + EventBus.getDefault().unregister(this); + super.onDestroy(); + } + + +} \ No newline at end of file diff --git a/app/src/main/java/com/navinfo/outdoor/fragment/ChargingStationFragment.java b/app/src/main/java/com/navinfo/outdoor/fragment/ChargingStationFragment.java index 3d7add4..03f7e37 100644 --- a/app/src/main/java/com/navinfo/outdoor/fragment/ChargingStationFragment.java +++ b/app/src/main/java/com/navinfo/outdoor/fragment/ChargingStationFragment.java @@ -14,6 +14,7 @@ import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.EditText; import android.widget.ImageView; +import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.Spinner; import android.widget.TextView; @@ -62,8 +63,8 @@ import static android.app.Activity.RESULT_OK; public class ChargingStationFragment extends BaseDrawerFragment implements View.OnClickListener { private EditText editDescribe; - private RelativeLayout rlPanorama, rlName, rlInternalPhotos, rlCard, rlElse; - private ImageView ivPanorama, ivName, ivInternal, ivCard, ivElse; + private RelativeLayout rlPanorama, rlName, rlInternalPhotos, rlCard, rlElse,rlScutcheon; + private ImageView ivPanorama, ivName, ivInternal, ivCard, ivElse,ivScutcheon; private TextView tvExamine; private EditText editNameContent, editSiteContent; private RecyclerView recyclerPhone; @@ -82,6 +83,7 @@ public class ChargingStationFragment extends BaseDrawerFragment implements View. private Spinner spinnerType; String[] ctype = new String[]{"全部", "poi", "道路", "充电站", "其他"}; private ArrayAdapter adapter; + private LinearLayout linearChargingPile; public static ChargingStationFragment newInstance(Bundle bundle) { ChargingStationFragment fragment = new ChargingStationFragment(); @@ -94,6 +96,17 @@ public class ChargingStationFragment extends BaseDrawerFragment implements View. return R.layout.charging_station_fragment; } + @Override + public void onHiddenChanged(boolean hidden) { + super.onHiddenChanged(hidden); + if (!hidden) { + View header = LayoutInflater.from(getActivity()).inflate(R.layout.charging_station_header, null); + Message obtain = Message.obtain(); + obtain.what = Constant.MAIN_HEADER; + obtain.obj = header; + EventBus.getDefault().post(obtain); + } + } @Override public void onStart() { super.onStart(); @@ -125,20 +138,19 @@ public class ChargingStationFragment extends BaseDrawerFragment implements View. }); checkBoxRight.setVisibility(View.GONE); spinnerType = findViewById(R.id.spinner_type); - adapter = new ArrayAdapter(getContext(), android.R.layout.simple_spinner_item, ctype); - adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); //设置下拉列表框的下拉选项样式 + adapter = new ArrayAdapter<>(getContext(), android.R.layout.simple_spinner_item, ctype); + adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); //设置下拉列表框的下拉选项样式 spinnerType.setAdapter(adapter); spinnerType.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView parent, View view, int position, long id) { - } - @Override - public void onNothingSelected(AdapterView parent) { - - } + public void onNothingSelected(AdapterView parent) {} }); + //添加桩 + linearChargingPile = findViewById(R.id.linear_charging_pile); + linearChargingPile.setOnClickListener(this::onClick); btnSaveLocal = findViewById(R.id.btn_save_local); btnSaveLocal.setOnClickListener(this::onClick); btnUploading = findViewById(R.id.btn_uploading); @@ -153,6 +165,7 @@ public class ChargingStationFragment extends BaseDrawerFragment implements View. ivInternal = findViewById(R.id.iv_internal); ivCard = findViewById(R.id.iv_card); ivElse = findViewById(R.id.iv_else); + ivScutcheon = findViewById(R.id.iv_scutcheon); rlPanorama = findViewById(R.id.rl_panorama); rlPanorama.setOnClickListener(this::onClick); rlName = findViewById(R.id.rl_name); @@ -163,6 +176,8 @@ public class ChargingStationFragment extends BaseDrawerFragment implements View. rlCard.setOnClickListener(this::onClick); rlElse = findViewById(R.id.rl_else); rlElse.setOnClickListener(this::onClick); + rlScutcheon= findViewById(R.id.rl_scutcheon); + rlScutcheon.setOnClickListener(this::onClick); recyclerPhone = findViewById(R.id.recycler_phone); recyclerPhone.setLayoutManager(new LinearLayoutManager(getContext())); recyclerPhone.addItemDecoration(new DividerItemDecoration(getContext(), DividerItemDecoration.VERTICAL)); @@ -335,6 +350,36 @@ public class ChargingStationFragment extends BaseDrawerFragment implements View. case R.id.tv_examine: Toast.makeText(getContext(), editNameContent.getText().toString(), Toast.LENGTH_SHORT).show(); break; + case R.id.rl_panorama: + Intent intentPanorama = new Intent("android.media.action.IMAGE_CAPTURE"); + startActivityForResult(intentPanorama, 101); + break; + case R.id.rl_name: + Intent intentName = new Intent("android.media.action.IMAGE_CAPTURE"); + startActivityForResult(intentName, 102); + break; + case R.id.rl_internal_photos: + Intent intentInternal = new Intent("android.media.action.IMAGE_CAPTURE"); + startActivityForResult(intentInternal, 103); + break; + case R.id.rl_card: + Intent intentCard = new Intent("android.media.action.IMAGE_CAPTURE"); + startActivityForResult(intentCard, 104); + break; + case R.id.rl_else: + Intent intentElse = new Intent("android.media.action.IMAGE_CAPTURE"); + startActivityForResult(intentElse, 105); + break; + case R.id.rl_scutcheon: + Intent intentScutcheon = new Intent("android.media.action.IMAGE_CAPTURE"); + startActivityForResult(intentScutcheon, 106); + break; + case R.id.linear_charging_pile: + Message obtains = Message.obtain(); + obtains.what = Constant.CHARGING_STATION; + obtains.obj = true; + EventBus.getDefault().post(obtains); + break; } } @@ -342,15 +387,147 @@ public class ChargingStationFragment extends BaseDrawerFragment implements View. @Override public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data); + if (requestCode == 101 && resultCode == RESULT_OK) { + Bundle extras = data.getExtras();//从Intent中获取附加值 + Bitmap bitmap = (Bitmap) extras.get("data");//从附加值中获取返回的图像 + int height = bitmap.getHeight(); + int width = bitmap.getWidth(); + if (height > width) { + DialogSettings.style = DialogSettings.STYLE.STYLE_KONGZUE; + MessageDialog.show((AppCompatActivity) getContext(), "提示", "请重新拍照,要求横屏拍照", "确定").setOkButton(new OnDialogButtonClickListener() { + @Override + public boolean onClick(BaseDialog baseDialog, View v) { + Intent intentPanorama = new Intent("android.media.action.IMAGE_CAPTURE"); + startActivityForResult(intentPanorama, 101); + return false; + } + }); + } else { + String takePhotoPath = PhotoPathUtil.getTakePhotoPath(data); + Info info = new Info(); + info.setPhoto(takePhotoPath); + photoBean.add(info); + ivPanorama.setImageBitmap(bitmap);//显示图像 + } + + } else if (requestCode == 102 && resultCode == RESULT_OK) { + Bundle extras = data.getExtras();//从Intent中获取附加值 + Bitmap bitmap = (Bitmap) extras.get("data");//从附加值中获取返回的图像 + int height = bitmap.getHeight(); + int width = bitmap.getWidth(); + if (height > width) { + DialogSettings.style = DialogSettings.STYLE.STYLE_KONGZUE; + MessageDialog.show((AppCompatActivity) getContext(), "提示", "请重新拍照,要求横屏拍照", "确定").setOkButton(new OnDialogButtonClickListener() { + @Override + public boolean onClick(BaseDialog baseDialog, View v) { + Intent intentPanorama = new Intent("android.media.action.IMAGE_CAPTURE"); + startActivityForResult(intentPanorama, 102); + return false; + } + }); + } else { + String takePhotoPath = PhotoPathUtil.getTakePhotoPath(data); + Info info = new Info(); + info.setPhoto(takePhotoPath); + photoBean.add(info); + ivName.setImageBitmap(bitmap);//显示图像 + } + + } else if (requestCode == 103 && resultCode == RESULT_OK) { + Bundle extras = data.getExtras();//从Intent中获取附加值 + Bitmap bitmap = (Bitmap) extras.get("data");//从附加值中获取返回的图像 + int height = bitmap.getHeight(); + int width = bitmap.getWidth(); + if (height > width) { + DialogSettings.style = DialogSettings.STYLE.STYLE_KONGZUE; + MessageDialog.show((AppCompatActivity) getContext(), "提示", "请重新拍照,要求横屏拍照", "确定").setOkButton(new OnDialogButtonClickListener() { + @Override + public boolean onClick(BaseDialog baseDialog, View v) { + Intent intentPanorama = new Intent("android.media.action.IMAGE_CAPTURE"); + startActivityForResult(intentPanorama, 103); + return false; + } + }); + } else { + String takePhotoPath = PhotoPathUtil.getTakePhotoPath(data); + Info info = new Info(); + info.setPhoto(takePhotoPath); + photoBean.add(info); + ivInternal.setImageBitmap(bitmap);//显示图像 + } + } else if (requestCode == 104 && resultCode == RESULT_OK) { + Bundle extras = data.getExtras();//从Intent中获取附加值 + Bitmap bitmap = (Bitmap) extras.get("data");//从附加值中获取返回的图像 + int height = bitmap.getHeight(); + int width = bitmap.getWidth(); + if (height > width) { + DialogSettings.style = DialogSettings.STYLE.STYLE_KONGZUE; + MessageDialog.show((AppCompatActivity) getContext(), "提示", "请重新拍照,要求横屏拍照", "确定").setOkButton(new OnDialogButtonClickListener() { + @Override + public boolean onClick(BaseDialog baseDialog, View v) { + Intent intentPanorama = new Intent("android.media.action.IMAGE_CAPTURE"); + startActivityForResult(intentPanorama, 104); + return false; + } + }); + } else { + String takePhotoPath = PhotoPathUtil.getTakePhotoPath(data); + Info info = new Info(); + info.setPhoto(takePhotoPath); + photoBean.add(info); + ivCard.setImageBitmap(bitmap);//显示图像 + } + } else if (requestCode == 105 && resultCode == RESULT_OK) { + Bundle extras = data.getExtras();//从Intent中获取附加值 + Bitmap bitmap = (Bitmap) extras.get("data");//从附加值中获取返回的图像 + int height = bitmap.getHeight(); + int width = bitmap.getWidth(); + if (height > width) { + DialogSettings.style = DialogSettings.STYLE.STYLE_KONGZUE; + MessageDialog.show((AppCompatActivity) getContext(), "提示", "请重新拍照,要求横屏拍照", "确定").setOkButton(new OnDialogButtonClickListener() { + @Override + public boolean onClick(BaseDialog baseDialog, View v) { + Intent intentPanorama = new Intent("android.media.action.IMAGE_CAPTURE"); + startActivityForResult(intentPanorama, 105); + return false; + } + }); + } else { + String takePhotoPath = PhotoPathUtil.getTakePhotoPath(data); + Info info = new Info(); + info.setPhoto(takePhotoPath); + photoBean.add(info); + ivElse.setImageBitmap(bitmap);//显示图像 + } + + }else if (requestCode==106 &&resultCode ==RESULT_OK){ + Bundle extras = data.getExtras();//从Intent中获取附加值 + Bitmap bitmap = (Bitmap) extras.get("data");//从附加值中获取返回的图像 + int height = bitmap.getHeight(); + int width = bitmap.getWidth(); + if (height > width) { + DialogSettings.style = DialogSettings.STYLE.STYLE_KONGZUE; + MessageDialog.show((AppCompatActivity) getContext(), "提示", "请重新拍照,要求横屏拍照", "确定").setOkButton(new OnDialogButtonClickListener() { + @Override + public boolean onClick(BaseDialog baseDialog, View v) { + Intent intentPanorama = new Intent("android.media.action.IMAGE_CAPTURE"); + startActivityForResult(intentPanorama, 106); + return false; + } + }); + } else { + String takePhotoPath = PhotoPathUtil.getTakePhotoPath(data); + Info info = new Info(); + info.setPhoto(takePhotoPath); + photoBean.add(info); + ivScutcheon.setImageBitmap(bitmap);//显示图像 + } + } } - - @Override public void onDestroy() { if (EventBus.getDefault().isRegistered(this))//加上判断 EventBus.getDefault().unregister(this); super.onDestroy(); } - - } \ No newline at end of file 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 c21c28f..226aed8 100644 --- a/app/src/main/java/com/navinfo/outdoor/fragment/TreasureFragment.java +++ b/app/src/main/java/com/navinfo/outdoor/fragment/TreasureFragment.java @@ -195,10 +195,6 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen break; case 3: break; - case 4: - OtherFragment otherFragment = OtherFragment.newInstance(new Bundle()); - showSlidingFragment(otherFragment); - break; } } else if (data.what == Constant.FILTER_LIST) { // 筛选列表所有数据地图显示 List poiEntities = (List) data.obj; @@ -206,8 +202,10 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen } else if (data.what == Constant.TREASURE_WORD) { // POI采集-移动位置 initPoiMarker(Boolean.valueOf((Boolean) data.obj), Constant.POI_WORD); - } else if (data.what == Constant.MAIN_CHARGING_STATION) {//道路采集-移动位置 - initPoiMarker(Boolean.valueOf((Boolean) data.obj), Constant.CHARGING_STATION_WORD); + }else if (data.what==Constant.MAIN_CHARGING_STATION){//充电站采集-移动位置 + initPoiMarker(Boolean.valueOf((Boolean) data.obj),Constant.CHARGING_STATION_WORD); + }else if (data.what ==Constant.MAIN_CHARGING_PILE){//充电桩采集-移动位置 + initPoiMarker(Boolean.valueOf((Boolean)data.obj),Constant.CHARGING_PILE_WORD); } else if (data.what == Constant.TREASURE_FRAGMENT) { if ((boolean) data.obj == true) { frameLayout.setVisibility(View.GONE); @@ -233,6 +231,14 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen sliding_layout.setPanelHeight(1000); sliding_layout.setPanelState(SlidingUpPanelLayout.PanelState.COLLAPSED); } + }else if (data.what==Constant.CHARGING_STATION){//充电站的充电桩 + if ((boolean)data.obj){ + Bundle bundle = new Bundle(); + bundle.putBoolean("isSliding", false); // 通知抽屉不收回 + ChargingPileFragment chargingPileFragment = ChargingPileFragment.newInstance(bundle); + showSlidingFragment(chargingPileFragment); + } + } @@ -262,7 +268,7 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen } - private void initPoiMarker(Boolean t, int aInt) { + private void initPoiMarker(Boolean t,int aInt) { if (t == true) { //移动地图 CameraUpdate cameraSigma = @@ -466,7 +472,6 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen /** * header 头部布局 - * * @param view */ public void initHeader(View view) { @@ -497,6 +502,12 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen fragmentTransaction.hide(filterFragment); } } + if (!(fragment instanceof FilterFragment)) { + ChargingStationFragment chargingStationFragment = (ChargingStationFragment) supportFragmentManager.findFragmentByTag(ChargingStationFragment.class.getName()); + if (chargingStationFragment != null) { + fragmentTransaction.hide(chargingStationFragment); + } + } if (!(fragment instanceof PoiFragment)) { PoiFragment poiFragment = (PoiFragment) supportFragmentManager.findFragmentByTag(PoiFragment.class.getName()); if (poiFragment != null) { diff --git a/app/src/main/java/com/navinfo/outdoor/room/ChargingPileDao.java b/app/src/main/java/com/navinfo/outdoor/room/ChargingPileDao.java new file mode 100644 index 0000000..d56d17b --- /dev/null +++ b/app/src/main/java/com/navinfo/outdoor/room/ChargingPileDao.java @@ -0,0 +1,79 @@ +package com.navinfo.outdoor.room; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.OnConflictStrategy; +import androidx.room.Query; +import androidx.room.Update; + +import java.util.List; + +/** + * 访问数据库操作的接口 + */ +@Dao +public interface ChargingPileDao { + /** + * 查询 + * @return + */ + @Query("SELECT * FROM pile") + List getChargingPile(); + + /** + * 添加 + * @param chargingPileEntities + */ + @Insert(onConflict = OnConflictStrategy.REPLACE) + void insertChargingPileEntity(ChargingPileEntity... chargingPileEntities); + + /** + * 更新 + * @param chargingPileEntities + */ + @Update + void updateChargingPileEntity(ChargingPileEntity... chargingPileEntities); + + /** + * 删除 + * @param chargingPileEntities + */ + @Delete + void deleteChargingPileEntity(ChargingPileEntity... chargingPileEntities); + + /** + *删除 + * @param chargingPileEntities + */ + @Delete + void deleteAll(List chargingPileEntities); + + /** + * 根据条件删除 + * @param taskStatus + */ + @Query("DELETE FROM pile where taskStatus=:taskStatus") + void deleteFormName(int taskStatus); + + + /** + * 全部删除 + */ + @Query("DELETE FROM pile") + void deleteAllChargingPileEntity(); + + /** + * 降序排列 + * @return + */ + @Query("SELECT * FROM pile ORDER BY pileId DESC") + List getAllChargingPileEntity(); + + @Query("SELECT * FROM pile where userId = :userId") + ChargingPileEntity queryChargingPileEntity(int userId); + + @Query("DELETE FROM pile where userId = :userId") + void deleteChargingPileEntity(int userId); + +} diff --git a/app/src/main/java/com/navinfo/outdoor/room/ChargingPileEntity.java b/app/src/main/java/com/navinfo/outdoor/room/ChargingPileEntity.java new file mode 100644 index 0000000..2deca23 --- /dev/null +++ b/app/src/main/java/com/navinfo/outdoor/room/ChargingPileEntity.java @@ -0,0 +1,196 @@ +package com.navinfo.outdoor.room; + +import androidx.room.Entity; +import androidx.room.ForeignKey; +import androidx.room.PrimaryKey; +import androidx.room.TypeConverters; + +import com.navinfo.outdoor.bean.Info; +import com.navinfo.outdoor.util.PhotoInfoConverter; + +import java.util.List; + +import static androidx.room.ForeignKey.CASCADE; + +/** + * 充电桩的表结构 + * PoiEntity实体类的id和ChargingPileEntity实体类的pileId相关联 + * 注解中包含Delete = CASCADE, 你可以告诉SQLite,如果相应的PoiEntity实例被删除,那么删除这个PoiEntity下的所有ChargingPileEntity。 + */ +@Entity(tableName = "pile", foreignKeys = @ForeignKey(entity = PoiEntity.class,parentColumns = "id",childColumns = "pileId",onDelete =CASCADE)) +public class ChargingPileEntity { + @PrimaryKey(autoGenerate = true) // 设置主键,并且自动生长 + private int pileId; + private int pid; //采集id 保存本地或提交数据时时返回 + private int taskId;//任务id + private int userId;//用户id + private String createTime; //创建时间/采集时间 + private String name;//名称 + private String describe;//任务描述 + private String address;//地址 + private String telPhone;//电话 + private String memo;//备注 + private double precision;//金额 + private String photo;//照片信息 + //ROOM不支持直接存储集合 + @TypeConverters(PhotoInfoConverter.class) + private List photoInfo;//照片信息 + private int existence;//是否存在 + private String x;//经度 + private String y;//纬度 + private String detail;//深度信息 + private int taskStatus;//任务状态 0.待提交,1.已提交,2 已领取 + private int type;//0.poi,1.道路,2.充电站,3.其他 + + public int getPileId() { + return pileId; + } + + public void setPileId(int pileId) { + this.pileId = pileId; + } + public int getType() { + return type; + } + + public void setType(int type) { + this.type = type; + } + + public int getTaskStatus() { + return taskStatus; + } + + public void setTaskStatus(int taskStatus) { + this.taskStatus = taskStatus; + } + + public int getPid() { + return pid; + } + + public void setPid(int pid) { + this.pid = pid; + } + + public int getTaskId() { + return taskId; + } + + public void setTaskId(int taskId) { + this.taskId = taskId; + } + + public int getUserId() { + return userId; + } + + public void setUserId(int userId) { + this.userId = userId; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDescribe() { + return describe; + } + + public void setDescribe(String describe) { + this.describe = describe; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getTelPhone() { + return telPhone; + } + + public void setTelPhone(String telPhone) { + this.telPhone = telPhone; + } + + public String getMemo() { + return memo; + } + + public void setMemo(String memo) { + this.memo = memo; + } + + public double getPrecision() { + return precision; + } + + public void setPrecision(double precision) { + this.precision = precision; + } + + public String getPhoto() { + return photo; + } + + public void setPhoto(String photo) { + this.photo = photo; + } + + public List getPhotoInfo() { + return photoInfo; + } + + public void setPhotoInfo(List infoList) { + this.photoInfo = infoList; + } + + public int getExistence() { + return existence; + } + + public void setExistence(int existence) { + this.existence = existence; + } + + public String getX() { + return x; + } + + public void setX(String x) { + this.x = x; + } + + public String getY() { + return y; + } + + public void setY(String y) { + this.y = y; + } + + public String getDetail() { + return detail; + } + + public void setDetail(String detail) { + this.detail = detail; + } + +} diff --git a/app/src/main/java/com/navinfo/outdoor/room/PoiDatabase.java b/app/src/main/java/com/navinfo/outdoor/room/PoiDatabase.java index 8bd223d..54b3393 100644 --- a/app/src/main/java/com/navinfo/outdoor/room/PoiDatabase.java +++ b/app/src/main/java/com/navinfo/outdoor/room/PoiDatabase.java @@ -11,7 +11,7 @@ import androidx.sqlite.db.SupportSQLiteDatabase; import com.navinfo.outdoor.api.Constant; -@Database(entities = {PoiEntity.class}, version = 1, exportSchema = false) +@Database(entities = {PoiEntity.class,ChargingPileEntity.class}, version = 1, exportSchema = false) public abstract class PoiDatabase extends RoomDatabase { private static final String DB_NAME = "navinfo.db"; private static volatile PoiDatabase instance; @@ -59,5 +59,6 @@ public abstract class PoiDatabase extends RoomDatabase { }; public abstract PoiDao getPoiDao(); + public abstract ChargingPileDao getChargingPileDao(); } diff --git a/app/src/main/java/com/navinfo/outdoor/room/PoiEntity.java b/app/src/main/java/com/navinfo/outdoor/room/PoiEntity.java index 0592b6a..79e1a54 100644 --- a/app/src/main/java/com/navinfo/outdoor/room/PoiEntity.java +++ b/app/src/main/java/com/navinfo/outdoor/room/PoiEntity.java @@ -10,7 +10,9 @@ import com.navinfo.outdoor.util.PhotoInfoConverter; import java.io.Serializable; import java.util.List; -//poi 的实体类 +/** + * poi, 道路,充电站,其他的表结构 + */ @Entity(tableName = "poi") public class PoiEntity implements Serializable { @PrimaryKey(autoGenerate = true) // 设置主键,并且自动生长 @@ -20,10 +22,10 @@ public class PoiEntity implements Serializable { private int taskId;//任务id private int userId;//用户id private String createTime; //创建时间/采集时间 - private String name;//poi名称 + private String name;//名称 private String describe;//任务描述 - private String address;//poi地址 - private String telPhone;//poi电话 + private String address;//地址 + private String telPhone;//电话 private String memo;//备注 private double precision;//金额 private String photo;//照片信息 diff --git a/app/src/main/res/drawable/canuse.png b/app/src/main/res/drawable/canuse.png new file mode 100644 index 0000000..11682c9 Binary files /dev/null and b/app/src/main/res/drawable/canuse.png differ diff --git a/app/src/main/res/drawable/chargeaim.png b/app/src/main/res/drawable/chargeaim.png new file mode 100644 index 0000000..2e9283b Binary files /dev/null and b/app/src/main/res/drawable/chargeaim.png differ diff --git a/app/src/main/res/drawable/chartall.png b/app/src/main/res/drawable/chartall.png new file mode 100644 index 0000000..5a9600e Binary files /dev/null and b/app/src/main/res/drawable/chartall.png differ diff --git a/app/src/main/res/drawable/equipnum.png b/app/src/main/res/drawable/equipnum.png new file mode 100644 index 0000000..7d84e71 Binary files /dev/null and b/app/src/main/res/drawable/equipnum.png differ diff --git a/app/src/main/res/drawable/equipsign.png b/app/src/main/res/drawable/equipsign.png new file mode 100644 index 0000000..d347f2e Binary files /dev/null and b/app/src/main/res/drawable/equipsign.png differ diff --git a/app/src/main/res/drawable/explain.png b/app/src/main/res/drawable/explain.png new file mode 100644 index 0000000..8b5e3bd Binary files /dev/null and b/app/src/main/res/drawable/explain.png differ diff --git a/app/src/main/res/drawable/explain1.png b/app/src/main/res/drawable/explain1.png new file mode 100644 index 0000000..35164bf Binary files /dev/null and b/app/src/main/res/drawable/explain1.png differ diff --git a/app/src/main/res/drawable/name.png b/app/src/main/res/drawable/name.png new file mode 100644 index 0000000..02d10ac Binary files /dev/null and b/app/src/main/res/drawable/name.png differ diff --git a/app/src/main/res/drawable/parknum.png b/app/src/main/res/drawable/parknum.png new file mode 100644 index 0000000..2d41425 Binary files /dev/null and b/app/src/main/res/drawable/parknum.png differ diff --git a/app/src/main/res/drawable/parkprice.png b/app/src/main/res/drawable/parkprice.png new file mode 100644 index 0000000..92257c9 Binary files /dev/null and b/app/src/main/res/drawable/parkprice.png differ diff --git a/app/src/main/res/layout/charging_pile_fragment.xml b/app/src/main/res/layout/charging_pile_fragment.xml new file mode 100644 index 0000000..19edf5f --- /dev/null +++ b/app/src/main/res/layout/charging_pile_fragment.xml @@ -0,0 +1,659 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +