From 1252250f91a26fc4ad9cdccfb7498222645ce893 Mon Sep 17 00:00:00 2001 From: Ramesh Pokharel Date: Fri, 24 May 2019 11:47:56 +0545 Subject: [PATCH 1/9] refactor to androidX --- app/build.gradle | 2 +- .../tedbottompickerdemo/MainActivity.java | 3 +- .../tedbottompickerdemo/MyApplication.java | 3 +- build.gradle | 2 + gradle.properties | 2 + tedbottompicker/build.gradle | 8 ++- tedbottompicker/proguard-rules.pro | 3 +- tedbottompicker/src/main/AndroidManifest.xml | 3 +- .../GridSpacingItemDecoration.java | 3 +- .../tedbottompicker/TedBottomPicker.java | 3 +- .../TedBottomSheetDialogFragment.java | 62 +++++++++++++------ .../tedbottompicker/TedRxBottomPicker.java | 3 +- .../adapter/GalleryAdapter.java | 11 ++-- .../view/TedEmptyRecyclerView.java | 7 ++- .../layout/tedbottompicker_content_view.xml | 2 +- 15 files changed, 78 insertions(+), 39 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 5dd0015..cbaebb5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -2,7 +2,7 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 27 + compileSdkVersion 28 defaultConfig { diff --git a/app/src/main/java/gun0912/tedbottompickerdemo/MainActivity.java b/app/src/main/java/gun0912/tedbottompickerdemo/MainActivity.java index 754e98e..8dedc3d 100644 --- a/app/src/main/java/gun0912/tedbottompickerdemo/MainActivity.java +++ b/app/src/main/java/gun0912/tedbottompickerdemo/MainActivity.java @@ -3,7 +3,6 @@ import android.Manifest; import android.net.Uri; import android.os.Bundle; -import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.util.TypedValue; import android.view.LayoutInflater; @@ -14,6 +13,8 @@ import android.widget.ImageView; import android.widget.Toast; +import androidx.appcompat.app.AppCompatActivity; + import com.bumptech.glide.Glide; import com.bumptech.glide.RequestManager; import com.bumptech.glide.request.RequestOptions; diff --git a/app/src/main/java/gun0912/tedbottompickerdemo/MyApplication.java b/app/src/main/java/gun0912/tedbottompickerdemo/MyApplication.java index ae7ee41..74a29f3 100644 --- a/app/src/main/java/gun0912/tedbottompickerdemo/MyApplication.java +++ b/app/src/main/java/gun0912/tedbottompickerdemo/MyApplication.java @@ -1,7 +1,8 @@ package gun0912.tedbottompickerdemo; import android.app.Application; -import android.support.multidex.MultiDexApplication; + +import androidx.multidex.MultiDexApplication; import com.squareup.leakcanary.LeakCanary; diff --git a/build.gradle b/build.gradle index 7682852..1ca57ab 100644 --- a/build.gradle +++ b/build.gradle @@ -16,6 +16,8 @@ allprojects { repositories { jcenter() google() + maven { url "https://jitpack.io" } + } group = GROUP diff --git a/gradle.properties b/gradle.properties index e102983..58783f9 100644 --- a/gradle.properties +++ b/gradle.properties @@ -29,3 +29,5 @@ LIBRARY_DESCRIPTION = 'TedBottomPicker is simple image picker using bottom sheet POM_ARTIFACT_ID=tedbottompicker POM_NAME=TedBottomPicker +android.enableJetifier=true +android.useAndroidX=true diff --git a/tedbottompicker/build.gradle b/tedbottompicker/build.gradle index 395918d..56478fd 100644 --- a/tedbottompicker/build.gradle +++ b/tedbottompicker/build.gradle @@ -3,12 +3,12 @@ apply plugin: 'com.android.library' android { - compileSdkVersion 27 + compileSdkVersion 28 defaultConfig { minSdkVersion 16 - targetSdkVersion 24 + targetSdkVersion 28 versionCode 1 versionName "1.0" } @@ -53,6 +53,10 @@ dependencies { annotationProcessor 'com.github.bumptech.glide:compiler:4.7.1' implementation 'gun0912.ted:tedonactivityresult:1.0.6' implementation "io.reactivex.rxjava2:rxjava:2.2.6" + api 'com.theartofdev.edmodo:android-image-cropper:2.8.0' + + + } apply from: rootProject.file('publish.gradle') \ No newline at end of file diff --git a/tedbottompicker/proguard-rules.pro b/tedbottompicker/proguard-rules.pro index 39552e4..296c806 100644 --- a/tedbottompicker/proguard-rules.pro +++ b/tedbottompicker/proguard-rules.pro @@ -23,4 +23,5 @@ } # for DexGuard only --keepresourcexmlelements manifest/application/meta-data@value=GlideModule \ No newline at end of file +-keepresourcexmlelements manifest/application/meta-data@value=GlideModule +-keep class androidx.appcompat.widget.** { *; } diff --git a/tedbottompicker/src/main/AndroidManifest.xml b/tedbottompicker/src/main/AndroidManifest.xml index 016b06c..ba52e13 100644 --- a/tedbottompicker/src/main/AndroidManifest.xml +++ b/tedbottompicker/src/main/AndroidManifest.xml @@ -5,7 +5,7 @@ @@ -13,6 +13,7 @@ android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/provider_paths"/> + diff --git a/tedbottompicker/src/main/java/gun0912/tedbottompicker/GridSpacingItemDecoration.java b/tedbottompicker/src/main/java/gun0912/tedbottompicker/GridSpacingItemDecoration.java index 87e1526..b728e4e 100644 --- a/tedbottompicker/src/main/java/gun0912/tedbottompicker/GridSpacingItemDecoration.java +++ b/tedbottompicker/src/main/java/gun0912/tedbottompicker/GridSpacingItemDecoration.java @@ -1,9 +1,10 @@ package gun0912.tedbottompicker; import android.graphics.Rect; -import android.support.v7.widget.RecyclerView; import android.view.View; +import androidx.recyclerview.widget.RecyclerView; + /** * Created by TedPark on 2016. 8. 30.. */ diff --git a/tedbottompicker/src/main/java/gun0912/tedbottompicker/TedBottomPicker.java b/tedbottompicker/src/main/java/gun0912/tedbottompicker/TedBottomPicker.java index cc6e8cf..0804179 100644 --- a/tedbottompicker/src/main/java/gun0912/tedbottompicker/TedBottomPicker.java +++ b/tedbottompicker/src/main/java/gun0912/tedbottompicker/TedBottomPicker.java @@ -1,6 +1,7 @@ package gun0912.tedbottompicker; -import android.support.v4.app.FragmentActivity; + +import androidx.fragment.app.FragmentActivity; public class TedBottomPicker extends TedBottomSheetDialogFragment { diff --git a/tedbottompicker/src/main/java/gun0912/tedbottompicker/TedBottomSheetDialogFragment.java b/tedbottompicker/src/main/java/gun0912/tedbottompicker/TedBottomSheetDialogFragment.java index d0a4dee..ff26085 100644 --- a/tedbottompicker/src/main/java/gun0912/tedbottompicker/TedBottomSheetDialogFragment.java +++ b/tedbottompicker/src/main/java/gun0912/tedbottompicker/TedBottomSheetDialogFragment.java @@ -1,7 +1,6 @@ package gun0912.tedbottompicker; import android.Manifest; -import android.app.Activity; import android.app.Dialog; import android.content.Intent; import android.content.pm.PackageManager; @@ -13,24 +12,8 @@ import android.os.Bundle; import android.os.Environment; import android.provider.MediaStore; -import android.support.annotation.ColorRes; -import android.support.annotation.DimenRes; -import android.support.annotation.DrawableRes; -import android.support.annotation.IntDef; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.annotation.StringRes; -import android.support.design.widget.BottomSheetBehavior; -import android.support.design.widget.BottomSheetDialogFragment; -import android.support.design.widget.CoordinatorLayout; -import android.support.v4.app.FragmentActivity; -import android.support.v4.app.FragmentManager; -import android.support.v4.app.FragmentTransaction; -import android.support.v4.content.ContextCompat; -import android.support.v4.content.FileProvider; -import android.support.v7.widget.GridLayoutManager; -import android.support.v7.widget.RecyclerView; import android.text.TextUtils; +import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.widget.Button; @@ -40,8 +23,26 @@ import android.widget.TextView; import android.widget.Toast; +import androidx.annotation.ColorRes; +import androidx.annotation.DimenRes; +import androidx.annotation.DrawableRes; +import androidx.annotation.IntDef; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.annotation.StringRes; +import androidx.coordinatorlayout.widget.CoordinatorLayout; +import androidx.core.content.ContextCompat; +import androidx.core.content.FileProvider; +import androidx.fragment.app.FragmentActivity; +import androidx.fragment.app.FragmentManager; +import androidx.fragment.app.FragmentTransaction; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + import com.bumptech.glide.Glide; import com.bumptech.glide.request.RequestOptions; +import com.google.android.material.bottomsheet.BottomSheetBehavior; +import com.google.android.material.bottomsheet.BottomSheetDialogFragment; import com.gun0912.tedonactivityresult.TedOnActivityResult; import com.gun0912.tedonactivityresult.listener.OnActivityResultListener; @@ -58,6 +59,8 @@ import gun0912.tedbottompicker.adapter.GalleryAdapter; import gun0912.tedbottompicker.util.RealPathUtil; +import static android.app.Activity.RESULT_OK; + public class TedBottomSheetDialogFragment extends BottomSheetDialogFragment { private static final String EXTRA_CAMERA_IMAGE_URI = "camera_image_uri"; @@ -296,6 +299,15 @@ private void addUri(final Uri uri) { } + File f = new File(uri.getPath()); + long size = f.length();//in bytes + if (size > 2097152) { + Log.d("SIZE", size + ""); + Uri destination = Uri.fromFile(new File(getActivity().getCacheDir(), "cropped")); + + } + + selectedUriList.add(uri); final View rootView = LayoutInflater.from(getActivity()).inflate(R.layout.tedbottompicker_selected_item, null); @@ -341,6 +353,16 @@ public void onClick(View v) { } + @Override + public void onActivityResult(int requestCode, int resultCode, Intent result) { +/* + if (requestCode == Crop.REQUEST_CROP && resultCode == RESULT_OK) { + + + } +*/ + } + private void removeImage(Uri uri) { selectedUriList.remove(uri); @@ -405,7 +427,7 @@ private void startCameraIntent() { .setListener(new OnActivityResultListener() { @Override public void onActivityResult(int resultCode, Intent data) { - if (resultCode == Activity.RESULT_OK) { + if (resultCode == RESULT_OK) { onActivityResultCamera(cameraImageUri); } } @@ -503,7 +525,7 @@ private void startGalleryIntent() { .setListener(new OnActivityResultListener() { @Override public void onActivityResult(int resultCode, Intent data) { - if (resultCode == Activity.RESULT_OK) { + if (resultCode == RESULT_OK) { onActivityResultGallery(data); } } diff --git a/tedbottompicker/src/main/java/gun0912/tedbottompicker/TedRxBottomPicker.java b/tedbottompicker/src/main/java/gun0912/tedbottompicker/TedRxBottomPicker.java index fc9a8e0..95c20b2 100644 --- a/tedbottompicker/src/main/java/gun0912/tedbottompicker/TedRxBottomPicker.java +++ b/tedbottompicker/src/main/java/gun0912/tedbottompicker/TedRxBottomPicker.java @@ -1,7 +1,8 @@ package gun0912.tedbottompicker; import android.net.Uri; -import android.support.v4.app.FragmentActivity; + +import androidx.fragment.app.FragmentActivity; import java.util.List; diff --git a/tedbottompicker/src/main/java/gun0912/tedbottompicker/adapter/GalleryAdapter.java b/tedbottompicker/src/main/java/gun0912/tedbottompicker/adapter/GalleryAdapter.java index 89e93a2..309cb8b 100644 --- a/tedbottompicker/src/main/java/gun0912/tedbottompicker/adapter/GalleryAdapter.java +++ b/tedbottompicker/src/main/java/gun0912/tedbottompicker/adapter/GalleryAdapter.java @@ -5,14 +5,15 @@ import android.graphics.drawable.Drawable; import android.net.Uri; import android.provider.MediaStore; -import android.support.annotation.IntDef; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.v4.content.ContextCompat; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.view.ViewGroup; +import androidx.annotation.IntDef; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.RecyclerView; + import com.bumptech.glide.Glide; import com.bumptech.glide.request.RequestOptions; diff --git a/tedbottompicker/src/main/java/gun0912/tedbottompicker/view/TedEmptyRecyclerView.java b/tedbottompicker/src/main/java/gun0912/tedbottompicker/view/TedEmptyRecyclerView.java index d31c0ed..9d58502 100644 --- a/tedbottompicker/src/main/java/gun0912/tedbottompicker/view/TedEmptyRecyclerView.java +++ b/tedbottompicker/src/main/java/gun0912/tedbottompicker/view/TedEmptyRecyclerView.java @@ -1,12 +1,13 @@ package gun0912.tedbottompicker.view; import android.content.Context; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.v7.widget.RecyclerView; import android.util.AttributeSet; import android.view.View; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.recyclerview.widget.RecyclerView; + public class TedEmptyRecyclerView extends RecyclerView { @Nullable View emptyView; diff --git a/tedbottompicker/src/main/res/layout/tedbottompicker_content_view.xml b/tedbottompicker/src/main/res/layout/tedbottompicker_content_view.xml index bf5b154..3441f4c 100644 --- a/tedbottompicker/src/main/res/layout/tedbottompicker_content_view.xml +++ b/tedbottompicker/src/main/res/layout/tedbottompicker_content_view.xml @@ -117,7 +117,7 @@ /> --> - Date: Fri, 24 May 2019 12:09:42 +0545 Subject: [PATCH 2/9] add aspect ratio --- tedbottompicker/src/main/AndroidManifest.xml | 3 +- .../TedBottomSheetDialogFragment.java | 35 +++++++++++-------- 2 files changed, 22 insertions(+), 16 deletions(-) diff --git a/tedbottompicker/src/main/AndroidManifest.xml b/tedbottompicker/src/main/AndroidManifest.xml index ba52e13..82a9df3 100644 --- a/tedbottompicker/src/main/AndroidManifest.xml +++ b/tedbottompicker/src/main/AndroidManifest.xml @@ -13,7 +13,8 @@ android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/provider_paths"/> - + diff --git a/tedbottompicker/src/main/java/gun0912/tedbottompicker/TedBottomSheetDialogFragment.java b/tedbottompicker/src/main/java/gun0912/tedbottompicker/TedBottomSheetDialogFragment.java index ff26085..a33b2c8 100644 --- a/tedbottompicker/src/main/java/gun0912/tedbottompicker/TedBottomSheetDialogFragment.java +++ b/tedbottompicker/src/main/java/gun0912/tedbottompicker/TedBottomSheetDialogFragment.java @@ -13,7 +13,6 @@ import android.os.Environment; import android.provider.MediaStore; import android.text.TextUtils; -import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.widget.Button; @@ -45,6 +44,8 @@ import com.google.android.material.bottomsheet.BottomSheetDialogFragment; import com.gun0912.tedonactivityresult.TedOnActivityResult; import com.gun0912.tedonactivityresult.listener.OnActivityResultListener; +import com.theartofdev.edmodo.cropper.CropImage; +import com.theartofdev.edmodo.cropper.CropImageView; import java.io.File; import java.io.IOException; @@ -297,17 +298,17 @@ private void addUri(final Uri uri) { Toast.makeText(getActivity(), message, Toast.LENGTH_SHORT).show(); return; } + + // Uri destination = Uri.fromFile(new File(getActivity().getCacheDir(), "cropped")); + CropImage.activity(uri) + .setAspectRatio(1, 1) + .setRequestedSize(500, 500, CropImageView.RequestSizeOptions.RESIZE_INSIDE) + .start(getContext(), this); - File f = new File(uri.getPath()); - long size = f.length();//in bytes - if (size > 2097152) { - Log.d("SIZE", size + ""); - Uri destination = Uri.fromFile(new File(getActivity().getCacheDir(), "cropped")); - - } - + } + private void setToLayout(Uri uri) { selectedUriList.add(uri); final View rootView = LayoutInflater.from(getActivity()).inflate(R.layout.tedbottompicker_selected_item, null); @@ -354,13 +355,17 @@ public void onClick(View v) { } @Override - public void onActivityResult(int requestCode, int resultCode, Intent result) { -/* - if (requestCode == Crop.REQUEST_CROP && resultCode == RESULT_OK) { - - + public void onActivityResult(int requestCode, int resultCode, Intent data) { + if (requestCode == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE) { + CropImage.ActivityResult result = CropImage.getActivityResult(data); + if (resultCode == RESULT_OK) { + Uri resultUri = result.getUri(); + setToLayout(resultUri); + + } else if (resultCode == CropImage.CROP_IMAGE_ACTIVITY_RESULT_ERROR_CODE) { + Exception error = result.getError(); + } } -*/ } private void removeImage(Uri uri) { From 80ddfeaf7b3ff4a82903aa99fcd48f7b2bd670f0 Mon Sep 17 00:00:00 2001 From: Ramesh Pokharel Date: Fri, 24 May 2019 12:42:20 +0545 Subject: [PATCH 3/9] remove compress sie --- .../gun0912/tedbottompicker/TedBottomSheetDialogFragment.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tedbottompicker/src/main/java/gun0912/tedbottompicker/TedBottomSheetDialogFragment.java b/tedbottompicker/src/main/java/gun0912/tedbottompicker/TedBottomSheetDialogFragment.java index a33b2c8..ea3a983 100644 --- a/tedbottompicker/src/main/java/gun0912/tedbottompicker/TedBottomSheetDialogFragment.java +++ b/tedbottompicker/src/main/java/gun0912/tedbottompicker/TedBottomSheetDialogFragment.java @@ -298,11 +298,11 @@ private void addUri(final Uri uri) { Toast.makeText(getActivity(), message, Toast.LENGTH_SHORT).show(); return; } - + // Uri destination = Uri.fromFile(new File(getActivity().getCacheDir(), "cropped")); CropImage.activity(uri) .setAspectRatio(1, 1) - .setRequestedSize(500, 500, CropImageView.RequestSizeOptions.RESIZE_INSIDE) + // .setRequestedSize(500, 500, CropImageView.RequestSizeOptions.RESIZE_INSIDE) .start(getContext(), this); From 88c3914966fd74daf24accc47a3a7149b6f4cdca Mon Sep 17 00:00:00 2001 From: Ramesh Pokharel Date: Fri, 24 May 2019 13:04:54 +0545 Subject: [PATCH 4/9] added options of cropper in builder class --- .../tedbottompickerdemo/MainActivity.java | 3 +- .../TedBottomSheetDialogFragment.java | 32 +++++++++++++++---- 2 files changed, 28 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/gun0912/tedbottompickerdemo/MainActivity.java b/app/src/main/java/gun0912/tedbottompickerdemo/MainActivity.java index 8dedc3d..3475fad 100644 --- a/app/src/main/java/gun0912/tedbottompickerdemo/MainActivity.java +++ b/app/src/main/java/gun0912/tedbottompickerdemo/MainActivity.java @@ -106,6 +106,8 @@ public void onPermissionGranted() { TedBottomPicker.with(MainActivity.this) //.setPeekHeight(getResources().getDisplayMetrics().heightPixels/2) .setPeekHeight(1600) + .setCropper(true) + .setCropperRatio(1,1) .showTitle(false) .setCompleteButtonText("Done") .setEmptySelectionText("No Select") @@ -115,7 +117,6 @@ public void onPermissionGranted() { showUriList(uriList); }); - } @Override diff --git a/tedbottompicker/src/main/java/gun0912/tedbottompicker/TedBottomSheetDialogFragment.java b/tedbottompicker/src/main/java/gun0912/tedbottompicker/TedBottomSheetDialogFragment.java index ea3a983..c32d758 100644 --- a/tedbottompicker/src/main/java/gun0912/tedbottompicker/TedBottomSheetDialogFragment.java +++ b/tedbottompicker/src/main/java/gun0912/tedbottompicker/TedBottomSheetDialogFragment.java @@ -45,7 +45,6 @@ import com.gun0912.tedonactivityresult.TedOnActivityResult; import com.gun0912.tedonactivityresult.listener.OnActivityResultListener; import com.theartofdev.edmodo.cropper.CropImage; -import com.theartofdev.edmodo.cropper.CropImageView; import java.io.File; import java.io.IOException; @@ -299,11 +298,18 @@ private void addUri(final Uri uri) { return; } - // Uri destination = Uri.fromFile(new File(getActivity().getCacheDir(), "cropped")); - CropImage.activity(uri) - .setAspectRatio(1, 1) - // .setRequestedSize(500, 500, CropImageView.RequestSizeOptions.RESIZE_INSIDE) - .start(getContext(), this); + if (builder.setCropper) { + + CropImage.ActivityBuilder bi = CropImage.activity(uri); + if (builder.ratioX != 0) { + bi.setAspectRatio(builder.ratioX, builder.ratioY); + } + // bi.setRequestedSize(500, 500, CropImageView.RequestSizeOptions.RESIZE_INSIDE) + bi.start(getContext(), this); + + } else { + setToLayout(uri); + } } @@ -653,6 +659,9 @@ public abstract static class BaseBuilder { private int spacing = 1; private boolean includeEdgeSpacing = false; private int peekHeight = -1; + private boolean setCropper = false; + private int ratioX = 0; + private int ratioY = 0; private int titleBackgroundResId; private int selectMaxCount = Integer.MAX_VALUE; private int selectMinCount = 0; @@ -770,6 +779,17 @@ public T setPeekHeight(int peekHeight) { return (T) this; } + public T setCropper(boolean setCropper) { + this.setCropper = setCropper; + return (T) this; + } + + public T setCropperRatio(int ratioX, int ratioY) { + this.ratioX = ratioX; + this.ratioY = ratioY; + return (T) this; + } + public T setPeekHeightResId(@DimenRes int dimenResId) { this.peekHeight = fragmentActivity.getResources().getDimensionPixelSize(dimenResId); return (T) this; From d11288717dac7437cbf9e2e08996a1d395b41fd0 Mon Sep 17 00:00:00 2001 From: Ramesh Pokharel Date: Fri, 24 May 2019 13:52:24 +0545 Subject: [PATCH 5/9] add cropper size compression --- .../tedbottompickerdemo/MainActivity.java | 2 ++ .../TedBottomSheetDialogFragment.java | 16 ++++++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/gun0912/tedbottompickerdemo/MainActivity.java b/app/src/main/java/gun0912/tedbottompickerdemo/MainActivity.java index 3475fad..50a0bf6 100644 --- a/app/src/main/java/gun0912/tedbottompickerdemo/MainActivity.java +++ b/app/src/main/java/gun0912/tedbottompickerdemo/MainActivity.java @@ -20,6 +20,7 @@ import com.bumptech.glide.request.RequestOptions; import com.gun0912.tedpermission.PermissionListener; import com.gun0912.tedpermission.TedPermission; +import com.theartofdev.edmodo.cropper.CropImageView; import java.util.ArrayList; import java.util.List; @@ -108,6 +109,7 @@ public void onPermissionGranted() { .setPeekHeight(1600) .setCropper(true) .setCropperRatio(1,1) + .setResize(500,500, CropImageView.RequestSizeOptions.RESIZE_INSIDE) .showTitle(false) .setCompleteButtonText("Done") .setEmptySelectionText("No Select") diff --git a/tedbottompicker/src/main/java/gun0912/tedbottompicker/TedBottomSheetDialogFragment.java b/tedbottompicker/src/main/java/gun0912/tedbottompicker/TedBottomSheetDialogFragment.java index c32d758..2a14371 100644 --- a/tedbottompicker/src/main/java/gun0912/tedbottompicker/TedBottomSheetDialogFragment.java +++ b/tedbottompicker/src/main/java/gun0912/tedbottompicker/TedBottomSheetDialogFragment.java @@ -45,6 +45,7 @@ import com.gun0912.tedonactivityresult.TedOnActivityResult; import com.gun0912.tedonactivityresult.listener.OnActivityResultListener; import com.theartofdev.edmodo.cropper.CropImage; +import com.theartofdev.edmodo.cropper.CropImageView; import java.io.File; import java.io.IOException; @@ -301,10 +302,11 @@ private void addUri(final Uri uri) { if (builder.setCropper) { CropImage.ActivityBuilder bi = CropImage.activity(uri); - if (builder.ratioX != 0) { + if (builder.ratioX > 0) { bi.setAspectRatio(builder.ratioX, builder.ratioY); } - // bi.setRequestedSize(500, 500, CropImageView.RequestSizeOptions.RESIZE_INSIDE) + if (builder.resizeWidth > 0) + bi.setRequestedSize(builder.resizeWidth, builder.resizeHeight, builder.resizeOption); bi.start(getContext(), this); } else { @@ -660,6 +662,9 @@ public abstract static class BaseBuilder { private boolean includeEdgeSpacing = false; private int peekHeight = -1; private boolean setCropper = false; + private int resizeWidth = 0; + private int resizeHeight = 0; + private CropImageView.RequestSizeOptions resizeOption = CropImageView.RequestSizeOptions.NONE; private int ratioX = 0; private int ratioY = 0; private int titleBackgroundResId; @@ -790,6 +795,13 @@ public T setCropperRatio(int ratioX, int ratioY) { return (T) this; } + public T setResize(int resizeWidth, int resizeHeight, CropImageView.RequestSizeOptions resizeOption) { + this.resizeWidth = resizeWidth; + this.resizeHeight = resizeHeight; + this.resizeOption = resizeOption; + return (T) this; + } + public T setPeekHeightResId(@DimenRes int dimenResId) { this.peekHeight = fragmentActivity.getResources().getDimensionPixelSize(dimenResId); return (T) this; From 5c24d950aea6ebbabec7a8621e60685c39a13f31 Mon Sep 17 00:00:00 2001 From: Ramesh Pokharel Date: Tue, 28 May 2019 16:49:44 +0545 Subject: [PATCH 6/9] set single image cropper --- .../tedbottompickerdemo/MainActivity.java | 6 +++-- .../TedBottomSheetDialogFragment.java | 25 +++++++++++++++---- 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/gun0912/tedbottompickerdemo/MainActivity.java b/app/src/main/java/gun0912/tedbottompickerdemo/MainActivity.java index 50a0bf6..e276e9a 100644 --- a/app/src/main/java/gun0912/tedbottompickerdemo/MainActivity.java +++ b/app/src/main/java/gun0912/tedbottompickerdemo/MainActivity.java @@ -66,6 +66,8 @@ public void onPermissionGranted() { //.setPeekHeight(getResources().getDisplayMetrics().heightPixels/2) .setSelectedUri(selectedUri) //.showVideoMedia() + .setCropper(true) + .setResize(500, 500,CropImageView.RequestSizeOptions.RESIZE_INSIDE) .setPeekHeight(1200) .show(uri -> { Log.d("ted", "uri: " + uri); @@ -108,8 +110,8 @@ public void onPermissionGranted() { //.setPeekHeight(getResources().getDisplayMetrics().heightPixels/2) .setPeekHeight(1600) .setCropper(true) - .setCropperRatio(1,1) - .setResize(500,500, CropImageView.RequestSizeOptions.RESIZE_INSIDE) + .setCropperRatio(1, 1) + .setResize(500, 500, CropImageView.RequestSizeOptions.RESIZE_INSIDE) .showTitle(false) .setCompleteButtonText("Done") .setEmptySelectionText("No Select") diff --git a/tedbottompicker/src/main/java/gun0912/tedbottompicker/TedBottomSheetDialogFragment.java b/tedbottompicker/src/main/java/gun0912/tedbottompicker/TedBottomSheetDialogFragment.java index 2a14371..afc3abe 100644 --- a/tedbottompicker/src/main/java/gun0912/tedbottompicker/TedBottomSheetDialogFragment.java +++ b/tedbottompicker/src/main/java/gun0912/tedbottompicker/TedBottomSheetDialogFragment.java @@ -280,8 +280,20 @@ private void complete(final Uri uri) { } } else { - builder.onImageSelectedListener.onImageSelected(uri); - dismissAllowingStateLoss(); + if (builder.setCropper) { + + CropImage.ActivityBuilder bi = CropImage.activity(uri); + if (builder.ratioX > 0) { + bi.setAspectRatio(builder.ratioX, builder.ratioY); + } + if (builder.resizeWidth > 0) + bi.setRequestedSize(builder.resizeWidth, builder.resizeHeight, builder.resizeOption); + bi.start(getContext(), this); + + } else { + builder.onImageSelectedListener.onImageSelected(uri); + dismissAllowingStateLoss(); + } } } @@ -298,7 +310,6 @@ private void addUri(final Uri uri) { Toast.makeText(getActivity(), message, Toast.LENGTH_SHORT).show(); return; } - if (builder.setCropper) { CropImage.ActivityBuilder bi = CropImage.activity(uri); @@ -313,7 +324,6 @@ private void addUri(final Uri uri) { setToLayout(uri); } - } private void setToLayout(Uri uri) { @@ -368,7 +378,12 @@ public void onActivityResult(int requestCode, int resultCode, Intent data) { CropImage.ActivityResult result = CropImage.getActivityResult(data); if (resultCode == RESULT_OK) { Uri resultUri = result.getUri(); - setToLayout(resultUri); + if (isMultiSelect()) setToLayout(resultUri); + else { + builder.onImageSelectedListener.onImageSelected(resultUri); + dismissAllowingStateLoss(); + + } } else if (resultCode == CropImage.CROP_IMAGE_ACTIVITY_RESULT_ERROR_CODE) { Exception error = result.getError(); From 37fb8a1dd232bd8163837dd8f1eb186952d6b97d Mon Sep 17 00:00:00 2001 From: Ramesh Pokharel Date: Mon, 10 Jun 2019 14:48:26 +0545 Subject: [PATCH 7/9] handle exception from cropper --- .../gun0912/tedbottompicker/TedBottomSheetDialogFragment.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tedbottompicker/src/main/java/gun0912/tedbottompicker/TedBottomSheetDialogFragment.java b/tedbottompicker/src/main/java/gun0912/tedbottompicker/TedBottomSheetDialogFragment.java index afc3abe..545e640 100644 --- a/tedbottompicker/src/main/java/gun0912/tedbottompicker/TedBottomSheetDialogFragment.java +++ b/tedbottompicker/src/main/java/gun0912/tedbottompicker/TedBottomSheetDialogFragment.java @@ -311,7 +311,6 @@ private void addUri(final Uri uri) { return; } if (builder.setCropper) { - CropImage.ActivityBuilder bi = CropImage.activity(uri); if (builder.ratioX > 0) { bi.setAspectRatio(builder.ratioX, builder.ratioY); @@ -387,6 +386,7 @@ public void onActivityResult(int requestCode, int resultCode, Intent data) { } else if (resultCode == CropImage.CROP_IMAGE_ACTIVITY_RESULT_ERROR_CODE) { Exception error = result.getError(); + errorMessage(error.getMessage()); } } } From 7f849afbae954e74237265584711fa46bb95ac12 Mon Sep 17 00:00:00 2001 From: Ramesh Pokharel Date: Mon, 10 Jun 2019 14:54:34 +0545 Subject: [PATCH 8/9] format code --- .../tedbottompickerdemo/MainActivity.java | 2 +- .../TedBottomSheetDialogFragment.java | 29 ++++++++----------- 2 files changed, 13 insertions(+), 18 deletions(-) diff --git a/app/src/main/java/gun0912/tedbottompickerdemo/MainActivity.java b/app/src/main/java/gun0912/tedbottompickerdemo/MainActivity.java index e276e9a..f869c2b 100644 --- a/app/src/main/java/gun0912/tedbottompickerdemo/MainActivity.java +++ b/app/src/main/java/gun0912/tedbottompickerdemo/MainActivity.java @@ -67,7 +67,7 @@ public void onPermissionGranted() { .setSelectedUri(selectedUri) //.showVideoMedia() .setCropper(true) - .setResize(500, 500,CropImageView.RequestSizeOptions.RESIZE_INSIDE) + .setResize(500, 500, CropImageView.RequestSizeOptions.RESIZE_INSIDE) .setPeekHeight(1200) .show(uri -> { Log.d("ted", "uri: " + uri); diff --git a/tedbottompicker/src/main/java/gun0912/tedbottompicker/TedBottomSheetDialogFragment.java b/tedbottompicker/src/main/java/gun0912/tedbottompicker/TedBottomSheetDialogFragment.java index 545e640..eec7593 100644 --- a/tedbottompicker/src/main/java/gun0912/tedbottompicker/TedBottomSheetDialogFragment.java +++ b/tedbottompicker/src/main/java/gun0912/tedbottompicker/TedBottomSheetDialogFragment.java @@ -281,15 +281,7 @@ private void complete(final Uri uri) { } else { if (builder.setCropper) { - - CropImage.ActivityBuilder bi = CropImage.activity(uri); - if (builder.ratioX > 0) { - bi.setAspectRatio(builder.ratioX, builder.ratioY); - } - if (builder.resizeWidth > 0) - bi.setRequestedSize(builder.resizeWidth, builder.resizeHeight, builder.resizeOption); - bi.start(getContext(), this); - + openCropper(uri); } else { builder.onImageSelectedListener.onImageSelected(uri); dismissAllowingStateLoss(); @@ -298,6 +290,16 @@ private void complete(final Uri uri) { } + private void openCropper(Uri uri) { + CropImage.ActivityBuilder bi = CropImage.activity(uri); + if (builder.ratioX > 0) { + bi.setAspectRatio(builder.ratioX, builder.ratioY); + } + if (builder.resizeWidth > 0) + bi.setRequestedSize(builder.resizeWidth, builder.resizeHeight, builder.resizeOption); + bi.start(getContext(), this); + } + private void addUri(final Uri uri) { if (selectedUriList.size() == builder.selectMaxCount) { String message; @@ -311,14 +313,7 @@ private void addUri(final Uri uri) { return; } if (builder.setCropper) { - CropImage.ActivityBuilder bi = CropImage.activity(uri); - if (builder.ratioX > 0) { - bi.setAspectRatio(builder.ratioX, builder.ratioY); - } - if (builder.resizeWidth > 0) - bi.setRequestedSize(builder.resizeWidth, builder.resizeHeight, builder.resizeOption); - bi.start(getContext(), this); - + openCropper(uri); } else { setToLayout(uri); } From f7026ff96f5dd69cb2deb575c0193b693b17dbf9 Mon Sep 17 00:00:00 2001 From: Ramesh Pokhrel Date: Thu, 5 Sep 2019 11:27:02 +0545 Subject: [PATCH 9/9] update library --- app/build.gradle | 12 ++++++------ build.gradle | 6 ++++-- gradle/wrapper/gradle-wrapper.properties | 4 ++-- tedbottompicker/build.gradle | 16 ++++++++-------- 4 files changed, 20 insertions(+), 18 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index cbaebb5..b508b2d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -2,13 +2,13 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 28 + compileSdkVersion 29 defaultConfig { applicationId "gun0912.tedbottompickerdemo" minSdkVersion 16 - targetSdkVersion 26 + targetSdkVersion 29 versionCode 1 versionName "1.0.0" multiDexEnabled true @@ -39,13 +39,13 @@ repositories { dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') testImplementation 'junit:junit:4.12' - implementation 'com.android.support:appcompat-v7:27.1.1' + implementation 'androidx.appcompat:appcompat:1.0.2' implementation project(':tedbottompicker') - implementation 'com.android.support:multidex:1.0.3' + implementation 'androidx.multidex:multidex:2.0.1' implementation 'gun0912.ted:tedpermission:2.2.0' - implementation 'com.github.bumptech.glide:glide:4.7.1' - annotationProcessor 'com.github.bumptech.glide:compiler:4.7.1' + implementation "com.github.bumptech.glide:glide:$glide_version" + annotationProcessor "com.github.bumptech.glide:compiler:$glide_version" debugImplementation 'com.squareup.leakcanary:leakcanary-android:1.6.3' releaseImplementation 'com.squareup.leakcanary:leakcanary-android-no-op:1.6.3' diff --git a/build.gradle b/build.gradle index 1ca57ab..09c95cc 100644 --- a/build.gradle +++ b/build.gradle @@ -1,15 +1,17 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { + ext.glide_version = '4.9.0' repositories { jcenter() google() } dependencies { - classpath 'com.android.tools.build:gradle:3.2.1' - classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.4' + classpath 'com.android.tools.build:gradle:3.4.2' + classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.4' classpath 'com.github.dcendents:android-maven-gradle-plugin:2.0' } + } allprojects { diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 8e81f77..4f50f13 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Tue Feb 19 22:46:50 KST 2019 +#Thu Sep 05 11:11:10 NPT 2019 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip diff --git a/tedbottompicker/build.gradle b/tedbottompicker/build.gradle index 56478fd..6b45ac0 100644 --- a/tedbottompicker/build.gradle +++ b/tedbottompicker/build.gradle @@ -3,12 +3,12 @@ apply plugin: 'com.android.library' android { - compileSdkVersion 28 + compileSdkVersion 29 defaultConfig { minSdkVersion 16 - targetSdkVersion 28 + targetSdkVersion 29 versionCode 1 versionName "1.0" } @@ -45,12 +45,12 @@ repositories { dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') testCompile 'junit:junit:4.12' - implementation 'com.android.support:appcompat-v7:27.1.1' - api 'com.android.support:design:27.1.1' - implementation 'com.android.support:support-annotations:27.1.1' - javadocDeps 'com.android.support:support-annotations:27.1.1' - implementation 'com.github.bumptech.glide:glide:4.7.1' - annotationProcessor 'com.github.bumptech.glide:compiler:4.7.1' + implementation 'androidx.appcompat:appcompat:1.0.2' + api 'com.google.android.material:material:1.0.0' + implementation 'androidx.annotation:annotation:1.1.0' + javadocDeps 'androidx.annotation:annotation:1.1.0' + implementation "com.github.bumptech.glide:glide:$glide_version" + annotationProcessor "com.github.bumptech.glide:compiler:$glide_version" implementation 'gun0912.ted:tedonactivityresult:1.0.6' implementation "io.reactivex.rxjava2:rxjava:2.2.6" api 'com.theartofdev.edmodo:android-image-cropper:2.8.0'