修改poiVideo的bug

This commit is contained in:
md 2021-08-05 10:45:30 +08:00
parent 0493be4e4d
commit 57119a84e4
6 changed files with 167 additions and 87 deletions

View File

@ -357,9 +357,10 @@ public class GatherGetFragment extends BaseFragment implements View.OnClickListe
} }
InsertAndUpdateUtils.getInstance().insertOrUpdateChargingPile(getActivity(), chargingPileEntityList); InsertAndUpdateUtils.getInstance().insertOrUpdateChargingPile(getActivity(), chargingPileEntityList);
} }
//获取当前位置的marker //获取当前位置的marker
senMessageMarker(chargingStationEntity.getType(), chargingStationEntity.getY(), chargingStationEntity.getX()); // senMessageMarker(chargingStationEntity.getType(), chargingStationEntity.getY(), chargingStationEntity.getX());
InsertAndUpdateUtils.getInstance().insertOrUpdate(getContext(),chargingStationEntity); // InsertAndUpdateUtils.getInstance().insertOrUpdate(getContext(),chargingStationEntity);
getActivity().runOnUiThread(new Runnable() { getActivity().runOnUiThread(new Runnable() {
@Override @Override
public void run() { public void run() {

View File

@ -154,13 +154,14 @@ public class GatheringFragment extends BaseFragment implements View.OnClickListe
private void gatheringNetWork() { private void gatheringNetWork() {
showLoadingDialog(); showLoadingDialog();
gatheringList = new ArrayList<>(); if (ivGathering.getTag()==null){
File gatheringFile = new File(gatheringPath); Toast.makeText(getContext(), "银行卡照片不能为空", Toast.LENGTH_SHORT).show();
if (!gatheringFile.exists()) {
Toast.makeText(getContext(), "身份证照片不能为空", Toast.LENGTH_SHORT).show();
return; return;
} }
gatheringList.add(gatheringFile); gatheringList = new ArrayList<>();
String ivGatheringTag = (String) ivGathering.getTag();
gatheringList.add(new File(ivGatheringTag));
String etBankAccount = etBankNum.getText().toString().trim(); String etBankAccount = etBankNum.getText().toString().trim();
if (etBankAccount == null || etBankAccount.equals("")) { if (etBankAccount == null || etBankAccount.equals("")) {
Toast.makeText(getContext(), "银行卡号不能为空", Toast.LENGTH_SHORT).show(); Toast.makeText(getContext(), "银行卡号不能为空", Toast.LENGTH_SHORT).show();

View File

@ -28,6 +28,7 @@ import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import com.github.lazylibrary.util.FileUtils; import com.github.lazylibrary.util.FileUtils;
import com.github.lazylibrary.util.StringUtils;
import com.github.lazylibrary.util.ZipUtil; import com.github.lazylibrary.util.ZipUtil;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.hjq.permissions.OnPermissionCallback; import com.hjq.permissions.OnPermissionCallback;
@ -162,13 +163,14 @@ public class PoiVideoFragment extends BaseDrawerFragment implements View.OnClick
fmPoiVideoPic.setOnClickListener(new View.OnClickListener() { fmPoiVideoPic.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
if (v.getTag() == null) { if (v.getTag() == null || ((List<File>) v.getTag()).size() == 0) {
Toast.makeText(getActivity(), "还没有拍摄视频!", Toast.LENGTH_SHORT).show(); Toast.makeText(getActivity(), "还没有拍摄视频!", Toast.LENGTH_SHORT).show();
return; return;
} }
File videoFile = (File) v.getTag();
File finalFile = AWMp4ParserHelper.getInstance().obtainMp4FilePath(showPoiEntity.getId(), fmPoiVideoPic.getTag());
Intent intent = new Intent(getContext(), PictureActivity.class); Intent intent = new Intent(getContext(), PictureActivity.class);
intent.putExtra(Constant.INTENT_VIDEO_PATH, videoFile.getAbsolutePath()); intent.putExtra(Constant.INTENT_VIDEO_PATH, finalFile.getAbsolutePath());
startActivityForResult(intent, 0x101); startActivityForResult(intent, 0x101);
} }
}); });
@ -212,13 +214,25 @@ public class PoiVideoFragment extends BaseDrawerFragment implements View.OnClick
if (describe != null && !describe.equals("")) { if (describe != null && !describe.equals("")) {
etDesc.setText(describe + ""); etDesc.setText(describe + "");
} }
String photo = showPoiEntity.getPhoto(); String photoList = showPoiEntity.getPhoto();
if (photo != null) { if (!StringUtils.isEmpty(photoList)) {
String[] photos = photoList.split(",");
List<File> videoFileList = new ArrayList<>();
boolean isImageLoad = false;
if (photos != null && photos.length > 0) {
for (int i = 0; i < photos.length; i++) {
String photo = photos[i];
if (!StringUtils.isEmpty(photo)) {
File videoFile = new File(photo); File videoFile = new File(photo);
if (videoFile.exists()) { videoFileList.add(new File(photo));
if (videoFile.exists() && !isImageLoad) {
// 使用glide加载视频的第一帧 // 使用glide加载视频的第一帧
AWMp4ParserHelper.getInstance().loadFirstWithGlide(getActivity(), Uri.fromFile(videoFile).toString(), ivPoiVideoPicture, 500); AWMp4ParserHelper.getInstance().loadFirstWithGlide(getActivity(), Uri.fromFile(videoFile).toString(), ivPoiVideoPicture, 500);
fmPoiVideoPic.setTag(videoFile); isImageLoad = true;
}
}
}
fmPoiVideoPic.setTag(videoFileList);
} }
} }
} }
@ -272,27 +286,30 @@ public class PoiVideoFragment extends BaseDrawerFragment implements View.OnClick
break; break;
case R.id.tv_pictures: case R.id.tv_pictures:
// 根据用户点击的时间为视频名称赋值 // 根据用户点击的时间为视频名称赋值
DateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss"); // DateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss");
String videoFormatName = formatter.format(new Date()); // String videoFormatName = formatter.format(new Date());
Intent intent = new Intent(getContext(), PictureActivity.class);
intent.putExtra(Constant.INTENT_VIDEO_PATH, Constant.PICTURE_FOLDER + "/" + videoFormatName + ".mp4");
startActivityForResult(intent, 0x101);
Intent intent = new Intent(getContext(), PictureActivity.class);
File finalFile = AWMp4ParserHelper.getInstance().obtainMp4FilePath(showPoiEntity.getId(), fmPoiVideoPic.getTag());
intent.putExtra(Constant.INTENT_VIDEO_PATH, finalFile.getAbsolutePath());
startActivityForResult(intent, 0x101);
break; break;
case R.id.btn_poi_video_upload: case R.id.btn_poi_video_upload:
showLoadingDialog(); showLoadingDialog();
ArrayList<File> videoFileList = new ArrayList<>(); ArrayList<File> fileList = new ArrayList<>();
if (fmPoiVideoPic.getTag() != null) { if (fmPoiVideoPic.getTag() != null) {
File videoFile = (File) fmPoiVideoPic.getTag(); List<File> videoFileList = (List<File>) fmPoiVideoPic.getTag();
videoFileList.add(videoFile); for (File videoFile : videoFileList) {
fileList.add(videoFile);
File file = new File(videoFile.getPath() + ".txt"); File file = new File(videoFile.getPath() + ".txt");
videoFileList.add(file); fileList.add(file);
}
fileZip = new File(Constant.PICTURE_FOLDER, "files" + ".zip"); fileZip = new File(Constant.PICTURE_FOLDER, "files" + ".zip");
new Thread(new Runnable() { new Thread(new Runnable() {
@Override @Override
public void run() { public void run() {
ZipUtil.zipFiles(videoFileList, fileZip, null); ZipUtil.zipFiles(fileList, fileZip, null);
PoiEntity poiDaoPoiEntity = poiDao.getPoiEntity(showPoiEntity.getId()); PoiEntity poiDaoPoiEntity = poiDao.getPoiEntity(showPoiEntity.getId());
if (poiDaoPoiEntity == null || poiDaoPoiEntity.getTaskStatus() == 1 || poiDaoPoiEntity.getTaskStatus() == 2 || poiDaoPoiEntity.getTaskStatus() == 0) { if (poiDaoPoiEntity == null || poiDaoPoiEntity.getTaskStatus() == 1 || poiDaoPoiEntity.getTaskStatus() == 2 || poiDaoPoiEntity.getTaskStatus() == 0) {
getActivity().runOnUiThread(new Runnable() { getActivity().runOnUiThread(new Runnable() {
@ -359,13 +376,7 @@ public class PoiVideoFragment extends BaseDrawerFragment implements View.OnClick
} }
}); });
} }
int pictureType = getPictureType();
if (pictureType == -1) {
Toast.makeText(getContext(), "请选择拍照方式", Toast.LENGTH_SHORT).show();
return;
} else {
poiEntity.setWork_type(pictureType);
}
String desc = etDesc.getText().toString().trim(); String desc = etDesc.getText().toString().trim();
if (desc != null && !desc.equals("")) { if (desc != null && !desc.equals("")) {
poiEntity.setMemo(desc); poiEntity.setMemo(desc);
@ -375,31 +386,18 @@ public class PoiVideoFragment extends BaseDrawerFragment implements View.OnClick
poiEntity.setTaskId(showPoiEntity.getTaskId()); poiEntity.setTaskId(showPoiEntity.getTaskId());
} }
} }
File videoFile = (File) fmPoiVideoPic.getTag(); if (fmPoiVideoPic.getTag() == null || ((List<File>) fmPoiVideoPic.getTag()).isEmpty()) {
if (videoFile == null ) {
Toast.makeText(getActivity(), "请录像", Toast.LENGTH_SHORT).show(); Toast.makeText(getActivity(), "请录像", Toast.LENGTH_SHORT).show();
return; return;
} else { } else {
String lineString = GeometryTools.getLineString(getLineString());
String path = videoFile.getPath() + ".txt"; String filePathString = getPhotoStrFromTag();
poiEntity.setPhoto(videoFile.getAbsolutePath());
List<String> strings = FileUtils.readFileToList(path, "utf-8");
ArrayList<LatLng> latLngs = new ArrayList<>();
for (int i = 0; i < strings.size(); i++) {
String[] split = strings.get(i).split(",");
LatLng latLng = new LatLng();
latLng.setLatitude(Double.valueOf(split[2]));
latLng.setLongitude(Double.valueOf(split[3]));
latLngs.add(latLng);
}
if (strings.size() == 1) {
LatLng latLng = latLngs.get(0);
latLngs.add(latLng);
}
String lineString = GeometryTools.getLineString(latLngs);
Log.d("TAG", "onGranted: " + lineString); Log.d("TAG", "onGranted: " + lineString);
poiEntity.setPhoto(filePathString);
if (lineString != null) {
poiEntity.setGeoWkt(lineString); poiEntity.setGeoWkt(lineString);
} }
}
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@ -440,6 +438,44 @@ public class PoiVideoFragment extends BaseDrawerFragment implements View.OnClick
}); });
} }
private String getPhotoStrFromTag() {
List<File> videoFileList = (List<File>) fmPoiVideoPic.getTag();
StringBuilder filePathStringBuilder = new StringBuilder("");
for (int m = 0; m < videoFileList.size(); m++) {
File videoFile = videoFileList.get(m);
filePathStringBuilder.append(videoFile.getAbsolutePath());
if (m != videoFileList.size() - 1) {
filePathStringBuilder.append(",");
}
}
return filePathStringBuilder.toString();
}
private List<LatLng> getLineString() {
List<File> videoFileList = (List<File>) fmPoiVideoPic.getTag();
List<LatLng> latLngs = new ArrayList<>();
StringBuilder filePathStringBuilder = new StringBuilder("");
for (int m = 0; m < videoFileList.size(); m++) {
File videoFile = videoFileList.get(m);
String path = videoFile.getPath() + ".txt";
List<String> strings = FileUtils.readFileToList(path, "utf-8");
for (int i = 0; i < strings.size(); i++) {
String[] split = strings.get(i).split(",");
LatLng latLng = new LatLng();
latLng.setLatitude(Double.valueOf(split[2]));
latLng.setLongitude(Double.valueOf(split[3]));
latLngs.add(latLng);
}
if (strings.size() == 1) {
LatLng latLng = latLngs.get(0);
latLngs.add(latLng);
}
}
return latLngs;
}
private void poiVideoUpload(int poiVideoBody, File fileZip) { private void poiVideoUpload(int poiVideoBody, File fileZip) {
if (poiVideoBody == 0) { if (poiVideoBody == 0) {
@ -556,11 +592,15 @@ public class PoiVideoFragment extends BaseDrawerFragment implements View.OnClick
if (requestCode == 0x101 && resultCode == 0x101) { if (requestCode == 0x101 && resultCode == 0x101) {
if (data != null && data.hasExtra(Constant.INTENT_VIDEO_PATH)) { if (data != null && data.hasExtra(Constant.INTENT_VIDEO_PATH)) {
videoPath = data.getStringExtra(Constant.INTENT_VIDEO_PATH); String videoPath = data.getStringExtra(Constant.INTENT_VIDEO_PATH);
File videoFile = new File(videoPath); File videoFile = new File(videoPath);
if (videoFile.exists()) { if (videoFile.exists()) {
AWMp4ParserHelper.getInstance().loadFirstWithGlide(getActivity(), Uri.fromFile(videoFile).toString(), ivPoiVideoPicture, 500); AWMp4ParserHelper.getInstance().loadFirstWithGlide(getActivity(), Uri.fromFile(videoFile).toString(), ivPoiVideoPicture, 500);
fmPoiVideoPic.setTag(videoFile); if (fmPoiVideoPic.getTag() == null) {
fmPoiVideoPic.setTag(new ArrayList<>());
}
List<File> fileList = (List<File>) fmPoiVideoPic.getTag();
fileList.add(videoFile);
} }
} }
} }
@ -606,6 +646,7 @@ public class PoiVideoFragment extends BaseDrawerFragment implements View.OnClick
poiEntity.setType(3); poiEntity.setType(3);
poiEntity.setTaskStatus(2); poiEntity.setTaskStatus(2);
poiEntity.setIsLocalData(1); poiEntity.setIsLocalData(1);
poiEntity.setPhoto(getPhotoStrFromTag());
String newPoiEntity = new Gson().toJson(poiEntity); String newPoiEntity = new Gson().toJson(poiEntity);
//以键值对的形式添加新值 //以键值对的形式添加新值
edit.putString("poiEntity", newPoiEntity); edit.putString("poiEntity", newPoiEntity);

View File

@ -25,6 +25,7 @@ import android.widget.Toast;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import com.github.lazylibrary.util.FileUtils; import com.github.lazylibrary.util.FileUtils;
import com.github.lazylibrary.util.StringUtils; import com.github.lazylibrary.util.StringUtils;
@ -33,6 +34,10 @@ import com.google.gson.Gson;
import com.hjq.permissions.OnPermissionCallback; import com.hjq.permissions.OnPermissionCallback;
import com.hjq.permissions.Permission; import com.hjq.permissions.Permission;
import com.hjq.permissions.XXPermissions; 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.OkGo;
import com.lzy.okgo.model.HttpParams; import com.lzy.okgo.model.HttpParams;
import com.lzy.okgo.model.Response; import com.lzy.okgo.model.Response;
@ -169,6 +174,28 @@ public class RoadFragment extends BaseDrawerFragment implements View.OnClickList
startActivityForResult(intent, 0x101); startActivityForResult(intent, 0x101);
} }
}); });
fmRoadPic.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) {
File videoFile = (File) fmRoadPic.getTag();
if (videoFile != null) {
videoFile.delete();
//获取文件名
String csvFileName = videoFile.getName() + ".txt";
File cavFile = new File(videoFile.getParent(), csvFileName);
cavFile.delete();
ivRoadPicture.setImageDrawable(null);
}
return false;
}
});
return false;
}
});
//数据展示 //数据展示
initShowPoi(); initShowPoi();
//禁用可操作性控件 //禁用可操作性控件
@ -581,6 +608,21 @@ public class RoadFragment extends BaseDrawerFragment implements View.OnClickList
String videoPath = data.getStringExtra(Constant.INTENT_VIDEO_PATH); String videoPath = data.getStringExtra(Constant.INTENT_VIDEO_PATH);
File videoFile = new File(videoPath); File videoFile = new File(videoPath);
if (videoFile.exists()) { if (videoFile.exists()) {
Bitmap bitmap = AWMp4ParserHelper.getInstance().getLocalVideoBitmap(videoPath);
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(getActivity(),PictureActivity.class);
startActivityForResult(intentPanorama, 0x101);
return false;
}
});
return;
}else {
AWMp4ParserHelper.getInstance().loadFirstWithGlide(getActivity(), Uri.fromFile(videoFile).toString(), ivRoadPicture, 500); AWMp4ParserHelper.getInstance().loadFirstWithGlide(getActivity(), Uri.fromFile(videoFile).toString(), ivRoadPicture, 500);
if (fmRoadPic.getTag() == null) { if (fmRoadPic.getTag() == null) {
fmRoadPic.setTag(new ArrayList<>()); fmRoadPic.setTag(new ArrayList<>());
@ -588,6 +630,8 @@ public class RoadFragment extends BaseDrawerFragment implements View.OnClickList
List<File> fileList = (List<File>) fmRoadPic.getTag(); List<File> fileList = (List<File>) fmRoadPic.getTag();
fileList.add(videoFile); fileList.add(videoFile);
} }
}
} }
} }
} }
@ -638,7 +682,6 @@ public class RoadFragment extends BaseDrawerFragment implements View.OnClickList
poiEntity.setType(4); poiEntity.setType(4);
poiEntity.setTaskStatus(2); poiEntity.setTaskStatus(2);
poiEntity.setIsLocalData(1); poiEntity.setIsLocalData(1);
poiEntity.setPhoto(getPhotoStrFromTag());
String newPoiEntity = new Gson().toJson(poiEntity); String newPoiEntity = new Gson().toJson(poiEntity);
//以键值对的形式添加新值 //以键值对的形式添加新值
edit.putString("poiEntity", newPoiEntity); edit.putString("poiEntity", newPoiEntity);

View File

@ -118,14 +118,6 @@ public class UserAttestationFragment extends BaseFragment implements View.OnClic
startActivityForResult(ivAttestation3, 300); startActivityForResult(ivAttestation3, 300);
break; break;
case R.id.btn_attestation: case R.id.btn_attestation:
/**
* static boolean ChineseNameTest(String name) {
* if (!name.matches("[\u4e00-\u9fa5]{2,4}")) {
* System.out.println("只能输入2到4个汉字");
* return false;
* }else return true;
* }
*/
if (etAttestationName.getText().toString() == null || etAttestationName.getText().toString().equals("")) { if (etAttestationName.getText().toString() == null || etAttestationName.getText().toString().equals("")) {
Toast.makeText(getContext(), "姓名不能为空,请输入姓名", Toast.LENGTH_SHORT).show(); Toast.makeText(getContext(), "姓名不能为空,请输入姓名", Toast.LENGTH_SHORT).show();
return; return;
@ -216,6 +208,7 @@ public class UserAttestationFragment extends BaseFragment implements View.OnClic
Log.d("TAG", "onSuccess: " + response.toString() + "sssssssssssss"); Log.d("TAG", "onSuccess: " + response.toString() + "sssssssssssss");
if (response.body().equals("0")) { if (response.body().equals("0")) {
DialogSettings.style = DialogSettings.STYLE.STYLE_KONGZUE;
MessageDialog.show((AppCompatActivity) getActivity(), "提示", "不通过", "确定", "取消").setOkButton(new OnDialogButtonClickListener() { MessageDialog.show((AppCompatActivity) getActivity(), "提示", "不通过", "确定", "取消").setOkButton(new OnDialogButtonClickListener() {
@Override @Override
public boolean onClick(BaseDialog baseDialog, View v) { public boolean onClick(BaseDialog baseDialog, View v) {
@ -226,6 +219,7 @@ public class UserAttestationFragment extends BaseFragment implements View.OnClic
} }
}); });
} else { } else {
DialogSettings.style = DialogSettings.STYLE.STYLE_KONGZUE;
MessageDialog.show((AppCompatActivity) getActivity(), "提示", "通过", "确定", "取消").setOkButton(new OnDialogButtonClickListener() { MessageDialog.show((AppCompatActivity) getActivity(), "提示", "通过", "确定", "取消").setOkButton(new OnDialogButtonClickListener() {
@Override @Override
public boolean onClick(BaseDialog baseDialog, View v) { public boolean onClick(BaseDialog baseDialog, View v) {

View File

@ -150,7 +150,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="5dp" android:layout_marginLeft="5dp"
android:gravity="center" android:gravity="center"
android:text="拍照" android:text="录像"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="15sp" /> android:textSize="15sp" />
</LinearLayout> </LinearLayout>