[Modify]私聊获取图片失败bug修复
This commit is contained in:
@@ -2,6 +2,7 @@ package com.nnbc123.app.ui.setting;
|
|||||||
|
|
||||||
import android.annotation.SuppressLint;
|
import android.annotation.SuppressLint;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Environment;
|
import android.os.Environment;
|
||||||
import android.text.SpannableString;
|
import android.text.SpannableString;
|
||||||
@@ -30,6 +31,7 @@ import com.nnbc123.app.ui.login.ShowBindPhoneActivity;
|
|||||||
import com.nnbc123.app.ui.user.AboutActivity;
|
import com.nnbc123.app.ui.user.AboutActivity;
|
||||||
import com.nnbc123.app.ui.webview.CommonWebViewActivity;
|
import com.nnbc123.app.ui.webview.CommonWebViewActivity;
|
||||||
import com.nnbc123.app.ui.withdraw.BinderAlipayActivity;
|
import com.nnbc123.app.ui.withdraw.BinderAlipayActivity;
|
||||||
|
import com.nnbc123.library.common.file.FileHelper;
|
||||||
import com.nnbc123.library.utils.SingleToastUtil;
|
import com.nnbc123.library.utils.SingleToastUtil;
|
||||||
import com.nnbc123.library.utils.config.BasicConfig;
|
import com.nnbc123.library.utils.config.BasicConfig;
|
||||||
import com.nnbc123.library.utils.file.JXFileUtils;
|
import com.nnbc123.library.utils.file.JXFileUtils;
|
||||||
@@ -238,7 +240,12 @@ public class SettingActivity extends BaseActivity implements View.OnClickListene
|
|||||||
|
|
||||||
SharedPreferenceUtils.remove(SharedPreferenceUtils.SEARCH_HISTORY + AuthModel.get().getCurrentUid());
|
SharedPreferenceUtils.remove(SharedPreferenceUtils.SEARCH_HISTORY + AuthModel.get().getCurrentUid());
|
||||||
|
|
||||||
File dataDir = new File(new File(Environment.getExternalStorageDirectory(), "Android"), "data");
|
File dataDir;
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
|
||||||
|
dataDir = new File(new File(FileHelper.getRootCacheDir().getPath(), "Android"), "data");
|
||||||
|
}else {
|
||||||
|
dataDir = new File(new File(Environment.getExternalStorageDirectory(), "Android"), "data");
|
||||||
|
}
|
||||||
File appCacheDir = new File(new File(dataDir, context.getPackageName()), "cache");
|
File appCacheDir = new File(new File(dataDir, context.getPackageName()), "cache");
|
||||||
JXFileUtils.deleteFile(appCacheDir);
|
JXFileUtils.deleteFile(appCacheDir);
|
||||||
|
|
||||||
|
@@ -1,4 +1,44 @@
|
|||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
package="com.nnbc123.library">
|
package="com.nnbc123.library">
|
||||||
|
|
||||||
|
<uses-permission android:name="android.permission.CAMERA" />
|
||||||
|
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
||||||
|
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
|
||||||
|
tools:ignore="ScopedStorage" />
|
||||||
|
|
||||||
|
<application>
|
||||||
|
<activity
|
||||||
|
android:name=".easypermisssion.AppSettingsDialogHolderActivity"
|
||||||
|
android:exported="false"
|
||||||
|
android:label=""
|
||||||
|
android:theme="@style/EasyPermissions.Transparent" />
|
||||||
|
<activity
|
||||||
|
android:name=".easyphoto.ui.EasyPhotosActivity"
|
||||||
|
android:configChanges="screenSize|orientation|keyboardHidden|mcc|mnc|locale|touchscreen|screenLayout|keyboard|navigation|fontScale|uiMode|smallestScreenSize|layoutDirection"
|
||||||
|
android:exported="false"
|
||||||
|
android:screenOrientation="portrait"
|
||||||
|
android:theme="@style/EasyPhotosTheme" />
|
||||||
|
<activity
|
||||||
|
android:name=".easyphoto.ui.PreviewActivity"
|
||||||
|
android:configChanges="screenSize|orientation|keyboardHidden|mcc|mnc|locale|touchscreen|screenLayout|keyboard|navigation|fontScale|uiMode|smallestScreenSize|layoutDirection"
|
||||||
|
android:exported="false"
|
||||||
|
android:screenOrientation="portrait"
|
||||||
|
android:theme="@style/EasyPhotosFullscreenTheme" />
|
||||||
|
<activity
|
||||||
|
android:name=".easyphoto.ui.PuzzleActivity"
|
||||||
|
android:configChanges="screenSize|orientation|keyboardHidden|mcc|mnc|locale|touchscreen|screenLayout|keyboard|navigation|fontScale|uiMode|smallestScreenSize|layoutDirection"
|
||||||
|
android:exported="false"
|
||||||
|
android:screenOrientation="portrait"
|
||||||
|
android:theme="@style/EasyPhotosTheme"
|
||||||
|
android:windowSoftInputMode="adjustPan" />
|
||||||
|
|
||||||
|
<activity
|
||||||
|
android:name=".easyphoto.ui.PuzzleSelectorActivity"
|
||||||
|
android:configChanges="screenSize|orientation|keyboardHidden|mcc|mnc|locale|touchscreen|screenLayout|keyboard|navigation|fontScale|uiMode|smallestScreenSize|layoutDirection"
|
||||||
|
android:exported="false"
|
||||||
|
android:screenOrientation="portrait"
|
||||||
|
android:theme="@style/EasyPhotosTheme" />
|
||||||
|
</application>
|
||||||
|
|
||||||
</manifest>
|
</manifest>
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
<resources>
|
<resources>
|
||||||
<string name="text_bitmap_too_large">上傳失敗,圖片太大啦~</string>
|
<string name="text_bitmap_too_large">上传失败,图片太大啦~</string>
|
||||||
<string name="text_bitmap_too_small">上傳圖片不能小於20kb</string>
|
<string name="text_bitmap_too_small">上传图片不能小于20kb</string>
|
||||||
<string name="android_core_env_01">請輸入正確的環境</string>
|
<string name="android_core_env_01">请输入正确的环境</string>
|
||||||
<string name="android_core_env_02">請輸入正確的環境</string>
|
<string name="android_core_env_02">请输入正确的环境</string>
|
||||||
<string name="android_core_env_03">請先初始化環境</string>
|
<string name="android_core_env_03">请先初始化环境</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
<resources>
|
<resources>
|
||||||
<string name="rationale_ask">如果沒有請求的權限,此應用程式可能無法正常工作。</string>
|
<string name="rationale_ask">如果没有请求的权限,此应用程式可能无法正常工作。</string>
|
||||||
<string name="rationale_ask_again">如果沒有請求的權限,此應用程式可能無法正常工作,打開應用設置頁面以修改應用權限。</string>
|
<string name="rationale_ask_again">如果没有请求的权限,此应用程式可能无法正常工作,打开应用设置页面以修改应用权限。</string>
|
||||||
<string name="title_settings_dialog">所需權限</string>
|
<string name="title_settings_dialog">所需权限</string>
|
||||||
<string name="sure">確定</string>
|
<string name="sure">确定</string>
|
||||||
<string name="cancel">取消</string>
|
<string name="cancel">取消</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
@@ -1,50 +1,50 @@
|
|||||||
|
|
||||||
<resources>
|
<resources>
|
||||||
|
|
||||||
<string name="selector_folder_all_easy_photos">所有圖片</string>
|
<string name="selector_folder_all_easy_photos">所有图片</string>
|
||||||
|
|
||||||
<string name="selector_folder_all_video_photo_easy_photos">圖片和視頻</string>
|
<string name="selector_folder_all_video_photo_easy_photos">图片和视频</string>
|
||||||
|
|
||||||
<string name="selector_folder_video_easy_photos">所有視頻</string>
|
<string name="selector_folder_video_easy_photos">所有视频</string>
|
||||||
|
|
||||||
<string name="selector_easy_photos">選擇</string>
|
<string name="selector_easy_photos">选择</string>
|
||||||
|
|
||||||
<!--http://stackoverflow.com/questions/17502824/whats-wrong-with-this-format-string-->
|
<!--http://stackoverflow.com/questions/17502824/whats-wrong-with-this-format-string-->
|
||||||
<string name="selector_action_done_easy_photos">完成(%1$d/%2$d)</string>
|
<string name="selector_action_done_easy_photos">完成(%1$d/%2$d)</string>
|
||||||
|
|
||||||
<string name="selector_preview_easy_photos">預覽</string>
|
<string name="selector_preview_easy_photos">预览</string>
|
||||||
|
|
||||||
<string name="selector_reach_max_hint_easy_photos">超出最大選擇數</string>
|
<string name="selector_reach_max_hint_easy_photos">超出最大选择数</string>
|
||||||
|
|
||||||
<string name="selector_reach_max_image_hint_easy_photos">最多只能選擇%d張圖片</string>
|
<string name="selector_reach_max_image_hint_easy_photos">最多只能选择%d张图片</string>
|
||||||
|
|
||||||
<string name="selector_reach_max_video_hint_easy_photos">最多只能選擇%d個視頻</string>
|
<string name="selector_reach_max_video_hint_easy_photos">最多只能选择%d个视频</string>
|
||||||
|
|
||||||
<string name="selector_single_type_hint_easy_photos">需要選擇同種類型的文件</string>
|
<string name="selector_single_type_hint_easy_photos">需要选择同种类型的文件</string>
|
||||||
|
|
||||||
<string name="msg_no_camera_easy_photos">無法啟動相機!</string>
|
<string name="msg_no_camera_easy_photos">无法启动相机!</string>
|
||||||
|
|
||||||
<string name="camera_temp_file_error_easy_photos">圖片錯誤</string>
|
<string name="camera_temp_file_error_easy_photos">图片错误</string>
|
||||||
|
|
||||||
<string name="selector_permission_error_easy_photos">權限錯誤,無法正常工作!</string>
|
<string name="selector_permission_error_easy_photos">权限错误,无法正常工作!</string>
|
||||||
|
|
||||||
<string name="selector_image_size_error_easy_photos">圖片的寬度必須大於%1$d,高度必須大於%2$d</string>
|
<string name="selector_image_size_error_easy_photos">图片的宽度必须大于%1$d,高度必须大于%2$d</string>
|
||||||
|
|
||||||
<string name="selector_image_type_error_easy_photos">不支持此圖片格式</string>
|
<string name="selector_image_type_error_easy_photos">不支持此图片格式</string>
|
||||||
|
|
||||||
<string name="edit_easy_photos">編輯</string>
|
<string name="edit_easy_photos">编辑</string>
|
||||||
|
|
||||||
<string name="empty_easy_photos">清空</string>
|
<string name="empty_easy_photos">清空</string>
|
||||||
|
|
||||||
<string name="no_photos_easy_photos">沒有符合要求的圖片,拍一張吧</string>
|
<string name="no_photos_easy_photos">没有符合要求的图片,拍一张吧</string>
|
||||||
|
|
||||||
<string name="no_videos_easy_photos">沒有符合要求的視頻</string>
|
<string name="no_videos_easy_photos">没有符合要求的视频</string>
|
||||||
|
|
||||||
<string name="permissions_again_easy_photos">請點擊並允許相關權限</string>
|
<string name="permissions_again_easy_photos">请点击并允许相关权限</string>
|
||||||
|
|
||||||
<string name="permissions_die_easy_photos">請點擊並在設置中允許相關權限</string>
|
<string name="permissions_die_easy_photos">请点击并在设置中允许相关权限</string>
|
||||||
|
|
||||||
<string name="original_easy_photos">原圖</string>
|
<string name="original_easy_photos">原图</string>
|
||||||
|
|
||||||
<string name="preview_current_number_easy_photos">%1$d/%2$d</string>
|
<string name="preview_current_number_easy_photos">%1$d/%2$d</string>
|
||||||
|
|
||||||
@@ -58,22 +58,22 @@
|
|||||||
|
|
||||||
<string name="text_sticker_date_easy_photos">日期</string>
|
<string name="text_sticker_date_easy_photos">日期</string>
|
||||||
|
|
||||||
<string name="text_sticker_hint_easy_photos">雙擊編輯</string>
|
<string name="text_sticker_hint_easy_photos">双击编辑</string>
|
||||||
|
|
||||||
<string name="text_sticker_hint_name_easy_photos">自定義</string>
|
<string name="text_sticker_hint_name_easy_photos">自定义</string>
|
||||||
|
|
||||||
<string name="picture_selection_easy_photos">圖片選擇</string>
|
<string name="picture_selection_easy_photos">图片选择</string>
|
||||||
|
|
||||||
<string name="video_selection_easy_photos">視頻選擇</string>
|
<string name="video_selection_easy_photos">视频选择</string>
|
||||||
|
|
||||||
<string name="puzzle_easy_photos">拼一張</string>
|
<string name="puzzle_easy_photos">拼一张</string>
|
||||||
|
|
||||||
<string name="select_puzzle_photos">請選擇2 \- 9張照片</string>
|
<string name="select_puzzle_photos">请选择2 \- 9张照片</string>
|
||||||
|
|
||||||
<string name="gif_easy_photos">動圖</string>
|
<string name="gif_easy_photos">动图</string>
|
||||||
|
|
||||||
<string name="video_easy_photos">視頻</string>
|
<string name="video_easy_photos">视频</string>
|
||||||
|
|
||||||
<string name="give_application_storage_permission">請給予應用存儲權限,以正常保存圖片。</string>
|
<string name="give_application_storage_permission">请给予应用存储权限,以正常保存图片。</string>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
@@ -229,4 +229,6 @@
|
|||||||
<string name="msg_search_limit">全文检索显示条数</string>
|
<string name="msg_search_limit">全文检索显示条数</string>
|
||||||
<string name="message_hint">请输入消息</string>
|
<string name="message_hint">请输入消息</string>
|
||||||
|
|
||||||
|
<string name="photo_file_is_empty"> 为空或者该文件不存在!</string>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
@@ -14,7 +14,7 @@ import java.io.File;
|
|||||||
/**
|
/**
|
||||||
* Created by hzxuwen on 2015/6/12.
|
* Created by hzxuwen on 2015/6/12.
|
||||||
*/
|
*/
|
||||||
public class ImageAction extends PickImageAction {
|
public class ImageAction extends PickImageActionNew {
|
||||||
|
|
||||||
public ImageAction() {
|
public ImageAction() {
|
||||||
super(R.drawable.chat_icon_photo, R.string.input_panel_photo, true);
|
super(R.drawable.chat_icon_photo, R.string.input_panel_photo, true);
|
||||||
|
@@ -0,0 +1,82 @@
|
|||||||
|
package com.netease.nim.uikit.business.session.actions
|
||||||
|
|
||||||
|
import android.content.Intent
|
||||||
|
import android.text.TextUtils
|
||||||
|
import com.netease.nim.uikit.R
|
||||||
|
import com.netease.nim.uikit.business.session.helper.SendImageHelper
|
||||||
|
import com.nnbc123.library.common.application.BaseApp
|
||||||
|
import com.nnbc123.library.common.base.BaseDialogFragment
|
||||||
|
import com.nnbc123.library.common.photo.PhotoProviderNew
|
||||||
|
import com.nnbc123.library.common.util.PhotoCompressUtil
|
||||||
|
import com.nnbc123.library.common.util.PhotosCompressCallback
|
||||||
|
import com.nnbc123.library.utils.ResUtil
|
||||||
|
import com.nnbc123.library.utils.SingleToastUtil
|
||||||
|
import java.io.File
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by zhoujianghua on 2015/7/31.
|
||||||
|
*/
|
||||||
|
abstract class PickImageActionNew protected constructor(
|
||||||
|
iconResId: Int,
|
||||||
|
titleId: Int,
|
||||||
|
private val multiSelect: Boolean
|
||||||
|
) : BaseAction(iconResId, titleId) {
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
private const val REQUEST_CODE_OPEN_PHOTO_PROVIDER = 111 // 从相册中选择
|
||||||
|
}
|
||||||
|
|
||||||
|
protected abstract fun onPicked(file: File)
|
||||||
|
|
||||||
|
override fun onClick() {
|
||||||
|
checkStoragePermission()
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun checkStoragePermission() {
|
||||||
|
PhotoProviderNew.photoProvider(
|
||||||
|
activity,
|
||||||
|
maxSelect = 9,
|
||||||
|
resultCode = makeRequestCode(REQUEST_CODE_OPEN_PHOTO_PROVIDER)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
|
||||||
|
if (resultCode == BaseDialogFragment.RESULT_OK) {
|
||||||
|
when (requestCode) {
|
||||||
|
REQUEST_CODE_OPEN_PHOTO_PROVIDER -> {
|
||||||
|
if (data == null) return
|
||||||
|
PhotoProviderNew.getResultPathListAsync(data) { list ->
|
||||||
|
val paths = list?.toMutableList() ?: ArrayList()
|
||||||
|
if (paths.isEmpty()) {
|
||||||
|
SingleToastUtil.showToastShort(R.string.picker_image_error)
|
||||||
|
} else {
|
||||||
|
PhotoCompressUtil.compress(
|
||||||
|
BaseApp.getContext(),
|
||||||
|
paths,
|
||||||
|
PhotoCompressUtil.getCompressCachePath(),
|
||||||
|
object : PhotosCompressCallback {
|
||||||
|
override fun onSuccess(compressedImgList: ArrayList<String>) {
|
||||||
|
// sendImageAfterSelfImagePicker(compressedImgList)
|
||||||
|
for (path in compressedImgList) {
|
||||||
|
val file = File(path)
|
||||||
|
if (TextUtils.isEmpty(path) || !file.exists()) {
|
||||||
|
SingleToastUtil.showToastShort(path + ResUtil.getString(R.string.photo_file_is_empty))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
onPicked(file)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onFail(e: Throwable) {
|
||||||
|
SingleToastUtil.showToastShort(R.string.picker_image_error)
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@@ -8,6 +8,8 @@ import android.os.StatFs;
|
|||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
|
import com.nnbc123.library.common.file.FileHelper;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
@@ -65,7 +67,8 @@ public class ExternalStorage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void loadStorageState(Context context) {
|
private void loadStorageState(Context context) {
|
||||||
String externalPath = Environment.getExternalStorageDirectory().getPath();
|
// String externalPath = Environment.getExternalStorageDirectory().getPath();
|
||||||
|
String externalPath = FileHelper.getRootCacheDir().getPath();
|
||||||
this.sdkStorageRoot = externalPath + "/" + context.getPackageName() + "/";
|
this.sdkStorageRoot = externalPath + "/" + context.getPackageName() + "/";
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -173,7 +176,8 @@ public class ExternalStorage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean isSdkStorageReady() {
|
public boolean isSdkStorageReady() {
|
||||||
String externalRoot = Environment.getExternalStorageDirectory().getAbsolutePath();
|
// String externalRoot = Environment.getExternalStorageDirectory().getAbsolutePath();
|
||||||
|
String externalRoot = FileHelper.getRootCacheDir().getPath();
|
||||||
if (this.sdkStorageRoot.startsWith(externalRoot)) {
|
if (this.sdkStorageRoot.startsWith(externalRoot)) {
|
||||||
return Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED);
|
return Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED);
|
||||||
} else {
|
} else {
|
||||||
|
Reference in New Issue
Block a user