From 9da91be19ec5cffd5a14df537ceaa85b4d33e4fe Mon Sep 17 00:00:00 2001 From: Oleksii Shliama Date: Thu, 21 Jan 2016 10:37:43 +0200 Subject: [PATCH] Hello World! --- .gitignore | 47 ++ README.md | 79 ++ build.gradle | 27 + ...lantis.ucrop.sample_2016.01.15_14.06.alloc | Bin 0 -> 1412191 bytes gradle.properties | 33 + gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 49896 bytes gradle/wrapper/gradle-wrapper.properties | 6 + gradlew | 164 ++++ gradlew.bat | 90 +++ mavenpush.gradle | 92 +++ sample/.gitignore | 1 + sample/build.gradle | 30 + sample/proguard-rules.pro | 17 + sample/src/main/AndroidManifest.xml | 34 + .../yalantis/ucrop/sample/BaseActivity.java | 76 ++ .../yalantis/ucrop/sample/ResultActivity.java | 155 ++++ .../yalantis/ucrop/sample/SampleActivity.java | 254 +++++++ .../res/drawable/bg_rounded_rectangle.xml | 13 + sample/src/main/res/drawable/ic_done.xml | 9 + .../main/res/drawable/ic_file_download.xml | 9 + .../src/main/res/layout/activity_result.xml | 24 + .../src/main/res/layout/activity_sample.xml | 212 ++++++ sample/src/main/res/menu/menu_result.xml | 10 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 1285 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 751 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 1762 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 3283 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 5384 bytes sample/src/main/res/values/colors.xml | 6 + sample/src/main/res/values/dimens.xml | 4 + sample/src/main/res/values/strings.xml | 40 + sample/src/main/res/values/themes.xml | 10 + settings.gradle | 1 + ucrop/.gitignore | 1 + ucrop/build.gradle | 30 + ucrop/gradle.properties | 3 + ucrop/proguard-rules.pro | 17 + ucrop/src/main/AndroidManifest.xml | 2 + .../main/java/com/yalantis/ucrop/UCrop.java | 277 +++++++ .../com/yalantis/ucrop/UCropActivity.java | 374 ++++++++++ .../yalantis/ucrop/util/BitmapLoadUtils.java | 126 ++++ .../com/yalantis/ucrop/util/CubicEasing.java | 17 + .../ucrop/util/FastBitmapDrawable.java | 103 +++ .../com/yalantis/ucrop/util/RectUtils.java | 72 ++ .../ucrop/util/RotationGestureDetector.java | 111 +++ .../yalantis/ucrop/view/CropImageView.java | 698 ++++++++++++++++++ .../ucrop/view/GestureCropImageView.java | 152 ++++ .../ucrop/view/TransformImageView.java | 321 ++++++++ .../view/widget/AspectRatioTextView.java | 112 +++ .../widget/HorizontalProgressWheelView.java | 141 ++++ .../color/ucrop_scale_text_view_selector.xml | 5 + .../main/res/drawable-hdpi/ucrop_ic_angle.png | Bin 0 -> 1080 bytes .../main/res/drawable-hdpi/ucrop_ic_crop.png | Bin 0 -> 414 bytes .../drawable-hdpi/ucrop_ic_crop_active.png | Bin 0 -> 638 bytes .../main/res/drawable-hdpi/ucrop_ic_cross.png | Bin 0 -> 433 bytes .../main/res/drawable-hdpi/ucrop_ic_next.png | Bin 0 -> 461 bytes .../main/res/drawable-hdpi/ucrop_ic_reset.png | Bin 0 -> 980 bytes .../res/drawable-hdpi/ucrop_ic_rotate.png | Bin 0 -> 770 bytes .../drawable-hdpi/ucrop_ic_rotate_active.png | Bin 0 -> 1205 bytes .../main/res/drawable-hdpi/ucrop_ic_scale.png | Bin 0 -> 265 bytes .../drawable-hdpi/ucrop_ic_scale_active.png | Bin 0 -> 262 bytes .../main/res/drawable-ldpi/ucrop_ic_angle.png | Bin 0 -> 466 bytes .../main/res/drawable-ldpi/ucrop_ic_crop.png | Bin 0 -> 305 bytes .../drawable-ldpi/ucrop_ic_crop_active.png | Bin 0 -> 367 bytes .../main/res/drawable-ldpi/ucrop_ic_cross.png | Bin 0 -> 235 bytes .../main/res/drawable-ldpi/ucrop_ic_next.png | Bin 0 -> 244 bytes .../main/res/drawable-ldpi/ucrop_ic_reset.png | Bin 0 -> 455 bytes .../res/drawable-ldpi/ucrop_ic_rotate.png | Bin 0 -> 380 bytes .../drawable-ldpi/ucrop_ic_rotate_active.png | Bin 0 -> 593 bytes .../main/res/drawable-ldpi/ucrop_ic_scale.png | Bin 0 -> 256 bytes .../drawable-ldpi/ucrop_ic_scale_active.png | Bin 0 -> 328 bytes .../main/res/drawable-mdpi/ucrop_ic_angle.png | Bin 0 -> 657 bytes .../main/res/drawable-mdpi/ucrop_ic_crop.png | Bin 0 -> 325 bytes .../drawable-mdpi/ucrop_ic_crop_active.png | Bin 0 -> 512 bytes .../main/res/drawable-mdpi/ucrop_ic_cross.png | Bin 0 -> 301 bytes .../main/res/drawable-mdpi/ucrop_ic_next.png | Bin 0 -> 303 bytes .../main/res/drawable-mdpi/ucrop_ic_reset.png | Bin 0 -> 556 bytes .../res/drawable-mdpi/ucrop_ic_rotate.png | Bin 0 -> 506 bytes .../drawable-mdpi/ucrop_ic_rotate_active.png | Bin 0 -> 779 bytes .../main/res/drawable-mdpi/ucrop_ic_scale.png | Bin 0 -> 197 bytes .../drawable-mdpi/ucrop_ic_scale_active.png | Bin 0 -> 200 bytes .../res/drawable-xhdpi/ucrop_ic_angle.png | Bin 0 -> 1432 bytes .../main/res/drawable-xhdpi/ucrop_ic_crop.png | Bin 0 -> 601 bytes .../drawable-xhdpi/ucrop_ic_crop_active.png | Bin 0 -> 914 bytes .../res/drawable-xhdpi/ucrop_ic_cross.png | Bin 0 -> 555 bytes .../main/res/drawable-xhdpi/ucrop_ic_next.png | Bin 0 -> 555 bytes .../res/drawable-xhdpi/ucrop_ic_reset.png | Bin 0 -> 1295 bytes .../res/drawable-xhdpi/ucrop_ic_rotate.png | Bin 0 -> 1011 bytes .../drawable-xhdpi/ucrop_ic_rotate_active.png | Bin 0 -> 1598 bytes .../res/drawable-xhdpi/ucrop_ic_scale.png | Bin 0 -> 267 bytes .../drawable-xhdpi/ucrop_ic_scale_active.png | Bin 0 -> 264 bytes .../res/drawable-xxhdpi/ucrop_ic_angle.png | Bin 0 -> 2243 bytes .../res/drawable-xxhdpi/ucrop_ic_crop.png | Bin 0 -> 827 bytes .../drawable-xxhdpi/ucrop_ic_crop_active.png | Bin 0 -> 1237 bytes .../res/drawable-xxhdpi/ucrop_ic_cross.png | Bin 0 -> 811 bytes .../res/drawable-xxhdpi/ucrop_ic_next.png | Bin 0 -> 840 bytes .../res/drawable-xxhdpi/ucrop_ic_reset.png | Bin 0 -> 2095 bytes .../res/drawable-xxhdpi/ucrop_ic_rotate.png | Bin 0 -> 1544 bytes .../ucrop_ic_rotate_active.png | Bin 0 -> 2406 bytes .../res/drawable-xxhdpi/ucrop_ic_scale.png | Bin 0 -> 352 bytes .../drawable-xxhdpi/ucrop_ic_scale_active.png | Bin 0 -> 350 bytes .../res/drawable-xxxhdpi/ucrop_ic_angle.png | Bin 0 -> 3179 bytes .../res/drawable-xxxhdpi/ucrop_ic_crop.png | Bin 0 -> 1175 bytes .../drawable-xxxhdpi/ucrop_ic_crop_active.png | Bin 0 -> 1706 bytes .../res/drawable-xxxhdpi/ucrop_ic_cross.png | Bin 0 -> 1042 bytes .../res/drawable-xxxhdpi/ucrop_ic_next.png | Bin 0 -> 1065 bytes .../res/drawable-xxxhdpi/ucrop_ic_reset.png | Bin 0 -> 3029 bytes .../res/drawable-xxxhdpi/ucrop_ic_rotate.png | Bin 0 -> 2110 bytes .../ucrop_ic_rotate_active.png | Bin 0 -> 3215 bytes .../res/drawable-xxxhdpi/ucrop_ic_scale.png | Bin 0 -> 443 bytes .../ucrop_ic_scale_active.png | Bin 0 -> 458 bytes .../ucrop_ic_selector_aspect_ratio.xml | 5 + .../res/drawable/ucrop_ic_selector_rotate.xml | 5 + .../res/drawable/ucrop_ic_selector_scale.xml | 5 + .../main/res/drawable/ucrop_shadow_upside.xml | 7 + .../res/layout/ucrop_activity_photobox.xml | 103 +++ .../res/layout/ucrop_layout_aspect_ratio.xml | 70 ++ .../res/layout/ucrop_layout_rotate_wheel.xml | 55 ++ .../res/layout/ucrop_layout_scale_wheel.xml | 26 + .../src/main/res/menu/ucrop_menu_activity.xml | 11 + ucrop/src/main/res/values/attrs.xml | 33 + ucrop/src/main/res/values/colors.xml | 17 + ucrop/src/main/res/values/dimens.xml | 12 + ucrop/src/main/res/values/public.xml | 5 + ucrop/src/main/res/values/strings.xml | 10 + ucrop/src/main/res/values/styles.xml | 35 + 126 files changed, 4404 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 build.gradle create mode 100644 captures/com.yalantis.ucrop.sample_2016.01.15_14.06.alloc create mode 100644 gradle.properties create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100755 gradlew create mode 100644 gradlew.bat create mode 100644 mavenpush.gradle create mode 100644 sample/.gitignore create mode 100644 sample/build.gradle create mode 100644 sample/proguard-rules.pro create mode 100644 sample/src/main/AndroidManifest.xml create mode 100644 sample/src/main/java/com/yalantis/ucrop/sample/BaseActivity.java create mode 100644 sample/src/main/java/com/yalantis/ucrop/sample/ResultActivity.java create mode 100644 sample/src/main/java/com/yalantis/ucrop/sample/SampleActivity.java create mode 100644 sample/src/main/res/drawable/bg_rounded_rectangle.xml create mode 100644 sample/src/main/res/drawable/ic_done.xml create mode 100644 sample/src/main/res/drawable/ic_file_download.xml create mode 100644 sample/src/main/res/layout/activity_result.xml create mode 100644 sample/src/main/res/layout/activity_sample.xml create mode 100644 sample/src/main/res/menu/menu_result.xml create mode 100644 sample/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 sample/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 sample/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 sample/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 sample/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 sample/src/main/res/values/colors.xml create mode 100644 sample/src/main/res/values/dimens.xml create mode 100644 sample/src/main/res/values/strings.xml create mode 100644 sample/src/main/res/values/themes.xml create mode 100644 settings.gradle create mode 100644 ucrop/.gitignore create mode 100644 ucrop/build.gradle create mode 100644 ucrop/gradle.properties create mode 100644 ucrop/proguard-rules.pro create mode 100644 ucrop/src/main/AndroidManifest.xml create mode 100644 ucrop/src/main/java/com/yalantis/ucrop/UCrop.java create mode 100644 ucrop/src/main/java/com/yalantis/ucrop/UCropActivity.java create mode 100644 ucrop/src/main/java/com/yalantis/ucrop/util/BitmapLoadUtils.java create mode 100644 ucrop/src/main/java/com/yalantis/ucrop/util/CubicEasing.java create mode 100644 ucrop/src/main/java/com/yalantis/ucrop/util/FastBitmapDrawable.java create mode 100644 ucrop/src/main/java/com/yalantis/ucrop/util/RectUtils.java create mode 100644 ucrop/src/main/java/com/yalantis/ucrop/util/RotationGestureDetector.java create mode 100644 ucrop/src/main/java/com/yalantis/ucrop/view/CropImageView.java create mode 100644 ucrop/src/main/java/com/yalantis/ucrop/view/GestureCropImageView.java create mode 100644 ucrop/src/main/java/com/yalantis/ucrop/view/TransformImageView.java create mode 100644 ucrop/src/main/java/com/yalantis/ucrop/view/widget/AspectRatioTextView.java create mode 100644 ucrop/src/main/java/com/yalantis/ucrop/view/widget/HorizontalProgressWheelView.java create mode 100644 ucrop/src/main/res/color/ucrop_scale_text_view_selector.xml create mode 100644 ucrop/src/main/res/drawable-hdpi/ucrop_ic_angle.png create mode 100644 ucrop/src/main/res/drawable-hdpi/ucrop_ic_crop.png create mode 100644 ucrop/src/main/res/drawable-hdpi/ucrop_ic_crop_active.png create mode 100644 ucrop/src/main/res/drawable-hdpi/ucrop_ic_cross.png create mode 100644 ucrop/src/main/res/drawable-hdpi/ucrop_ic_next.png create mode 100644 ucrop/src/main/res/drawable-hdpi/ucrop_ic_reset.png create mode 100644 ucrop/src/main/res/drawable-hdpi/ucrop_ic_rotate.png create mode 100644 ucrop/src/main/res/drawable-hdpi/ucrop_ic_rotate_active.png create mode 100644 ucrop/src/main/res/drawable-hdpi/ucrop_ic_scale.png create mode 100644 ucrop/src/main/res/drawable-hdpi/ucrop_ic_scale_active.png create mode 100644 ucrop/src/main/res/drawable-ldpi/ucrop_ic_angle.png create mode 100644 ucrop/src/main/res/drawable-ldpi/ucrop_ic_crop.png create mode 100644 ucrop/src/main/res/drawable-ldpi/ucrop_ic_crop_active.png create mode 100644 ucrop/src/main/res/drawable-ldpi/ucrop_ic_cross.png create mode 100644 ucrop/src/main/res/drawable-ldpi/ucrop_ic_next.png create mode 100644 ucrop/src/main/res/drawable-ldpi/ucrop_ic_reset.png create mode 100644 ucrop/src/main/res/drawable-ldpi/ucrop_ic_rotate.png create mode 100644 ucrop/src/main/res/drawable-ldpi/ucrop_ic_rotate_active.png create mode 100644 ucrop/src/main/res/drawable-ldpi/ucrop_ic_scale.png create mode 100644 ucrop/src/main/res/drawable-ldpi/ucrop_ic_scale_active.png create mode 100644 ucrop/src/main/res/drawable-mdpi/ucrop_ic_angle.png create mode 100644 ucrop/src/main/res/drawable-mdpi/ucrop_ic_crop.png create mode 100644 ucrop/src/main/res/drawable-mdpi/ucrop_ic_crop_active.png create mode 100644 ucrop/src/main/res/drawable-mdpi/ucrop_ic_cross.png create mode 100644 ucrop/src/main/res/drawable-mdpi/ucrop_ic_next.png create mode 100644 ucrop/src/main/res/drawable-mdpi/ucrop_ic_reset.png create mode 100644 ucrop/src/main/res/drawable-mdpi/ucrop_ic_rotate.png create mode 100644 ucrop/src/main/res/drawable-mdpi/ucrop_ic_rotate_active.png create mode 100644 ucrop/src/main/res/drawable-mdpi/ucrop_ic_scale.png create mode 100644 ucrop/src/main/res/drawable-mdpi/ucrop_ic_scale_active.png create mode 100644 ucrop/src/main/res/drawable-xhdpi/ucrop_ic_angle.png create mode 100644 ucrop/src/main/res/drawable-xhdpi/ucrop_ic_crop.png create mode 100644 ucrop/src/main/res/drawable-xhdpi/ucrop_ic_crop_active.png create mode 100644 ucrop/src/main/res/drawable-xhdpi/ucrop_ic_cross.png create mode 100644 ucrop/src/main/res/drawable-xhdpi/ucrop_ic_next.png create mode 100644 ucrop/src/main/res/drawable-xhdpi/ucrop_ic_reset.png create mode 100644 ucrop/src/main/res/drawable-xhdpi/ucrop_ic_rotate.png create mode 100644 ucrop/src/main/res/drawable-xhdpi/ucrop_ic_rotate_active.png create mode 100644 ucrop/src/main/res/drawable-xhdpi/ucrop_ic_scale.png create mode 100644 ucrop/src/main/res/drawable-xhdpi/ucrop_ic_scale_active.png create mode 100644 ucrop/src/main/res/drawable-xxhdpi/ucrop_ic_angle.png create mode 100644 ucrop/src/main/res/drawable-xxhdpi/ucrop_ic_crop.png create mode 100644 ucrop/src/main/res/drawable-xxhdpi/ucrop_ic_crop_active.png create mode 100644 ucrop/src/main/res/drawable-xxhdpi/ucrop_ic_cross.png create mode 100644 ucrop/src/main/res/drawable-xxhdpi/ucrop_ic_next.png create mode 100644 ucrop/src/main/res/drawable-xxhdpi/ucrop_ic_reset.png create mode 100644 ucrop/src/main/res/drawable-xxhdpi/ucrop_ic_rotate.png create mode 100644 ucrop/src/main/res/drawable-xxhdpi/ucrop_ic_rotate_active.png create mode 100644 ucrop/src/main/res/drawable-xxhdpi/ucrop_ic_scale.png create mode 100644 ucrop/src/main/res/drawable-xxhdpi/ucrop_ic_scale_active.png create mode 100644 ucrop/src/main/res/drawable-xxxhdpi/ucrop_ic_angle.png create mode 100644 ucrop/src/main/res/drawable-xxxhdpi/ucrop_ic_crop.png create mode 100644 ucrop/src/main/res/drawable-xxxhdpi/ucrop_ic_crop_active.png create mode 100644 ucrop/src/main/res/drawable-xxxhdpi/ucrop_ic_cross.png create mode 100644 ucrop/src/main/res/drawable-xxxhdpi/ucrop_ic_next.png create mode 100644 ucrop/src/main/res/drawable-xxxhdpi/ucrop_ic_reset.png create mode 100644 ucrop/src/main/res/drawable-xxxhdpi/ucrop_ic_rotate.png create mode 100644 ucrop/src/main/res/drawable-xxxhdpi/ucrop_ic_rotate_active.png create mode 100644 ucrop/src/main/res/drawable-xxxhdpi/ucrop_ic_scale.png create mode 100644 ucrop/src/main/res/drawable-xxxhdpi/ucrop_ic_scale_active.png create mode 100644 ucrop/src/main/res/drawable/ucrop_ic_selector_aspect_ratio.xml create mode 100644 ucrop/src/main/res/drawable/ucrop_ic_selector_rotate.xml create mode 100644 ucrop/src/main/res/drawable/ucrop_ic_selector_scale.xml create mode 100644 ucrop/src/main/res/drawable/ucrop_shadow_upside.xml create mode 100644 ucrop/src/main/res/layout/ucrop_activity_photobox.xml create mode 100644 ucrop/src/main/res/layout/ucrop_layout_aspect_ratio.xml create mode 100644 ucrop/src/main/res/layout/ucrop_layout_rotate_wheel.xml create mode 100644 ucrop/src/main/res/layout/ucrop_layout_scale_wheel.xml create mode 100644 ucrop/src/main/res/menu/ucrop_menu_activity.xml create mode 100644 ucrop/src/main/res/values/attrs.xml create mode 100644 ucrop/src/main/res/values/colors.xml create mode 100644 ucrop/src/main/res/values/dimens.xml create mode 100644 ucrop/src/main/res/values/public.xml create mode 100644 ucrop/src/main/res/values/strings.xml create mode 100644 ucrop/src/main/res/values/styles.xml diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..82ca65e6 --- /dev/null +++ b/.gitignore @@ -0,0 +1,47 @@ +# svn +*.svn* + +# built application files +*.apk +*.ap_ + +# files for the dex VM +*.dex + +# Java class files +*.class + +# generated GUI files +*/R.java + +# generated folder +bin +gen + +# local +local.properties + +proguard_logs/ + +# log files +log*.txt + +# archives +*.gz +*.tar +*.zip + +# eclipse +*.metadata +*.settings +*.prefs + +#idea +*.idea +*.iml +out/ + +build/ +.gradle/ + +.DS_Store \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 00000000..48a72dd1 --- /dev/null +++ b/README.md @@ -0,0 +1,79 @@ +# uCrop - Image Cropping Library for Android + +#### This project aims to provide an ultimate and flexible image cropping experience. Made in [Yalantis] (https://yalantis.com/?utm_source=github) + +# Usage + +*For a working implementation, please have a look at the Sample Project - sample* + +1. Include the library as local library project. + + ``` compile 'com.yalantis:ucrop:[latest version]' ``` + + +2. The uCrop configuration is created using the builder pattern. + + ```java + UCrop.of(sourceUri, destinationUri) + .withAspectRatio(16, 9) + .withMaxResultSize(maxWidth, maxHeight) + .start(context); + ``` + + +3. Override `onActivityResult` method and handle uCrop result. + + ```java + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + if (resultCode == RESULT_OK && requestCode == UCrop.REQUEST_CROP) { + final Uri resultUri = UCrop.getOutput(data); + } else if (resultCode == UCrop.RESULT_ERROR) { + final Throwable cropError = UCrop.getError(data); + } + } + ``` + + +# Customization + +uCrop builder class has method `withOptions(UCrop.Options option)` which extends library configurations. + +Currently you can change: + + * image compression format (e.g. PNG, JPEG, WEBP), compression + * image compression quality [0 - 100]. PNG which is lossless, will ignore the quality setting. + * whether all gestures are enabled simultaneously + * maximum size for Bitmap that is decoded from source Uri and used within crop view. If you want to override default behaviour. + * more coming... (e.g. color pallet) + +# Compatibility + + * Library - Android GINGERBREAD 2.3+ + * Sample - Android ICS 4.0+ + +# Changelog + +### Version: 1.0 + + * Initial Build + +### Let us know! + +We’d be really happy if you sent us links to your projects where you use our component. Just send an email to github@yalantis.com And do let us know if you have any questions or suggestion regarding the library. + +## License + + Copyright 2016, Yalantis + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. \ No newline at end of file diff --git a/build.gradle b/build.gradle new file mode 100644 index 00000000..eba60cc0 --- /dev/null +++ b/build.gradle @@ -0,0 +1,27 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. + +buildscript { + repositories { + jcenter() + } + dependencies { + classpath 'com.android.tools.build:gradle:2.0.0-alpha5' + + // NOTE: Do not place your application dependencies here; they belong + // in the individual module build.gradle files + } +} + +def isReleaseBuild() { + return version.contains("SNAPSHOT") == false +} + +allprojects { + repositories { + jcenter() + } +} + +task clean(type: Delete) { + delete rootProject.buildDir +} diff --git a/captures/com.yalantis.ucrop.sample_2016.01.15_14.06.alloc b/captures/com.yalantis.ucrop.sample_2016.01.15_14.06.alloc new file mode 100644 index 0000000000000000000000000000000000000000..780825b8a6855c85752b3038692fd0787d0866f5 GIT binary patch literal 1412191 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 E7a8|m!T1o_ul)D>ebz~ zs=Mmxr&>W81QY-S1PKWQ%N-;H^tS;2*XwVA`dej1RRn1z<;3VgfE4~kaG`A%QSPsR z#ovnZe+tS9%1MfeDyz`RirvdjPRK~p(#^q2(^5@O&NM19EHdvN-A&StN>0g6QA^VN z0Gx%Gq#PD$QMRFzmK+utjS^Y1F0e8&u&^=w5K<;4Rz|i3A=o|IKLY+g`iK6vfr9?+ z-`>gmU&i?FGSL5&F?TXFu`&Js6h;15QFkXp2M1H9|Eq~bpov-GU(uz%mH0n55wUl- zv#~ccAz`F5wlQ>e_KlJS3@{)B?^v*EQM=IxLa&76^y51a((wq|2-`qON>+4dLc{Oo z51}}o^Zen(oAjxDK7b++9_Yg`67p$bPo3~BCpGM7uAWmvIhWc5Gi+gQZ|Pwa-Gll@<1xmcPy z|NZmu6m)g5Ftu~BG&Xdxclw7Cij{xbBMBn-LMII#Slp`AElb&2^Hw+w>(3crLH!;I zN+Vk$D+wP1#^!MDCiad@vM>H#6+`Ct#~6VHL4lzmy;lSdk>`z6)=>Wh15Q2)dQtGqvn0vJU@+(B5{MUc*qs4!T+V=q=wy)<6$~ z!G>e_4dN@lGeF_$q9`Ju6Ncb*x?O7=l{anm7Eahuj_6lA{*#Gv*TaJclevPVbbVYu z(NY?5q+xxbO6%g1xF0r@Ix8fJ~u)VRUp`S%&rN$&e!Od`~s+64J z5*)*WSi*i{k%JjMSIN#X;jC{HG$-^iX+5f5BGOIHWAl*%15Z#!xntpk($-EGKCzKa zT7{siZ9;4TICsWQ$pu&wKZQTCvpI$Xvzwxoi+XkkpeE&&kFb!B?h2hi%^YlXt|-@5 zHJ~%AN!g_^tmn1?HSm^|gCE#!GRtK2(L{9pL#hp0xh zME}|DB>(5)`iE7CM)&_+S}-Bslc#@B5W4_+k4Cp$l>iVyg$KP>CN?SVGZ(&02>iZK zB<^HP$g$Lq*L$BWd?2(F?-MUbNWTJVQdW7$#8a|k_30#vHAD1Z{c#p;bETk0VnU5A zBgLe2HFJ3032$G<`m*OB!KM$*sdM20jm)It5OSru@tXpK5LT>#8)N!*skNu1$TpIw zufjjdp#lyH5bZ%|Iuo|iu9vG1HrIVWLH>278xo>aVBkPN3V$~!=KnlXQ4eDqS7%E% zQ!z^$Q$b^6Q)g#cLpwur(|<0gWHo6A6jc;n`t(V9T;LzTAU{IAu*uEQ%Ort1k+Kn+f_N`9|bxYC+~Z1 zCC1UCWv*Orx$_@ydv9mIe(liLfOr7mhbV@tKw{6)q^1DH1nmvZ0cj215R<~&I<4S| zgnr;9Cdjqpz#o8i0CQjtl`}{c*P)aSdH|abxGdrR)-3z+02-eX(k*B)Uqv6~^nh** z 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 \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >&- +APP_HOME="`pwd -P`" +cd "$SAVED" >&- + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules +function splitJvmOpts() { + JVM_OPTS=("$@") +} +eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS +JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" + +exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 00000000..8a0b282a --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,90 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windowz variants + +if not "%OS%" == "Windows_NT" goto win9xME_args +if "%@eval[2+2]" == "4" goto 4NT_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* +goto execute + +:4NT_args +@rem Get arguments from the 4NT Shell from JP Software +set CMD_LINE_ARGS=%$ + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/mavenpush.gradle b/mavenpush.gradle new file mode 100644 index 00000000..b741e61b --- /dev/null +++ b/mavenpush.gradle @@ -0,0 +1,92 @@ +apply plugin: 'maven' +apply plugin: 'signing' + +def sonatypeRepositoryUrl +if (isReleaseBuild()) { + println 'RELEASE BUILD' + sonatypeRepositoryUrl = hasProperty('RELEASE_REPOSITORY_URL') ? RELEASE_REPOSITORY_URL + : "https://oss.sonatype.org/service/local/staging/deploy/maven2/" +} else { + println 'DEBUG BUILD' + sonatypeRepositoryUrl = hasProperty('SNAPSHOT_REPOSITORY_URL') ? SNAPSHOT_REPOSITORY_URL + : "https://oss.sonatype.org/content/repositories/snapshots/" +} + +def getRepositoryUsername() { + return hasProperty('nexusUsername') ? nexusUsername : "" +} + +def getRepositoryPassword() { + return hasProperty('nexusPassword') ? nexusPassword : "" +} + +afterEvaluate { project -> + uploadArchives { + repositories { + mavenDeployer { + beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) } + + pom.artifactId = POM_ARTIFACT_ID + + repository(url: sonatypeRepositoryUrl) { + authentication(userName: getRepositoryUsername(), password: getRepositoryPassword()) + } + + pom.project { + name POM_NAME + packaging POM_PACKAGING + description POM_DESCRIPTION + url POM_URL + + scm { + url POM_SCM_URL + connection POM_SCM_CONNECTION + developerConnection POM_SCM_DEV_CONNECTION + } + + licenses { + license { + name POM_LICENCE_NAME + url POM_LICENCE_URL + distribution POM_LICENCE_DIST + } + } + + developers { + developer { + id POM_DEVELOPER_ID + name POM_DEVELOPER_NAME + } + } + } + } + } + } + + signing { + required { isReleaseBuild() && gradle.taskGraph.hasTask("uploadArchives") } + sign configurations.archives + } + + task androidJavadocs(type: Javadoc) { + source = android.sourceSets.main.java.sourceFiles + } + + task androidJavadocsJar(type: Jar) { + classifier = 'javadoc' + //basename = artifact_id + from androidJavadocs.destinationDir + } + + task androidSourcesJar(type: Jar) { + classifier = 'sources' + //basename = artifact_id + from android.sourceSets.main.java.sourceFiles + } + + artifacts { + //archives packageReleaseJar + archives androidSourcesJar + archives androidJavadocsJar + } +} \ No newline at end of file diff --git a/sample/.gitignore b/sample/.gitignore new file mode 100644 index 00000000..796b96d1 --- /dev/null +++ b/sample/.gitignore @@ -0,0 +1 @@ +/build diff --git a/sample/build.gradle b/sample/build.gradle new file mode 100644 index 00000000..3651e3e7 --- /dev/null +++ b/sample/build.gradle @@ -0,0 +1,30 @@ +apply plugin: 'com.android.application' + +android { + compileSdkVersion 23 + buildToolsVersion "23.0.2" + + defaultConfig { + applicationId "com.yalantis.ucrop.sample" + minSdkVersion 15 + targetSdkVersion 23 + versionCode 1 + versionName "1.0" + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_7 + targetCompatibility JavaVersion.VERSION_1_7 + } +} + +dependencies { + compile 'com.android.support:appcompat-v7:23.1.1' + + compile project (':ucrop') +} \ No newline at end of file diff --git a/sample/proguard-rules.pro b/sample/proguard-rules.pro new file mode 100644 index 00000000..0cd55489 --- /dev/null +++ b/sample/proguard-rules.pro @@ -0,0 +1,17 @@ +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in /Users/oleksii/Library/Android/sdk/tools/proguard/proguard-android.txt +# You can edit the include path and order by changing the proguardFiles +# directive in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# Add any project specific keep options here: + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} diff --git a/sample/src/main/AndroidManifest.xml b/sample/src/main/AndroidManifest.xml new file mode 100644 index 00000000..3006bb5a --- /dev/null +++ b/sample/src/main/AndroidManifest.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sample/src/main/java/com/yalantis/ucrop/sample/BaseActivity.java b/sample/src/main/java/com/yalantis/ucrop/sample/BaseActivity.java new file mode 100644 index 00000000..e754819e --- /dev/null +++ b/sample/src/main/java/com/yalantis/ucrop/sample/BaseActivity.java @@ -0,0 +1,76 @@ +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; + +/** + * Created by Oleksii Shliama (https://github.com/shliama). + */ +public class BaseActivity extends AppCompatActivity { + + protected static final int REQUEST_STORAGE_READ_ACCESS_PERMISSION = 101; + protected static final int REQUEST_STORAGE_WRITE_ACCESS_PERMISSION = 102; + + private AlertDialog mAlertDialog; + + /** + * Hide alert dialog if any. + */ + @Override + protected void onStop() { + super.onStop(); + if (mAlertDialog != null && mAlertDialog.isShowing()) { + mAlertDialog.dismiss(); + } + } + + + /** + * Requests given permission. + * If the permission has been denied previously, a Dialog will prompt the user to grant the + * permission, otherwise it is requested directly. + */ + protected void requestPermission(final String permission, String rationale, final int requestCode) { + if (ActivityCompat.shouldShowRequestPermissionRationale(this, permission)) { + showAlertDialog(getString(R.string.permission_title_rationale), rationale, + new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + ActivityCompat.requestPermissions(BaseActivity.this, + new String[]{permission}, requestCode); + } + }, getString(R.string.label_ok), null, getString(R.string.label_cancel)); + } else { + ActivityCompat.requestPermissions(this, new String[]{permission}, requestCode); + } + } + + /** + * This method shows dialog with given title & message. + * Also there is an option to pass onClickListener for positive & negative button. + * + * @param title - dialog title + * @param message - dialog message + * @param onPositiveButtonClickListener - listener for positive button + * @param positiveText - positive button text + * @param onNegativeButtonClickListener - listener for negative button + * @param negativeText - negative button text + */ + protected void showAlertDialog(@Nullable String title, @Nullable String message, + @Nullable DialogInterface.OnClickListener onPositiveButtonClickListener, + @NonNull String positiveText, + @Nullable DialogInterface.OnClickListener onNegativeButtonClickListener, + @NonNull String negativeText) { + AlertDialog.Builder builder = new AlertDialog.Builder(this); + builder.setTitle(title); + builder.setMessage(message); + builder.setPositiveButton(positiveText, onPositiveButtonClickListener); + builder.setNegativeButton(negativeText, onNegativeButtonClickListener); + mAlertDialog = builder.show(); + } + +} diff --git a/sample/src/main/java/com/yalantis/ucrop/sample/ResultActivity.java b/sample/src/main/java/com/yalantis/ucrop/sample/ResultActivity.java new file mode 100644 index 00000000..f93c4bd3 --- /dev/null +++ b/sample/src/main/java/com/yalantis/ucrop/sample/ResultActivity.java @@ -0,0 +1,155 @@ +package com.yalantis.ucrop.sample; + +import android.Manifest; +import android.app.NotificationManager; +import android.app.PendingIntent; +import android.content.Context; +import android.content.Intent; +import android.content.pm.PackageManager; +import android.graphics.BitmapFactory; +import android.net.Uri; +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.v7.app.ActionBar; +import android.support.v7.widget.Toolbar; +import android.util.Log; +import android.view.Menu; +import android.view.MenuItem; +import android.widget.ImageView; +import android.widget.Toast; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.nio.channels.FileChannel; +import java.util.Calendar; + +/** + * Created by Oleksii Shliama (https://github.com/shliama). + */ +public class ResultActivity extends BaseActivity { + + private static final String TAG = "ResultActivity"; + private static final int DOWNLOAD_NOTIFICATION_ID_DONE = 911; + + public static void startWithUri(@NonNull Context context, @NonNull Uri uri) { + Intent intent = new Intent(context, ResultActivity.class); + intent.setData(uri); + context.startActivity(intent); + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_result); + + ((ImageView) findViewById(R.id.image_view_preview)).setImageURI(getIntent().getData()); + + final BitmapFactory.Options options = new BitmapFactory.Options(); + options.inJustDecodeBounds = true; + BitmapFactory.decodeFile(new File(getIntent().getData().getPath()).getAbsolutePath(), options); + + setSupportActionBar((Toolbar) findViewById(R.id.toolbar)); + final ActionBar actionBar = getSupportActionBar(); + if (actionBar != null) { + actionBar.setDisplayHomeAsUpEnabled(true); + actionBar.setTitle(getString(R.string.format_crop_result_d_d, options.outWidth, options.outHeight)); + } + } + + @Override + public boolean onCreateOptionsMenu(final Menu menu) { + getMenuInflater().inflate(R.menu.menu_result, menu); + return true; + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case android.R.id.home: + onBackPressed(); + return true; + case R.id.menu_download: + saveCroppedImage(); + break; + } + return super.onOptionsItemSelected(item); + } + + + /** + * Callback received when a permissions request has been completed. + */ + @Override + public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { + switch (requestCode) { + case REQUEST_STORAGE_WRITE_ACCESS_PERMISSION: + if (grantResults[0] == PackageManager.PERMISSION_GRANTED) { + saveCroppedImage(); + } + break; + default: + super.onRequestPermissionsResult(requestCode, permissions, grantResults); + } + } + + private void saveCroppedImage() { + if (ActivityCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) + != PackageManager.PERMISSION_GRANTED) { + requestPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE, + getString(R.string.permission_write_storage_rationale), + REQUEST_STORAGE_WRITE_ACCESS_PERMISSION); + } else { + Uri imageUri = getIntent().getData(); + if (imageUri != null && imageUri.getScheme().equals("file")) { + try { + copyFileToDownloads(getIntent().getData()); + } catch (Exception e) { + Toast.makeText(ResultActivity.this, e.getMessage(), Toast.LENGTH_SHORT).show(); + Log.e(TAG, imageUri.toString(), e); + } + } else { + Toast.makeText(ResultActivity.this, getString(R.string.toast_unexpected_error), Toast.LENGTH_SHORT).show(); + } + } + } + + private void copyFileToDownloads(Uri croppedFileUri) throws Exception { + String downloadsDirectoryPath = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getAbsolutePath(); + String filename = String.format("%d_%s", Calendar.getInstance().getTimeInMillis(), croppedFileUri.getLastPathSegment()); + + File saveFile = new File(downloadsDirectoryPath, filename); + + FileInputStream inStream = new FileInputStream(new File(croppedFileUri.getPath())); + FileOutputStream outStream = new FileOutputStream(saveFile); + FileChannel inChannel = inStream.getChannel(); + FileChannel outChannel = outStream.getChannel(); + inChannel.transferTo(0, inChannel.size(), outChannel); + inStream.close(); + outStream.close(); + + showNotification(saveFile); + } + + private void showNotification(@NonNull File file) { + Intent intent = new Intent(Intent.ACTION_VIEW); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + intent.setDataAndType(Uri.fromFile(file), "image/*"); + + NotificationCompat.Builder mNotification = new NotificationCompat.Builder(this); + + mNotification + .setContentTitle(getString(R.string.app_name)) + .setContentText(getString(R.string.notification_image_saved_click_to_preview)) + .setTicker(getString(R.string.notification_image_saved)) + .setSmallIcon(R.drawable.ic_done) + .setOngoing(false) + .setContentIntent(PendingIntent.getActivity(this, 0, intent, 0)) + .setAutoCancel(true); + ((NotificationManager) getSystemService(NOTIFICATION_SERVICE)).notify(DOWNLOAD_NOTIFICATION_ID_DONE, mNotification.build()); + } + +} diff --git a/sample/src/main/java/com/yalantis/ucrop/sample/SampleActivity.java b/sample/src/main/java/com/yalantis/ucrop/sample/SampleActivity.java new file mode 100644 index 00000000..65f55ddc --- /dev/null +++ b/sample/src/main/java/com/yalantis/ucrop/sample/SampleActivity.java @@ -0,0 +1,254 @@ +package com.yalantis.ucrop.sample; + +import android.Manifest; +import android.content.Intent; +import android.content.pm.PackageManager; +import android.graphics.Bitmap; +import android.net.Uri; +import android.os.Build; +import android.os.Bundle; +import android.support.annotation.NonNull; +import android.support.v4.app.ActivityCompat; +import android.util.Log; +import android.view.View; +import android.widget.CheckBox; +import android.widget.EditText; +import android.widget.RadioGroup; +import android.widget.SeekBar; +import android.widget.TextView; +import android.widget.Toast; + +import com.yalantis.ucrop.UCrop; +import com.yalantis.ucrop.UCropActivity; + +import java.io.File; + +/** + * Created by Oleksii Shliama (https://github.com/shliama). + */ +public class SampleActivity extends BaseActivity { + + private static final String TAG = "SampleActivity"; + + private static final int REQUEST_SELECT_PICTURE = 0x01; + + private static final int SAMPLE_IMAGE_MAX_SIZE_WIDTH = 200; + private static final int SAMPLE_IMAGE_MAX_SIZE_HEIGHT = 300; + private static final String SAMPLE_CROPPED_IMAGE_NAME = "SampleCropImage.jpeg"; + + private RadioGroup mRadioGroupAspectRatio, mRadioGroupCompressionSettings; + private EditText mEditTextMaxWidth, mEditTextMaxHeight; + private CheckBox mCheckBoxMaxSize; + private SeekBar mSeekBarQuality; + private TextView mTextViewQuality; + + private Uri mDestinationUri; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_sample); + + mDestinationUri = Uri.fromFile(new File(getCacheDir(), SAMPLE_CROPPED_IMAGE_NAME)); + + setupUI(); + } + + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + if (resultCode == RESULT_OK) { + if (requestCode == REQUEST_SELECT_PICTURE) { + final Uri selectedUri = data.getData(); + if (selectedUri != null) { + startCropActivity(data.getData()); + } else { + Toast.makeText(SampleActivity.this, R.string.toast_cannot_retrieve_selected_image, Toast.LENGTH_SHORT).show(); + } + } else if (requestCode == UCrop.REQUEST_CROP) { + handleCropResult(data); + } + } + if (resultCode == UCrop.RESULT_ERROR) { + handleCropError(data); + } + } + + /** + * Callback received when a permissions request has been completed. + */ + @Override + public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { + switch (requestCode) { + case REQUEST_STORAGE_READ_ACCESS_PERMISSION: + if (grantResults[0] == PackageManager.PERMISSION_GRANTED) { + pickFromGallery(); + } + break; + default: + super.onRequestPermissionsResult(requestCode, permissions, grantResults); + } + } + + private void setupUI() { + findViewById(R.id.button_crop).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + pickFromGallery(); + } + }); + + mRadioGroupAspectRatio = ((RadioGroup) findViewById(R.id.radio_group_aspect_ratio)); + mRadioGroupCompressionSettings = ((RadioGroup) findViewById(R.id.radio_group_compression_settings)); + mCheckBoxMaxSize = ((CheckBox) findViewById(R.id.checkbox_max_size)); + mEditTextMaxWidth = ((EditText) findViewById(R.id.edit_text_max_width)); + mEditTextMaxHeight = ((EditText) findViewById(R.id.edit_text_max_height)); + mSeekBarQuality = ((SeekBar) findViewById(R.id.seekbar_quality)); + mTextViewQuality = ((TextView) findViewById(R.id.text_view_quality)); + + mRadioGroupAspectRatio.check(R.id.radio_dynamic); + mRadioGroupCompressionSettings.check(R.id.radio_jpeg); + mSeekBarQuality.setProgress(UCropActivity.DEFAULT_COMPRESS_QUALITY); + mTextViewQuality.setText(String.format(getString(R.string.format_quality_d), mSeekBarQuality.getProgress())); + mEditTextMaxWidth.setText(String.valueOf(SAMPLE_IMAGE_MAX_SIZE_WIDTH)); + mEditTextMaxHeight.setText(String.valueOf(SAMPLE_IMAGE_MAX_SIZE_HEIGHT)); + mSeekBarQuality.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { + @Override + public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { + mTextViewQuality.setText(String.format(getString(R.string.format_quality_d), progress)); + } + + @Override + public void onStartTrackingTouch(SeekBar seekBar) { + + } + + @Override + public void onStopTrackingTouch(SeekBar seekBar) { + + } + }); + } + + private void pickFromGallery() { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN // Permission was added in API Level 16 + && ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) + != PackageManager.PERMISSION_GRANTED) { + requestPermission(Manifest.permission.READ_EXTERNAL_STORAGE, + getString(R.string.permission_read_storage_rationale), + REQUEST_STORAGE_READ_ACCESS_PERMISSION); + } else { + Intent intent = new Intent(); + intent.setType("image/*"); + intent.setAction(Intent.ACTION_GET_CONTENT); + intent.addCategory(Intent.CATEGORY_OPENABLE); + startActivityForResult(Intent.createChooser(intent, getString(R.string.label_select_picture)), REQUEST_SELECT_PICTURE); + } + } + + private void startCropActivity(@NonNull Uri uri) { + UCrop uCrop = UCrop.of(uri, mDestinationUri); + + uCrop = basisConfig(uCrop); + uCrop = advancedConfig(uCrop); + + uCrop.start(SampleActivity.this); + } + + /** + * In most cases you need only to set crop aspect ration and max size for resulting image. + * + * @param uCrop - ucrop builder instance + * @return - ucrop builder instance + */ + private UCrop basisConfig(@NonNull UCrop uCrop) { + switch (mRadioGroupAspectRatio.getCheckedRadioButtonId()) { + case R.id.radio_origin: + uCrop = uCrop.useSourceImageAspectRatio(); + break; + case R.id.radio_square: + uCrop = uCrop.withAspectRatio(1, 1); + break; + case R.id.radio_16_9: + uCrop = uCrop.withAspectRatio(16, 9); + break; + case R.id.radio_dynamic: + default: + // do nothing + break; + } + + if (mCheckBoxMaxSize.isChecked()) { + try { + int maxWidth = Integer.valueOf(mEditTextMaxWidth.getText().toString().trim()); + int maxHeight = Integer.valueOf(mEditTextMaxHeight.getText().toString().trim()); + if (maxWidth > 0 && maxHeight > 0) { + uCrop = uCrop.withMaxResultSize(maxWidth, maxHeight); + } + } catch (NumberFormatException e) { + Log.e(TAG, "Number please", e); + } + } + + return uCrop; + } + + /** + * Sometimes you want to adjust more options, it's done via {@link com.yalantis.ucrop.UCrop.Options} class. + * + * @param uCrop - ucrop builder instance + * @return - ucrop builder instance + */ + private UCrop advancedConfig(@NonNull UCrop uCrop) { + UCrop.Options options = new UCrop.Options(); + + switch (mRadioGroupCompressionSettings.getCheckedRadioButtonId()) { + case R.id.radio_png: + options.setCompressionFormat(Bitmap.CompressFormat.PNG); + break; + case R.id.radio_webp: + options.setCompressionFormat(Bitmap.CompressFormat.WEBP); + break; + case R.id.radio_jpeg: + default: + options.setCompressionFormat(Bitmap.CompressFormat.JPEG); + break; + } + options.setCompressionQuality(mSeekBarQuality.getProgress()); + + /* + If you want to unlock all gestures for all UCropActivity tabs + + options.setGesturesAlwaysEnabled(true); + * */ + + /* + This sets max size for bitmap that will be decoded from source Uri. + More size - more memory allocation, default implementation uses screen diagonal. + + options.setMaxBitmapSize(640); + * */ + + return uCrop.withOptions(options); + } + + private void handleCropResult(@NonNull Intent result) { + final Uri resultUri = UCrop.getOutput(result); + if (resultUri != null) { + ResultActivity.startWithUri(SampleActivity.this, resultUri); + } else { + Toast.makeText(SampleActivity.this, R.string.toast_cannot_retrieve_cropped_image, Toast.LENGTH_SHORT).show(); + } + } + + @SuppressWarnings("ThrowableResultOfMethodCallIgnored") + private void handleCropError(@NonNull Intent result) { + final Throwable cropError = UCrop.getError(result); + if (cropError != null) { + Log.e(TAG, "handleCropError: ", cropError); + Toast.makeText(SampleActivity.this, cropError.getMessage(), Toast.LENGTH_LONG).show(); + } else { + Toast.makeText(SampleActivity.this, R.string.toast_unexpected_error, Toast.LENGTH_SHORT).show(); + } + } + +} diff --git a/sample/src/main/res/drawable/bg_rounded_rectangle.xml b/sample/src/main/res/drawable/bg_rounded_rectangle.xml new file mode 100644 index 00000000..abe9809b --- /dev/null +++ b/sample/src/main/res/drawable/bg_rounded_rectangle.xml @@ -0,0 +1,13 @@ + + + + + + diff --git a/sample/src/main/res/drawable/ic_done.xml b/sample/src/main/res/drawable/ic_done.xml new file mode 100644 index 00000000..7affe9ba --- /dev/null +++ b/sample/src/main/res/drawable/ic_done.xml @@ -0,0 +1,9 @@ + + + diff --git a/sample/src/main/res/drawable/ic_file_download.xml b/sample/src/main/res/drawable/ic_file_download.xml new file mode 100644 index 00000000..99aa581f --- /dev/null +++ b/sample/src/main/res/drawable/ic_file_download.xml @@ -0,0 +1,9 @@ + + + diff --git a/sample/src/main/res/layout/activity_result.xml b/sample/src/main/res/layout/activity_result.xml new file mode 100644 index 00000000..f645ef02 --- /dev/null +++ b/sample/src/main/res/layout/activity_result.xml @@ -0,0 +1,24 @@ + + + + + + + + \ No newline at end of file diff --git a/sample/src/main/res/layout/activity_sample.xml b/sample/src/main/res/layout/activity_sample.xml new file mode 100644 index 00000000..a57cb9a7 --- /dev/null +++ b/sample/src/main/res/layout/activity_sample.xml @@ -0,0 +1,212 @@ + + + + + + + + + +