修改‘poi录像’的保存本地和上传
This commit is contained in:
@@ -31,6 +31,7 @@ public class Constant {
|
||||
public static final String BASE_FOLDER = SdkFolderCreate.getSDPath()+"/navinfoOutDoor";
|
||||
// 保存图片的目录
|
||||
public static final String PICTURE_FOLDER = BASE_FOLDER+"/picture";
|
||||
public static final String VIDEOS_ = BASE_FOLDER+"/videos";
|
||||
public static final String POI_DAO = BASE_FOLDER+"/BaseDao/";
|
||||
// 申请权限的RequestCode
|
||||
public static final int PERMISSION_REQUEST_CODE = 0x100;
|
||||
|
||||
32
app/src/main/java/com/navinfo/outdoor/bean/PoiVideoBean.java
Normal file
32
app/src/main/java/com/navinfo/outdoor/bean/PoiVideoBean.java
Normal file
@@ -0,0 +1,32 @@
|
||||
package com.navinfo.outdoor.bean;
|
||||
|
||||
public class PoiVideoBean {
|
||||
|
||||
private Integer code;
|
||||
private String message;
|
||||
private Integer body;
|
||||
|
||||
public Integer getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public void setCode(Integer code) {
|
||||
this.code = code;
|
||||
}
|
||||
|
||||
public String getMessage() {
|
||||
return message;
|
||||
}
|
||||
|
||||
public void setMessage(String message) {
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
public Integer getBody() {
|
||||
return body;
|
||||
}
|
||||
|
||||
public void setBody(Integer body) {
|
||||
this.body = body;
|
||||
}
|
||||
}
|
||||
@@ -399,8 +399,7 @@ public class GatherGetFragment extends BaseFragment implements View.OnClickListe
|
||||
new Thread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
PoiEntity poiEntity = poiDao.getPoiEntity(taskId);
|
||||
poiDao.deletePoiEntity(poiEntity);
|
||||
poiDao.deleteFormTaskID(taskId);
|
||||
}
|
||||
}).start();
|
||||
btnGetTask.setVisibility(View.VISIBLE);
|
||||
@@ -473,8 +472,7 @@ public class GatherGetFragment extends BaseFragment implements View.OnClickListe
|
||||
new Thread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
PoiEntity poiEntity = poiDao.getPoiEntity(taskId);
|
||||
poiDao.deletePoiEntity(poiEntity);
|
||||
poiDao.deleteFormTaskID(taskId);
|
||||
}
|
||||
}).start();
|
||||
btnGather.setVisibility(View.VISIBLE);
|
||||
|
||||
@@ -364,11 +364,7 @@ public class OtherFragment extends BaseDrawerFragment implements View.OnClickLis
|
||||
new Thread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
if (poiEntity.getTaskId() == 0) {
|
||||
poiDao.insertPoiEntity(poiEntity);
|
||||
} else {
|
||||
poiDao.updatePoiEntity(poiEntity);
|
||||
}
|
||||
poiDao.insertPoiEntity(poiEntity);
|
||||
getActivity().runOnUiThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
@@ -405,21 +401,26 @@ public class OtherFragment extends BaseDrawerFragment implements View.OnClickLis
|
||||
if (tagPictures != null) {
|
||||
otherUploadList.add(new File(tagPictures));
|
||||
}
|
||||
|
||||
new Thread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
PoiEntity poiEntity = poiDao.getPoiEntity(showPoiEntity.getTaskId());
|
||||
int taskStatus = poiEntity.getTaskStatus();
|
||||
getActivity().runOnUiThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
if (taskStatus == 2) {//保存本地未提交
|
||||
Toast.makeText(getActivity(), "请保存本地", Toast.LENGTH_SHORT).show();
|
||||
} else if (taskStatus == 3) {//保存本地已提交
|
||||
otherUploadByNet(body, otherUploadList);
|
||||
if (showPoiEntity.getId()!=0){
|
||||
PoiEntity poiEntity = poiDao.getPoiEntity(showPoiEntity.getId());
|
||||
int taskStatus = poiEntity.getTaskStatus();
|
||||
getActivity().runOnUiThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
if (taskStatus == 2) {//保存本地未提交
|
||||
Toast.makeText(getActivity(), "请保存本地", Toast.LENGTH_SHORT).show();
|
||||
} else if (taskStatus == 3) {//保存本地已提交
|
||||
otherUploadByNet(body, otherUploadList);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
}else {
|
||||
Toast.makeText(getActivity(), "请保存本地", Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
}
|
||||
}).start();
|
||||
break;
|
||||
@@ -445,6 +446,13 @@ public class OtherFragment extends BaseDrawerFragment implements View.OnClickLis
|
||||
dismissLoadingDialog();
|
||||
Toast.makeText(getActivity(), "上传成功", Toast.LENGTH_SHORT).show();
|
||||
Log.d("TAG", "onSuccess: " + response.toString() + "sssssssssssss");
|
||||
// new Thread(new Runnable() {
|
||||
// @Override
|
||||
// public void run() {
|
||||
// PoiEntity poiEntity = poiDao.getPoiEntity(showPoiEntity.getId());
|
||||
// poiDao.deletePoiEntity(poiEntity);
|
||||
// }
|
||||
// }).start();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -485,10 +493,10 @@ public class OtherFragment extends BaseDrawerFragment implements View.OnClickLis
|
||||
new Thread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
poiDao.updatePoiEntity(poiEntity);
|
||||
poiDao.insertPoiEntity(poiEntity);
|
||||
}
|
||||
}).start();
|
||||
// Log.d("TAG", " 其他其他其他其他" + poiSaveBean.getBody());
|
||||
// Log.d("TAG", " 其他其他其他其他" + poiSaveBean.getBody());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -587,7 +587,6 @@ public class PoiFragment extends BaseDrawerFragment implements View.OnClickListe
|
||||
@Override
|
||||
public void onSuccess(PoiSaveBean poiSaveBean, int id) {
|
||||
dismissLoadingDialog();
|
||||
|
||||
body = poiSaveBean.getBody();
|
||||
Toast.makeText(getActivity(), "保存成功", Toast.LENGTH_SHORT).show();
|
||||
Log.d("TAG", "onSuccess: "+poiSaveBean.getBody());
|
||||
|
||||
@@ -24,17 +24,33 @@ import android.widget.Toast;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
|
||||
import com.github.lazylibrary.util.ZipUtil;
|
||||
import com.google.gson.Gson;
|
||||
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.lzy.okgo.OkGo;
|
||||
import com.lzy.okgo.model.HttpParams;
|
||||
import com.lzy.okgo.model.Response;
|
||||
import com.navinfo.outdoor.R;
|
||||
import com.navinfo.outdoor.activity.PictureActivity;
|
||||
import com.navinfo.outdoor.activity.PicturesActivity;
|
||||
import com.navinfo.outdoor.api.Constant;
|
||||
import com.navinfo.outdoor.base.BaseDrawerFragment;
|
||||
import com.navinfo.outdoor.bean.OtherUploadPicBean;
|
||||
import com.navinfo.outdoor.bean.PoiSaveBean;
|
||||
import com.navinfo.outdoor.bean.PoiVideoBean;
|
||||
import com.navinfo.outdoor.bean.RoadExtend;
|
||||
import com.navinfo.outdoor.http.Callback;
|
||||
import com.navinfo.outdoor.http.DialogCallback;
|
||||
import com.navinfo.outdoor.http.HttpInterface;
|
||||
import com.navinfo.outdoor.http.OkGoBuilder;
|
||||
import com.navinfo.outdoor.room.PoiDao;
|
||||
import com.navinfo.outdoor.room.PoiDatabase;
|
||||
import com.navinfo.outdoor.room.PoiEntity;
|
||||
@@ -45,6 +61,7 @@ import org.greenrobot.eventbus.EventBus;
|
||||
import java.io.File;
|
||||
import java.text.DateFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
@@ -56,7 +73,7 @@ import java.util.List;
|
||||
public class PoiVideoFragment extends BaseDrawerFragment implements View.OnClickListener {
|
||||
private TextView tvPictures;
|
||||
private EditText etRoadName;
|
||||
private ImageView ivRoadPicture;
|
||||
private ImageView ivPoiVideoPicture;
|
||||
private RadioButton rbCar;
|
||||
private RadioButton rbBicycle;
|
||||
private RadioButton rbWalking;
|
||||
@@ -69,7 +86,11 @@ public class PoiVideoFragment extends BaseDrawerFragment implements View.OnClick
|
||||
private PoiEntity showPoiEntity;
|
||||
private RelativeLayout linearExist;
|
||||
private Spinner spinnerExist;
|
||||
String[] spinner = new String[]{"存在","不存在","无法验证"};
|
||||
String[] spinner = new String[]{"存在", "不存在", "无法验证"};
|
||||
private Integer poiVideoBody;
|
||||
private File videoFile;
|
||||
private Button roadUpload;
|
||||
private String videoPath;
|
||||
|
||||
public static PoiVideoFragment newInstance(Bundle bundle) {
|
||||
PoiVideoFragment fragment = new PoiVideoFragment();
|
||||
@@ -94,20 +115,20 @@ public class PoiVideoFragment extends BaseDrawerFragment implements View.OnClick
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
Bundle arguments = getArguments();
|
||||
if (arguments!=null) {
|
||||
isSliding= arguments.getBoolean("isSliding",true);
|
||||
Log.d("TAG", "onCreatessss: "+isSliding);
|
||||
if (arguments != null) {
|
||||
isSliding = arguments.getBoolean("isSliding", true);
|
||||
Log.d("TAG", "onCreatessss: " + isSliding);
|
||||
}
|
||||
if (isSliding) {
|
||||
// 监听到返回按钮点击事件
|
||||
Message obtain = Message.obtain();
|
||||
obtain.what= Constant.TREASURE_FRAGMENT;
|
||||
obtain.obj=isSliding;
|
||||
obtain.what = Constant.TREASURE_FRAGMENT;
|
||||
obtain.obj = isSliding;
|
||||
EventBus.getDefault().post(obtain);
|
||||
|
||||
Message mainButtonVisiableMsg = Message.obtain();
|
||||
mainButtonVisiableMsg.what= Constant.MAIN_BUTTON_VISIABLE;
|
||||
mainButtonVisiableMsg.obj= View.VISIBLE;
|
||||
mainButtonVisiableMsg.what = Constant.MAIN_BUTTON_VISIABLE;
|
||||
mainButtonVisiableMsg.obj = View.VISIBLE;
|
||||
EventBus.getDefault().post(mainButtonVisiableMsg);
|
||||
}
|
||||
onBackPressed();
|
||||
@@ -116,8 +137,6 @@ public class PoiVideoFragment extends BaseDrawerFragment implements View.OnClick
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
protected void initView() {
|
||||
super.initView();
|
||||
@@ -126,7 +145,7 @@ public class PoiVideoFragment extends BaseDrawerFragment implements View.OnClick
|
||||
tvPictures = (TextView) findViewById(R.id.tv_pictures);
|
||||
tvPictures.setOnClickListener(this::onClick);
|
||||
etRoadName = (EditText) findViewById(R.id.et_road_name);
|
||||
ivRoadPicture = (ImageView) findViewById(R.id.iv_road_picture);
|
||||
ivPoiVideoPicture = (ImageView) findViewById(R.id.iv_road_picture);
|
||||
rbCar = (RadioButton) findViewById(R.id.rb_car);
|
||||
rbBicycle = (RadioButton) findViewById(R.id.rb_bicycle);
|
||||
rbWalking = (RadioButton) findViewById(R.id.rb_walking);
|
||||
@@ -134,6 +153,8 @@ public class PoiVideoFragment extends BaseDrawerFragment implements View.OnClick
|
||||
etDesc = (EditText) findViewById(R.id.et_desc);
|
||||
btnRoadSave = (Button) findViewById(R.id.btn_road_save);
|
||||
btnRoadSave.setOnClickListener(this::onClick);
|
||||
roadUpload = findViewById(R.id.road_upload);
|
||||
roadUpload.setOnClickListener(this::onClick);
|
||||
rgType = (RadioGroup) findViewById(R.id.rg_type);
|
||||
linearExist = findViewById(R.id.linear_exist);
|
||||
spinnerExist = findViewById(R.id.spinner_exist);
|
||||
@@ -158,7 +179,7 @@ public class PoiVideoFragment extends BaseDrawerFragment implements View.OnClick
|
||||
}
|
||||
});
|
||||
|
||||
ivRoadPicture.setOnClickListener(new View.OnClickListener() {
|
||||
ivPoiVideoPicture.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (v.getTag() == null) {
|
||||
@@ -171,12 +192,33 @@ public class PoiVideoFragment extends BaseDrawerFragment implements View.OnClick
|
||||
startActivityForResult(intent, 0x101);
|
||||
}
|
||||
});
|
||||
|
||||
ivPoiVideoPicture.setOnLongClickListener(new View.OnLongClickListener() {
|
||||
@Override
|
||||
public boolean onLongClick(View v) {
|
||||
DialogSettings.style = DialogSettings.STYLE.STYLE_KONGZUE;
|
||||
MessageDialog.show((AppCompatActivity) getContext(), "提示", "对否删除", "确定", "取消").setOkButton(new OnDialogButtonClickListener() {
|
||||
@Override
|
||||
public boolean onClick(BaseDialog baseDialog, View v) {
|
||||
if (videoFile != null) {
|
||||
videoFile.delete();
|
||||
//获取文件名
|
||||
String csvFileName = videoFile.getName() + ".txt";
|
||||
File cavFile = new File(videoFile.getParent(), csvFileName);
|
||||
cavFile.delete();
|
||||
ivPoiVideoPicture.setImageDrawable(null);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
});
|
||||
return false;
|
||||
}
|
||||
});
|
||||
//添加数据
|
||||
initShowPoi();
|
||||
//禁用可操作性控件
|
||||
// disables();
|
||||
}
|
||||
|
||||
private void initShowPoi() {
|
||||
// 添加信息:
|
||||
showPoiEntity = (PoiEntity) getArguments().getSerializable("poiEntity");
|
||||
@@ -186,9 +228,9 @@ public class PoiVideoFragment extends BaseDrawerFragment implements View.OnClick
|
||||
etRoadName.setText(name + "");
|
||||
}
|
||||
String extend = showPoiEntity.getExtend();
|
||||
if (extend!=null&&!extend.equals("")){
|
||||
if (extend != null && !extend.equals("")) {
|
||||
RoadExtend roadExtend = new Gson().fromJson(extend, RoadExtend.class);
|
||||
int type= roadExtend.getType();
|
||||
int type = roadExtend.getType();
|
||||
showPictureType(type);
|
||||
}
|
||||
linearExist.setVisibility(View.VISIBLE);
|
||||
@@ -197,20 +239,21 @@ public class PoiVideoFragment extends BaseDrawerFragment implements View.OnClick
|
||||
etDesc.setText(describe);
|
||||
}
|
||||
String photo = showPoiEntity.getPhoto();
|
||||
if (photo!=null) {
|
||||
if (photo != null) {
|
||||
File videoFile = new File(photo);
|
||||
if (videoFile.exists()) {
|
||||
// 使用glide加载视频的第一帧
|
||||
AWMp4ParserHelper.getInstance().loadFirstWithGlide(getActivity(), Uri.fromFile(videoFile).toString(), ivRoadPicture, 500);
|
||||
ivRoadPicture.setTag(videoFile);
|
||||
AWMp4ParserHelper.getInstance().loadFirstWithGlide(getActivity(), Uri.fromFile(videoFile).toString(), ivPoiVideoPicture, 500);
|
||||
ivPoiVideoPicture.setTag(videoFile);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void disables() {
|
||||
etRoadName.setEnabled(false);
|
||||
rgType.setEnabled(false);
|
||||
ivRoadPicture.setEnabled(false);
|
||||
ivPoiVideoPicture.setEnabled(false);
|
||||
tvPictures.setEnabled(false);
|
||||
etDesc.setEnabled(false);
|
||||
btnRoadSave.setEnabled(false);
|
||||
@@ -219,7 +262,7 @@ public class PoiVideoFragment extends BaseDrawerFragment implements View.OnClick
|
||||
@Override
|
||||
protected void initData() {
|
||||
super.initData();
|
||||
// infos = new ArrayList<>();
|
||||
// infos = new ArrayList<>();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -264,9 +307,9 @@ public class PoiVideoFragment extends BaseDrawerFragment implements View.OnClick
|
||||
}
|
||||
RoadExtend roadExtend = new RoadExtend();
|
||||
int type = getPictureType();
|
||||
if (type== -1){
|
||||
if (type == -1) {
|
||||
Toast.makeText(getContext(), "请选择拍照方式", Toast.LENGTH_SHORT).show();
|
||||
return;
|
||||
return;
|
||||
}
|
||||
roadExtend.setType(type);
|
||||
Gson gson = new Gson();
|
||||
@@ -278,13 +321,13 @@ public class PoiVideoFragment extends BaseDrawerFragment implements View.OnClick
|
||||
} else {
|
||||
poiEntity.setDescribe(desc);
|
||||
}
|
||||
if (showPoiEntity!=null){
|
||||
if (showPoiEntity.getTaskId()!=0){
|
||||
if (showPoiEntity != null) {
|
||||
if (showPoiEntity.getTaskId() != 0) {
|
||||
poiEntity.setTaskId(showPoiEntity.getTaskId());
|
||||
}
|
||||
}
|
||||
if (ivRoadPicture.getTag()!=null) {
|
||||
File videoFile = (File) ivRoadPicture.getTag();
|
||||
if (ivPoiVideoPicture.getTag() != null) {
|
||||
File videoFile = (File) ivPoiVideoPicture.getTag();
|
||||
poiEntity.setPhoto(videoFile.getAbsolutePath());
|
||||
}
|
||||
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
@@ -298,13 +341,16 @@ public class PoiVideoFragment extends BaseDrawerFragment implements View.OnClick
|
||||
new Thread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
if (showPoiEntity != null) {
|
||||
poiDao.updatePoiEntity(poiEntity);
|
||||
}
|
||||
poiDao.insertPoiEntity(poiEntity);
|
||||
getActivity().runOnUiThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
poiVideoSave(poiEntity);
|
||||
}
|
||||
});
|
||||
}
|
||||
}).start();
|
||||
onBackPressed();
|
||||
//onBackPressed();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -316,7 +362,6 @@ public class PoiVideoFragment extends BaseDrawerFragment implements View.OnClick
|
||||
XXPermissions.startPermissionActivity(getActivity(), permissions);
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
break;
|
||||
|
||||
@@ -325,22 +370,98 @@ public class PoiVideoFragment extends BaseDrawerFragment implements View.OnClick
|
||||
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
String videoFormatName = formatter.format(new Date());
|
||||
Intent intent = new Intent(getContext(), PictureActivity.class);
|
||||
intent.putExtra(Constant.INTENT_VIDEO_PATH, Constant.PICTURE_FOLDER+"/"+videoFormatName+".mp4");
|
||||
intent.putExtra(Constant.INTENT_VIDEO_PATH, Constant.PICTURE_FOLDER + "/" + videoFormatName + ".mp4");
|
||||
startActivityForResult(intent, 0x101);
|
||||
break;
|
||||
|
||||
case R.id.road_upload:
|
||||
ArrayList<File> files = new ArrayList<>();
|
||||
if (videoFile != null) {
|
||||
files.add(videoFile);
|
||||
}
|
||||
File file = new File(Constant.PICTURE_FOLDER, "files" + ".zip");
|
||||
ZipUtil.zipFiles(files, file, new ZipUtil.ZipListener() {
|
||||
@Override
|
||||
public void zipProgress(int zipProgress) {
|
||||
if (zipProgress == 100) {
|
||||
|
||||
}
|
||||
}
|
||||
});
|
||||
poiVideoUpload();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void poiVideoUpload() {
|
||||
// OkGo
|
||||
// // 请求方式和请求url
|
||||
// .<OtherUploadPicBean>post(HttpInterface.POI_VIDEO_UPLOAD_PIC)
|
||||
// // 请求的 tag, 主要用于取消对应的请求
|
||||
// .params("auditId", )
|
||||
// .addFileParams("file",)
|
||||
// .tag(this)
|
||||
// .execute(new DialogCallback<OtherUploadPicBean>(OtherUploadPicBean.class) {
|
||||
// @Override
|
||||
// public void onSuccess(Response<OtherUploadPicBean> otherUploadPicBeanResponse) {
|
||||
// dismissLoadingDialog();
|
||||
// Toast.makeText(getActivity(), "上传成功", Toast.LENGTH_SHORT).show();
|
||||
// Log.d("TAG", "onSuccess: " + otherUploadPicBeanResponse.toString() + "sssssssssssss");
|
||||
//
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void onError(Response<OtherUploadPicBean> response) {
|
||||
// super.onError(response);
|
||||
// dismissLoadingDialog();
|
||||
// Toast.makeText(getActivity(), response.code()+"", Toast.LENGTH_SHORT).show();
|
||||
// Log.d("TAG", "onError: " + response.code()+"");
|
||||
// }
|
||||
// });
|
||||
}
|
||||
|
||||
private void poiVideoSave(PoiEntity poiEntity) {
|
||||
showLoadingDialog();
|
||||
OkGoBuilder.getInstance()
|
||||
.Builder(getActivity())
|
||||
.url(HttpInterface.INSIDE_API_LIST)
|
||||
.method(OkGoBuilder.GET)
|
||||
.cls(PoiVideoBean.class)
|
||||
.callback(new Callback<PoiVideoBean>() {
|
||||
@Override
|
||||
public void onSuccess(PoiVideoBean poiVideoBean, int id) {
|
||||
dismissLoadingDialog();
|
||||
poiVideoBody = poiVideoBean.getBody();
|
||||
poiEntity.setTaskStatus(3);
|
||||
poiEntity.setBodyId(poiVideoBody);
|
||||
new Thread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
poiDao.insertPoiEntity(poiEntity);
|
||||
}
|
||||
}).start();
|
||||
Toast.makeText(getActivity(), "保存成功", Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
|
||||
@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();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
if (requestCode == 0x101&&resultCode == 0x101) {
|
||||
if (data!=null&&data.hasExtra(Constant.INTENT_VIDEO_PATH)) {
|
||||
String videoPath = data.getStringExtra(Constant.INTENT_VIDEO_PATH);
|
||||
File videoFile = new File(videoPath);
|
||||
if (requestCode == 0x101 && resultCode == 0x101) {
|
||||
if (data != null && data.hasExtra(Constant.INTENT_VIDEO_PATH)) {
|
||||
videoPath = data.getStringExtra(Constant.INTENT_VIDEO_PATH);
|
||||
videoFile = new File(videoPath);
|
||||
if (videoFile.exists()) {
|
||||
AWMp4ParserHelper.getInstance().loadFirstWithGlide(getActivity(), Uri.fromFile(videoFile).toString(), ivRoadPicture, 500);
|
||||
ivRoadPicture.setTag(videoFile);
|
||||
AWMp4ParserHelper.getInstance().loadFirstWithGlide(getActivity(), Uri.fromFile(videoFile).toString(), ivPoiVideoPicture, 500);
|
||||
ivPoiVideoPicture.setTag(videoFile);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -353,9 +474,9 @@ public class PoiVideoFragment extends BaseDrawerFragment implements View.OnClick
|
||||
}
|
||||
|
||||
/**
|
||||
*防止程序崩溃后数据丢失
|
||||
* 防止程序崩溃后数据丢失
|
||||
*/
|
||||
public void initPoiVideoSharePre(){
|
||||
public void initPoiVideoSharePre() {
|
||||
//获取SharedPreferences对象,方法中两个参数的意思为:第一个name
|
||||
//表示文件名,系统将会在/dada/dada/包名/shared_prefs目录下生成
|
||||
//一个以该参数命名的.xml文件。第二个mode表示创建的模式,通过查看
|
||||
@@ -382,8 +503,8 @@ public class PoiVideoFragment extends BaseDrawerFragment implements View.OnClick
|
||||
if (desc != null && !desc.equals("")) {
|
||||
poiEntity.setDescribe(desc);
|
||||
}
|
||||
if (showPoiEntity!=null){
|
||||
if (showPoiEntity.getTaskId()!=0){
|
||||
if (showPoiEntity != null) {
|
||||
if (showPoiEntity.getTaskId() != 0) {
|
||||
poiEntity.setTaskId(showPoiEntity.getTaskId());
|
||||
}
|
||||
}
|
||||
@@ -400,7 +521,7 @@ public class PoiVideoFragment extends BaseDrawerFragment implements View.OnClick
|
||||
edit.putString("poiEntity", newPoiEntity);
|
||||
//提交新值。必须执行,否则前面的操作都无效。
|
||||
edit.commit();
|
||||
Log.d("TAG", "initRoadSharePre: "+newPoiEntity);
|
||||
Log.d("TAG", "initRoadSharePre: " + newPoiEntity);
|
||||
}
|
||||
|
||||
|
||||
@@ -412,13 +533,14 @@ 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;
|
||||
}
|
||||
private void showPictureType(int type){
|
||||
switch (type){
|
||||
|
||||
private void showPictureType(int type) {
|
||||
switch (type) {
|
||||
case 0:
|
||||
rbCar.setChecked(true);
|
||||
break;
|
||||
|
||||
@@ -4,6 +4,7 @@ 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;
|
||||
@@ -22,6 +23,7 @@ import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.bumptech.glide.Glide;
|
||||
import com.google.gson.Gson;
|
||||
@@ -38,15 +40,18 @@ import com.navinfo.outdoor.bean.RoadExtend;
|
||||
import com.navinfo.outdoor.room.PoiDao;
|
||||
import com.navinfo.outdoor.room.PoiDatabase;
|
||||
import com.navinfo.outdoor.room.PoiEntity;
|
||||
import com.navinfo.outdoor.util.AWMp4ParserHelper;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.io.File;
|
||||
import java.text.DateFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@@ -157,6 +162,19 @@ public class RoadFragment extends BaseDrawerFragment implements View.OnClickList
|
||||
public void onNothingSelected(AdapterView<?> parent) {
|
||||
}
|
||||
});
|
||||
ivRoadPicture.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (v.getTag() == null) {
|
||||
Toast.makeText(getActivity(), "还没有拍摄视频!", Toast.LENGTH_SHORT).show();
|
||||
return;
|
||||
}
|
||||
File videoFile = (File) v.getTag();
|
||||
Intent intent = new Intent(getContext(), PictureActivity.class);
|
||||
intent.putExtra(Constant.INTENT_VIDEO_PATH, videoFile.getAbsolutePath());
|
||||
startActivityForResult(intent, 0x101);
|
||||
}
|
||||
});
|
||||
//数据展示
|
||||
initShowPoi();
|
||||
//禁用可操作性控件
|
||||
@@ -182,7 +200,17 @@ public class RoadFragment extends BaseDrawerFragment implements View.OnClickList
|
||||
if (describe != null && !describe.equals("")) {
|
||||
etDesc.setText(describe);
|
||||
}
|
||||
String photo = showPoiEntity.getPhoto();
|
||||
if (photo!=null) {
|
||||
File videoFile = new File(photo);
|
||||
if (videoFile.exists()) {
|
||||
// 使用glide加载视频的第一帧
|
||||
AWMp4ParserHelper.getInstance().loadFirstWithGlide(getActivity(), Uri.fromFile(videoFile).toString(), ivRoadPicture, 500);
|
||||
ivRoadPicture.setTag(videoFile);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
//禁用控件
|
||||
private void disables() throws JSONException {
|
||||
@@ -261,6 +289,10 @@ public class RoadFragment extends BaseDrawerFragment implements View.OnClickList
|
||||
poiEntity.setTaskId(showPoiEntity.getTaskId());
|
||||
}
|
||||
}
|
||||
if (ivRoadPicture.getTag()!=null) {
|
||||
File videoFile = (File) ivRoadPicture.getTag();
|
||||
poiEntity.setPhoto(videoFile.getAbsolutePath());
|
||||
}
|
||||
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
calendar.setTimeInMillis(System.currentTimeMillis());
|
||||
@@ -295,13 +327,30 @@ public class RoadFragment extends BaseDrawerFragment implements View.OnClickList
|
||||
break;
|
||||
|
||||
case R.id.tv_pictures:
|
||||
// 根据用户点击的时间为视频名称赋值
|
||||
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
String videoFormatName = formatter.format(new Date());
|
||||
Intent intent = new Intent(getContext(), PictureActivity.class);
|
||||
startActivity(intent);
|
||||
intent.putExtra(Constant.INTENT_VIDEO_PATH, Constant.PICTURE_FOLDER+"/"+videoFormatName+".mp4");
|
||||
startActivityForResult(intent, 0x101);
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
if (requestCode == 0x101&&resultCode == 0x101) {
|
||||
if (data!=null&&data.hasExtra(Constant.INTENT_VIDEO_PATH)) {
|
||||
String videoPath = data.getStringExtra(Constant.INTENT_VIDEO_PATH);
|
||||
File videoFile = new File(videoPath);
|
||||
if (videoFile.exists()) {
|
||||
AWMp4ParserHelper.getInstance().loadFirstWithGlide(getActivity(), Uri.fromFile(videoFile).toString(), ivRoadPicture, 500);
|
||||
ivRoadPicture.setTag(videoFile);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public void onSaveInstanceState(@NonNull Bundle outState) {
|
||||
super.onSaveInstanceState(outState);
|
||||
|
||||
@@ -103,4 +103,18 @@ public class HttpInterface {
|
||||
//172.23.139.4:8003/poitask/1/uploadpic
|
||||
public static final String POI_TASK_UPLOAD_PIC=IPm13+"uploadpic";//poi-上传
|
||||
|
||||
|
||||
public static final String IPm14 = "http://172.23.139.4:8003/poivideotask/1/";
|
||||
|
||||
// 172.23.139.4:8003/poivideotask/1/submitPoivideotask
|
||||
public static final String INSIDE_API_LIST = IPm14+"submitPoivideotask";//poi录像 保存
|
||||
|
||||
//172.23.139.4:8003/poivideotask/1/uploadpic
|
||||
public static final String POI_VIDEO_UPLOAD_PIC = IPm14+"uploadpic";//poi录像-上传
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -31,8 +31,8 @@ public interface PoiDao {
|
||||
List<PoiEntity> getAllTaskStatus(int taskStatus, int taskStatus1, int type, int type1, int isExclusive, int isExclusive1);
|
||||
|
||||
|
||||
@Query("SELECT * FROM poi where taskId=:taskId")
|
||||
PoiEntity getPoiEntity(int taskId);
|
||||
@Query("SELECT * FROM poi where id=:id")
|
||||
PoiEntity getPoiEntity(int id);
|
||||
/**
|
||||
* 添加
|
||||
*
|
||||
@@ -82,6 +82,9 @@ public interface PoiDao {
|
||||
@Query("DELETE FROM poi where taskId=:taskId")
|
||||
void deleteFormTaskID(int taskId);
|
||||
|
||||
|
||||
@Query("DELETE FROM poi where id =:id")
|
||||
void deleteFormID(int id);
|
||||
/**
|
||||
* 全部删除
|
||||
*/
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
@@ -263,4 +267,4 @@
|
||||
android:text="上传" />
|
||||
</LinearLayout>
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</ScrollView>
|
||||
Reference in New Issue
Block a user