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}; + } + }