feat : 去掉 photoPick 可行判断

This commit is contained in:
eggmanQQQ
2024-10-25 18:43:56 +08:00
parent b9d11dd276
commit a889270e40
10 changed files with 143 additions and 112 deletions

View File

@@ -494,6 +494,10 @@
android:name=".ui.widget.LevelUpDialog"
android:launchMode="singleTop"
android:theme="@style/dialogactivity" />
<activity
android:name=".base.PhotoPickActivity"
android:launchMode="singleTop"
android:theme="@style/dialogactivity" />
<activity android:name=".home.activity.NewUserListActivity" />
<activity
android:name=".ui.widget.RecallDialog"

View File

@@ -185,16 +185,15 @@ public class RoomSettingActivity extends BaseMvpActivity<IRoomSettingView, RoomS
.filter(roomEvent -> roomEvent.getEvent() == RoomEvent.ROOM_INFO_UPDATE)
.subscribe(roomEvent -> updateRoomInfoView());
if (ActivityResultContracts.PickVisualMedia.isPhotoPickerAvailable(this)) {
pickMedia = registerForActivityResult(new ActivityResultContracts.PickVisualMedia(), new ActivityResultCallback<Uri>() {
@Override
public void onActivityResult(Uri uri) {
if (uri != null && mUri != null) {
crop(uri, 1, mUri);
}
//todo do photoPick
pickMedia = registerForActivityResult(new ActivityResultContracts.PickVisualMedia(), new ActivityResultCallback<Uri>() {
@Override
public void onActivityResult(Uri uri) {
if (uri != null && mUri != null) {
crop(uri, 1, mUri);
}
});
}
}
});
}
@@ -619,7 +618,7 @@ public class RoomSettingActivity extends BaseMvpActivity<IRoomSettingView, RoomS
}
private void checkStoragePermission() {
if (Build.VERSION.SDK_INT >= 33){
if (Build.VERSION.SDK_INT >= 29){
DialogUtil.INSTANCE.getDialog(this, new EasyAlertDialogHelper.OnDialogActionListener() {
@Override
public void doCancelAction() {}

View File

@@ -64,17 +64,17 @@ class UploadRoomAlbumDialogFragment : BottomSheetDialogFragment() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setStyle(STYLE_NO_TITLE, R.style.ErbanBottomSheetDialog)
if (ActivityResultContracts.PickVisualMedia.isPhotoPickerAvailable(requireContext())) {
pickMedia = registerForActivityResult(ActivityResultContracts.PickVisualMedia()) { uri ->
uri?.let {
if (MyUriUtils.isGif(requireContext(), uri)) {
ToastUtils.show(R.string.error_file_type)
return@let
}
val file = MyUriUtils.copyFile(requireContext(),uri)
if (file != null) {
compressPhotos(mutableListOf(file.path))
}
//todo do photoPick
pickMedia = registerForActivityResult(ActivityResultContracts.PickVisualMedia()) { uri ->
uri?.let {
if (MyUriUtils.isGif(requireContext(), uri)) {
ToastUtils.show(R.string.error_file_type)
return@let
}
val file = MyUriUtils.copyFile(requireContext(),uri)
if (file != null) {
compressPhotos(mutableListOf(file.path))
}
}
}

View File

@@ -0,0 +1,24 @@
package com.chwl.app.base
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.result.ActivityResultLauncher
import androidx.activity.result.PickVisualMediaRequest
import com.chwl.app.R
class PhotoPickActivity : ComponentActivity() {
var pickMedia : ActivityResultLauncher<PickVisualMediaRequest>?=null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_photo_pick)
}
}

View File

@@ -65,13 +65,13 @@ class FeedbackActivity : BaseViewBindingActivity<FeedbackActivityBinding>(),
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
if (ActivityResultContracts.PickVisualMedia.isPhotoPickerAvailable(this)) {
pickMedia = registerForActivityResult(ActivityResultContracts.PickVisualMedia()) { uri ->
uri?.let {
val file = MyUriUtils.copyFile(this,uri)
if (file != null) {
compressPhotos(mutableListOf(file.path))
}
//todo do photoPick
pickMedia = registerForActivityResult(ActivityResultContracts.PickVisualMedia()) { uri ->
uri?.let {
val file = MyUriUtils.copyFile(this,uri)
if (file != null) {
compressPhotos(mutableListOf(file.path))
}
}
}

View File

@@ -115,22 +115,21 @@ class UserInfoModifyActivity : BaseViewBindingActivity<ActivityUserInfoModifyBin
UserModel.get().getUserInfo(userId).subscribe(userInfoUpdateObserver)
PhotoCompressUtil.clearCompressCache()
if (ActivityResultContracts.PickVisualMedia.isPhotoPickerAvailable(this)) {
pickMedia = registerForActivityResult(ActivityResultContracts.PickVisualMedia()) { uri ->
if (uri != null) {
mUri?.let {
if (isGif) {
if (MyUriUtils.isGif(context, uri)){
val isCopy = MyUriUtils.copyFileToUrl(this,uri, it)
if (isCopy) {
onActivityResult(UCrop.REQUEST_CROP,RESULT_OK,null)
}
}else{
ToastUtils.show(R.string.error_file_type)
//todo do photoPick
pickMedia = registerForActivityResult(ActivityResultContracts.PickVisualMedia()) { uri ->
if (uri != null) {
mUri?.let {
if (isGif) {
if (MyUriUtils.isGif(context, uri)){
val isCopy = MyUriUtils.copyFileToUrl(this,uri, it)
if (isCopy) {
onActivityResult(UCrop.REQUEST_CROP,RESULT_OK,null)
}
} else {
crop(uri, 1, it)
}else{
ToastUtils.show(R.string.error_file_type)
}
} else {
crop(uri, 1, it)
}
}
}

View File

@@ -104,13 +104,13 @@ class UserModifyPhotosActivity : TakePhotoActivity(), PhotoItemClickListener,
if (userInfo != null) {
updateView()
}
if (ActivityResultContracts.PickVisualMedia.isPhotoPickerAvailable(this)) {
pickMedia = registerForActivityResult(ActivityResultContracts.PickVisualMedia()) { uri ->
uri?.let {
crop(it, 0, mUri)
}
//todo do photoPick
pickMedia = registerForActivityResult(ActivityResultContracts.PickVisualMedia()) { uri ->
uri?.let {
crop(it, 0, mUri)
}
}
}

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:background="@color/transparent"
android:layout_height="match_parent">
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -195,69 +195,68 @@ public class PublishActivity extends BaseMvpActivity<IPublishView, PublishPresen
rlChooseGroup.setVisibility(View.GONE);
flGroup.setVisibility(View.GONE);
if (ActivityResultContracts.PickVisualMedia.isPhotoPickerAvailable(this)) {
pickMedia = registerForActivityResult(new ActivityResultContracts.PickVisualMedia(), new ActivityResultCallback<Uri>() {
@Override
public void onActivityResult(Uri uri) {
if (uri != null && uri.getPath() != null){
//todo do photoPick
pickMedia = registerForActivityResult(new ActivityResultContracts.PickVisualMedia(), new ActivityResultCallback<Uri>() {
@Override
public void onActivityResult(Uri uri) {
if (uri != null && uri.getPath() != null){
if (MyUriUtils.INSTANCE.isGif(context, uri)) {
ToastUtils.show(R.string.error_file_type);
return;
if (MyUriUtils.INSTANCE.isGif(context, uri)) {
ToastUtils.show(R.string.error_file_type);
return;
}
File file = MyUriUtils.INSTANCE.copyFile(PublishActivity.this, uri);
if (file != null) {
LogUtil.e("选择 file = "+file.getName());
LogUtil.e("选择 file = "+file.getPath());
if (mJob != null) {
mJob.cancel(null);
}
ArrayList<String> pathList = new ArrayList<>();
pathList.add(file.getPath());
File file = MyUriUtils.INSTANCE.copyFile(PublishActivity.this, uri);
if (file != null) {
LogUtil.e("选择 file = "+file.getName());
LogUtil.e("选择 file = "+file.getPath());
if (mJob != null) {
mJob.cancel(null);
}
ArrayList<String> pathList = new ArrayList<>();
pathList.add(file.getPath());
mJob = PhotoCompressUtil.compress(PublishActivity.this, pathList,
PhotoCompressUtil.getCompressCachePath("publish")
, new PhotosCompressCallback() {
@Override
public void onSuccess(@NonNull ArrayList<String> compressedImgList) {
List<CustomItem> pathResult = new ArrayList<>();
for (int i = 0; i < compressedImgList.size(); i++) {
if (i < pathList.size()) {
List<String> fileInfo = MyUriUtils.INSTANCE.getFileInfo(file);
if (fileInfo != null) {
pathResult.add(new CustomItem(compressedImgList.get(i), CustomItem.IMAGE_NORMAL, fileInfo.get(2), Integer.parseInt(fileInfo.get(0)), Integer.parseInt(fileInfo.get(1))));
}
}
mJob = PhotoCompressUtil.compress(PublishActivity.this, pathList,
PhotoCompressUtil.getCompressCachePath("publish")
, new PhotosCompressCallback() {
@Override
public void onSuccess(@NonNull ArrayList<String> compressedImgList) {
List<CustomItem> pathResult = new ArrayList<>();
for (int i = 0; i < compressedImgList.size(); i++) {
if (i < pathList.size()) {
List<String> fileInfo = MyUriUtils.INSTANCE.getFileInfo(file);
if (fileInfo != null) {
pathResult.add(new CustomItem(compressedImgList.get(i), CustomItem.IMAGE_NORMAL, fileInfo.get(2), Integer.parseInt(fileInfo.get(0)), Integer.parseInt(fileInfo.get(1))));
}
}
if (pathResult.size() == 0) {
return;
}
LogUtil.print(pathResult);
uploadList.addAll(pathResult);
updateImagesData();
isOriginalImage = false;
LogUtil.print("isOriginalImage:" + isOriginalImage);
SharedPreferenceUtils.put(KEY_SP_ORIGINAL_IMAGE, isOriginalImage);
}
@Override
public void onFail(@NonNull Throwable e) {
toast(getString(R.string.picker_image_error));
if (pathResult.size() == 0) {
return;
}
}, 200, false, Constants.UPLOAD_IMAGE_MAX_SIZE, Constants.UPLOAD_IMAGE_MAX_FILE_LENGTH);
LogUtil.print(pathResult);
}
uploadList.addAll(pathResult);
updateImagesData();
isOriginalImage = false;
LogUtil.print("isOriginalImage:" + isOriginalImage);
SharedPreferenceUtils.put(KEY_SP_ORIGINAL_IMAGE, isOriginalImage);
}
@Override
public void onFail(@NonNull Throwable e) {
toast(getString(R.string.picker_image_error));
}
}, 200, false, Constants.UPLOAD_IMAGE_MAX_SIZE, Constants.UPLOAD_IMAGE_MAX_FILE_LENGTH);
}
}
});
}
}
});
}
@@ -705,7 +704,7 @@ public class PublishActivity extends BaseMvpActivity<IPublishView, PublishPresen
private void checkStoragePermission() {
if (Build.VERSION.SDK_INT >= 33){
if (Build.VERSION.SDK_INT >= 29){
if (pickMedia != null){
DialogUtil.INSTANCE.getDialog(this,new EasyAlertDialogHelper.OnDialogActionListener() {
@Override