diff --git a/app/build.gradle b/app/build.gradle
index 1307bc8..3e90d45 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/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index b19ea0d..4eab927 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -47,7 +47,6 @@
android:supportsRtl="true"
android:theme="@style/Theme.WhiteScreen"
tools:targetApi="n">
-
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 7043b58..441f146 100644
--- a/app/src/main/java/com/navinfo/outdoor/activity/FragmentManagement.java
+++ b/app/src/main/java/com/navinfo/outdoor/activity/FragmentManagement.java
@@ -22,6 +22,7 @@ import com.navinfo.outdoor.fragment.MapDownloadFragment;
import com.navinfo.outdoor.fragment.MessageFragment;
import com.navinfo.outdoor.fragment.MineFragment;
import com.navinfo.outdoor.fragment.OtherFragment;
+import com.navinfo.outdoor.fragment.PhotoFragment;
import com.navinfo.outdoor.fragment.PoiFragment;
import com.navinfo.outdoor.fragment.PoiTaskFragment;
import com.navinfo.outdoor.fragment.PrivilegeFragment;
@@ -37,6 +38,7 @@ import com.navinfo.outdoor.fragment.TaskPrefectureFragment;
import com.navinfo.outdoor.fragment.RegisterFragment;
import com.navinfo.outdoor.fragment.TreasureFragment;
import com.navinfo.outdoor.fragment.UserAttestationFragment;
+import com.navinfo.outdoor.fragment.VideoFragment;
import com.navinfo.outdoor.fragment.WithdrawFragment;
import com.gyf.immersionbar.ImmersionBar;
import com.navinfo.outdoor.fragment.WithdrawalRecordFragment;
@@ -87,6 +89,8 @@ public class FragmentManagement extends BaseActivity {
private OtherFragment otherFragment;//寻宝-上传-其他的fragment -33
private ChargingPileFragment chargingPileFragment;//寻宝-上传-充电站-充电桩的fragment-34
private MessageFragment messageFragment;//寻宝 -消息的fragment -35
+ private PhotoFragment photoFragment;//查看详情-图片-36
+ private VideoFragment videoFragment;//查看详情-视频-37
@Override
protected int getLayout() {
@@ -174,9 +178,12 @@ public class FragmentManagement extends BaseActivity {
fragmentTransaction.hide(otherFragment);
if (chargingPileFragment!=null)//寻宝-上传-充电站-充电桩的fragment-34
fragmentTransaction.hide(chargingPileFragment);
- if (messageFragment!=null){//寻宝 -消息的Fragment -35
+ if (messageFragment!=null)//寻宝 -消息的Fragment -35
fragmentTransaction.hide(messageFragment);
- }
+ if (photoFragment!=null)//查看详情-图片 36
+ fragmentTransaction.hide(photoFragment);
+ if (videoFragment!=null)//查看详情-视频 37
+ fragmentTransaction.hide(videoFragment);
}
@@ -470,6 +477,26 @@ public class FragmentManagement extends BaseActivity {
fragmentTransaction.show(messageFragment);
}
break;
+ case 36://查看详情-图片
+ if (photoFragment == null){
+ Bundle bundle = new Bundle();
+ bundle.putSerializable("showPoiEntity",getIntent().getSerializableExtra("showPoiEntity"));
+ photoFragment = PhotoFragment.newInstance(bundle);
+ fragmentTransaction.add(R.id.frame_layout,photoFragment);
+ }else {
+ fragmentTransaction.show(photoFragment);
+ }
+ break;
+ case 37://查看详情-视频
+ if (videoFragment==null){
+ Bundle bundle = new Bundle();
+ bundle.putSerializable("showPoiEntity",getIntent().getSerializableExtra("showPoiEntity"));
+ videoFragment=VideoFragment.newInstance(bundle);
+ fragmentTransaction.add(R.id.frame_layout,videoFragment);
+ }else {
+ fragmentTransaction.show(videoFragment);
+ }
+ break;
}
fragmentTransaction.commit();
}
diff --git a/app/src/main/java/com/navinfo/outdoor/activity/LoginActivity.java b/app/src/main/java/com/navinfo/outdoor/activity/LoginActivity.java
index e113d62..a7de253 100644
--- a/app/src/main/java/com/navinfo/outdoor/activity/LoginActivity.java
+++ b/app/src/main/java/com/navinfo/outdoor/activity/LoginActivity.java
@@ -5,6 +5,7 @@ import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.res.Configuration;
+import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
@@ -38,6 +39,18 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
private android.widget.EditText etLoginPaw;
private SharedPreferences.Editor navInfoEditor;
private CheckBox cbStatement;
+ private Handler handler=new Handler(new Handler.Callback() {
+ @Override
+ public boolean handleMessage(@NonNull Message msg) {
+ if (msg.what==0x103){
+ if (btnLogin!=null){
+ btnLogin.setEnabled(true);
+ }
+ }
+ return false;
+ }
+ });
+ private Button btnLogin;
@Override
public void onStart() {
@@ -79,7 +92,7 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
etLoginPaw = findViewById(R.id.et_login_paw);
TextView tvForgetPaw = findViewById(R.id.tv_forget_paw);
cbStatement = findViewById(R.id.iv_login_check);
- Button btnLogin = findViewById(R.id.btn_login);
+ btnLogin = findViewById(R.id.btn_login);
btnLogin.setOnClickListener(this);
TextView tvStatement = findViewById(R.id.tv_statement);
tvStatement.setOnClickListener(this);
@@ -110,6 +123,10 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
startActivity(forgetPaw);
break;
case R.id.btn_login:
+ btnLogin.setEnabled(false);
+ Message message = new Message();
+ message.what=0x103;
+ handler.sendMessageDelayed(message,500);
String name = etLoginName.getText().toString().trim();
if (name.equals("")) {
Toast.makeText(this, "请输入账号", Toast.LENGTH_SHORT).show();
diff --git a/app/src/main/java/com/navinfo/outdoor/activity/PhotoAlbumActivity.java b/app/src/main/java/com/navinfo/outdoor/activity/PhotoAlbumActivity.java
deleted file mode 100644
index 577cf4c..0000000
--- a/app/src/main/java/com/navinfo/outdoor/activity/PhotoAlbumActivity.java
+++ /dev/null
@@ -1,78 +0,0 @@
-package com.navinfo.outdoor.activity;
-
-import androidx.recyclerview.widget.GridLayoutManager;
-import android.view.View;
-import android.widget.ImageView;
-import android.widget.TextView;
-import com.jcodecraeer.xrecyclerview.XRecyclerView;
-import com.navinfo.outdoor.R;
-import com.navinfo.outdoor.adapter.PhotoAlbumAdapter;
-import com.navinfo.outdoor.base.BaseActivity;
-import com.navinfo.outdoor.room.PoiEntity;
-import com.navinfo.outdoor.util.AWMp4ParserHelper;
-
-import java.io.File;
-import java.io.Serializable;
-import java.util.List;
-
-public class PhotoAlbumActivity extends BaseActivity implements View.OnClickListener {
-
- private android.widget.ImageView ivPhotoFinal;
- private android.widget.TextView tvPhotoAlbumDelete,tvPhotoChoose;
- private com.jcodecraeer.xrecyclerview.XRecyclerView photoAlbumRecycler;
- private PhotoAlbumAdapter photoAlbumAdapter;
- private List fileListByUUID;
-
- @Override
- protected int getLayout() {
- return R.layout.activity_photo_album;
- }
-
- @Override
- protected void initView() {
- super.initView();
- PoiEntity showPoiEntity = (PoiEntity) getIntent().getSerializableExtra("showPoiEntity");
- if (showPoiEntity!=null){
- String id = showPoiEntity.getId();
- if (showPoiEntity.getRecord_way()==1){
- fileListByUUID = AWMp4ParserHelper.getInstance().getVideoFileListByUUID(id);
- }else if (showPoiEntity.getRecord_way()==2){
- fileListByUUID=AWMp4ParserHelper.getInstance().getJPGFileListByUUID(id);
-
- }
- }
- ivPhotoFinal = (ImageView) findViewById(R.id.iv_photo_final);
- ivPhotoFinal.setOnClickListener(this::onClick);
- tvPhotoChoose = (TextView) findViewById(R.id.tv_photo_choose);
- tvPhotoChoose.setOnClickListener(this::onClick);
- tvPhotoAlbumDelete = (TextView) findViewById(R.id.tv_photo_album_delete);
- tvPhotoAlbumDelete.setOnClickListener(this::onClick);
- photoAlbumRecycler = (XRecyclerView) findViewById(R.id.photo_album_recycler);
- photoAlbumRecycler.setLayoutManager(new GridLayoutManager(this,4));
- photoAlbumAdapter = new PhotoAlbumAdapter(fileListByUUID,this);
- photoAlbumRecycler.setAdapter(photoAlbumAdapter);
- }
-
- @Override
- protected void initData() {
- super.initData();
- }
-
- @Override
- public void onClick(View v) {
- switch (v.getId()) {
- case R.id.iv_photo_final:
- finish();
- break;
-
- case R.id.tv_photo_album_delete:
- //photoAlbumAdapter.setDeletePhoto();
- break;
-
- case R.id.tv_photo_choose:
-
- break;
-
- }
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/navinfo/outdoor/adapter/PhotoAdapter.java b/app/src/main/java/com/navinfo/outdoor/adapter/PhotoAdapter.java
new file mode 100644
index 0000000..5e0a122
--- /dev/null
+++ b/app/src/main/java/com/navinfo/outdoor/adapter/PhotoAdapter.java
@@ -0,0 +1,84 @@
+package com.navinfo.outdoor.adapter;
+
+import android.content.Context;
+import android.net.Uri;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.CheckBox;
+import android.widget.CompoundButton;
+import android.widget.ImageView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.navinfo.outdoor.R;
+import com.navinfo.outdoor.util.AWMp4ParserHelper;
+
+import org.jetbrains.annotations.NotNull;
+
+import java.io.File;
+import java.util.List;
+
+/**
+ * 查看拍照成果的activity
+ */
+
+public class PhotoAdapter extends RecyclerView.Adapter {
+ private List files ;
+ private Context context;
+
+ public PhotoAdapter(List files, Context context) {
+ this.files = files;
+ this.context = context;
+ }
+ @NotNull
+ @Override
+ public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View inflate = LayoutInflater.from(context).inflate(R.layout.photo_item, parent, false);
+ return new ViewHolder(inflate);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
+ File file= files.get(position);
+ if (file.exists()) {
+ AWMp4ParserHelper.getInstance().loadFirstWithGlide(context, Uri.fromFile(file).toString(), holder.ivPhoto, 500);
+ }
+ holder.cbPhoto.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+ @Override
+ public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+
+ }
+ });
+
+
+ }
+ @Override
+ public int getItemCount() {
+ return files.size();
+ }
+
+ static class ViewHolder extends RecyclerView.ViewHolder {
+ private ImageView ivPhoto;
+ private CheckBox cbPhoto;
+
+ public ViewHolder(@NonNull @NotNull View itemView) {
+ super(itemView);
+ ivPhoto = itemView.findViewById(R.id.iv_photo);
+ cbPhoto = itemView.findViewById(R.id.check_photo);
+ }
+ }
+
+ public photoClickItem photoClickItem;
+
+ public void setPhotoClickItem(photoClickItem photoClickItem) {
+ this.photoClickItem = photoClickItem;
+ }
+
+ public interface photoClickItem {
+ void item(int aInt);
+ }
+
+
+}
diff --git a/app/src/main/java/com/navinfo/outdoor/adapter/PhotoAlbumAdapter.java b/app/src/main/java/com/navinfo/outdoor/adapter/PhotoAlbumAdapter.java
deleted file mode 100644
index 3aa87d4..0000000
--- a/app/src/main/java/com/navinfo/outdoor/adapter/PhotoAlbumAdapter.java
+++ /dev/null
@@ -1,117 +0,0 @@
-package com.navinfo.outdoor.adapter;
-
-import android.content.Context;
-import android.net.Uri;
-import android.os.Handler;
-import android.os.Message;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.CheckBox;
-import android.widget.CompoundButton;
-import android.widget.ImageView;
-import androidx.annotation.NonNull;
-import androidx.recyclerview.widget.RecyclerView;
-import com.bumptech.glide.Glide;
-import com.navinfo.outdoor.R;
-import com.navinfo.outdoor.room.PoiDatabase;
-import com.navinfo.outdoor.room.PoiEntity;
-import com.navinfo.outdoor.util.AWMp4ParserHelper;
-
-import org.jetbrains.annotations.NotNull;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-/**
- * 查看拍照成果的activity
- */
-
-public class PhotoAlbumAdapter extends RecyclerView.Adapter {
- private List files ;
- private Context context;
-
- public PhotoAlbumAdapter(List files, Context context) {
- this.files = files;
- this.context = context;
- }
-
-
-
- Handler handler = new Handler() {
- @Override
- public void handleMessage(@NonNull @NotNull Message msg) {
- super.handleMessage(msg);
- switch (msg.what) {
- case 0x107:
- notifyDataSetChanged();
- break;
- }
- }
- };
-
- @NonNull
- @NotNull
- @Override
- public ViewHolder onCreateViewHolder(@NonNull @NotNull ViewGroup parent, int viewType) {
- View inflate = LayoutInflater.from(context).inflate(R.layout.photo_album_item, parent, false);
- return new ViewHolder(inflate);
- }
-
- @Override
- public void onBindViewHolder(@NonNull @NotNull ViewHolder holder, int position) {
- File file= files.get(position);
- if (file.exists()) {
- AWMp4ParserHelper.getInstance().loadFirstWithGlide(context, Uri.fromFile(file).toString(), holder.ivPhoto, 500);
- }
-
- //点击每个条目
- holder.itemView.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- if (photoClickItem != null) {
- photoClickItem.item(position);
- }
- }
- });
- holder.itemView.setOnLongClickListener(new View.OnLongClickListener() {
- @Override
- public boolean onLongClick(View v) {
- holder.cbPhoto.setVisibility(View.VISIBLE);
- holder.cbPhoto.setChecked(true);
- return false;
- }
- });
-
-
- }
- @Override
- public int getItemCount() {
- return files.size();
- }
-
- class ViewHolder extends RecyclerView.ViewHolder {
- private ImageView ivPhoto;
- private CheckBox cbPhoto;
-
- public ViewHolder(@NonNull @NotNull View itemView) {
- super(itemView);
- ivPhoto = itemView.findViewById(R.id.iv_photo_album);
- cbPhoto = itemView.findViewById(R.id.cb_photo_album);
- }
- }
-
- public photoClickItem photoClickItem;
-
- public void setPhotoClickItem(photoClickItem photoClickItem) {
- this.photoClickItem = photoClickItem;
- }
-
- public interface photoClickItem {
- void item(int aInt);
- }
-
-
-}
diff --git a/app/src/main/java/com/navinfo/outdoor/adapter/VideoAdapter.java b/app/src/main/java/com/navinfo/outdoor/adapter/VideoAdapter.java
new file mode 100644
index 0000000..5e20f3b
--- /dev/null
+++ b/app/src/main/java/com/navinfo/outdoor/adapter/VideoAdapter.java
@@ -0,0 +1,84 @@
+package com.navinfo.outdoor.adapter;
+
+import android.content.Context;
+import android.net.Uri;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.CheckBox;
+import android.widget.CompoundButton;
+import android.widget.ImageView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.navinfo.outdoor.R;
+import com.navinfo.outdoor.util.AWMp4ParserHelper;
+
+import org.jetbrains.annotations.NotNull;
+
+import java.io.File;
+import java.util.List;
+
+/**
+ * 查看录像成果的activity
+ */
+
+public class VideoAdapter extends RecyclerView.Adapter {
+ private List files ;
+ private Context context;
+
+ public VideoAdapter(List files, Context context) {
+ this.files = files;
+ this.context = context;
+ }
+
+ @NotNull
+ @Override
+ public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View inflate = LayoutInflater.from(context).inflate(R.layout.video_item, parent, false);
+ return new ViewHolder(inflate);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
+ File file= files.get(position);
+ if (file.exists()) {
+ AWMp4ParserHelper.getInstance().loadFirstWithGlide(context, Uri.fromFile(file).toString(), holder.ivVideo, 500);
+ }
+
+ holder.cbVideo.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+ @Override
+ public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+
+ }
+ });
+ }
+ @Override
+ public int getItemCount() {
+ return files.size();
+ }
+
+ class ViewHolder extends RecyclerView.ViewHolder {
+ private ImageView ivVideo;
+ private CheckBox cbVideo;
+
+ public ViewHolder(@NonNull @NotNull View itemView) {
+ super(itemView);
+ ivVideo = itemView.findViewById(R.id.iv_video);
+ cbVideo = itemView.findViewById(R.id.check_video);
+ }
+ }
+
+ public photoClickItem photoClickItem;
+
+ public void setPhotoClickItem(photoClickItem photoClickItem) {
+ this.photoClickItem = photoClickItem;
+ }
+
+ public interface photoClickItem {
+ void item(int aInt);
+ }
+
+
+}
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 19f3350..47ada11 100644
--- a/app/src/main/java/com/navinfo/outdoor/api/Constant.java
+++ b/app/src/main/java/com/navinfo/outdoor/api/Constant.java
@@ -35,7 +35,6 @@ public class Constant {
public static final String GET_ERR_MESSAGE2 = "manifest 中配置的 key 不正确";
public static final String GET_ERR_MESSAGE3 = "自动加载libtencentloc.so失败";
-
public static final String ROOT_FOLDER = SdkFolderCreate.getSDPath() + "/navinfoOutDoor";
public static String BASE_FOLDER = ROOT_FOLDER;
// 保存图片的目录
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 eb1b2f0..9d986b7 100644
--- a/app/src/main/java/com/navinfo/outdoor/fragment/ChargingStationFragment.java
+++ b/app/src/main/java/com/navinfo/outdoor/fragment/ChargingStationFragment.java
@@ -900,10 +900,11 @@ public class ChargingStationFragment extends BaseDrawerFragment implements View.
private void saveChargingPileByChargingStation(PoiEntity chargingStationPoiEntity) {
if (chargingStationPoiEntity != null) {
List chargingPileEntityList = PoiDatabase.getInstance(getActivity()).getChargingPileDao().getChargingPileByStationId(chargingStationPoiEntity.getId());
+ PoiEntity poiEntity = PoiDatabase.getInstance(getActivity()).getPoiDao().getPoiEntity(chargingStationPoiEntity.getId());
if (chargingPileEntityList != null && !chargingPileEntityList.isEmpty()) {
for (ChargingPileEntity pileEntity : chargingPileEntityList) {
if (pileEntity.getBodyId() == 0) {
- saveChargingPileByWork(pileEntity);
+ saveChargingPileByWork(pileEntity,poiEntity.getBodyId());
}
}
}
@@ -1357,14 +1358,14 @@ public class ChargingStationFragment extends BaseDrawerFragment implements View.
/**
* 上传充电桩数据到服务端
*/
- private void saveChargingPileByWork(ChargingPileEntity chargingPileEntity) {
+ private void saveChargingPileByWork(ChargingPileEntity chargingPileEntity, int bodyId) {
HttpParams httpParams = new HttpParams();
httpParams.put("taskId", chargingPileEntity.getTaskId());
httpParams.put("name", chargingPileEntity.getName());
httpParams.put("existence", chargingPileEntity.getExist());
httpParams.put("geo", chargingPileEntity.getP());
httpParams.put("memo", chargingPileEntity.getMemo());
- httpParams.put("ffid", chargingPileEntity.getFid());
+ httpParams.put("ffid", bodyId);
HashMap hashMap = new HashMap<>();
hashMap.put("cp_openType", chargingPileEntity.getCp_openType());
hashMap.put("cp_floor", chargingPileEntity.getCp_floor());
diff --git a/app/src/main/java/com/navinfo/outdoor/fragment/PhotoFragment.java b/app/src/main/java/com/navinfo/outdoor/fragment/PhotoFragment.java
new file mode 100644
index 0000000..1c2b550
--- /dev/null
+++ b/app/src/main/java/com/navinfo/outdoor/fragment/PhotoFragment.java
@@ -0,0 +1,85 @@
+package com.navinfo.outdoor.fragment;
+
+import android.os.Bundle;
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import androidx.recyclerview.widget.GridLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.jcodecraeer.xrecyclerview.XRecyclerView;
+import com.navinfo.outdoor.R;
+import com.navinfo.outdoor.adapter.PhotoAdapter;
+import com.navinfo.outdoor.base.BaseFragment;
+import com.navinfo.outdoor.room.PoiEntity;
+import com.navinfo.outdoor.util.AWMp4ParserHelper;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * 图片-fragment
+ */
+public class PhotoFragment extends BaseFragment implements View.OnClickListener {
+
+
+ private List fileArrayList;
+
+ public static PhotoFragment newInstance(Bundle bundle) {
+ PhotoFragment fragment = new PhotoFragment();
+ fragment.setArguments(bundle);
+ return fragment;
+ }
+
+ @Override
+ protected int getLayout() {
+ return R.layout.fragment_photo;
+ }
+
+ @Override
+ protected void initView() {
+ super.initView();
+ PoiEntity showPoiEntity = (PoiEntity) Objects.requireNonNull(getActivity()).getIntent().getSerializableExtra("showPoiEntity");
+
+ if (showPoiEntity!=null){
+ String id = showPoiEntity.getId();
+ if (showPoiEntity.getRecord_way()==2){//連拍
+ fileArrayList = new ArrayList<>();
+ List fileListByUUID = AWMp4ParserHelper.getInstance().getVideoFileListByUUID(id);
+ for (int i = 0; i < fileListByUUID.size(); i++) {
+ if (!fileListByUUID.get(i).getPath().contains(".txt")){
+ fileArrayList.add(fileListByUUID.get(i));
+ }
+ }
+ }
+ }
+ ImageView ivPhotoFinal = (ImageView) findViewById(R.id.iv_photo_final);
+ ivPhotoFinal.setOnClickListener(this);
+ TextView tvPhotoChoose = (TextView) findViewById(R.id.tv_photo_choose);
+ tvPhotoChoose.setOnClickListener(this);
+ TextView tvPhotoAlbumDelete = (TextView) findViewById(R.id.tv_photo_album_delete);
+ tvPhotoAlbumDelete.setOnClickListener(this);
+ RecyclerView photoRecycler = findViewById(R.id.photo_album_recycler);
+ photoRecycler.setLayoutManager(new GridLayoutManager(getContext(),2));
+ PhotoAdapter photoAdapter = new PhotoAdapter(fileArrayList, getContext());
+ photoRecycler.setAdapter(photoAdapter);
+ }
+
+ @Override
+ protected void initData() {
+ super.initData();
+ }
+
+ @Override
+ public void onClick(View v) {
+ switch (v.getId()){
+ case R.id.iv_photo_final:
+ Objects.requireNonNull(getActivity()).finish();
+ break;
+
+ }
+ }
+}
diff --git a/app/src/main/java/com/navinfo/outdoor/fragment/PoiVideoFragment.java b/app/src/main/java/com/navinfo/outdoor/fragment/PoiVideoFragment.java
index c351fe2..5b5450a 100644
--- a/app/src/main/java/com/navinfo/outdoor/fragment/PoiVideoFragment.java
+++ b/app/src/main/java/com/navinfo/outdoor/fragment/PoiVideoFragment.java
@@ -2,24 +2,17 @@ package com.navinfo.outdoor.fragment;
import android.content.Intent;
import android.content.SharedPreferences;
-import android.graphics.Bitmap;
-import android.media.MediaMetadataRetriever;
import android.net.Uri;
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.EditText;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.RadioButton;
import android.widget.RadioGroup;
-import android.widget.RelativeLayout;
-import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
@@ -42,7 +35,6 @@ import com.kongzue.dialog.v3.MessageDialog;
import com.lzy.okgo.model.HttpParams;
import com.navinfo.outdoor.R;
import com.navinfo.outdoor.activity.FragmentManagement;
-import com.navinfo.outdoor.activity.PhotoAlbumActivity;
import com.navinfo.outdoor.activity.PictureActivity;
import com.navinfo.outdoor.activity.PicturesActivity;
import com.navinfo.outdoor.api.Constant;
@@ -65,12 +57,13 @@ import com.tencent.tencentmap.mapsdk.maps.model.BitmapDescriptorFactory;
import com.tencent.tencentmap.mapsdk.maps.model.LatLng;
import com.tencent.tencentmap.mapsdk.maps.model.Marker;
import com.tencent.tencentmap.mapsdk.maps.model.MarkerOptions;
+
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
+
import java.io.File;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
-import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import java.util.Objects;
@@ -173,9 +166,9 @@ public class PoiVideoFragment extends BaseDrawerFragment implements View.OnClick
Button btnPoiVideoUpload = findViewById(R.id.btn_poi_video_upload);
btnPoiVideoUpload.setOnClickListener(this);
rgType = (RadioGroup) findViewById(R.id.rg_type);
- rbCar =findViewById(R.id.rb_car);
- rbBicycle =findViewById(R.id.rb_bicycle);
- rbWalking =findViewById(R.id.rb_walking);
+ rbCar = findViewById(R.id.rb_car);
+ rbBicycle = findViewById(R.id.rb_bicycle);
+ rbWalking = findViewById(R.id.rb_walking);
rbManual = findViewById(R.id.rb_manual);
tvPhotoAlbum = findViewById(R.id.tv_photo_album);
tvPhotoAlbum.setOnClickListener(this::onClick);
@@ -188,7 +181,7 @@ public class PoiVideoFragment extends BaseDrawerFragment implements View.OnClick
case R.id.rb_bicycle:
case R.id.rb_walking:
tvPicture.setVisibility(View.VISIBLE);
- break;
+ break;
case R.id.rb_manual:
tvPicture.setVisibility(View.GONE);
break;
@@ -239,7 +232,7 @@ public class PoiVideoFragment extends BaseDrawerFragment implements View.OnClick
}
int work_type = showPoiEntity.getWork_type();
showPictureType(work_type);
- if (work_type==3){
+ if (work_type == 3) {
tvPicture.setVisibility(View.GONE);
}
String describe = showPoiEntity.getMemo();//任务描述
@@ -268,7 +261,7 @@ public class PoiVideoFragment extends BaseDrawerFragment implements View.OnClick
}
} else if (record_way == 2) {//连拍
isRequest = 0x102;
- if (work_type==3){
+ if (work_type == 3) {
showWorkType(work_type);
}
tvPicture.setEnabled(false);
@@ -296,7 +289,7 @@ public class PoiVideoFragment extends BaseDrawerFragment implements View.OnClick
}
private void showWorkType(int work_type) {
- switch (work_type){
+ switch (work_type) {
case 0:
rgType.setEnabled(false);
rbCar.setEnabled(true);
@@ -351,7 +344,6 @@ public class PoiVideoFragment extends BaseDrawerFragment implements View.OnClick
}
}
-
@Override
public void onClick(View v) {
switch (v.getId()) {
@@ -364,7 +356,7 @@ public class PoiVideoFragment extends BaseDrawerFragment implements View.OnClick
File filePath = AWMp4ParserHelper.getInstance().obtainJPGFilePath(new File(Constant.PICTURE_FOLDER, showPoiEntity.getId()).getAbsolutePath());
intents.putExtra(Constant.INTENT_JPG_PATH, filePath.getAbsolutePath());
int pictureType = getPictureType();
- intents.putExtra("type",pictureType);
+ intents.putExtra("type", pictureType);
intents.putExtra("poiEntity", showPoiEntity);
startActivityForResult(intents, 0x102);
break;
@@ -413,15 +405,25 @@ public class PoiVideoFragment extends BaseDrawerFragment implements View.OnClick
}
break;
case R.id.tv_photo_album:
- if (tvPicture.isEnabled()){
+ if (tvPicture.isEnabled() && tvPictures.isEnabled()) {//如果两个都有
+ Toast.makeText(getActivity(), "请拍照或者录像!", Toast.LENGTH_SHORT).show();
+ return;
+ }
+ if (tvPicture.isEnabled()) {
showPoiEntity.setRecord_way(1);
+ Intent photoAlbumIntent = new Intent(getActivity(), FragmentManagement.class);
+ photoAlbumIntent.putExtra("tag", 37);
+ photoAlbumIntent.putExtra("showPoiEntity", showPoiEntity);
+ startActivity(photoAlbumIntent);
}
- if (tvPictures.isEnabled()){
+ if (tvPictures.isEnabled()) {
showPoiEntity.setRecord_way(2);
+ Intent photoAlbumIntent = new Intent(getActivity(), FragmentManagement.class);
+ photoAlbumIntent.putExtra("tag", 36);
+ photoAlbumIntent.putExtra("showPoiEntity", showPoiEntity);
+ startActivity(photoAlbumIntent);
}
- Intent photoAlbumIntent = new Intent(getActivity(), PhotoAlbumActivity.class);
- photoAlbumIntent.putExtra("showPoiEntity",showPoiEntity);
- startActivity(photoAlbumIntent);
+
break;
}
}
@@ -613,7 +615,7 @@ public class PoiVideoFragment extends BaseDrawerFragment implements View.OnClick
if (data != null && data.hasExtra(Constant.INTENT_PICTURES_PATH)) {
int type = data.getIntExtra("type", 0);
- if (type==3){
+ if (type == 3) {
showWorkType(type);
}
@@ -665,7 +667,7 @@ public class PoiVideoFragment extends BaseDrawerFragment implements View.OnClick
return 1;
} else if (rbWalking != null && rbWalking.isChecked()) {
return 2;
- } else if (rbManual !=null &&rbManual.isChecked()){
+ } else if (rbManual != null && rbManual.isChecked()) {
return 3;
}
return -1;
@@ -765,7 +767,7 @@ public class PoiVideoFragment extends BaseDrawerFragment implements View.OnClick
@Override
protected PoiEntity initPoiEntityByUI(PoiEntity poiEntity) {
String roadName = etRoadName.getText().toString().trim();
- if (roadName!= null&&!roadName.equals("")) {
+ if (roadName != null && !roadName.equals("")) {
poiEntity.setName(roadName + "");
} else {
DateFormat formatters = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
diff --git a/app/src/main/java/com/navinfo/outdoor/fragment/VideoFragment.java b/app/src/main/java/com/navinfo/outdoor/fragment/VideoFragment.java
new file mode 100644
index 0000000..6496144
--- /dev/null
+++ b/app/src/main/java/com/navinfo/outdoor/fragment/VideoFragment.java
@@ -0,0 +1,76 @@
+package com.navinfo.outdoor.fragment;
+
+import android.os.Bundle;
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import androidx.recyclerview.widget.GridLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.navinfo.outdoor.R;
+import com.navinfo.outdoor.adapter.VideoAdapter;
+import com.navinfo.outdoor.base.BaseFragment;
+import com.navinfo.outdoor.room.PoiEntity;
+import com.navinfo.outdoor.util.AWMp4ParserHelper;
+
+import java.io.File;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * 视频-fragment
+ */
+public class VideoFragment extends BaseFragment implements View.OnClickListener {
+
+ private List fileListByUUID;
+
+ public static VideoFragment newInstance(Bundle bundle) {
+ VideoFragment fragment = new VideoFragment();
+ fragment.setArguments(bundle);
+ return fragment;
+ }
+
+ @Override
+ protected int getLayout() {
+ return R.layout.fragment_video;
+ }
+
+ @Override
+ protected void initView() {
+ super.initView();
+ PoiEntity showPoiEntity = (PoiEntity) Objects.requireNonNull(getActivity()).getIntent().getSerializableExtra("showPoiEntity");
+ if (showPoiEntity != null) {
+ String id = showPoiEntity.getId();
+ if (showPoiEntity.getRecord_way() == 2) {
+ fileListByUUID = AWMp4ParserHelper.getInstance().getVideoFileListByUUID(id);
+ }
+ }
+ ImageView ivPhotoFinal =(ImageView) findViewById(R.id.iv_video_final);
+ ivPhotoFinal.setOnClickListener(this);
+ TextView tvPhotoChoose =(TextView) findViewById(R.id.tv_video_choose);
+ tvPhotoChoose.setOnClickListener(this);
+ TextView tvPhotoAlbumDelete =(TextView) findViewById(R.id.tv_video_album_delete);
+ tvPhotoAlbumDelete.setOnClickListener(this);
+ RecyclerView videoRecycler = findViewById(R.id.video_album_recycler);
+ videoRecycler.setLayoutManager(new GridLayoutManager(getContext(), 2));
+ VideoAdapter videoAdapter = new VideoAdapter(fileListByUUID, getContext());
+ videoRecycler.setAdapter(videoAdapter);
+
+ }
+
+ @Override
+ protected void initData() {
+ super.initData();
+ }
+
+ @Override
+ public void onClick(View v) {
+ switch (v.getId()) {
+ case R.id.iv_video_final:
+ Objects.requireNonNull(getActivity()).finish();
+ break;
+
+ }
+ }
+}
diff --git a/app/src/main/java/com/navinfo/outdoor/util/PoiSaveUtils.java b/app/src/main/java/com/navinfo/outdoor/util/PoiSaveUtils.java
index 8148191..6e57137 100644
--- a/app/src/main/java/com/navinfo/outdoor/util/PoiSaveUtils.java
+++ b/app/src/main/java/com/navinfo/outdoor/util/PoiSaveUtils.java
@@ -354,11 +354,13 @@ public class PoiSaveUtils {
boolean result = true;
if (chargingStationPoiEntity != null) {
List chargingPileEntityList = PoiDatabase.getInstance(mContext).getChargingPileDao().getChargingPileByStationId(chargingStationPoiEntity.getId());
+ PoiEntity poiEntity = PoiDatabase.getInstance(mContext).getPoiDao().getPoiEntity(chargingStationPoiEntity.getId());
+
if (chargingPileEntityList != null && !chargingPileEntityList.isEmpty()) {
// 依次上传充电桩数据,如果有一条数据未上传成功,则返回false
for (ChargingPileEntity pileEntity : chargingPileEntityList) {
if (pileEntity.getBodyId() == 0) {
- int saveResult = saveChargingPile2NetWork(pileEntity);
+ int saveResult = saveChargingPile2NetWork(pileEntity,poiEntity.getBodyId());
if (saveResult == 200) {
result = result & true;
} else {
@@ -375,14 +377,14 @@ public class PoiSaveUtils {
/**
* 保存充电桩数据到服务端
*/
- private int saveChargingPile2NetWork(ChargingPileEntity chargingPileEntity) {
+ private int saveChargingPile2NetWork(ChargingPileEntity chargingPileEntity, int bodyId) {
HttpParams httpParams = new HttpParams();
httpParams.put("taskId", chargingPileEntity.getTaskId());
httpParams.put("name", chargingPileEntity.getName());
httpParams.put("existence", chargingPileEntity.getExist());
httpParams.put("geo", chargingPileEntity.getP());
httpParams.put("memo", chargingPileEntity.getMemo());
- httpParams.put("ffid", chargingPileEntity.getFid());
+ httpParams.put("ffid", bodyId);
HashMap hashMap = new HashMap<>();
hashMap.put("cp_openType", chargingPileEntity.getCp_openType());
hashMap.put("cp_floor", chargingPileEntity.getCp_floor());
@@ -390,6 +392,7 @@ public class PoiSaveUtils {
hashMap.put("sign_exist", chargingPileEntity.getSign_exist());
httpParams.put("detail", String.valueOf(hashMap));
try {
+
Response execute = OkGoBuilder.getInstance()
.Builder(mContext)
.url(HttpInterface.SUBMIT_CSTASK)
diff --git a/app/src/main/res/layout/activity_photo_album.xml b/app/src/main/res/layout/fragment_photo.xml
similarity index 87%
rename from app/src/main/res/layout/activity_photo_album.xml
rename to app/src/main/res/layout/fragment_photo.xml
index d6a378f..66403ea 100644
--- a/app/src/main/res/layout/activity_photo_album.xml
+++ b/app/src/main/res/layout/fragment_photo.xml
@@ -3,8 +3,7 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
- android:layout_height="match_parent"
- tools:context=".activity.PhotoAlbumActivity">
+ android:layout_height="match_parent">
+ android:text="查看图片" />
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/photo_album_item.xml b/app/src/main/res/layout/photo_album_item.xml
deleted file mode 100644
index 008d700..0000000
--- a/app/src/main/res/layout/photo_album_item.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/photo_item.xml b/app/src/main/res/layout/photo_item.xml
new file mode 100644
index 0000000..9af8adc
--- /dev/null
+++ b/app/src/main/res/layout/photo_item.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/video_item.xml b/app/src/main/res/layout/video_item.xml
new file mode 100644
index 0000000..31a5ae2
--- /dev/null
+++ b/app/src/main/res/layout/video_item.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
\ No newline at end of file