Skip to content

Commit

Permalink
commit
Browse files Browse the repository at this point in the history
  • Loading branch information
罗孟伟 committed Mar 21, 2020
1 parent c0007f3 commit 4f5aa23
Show file tree
Hide file tree
Showing 6 changed files with 30 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -1337,10 +1337,12 @@ private void requestCamera(Intent data) {
int lastIndexOf = config.cameraPath.lastIndexOf("/") + 1;
media.setId(lastIndexOf > 0 ? ValueOf.toLong(config.cameraPath.substring(lastIndexOf)) : -1);
media.setRealPath(path);
if (config.isUseCustomCamera && data != null) {
if (config.isUseCustomCamera) {
// 自定义拍照时已经在应用沙盒内生成了文件
String mediaPath = data.getStringExtra(PictureConfig.EXTRA_MEDIA_PATH);
media.setAndroidQToPath(mediaPath);
if (data != null) {
String mediaPath = data.getStringExtra(PictureConfig.EXTRA_MEDIA_PATH);
media.setAndroidQToPath(mediaPath);
}
}
} else {
File file = new File(config.cameraPath);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -229,10 +229,12 @@ protected void requestCamera(Intent data) {
int lastIndexOf = config.cameraPath.lastIndexOf("/") + 1;
media.setId(lastIndexOf > 0 ? ValueOf.toLong(config.cameraPath.substring(lastIndexOf)) : -1);
media.setRealPath(path);
if (config.isUseCustomCamera && data != null) {
if (config.isUseCustomCamera) {
// 自定义拍照时已经在应用沙盒内生成了文件
String mediaPath = data.getStringExtra(PictureConfig.EXTRA_MEDIA_PATH);
media.setAndroidQToPath(mediaPath);
if (data != null) {
String mediaPath = data.getStringExtra(PictureConfig.EXTRA_MEDIA_PATH);
media.setAndroidQToPath(mediaPath);
}
}
} else {
final File file = new File(config.cameraPath);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -140,9 +140,9 @@ protected void resetCutData() {
Bundle extras = intent.getExtras();
String path = list.get(cutIndex).getPath();
boolean isHttp = MimeType.isHttp(path);
String suffix = MimeType.getLastImgType(path.startsWith("content://")
String suffix = MimeType.getLastImgType(MimeType.isContent(path)
? FileUtils.getPath(this, Uri.parse(path)) : path);
Uri uri = isHttp || path.startsWith("content://") ? Uri.parse(path) : Uri.fromFile(new File(path));
Uri uri = isHttp || MimeType.isContent(path) ? Uri.parse(path) : Uri.fromFile(new File(path));
extras.putParcelable(UCrop.EXTRA_INPUT_URI, uri);
File file = Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED) ?
getExternalFilesDir(Environment.DIRECTORY_PICTURES) : getCacheDir();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
import com.yalantis.ucrop.util.BitmapLoadUtils;
import com.yalantis.ucrop.util.FileUtils;
import com.yalantis.ucrop.util.ImageHeaderParser;
import com.yalantis.ucrop.util.MimeType;
import com.yalantis.ucrop.util.SdkUtils;

import java.io.File;
Expand Down Expand Up @@ -154,7 +155,7 @@ private boolean crop() throws IOException {
if (shouldCrop) {
ExifInterface originalExif;
ParcelFileDescriptor parcelFileDescriptor = null;
if (SdkUtils.isQ() && mImageInputPath.startsWith("content://")) {
if (SdkUtils.isQ() && MimeType.isContent(mImageInputPath)) {
parcelFileDescriptor =
getContext().getContentResolver().openFileDescriptor(Uri.parse(mImageInputPath), "r");
originalExif = new ExifInterface(new FileInputStream(parcelFileDescriptor.getFileDescriptor()));
Expand All @@ -170,7 +171,7 @@ private boolean crop() throws IOException {
}
return true;
} else {
if (SdkUtils.isQ() && mImageInputPath.startsWith("content://")) {
if (SdkUtils.isQ() && MimeType.isContent(mImageInputPath)) {
ParcelFileDescriptor parcelFileDescriptor =
getContext().getContentResolver().openFileDescriptor(Uri.parse(mImageInputPath), "r");
FileDescriptor fileDescriptor = parcelFileDescriptor.getFileDescriptor();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
import com.yalantis.ucrop.model.ExifInfo;
import com.yalantis.ucrop.util.BitmapLoadUtils;
import com.yalantis.ucrop.util.FileUtils;
import com.yalantis.ucrop.util.MimeType;
import com.yalantis.ucrop.util.SdkUtils;

import java.io.BufferedInputStream;
Expand Down Expand Up @@ -265,7 +266,7 @@ private void downloadFile(@NonNull Uri inputUri, @Nullable Uri outputUri) throws
protected void onPostExecute(@NonNull BitmapWorkerResult result) {
if (result.mBitmapWorkerException == null) {
String inputUriString = mInputUri.toString();
mBitmapLoadCallback.onBitmapLoaded(result.mBitmapResult, result.mExifInfo, inputUriString.startsWith("content://") ? inputUriString : mInputUri.getPath(), (mOutputUri == null) ? null : mOutputUri.getPath());
mBitmapLoadCallback.onBitmapLoaded(result.mBitmapResult, result.mExifInfo, MimeType.isContent(inputUriString) ? inputUriString : mInputUri.getPath(), (mOutputUri == null) ? null : mOutputUri.getPath());
} else {
mBitmapLoadCallback.onFailure(result.mBitmapWorkerException);
}
Expand Down
13 changes: 13 additions & 0 deletions ucrop/src/main/java/com/yalantis/ucrop/util/MimeType.java
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,19 @@ public static boolean isGif(String mimeType) {
return mimeType != null && (mimeType.equals("image/gif") || mimeType.equals("image/GIF"));
}

/**
* 是否是content://类型
*
* @param url
* @return
*/
public static boolean isContent(String url) {
if (TextUtils.isEmpty(url)) {
return false;
}
return url.startsWith("content://");
}

/**
* 获取mimeType
*
Expand Down

0 comments on commit 4f5aa23

Please sign in to comment.