diff --git a/build.gradle b/build.gradle index 3197b24c..cbd5640a 100644 --- a/build.gradle +++ b/build.gradle @@ -1,6 +1,12 @@ -// Top-level build file where you can add configuration options common to all sub-projects/modules. - buildscript { + ext { + androidx_appcompat_version = "1.1.0" + androidx_core_version = "1.1.0" + androidx_exifinterface_version = "1.1.0-beta01" + androidx_transition_version = "1.2.0-rc01" + constraintlayout_version = "1.1.3" + } + repositories { jcenter() maven { @@ -9,14 +15,7 @@ buildscript { } } dependencies { - classpath 'com.android.tools.build:gradle:3.3.2' - - // NOTE: Do not place your application dependencies here; they belong - // in the individual module build.gradle files - } - ext { - support = '28.0.0' - constraints = '1.0.2' + classpath 'com.android.tools.build:gradle:3.5.0' } } diff --git a/gradle.properties b/gradle.properties index fad32fa3..e15f9104 100644 --- a/gradle.properties +++ b/gradle.properties @@ -30,4 +30,5 @@ POM_LICENCE_NAME=The Apache Software License, Version 2.0 POM_LICENCE_URL=http://www.apache.org/licenses/LICENSE-2.0 POM_LICENCE_DIST=repo POM_DEVELOPER_ID=yalantis -POM_DEVELOPER_NAME=Yalantis \ No newline at end of file +POM_DEVELOPER_NAME=Yalantis +android.useAndroidX=true \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index a7399a21..4e45728a 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Thu Apr 05 11:34:38 EEST 2018 +#Fri Sep 06 15:42:38 EEST 2019 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip diff --git a/sample/build.gradle b/sample/build.gradle index 37c3cc3d..ce8dda60 100644 --- a/sample/build.gradle +++ b/sample/build.gradle @@ -7,7 +7,7 @@ android { applicationId "com.yalantis.ucrop.sample" minSdkVersion 14 targetSdkVersion 28 - versionCode 12 + versionCode 13 versionName "1.2.4" } flavorDimensions "default" @@ -35,8 +35,8 @@ android { } dependencies { - implementation "com.android.support:appcompat-v7:$support" - implementation "com.android.support:support-compat:$support" - implementation "com.android.support.constraint:constraint-layout:1.1.3" + implementation "androidx.appcompat:appcompat:1.1.0" + implementation "androidx.core:core:1.1.0" + implementation "androidx.constraintlayout:constraintlayout:1.1.3" implementation project(':ucrop') } \ No newline at end of file diff --git a/sample/src/main/AndroidManifest.xml b/sample/src/main/AndroidManifest.xml index eac8f2f0..940116d8 100644 --- a/sample/src/main/AndroidManifest.xml +++ b/sample/src/main/AndroidManifest.xml @@ -12,7 +12,7 @@ android:label="@string/app_name" android:theme="@style/AppTheme"> diff --git a/sample/src/main/java/com/yalantis/ucrop/sample/BaseActivity.java b/sample/src/main/java/com/yalantis/ucrop/sample/BaseActivity.java index e754819e..d06dc8df 100644 --- a/sample/src/main/java/com/yalantis/ucrop/sample/BaseActivity.java +++ b/sample/src/main/java/com/yalantis/ucrop/sample/BaseActivity.java @@ -1,11 +1,12 @@ package com.yalantis.ucrop.sample; import android.content.DialogInterface; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.v4.app.ActivityCompat; -import android.support.v7.app.AlertDialog; -import android.support.v7.app.AppCompatActivity; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.appcompat.app.AlertDialog; +import androidx.appcompat.app.AppCompatActivity; +import androidx.core.app.ActivityCompat; /** * Created by Oleksii Shliama (https://github.com/shliama). diff --git a/sample/src/main/java/com/yalantis/ucrop/sample/ResultActivity.java b/sample/src/main/java/com/yalantis/ucrop/sample/ResultActivity.java index ea736c6a..7d7d935f 100755 --- a/sample/src/main/java/com/yalantis/ucrop/sample/ResultActivity.java +++ b/sample/src/main/java/com/yalantis/ucrop/sample/ResultActivity.java @@ -15,12 +15,6 @@ import android.os.Build; import android.os.Bundle; import android.os.Environment; -import android.support.annotation.NonNull; -import android.support.v4.app.ActivityCompat; -import android.support.v4.app.NotificationCompat; -import android.support.v4.content.FileProvider; -import android.support.v7.app.ActionBar; -import android.support.v7.widget.Toolbar; import android.util.Log; import android.view.Menu; import android.view.MenuItem; @@ -35,6 +29,13 @@ import java.util.Calendar; import java.util.List; +import androidx.annotation.NonNull; +import androidx.appcompat.app.ActionBar; +import androidx.appcompat.widget.Toolbar; +import androidx.core.app.ActivityCompat; +import androidx.core.app.NotificationCompat; +import androidx.core.content.FileProvider; + import static android.content.Intent.FLAG_GRANT_READ_URI_PERMISSION; import static android.content.Intent.FLAG_GRANT_WRITE_URI_PERMISSION; diff --git a/sample/src/main/java/com/yalantis/ucrop/sample/SampleActivity.java b/sample/src/main/java/com/yalantis/ucrop/sample/SampleActivity.java index 50bb08a7..3f8f919b 100644 --- a/sample/src/main/java/com/yalantis/ucrop/sample/SampleActivity.java +++ b/sample/src/main/java/com/yalantis/ucrop/sample/SampleActivity.java @@ -11,13 +11,6 @@ import android.net.Uri; import android.os.Build; import android.os.Bundle; -import android.support.annotation.ColorInt; -import android.support.annotation.DrawableRes; -import android.support.annotation.NonNull; -import android.support.v4.app.ActivityCompat; -import android.support.v4.content.ContextCompat; -import android.support.v7.app.ActionBar; -import android.support.v7.widget.Toolbar; import android.text.Editable; import android.text.TextWatcher; import android.util.Log; @@ -43,6 +36,14 @@ import java.util.Locale; import java.util.Random; +import androidx.annotation.ColorInt; +import androidx.annotation.DrawableRes; +import androidx.annotation.NonNull; +import androidx.appcompat.app.ActionBar; +import androidx.appcompat.widget.Toolbar; +import androidx.core.app.ActivityCompat; +import androidx.core.content.ContextCompat; + /** * Created by Oleksii Shliama (https://github.com/shliama). */ diff --git a/sample/src/main/res/layout/activity_result.xml b/sample/src/main/res/layout/activity_result.xml index 5d888e28..27d85498 100755 --- a/sample/src/main/res/layout/activity_result.xml +++ b/sample/src/main/res/layout/activity_result.xml @@ -6,7 +6,7 @@ android:layout_height="match_parent" android:orientation="vertical"> - - - + android:visibility="gone" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent"> - + - \ No newline at end of file + \ No newline at end of file diff --git a/ucrop/build.gradle b/ucrop/build.gradle index 93a73e2a..dcb7d462 100644 --- a/ucrop/build.gradle +++ b/ucrop/build.gradle @@ -9,7 +9,7 @@ android { minSdkVersion 14 targetSdkVersion 28 versionCode 24 - versionName "2.2.3-non-native" + versionName "2.2.4-non-native" vectorDrawables.useSupportLibrary = true } @@ -32,12 +32,8 @@ android { } dependencies { - implementation 'com.android.support:appcompat-v7:28.0.0' - implementation 'com.android.support:exifinterface:28.0.0' - implementation 'com.android.support:design:28.0.0' - implementation 'com.squareup.okhttp3:okhttp:3.11.0' -} - -repositories { - google() + implementation "androidx.appcompat:appcompat:${androidx_appcompat_version}" + implementation "androidx.exifinterface:exifinterface:${androidx_exifinterface_version}" + implementation "androidx.transition:transition:${androidx_transition_version}" + implementation "com.squareup.okhttp3:okhttp:3.12.1" } diff --git a/ucrop/src/main/java/com/yalantis/ucrop/UCrop.java b/ucrop/src/main/java/com/yalantis/ucrop/UCrop.java index 54e9ad70..929784ac 100644 --- a/ucrop/src/main/java/com/yalantis/ucrop/UCrop.java +++ b/ucrop/src/main/java/com/yalantis/ucrop/UCrop.java @@ -1,21 +1,11 @@ package com.yalantis.ucrop; -import android.annotation.TargetApi; -import android.app.Activity; -import android.app.Fragment; import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; import android.net.Uri; -import android.os.Build; import android.os.Bundle; import android.os.Parcelable; -import android.support.annotation.ColorInt; -import android.support.annotation.DrawableRes; -import android.support.annotation.FloatRange; -import android.support.annotation.IntRange; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; import com.yalantis.ucrop.model.AspectRatio; @@ -23,6 +13,15 @@ import java.util.Arrays; import java.util.Locale; +import androidx.annotation.ColorInt; +import androidx.annotation.DrawableRes; +import androidx.annotation.FloatRange; +import androidx.annotation.IntRange; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.appcompat.app.AppCompatActivity; +import androidx.fragment.app.Fragment; + /** * Created by Oleksii Shliama (https://github.com/shliama). *

@@ -124,7 +123,7 @@ public UCrop withOptions(@NonNull Options options) { * * @param activity Activity to receive result */ - public void start(@NonNull Activity activity) { + public void start(@NonNull AppCompatActivity activity) { start(activity, REQUEST_CROP); } @@ -134,7 +133,7 @@ public void start(@NonNull Activity activity) { * @param activity Activity to receive result * @param requestCode requestCode for result */ - public void start(@NonNull Activity activity, int requestCode) { + public void start(@NonNull AppCompatActivity activity, int requestCode) { activity.startActivityForResult(getIntent(activity), requestCode); } @@ -147,36 +146,16 @@ public void start(@NonNull Context context, @NonNull Fragment fragment) { start(context, fragment, REQUEST_CROP); } - /** - * Send the crop Intent from a support library Fragment - * - * @param fragment Fragment to receive result - */ - public void start(@NonNull Context context, @NonNull android.support.v4.app.Fragment fragment) { - start(context, fragment, REQUEST_CROP); - } - /** * Send the crop Intent with a custom request code * * @param fragment Fragment to receive result * @param requestCode requestCode for result */ - @TargetApi(Build.VERSION_CODES.HONEYCOMB) public void start(@NonNull Context context, @NonNull Fragment fragment, int requestCode) { fragment.startActivityForResult(getIntent(context), requestCode); } - /** - * Send the crop Intent with a custom request code - * - * @param fragment Fragment to receive result - * @param requestCode requestCode for result - */ - public void start(@NonNull Context context, @NonNull android.support.v4.app.Fragment fragment, int requestCode) { - fragment.startActivityForResult(getIntent(context), requestCode); - } - /** * Get Intent to start {@link UCropActivity} * diff --git a/ucrop/src/main/java/com/yalantis/ucrop/UCropActivity.java b/ucrop/src/main/java/com/yalantis/ucrop/UCropActivity.java index a8299874..a48969fc 100644 --- a/ucrop/src/main/java/com/yalantis/ucrop/UCropActivity.java +++ b/ucrop/src/main/java/com/yalantis/ucrop/UCropActivity.java @@ -9,18 +9,6 @@ import android.net.Uri; import android.os.Build; import android.os.Bundle; -import android.support.annotation.ColorInt; -import android.support.annotation.DrawableRes; -import android.support.annotation.IdRes; -import android.support.annotation.IntDef; -import android.support.annotation.NonNull; -import android.support.transition.AutoTransition; -import android.support.transition.Transition; -import android.support.transition.TransitionManager; -import android.support.v4.content.ContextCompat; -import android.support.v7.app.ActionBar; -import android.support.v7.app.AppCompatActivity; -import android.support.v7.widget.Toolbar; import android.text.TextUtils; import android.util.Log; import android.view.LayoutInflater; @@ -54,6 +42,19 @@ import java.util.List; import java.util.Locale; +import androidx.annotation.ColorInt; +import androidx.annotation.DrawableRes; +import androidx.annotation.IdRes; +import androidx.annotation.IntDef; +import androidx.annotation.NonNull; +import androidx.appcompat.app.ActionBar; +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.core.content.ContextCompat; +import androidx.transition.AutoTransition; +import androidx.transition.Transition; +import androidx.transition.TransitionManager; + /** * Created by Oleksii Shliama (https://github.com/shliama). */ @@ -449,7 +450,7 @@ private void setupAspectRatioWidget(@NonNull Intent intent) { wrapperAspectRatio = (FrameLayout) getLayoutInflater().inflate(R.layout.ucrop_aspect_ratio, null); wrapperAspectRatio.setLayoutParams(lp); aspectRatioTextView = ((AspectRatioTextView) wrapperAspectRatio.getChildAt(0)); - aspectRatioTextView.setActiveColor(mActiveWidgetColor); + aspectRatioTextView.setActiveColor(mActiveControlsWidgetColor); aspectRatioTextView.setAspectRatio(aspectRatio); wrapperAspectRatioList.addView(wrapperAspectRatio); diff --git a/ucrop/src/main/java/com/yalantis/ucrop/UCropFragment.java b/ucrop/src/main/java/com/yalantis/ucrop/UCropFragment.java index cd59e699..6d086be4 100644 --- a/ucrop/src/main/java/com/yalantis/ucrop/UCropFragment.java +++ b/ucrop/src/main/java/com/yalantis/ucrop/UCropFragment.java @@ -6,16 +6,6 @@ import android.graphics.PorterDuff; import android.net.Uri; import android.os.Bundle; -import android.support.annotation.ColorInt; -import android.support.annotation.IdRes; -import android.support.annotation.IntDef; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.transition.AutoTransition; -import android.support.transition.Transition; -import android.support.transition.TransitionManager; -import android.support.v4.app.Fragment; -import android.support.v4.content.ContextCompat; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; @@ -44,7 +34,18 @@ import java.util.List; import java.util.Locale; -import static android.app.Activity.RESULT_OK; +import androidx.annotation.ColorInt; +import androidx.annotation.IdRes; +import androidx.annotation.IntDef; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.core.content.ContextCompat; +import androidx.fragment.app.Fragment; +import androidx.transition.AutoTransition; +import androidx.transition.Transition; +import androidx.transition.TransitionManager; + +import static androidx.appcompat.app.AppCompatActivity.RESULT_OK; @SuppressWarnings("ConstantConditions") public class UCropFragment extends Fragment { diff --git a/ucrop/src/main/java/com/yalantis/ucrop/callback/BitmapCropCallback.java b/ucrop/src/main/java/com/yalantis/ucrop/callback/BitmapCropCallback.java index afe82e43..c3a71276 100644 --- a/ucrop/src/main/java/com/yalantis/ucrop/callback/BitmapCropCallback.java +++ b/ucrop/src/main/java/com/yalantis/ucrop/callback/BitmapCropCallback.java @@ -1,7 +1,8 @@ package com.yalantis.ucrop.callback; import android.net.Uri; -import android.support.annotation.NonNull; + +import androidx.annotation.NonNull; public interface BitmapCropCallback { diff --git a/ucrop/src/main/java/com/yalantis/ucrop/callback/BitmapLoadCallback.java b/ucrop/src/main/java/com/yalantis/ucrop/callback/BitmapLoadCallback.java index b66d87eb..91815bd0 100755 --- a/ucrop/src/main/java/com/yalantis/ucrop/callback/BitmapLoadCallback.java +++ b/ucrop/src/main/java/com/yalantis/ucrop/callback/BitmapLoadCallback.java @@ -1,11 +1,12 @@ package com.yalantis.ucrop.callback; import android.graphics.Bitmap; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; import com.yalantis.ucrop.model.ExifInfo; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + public interface BitmapLoadCallback { void onBitmapLoaded(@NonNull Bitmap bitmap, @NonNull ExifInfo exifInfo, @NonNull String imageInputPath, @Nullable String imageOutputPath); diff --git a/ucrop/src/main/java/com/yalantis/ucrop/model/AspectRatio.java b/ucrop/src/main/java/com/yalantis/ucrop/model/AspectRatio.java index 65ca4548..2a76e425 100644 --- a/ucrop/src/main/java/com/yalantis/ucrop/model/AspectRatio.java +++ b/ucrop/src/main/java/com/yalantis/ucrop/model/AspectRatio.java @@ -2,7 +2,8 @@ import android.os.Parcel; import android.os.Parcelable; -import android.support.annotation.Nullable; + +import androidx.annotation.Nullable; /** * Created by Oleksii Shliama [https://github.com/shliama] on 6/24/16. diff --git a/ucrop/src/main/java/com/yalantis/ucrop/task/BitmapCropTask.java b/ucrop/src/main/java/com/yalantis/ucrop/task/BitmapCropTask.java index b41a5156..2409f1a8 100644 --- a/ucrop/src/main/java/com/yalantis/ucrop/task/BitmapCropTask.java +++ b/ucrop/src/main/java/com/yalantis/ucrop/task/BitmapCropTask.java @@ -6,9 +6,6 @@ import android.graphics.RectF; import android.net.Uri; import android.os.AsyncTask; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.media.ExifInterface; import android.util.Log; import com.yalantis.ucrop.callback.BitmapCropCallback; @@ -25,6 +22,10 @@ import java.io.OutputStream; import java.lang.ref.WeakReference; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.exifinterface.media.ExifInterface; + /** * Crops part of image that fills the crop bounds. *

diff --git a/ucrop/src/main/java/com/yalantis/ucrop/task/BitmapLoadTask.java b/ucrop/src/main/java/com/yalantis/ucrop/task/BitmapLoadTask.java index d869e981..c836fdd1 100755 --- a/ucrop/src/main/java/com/yalantis/ucrop/task/BitmapLoadTask.java +++ b/ucrop/src/main/java/com/yalantis/ucrop/task/BitmapLoadTask.java @@ -10,9 +10,6 @@ import android.os.AsyncTask; import android.os.Build; import android.os.ParcelFileDescriptor; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.v4.content.ContextCompat; import android.text.TextUtils; import android.util.Log; @@ -29,6 +26,9 @@ import java.io.InputStream; import java.io.OutputStream; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.core.content.ContextCompat; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; diff --git a/ucrop/src/main/java/com/yalantis/ucrop/util/BitmapLoadUtils.java b/ucrop/src/main/java/com/yalantis/ucrop/util/BitmapLoadUtils.java index f90befe4..467ad43a 100755 --- a/ucrop/src/main/java/com/yalantis/ucrop/util/BitmapLoadUtils.java +++ b/ucrop/src/main/java/com/yalantis/ucrop/util/BitmapLoadUtils.java @@ -7,9 +7,7 @@ import android.graphics.Matrix; import android.graphics.Point; import android.net.Uri; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.media.ExifInterface; +import android.os.AsyncTask; import android.util.Log; import android.view.Display; import android.view.WindowManager; @@ -21,6 +19,10 @@ import java.io.IOException; import java.io.InputStream; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.exifinterface.media.ExifInterface; + /** * Created by Oleksii Shliama (https://github.com/shliama). */ @@ -33,7 +35,8 @@ public static void decodeBitmapInBackground(@NonNull Context context, int requiredWidth, int requiredHeight, BitmapLoadCallback loadCallback) { - new BitmapLoadTask(context, uri, outputUri, requiredWidth, requiredHeight, loadCallback).execute(); + new BitmapLoadTask(context, uri, outputUri, requiredWidth, requiredHeight, loadCallback) + .executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); } public static Bitmap transformBitmap(@NonNull Bitmap bitmap, @NonNull Matrix transformMatrix) { diff --git a/ucrop/src/main/java/com/yalantis/ucrop/util/FileUtils.java b/ucrop/src/main/java/com/yalantis/ucrop/util/FileUtils.java index 54d52fe2..913bf8c4 100644 --- a/ucrop/src/main/java/com/yalantis/ucrop/util/FileUtils.java +++ b/ucrop/src/main/java/com/yalantis/ucrop/util/FileUtils.java @@ -25,7 +25,6 @@ import android.os.Environment; import android.provider.DocumentsContract; import android.provider.MediaStore; -import android.support.annotation.NonNull; import android.text.TextUtils; import android.util.Log; @@ -36,6 +35,8 @@ import java.nio.channels.FileChannel; import java.util.Locale; +import androidx.annotation.NonNull; + /** * @author Peli * @author paulburke (ipaulpro) diff --git a/ucrop/src/main/java/com/yalantis/ucrop/util/ImageHeaderParser.java b/ucrop/src/main/java/com/yalantis/ucrop/util/ImageHeaderParser.java index d3283cff..ebde7c5e 100644 --- a/ucrop/src/main/java/com/yalantis/ucrop/util/ImageHeaderParser.java +++ b/ucrop/src/main/java/com/yalantis/ucrop/util/ImageHeaderParser.java @@ -30,7 +30,6 @@ package com.yalantis.ucrop.util; -import android.support.media.ExifInterface; import android.text.TextUtils; import android.util.Log; @@ -40,6 +39,8 @@ import java.nio.ByteOrder; import java.nio.charset.Charset; +import androidx.exifinterface.media.ExifInterface; + /** * A class for parsing the exif orientation from an image header. */ diff --git a/ucrop/src/main/java/com/yalantis/ucrop/util/RotationGestureDetector.java b/ucrop/src/main/java/com/yalantis/ucrop/util/RotationGestureDetector.java index 4fd8e5c3..302a8942 100644 --- a/ucrop/src/main/java/com/yalantis/ucrop/util/RotationGestureDetector.java +++ b/ucrop/src/main/java/com/yalantis/ucrop/util/RotationGestureDetector.java @@ -1,8 +1,9 @@ package com.yalantis.ucrop.util; -import android.support.annotation.NonNull; import android.view.MotionEvent; +import androidx.annotation.NonNull; + public class RotationGestureDetector { private static final int INVALID_POINTER_INDEX = -1; diff --git a/ucrop/src/main/java/com/yalantis/ucrop/view/CropImageView.java b/ucrop/src/main/java/com/yalantis/ucrop/view/CropImageView.java index caa85c8d..2edfd61d 100644 --- a/ucrop/src/main/java/com/yalantis/ucrop/view/CropImageView.java +++ b/ucrop/src/main/java/com/yalantis/ucrop/view/CropImageView.java @@ -6,9 +6,7 @@ import android.graphics.Matrix; import android.graphics.RectF; import android.graphics.drawable.Drawable; -import android.support.annotation.IntRange; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import android.os.AsyncTask; import android.util.AttributeSet; import com.yalantis.ucrop.R; @@ -23,6 +21,10 @@ import java.lang.ref.WeakReference; import java.util.Arrays; +import androidx.annotation.IntRange; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + /** * Created by Oleksii Shliama (https://github.com/shliama). *

@@ -82,7 +84,8 @@ public void cropAndSaveImage(@NonNull Bitmap.CompressFormat compressFormat, int compressFormat, compressQuality, getImageInputPath(), getImageOutputPath(), getExifInfo()); - new BitmapCropTask(getContext(), getViewBitmap(), imageState, cropParameters, cropCallback).execute(); + new BitmapCropTask(getContext(), getViewBitmap(), imageState, cropParameters, cropCallback) + .executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); } /** diff --git a/ucrop/src/main/java/com/yalantis/ucrop/view/OverlayView.java b/ucrop/src/main/java/com/yalantis/ucrop/view/OverlayView.java index 5954f5f3..eb539701 100644 --- a/ucrop/src/main/java/com/yalantis/ucrop/view/OverlayView.java +++ b/ucrop/src/main/java/com/yalantis/ucrop/view/OverlayView.java @@ -8,10 +8,6 @@ import android.graphics.RectF; import android.graphics.Region; import android.os.Build; -import android.support.annotation.ColorInt; -import android.support.annotation.IntDef; -import android.support.annotation.IntRange; -import android.support.annotation.NonNull; import android.util.AttributeSet; import android.view.MotionEvent; import android.view.View; @@ -23,6 +19,11 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import androidx.annotation.ColorInt; +import androidx.annotation.IntDef; +import androidx.annotation.IntRange; +import androidx.annotation.NonNull; + /** * Created by Oleksii Shliama (https://github.com/shliama). *

diff --git a/ucrop/src/main/java/com/yalantis/ucrop/view/TransformImageView.java b/ucrop/src/main/java/com/yalantis/ucrop/view/TransformImageView.java index 294039ef..91d348b2 100755 --- a/ucrop/src/main/java/com/yalantis/ucrop/view/TransformImageView.java +++ b/ucrop/src/main/java/com/yalantis/ucrop/view/TransformImageView.java @@ -6,12 +6,8 @@ import android.graphics.RectF; import android.graphics.drawable.Drawable; import android.net.Uri; -import android.support.annotation.IntRange; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; import android.util.AttributeSet; import android.util.Log; -import android.widget.ImageView; import com.yalantis.ucrop.callback.BitmapLoadCallback; import com.yalantis.ucrop.model.ExifInfo; @@ -19,13 +15,18 @@ import com.yalantis.ucrop.util.FastBitmapDrawable; import com.yalantis.ucrop.util.RectUtils; +import androidx.annotation.IntRange; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.appcompat.widget.AppCompatImageView; + /** * Created by Oleksii Shliama (https://github.com/shliama). *

* This class provides base logic to setup the image, transform it with matrix (move, scale, rotate), * and methods to get current matrix state. */ -public class TransformImageView extends ImageView { +public class TransformImageView extends AppCompatImageView { private static final String TAG = "TransformImageView"; diff --git a/ucrop/src/main/java/com/yalantis/ucrop/view/UCropView.java b/ucrop/src/main/java/com/yalantis/ucrop/view/UCropView.java index 4b77f2d6..81a49ace 100644 --- a/ucrop/src/main/java/com/yalantis/ucrop/view/UCropView.java +++ b/ucrop/src/main/java/com/yalantis/ucrop/view/UCropView.java @@ -3,7 +3,6 @@ import android.content.Context; import android.content.res.TypedArray; import android.graphics.RectF; -import android.support.annotation.NonNull; import android.util.AttributeSet; import android.view.LayoutInflater; import android.widget.FrameLayout; @@ -12,6 +11,8 @@ import com.yalantis.ucrop.callback.CropBoundsChangeListener; import com.yalantis.ucrop.callback.OverlayViewChangeListener; +import androidx.annotation.NonNull; + public class UCropView extends FrameLayout { private GestureCropImageView mGestureCropImageView; diff --git a/ucrop/src/main/java/com/yalantis/ucrop/view/widget/AspectRatioTextView.java b/ucrop/src/main/java/com/yalantis/ucrop/view/widget/AspectRatioTextView.java index 3083e55f..29e6d3a5 100644 --- a/ucrop/src/main/java/com/yalantis/ucrop/view/widget/AspectRatioTextView.java +++ b/ucrop/src/main/java/com/yalantis/ucrop/view/widget/AspectRatioTextView.java @@ -8,13 +8,9 @@ import android.graphics.Paint; import android.graphics.Rect; import android.os.Build; -import android.support.annotation.ColorInt; -import android.support.annotation.NonNull; -import android.support.v4.content.ContextCompat; import android.text.TextUtils; import android.util.AttributeSet; import android.view.Gravity; -import android.widget.TextView; import com.yalantis.ucrop.R; import com.yalantis.ucrop.model.AspectRatio; @@ -22,10 +18,15 @@ import java.util.Locale; +import androidx.annotation.ColorInt; +import androidx.annotation.NonNull; +import androidx.appcompat.widget.AppCompatTextView; +import androidx.core.content.ContextCompat; + /** * Created by Oleksii Shliama (https://github.com/shliama). */ -public class AspectRatioTextView extends TextView { +public class AspectRatioTextView extends AppCompatTextView { private final float MARGIN_MULTIPLIER = 1.5f; private final Rect mCanvasClipBounds = new Rect(); @@ -52,7 +53,7 @@ public AspectRatioTextView(Context context, AttributeSet attrs, int defStyleAttr @TargetApi(Build.VERSION_CODES.LOLLIPOP) public AspectRatioTextView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { - super(context, attrs, defStyleAttr, defStyleRes); + super(context, attrs, defStyleAttr); TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.ucrop_AspectRatioTextView); init(a); } diff --git a/ucrop/src/main/java/com/yalantis/ucrop/view/widget/HorizontalProgressWheelView.java b/ucrop/src/main/java/com/yalantis/ucrop/view/widget/HorizontalProgressWheelView.java index ed724f70..fc7d9b3d 100644 --- a/ucrop/src/main/java/com/yalantis/ucrop/view/widget/HorizontalProgressWheelView.java +++ b/ucrop/src/main/java/com/yalantis/ucrop/view/widget/HorizontalProgressWheelView.java @@ -6,14 +6,15 @@ import android.graphics.Paint; import android.graphics.Rect; import android.os.Build; -import android.support.annotation.ColorInt; -import android.support.v4.content.ContextCompat; import android.util.AttributeSet; import android.view.MotionEvent; import android.view.View; import com.yalantis.ucrop.R; +import androidx.annotation.ColorInt; +import androidx.core.content.ContextCompat; + /** * Created by Oleksii Shliama (https://github.com/shliama). */ diff --git a/ucrop/src/main/res/color/ucrop_scale_text_view_selector.xml b/ucrop/src/main/res/color/ucrop_scale_text_view_selector.xml index c5bde1a5..8ef59ece 100644 --- a/ucrop/src/main/res/color/ucrop_scale_text_view_selector.xml +++ b/ucrop/src/main/res/color/ucrop_scale_text_view_selector.xml @@ -1,5 +1,5 @@ - - + + diff --git a/ucrop/src/main/res/drawable-hdpi/ucrop_ic_angle.png b/ucrop/src/main/res/drawable-hdpi/ucrop_ic_angle.png index 218d5609..c80994d7 100644 Binary files a/ucrop/src/main/res/drawable-hdpi/ucrop_ic_angle.png and b/ucrop/src/main/res/drawable-hdpi/ucrop_ic_angle.png differ diff --git a/ucrop/src/main/res/drawable-mdpi/ucrop_ic_angle.png b/ucrop/src/main/res/drawable-mdpi/ucrop_ic_angle.png index 9945b062..f9ffe2de 100644 Binary files a/ucrop/src/main/res/drawable-mdpi/ucrop_ic_angle.png and b/ucrop/src/main/res/drawable-mdpi/ucrop_ic_angle.png differ diff --git a/ucrop/src/main/res/drawable-xhdpi/ucrop_ic_angle.png b/ucrop/src/main/res/drawable-xhdpi/ucrop_ic_angle.png index 27d13187..5b1e0538 100644 Binary files a/ucrop/src/main/res/drawable-xhdpi/ucrop_ic_angle.png and b/ucrop/src/main/res/drawable-xhdpi/ucrop_ic_angle.png differ diff --git a/ucrop/src/main/res/drawable-xxhdpi/ucrop_ic_angle.png b/ucrop/src/main/res/drawable-xxhdpi/ucrop_ic_angle.png index 30d941d3..bb0dd3bf 100644 Binary files a/ucrop/src/main/res/drawable-xxhdpi/ucrop_ic_angle.png and b/ucrop/src/main/res/drawable-xxhdpi/ucrop_ic_angle.png differ diff --git a/ucrop/src/main/res/drawable-xxxhdpi/ucrop_ic_angle.png b/ucrop/src/main/res/drawable-xxxhdpi/ucrop_ic_angle.png index 68eb67e0..290311dc 100644 Binary files a/ucrop/src/main/res/drawable-xxxhdpi/ucrop_ic_angle.png and b/ucrop/src/main/res/drawable-xxxhdpi/ucrop_ic_angle.png differ diff --git a/ucrop/src/main/res/drawable/ucrop_ic_crop.xml b/ucrop/src/main/res/drawable/ucrop_ic_crop.xml index a85a66c3..616027e3 100644 --- a/ucrop/src/main/res/drawable/ucrop_ic_crop.xml +++ b/ucrop/src/main/res/drawable/ucrop_ic_crop.xml @@ -1,10 +1,11 @@ diff --git a/ucrop/src/main/res/drawable/ucrop_ic_crop_unselected.xml b/ucrop/src/main/res/drawable/ucrop_ic_crop_unselected.xml index e931bc08..7a2bdbc7 100644 --- a/ucrop/src/main/res/drawable/ucrop_ic_crop_unselected.xml +++ b/ucrop/src/main/res/drawable/ucrop_ic_crop_unselected.xml @@ -1,11 +1,11 @@ diff --git a/ucrop/src/main/res/drawable/ucrop_ic_rotate.xml b/ucrop/src/main/res/drawable/ucrop_ic_rotate.xml index 01da8e0e..509d7b15 100644 --- a/ucrop/src/main/res/drawable/ucrop_ic_rotate.xml +++ b/ucrop/src/main/res/drawable/ucrop_ic_rotate.xml @@ -1,10 +1,11 @@ diff --git a/ucrop/src/main/res/drawable/ucrop_ic_rotate_unselected.xml b/ucrop/src/main/res/drawable/ucrop_ic_rotate_unselected.xml index be4d9ea4..55f7a3ff 100644 --- a/ucrop/src/main/res/drawable/ucrop_ic_rotate_unselected.xml +++ b/ucrop/src/main/res/drawable/ucrop_ic_rotate_unselected.xml @@ -1,11 +1,11 @@ diff --git a/ucrop/src/main/res/drawable/ucrop_ic_scale.xml b/ucrop/src/main/res/drawable/ucrop_ic_scale.xml index e038d52d..6c7985bb 100644 --- a/ucrop/src/main/res/drawable/ucrop_ic_scale.xml +++ b/ucrop/src/main/res/drawable/ucrop_ic_scale.xml @@ -1,10 +1,11 @@ diff --git a/ucrop/src/main/res/drawable/ucrop_ic_scale_unselected.xml b/ucrop/src/main/res/drawable/ucrop_ic_scale_unselected.xml index 988b8d24..c9de9fac 100644 --- a/ucrop/src/main/res/drawable/ucrop_ic_scale_unselected.xml +++ b/ucrop/src/main/res/drawable/ucrop_ic_scale_unselected.xml @@ -1,11 +1,11 @@ diff --git a/ucrop/src/main/res/layout/ucrop_activity_photobox.xml b/ucrop/src/main/res/layout/ucrop_activity_photobox.xml index 235e782c..0ed5f6d8 100644 --- a/ucrop/src/main/res/layout/ucrop_activity_photobox.xml +++ b/ucrop/src/main/res/layout/ucrop_activity_photobox.xml @@ -5,7 +5,7 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - - + - - diff --git a/ucrop/src/main/res/layout/ucrop_layout_rotate_wheel.xml b/ucrop/src/main/res/layout/ucrop_layout_rotate_wheel.xml index 6994701f..72e818ac 100644 --- a/ucrop/src/main/res/layout/ucrop_layout_rotate_wheel.xml +++ b/ucrop/src/main/res/layout/ucrop_layout_rotate_wheel.xml @@ -5,13 +5,13 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:visibility="gone" - tools:showIn="@layout/ucrop_activity_photobox" + tools:showIn="@layout/ucrop_controls" tools:visibility="visible"> + tools:text="100°" /> + android:layout_centerVertical="true" + android:background="?attr/selectableItemBackground"> + android:layout_centerVertical="true" + android:background="?attr/selectableItemBackground"> + android:src="@drawable/ucrop_ic_angle" + android:tint="@color/ucrop_color_widget_rotate_angle" /> diff --git a/ucrop/src/main/res/layout/ucrop_layout_scale_wheel.xml b/ucrop/src/main/res/layout/ucrop_layout_scale_wheel.xml index b4d95ea6..b5c29a53 100644 --- a/ucrop/src/main/res/layout/ucrop_layout_scale_wheel.xml +++ b/ucrop/src/main/res/layout/ucrop_layout_scale_wheel.xml @@ -1,20 +1,20 @@ + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="match_parent" + tools:showIn="@layout/ucrop_controls" + tools:visibility="gone"> + android:text="100%" /> + android:layout_below="@+id/text_view_scale" /> \ No newline at end of file diff --git a/ucrop/src/main/res/values/colors.xml b/ucrop/src/main/res/values/colors.xml index 526e544a..0c407813 100644 --- a/ucrop/src/main/res/values/colors.xml +++ b/ucrop/src/main/res/values/colors.xml @@ -1,18 +1,29 @@ + + #000 + #FF6300 + #20242F + #B3BECE + #FFF + - #fff + @color/ucrop_color_white #f5f5f5 - #000000 - #000 - #FFFFFF - #FFFFFF - #512DA8 - #673AB7 - #000 - #000000 - #000 + @color/ucrop_color_black + @color/ucrop_color_black + @color/ucrop_color_white + @color/ucrop_color_blaze_orange + @color/ucrop_color_heather + @color/ucrop_color_blaze_orange + @color/ucrop_color_ebony_clay + @color/ucrop_color_blaze_orange + @color/ucrop_color_ebony_clay + @color/ucrop_color_ebony_clay + @color/ucrop_color_blaze_orange + @color/ucrop_color_ebony_clay + @color/ucrop_color_black #80ffffff diff --git a/ucrop/src/main/res/values/dimens.xml b/ucrop/src/main/res/values/dimens.xml index e7ef4e58..acd7d464 100644 --- a/ucrop/src/main/res/values/dimens.xml +++ b/ucrop/src/main/res/values/dimens.xml @@ -11,7 +11,9 @@ 72dp 3dp 13sp - 10sp + 11sp + 10dp + 4dp 50dp 40dp 30dp diff --git a/ucrop/src/main/res/values/styles.xml b/ucrop/src/main/res/values/styles.xml index 9eb4bdc8..a535d31c 100644 --- a/ucrop/src/main/res/values/styles.xml +++ b/ucrop/src/main/res/values/styles.xml @@ -13,7 +13,7 @@ 0dp match_parent 1 - ?attr/selectableItemBackground + ?attr/selectableItemBackground true center vertical @@ -22,7 +22,7 @@ @@ -39,8 +39,8 @@ wrap_content true bold - @color/ucrop_color_widget_background - @dimen/ucrop_margit_top_widget_text + @color/ucrop_color_widget_text + @dimen/ucrop_margin_top_widget_text @dimen/ucrop_text_size_widget_text @@ -48,10 +48,10 @@ wrap_content wrap_content true - @dimen/ucrop_margit_top_widget_text + @dimen/ucrop_margin_top_controls_text @color/ucrop_color_widget_active bold - @dimen/ucrop_text_size_widget_text + @dimen/ucrop_text_size_controls_text \ No newline at end of file