-
Notifications
You must be signed in to change notification settings - Fork 2.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Master non native #756
Open
wj576038874
wants to merge
55
commits into
develop
Choose a base branch
from
master-non-native
base: develop
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Master non native #756
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Fixed crash in UCrop.getOutputCropAspectRatio(data)
# Conflicts: # ucrop/build.gradle
Feature/redesign non native
Bugfix/sample max size crash
prepared for new "non-native" release: redesign + fixes
…es_to_master # Conflicts: # build.gradle # gradle.properties # gradle/wrapper/gradle-wrapper.properties # sample/build.gradle # ucrop/build.gradle # ucrop/src/main/java/com/yalantis/ucrop/UCropActivity.java # ucrop/src/main/java/com/yalantis/ucrop/UCropFragment.java # ucrop/src/main/res/drawable/ucrop_ic_crop.xml # ucrop/src/main/res/drawable/ucrop_ic_crop_unselected.xml # ucrop/src/main/res/drawable/ucrop_ic_rotate.xml # ucrop/src/main/res/drawable/ucrop_ic_rotate_unselected.xml # ucrop/src/main/res/drawable/ucrop_ic_scale.xml # ucrop/src/main/res/drawable/ucrop_ic_scale_unselected.xml # ucrop/src/main/res/layout/ucrop_controls.xml # ucrop/src/main/res/layout/ucrop_layout_rotate_wheel.xml # ucrop/src/main/res/values/colors.xml # ucrop/src/main/res/values/styles.xml
…s_to_master Feature/merge non native updates to master
…02_non_native Implement color applying for scale and angle texts, fixing color appl…
…yout Improve layout
Feature/non native
Fixed high-resolution crash. Fixed image saving on Android Q.
Fixed cropped image size.
Fix for using uCrop with SAF (Storage Access Framework) on Android 10 and newer. Sample app changed for context file testing. Added a "choose file destination" button and some other associated controls.
Updated okhttp dependency for uCrop Added custom OkHttpClient for sample due to outdated random pic url
added instruction for README.md
…against null pointer exceptions and minor performance improvements
…ception Custom OkHttpClient
…at an unsupported URI was used.
…-destination-file # Conflicts: # ucrop/src/main/java/com/yalantis/ucrop/task/BitmapLoadTask.java
…af-destination-file Fix for problems with input and output File Uri with "content" schema and Android 10 SAF new requirements.
Removed redundant jcenter mention from README.md Handled content case in ResultActivity Code style correction
Updated dependencies, resolve unexpected error on result screen
Signed-off-by: dmorozov <dmytro.morozov@yalantis.net>
- change fallback for EXTRA_ASPECT_RATIO_X and EXTRA_ASPECT_RATIO_Y to "-1" as "0" has special meaning - fix usage of useSourceImageAspectRatio (now properly hides mWrapperStateAspectRatio) - fix setTargetAspectRatio at processOptions due to Float.NaN (allows custom aspect ratio definitions with default ratio set to x=CropImageView.DEFAULT_ASPECT_RATIO and y=CropImageView.DEFAULT_ASPECT_RATIO) - fix sanity check at setAspectRatioOptions
…tegration Improve/non native/2.2.8 prs integration
Signed-off-by: dmorozov <dmytro.morozov@yalantis.net>
- Correct the vector drawable path due to bad rendering Signed-off-by: dmorozov <dmytro.morozov@yalantis.net>
- Update README.md - Update version to 2.2.8 in gradle Signed-off-by: dmorozov <dmytro.morozov@yalantis.net>
Release 2.2.8
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
package com.yalantis.ucrop.task;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Matrix;
import android.net.Uri;
import android.os.AsyncTask;
import android.util.Log;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.yalantis.ucrop.callback.BitmapLoadCallback;
import com.yalantis.ucrop.model.ExifInfo;
import com.yalantis.ucrop.util.BitmapLoadUtils;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import okio.BufferedSource;
import okio.Okio;
import okio.Sink;
/**
Creates and returns a Bitmap for a given Uri(String url).
inSampleSize is calculated based on requiredWidth property. However can be adjusted if OOM occurs.
If any EXIF config is found - bitmap is transformed properly.
*/
public class BitmapLoadTask extends AsyncTask<Void, Void, BitmapLoadTask.BitmapWorkerResult> {
private static final String TAG = "BitmapWorkerTask";
private final Context mContext;
private Uri mInputUri;
private Uri mOutputUri;
private final int mRequiredWidth;
private final int mRequiredHeight;
private final BitmapLoadCallback mBitmapLoadCallback;
public static class BitmapWorkerResult {
}
public BitmapLoadTask(@nonnull Context context,
@nonnull Uri inputUri, @nullable Uri outputUri,
int requiredWidth, int requiredHeight,
BitmapLoadCallback loadCallback) {
mContext = context;
mInputUri = inputUri;
mOutputUri = outputUri;
mRequiredWidth = requiredWidth;
mRequiredHeight = requiredHeight;
mBitmapLoadCallback = loadCallback;
}
@OverRide
@nonnull
protected BitmapWorkerResult doInBackground(Void... params) {
if (mInputUri == null) {
return new BitmapWorkerResult(new NullPointerException("Input Uri cannot be null"));
}
}
private void processInputUri() throws NullPointerException, IOException {
String inputUriScheme = mInputUri.getScheme();
Log.d(TAG, "Uri scheme: " + inputUriScheme);
if ("http".equals(inputUriScheme) || "https".equals(inputUriScheme)) {
try {
downloadFile(mInputUri, mOutputUri);
} catch (NullPointerException | IOException e) {
Log.e(TAG, "Downloading failed", e);
throw e;
}
} else if ("content".equals(inputUriScheme)) {
try {
copyFile(mInputUri, mOutputUri);
} catch (NullPointerException | IOException e) {
Log.e(TAG, "Copying failed", e);
throw e;
}
} else if (!"file".equals(inputUriScheme)) {
Log.e(TAG, "Invalid Uri scheme " + inputUriScheme);
throw new IllegalArgumentException("Invalid Uri scheme" + inputUriScheme);
}
}
private void copyFile(@nonnull Uri inputUri, @nullable Uri outputUri) throws NullPointerException, IOException {
Log.d(TAG, "copyFile");
}
private void downloadFile(@nonnull Uri inputUri, @nullable Uri outputUri) throws NullPointerException, IOException {
Log.d(TAG, "downloadFile");
}
@OverRide
protected void onPostExecute(@nonnull BitmapWorkerResult result) {
if (result.mBitmapWorkerException == null) {
mBitmapLoadCallback.onBitmapLoaded(result.mBitmapResult, result.mExifInfo, mInputUri.getPath(), (mOutputUri == null) ? null : mOutputUri.getPath());
} else {
mBitmapLoadCallback.onFailure(result.mBitmapWorkerException);
}
}
}