From a4bcb7cc94abb61f3133d7b4f01ad3e31fc529cf Mon Sep 17 00:00:00 2001
From: wushaocheng <15876365887@163.com>
Date: Thu, 30 Mar 2023 15:47:57 +0800
Subject: [PATCH] =?UTF-8?q?[Modify]=E4=BF=9D=E5=AD=98=E5=9B=BE=E7=89=87?=
=?UTF-8?q?=E6=9D=83=E9=99=90=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/src/main/res/values/strings.xml | 1 +
.../community/photo/BigPhotoActivity.java | 31 +++++++++-----
.../module_easyphoto/res/values/strings.xml | 1 +
.../activity/WatchMessagePictureActivity.java | 42 +++++++++++++++----
4 files changed, 55 insertions(+), 20 deletions(-)
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index a0dbc82b1..823935cb7 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -5077,5 +5077,6 @@
鉆石餘額不足,請先充值吧~
去充值
通過尋愛之旅
+ 請給予應用存儲權限,以正常保存圖片。
\ No newline at end of file
diff --git a/app/src/module_community/java/com/yizhuan/erban/community/photo/BigPhotoActivity.java b/app/src/module_community/java/com/yizhuan/erban/community/photo/BigPhotoActivity.java
index ea2cae413..a7aaeaacd 100644
--- a/app/src/module_community/java/com/yizhuan/erban/community/photo/BigPhotoActivity.java
+++ b/app/src/module_community/java/com/yizhuan/erban/community/photo/BigPhotoActivity.java
@@ -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 {
- AlbumUtils.INSTANCE.addUrlToAlbum(context, item.getPath(), new Function1() {
- @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() {
+ @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));
diff --git a/library/src/module_easyphoto/res/values/strings.xml b/library/src/module_easyphoto/res/values/strings.xml
index 83cbea959..910219054 100644
--- a/library/src/module_easyphoto/res/values/strings.xml
+++ b/library/src/module_easyphoto/res/values/strings.xml
@@ -74,5 +74,6 @@
視頻
+ 請給予應用存儲權限,以正常保存圖片。
diff --git a/nim_uikit/src/com/netease/nim/uikit/business/session/activity/WatchMessagePictureActivity.java b/nim_uikit/src/com/netease/nim/uikit/business/session/activity/WatchMessagePictureActivity.java
index a0e77074b..4e919d103 100644
--- a/nim_uikit/src/com/netease/nim/uikit/business/session/activity/WatchMessagePictureActivity.java
+++ b/nim_uikit/src/com/netease/nim/uikit/business/session/activity/WatchMessagePictureActivity.java
@@ -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};
+ }
+
}