[Modify]修改图片选择的逻辑
This commit is contained in:
@@ -14,7 +14,7 @@ import java.io.File;
|
||||
/**
|
||||
* Created by hzxuwen on 2015/6/12.
|
||||
*/
|
||||
public class ImageAction extends PickImageAction {
|
||||
public class ImageAction extends PickImageActionNew{
|
||||
|
||||
public ImageAction() {
|
||||
super(R.drawable.chat_icon_photo, R.string.input_panel_photo, true);
|
||||
@@ -32,5 +32,6 @@ public class ImageAction extends PickImageAction {
|
||||
|
||||
EventBus.getDefault().post(new ActiveEvent());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
@@ -44,8 +44,6 @@ public abstract class PickImageAction extends BaseAction {
|
||||
public void onClick() {
|
||||
int requestCode = makeRequestCode(RequestCode.PICK_IMAGE);
|
||||
showSelector(getTitleId(), requestCode, multiSelect, tempFile());
|
||||
|
||||
|
||||
}
|
||||
|
||||
private String tempFile() {
|
||||
@@ -111,7 +109,6 @@ public abstract class PickImageAction extends BaseAction {
|
||||
private boolean handleImagePath(Intent intent, Intent data) {
|
||||
String photoPath = data.getStringExtra(Extras.EXTRA_FILE_PATH);
|
||||
if (TextUtils.isEmpty(photoPath)) {
|
||||
// Toast.makeText(getActivity(), R.string.picker_image_error, Toast.LENGTH_LONG).show();
|
||||
SingleToastUtil.showToastShort(R.string.picker_image_error);
|
||||
return false;
|
||||
}
|
||||
|
@@ -0,0 +1,99 @@
|
||||
package com.netease.nim.uikit.business.session.actions
|
||||
|
||||
import android.content.Intent
|
||||
import com.netease.nim.uikit.R
|
||||
import com.netease.nim.uikit.business.session.constant.Extras
|
||||
import com.netease.nim.uikit.business.session.constant.RequestCode
|
||||
import com.netease.nim.uikit.business.session.helper.SendImageHelper
|
||||
import com.yizhuan.xchat_android_library.easypermisssion.EasyPermissions
|
||||
import com.yizhuan.xchat_android_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), EasyPermissions.PermissionCallbacks {
|
||||
|
||||
companion object{
|
||||
private const val REQUEST_CODE_OPEN_PHOTO_PROVIDER = 111 // 从相册中选择
|
||||
}
|
||||
|
||||
protected abstract fun onPicked(file: File)
|
||||
|
||||
override fun onClick() {
|
||||
checkStoragePermission()
|
||||
}
|
||||
|
||||
private fun checkStoragePermission() {
|
||||
// if (!EasyPermissions.hasPermissions(
|
||||
// this,
|
||||
// Manifest.permission.WRITE_EXTERNAL_STORAGE,
|
||||
// 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
|
||||
// )
|
||||
// } else {
|
||||
// PhotoProvider.photoProvider(
|
||||
// this,
|
||||
// resultCode = REQUEST_CODE_OPEN_PHOTO_PROVIDER
|
||||
// )
|
||||
// }
|
||||
}
|
||||
|
||||
override fun onRequestPermissionsResult(
|
||||
requestCode: Int,
|
||||
permissions: Array<String>,
|
||||
grantResults: IntArray
|
||||
) {
|
||||
}
|
||||
|
||||
override fun onPermissionsGranted(requestCode: Int, perms: List<String>) {
|
||||
|
||||
}
|
||||
|
||||
override fun onPermissionsDenied(requestCode: Int, perms: List<String>) {
|
||||
|
||||
}
|
||||
|
||||
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent) {
|
||||
when (requestCode) {
|
||||
RequestCode.PICK_IMAGE -> onPickImageActivityResult(requestCode, data)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 图片选取回调
|
||||
*/
|
||||
private fun onPickImageActivityResult(requestCode: Int, data: Intent?) {
|
||||
if (data == null) {
|
||||
SingleToastUtil.showToastShort(R.string.picker_image_error)
|
||||
return
|
||||
}
|
||||
val local = data.getBooleanExtra(Extras.EXTRA_FROM_LOCAL, false)
|
||||
if (local) {
|
||||
// 本地相册
|
||||
sendImageAfterSelfImagePicker(data)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 发送图片
|
||||
*/
|
||||
private fun sendImageAfterSelfImagePicker(data: Intent) {
|
||||
SendImageHelper.sendImageAfterSelfImagePicker(activity, data) { file, isOrig ->
|
||||
onPicked(
|
||||
file
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user