[Modify]保存图片权限修改

This commit is contained in:
wushaocheng
2023-03-30 15:47:57 +08:00
parent 79c7698150
commit a4bcb7cc94
4 changed files with 55 additions and 20 deletions

View File

@@ -5077,5 +5077,6 @@
<string name="treasure_diamond_balance_is_insufficient">鉆石餘額不足,請先充值吧~</string>
<string name="treasure_to_charge">去充值</string>
<string name="treasure_in_find_love">通過尋愛之旅</string>
<string name="give_application_storage_permission">請給予應用存儲權限,以正常保存圖片。</string>
</resources>

View File

@@ -1,5 +1,7 @@
package com.yizhuan.erban.community.photo;
import android.Manifest;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.view.View;
@@ -131,6 +133,7 @@ public class BigPhotoActivity extends BaseViewBindingActivity<ActivityBigPhotoBi
finish();
}
@SuppressLint("CheckResult")
@Override
public void onLongClick(int position) {
if (!option.isSave()) {
@@ -142,19 +145,25 @@ public class BigPhotoActivity extends BaseViewBindingActivity<ActivityBigPhotoBi
if (item == null) {
return;
}
ExecutorCenter.getInstance().post(() -> {
AlbumUtils.INSTANCE.addUrlToAlbum(context, item.getPath(), new Function1<Boolean, Unit>() {
@Override
public Unit invoke(Boolean aBoolean) {
checkPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE)
.compose(bindToLifecycle())
.subscribe(aBoolean -> {
if (aBoolean) {
toast(ResUtil.getString(R.string.community_photo_bigphotoactivity_05));
ExecutorCenter.getInstance().post(() -> {
AlbumUtils.INSTANCE.addUrlToAlbum(context, item.getPath(), new Function1<Boolean, Unit>() {
@Override
public Unit invoke(Boolean aBoolean) {
if (aBoolean) {
toast(ResUtil.getString(R.string.community_photo_bigphotoactivity_05));
}
return null;
}
});
});
} else {
toast(ResUtil.getString(R.string.give_application_storage_permission));
}
return null;
}
});
});
});
}));
getDialogManager().showCommonPopupDialog(listBtn, ResUtil.getString(R.string.community_photo_bigphotoactivity_07));

View File

@@ -74,5 +74,6 @@
<string name="video_easy_photos">視頻</string>
<string name="give_application_storage_permission">請給予應用存儲權限,以正常保存圖片。</string>
</resources>

View File

@@ -1,5 +1,6 @@
package com.netease.nim.uikit.business.session.activity;
import android.Manifest;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
@@ -14,6 +15,7 @@ import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.core.view.ViewCompat;
import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager;
@@ -24,7 +26,6 @@ import com.netease.nim.uikit.api.wrapper.NimToolBarOptions;
import com.netease.nim.uikit.common.activity.ToolBarOptions;
import com.netease.nim.uikit.common.activity.UI;
import com.netease.nim.uikit.common.ui.dialog.CustomAlertDialog;
import com.netease.nim.uikit.common.ui.dialog.CustomAlertDialog.onSeparateItemClickListener;
import com.netease.nim.uikit.common.ui.imageview.BaseZoomableImageView;
import com.netease.nim.uikit.common.ui.imageview.ImageGestureListener;
import com.netease.nim.uikit.common.util.media.BitmapDecoder;
@@ -44,6 +45,7 @@ import com.netease.nimlib.sdk.msg.constant.MsgTypeEnum;
import com.netease.nimlib.sdk.msg.model.IMMessage;
import com.yizhuan.xchat_android_library.common.util.AlbumUtils;
import com.yizhuan.xchat_android_library.common.util.ExecutorCenter;
import com.yizhuan.xchat_android_library.easyphoto.utils.permission.PermissionUtil;
import com.yizhuan.xchat_android_library.utils.ResUtil;
import com.yizhuan.xchat_android_library.utils.SingleToastUtil;
@@ -532,17 +534,11 @@ public class WatchMessagePictureActivity extends UI {
return;
}
alertDialog.clearData();
String path = ((ImageAttachment) message.getAttachment()).getThumbPath();
if (TextUtils.isEmpty(path)) {
return;
}
String title;
if (!TextUtils.isEmpty(((ImageAttachment) message.getAttachment()).getPath())) {
title = getString(R.string.save_to_device);
alertDialog.addItem(title, new onSeparateItemClickListener() {
@Override
public void onClick() {
alertDialog.addItem(title, () -> {
if (PermissionUtil.checkAndRequestPermissionsInActivity(WatchMessagePictureActivity.this, getNeedPermissions())) {
savePicture();
}
});
@@ -571,4 +567,32 @@ public class WatchMessagePictureActivity extends UI {
});
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
@NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
PermissionUtil.onPermissionResult(this, permissions, grantResults,
new PermissionUtil.PermissionCallBack() {
@Override
public void onSuccess() {
savePicture();
}
@Override
public void onShouldShow() {
SingleToastUtil.showToastShort(R.string.give_application_storage_permission);
}
@Override
public void onFailed() {
SingleToastUtil.showToastShort(R.string.give_application_storage_permission);
}
});
}
protected String[] getNeedPermissions() {
return new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE};
}
}