From f860c96887e48671775fc9bd152c2a2142410689 Mon Sep 17 00:00:00 2001
From: wushaocheng <15876365887@163.com>
Date: Mon, 18 Sep 2023 11:43:10 +0800
Subject: [PATCH] =?UTF-8?q?[Modify]=E5=AE=89=E5=8D=9313=E9=80=82=E9=85=8D?=
=?UTF-8?q?=E5=92=8C=E8=B0=B7=E6=AD=8C=E5=85=85=E5=80=BC=E9=A1=B5=E9=9D=A2?=
=?UTF-8?q?=E5=8A=A0loading?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/src/main/AndroidManifest.xml | 12 ++++-
.../avroom/redpackage/RedPackageOpenDialog.kt | 4 +-
.../erban/common/dialog/PhotoDialog.kt | 20 ++++----
.../main/helper/NoticationsUiHelper.java | 46 +++++++++++++------
.../erban/ui/setting/bean/PermissionEntity.kt | 4 +-
.../user/activity/UserInfoModifyActivity.kt | 7 ++-
.../user/activity/UserModifyPhotosActivity.kt | 11 ++---
.../publish/view/PublishActivity.java | 7 ++-
.../music/activity/MusicListActivity.java | 3 +-
gradle.properties | 4 +-
library/src/main/AndroidManifest.xml | 7 ++-
.../easyphoto/models/album/AlbumModel.java | 3 +-
.../easyphoto/ui/EasyPhotosActivity.java | 24 ++++++----
.../easyphoto/ui/PuzzleActivity.java | 17 ++++---
.../easyphoto/utils/media/DurationUtils.java | 4 +-
15 files changed, 108 insertions(+), 65 deletions(-)
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 5fc65228d..14a9cfa56 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -51,8 +51,15 @@
tools:node="remove" />
-
-
+
+
+
+
+
@@ -72,6 +79,7 @@
+
() {
it.addListener(object : AnimatorListenerAdapter() {
var isCanceled = false
- override fun onAnimationCancel(animation: Animator?) {
+ override fun onAnimationCancel(animation: Animator) {
isCanceled = true
}
- override fun onAnimationEnd(animation: Animator?) {
+ override fun onAnimationEnd(animation: Animator) {
if (!isCanceled) {
openRedPackage()
}
diff --git a/app/src/main/java/com/yizhuan/erban/common/dialog/PhotoDialog.kt b/app/src/main/java/com/yizhuan/erban/common/dialog/PhotoDialog.kt
index 9e943d43f..0c215cbdd 100644
--- a/app/src/main/java/com/yizhuan/erban/common/dialog/PhotoDialog.kt
+++ b/app/src/main/java/com/yizhuan/erban/common/dialog/PhotoDialog.kt
@@ -3,6 +3,7 @@ package com.yizhuan.erban.common.dialog
import android.Manifest
import android.content.Intent
import android.net.Uri
+import android.os.Build
import android.os.Bundle
import android.provider.Settings
import android.text.TextUtils
@@ -73,16 +74,14 @@ class PhotoDialog : BaseDialogFragment(), EasyPermissions.Pe
private fun checkStoragePermission1() {
if (!EasyPermissions.hasPermissions(
- XChatApplication.gContext, Manifest.permission.WRITE_EXTERNAL_STORAGE,
- Manifest.permission.READ_EXTERNAL_STORAGE
+ XChatApplication.gContext, if (Build.VERSION.SDK_INT >= 33) Manifest.permission.READ_MEDIA_IMAGES else Manifest.permission.READ_EXTERNAL_STORAGE
)
) {
EasyPermissions.requestPermissions(
this,
getString(R.string.permission_storage_rationale),
PERMISSION_CODE_STORAGE_1,
- Manifest.permission.WRITE_EXTERNAL_STORAGE,
- Manifest.permission.READ_EXTERNAL_STORAGE
+ if (Build.VERSION.SDK_INT >= 33) Manifest.permission.READ_MEDIA_IMAGES else Manifest.permission.READ_EXTERNAL_STORAGE
)
} else {
PhotoProviderNew.photoProvider(this, resultCode = REQUEST_CODE_OPEN_PHOTO_PROVIDER)
@@ -90,7 +89,11 @@ class PhotoDialog : BaseDialogFragment(), EasyPermissions.Pe
}
private fun checkCameraPermission() {
- if (!EasyPermissions.hasPermissions(XChatApplication.gContext, Manifest.permission.CAMERA)) {
+ if (!EasyPermissions.hasPermissions(
+ XChatApplication.gContext,
+ Manifest.permission.CAMERA
+ )
+ ) {
EasyPermissions.requestPermissions(
this,
getString(R.string.permission_camera_rationale),
@@ -104,16 +107,15 @@ class PhotoDialog : BaseDialogFragment(), EasyPermissions.Pe
private fun checkStoragePermission2() {
if (!EasyPermissions.hasPermissions(
- XChatApplication.gContext, Manifest.permission.WRITE_EXTERNAL_STORAGE,
- Manifest.permission.READ_EXTERNAL_STORAGE
+ XChatApplication.gContext, if (Build.VERSION.SDK_INT >= 33)
+ Manifest.permission.READ_MEDIA_IMAGES else Manifest.permission.READ_EXTERNAL_STORAGE
)
) {
EasyPermissions.requestPermissions(
this,
getString(R.string.permission_storage_rationale),
PERMISSION_CODE_STORAGE_2,
- Manifest.permission.WRITE_EXTERNAL_STORAGE,
- Manifest.permission.READ_EXTERNAL_STORAGE
+ if (Build.VERSION.SDK_INT >= 33) Manifest.permission.READ_MEDIA_IMAGES else Manifest.permission.READ_EXTERNAL_STORAGE
)
} else {
PhotoProviderNew.photoCamera(this, REQUEST_CODE_OPEN_CAMERA_PROVIDER)
diff --git a/app/src/main/java/com/yizhuan/erban/main/helper/NoticationsUiHelper.java b/app/src/main/java/com/yizhuan/erban/main/helper/NoticationsUiHelper.java
index dc7b90292..7b4d8ae2c 100644
--- a/app/src/main/java/com/yizhuan/erban/main/helper/NoticationsUiHelper.java
+++ b/app/src/main/java/com/yizhuan/erban/main/helper/NoticationsUiHelper.java
@@ -1,6 +1,12 @@
package com.yizhuan.erban.main.helper;
+import static android.Manifest.permission.POST_NOTIFICATIONS;
+
import android.app.Activity;
+import android.content.pm.PackageManager;
+import android.os.Build;
+
+import androidx.core.app.ActivityCompat;
import com.yizhuan.erban.R;
import com.yizhuan.erban.common.widget.dialog.DialogManager;
@@ -35,23 +41,35 @@ public class NoticationsUiHelper {
private static final long CACHE_DISTANCE_TIME = 3 * TimeUtils.MILLIS_OF_A_DAY;
public static void handle(Activity activity, DialogManager dialogManager) {
- if (NotificationsUtils.isNotificationEnabled(activity)) {
+ if (Build.VERSION.SDK_INT >= 33) {
+ if (ActivityCompat.checkSelfPermission(activity, POST_NOTIFICATIONS) == PackageManager.PERMISSION_DENIED) {
+ if (!ActivityCompat.shouldShowRequestPermissionRationale(activity, POST_NOTIFICATIONS)) {
+ enableNotification(activity, dialogManager);
+ } else {
+ ActivityCompat.requestPermissions(activity, new String[]{POST_NOTIFICATIONS}, 100);
+ }
+ }
+ } else if (NotificationsUtils.isNotificationEnabled(activity)) {
return;
}
+ enableNotification(activity, dialogManager);
+ }
+
+ private static void enableNotification(Activity activity, DialogManager dialogManager) {
Single.create(new SingleOnSubscribe() {
- @Override
- public void subscribe(SingleEmitter emitter) throws Exception {
- long lastDialogTime = (long) SharedPreferenceUtils
- .get(KEY_NOTICATIONS_DIALOG_TIME, 0L);
- long currTime = System.currentTimeMillis();
- if (lastDialogTime == 0L || currTime - lastDialogTime >= CACHE_DISTANCE_TIME) {
- //超过三天需要重新弹窗
- emitter.onSuccess("");
- return;
- }
- emitter.onError(new Throwable("no need to show notications dialog"));
- }
- })
+ @Override
+ public void subscribe(SingleEmitter emitter) throws Exception {
+ long lastDialogTime = (long) SharedPreferenceUtils
+ .get(KEY_NOTICATIONS_DIALOG_TIME, 0L);
+ long currTime = System.currentTimeMillis();
+ if (lastDialogTime == 0L || currTime - lastDialogTime >= CACHE_DISTANCE_TIME) {
+ //超过三天需要重新弹窗
+ emitter.onSuccess("");
+ return;
+ }
+ emitter.onError(new Throwable("no need to show notications dialog"));
+ }
+ })
.flatMap(new Function>() {
@Override
public SingleSource apply(String s) throws Exception {
diff --git a/app/src/main/java/com/yizhuan/erban/ui/setting/bean/PermissionEntity.kt b/app/src/main/java/com/yizhuan/erban/ui/setting/bean/PermissionEntity.kt
index f7dc56b6b..7bcd2de1d 100644
--- a/app/src/main/java/com/yizhuan/erban/ui/setting/bean/PermissionEntity.kt
+++ b/app/src/main/java/com/yizhuan/erban/ui/setting/bean/PermissionEntity.kt
@@ -1,6 +1,7 @@
package com.yizhuan.erban.ui.setting.bean
import android.Manifest
+import android.os.Build
import com.yizhuan.erban.R
import com.yizhuan.xchat_android_core.utils.TextUtils
import com.yizhuan.xchat_android_library.utils.ResUtil
@@ -36,8 +37,7 @@ enum class PermissionEntity(
STORAGE(
ResUtil.getString(R.string.setting_bean_permissionentity_011), ResUtil.getString(R.string.setting_bean_permissionentity_012), R.drawable.icon_permission_storage,
arrayOf(
- Manifest.permission.READ_EXTERNAL_STORAGE,
- Manifest.permission.WRITE_EXTERNAL_STORAGE
+ if (Build.VERSION.SDK_INT >= 33) Manifest.permission.READ_MEDIA_IMAGES else Manifest.permission.READ_EXTERNAL_STORAGE
)
);
diff --git a/app/src/main/java/com/yizhuan/erban/ui/user/activity/UserInfoModifyActivity.kt b/app/src/main/java/com/yizhuan/erban/ui/user/activity/UserInfoModifyActivity.kt
index 595c5ab21..a9a1c6066 100644
--- a/app/src/main/java/com/yizhuan/erban/ui/user/activity/UserInfoModifyActivity.kt
+++ b/app/src/main/java/com/yizhuan/erban/ui/user/activity/UserInfoModifyActivity.kt
@@ -6,6 +6,7 @@ import android.content.Intent
import android.graphics.Bitmap
import android.graphics.Color
import android.net.Uri
+import android.os.Build
import android.os.Bundle
import android.provider.Settings
import android.text.TextUtils
@@ -435,16 +436,14 @@ class UserInfoModifyActivity : BaseViewBindingActivity= 33) Manifest.permission.READ_MEDIA_IMAGES else Manifest.permission.READ_EXTERNAL_STORAGE
)
) {
EasyPermissions.requestPermissions(
this,
getString(R.string.permission_storage_rationale),
PERMISSION_CODE_STORAGE,
- Manifest.permission.WRITE_EXTERNAL_STORAGE,
- Manifest.permission.READ_EXTERNAL_STORAGE
+ if (Build.VERSION.SDK_INT >= 33) Manifest.permission.READ_MEDIA_IMAGES else Manifest.permission.READ_EXTERNAL_STORAGE
)
} else {
mUri = Uri.parse("file://${FileHelper.getRootCacheDir()?.path}/${getNowTime()}.jpg")
diff --git a/app/src/main/java/com/yizhuan/erban/ui/user/activity/UserModifyPhotosActivity.kt b/app/src/main/java/com/yizhuan/erban/ui/user/activity/UserModifyPhotosActivity.kt
index 4ab14dde4..08f642ab6 100644
--- a/app/src/main/java/com/yizhuan/erban/ui/user/activity/UserModifyPhotosActivity.kt
+++ b/app/src/main/java/com/yizhuan/erban/ui/user/activity/UserModifyPhotosActivity.kt
@@ -6,6 +6,7 @@ import android.app.Activity
import android.content.Intent
import android.graphics.Bitmap
import android.net.Uri
+import android.os.Build
import android.os.Bundle
import android.provider.Settings
import android.view.View
@@ -20,7 +21,6 @@ import com.yalantis.ucrop.UCrop
import com.yizhuan.erban.R
import com.yizhuan.erban.application.XChatApplication
import com.yizhuan.erban.base.TitleBar
-import com.yizhuan.xchat_android_library.common.file.FileHelper
import com.yizhuan.erban.common.util.BitmapUtil
import com.yizhuan.erban.ui.user.adapter.UserModifyPhotosAdapter
import com.yizhuan.erban.ui.user.adapter.UserModifyPhotosAdapter.PhotoItemClickListener
@@ -30,6 +30,7 @@ import com.yizhuan.xchat_android_core.user.UserModel
import com.yizhuan.xchat_android_core.user.bean.UserInfo
import com.yizhuan.xchat_android_core.user.bean.UserPhoto
import com.yizhuan.xchat_android_core.utils.net.BeanObserver
+import com.yizhuan.xchat_android_library.common.file.FileHelper
import com.yizhuan.xchat_android_library.common.photo.PhotoProviderNew
import com.yizhuan.xchat_android_library.common.util.PhotoCompressCallback
import com.yizhuan.xchat_android_library.common.util.PhotoCompressUtil
@@ -219,16 +220,14 @@ class UserModifyPhotosActivity : TakePhotoActivity(), PhotoItemClickListener,
private fun checkStoragePermission() {
if (!EasyPermissions.hasPermissions(
this,
- Manifest.permission.WRITE_EXTERNAL_STORAGE,
- Manifest.permission.READ_EXTERNAL_STORAGE
+ if (Build.VERSION.SDK_INT >= 33) Manifest.permission.READ_MEDIA_IMAGES else Manifest.permission.READ_EXTERNAL_STORAGE
)
) {
EasyPermissions.requestPermissions(
this,
getString(R.string.permission_storage_rationale),
- PERMISSION_CODE_STORAGE,
- Manifest.permission.WRITE_EXTERNAL_STORAGE,
- Manifest.permission.READ_EXTERNAL_STORAGE
+ PERMISSION_CODE_STORAGE,
+ if (Build.VERSION.SDK_INT >= 33) Manifest.permission.READ_MEDIA_IMAGES else Manifest.permission.READ_EXTERNAL_STORAGE
)
} else {
mUri = Uri.parse("file://${FileHelper.getRootCacheDir()?.path}/${getNowTime()}.jpg")
diff --git a/app/src/module_community/java/com/yizhuan/erban/community/publish/view/PublishActivity.java b/app/src/module_community/java/com/yizhuan/erban/community/publish/view/PublishActivity.java
index fa1ae2712..b196ae164 100644
--- a/app/src/module_community/java/com/yizhuan/erban/community/publish/view/PublishActivity.java
+++ b/app/src/module_community/java/com/yizhuan/erban/community/publish/view/PublishActivity.java
@@ -4,6 +4,7 @@ package com.yizhuan.erban.community.publish.view;
import android.Manifest;
import android.content.Context;
import android.content.Intent;
+import android.os.Build;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextUtils;
@@ -619,16 +620,14 @@ public class PublishActivity extends BaseMvpActivity= 33 ? Manifest.permission.READ_MEDIA_IMAGES : Manifest.permission.READ_EXTERNAL_STORAGE
)
) {
EasyPermissions.requestPermissions(
this,
getString(R.string.permission_storage_rationale),
PERMISSION_CODE_STORAGE,
- Manifest.permission.WRITE_EXTERNAL_STORAGE,
- Manifest.permission.READ_EXTERNAL_STORAGE
+ Build.VERSION.SDK_INT >= 33 ? Manifest.permission.READ_MEDIA_IMAGES : Manifest.permission.READ_EXTERNAL_STORAGE
);
} else {
PhotoProvider.photoProvider(
diff --git a/app/src/module_music/java/com/yizhuan/tutu/music/activity/MusicListActivity.java b/app/src/module_music/java/com/yizhuan/tutu/music/activity/MusicListActivity.java
index 50d32532f..ab4808b1a 100644
--- a/app/src/module_music/java/com/yizhuan/tutu/music/activity/MusicListActivity.java
+++ b/app/src/module_music/java/com/yizhuan/tutu/music/activity/MusicListActivity.java
@@ -4,6 +4,7 @@ import android.Manifest;
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Intent;
+import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
@@ -84,7 +85,7 @@ public class MusicListActivity extends BaseMvpActivity= 33 ? Manifest.permission.READ_MEDIA_AUDIO : Manifest.permission.READ_EXTERNAL_STORAGE)
.compose(bindToLifecycle())
.subscribe(aBoolean -> {
if (!aBoolean) {
diff --git a/gradle.properties b/gradle.properties
index d2e3478c8..45282c168 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -25,9 +25,9 @@ only_arm64=false
channel_file=channel.txt
CRASHLYTICS_COLLECTION_ENABLED=false
-COMPILE_SDK_VERSION=32
+COMPILE_SDK_VERSION=33
MIN_SDK_VERSION=21
-TARGET_SDK_VERSION=32
+TARGET_SDK_VERSION=33
version_name=1.10.4
version_code=1004
diff --git a/library/src/main/AndroidManifest.xml b/library/src/main/AndroidManifest.xml
index e5b7519f6..eb9e9db67 100644
--- a/library/src/main/AndroidManifest.xml
+++ b/library/src/main/AndroidManifest.xml
@@ -3,8 +3,13 @@
xmlns:android="http://schemas.android.com/apk/res/android">
-
+
+
+
+
diff --git a/library/src/module_easyphoto/java/com/yizhuan/xchat_android_library/easyphoto/models/album/AlbumModel.java b/library/src/module_easyphoto/java/com/yizhuan/xchat_android_library/easyphoto/models/album/AlbumModel.java
index 8d003de31..f06c5de91 100644
--- a/library/src/module_easyphoto/java/com/yizhuan/xchat_android_library/easyphoto/models/album/AlbumModel.java
+++ b/library/src/module_easyphoto/java/com/yizhuan/xchat_android_library/easyphoto/models/album/AlbumModel.java
@@ -7,6 +7,7 @@ import android.content.Context;
import android.database.Cursor;
import android.graphics.BitmapFactory;
import android.net.Uri;
+import android.os.Build;
import android.provider.MediaStore;
import android.text.TextUtils;
@@ -60,7 +61,7 @@ public class AlbumModel {
public void query(Context context, final CallBack callBack) {
final Context appCxt = context.getApplicationContext();
if (PermissionChecker.checkSelfPermission(context,
- Manifest.permission.READ_EXTERNAL_STORAGE) != PermissionChecker.PERMISSION_GRANTED) {
+ Build.VERSION.SDK_INT >= 33 ? Manifest.permission.READ_MEDIA_IMAGES : Manifest.permission.READ_EXTERNAL_STORAGE) != PermissionChecker.PERMISSION_GRANTED) {
if (null != callBack) callBack.onAlbumWorkedCallBack();
return;
}
diff --git a/library/src/module_easyphoto/java/com/yizhuan/xchat_android_library/easyphoto/ui/EasyPhotosActivity.java b/library/src/module_easyphoto/java/com/yizhuan/xchat_android_library/easyphoto/ui/EasyPhotosActivity.java
index 3060c81e1..8a6c711cb 100644
--- a/library/src/module_easyphoto/java/com/yizhuan/xchat_android_library/easyphoto/ui/EasyPhotosActivity.java
+++ b/library/src/module_easyphoto/java/com/yizhuan/xchat_android_library/easyphoto/ui/EasyPhotosActivity.java
@@ -210,11 +210,9 @@ public class EasyPhotosActivity extends AppCompatActivity implements AlbumItemsA
protected String[] getNeedPermissions() {
if (Setting.isShowCamera) {
return new String[]{Manifest.permission.CAMERA,
- Manifest.permission.WRITE_EXTERNAL_STORAGE,
- Manifest.permission.READ_EXTERNAL_STORAGE};
+ Build.VERSION.SDK_INT >= 33 ? Manifest.permission.READ_MEDIA_IMAGES : Manifest.permission.READ_EXTERNAL_STORAGE};
} else {
- return new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE,
- Manifest.permission.READ_EXTERNAL_STORAGE};
+ return new String[]{Build.VERSION.SDK_INT >= 33 ? Manifest.permission.READ_MEDIA_IMAGES : Manifest.permission.READ_EXTERNAL_STORAGE};
}
}
@@ -499,6 +497,7 @@ public class EasyPhotosActivity extends AppCompatActivity implements AlbumItemsA
shouldShowMenuDone();
}
+ @SuppressLint("Range")
private Photo getPhoto(Uri uri) {
Photo p = null;
String path;
@@ -625,12 +624,17 @@ public class EasyPhotosActivity extends AppCompatActivity implements AlbumItemsA
}
}
- final Photo photo = new Photo(mTempImageFile.getName(), uri,
- mTempImageFile.getAbsolutePath(),
- mTempImageFile.lastModified() / 1000, width, height, orientation,
- mTempImageFile.length(),
- DurationUtils.getDuration(mTempImageFile.getAbsolutePath()),
- options.outMimeType);
+ final Photo photo;
+ try {
+ photo = new Photo(mTempImageFile.getName(), uri,
+ mTempImageFile.getAbsolutePath(),
+ mTempImageFile.lastModified() / 1000, width, height, orientation,
+ mTempImageFile.length(),
+ DurationUtils.getDuration(mTempImageFile.getAbsolutePath()),
+ options.outMimeType);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
runOnUiThread(new Runnable() {
@Override
diff --git a/library/src/module_easyphoto/java/com/yizhuan/xchat_android_library/easyphoto/ui/PuzzleActivity.java b/library/src/module_easyphoto/java/com/yizhuan/xchat_android_library/easyphoto/ui/PuzzleActivity.java
index 4a14d1033..95657c357 100644
--- a/library/src/module_easyphoto/java/com/yizhuan/xchat_android_library/easyphoto/ui/PuzzleActivity.java
+++ b/library/src/module_easyphoto/java/com/yizhuan/xchat_android_library/easyphoto/ui/PuzzleActivity.java
@@ -7,6 +7,7 @@ import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
+import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.view.WindowManager;
@@ -459,10 +460,15 @@ public class PuzzleActivity extends AppCompatActivity implements View.OnClickLis
public void onSuccess(File file) {
Intent intent = new Intent();
- Photo photo = new Photo(file.getName(), UriUtils.getUri(PuzzleActivity.this,
- file), file.getAbsolutePath(), file.lastModified() / 1000,
- puzzleView.getWidth(), puzzleView.getHeight(), 0, file.length(),
- DurationUtils.getDuration(file.getAbsolutePath()), "image/png");
+ Photo photo = null;
+ try {
+ photo = new Photo(file.getName(), UriUtils.getUri(PuzzleActivity.this,
+ file), file.getAbsolutePath(), file.lastModified() / 1000,
+ puzzleView.getWidth(), puzzleView.getHeight(), 0, file.length(),
+ DurationUtils.getDuration(file.getAbsolutePath()), "image/png");
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
intent.putExtra(EasyPhotos.RESULT_PHOTOS, photo);
setResult(RESULT_OK, intent);
PuzzleActivity.this.finish();
@@ -576,8 +582,7 @@ public class PuzzleActivity extends AppCompatActivity implements View.OnClickLis
protected String[] getNeedPermissions() {
return new String[]{Manifest.permission.CAMERA,
- Manifest.permission.WRITE_EXTERNAL_STORAGE,
- Manifest.permission.READ_EXTERNAL_STORAGE};
+ Build.VERSION.SDK_INT >= 33 ? Manifest.permission.READ_MEDIA_IMAGES : Manifest.permission.READ_EXTERNAL_STORAGE};
}
@Override
diff --git a/library/src/module_easyphoto/java/com/yizhuan/xchat_android_library/easyphoto/utils/media/DurationUtils.java b/library/src/module_easyphoto/java/com/yizhuan/xchat_android_library/easyphoto/utils/media/DurationUtils.java
index a2ec489df..00d4fc8ee 100644
--- a/library/src/module_easyphoto/java/com/yizhuan/xchat_android_library/easyphoto/utils/media/DurationUtils.java
+++ b/library/src/module_easyphoto/java/com/yizhuan/xchat_android_library/easyphoto/utils/media/DurationUtils.java
@@ -3,6 +3,8 @@ package com.yizhuan.xchat_android_library.easyphoto.utils.media;
import android.media.MediaMetadataRetriever;
import android.text.format.DateUtils;
+import java.io.IOException;
+
/**
* DurationUtils
* Create By lishilin On 2019/3/25
@@ -15,7 +17,7 @@ public class DurationUtils {
* @param path path
* @return duration
*/
- public static long getDuration(String path) {
+ public static long getDuration(String path) throws IOException {
MediaMetadataRetriever mmr = null;
try {
mmr = new MediaMetadataRetriever();