[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_diamond_balance_is_insufficient">鉆石餘額不足,請先充值吧~</string>
<string name="treasure_to_charge">去充值</string> <string name="treasure_to_charge">去充值</string>
<string name="treasure_in_find_love">通過尋愛之旅</string> <string name="treasure_in_find_love">通過尋愛之旅</string>
<string name="give_application_storage_permission">請給予應用存儲權限,以正常保存圖片。</string>
</resources> </resources>

View File

@@ -1,5 +1,7 @@
package com.yizhuan.erban.community.photo; package com.yizhuan.erban.community.photo;
import android.Manifest;
import android.annotation.SuppressLint;
import android.app.Activity; import android.app.Activity;
import android.content.Intent; import android.content.Intent;
import android.view.View; import android.view.View;
@@ -131,6 +133,7 @@ public class BigPhotoActivity extends BaseViewBindingActivity<ActivityBigPhotoBi
finish(); finish();
} }
@SuppressLint("CheckResult")
@Override @Override
public void onLongClick(int position) { public void onLongClick(int position) {
if (!option.isSave()) { if (!option.isSave()) {
@@ -142,19 +145,25 @@ public class BigPhotoActivity extends BaseViewBindingActivity<ActivityBigPhotoBi
if (item == null) { if (item == null) {
return; return;
} }
checkPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE)
ExecutorCenter.getInstance().post(() -> { .compose(bindToLifecycle())
AlbumUtils.INSTANCE.addUrlToAlbum(context, item.getPath(), new Function1<Boolean, Unit>() { .subscribe(aBoolean -> {
@Override
public Unit invoke(Boolean aBoolean) {
if (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)); 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="video_easy_photos">視頻</string>
<string name="give_application_storage_permission">請給予應用存儲權限,以正常保存圖片。</string>
</resources> </resources>

View File

@@ -1,5 +1,6 @@
package com.netease.nim.uikit.business.session.activity; package com.netease.nim.uikit.business.session.activity;
import android.Manifest;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.graphics.Bitmap; import android.graphics.Bitmap;
@@ -14,6 +15,7 @@ import android.view.ViewGroup;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.TextView; import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.core.view.ViewCompat; import androidx.core.view.ViewCompat;
import androidx.viewpager.widget.PagerAdapter; import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager; 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.ToolBarOptions;
import com.netease.nim.uikit.common.activity.UI; 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;
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.BaseZoomableImageView;
import com.netease.nim.uikit.common.ui.imageview.ImageGestureListener; import com.netease.nim.uikit.common.ui.imageview.ImageGestureListener;
import com.netease.nim.uikit.common.util.media.BitmapDecoder; 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.netease.nimlib.sdk.msg.model.IMMessage;
import com.yizhuan.xchat_android_library.common.util.AlbumUtils; import com.yizhuan.xchat_android_library.common.util.AlbumUtils;
import com.yizhuan.xchat_android_library.common.util.ExecutorCenter; 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.ResUtil;
import com.yizhuan.xchat_android_library.utils.SingleToastUtil; import com.yizhuan.xchat_android_library.utils.SingleToastUtil;
@@ -532,17 +534,11 @@ public class WatchMessagePictureActivity extends UI {
return; return;
} }
alertDialog.clearData(); alertDialog.clearData();
String path = ((ImageAttachment) message.getAttachment()).getThumbPath();
if (TextUtils.isEmpty(path)) {
return;
}
String title; String title;
if (!TextUtils.isEmpty(((ImageAttachment) message.getAttachment()).getPath())) { if (!TextUtils.isEmpty(((ImageAttachment) message.getAttachment()).getPath())) {
title = getString(R.string.save_to_device); title = getString(R.string.save_to_device);
alertDialog.addItem(title, new onSeparateItemClickListener() { alertDialog.addItem(title, () -> {
if (PermissionUtil.checkAndRequestPermissionsInActivity(WatchMessagePictureActivity.this, getNeedPermissions())) {
@Override
public void onClick() {
savePicture(); 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};
}
} }