├── .gitignore
├── README.md
├── app
├── .gitignore
├── build.gradle
├── libs
│ ├── arm64-v8a
│ │ └── libucrop.so
│ ├── armeabi-v7a
│ │ └── libucrop.so
│ ├── armeabi
│ │ └── libucrop.so
│ ├── library-release.aar
│ ├── x86
│ │ └── libucrop.so
│ └── x86_64
│ │ └── libucrop.so
├── proguard-rules.pro
└── src
│ ├── androidTest
│ └── java
│ │ └── com
│ │ └── jhworks
│ │ └── imageselect
│ │ └── ApplicationTest.java
│ ├── main
│ ├── AndroidManifest.xml
│ ├── java
│ │ └── com
│ │ │ ├── jhworks
│ │ │ └── imageselect
│ │ │ │ ├── App.kt
│ │ │ │ ├── MainActivity.kt
│ │ │ │ ├── TestImageCropActivity.kt
│ │ │ │ ├── crop
│ │ │ │ ├── CropConfig.kt
│ │ │ │ ├── ImageCrop.kt
│ │ │ │ ├── ImageCropActivity.kt
│ │ │ │ ├── ResultActivity.kt
│ │ │ │ ├── callback
│ │ │ │ │ ├── BitmapCropCallback.kt
│ │ │ │ │ ├── BitmapLoadCallback.kt
│ │ │ │ │ ├── CropBoundsChangeListener.kt
│ │ │ │ │ └── OverlayViewChangeListener.kt
│ │ │ │ ├── task
│ │ │ │ │ └── BitmapLoadTask.kt
│ │ │ │ └── vo
│ │ │ │ │ ├── AspectRatio.kt
│ │ │ │ │ ├── CropParameters.kt
│ │ │ │ │ ├── ExifInfo.kt
│ │ │ │ │ └── ImageState.kt
│ │ │ │ ├── engine
│ │ │ │ └── GlideEngine.kt
│ │ │ │ ├── okhttp
│ │ │ │ ├── ImageSelectorGlideModule.kt
│ │ │ │ ├── OkHttpStreamFetcher.java
│ │ │ │ ├── OkHttpUrlLoader.java
│ │ │ │ ├── ProgressInterceptor.kt
│ │ │ │ └── ProgressResponseBody.kt
│ │ │ │ ├── utils
│ │ │ │ ├── BitmapLoadUtils.kt
│ │ │ │ ├── CubicEasing.kt
│ │ │ │ ├── DataProvider.kt
│ │ │ │ ├── EglUtils.kt
│ │ │ │ ├── FastBitmapDrawable.kt
│ │ │ │ ├── FileUtils.kt
│ │ │ │ ├── GlideUtils.kt
│ │ │ │ ├── ImageHeaderParser.kt
│ │ │ │ ├── RectUtils.kt
│ │ │ │ └── RotationGestureDetector.kt
│ │ │ │ └── view
│ │ │ │ ├── AspectRatioTextView.kt
│ │ │ │ ├── CropImageView.kt
│ │ │ │ ├── CropView.kt
│ │ │ │ ├── GestureCropImageView.kt
│ │ │ │ ├── HorizontalProgressWheelView.kt
│ │ │ │ ├── OverlayView.kt
│ │ │ │ └── TransformImageView.kt
│ │ │ └── yalantis
│ │ │ └── ucrop
│ │ │ └── task
│ │ │ └── BitmapCropTask.kt
│ └── res
│ │ ├── drawable-xhdpi
│ │ ├── ic_sl_crop_angle.png
│ │ └── ic_sl_crop_done.png
│ │ ├── drawable-xxhdpi
│ │ ├── ic_sl_crop_angle.png
│ │ └── ic_sl_crop_done.png
│ │ ├── drawable-xxxhdpi
│ │ ├── ic_sl_crop_angle.png
│ │ └── ic_sl_crop_done.png
│ │ ├── drawable
│ │ ├── bg_rounded_rectangle.xml
│ │ └── ic_sl_reset.xml
│ │ ├── layout
│ │ ├── activity_sl_image_crop.xml
│ │ ├── activity_sl_result.xml
│ │ ├── activity_test_image_crop.xml
│ │ ├── main_activity.xml
│ │ ├── sl_crop_controls.xml
│ │ └── sl_crop_view.xml
│ │ ├── menu
│ │ ├── menu_main.xml
│ │ └── sl_crop_menu.xml
│ │ ├── mipmap-hdpi
│ │ └── ic_launcher.png
│ │ ├── mipmap-mdpi
│ │ └── ic_launcher.png
│ │ ├── mipmap-xhdpi
│ │ └── ic_launcher.png
│ │ ├── mipmap-xxhdpi
│ │ └── ic_launcher.png
│ │ ├── mipmap-xxxhdpi
│ │ └── ic_launcher.png
│ │ ├── values-v21
│ │ └── styles.xml
│ │ ├── values-w820dp
│ │ └── dimens.xml
│ │ ├── values-zh
│ │ └── strings.xml
│ │ └── values
│ │ ├── attrs.xml
│ │ ├── colors.xml
│ │ ├── colors_custom.xml
│ │ ├── dimens.xml
│ │ ├── ids.xml
│ │ ├── strings.xml
│ │ └── styles.xml
│ └── test
│ └── java
│ └── com
│ └── jhworks
│ └── imageselect
│ └── ExampleUnitTest.java
├── build.gradle
├── gradle.properties
├── gradle
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── images
├── image1.png
└── image2.png
├── library
├── .cxx
│ ├── abi_configuration_1x5l5c4p.json
│ ├── abi_configuration_1x5l5c4p.log
│ ├── abi_configuration_1x5l5c4p_key.json
│ ├── abi_configuration_1z1z1e4b.json
│ ├── abi_configuration_1z1z1e4b.log
│ ├── abi_configuration_1z1z1e4b_key.json
│ ├── abi_configuration_352h6120.json
│ ├── abi_configuration_352h6120.log
│ ├── abi_configuration_352h6120_key.json
│ ├── abi_configuration_46303451.json
│ ├── abi_configuration_46303451.log
│ ├── abi_configuration_46303451_key.json
│ ├── cmake
│ │ ├── debug
│ │ │ ├── arm64-v8a
│ │ │ │ ├── .ninja_deps
│ │ │ │ ├── .ninja_log
│ │ │ │ ├── CMakeCache.txt
│ │ │ │ ├── CMakeFiles
│ │ │ │ │ ├── 3.10.2
│ │ │ │ │ │ ├── CMakeCCompiler.cmake
│ │ │ │ │ │ ├── CMakeCXXCompiler.cmake
│ │ │ │ │ │ ├── CMakeDetermineCompilerABI_C.bin
│ │ │ │ │ │ ├── CMakeDetermineCompilerABI_CXX.bin
│ │ │ │ │ │ └── CMakeSystem.cmake
│ │ │ │ │ ├── CMakeOutput.log
│ │ │ │ │ ├── TargetDirectories.txt
│ │ │ │ │ ├── cmake.check_cache
│ │ │ │ │ ├── feature_tests.bin
│ │ │ │ │ ├── feature_tests.c
│ │ │ │ │ └── feature_tests.cxx
│ │ │ │ ├── android_gradle_build.json
│ │ │ │ ├── android_gradle_build_SlCrop_arm64-v8a.command.txt
│ │ │ │ ├── android_gradle_build_SlCrop_arm64-v8a.stderr.txt
│ │ │ │ ├── android_gradle_build_SlCrop_arm64-v8a.stdout.txt
│ │ │ │ ├── android_gradle_build_mini.json
│ │ │ │ ├── build.ninja
│ │ │ │ ├── build_command.txt
│ │ │ │ ├── build_model.json
│ │ │ │ ├── build_output.txt
│ │ │ │ ├── cmake_install.cmake
│ │ │ │ ├── cmake_server_log.txt
│ │ │ │ ├── compile_commands.json
│ │ │ │ ├── json_generation_record.json
│ │ │ │ ├── prefab_config.json
│ │ │ │ └── rules.ninja
│ │ │ ├── armeabi-v7a
│ │ │ │ ├── CMakeCache.txt
│ │ │ │ ├── CMakeFiles
│ │ │ │ │ ├── 3.10.2
│ │ │ │ │ │ ├── CMakeCCompiler.cmake
│ │ │ │ │ │ ├── CMakeCXXCompiler.cmake
│ │ │ │ │ │ ├── CMakeDetermineCompilerABI_C.bin
│ │ │ │ │ │ ├── CMakeDetermineCompilerABI_CXX.bin
│ │ │ │ │ │ └── CMakeSystem.cmake
│ │ │ │ │ ├── CMakeOutput.log
│ │ │ │ │ ├── TargetDirectories.txt
│ │ │ │ │ ├── cmake.check_cache
│ │ │ │ │ ├── feature_tests.bin
│ │ │ │ │ ├── feature_tests.c
│ │ │ │ │ └── feature_tests.cxx
│ │ │ │ ├── android_gradle_build.json
│ │ │ │ ├── android_gradle_build_mini.json
│ │ │ │ ├── build.ninja
│ │ │ │ ├── build_command.txt
│ │ │ │ ├── build_model.json
│ │ │ │ ├── build_output.txt
│ │ │ │ ├── cmake_install.cmake
│ │ │ │ ├── cmake_server_log.txt
│ │ │ │ ├── compile_commands.json
│ │ │ │ ├── json_generation_record.json
│ │ │ │ ├── prefab_config.json
│ │ │ │ └── rules.ninja
│ │ │ └── x86
│ │ │ │ ├── CMakeCache.txt
│ │ │ │ ├── CMakeFiles
│ │ │ │ ├── 3.10.2
│ │ │ │ │ ├── CMakeCCompiler.cmake
│ │ │ │ │ ├── CMakeCXXCompiler.cmake
│ │ │ │ │ ├── CMakeDetermineCompilerABI_C.bin
│ │ │ │ │ ├── CMakeDetermineCompilerABI_CXX.bin
│ │ │ │ │ └── CMakeSystem.cmake
│ │ │ │ ├── CMakeOutput.log
│ │ │ │ ├── TargetDirectories.txt
│ │ │ │ ├── cmake.check_cache
│ │ │ │ ├── feature_tests.bin
│ │ │ │ ├── feature_tests.c
│ │ │ │ └── feature_tests.cxx
│ │ │ │ ├── android_gradle_build.json
│ │ │ │ ├── android_gradle_build_mini.json
│ │ │ │ ├── build.ninja
│ │ │ │ ├── build_command.txt
│ │ │ │ ├── build_model.json
│ │ │ │ ├── build_output.txt
│ │ │ │ ├── cmake_install.cmake
│ │ │ │ ├── cmake_server_log.txt
│ │ │ │ ├── compile_commands.json
│ │ │ │ ├── json_generation_record.json
│ │ │ │ ├── prefab_config.json
│ │ │ │ └── rules.ninja
│ │ └── release
│ │ │ ├── arm64-v8a
│ │ │ ├── CMakeCache.txt
│ │ │ ├── CMakeFiles
│ │ │ │ ├── 3.10.2
│ │ │ │ │ ├── CMakeCCompiler.cmake
│ │ │ │ │ ├── CMakeCXXCompiler.cmake
│ │ │ │ │ ├── CMakeDetermineCompilerABI_C.bin
│ │ │ │ │ ├── CMakeDetermineCompilerABI_CXX.bin
│ │ │ │ │ └── CMakeSystem.cmake
│ │ │ │ ├── CMakeOutput.log
│ │ │ │ ├── TargetDirectories.txt
│ │ │ │ ├── cmake.check_cache
│ │ │ │ ├── feature_tests.bin
│ │ │ │ ├── feature_tests.c
│ │ │ │ └── feature_tests.cxx
│ │ │ ├── android_gradle_build.json
│ │ │ ├── android_gradle_build_mini.json
│ │ │ ├── build.ninja
│ │ │ ├── build_command.txt
│ │ │ ├── build_model.json
│ │ │ ├── build_output.txt
│ │ │ ├── cmake_install.cmake
│ │ │ ├── cmake_server_log.txt
│ │ │ ├── compile_commands.json
│ │ │ ├── json_generation_record.json
│ │ │ ├── prefab_config.json
│ │ │ └── rules.ninja
│ │ │ ├── armeabi-v7a
│ │ │ ├── CMakeCache.txt
│ │ │ ├── CMakeFiles
│ │ │ │ ├── 3.10.2
│ │ │ │ │ ├── CMakeCCompiler.cmake
│ │ │ │ │ ├── CMakeCXXCompiler.cmake
│ │ │ │ │ ├── CMakeDetermineCompilerABI_C.bin
│ │ │ │ │ ├── CMakeDetermineCompilerABI_CXX.bin
│ │ │ │ │ └── CMakeSystem.cmake
│ │ │ │ ├── CMakeOutput.log
│ │ │ │ ├── TargetDirectories.txt
│ │ │ │ ├── cmake.check_cache
│ │ │ │ ├── feature_tests.bin
│ │ │ │ ├── feature_tests.c
│ │ │ │ └── feature_tests.cxx
│ │ │ ├── android_gradle_build.json
│ │ │ ├── android_gradle_build_mini.json
│ │ │ ├── build.ninja
│ │ │ ├── build_command.txt
│ │ │ ├── build_model.json
│ │ │ ├── build_output.txt
│ │ │ ├── cmake_install.cmake
│ │ │ ├── cmake_server_log.txt
│ │ │ ├── compile_commands.json
│ │ │ ├── json_generation_record.json
│ │ │ ├── prefab_config.json
│ │ │ └── rules.ninja
│ │ │ └── x86
│ │ │ ├── CMakeCache.txt
│ │ │ ├── CMakeFiles
│ │ │ ├── 3.10.2
│ │ │ │ ├── CMakeCCompiler.cmake
│ │ │ │ ├── CMakeCXXCompiler.cmake
│ │ │ │ ├── CMakeDetermineCompilerABI_C.bin
│ │ │ │ ├── CMakeDetermineCompilerABI_CXX.bin
│ │ │ │ └── CMakeSystem.cmake
│ │ │ ├── CMakeOutput.log
│ │ │ ├── TargetDirectories.txt
│ │ │ ├── cmake.check_cache
│ │ │ ├── feature_tests.bin
│ │ │ ├── feature_tests.c
│ │ │ └── feature_tests.cxx
│ │ │ ├── android_gradle_build.json
│ │ │ ├── android_gradle_build_mini.json
│ │ │ ├── build.ninja
│ │ │ ├── build_command.txt
│ │ │ ├── build_model.json
│ │ │ ├── build_output.txt
│ │ │ ├── cmake_install.cmake
│ │ │ ├── cmake_server_log.txt
│ │ │ ├── compile_commands.json
│ │ │ ├── json_generation_record.json
│ │ │ ├── prefab_config.json
│ │ │ └── rules.ninja
│ ├── ndk_locator_record_18362l3d.json
│ ├── ndk_locator_record_18362l3d.log
│ ├── ndk_locator_record_18362l3d_key.json
│ ├── ndk_locator_record_491x4e4r.json
│ ├── ndk_locator_record_491x4e4r.log
│ └── ndk_locator_record_491x4e4r_key.json
├── .gitignore
├── build.gradle
├── proguard-rules.pro
└── src
│ └── main
│ ├── AndroidManifest.xml
│ ├── java
│ └── com
│ │ └── jhworks
│ │ └── library
│ │ ├── ImageSelector.kt
│ │ ├── core
│ │ ├── MediaConstant.kt
│ │ ├── MediaLoader.kt
│ │ ├── MediaParse.kt
│ │ ├── MediaSelectConfig.kt
│ │ ├── callback
│ │ │ └── ImgProgressListener.kt
│ │ ├── ui
│ │ │ ├── FolderAdapter.kt
│ │ │ ├── ImageBaseActivity.kt
│ │ │ ├── ImageDetailActivity.kt
│ │ │ ├── ImagePageActivity.kt
│ │ │ ├── ImagePermissionActivity.kt
│ │ │ ├── ImageSelectActivity.kt
│ │ │ ├── ImageSelectorFragment.kt
│ │ │ ├── MediaAdapter.kt
│ │ │ ├── MediaLoaderFragment.kt
│ │ │ └── adapter
│ │ │ │ └── ImagePagerAdapter.kt
│ │ └── vo
│ │ │ ├── FolderVo.kt
│ │ │ ├── ImageInfoVo.kt
│ │ │ ├── MediaConfigVo.kt
│ │ │ ├── MediaType.kt
│ │ │ ├── MediaUiConfigVo.kt
│ │ │ └── MediaVo.kt
│ │ ├── decoration
│ │ └── DividerGridItemDecoration.kt
│ │ ├── engine
│ │ └── IEngine.kt
│ │ ├── utils
│ │ ├── CheckNullUtils.kt
│ │ ├── SlFileUtils.kt
│ │ ├── SlImageUtils.kt
│ │ ├── SlLog.kt
│ │ └── SlScreenUtils.kt
│ │ └── view
│ │ ├── HackyViewPager.kt
│ │ ├── ScrollDownPhotoView.kt
│ │ ├── SlImgLoadingBar.kt
│ │ ├── SlLongImageView.kt
│ │ ├── SlPhotoView.kt
│ │ ├── SquareFrameLayout.kt
│ │ └── SquaredImageView.kt
│ └── res
│ ├── color
│ ├── sl_default_text_color.xml
│ └── sl_folder_text_color.xml
│ ├── drawable-xhdpi
│ └── ic_sl_image_default.png
│ ├── drawable-xxhdpi
│ ├── ic_sl_select_normal.png
│ ├── ic_sl_select_pressed.png
│ ├── sl_ic_arrow_down.png
│ ├── sl_ic_camera.png
│ ├── sl_ic_folder_item_select.png
│ ├── sl_ic_video_icon.png
│ └── sl_ic_white_nav.png
│ ├── drawable
│ ├── sl_action_btn.xml
│ ├── sl_bg_checkbox.xml
│ ├── sl_bg_select_image.xml
│ └── sl_divider.xml
│ ├── layout
│ ├── activity_sl_image_detail.xml
│ ├── activity_sl_image_pager.xml
│ ├── activity_sl_image_select.xml
│ ├── sl_fragment_multi_image.xml
│ ├── sl_list_item_camera.xml
│ ├── sl_list_item_folder.xml
│ └── sl_list_item_image.xml
│ ├── values-zh
│ └── strings.xml
│ ├── values
│ ├── attrs.xml
│ ├── colors.xml
│ ├── colors_dark.xml
│ ├── colors_light.xml
│ ├── dimens.xml
│ ├── ids.xml
│ ├── strings.xml
│ └── styles.xml
│ └── xml
│ └── sl_file_paths_public.xml
├── settings.gradle
└── test.jks
/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | .DS_Store
5 | /build
6 | /captures
7 | .idea/
8 | /gradle/wrapper/gradle-wrapper.properties
9 |
--------------------------------------------------------------------------------
/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/app/libs/arm64-v8a/libucrop.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JackLiaoJH/ImageSelect/662d1118fcc7ed3ed784809e9b476d540d7fa496/app/libs/arm64-v8a/libucrop.so
--------------------------------------------------------------------------------
/app/libs/armeabi-v7a/libucrop.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JackLiaoJH/ImageSelect/662d1118fcc7ed3ed784809e9b476d540d7fa496/app/libs/armeabi-v7a/libucrop.so
--------------------------------------------------------------------------------
/app/libs/armeabi/libucrop.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JackLiaoJH/ImageSelect/662d1118fcc7ed3ed784809e9b476d540d7fa496/app/libs/armeabi/libucrop.so
--------------------------------------------------------------------------------
/app/libs/library-release.aar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JackLiaoJH/ImageSelect/662d1118fcc7ed3ed784809e9b476d540d7fa496/app/libs/library-release.aar
--------------------------------------------------------------------------------
/app/libs/x86/libucrop.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JackLiaoJH/ImageSelect/662d1118fcc7ed3ed784809e9b476d540d7fa496/app/libs/x86/libucrop.so
--------------------------------------------------------------------------------
/app/libs/x86_64/libucrop.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JackLiaoJH/ImageSelect/662d1118fcc7ed3ed784809e9b476d540d7fa496/app/libs/x86_64/libucrop.so
--------------------------------------------------------------------------------
/app/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # By default, the flags in this file are appended to flags specified
3 | # in D:\Android\sdk/tools/proguard/proguard-android.txt
4 | # You can edit the include path and order by changing the proguardFiles
5 | # directive in build.gradle.
6 | #
7 | # For more details, see
8 | # http://developer.android.com/guide/developing/tools/proguard.html
9 |
10 | # Add any project specific keep options here:
11 |
12 | # If your project uses WebView with JS, uncomment the following
13 | # and specify the fully qualified class name to the JavaScript interface
14 | # class:
15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16 | # public *;
17 | #}
18 |
19 | #-keep public class * implements com.bumptech.glide.module.GlideModule
20 | #-keep public class * extends com.bumptech.glide.module.AppGlideModule
21 | #-keep public enum com.bumptech.glide.load.ImageHeaderParser$** {
22 | # **[] $VALUES;
23 | # public *;
24 | #}
25 |
--------------------------------------------------------------------------------
/app/src/androidTest/java/com/jhworks/imageselect/ApplicationTest.java:
--------------------------------------------------------------------------------
1 | package com.jhworks.imageselect;
2 |
3 | import android.app.Application;
4 | import android.test.ApplicationTestCase;
5 |
6 | /**
7 | * Testing Fundamentals
8 | */
9 | public class ApplicationTest extends ApplicationTestCase {
10 | public ApplicationTest() {
11 | super(Application.class);
12 | }
13 | }
--------------------------------------------------------------------------------
/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
14 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
27 |
28 |
31 |
32 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/app/src/main/java/com/jhworks/imageselect/App.kt:
--------------------------------------------------------------------------------
1 | package com.jhworks.imageselect
2 |
3 | import android.app.Application
4 | import android.os.StrictMode
5 | import com.github.moduth.blockcanary.BlockCanary
6 | import com.github.moduth.blockcanary.BlockCanaryContext
7 | import com.jhworks.imageselect.engine.GlideEngine
8 | import com.jhworks.library.ImageSelector
9 |
10 | /**
11 | *
12 | * @author jackson
13 | * @version 1.0
14 | * @date 2020/6/11 15:36
15 | */
16 | class App : Application() {
17 | override fun onCreate() {
18 | super.onCreate()
19 |
20 | ImageSelector.setImageEngine(GlideEngine()).isDebug(BuildConfig.DEBUG)
21 |
22 | if (BuildConfig.DEBUG) {
23 | enabledStrictMode()
24 | // 主进程
25 | BlockCanary.install(this, BlockCanaryContext()).start()
26 | }
27 | }
28 |
29 | private fun enabledStrictMode() {
30 | StrictMode.setThreadPolicy(
31 | StrictMode.ThreadPolicy.Builder()
32 | // .detectAll()
33 | // .detectDiskReads()
34 | // .detectDiskWrites()
35 | .detectNetwork()
36 | .penaltyLog()
37 | .penaltyDialog()
38 | .penaltyDeath()
39 | .build()
40 | )
41 |
42 | StrictMode.setVmPolicy(
43 | StrictMode.VmPolicy.Builder()
44 | //检测资源是否正确关闭
45 | .detectLeakedClosableObjects()
46 | .penaltyLog()
47 | .build()
48 | );
49 | }
50 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/jhworks/imageselect/TestImageCropActivity.kt:
--------------------------------------------------------------------------------
1 | package com.jhworks.imageselect
2 |
3 | import android.app.Activity
4 | import android.content.Intent
5 | import android.os.Bundle
6 | import android.view.View
7 | import com.jhworks.library.ImageSelector
8 | import com.jhworks.library.core.MediaSelectConfig
9 | import com.jhworks.library.core.ui.ImageBaseActivity
10 | import com.jhworks.library.core.vo.SelectMode
11 | import com.jhworks.imageselect.crop.ImageCrop
12 |
13 |
14 | /**
15 | *
16 | * @author jackson
17 | * @version 1.0
18 | * @date 2020/7/7 15:55
19 | */
20 | class TestImageCropActivity : ImageBaseActivity() {
21 |
22 | companion object {
23 | private const val REQUEST_IMAGE_SELECT = 20
24 | private const val REQUEST_IMAGE_CROP = 30
25 | }
26 |
27 | override fun setLayout(): Int = R.layout.activity_test_image_crop
28 |
29 | override fun onCreate(savedInstanceState: Bundle?) {
30 | super.onCreate(savedInstanceState)
31 |
32 | findViewById(R.id.button_crop).setOnClickListener {
33 | ImageSelector.startImageAction(this, REQUEST_IMAGE_SELECT,
34 | MediaSelectConfig.Builder()
35 | .setSelectMode(SelectMode.MODE_SINGLE)
36 | .setShowCamera(true)
37 | .setPlaceholderResId(R.mipmap.ic_launcher)
38 | .setMaxCount(1)
39 | .build()
40 | )
41 | }
42 | }
43 |
44 | override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
45 | super.onActivityResult(requestCode, resultCode, data)
46 | if (requestCode == REQUEST_IMAGE_SELECT) {
47 | if (resultCode == Activity.RESULT_OK) {
48 | val selectPath = ImageSelector.getSelectUriResults(data) ?: return
49 | ImageCrop.startAction(this, REQUEST_IMAGE_CROP, selectPath[0])
50 | }
51 | } else if (requestCode == REQUEST_IMAGE_CROP) {
52 | if (resultCode == Activity.RESULT_OK) {
53 |
54 | }
55 | }
56 | }
57 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/jhworks/imageselect/crop/CropConfig.kt:
--------------------------------------------------------------------------------
1 | package com.jhworks.imageselect.crop
2 |
3 | /**
4 | *
5 | * @author jackson
6 | * @version 1.0
7 | * @date 2020/7/7 16:31
8 | */
9 | class CropConfig private constructor(builder: Builder) {
10 |
11 | class Builder {
12 |
13 | }
14 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/jhworks/imageselect/crop/ImageCrop.kt:
--------------------------------------------------------------------------------
1 | package com.jhworks.imageselect.crop
2 |
3 | import android.app.Activity
4 | import android.content.Intent
5 | import android.net.Uri
6 |
7 | /**
8 | * 裁剪入口
9 | * @author jackson
10 | * @version 1.0
11 | * @date 2020/7/7 14:17
12 | */
13 | object ImageCrop {
14 |
15 | fun startAction(activity: Activity?, requestCode: Int, path: String) {
16 | activity ?: return
17 | activity.startActivityForResult(Intent(activity, com.jhworks.imageselect.crop.ImageCropActivity::class.java)
18 | .apply {
19 | putExtra("path", path)
20 | }, requestCode)
21 | }
22 |
23 | fun startAction(activity: Activity?, requestCode: Int, uri: Uri) {
24 | activity ?: return
25 | activity.startActivityForResult(Intent(activity, com.jhworks.imageselect.crop.ImageCropActivity::class.java)
26 | .apply {
27 | putExtra("uri", uri)
28 | }, requestCode)
29 | }
30 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/jhworks/imageselect/crop/ResultActivity.kt:
--------------------------------------------------------------------------------
1 | package com.jhworks.imageselect.crop
2 |
3 | import android.content.Context
4 | import android.content.Intent
5 | import android.net.Uri
6 | import android.os.Bundle
7 | import androidx.appcompat.widget.AppCompatImageView
8 | import com.bumptech.glide.Glide
9 | import com.jhworks.imageselect.R
10 | import com.jhworks.library.core.ui.ImageBaseActivity
11 |
12 | /**
13 | *
14 | * @author jackson
15 | * @version 1.0
16 | * @date 2020/7/15 14:26
17 | */
18 | class ResultActivity : ImageBaseActivity() {
19 |
20 | private lateinit var ivResult: AppCompatImageView
21 |
22 | companion object {
23 | fun start(context: Context, path: Uri) {
24 | context.startActivity(Intent(context, ResultActivity::class.java).apply {
25 | putExtra("path", path)
26 | })
27 | }
28 | }
29 |
30 | override fun setLayout(): Int = R.layout.activity_sl_result
31 |
32 | override fun onCreate(savedInstanceState: Bundle?) {
33 | super.onCreate(savedInstanceState)
34 |
35 | ivResult = findViewById(R.id.iv_sl_result)
36 |
37 | val path = intent.getParcelableExtra("path")
38 |
39 | Glide.with(this)
40 | .load(path)
41 | .into(ivResult)
42 | }
43 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/jhworks/imageselect/crop/callback/BitmapCropCallback.kt:
--------------------------------------------------------------------------------
1 | package com.jhworks.imageselect.crop.callback
2 |
3 | import android.net.Uri
4 |
5 | /**
6 | *
7 | * @author jackson
8 | * @version 1.0
9 | * @date 2020/7/7 17:54
10 | */
11 | interface BitmapCropCallback {
12 | fun onBitmapCropped(resultUri: Uri, offsetX: Int, offsetY: Int, imageWidth: Int, imageHeight: Int)
13 |
14 | fun onCropFailure(t: Throwable)
15 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/jhworks/imageselect/crop/callback/BitmapLoadCallback.kt:
--------------------------------------------------------------------------------
1 | package com.jhworks.imageselect.crop.callback
2 |
3 | import android.graphics.Bitmap
4 | import com.jhworks.imageselect.crop.vo.ExifInfo
5 |
6 | /**
7 | *
8 | * @author jackson
9 | * @version 1.0
10 | * @date 2020/7/7 17:33
11 | */
12 | interface BitmapLoadCallback {
13 | fun onBitmapLoaded(bitmap: Bitmap, exifInfo: ExifInfo, imageInputPath: String, imageOutputPath: String)
14 |
15 | fun onFailure(bitmapWorkerException: Exception)
16 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/jhworks/imageselect/crop/callback/CropBoundsChangeListener.kt:
--------------------------------------------------------------------------------
1 | package com.jhworks.imageselect.crop.callback
2 |
3 | /**
4 | *
5 | * @author jackson
6 | * @version 1.0
7 | * @date 2020/7/7 17:44
8 | */
9 | interface CropBoundsChangeListener {
10 | fun onCropAspectRatioChanged(cropRatio: Float)
11 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/jhworks/imageselect/crop/callback/OverlayViewChangeListener.kt:
--------------------------------------------------------------------------------
1 | package com.jhworks.imageselect.crop.callback
2 |
3 | import android.graphics.RectF
4 |
5 | /**
6 | *
7 | * @author jackson
8 | * @version 1.0
9 | * @date 2020/7/7 19:06
10 | */
11 | interface OverlayViewChangeListener {
12 | fun onCropRectUpdated(cropRect: RectF)
13 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/jhworks/imageselect/crop/vo/AspectRatio.kt:
--------------------------------------------------------------------------------
1 | package com.jhworks.imageselect.crop.vo
2 |
3 | import android.os.Parcel
4 | import android.os.Parcelable
5 |
6 | /**
7 | *
8 | * @author jackson
9 | * @version 1.0
10 | * @date 2020/7/15 16:32
11 | */
12 | data class AspectRatio(
13 | var aspectRatioTitle: String?,
14 | var aspectRatioX: Float = 0f,
15 | var aspectRatioY: Float = 0f
16 | ) : Parcelable {
17 | constructor(parcel: Parcel) : this(
18 | parcel.readString(),
19 | parcel.readFloat(),
20 | parcel.readFloat())
21 |
22 | override fun writeToParcel(parcel: Parcel, flags: Int) {
23 | parcel.writeString(aspectRatioTitle)
24 | parcel.writeFloat(aspectRatioX)
25 | parcel.writeFloat(aspectRatioY)
26 | }
27 |
28 | override fun describeContents(): Int {
29 | return 0
30 | }
31 |
32 | companion object CREATOR : Parcelable.Creator {
33 | override fun createFromParcel(parcel: Parcel): AspectRatio {
34 | return AspectRatio(parcel)
35 | }
36 |
37 | override fun newArray(size: Int): Array {
38 | return arrayOfNulls(size)
39 | }
40 | }
41 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/jhworks/imageselect/crop/vo/CropParameters.kt:
--------------------------------------------------------------------------------
1 | package com.jhworks.imageselect.crop.vo
2 |
3 | import android.graphics.Bitmap.CompressFormat
4 |
5 | /**
6 | *
7 | * @author jackson
8 | * @version 1.0
9 | * @date 2020/7/7 17:57
10 | */
11 | class CropParameters(
12 | val maxResultImageSizeX: Int,
13 | var maxResultImageSizeY: Int,
14 | val compressFormat: CompressFormat,
15 | val compressQuality: Int,
16 | val imageInputPath: String?,
17 | var imageOutputPath: String?,
18 | val exifInfo: ExifInfo?
19 | ) {
20 |
21 |
22 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/jhworks/imageselect/crop/vo/ExifInfo.kt:
--------------------------------------------------------------------------------
1 | package com.jhworks.imageselect.crop.vo
2 |
3 | /**
4 | *
5 | * @author jackson
6 | * @version 1.0
7 | * @date 2020/7/7 17:27
8 | */
9 | data class ExifInfo(
10 | val exifOrientation: Int = 0,
11 | val exifDegrees: Int = 0,
12 | val exifTranslation: Int = 0
13 | ) {
14 |
15 | override fun equals(o: Any?): Boolean {
16 | if (this === o) return true
17 | if (o == null || javaClass != o.javaClass) return false
18 |
19 | val (exifOrientation1, exifDegrees1, exifTranslation1) = o as ExifInfo
20 |
21 | if (exifOrientation != exifOrientation1) return false
22 | return if (exifDegrees != exifDegrees1) false else exifTranslation == exifTranslation1
23 | }
24 |
25 | override fun hashCode(): Int {
26 | var result: Int = exifOrientation
27 | result = 31 * result + exifDegrees
28 | result = 31 * result + exifTranslation
29 | return result
30 | }
31 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/jhworks/imageselect/crop/vo/ImageState.kt:
--------------------------------------------------------------------------------
1 | package com.jhworks.imageselect.crop.vo
2 |
3 | import android.graphics.RectF
4 |
5 | /**
6 | *
7 | * @author jackson
8 | * @version 1.0
9 | * @date 2020/7/7 17:55
10 | */
11 | data class ImageState(
12 | val cropRect: RectF,
13 | val currentImageRect: RectF,
14 | val currentScale: Float,
15 | var currentAngle: Float
16 | )
--------------------------------------------------------------------------------
/app/src/main/java/com/jhworks/imageselect/okhttp/ImageSelectorGlideModule.kt:
--------------------------------------------------------------------------------
1 | package com.jhworks.imageselect.okhttp
2 |
3 | import android.content.Context
4 | import com.bumptech.glide.Glide
5 | import com.bumptech.glide.Registry
6 | import com.bumptech.glide.annotation.GlideModule
7 | import com.bumptech.glide.load.model.GlideUrl
8 | import com.bumptech.glide.module.AppGlideModule
9 | import okhttp3.OkHttpClient
10 | import java.io.InputStream
11 |
12 | /**
13 | *
14 | * @author jackson
15 | * @version 1.0
16 | * @date 2021/9/10 16:22
17 | */
18 | @GlideModule
19 | class ImageSelectorGlideModule : AppGlideModule() {
20 |
21 | override fun registerComponents(context: Context, glide: Glide, registry: Registry) {
22 | val okHttpClient = OkHttpClient.Builder()
23 | .addInterceptor(ProgressInterceptor())
24 | .build()
25 | registry.replace(
26 | GlideUrl::class.java,
27 | InputStream::class.java, OkHttpUrlLoader.Factory(okHttpClient)
28 | )
29 | }
30 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/jhworks/imageselect/okhttp/OkHttpUrlLoader.java:
--------------------------------------------------------------------------------
1 | package com.jhworks.imageselect.okhttp;
2 |
3 | import com.bumptech.glide.integration.okhttp3.OkHttpStreamFetcher;
4 | import com.bumptech.glide.load.Options;
5 | import com.bumptech.glide.load.model.GlideUrl;
6 | import com.bumptech.glide.load.model.ModelLoader;
7 | import com.bumptech.glide.load.model.ModelLoaderFactory;
8 | import com.bumptech.glide.load.model.MultiModelLoaderFactory;
9 |
10 | import java.io.InputStream;
11 |
12 | import okhttp3.Call;
13 | import okhttp3.OkHttpClient;
14 |
15 | public class OkHttpUrlLoader implements ModelLoader {
16 |
17 | private final Call.Factory client;
18 |
19 | // Public API.
20 | @SuppressWarnings("WeakerAccess")
21 | public OkHttpUrlLoader(Call.Factory client) {
22 | this.client = client;
23 | }
24 |
25 | @Override
26 | public boolean handles(GlideUrl url) {
27 | return true;
28 | }
29 |
30 | @Override
31 | public LoadData buildLoadData(GlideUrl model, int width, int height,
32 | Options options) {
33 | return new LoadData<>(model, new OkHttpStreamFetcher(client, model));
34 | }
35 |
36 | /**
37 | * The default factory for {@link OkHttpUrlLoader}s.
38 | */
39 | // Public API.
40 | @SuppressWarnings("WeakerAccess")
41 | public static class Factory implements ModelLoaderFactory {
42 | private static volatile Call.Factory internalClient;
43 | private final Call.Factory client;
44 |
45 | private static Call.Factory getInternalClient() {
46 | if (internalClient == null) {
47 | synchronized (Factory.class) {
48 | if (internalClient == null) {
49 | internalClient = new OkHttpClient();
50 | }
51 | }
52 | }
53 | return internalClient;
54 | }
55 |
56 | /**
57 | * Constructor for a new Factory that runs requests using a static singleton client.
58 | */
59 | public Factory() {
60 | this(getInternalClient());
61 | }
62 |
63 | /**
64 | * Constructor for a new Factory that runs requests using given client.
65 | *
66 | * @param client this is typically an instance of {@code OkHttpClient}.
67 | */
68 | public Factory(Call.Factory client) {
69 | this.client = client;
70 | }
71 |
72 | @Override
73 | public ModelLoader build(MultiModelLoaderFactory multiFactory) {
74 | return new OkHttpUrlLoader(client);
75 | }
76 |
77 | @Override
78 | public void teardown() {
79 | // Do nothing, this instance doesn't own the client.
80 | }
81 | }
82 | }
83 |
--------------------------------------------------------------------------------
/app/src/main/java/com/jhworks/imageselect/okhttp/ProgressInterceptor.kt:
--------------------------------------------------------------------------------
1 | package com.jhworks.imageselect.okhttp
2 |
3 | import com.jhworks.library.core.callback.ImgProgressListener
4 | import okhttp3.Interceptor
5 | import okhttp3.Response
6 |
7 | /**
8 | *
9 | * @author jackson
10 | * @version 1.0
11 | * @date 2021/9/10 15:55
12 | */
13 | class ProgressInterceptor : Interceptor {
14 |
15 | companion object {
16 | var LISTENER_MAP: HashMap? = null
17 |
18 | fun init() {
19 | if (LISTENER_MAP == null) LISTENER_MAP = HashMap()
20 | }
21 |
22 | fun clear() {
23 | LISTENER_MAP?.clear()
24 | LISTENER_MAP = null
25 | }
26 |
27 | fun addListener(url: String?, l: ImgProgressListener?) {
28 | url ?: return
29 | l ?: return
30 | init()
31 | LISTENER_MAP?.put(url, l)
32 | }
33 |
34 | fun removeListener(url: String?) {
35 | url ?: return
36 | LISTENER_MAP?.remove(url)
37 | }
38 | }
39 |
40 | override fun intercept(chain: Interceptor.Chain): Response {
41 | val request = chain.request()
42 | val response = chain.proceed(request)
43 | val url = request.url().toString()
44 | val body = response.body()
45 | return response.newBuilder().body(ProgressResponseBody(url, body)).build()
46 | }
47 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/jhworks/imageselect/okhttp/ProgressResponseBody.kt:
--------------------------------------------------------------------------------
1 | package com.jhworks.imageselect.okhttp
2 |
3 | import android.util.Log
4 | import com.jhworks.library.core.callback.ImgProgressListener
5 | import okhttp3.MediaType
6 | import okhttp3.ResponseBody
7 | import okio.*
8 |
9 | /**
10 | *
11 | * @author jackson
12 | * @version 1.0
13 | * @date 2021/9/10 16:01
14 | */
15 | class ProgressResponseBody(
16 | private val url: String,
17 | private val responseBody: ResponseBody?
18 | ) : ResponseBody() {
19 |
20 | private var progressListener: ImgProgressListener? = null
21 | private var bufferedSource: BufferedSource? = null
22 |
23 | init {
24 | if (ProgressInterceptor.LISTENER_MAP != null) {
25 | progressListener = ProgressInterceptor.LISTENER_MAP?.get(url)
26 | }
27 | }
28 |
29 | override fun contentType(): MediaType? = responseBody?.contentType()
30 | override fun contentLength(): Long = responseBody?.contentLength() ?: 0
31 |
32 | override fun source(): BufferedSource? {
33 | if (bufferedSource == null && responseBody != null) {
34 | bufferedSource = ProgressSource(responseBody, progressListener).buffer()
35 | }
36 | return bufferedSource
37 | }
38 |
39 | private class ProgressSource(
40 | private val responseBody: ResponseBody,
41 | private var progressListener: ImgProgressListener?
42 | ) :
43 | ForwardingSource(responseBody.source()) {
44 | var totalBytesRead: Long = 0
45 | var currentProgress = 0
46 |
47 | override fun read(sink: Buffer, byteCount: Long): Long {
48 | val bytesRead = super.read(sink, byteCount)
49 | val fullLength = responseBody.contentLength()
50 | if (bytesRead == -1L) {
51 | totalBytesRead = fullLength
52 | } else {
53 | totalBytesRead += bytesRead
54 | }
55 | val progress = (100f * totalBytesRead / fullLength).toInt()
56 | Log.e("LIAO", "加载进度:$progress ,$progressListener")
57 | if (progressListener != null && progress != currentProgress) {
58 | progressListener?.onLoadProgress(progress, progress == 100)
59 | }
60 | if (progressListener != null && totalBytesRead == fullLength) {
61 | progressListener = null
62 | }
63 | currentProgress = progress
64 | return bytesRead
65 | }
66 | }
67 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/jhworks/imageselect/utils/CubicEasing.kt:
--------------------------------------------------------------------------------
1 | package com.jhworks.imageselect.utils
2 |
3 | /**
4 | *
5 | * @author jackson
6 | * @version 1.0
7 | * @date 2020/7/7 17:48
8 | */
9 | object CubicEasing {
10 |
11 | fun easeOut(time: Float, start: Float, end: Float, duration: Float): Float {
12 | var time = time
13 | return end * ((time / duration - 1.0f.also { time = it }) * time * time + 1.0f) + start
14 | }
15 |
16 | fun easeIn(time: Float, start: Float, end: Float, duration: Float): Float {
17 | var time = time
18 | return end * duration.let { time /= it; time } * time * time + start
19 | }
20 |
21 | fun easeInOut(time: Float, start: Float, end: Float, duration: Float): Float {
22 | var time = time
23 | return if (duration / 2.0f.let { time /= it; time } < 1.0f) end / 2.0f * time * time * time + start else end / 2.0f * (2.0f.let { time -= it; time } * time * time + 2.0f) + start
24 | }
25 |
26 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/jhworks/imageselect/utils/FastBitmapDrawable.kt:
--------------------------------------------------------------------------------
1 | package com.jhworks.imageselect.utils
2 |
3 | import android.graphics.*
4 | import android.graphics.drawable.Drawable
5 |
6 | /**
7 | *
8 | * @author jackson
9 | * @version 1.0
10 | * @date 2020/7/7 17:19
11 | */
12 | class FastBitmapDrawable(private var bitmap: Bitmap?) : Drawable() {
13 | private val mPaint = Paint(Paint.FILTER_BITMAP_FLAG)
14 |
15 | private var mAlpha = 0
16 | private var mWidth = 0
17 | private var mHeight = 0
18 |
19 | init {
20 | mAlpha = 255
21 | setBitmap(bitmap)
22 | }
23 |
24 | override fun draw(canvas: Canvas) {
25 | bitmap?.let { if (!it.isRecycled) canvas.drawBitmap(it, null, bounds, mPaint) }
26 | }
27 |
28 | override fun setColorFilter(cf: ColorFilter?) {
29 | mPaint.colorFilter = cf
30 | }
31 |
32 | override fun getOpacity(): Int {
33 | return PixelFormat.TRANSLUCENT
34 | }
35 |
36 | override fun setFilterBitmap(filterBitmap: Boolean) {
37 | mPaint.isFilterBitmap = filterBitmap
38 | }
39 |
40 | override fun getAlpha(): Int {
41 | return mAlpha
42 | }
43 |
44 | override fun setAlpha(alpha: Int) {
45 | mAlpha = alpha
46 | mPaint.alpha = alpha
47 | }
48 |
49 | override fun getIntrinsicWidth(): Int {
50 | return mWidth
51 | }
52 |
53 | override fun getIntrinsicHeight(): Int {
54 | return mHeight
55 | }
56 |
57 | override fun getMinimumWidth(): Int {
58 | return mWidth
59 | }
60 |
61 | override fun getMinimumHeight(): Int {
62 | return mHeight
63 | }
64 |
65 | fun getBitmap(): Bitmap? {
66 | return bitmap
67 | }
68 |
69 | fun setBitmap(b: Bitmap?) {
70 | bitmap = b
71 | if (b != null) {
72 | mWidth = b.width
73 | mHeight = b.height
74 | } else {
75 | mHeight = 0
76 | mWidth = mHeight
77 | }
78 | }
79 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/jhworks/imageselect/utils/GlideUtils.kt:
--------------------------------------------------------------------------------
1 | package com.jhworks.imageselect.utils
2 |
3 | import android.annotation.SuppressLint
4 | import android.content.Context
5 | import android.text.TextUtils
6 | import com.bumptech.glide.load.model.GlideUrl
7 | import com.bumptech.glide.signature.EmptySignature
8 | import com.bumptech.glide.util.Util
9 | import java.lang.Exception
10 | import java.security.MessageDigest
11 |
12 | /**
13 | *
14 | * @author jackson
15 | * @version 1.0
16 | * @date 2021/9/10 09:20
17 | */
18 | object GlideUtils {
19 | /**
20 | * Glide缓存存储路径:/data/data/your_packagexxxxxxx/cache/image_manager_disk_cache
21 | * Glide文件名生成规则函数 : 4.0+ 版本
22 | *
23 | * @param url 图片地址url
24 | * @return 返回图片在磁盘缓存的key值
25 | */
26 | fun getGlide4_SafeKey(url: String?): String? {
27 | try {
28 | val messageDigest = MessageDigest.getInstance("SHA-256")
29 | val signature = EmptySignature.obtain()
30 | signature.updateDiskCacheKey(messageDigest)
31 | GlideUrl(url).updateDiskCacheKey(messageDigest)
32 | val safeKey = Util.sha256BytesToHex(messageDigest.digest())
33 | return "$safeKey.0"
34 | } catch (e: Exception) {
35 | }
36 | return null
37 | }
38 |
39 | fun getGlideLocalCachePath(context: Context?, url: String?): String? {
40 | context ?: return null
41 | val key = getGlide4_SafeKey(url)
42 | if (!TextUtils.isEmpty(key)) {
43 | val path = "${context.cacheDir.path}/image_manager_disk_cache/%s"
44 | return String.format(path, key)
45 | }
46 | return null
47 | }
48 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/jhworks/imageselect/utils/RectUtils.kt:
--------------------------------------------------------------------------------
1 | package com.jhworks.imageselect.utils
2 |
3 | import android.graphics.RectF
4 | import kotlin.math.pow
5 | import kotlin.math.roundToInt
6 | import kotlin.math.sqrt
7 |
8 | /**
9 | *
10 | * @author jackson
11 | * @version 1.0
12 | * @date 2020/7/7 17:15
13 | */
14 | object RectUtils {
15 | /**
16 | * Gets a float array of the 2D coordinates representing a rectangles
17 | * corners.
18 | * The order of the corners in the float array is:
19 | * 0------->1
20 | * ^ |
21 | * | |
22 | * | v
23 | * 3<-------2
24 | *
25 | * @param r the rectangle to get the corners of
26 | * @return the float array of corners (8 floats)
27 | */
28 | fun getCornersFromRect(r: RectF): FloatArray {
29 | return floatArrayOf(
30 | r.left, r.top,
31 | r.right, r.top,
32 | r.right, r.bottom,
33 | r.left, r.bottom
34 | )
35 | }
36 |
37 | /**
38 | * Gets a float array of two lengths representing a rectangles width and height
39 | * The order of the corners in the input float array is:
40 | * 0------->1
41 | * ^ |
42 | * | |
43 | * | v
44 | * 3<-------2
45 | *
46 | * @param corners the float array of corners (8 floats)
47 | * @return the float array of width and height (2 floats)
48 | */
49 | fun getRectSidesFromCorners(corners: FloatArray): FloatArray {
50 | return floatArrayOf(
51 | sqrt((corners[0] - corners[2].toDouble()).pow(2.0) + (corners[1] - corners[3].toDouble()).pow(2.0)).toFloat(),
52 | sqrt((corners[2] - corners[4].toDouble()).pow(2.0) + (corners[3] - corners[5].toDouble()).pow(2.0)).toFloat())
53 | }
54 |
55 | fun getCenterFromRect(r: RectF): FloatArray {
56 | return floatArrayOf(r.centerX(), r.centerY())
57 | }
58 |
59 | /**
60 | * Takes an array of 2D coordinates representing corners and returns the
61 | * smallest rectangle containing those coordinates.
62 | *
63 | * @param array array of 2D coordinates
64 | * @return smallest rectangle containing coordinates
65 | */
66 | fun trapToRect(array: FloatArray): RectF {
67 | val r = RectF(Float.POSITIVE_INFINITY, Float.POSITIVE_INFINITY, Float.NEGATIVE_INFINITY, Float.NEGATIVE_INFINITY)
68 | var i = 1
69 | while (i < array.size) {
70 | val x = (array[i - 1] * 10).roundToInt() / 10f
71 | val y = (array[i] * 10).roundToInt() / 10f
72 | r.left = if (x < r.left) x else r.left
73 | r.top = if (y < r.top) y else r.top
74 | r.right = if (x > r.right) x else r.right
75 | r.bottom = if (y > r.bottom) y else r.bottom
76 | i += 2
77 | }
78 | r.sort()
79 | return r
80 | }
81 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/jhworks/imageselect/view/CropView.kt:
--------------------------------------------------------------------------------
1 | package com.jhworks.imageselect.view
2 |
3 | import android.content.Context
4 | import android.graphics.RectF
5 | import android.util.AttributeSet
6 | import android.widget.FrameLayout
7 | import com.jhworks.imageselect.R
8 | import com.jhworks.imageselect.crop.callback.CropBoundsChangeListener
9 | import com.jhworks.imageselect.crop.callback.OverlayViewChangeListener
10 |
11 | /**
12 | *
13 | * @author jackson
14 | * @version 1.0
15 | * @date 2020/7/7 16:51
16 | */
17 | class CropView(context: Context, attrs: AttributeSet?, defStyleAttr: Int)
18 | : FrameLayout(context, attrs, defStyleAttr) {
19 | constructor(context: Context, attrs: AttributeSet?) : this(context, attrs, 0)
20 | constructor(context: Context) : this(context, null)
21 |
22 | private var mGestureCropImageView: GestureCropImageView
23 | private var mViewOverlay: OverlayView
24 |
25 | init {
26 | inflate(context, R.layout.sl_crop_view, this)
27 |
28 | mGestureCropImageView = findViewById(R.id.image_view_crop)
29 | mViewOverlay = findViewById(R.id.view_overlay)
30 |
31 | val a = context.obtainStyledAttributes(attrs, R.styleable.sl_CropView)
32 | mViewOverlay.processStyledAttributes(a)
33 | mGestureCropImageView.processStyledAttributes(a)
34 | a.recycle()
35 |
36 |
37 | setListenersToViews()
38 | }
39 |
40 | private fun setListenersToViews() {
41 | mGestureCropImageView.setCropBoundsChangeListener(object : CropBoundsChangeListener {
42 | override fun onCropAspectRatioChanged(cropRatio: Float) {
43 | mViewOverlay.setTargetAspectRatio(cropRatio)
44 | }
45 | })
46 | mViewOverlay.setOverlayViewChangeListener(object : OverlayViewChangeListener {
47 | override fun onCropRectUpdated(cropRect: RectF) {
48 | mGestureCropImageView.setCropRect(cropRect)
49 | }
50 | })
51 | }
52 |
53 | override fun shouldDelayChildPressedState(): Boolean {
54 | return false
55 | }
56 |
57 | fun getCropImageView(): GestureCropImageView {
58 | return mGestureCropImageView
59 | }
60 |
61 | fun getOverlayView(): OverlayView {
62 | return mViewOverlay
63 | }
64 |
65 | /**
66 | * Method for reset state for UCropImageView such as rotation, scale, translation.
67 | * Be careful: this method recreate UCropImageView instance and reattach it to layout.
68 | */
69 | fun resetCropImageView() {
70 | removeView(mGestureCropImageView)
71 | mGestureCropImageView = GestureCropImageView(context)
72 | setListenersToViews()
73 | mGestureCropImageView.setCropRect(getOverlayView().getCropViewRect())
74 | addView(mGestureCropImageView, 0)
75 | }
76 | }
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_sl_crop_angle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JackLiaoJH/ImageSelect/662d1118fcc7ed3ed784809e9b476d540d7fa496/app/src/main/res/drawable-xhdpi/ic_sl_crop_angle.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_sl_crop_done.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JackLiaoJH/ImageSelect/662d1118fcc7ed3ed784809e9b476d540d7fa496/app/src/main/res/drawable-xhdpi/ic_sl_crop_done.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_sl_crop_angle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JackLiaoJH/ImageSelect/662d1118fcc7ed3ed784809e9b476d540d7fa496/app/src/main/res/drawable-xxhdpi/ic_sl_crop_angle.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_sl_crop_done.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JackLiaoJH/ImageSelect/662d1118fcc7ed3ed784809e9b476d540d7fa496/app/src/main/res/drawable-xxhdpi/ic_sl_crop_done.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/ic_sl_crop_angle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JackLiaoJH/ImageSelect/662d1118fcc7ed3ed784809e9b476d540d7fa496/app/src/main/res/drawable-xxxhdpi/ic_sl_crop_angle.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/ic_sl_crop_done.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JackLiaoJH/ImageSelect/662d1118fcc7ed3ed784809e9b476d540d7fa496/app/src/main/res/drawable-xxxhdpi/ic_sl_crop_done.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/bg_rounded_rectangle.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_sl_reset.xml:
--------------------------------------------------------------------------------
1 |
6 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_sl_image_crop.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
11 |
17 |
18 |
26 |
27 |
28 |
29 |
36 |
37 |
38 |
43 |
44 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_sl_result.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
17 |
18 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/sl_crop_view.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
12 |
13 |
17 |
18 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/menu_main.xml:
--------------------------------------------------------------------------------
1 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/sl_crop_menu.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JackLiaoJH/ImageSelect/662d1118fcc7ed3ed784809e9b476d540d7fa496/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JackLiaoJH/ImageSelect/662d1118fcc7ed3ed784809e9b476d540d7fa496/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JackLiaoJH/ImageSelect/662d1118fcc7ed3ed784809e9b476d540d7fa496/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JackLiaoJH/ImageSelect/662d1118fcc7ed3ed784809e9b476d540d7fa496/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JackLiaoJH/ImageSelect/662d1118fcc7ed3ed784809e9b476d540d7fa496/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/values-v21/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 | 64dp
6 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/values-zh/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | 多图选择
3 |
4 | 设置
5 |
6 | 选择模式
7 | 单选
8 | 多选
9 | 最大选择数量
10 | 默认数量为9
11 | 默认图片列表为3
12 | 是否启用照相机
13 | 是
14 | 否
15 | 主题选择
16 | 白色
17 | 夜色
18 | 自定义
19 | 图片选择
20 | 图片列表个数
21 | 仅打开相机
22 | 视频选择
23 | 图片
24 |
25 | 测试裁剪
26 | 宽高比
27 | 自定义裁剪
28 | 动态
29 | 图片源
30 | 正方形裁剪
31 | 图片最大裁剪大小
32 | Resize image to max size
33 | Compression settings
34 | 隐藏底部控制ui
35 |
36 | 裁剪
37 | 裁剪
38 | 旋转
39 | 缩放
40 | 原始
41 |
42 |
--------------------------------------------------------------------------------
/app/src/main/res/values/attrs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #3F51B5
4 | #303F9F
5 | #FF4081
6 |
7 | #80000000
8 |
9 |
10 | #80ffffff
11 | #ffffff
12 | #8c000000
13 | #4f212121
14 |
15 |
16 |
17 | #000
18 | #FF6300
19 | #20242F
20 | #B3BECE
21 | #FFF
22 |
23 |
24 | @color/ucrop_color_white
25 | #f5f5f5
26 | @color/ucrop_color_black
27 | @color/ucrop_color_black
28 | @color/ucrop_color_white
29 | @color/ucrop_color_blaze_orange
30 | @color/ucrop_color_heather
31 | @color/ucrop_color_blaze_orange
32 | @color/ucrop_color_ebony_clay
33 | @color/ucrop_color_blaze_orange
34 | @color/ucrop_color_ebony_clay
35 | @color/ucrop_color_ebony_clay
36 | @color/ucrop_color_blaze_orange
37 | @color/ucrop_color_ebony_clay
38 | @color/ucrop_color_black
39 |
40 |
41 | #80ffffff
42 | #ffffff
43 | #8c000000
44 |
45 |
--------------------------------------------------------------------------------
/app/src/main/res/values/colors_custom.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | #3F51B5
7 | #303F9F
8 |
9 | #3F51B5
10 | @android:color/white
11 | #FF4081
12 |
13 | @android:color/white
14 | #FF222222
15 | #FF979A9E
16 | #FFBCBFC5
17 |
18 | #88FF4081
19 | #FF111111
20 | #FF6300
21 |
--------------------------------------------------------------------------------
/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 16dp
4 | 16dp
5 | 16dp
6 |
7 |
8 | 200dp
9 | 1dp
10 | 1dp
11 | 30dp
12 | 100dp
13 | 10dp
14 |
15 |
16 | 16dp
17 | 8dp
18 | 20dp
19 | 2dp
20 | 4dp
21 | 10dp
22 | 64dp
23 | 72dp
24 | 3dp
25 | 13sp
26 | 11sp
27 | 10dp
28 | 4dp
29 | 50dp
30 | 40dp
31 | 30dp
32 |
33 |
34 | 1dp
35 | 30dp
36 | 100dp
37 | 10dp
38 |
39 |
--------------------------------------------------------------------------------
/app/src/main/res/values/ids.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | ImageSelect
3 | Settings
4 | Photo
5 |
6 | Select Mode
7 | Single-Choice
8 | Multi-Choice
9 | Max Selected Amount
10 | default amount is 9
11 | default amount is 3
12 | Enable Camera
13 | Enable
14 | Disable
15 | Theme Select
16 | Light
17 | Dark
18 | Custom
19 | Select
20 | Open Camera Only
21 | image span count
22 | Video Select
23 |
24 | Test Crop
25 | Aspect ratio
26 | Freestyle crop
27 | Dynamic
28 | Image source
29 | Square
30 | Max cropped image size
31 | Resize image to max size
32 | Width
33 | Height
34 | Compression settings
35 | Hide bottom UI controls
36 |
37 | Crop
38 | Crop
39 | Rotate
40 | Scale
41 | Original
42 |
43 |
--------------------------------------------------------------------------------
/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/app/src/test/java/com/jhworks/imageselect/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.jhworks.imageselect;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * To work on unit tests, switch the Test Artifact in the Build Variants view.
9 | */
10 | public class ExampleUnitTest {
11 | @Test
12 | public void addition_isCorrect() throws Exception {
13 | assertEquals(4, 2 + 2);
14 | }
15 | }
--------------------------------------------------------------------------------
/gradle.properties:
--------------------------------------------------------------------------------
1 | # Project-wide Gradle settings.
2 |
3 | # IDE (e.g. Android Studio) users:
4 | # Gradle settings configured through the IDE *will override*
5 | # any settings specified in this file.
6 |
7 | # For more details on how to configure your build environment visit
8 | # http://www.gradle.org/docs/current/userguide/build_environment.html
9 |
10 | # Specifies the JVM arguments used for the daemon process.
11 | # The setting is particularly useful for tweaking memory settings.
12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m
13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
14 |
15 | # When configured, Gradle will run in incubating parallel mode.
16 | # This option should only be used with decoupled projects. More details, visit
17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
18 | # org.gradle.parallel=true
19 | android.enableJetifier=true
20 | android.useAndroidX=true
21 | android.injected.testOnly=false
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JackLiaoJH/ImageSelect/662d1118fcc7ed3ed784809e9b476d540d7fa496/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Thu Jun 11 15:25:17 CST 2020
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip
7 |
--------------------------------------------------------------------------------
/gradlew.bat:
--------------------------------------------------------------------------------
1 | @if "%DEBUG%" == "" @echo off
2 | @rem ##########################################################################
3 | @rem
4 | @rem Gradle startup script for Windows
5 | @rem
6 | @rem ##########################################################################
7 |
8 | @rem Set local scope for the variables with windows NT shell
9 | if "%OS%"=="Windows_NT" setlocal
10 |
11 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
12 | set DEFAULT_JVM_OPTS=
13 |
14 | set DIRNAME=%~dp0
15 | if "%DIRNAME%" == "" set DIRNAME=.
16 | set APP_BASE_NAME=%~n0
17 | set APP_HOME=%DIRNAME%
18 |
19 | @rem Find java.exe
20 | if defined JAVA_HOME goto findJavaFromJavaHome
21 |
22 | set JAVA_EXE=java.exe
23 | %JAVA_EXE% -version >NUL 2>&1
24 | if "%ERRORLEVEL%" == "0" goto init
25 |
26 | echo.
27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
28 | echo.
29 | echo Please set the JAVA_HOME variable in your environment to match the
30 | echo location of your Java installation.
31 |
32 | goto fail
33 |
34 | :findJavaFromJavaHome
35 | set JAVA_HOME=%JAVA_HOME:"=%
36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe
37 |
38 | if exist "%JAVA_EXE%" goto init
39 |
40 | echo.
41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
42 | echo.
43 | echo Please set the JAVA_HOME variable in your environment to match the
44 | echo location of your Java installation.
45 |
46 | goto fail
47 |
48 | :init
49 | @rem Get command-line arguments, handling Windowz variants
50 |
51 | if not "%OS%" == "Windows_NT" goto win9xME_args
52 | if "%@eval[2+2]" == "4" goto 4NT_args
53 |
54 | :win9xME_args
55 | @rem Slurp the command line arguments.
56 | set CMD_LINE_ARGS=
57 | set _SKIP=2
58 |
59 | :win9xME_args_slurp
60 | if "x%~1" == "x" goto execute
61 |
62 | set CMD_LINE_ARGS=%*
63 | goto execute
64 |
65 | :4NT_args
66 | @rem Get arguments from the 4NT Shell from JP Software
67 | set CMD_LINE_ARGS=%$
68 |
69 | :execute
70 | @rem Setup the command line
71 |
72 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
73 |
74 | @rem Execute Gradle
75 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
76 |
77 | :end
78 | @rem End local scope for the variables with windows NT shell
79 | if "%ERRORLEVEL%"=="0" goto mainEnd
80 |
81 | :fail
82 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
83 | rem the _cmd.exe /c_ return code!
84 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
85 | exit /b 1
86 |
87 | :mainEnd
88 | if "%OS%"=="Windows_NT" endlocal
89 |
90 | :omega
91 |
--------------------------------------------------------------------------------
/images/image1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JackLiaoJH/ImageSelect/662d1118fcc7ed3ed784809e9b476d540d7fa496/images/image1.png
--------------------------------------------------------------------------------
/images/image2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JackLiaoJH/ImageSelect/662d1118fcc7ed3ed784809e9b476d540d7fa496/images/image2.png
--------------------------------------------------------------------------------
/library/.cxx/abi_configuration_1x5l5c4p.json:
--------------------------------------------------------------------------------
1 | {
2 | "allAbis": [
3 | "armeabi-v7a",
4 | "arm64-v8a",
5 | "x86",
6 | "x86_64"
7 | ],
8 | "validAbis": [
9 | "ARMEABI_V7A",
10 | "ARM64_V8A",
11 | "X86",
12 | "X86_64"
13 | ]
14 | }
--------------------------------------------------------------------------------
/library/.cxx/abi_configuration_1x5l5c4p.log:
--------------------------------------------------------------------------------
1 | []
--------------------------------------------------------------------------------
/library/.cxx/abi_configuration_1x5l5c4p_key.json:
--------------------------------------------------------------------------------
1 | {
2 | "ndkHandlerSupportedAbis": [
3 | "ARMEABI_V7A",
4 | "ARM64_V8A",
5 | "X86",
6 | "X86_64"
7 | ],
8 | "ndkHandlerDefaultAbis": [
9 | "ARMEABI_V7A",
10 | "ARM64_V8A",
11 | "X86",
12 | "X86_64"
13 | ],
14 | "externalNativeBuildAbiFilters": [],
15 | "ndkConfigAbiFilters": [
16 | "armeabi-v7a",
17 | "x86_64",
18 | "x86",
19 | "arm64-v8a"
20 | ],
21 | "splitsFilterAbis": [],
22 | "ideBuildOnlyTargetAbi": true
23 | }
--------------------------------------------------------------------------------
/library/.cxx/abi_configuration_1z1z1e4b.json:
--------------------------------------------------------------------------------
1 | {
2 | "allAbis": [
3 | "armeabi",
4 | "armeabi-v7a",
5 | "arm64-v8a",
6 | "x86",
7 | "x86_64"
8 | ],
9 | "validAbis": [
10 | "ARMEABI",
11 | "ARMEABI_V7A",
12 | "ARM64_V8A",
13 | "X86",
14 | "X86_64"
15 | ]
16 | }
--------------------------------------------------------------------------------
/library/.cxx/abi_configuration_1z1z1e4b.log:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "level": "ERROR",
4 | "message": "ABIs [armeabi] are not supported for platform. Supported ABIs are [arm64-v8a, armeabi-v7a, x86, x86_64]."
5 | }
6 | ]
--------------------------------------------------------------------------------
/library/.cxx/abi_configuration_1z1z1e4b_key.json:
--------------------------------------------------------------------------------
1 | {
2 | "ndkHandlerSupportedAbis": [
3 | "ARMEABI_V7A",
4 | "ARM64_V8A",
5 | "X86",
6 | "X86_64"
7 | ],
8 | "ndkHandlerDefaultAbis": [
9 | "ARMEABI_V7A",
10 | "ARM64_V8A",
11 | "X86",
12 | "X86_64"
13 | ],
14 | "externalNativeBuildAbiFilters": [],
15 | "ndkConfigAbiFilters": [
16 | "armeabi-v7a",
17 | "x86_64",
18 | "armeabi",
19 | "x86",
20 | "arm64-v8a"
21 | ],
22 | "splitsFilterAbis": [],
23 | "ideBuildOnlyTargetAbi": true
24 | }
--------------------------------------------------------------------------------
/library/.cxx/abi_configuration_352h6120.json:
--------------------------------------------------------------------------------
1 | {
2 | "allAbis": [
3 | "armeabi-v7a",
4 | "arm64-v8a",
5 | "x86"
6 | ],
7 | "validAbis": [
8 | "ARM64_V8A"
9 | ]
10 | }
--------------------------------------------------------------------------------
/library/.cxx/abi_configuration_352h6120.log:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "level": "INFO",
4 | "message": "ABIs [arm64-v8a,armeabi-v7a,armeabi] set by \u0027android.injected.build.abi\u0027 gradle flag contained \u0027ARMEABI\u0027 not targeted by this project."
5 | }
6 | ]
--------------------------------------------------------------------------------
/library/.cxx/abi_configuration_352h6120_key.json:
--------------------------------------------------------------------------------
1 | {
2 | "ndkHandlerSupportedAbis": [
3 | "ARMEABI_V7A",
4 | "ARM64_V8A",
5 | "X86",
6 | "X86_64"
7 | ],
8 | "ndkHandlerDefaultAbis": [
9 | "ARMEABI_V7A",
10 | "ARM64_V8A",
11 | "X86",
12 | "X86_64"
13 | ],
14 | "externalNativeBuildAbiFilters": [],
15 | "ndkConfigAbiFilters": [
16 | "armeabi-v7a",
17 | "x86",
18 | "arm64-v8a"
19 | ],
20 | "splitsFilterAbis": [],
21 | "ideBuildOnlyTargetAbi": true,
22 | "ideBuildTargetAbi": "arm64-v8a,armeabi-v7a,armeabi"
23 | }
--------------------------------------------------------------------------------
/library/.cxx/abi_configuration_46303451.json:
--------------------------------------------------------------------------------
1 | {
2 | "allAbis": [
3 | "armeabi-v7a",
4 | "arm64-v8a",
5 | "x86"
6 | ],
7 | "validAbis": [
8 | "ARMEABI_V7A",
9 | "ARM64_V8A",
10 | "X86"
11 | ]
12 | }
--------------------------------------------------------------------------------
/library/.cxx/abi_configuration_46303451.log:
--------------------------------------------------------------------------------
1 | []
--------------------------------------------------------------------------------
/library/.cxx/abi_configuration_46303451_key.json:
--------------------------------------------------------------------------------
1 | {
2 | "ndkHandlerSupportedAbis": [
3 | "ARMEABI_V7A",
4 | "ARM64_V8A",
5 | "X86",
6 | "X86_64"
7 | ],
8 | "ndkHandlerDefaultAbis": [
9 | "ARMEABI_V7A",
10 | "ARM64_V8A",
11 | "X86",
12 | "X86_64"
13 | ],
14 | "externalNativeBuildAbiFilters": [],
15 | "ndkConfigAbiFilters": [
16 | "armeabi-v7a",
17 | "x86",
18 | "arm64-v8a"
19 | ],
20 | "splitsFilterAbis": [],
21 | "ideBuildOnlyTargetAbi": true
22 | }
--------------------------------------------------------------------------------
/library/.cxx/cmake/debug/arm64-v8a/.ninja_deps:
--------------------------------------------------------------------------------
1 | # ninjadeps
2 |
--------------------------------------------------------------------------------
/library/.cxx/cmake/debug/arm64-v8a/.ninja_log:
--------------------------------------------------------------------------------
1 | # ninja log v5
2 |
--------------------------------------------------------------------------------
/library/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_C.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JackLiaoJH/ImageSelect/662d1118fcc7ed3ed784809e9b476d540d7fa496/library/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_C.bin
--------------------------------------------------------------------------------
/library/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_CXX.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JackLiaoJH/ImageSelect/662d1118fcc7ed3ed784809e9b476d540d7fa496/library/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_CXX.bin
--------------------------------------------------------------------------------
/library/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:
--------------------------------------------------------------------------------
1 | set(CMAKE_HOST_SYSTEM "Darwin-19.5.0")
2 | set(CMAKE_HOST_SYSTEM_NAME "Darwin")
3 | set(CMAKE_HOST_SYSTEM_VERSION "19.5.0")
4 | set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64")
5 |
6 | include("/Users/jiahui/Library/Android/sdk/ndk-bundle/build/cmake/android.toolchain.cmake")
7 |
8 | set(CMAKE_SYSTEM "Android-1")
9 | set(CMAKE_SYSTEM_NAME "Android")
10 | set(CMAKE_SYSTEM_VERSION "1")
11 | set(CMAKE_SYSTEM_PROCESSOR "aarch64")
12 |
13 | set(CMAKE_CROSSCOMPILING "TRUE")
14 |
15 | set(CMAKE_SYSTEM_LOADED 1)
16 |
--------------------------------------------------------------------------------
/library/.cxx/cmake/debug/arm64-v8a/CMakeFiles/TargetDirectories.txt:
--------------------------------------------------------------------------------
1 | /Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/debug/arm64-v8a/CMakeFiles/rebuild_cache.dir
2 | /Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/debug/arm64-v8a/CMakeFiles/edit_cache.dir
3 | /Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/debug/arm64-v8a/CMakeFiles/SlCrop.dir
4 |
--------------------------------------------------------------------------------
/library/.cxx/cmake/debug/arm64-v8a/CMakeFiles/cmake.check_cache:
--------------------------------------------------------------------------------
1 | # This file is generated by cmake for dependency checking of the CMakeCache.txt file
2 |
--------------------------------------------------------------------------------
/library/.cxx/cmake/debug/arm64-v8a/CMakeFiles/feature_tests.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JackLiaoJH/ImageSelect/662d1118fcc7ed3ed784809e9b476d540d7fa496/library/.cxx/cmake/debug/arm64-v8a/CMakeFiles/feature_tests.bin
--------------------------------------------------------------------------------
/library/.cxx/cmake/debug/arm64-v8a/CMakeFiles/feature_tests.c:
--------------------------------------------------------------------------------
1 |
2 | const char features[] = {"\n"
3 | "C_FEATURE:"
4 | #if ((__clang_major__ * 100) + __clang_minor__) >= 304
5 | "1"
6 | #else
7 | "0"
8 | #endif
9 | "c_function_prototypes\n"
10 | "C_FEATURE:"
11 | #if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
12 | "1"
13 | #else
14 | "0"
15 | #endif
16 | "c_restrict\n"
17 | "C_FEATURE:"
18 | #if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L
19 | "1"
20 | #else
21 | "0"
22 | #endif
23 | "c_static_assert\n"
24 | "C_FEATURE:"
25 | #if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
26 | "1"
27 | #else
28 | "0"
29 | #endif
30 | "c_variadic_macros\n"
31 |
32 | };
33 |
34 | int main(int argc, char** argv) { (void)argv; return features[argc]; }
35 |
--------------------------------------------------------------------------------
/library/.cxx/cmake/debug/arm64-v8a/android_gradle_build.json:
--------------------------------------------------------------------------------
1 | {
2 | "stringTable": {
3 | "0": "/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/debug/arm64-v8a",
4 | "1": "--target=aarch64-none-linux-android21 --gcc-toolchain=/Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64 --sysroot=/Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot -DSlCrop_EXPORTS -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -O0 -fno-limit-debug-info -fPIC"
5 | },
6 | "buildFiles": [
7 | "/Users/jiahui/Library/Android/sdk/ndk-bundle/build/cmake/platforms.cmake",
8 | "/Users/jiahui/Library/Android/sdk/ndk-bundle/build/cmake/android.toolchain.cmake",
9 | "/Users/jiahui/workspace/android/github/ImageSelect/library/CMakeLists.txt"
10 | ],
11 | "cleanCommands": [
12 | "/Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/ninja -C \"/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/debug/arm64-v8a\" clean"
13 | ],
14 | "buildTargetsCommand": "/Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/ninja -C \"/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/debug/arm64-v8a\" {LIST_OF_TARGETS_TO_BUILD}",
15 | "libraries": {
16 | "SlCrop-Debug-arm64-v8a": {
17 | "buildCommand": "/Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/ninja -C \"/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/debug/arm64-v8a\" SlCrop",
18 | "buildType": "debug",
19 | "toolchain": "3599106317",
20 | "abi": "arm64-v8a",
21 | "artifactName": "SlCrop",
22 | "files": [
23 | {
24 | "src": "/Users/jiahui/workspace/android/github/ImageSelect/library/src/main/jni/SlCrop.cpp",
25 | "flagsOrdinal": 1,
26 | "workingDirectoryOrdinal": 0
27 | }
28 | ],
29 | "headers": [],
30 | "output": "/Users/jiahui/workspace/android/github/ImageSelect/jniLibs/arm64-v8a/libSlCrop.so",
31 | "runtimeFiles": []
32 | }
33 | },
34 | "toolchains": {
35 | "3599106317": {
36 | "cppCompilerExecutable": "/Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++"
37 | }
38 | },
39 | "cFileExtensions": [],
40 | "cppFileExtensions": [
41 | "cpp"
42 | ]
43 | }
--------------------------------------------------------------------------------
/library/.cxx/cmake/debug/arm64-v8a/android_gradle_build_SlCrop_arm64-v8a.command.txt:
--------------------------------------------------------------------------------
1 | Executable : /Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/ninja
2 | arguments :
3 | -C
4 | /Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/debug/arm64-v8a
5 | SlCrop
6 | jvmArgs :
7 |
8 |
--------------------------------------------------------------------------------
/library/.cxx/cmake/debug/arm64-v8a/android_gradle_build_SlCrop_arm64-v8a.stderr.txt:
--------------------------------------------------------------------------------
1 | ninja: error: '/libpng-android/obj/local/arm64-v8a/libpng.a', needed by '/Users/jiahui/workspace/android/github/ImageSelect/jniLibs/arm64-v8a/libSlCrop.so', missing and no known rule to make it
2 |
--------------------------------------------------------------------------------
/library/.cxx/cmake/debug/arm64-v8a/android_gradle_build_SlCrop_arm64-v8a.stdout.txt:
--------------------------------------------------------------------------------
1 | ninja: Entering directory `/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/debug/arm64-v8a'
2 |
--------------------------------------------------------------------------------
/library/.cxx/cmake/debug/arm64-v8a/android_gradle_build_mini.json:
--------------------------------------------------------------------------------
1 | {
2 | "buildFiles": [
3 | "/Users/jiahui/Library/Android/sdk/ndk-bundle/build/cmake/platforms.cmake",
4 | "/Users/jiahui/Library/Android/sdk/ndk-bundle/build/cmake/android.toolchain.cmake",
5 | "/Users/jiahui/workspace/android/github/ImageSelect/library/CMakeLists.txt"
6 | ],
7 | "cleanCommands": [
8 | "/Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/ninja -C \"/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/debug/arm64-v8a\" clean"
9 | ],
10 | "buildTargetsCommand": "/Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/ninja -C \"/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/debug/arm64-v8a\" {LIST_OF_TARGETS_TO_BUILD}",
11 | "libraries": {
12 | "SlCrop-Debug-arm64-v8a": {
13 | "artifactName": "SlCrop",
14 | "buildCommand": "/Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/ninja -C \"/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/debug/arm64-v8a\" SlCrop",
15 | "abi": "arm64-v8a",
16 | "output": "/Users/jiahui/workspace/android/github/ImageSelect/jniLibs/arm64-v8a/libSlCrop.so",
17 | "runtimeFiles": []
18 | }
19 | }
20 | }
--------------------------------------------------------------------------------
/library/.cxx/cmake/debug/arm64-v8a/build_command.txt:
--------------------------------------------------------------------------------
1 | Executable : /Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/cmake
2 | arguments :
3 | -H/Users/jiahui/workspace/android/github/ImageSelect/library
4 | -DCMAKE_FIND_ROOT_PATH=/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/debug/prefab/arm64-v8a/prefab
5 | -DCMAKE_BUILD_TYPE=Debug
6 | -DCMAKE_TOOLCHAIN_FILE=/Users/jiahui/Library/Android/sdk/ndk-bundle/build/cmake/android.toolchain.cmake
7 | -DANDROID_ABI=arm64-v8a
8 | -DANDROID_NDK=/Users/jiahui/Library/Android/sdk/ndk-bundle
9 | -DANDROID_PLATFORM=android-19
10 | -DCMAKE_ANDROID_ARCH_ABI=arm64-v8a
11 | -DCMAKE_ANDROID_NDK=/Users/jiahui/Library/Android/sdk/ndk-bundle
12 | -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
13 | -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/Users/jiahui/workspace/android/github/ImageSelect/library/build/intermediates/cmake/debug/obj/arm64-v8a
14 | -DCMAKE_MAKE_PROGRAM=/Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/ninja
15 | -DCMAKE_SYSTEM_NAME=Android
16 | -DCMAKE_SYSTEM_VERSION=19
17 | -B/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/debug/arm64-v8a
18 | -GNinja
19 | jvmArgs :
20 |
21 | Build command args:
22 |
--------------------------------------------------------------------------------
/library/.cxx/cmake/debug/arm64-v8a/build_output.txt:
--------------------------------------------------------------------------------
1 | aaaaa,
2 | Configuring done
--------------------------------------------------------------------------------
/library/.cxx/cmake/debug/arm64-v8a/cmake_install.cmake:
--------------------------------------------------------------------------------
1 | # Install script for directory: /Users/jiahui/workspace/android/github/ImageSelect/library
2 |
3 | # Set the install prefix
4 | if(NOT DEFINED CMAKE_INSTALL_PREFIX)
5 | set(CMAKE_INSTALL_PREFIX "/usr/local")
6 | endif()
7 | string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
8 |
9 | # Set the install configuration name.
10 | if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
11 | if(BUILD_TYPE)
12 | string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
13 | CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
14 | else()
15 | set(CMAKE_INSTALL_CONFIG_NAME "Debug")
16 | endif()
17 | message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
18 | endif()
19 |
20 | # Set the component getting installed.
21 | if(NOT CMAKE_INSTALL_COMPONENT)
22 | if(COMPONENT)
23 | message(STATUS "Install component: \"${COMPONENT}\"")
24 | set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
25 | else()
26 | set(CMAKE_INSTALL_COMPONENT)
27 | endif()
28 | endif()
29 |
30 | # Install shared libraries without execute permission?
31 | if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
32 | set(CMAKE_INSTALL_SO_NO_EXE "0")
33 | endif()
34 |
35 | # Is this installation the result of a crosscompile?
36 | if(NOT DEFINED CMAKE_CROSSCOMPILING)
37 | set(CMAKE_CROSSCOMPILING "TRUE")
38 | endif()
39 |
40 | if(CMAKE_INSTALL_COMPONENT)
41 | set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt")
42 | else()
43 | set(CMAKE_INSTALL_MANIFEST "install_manifest.txt")
44 | endif()
45 |
46 | string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT
47 | "${CMAKE_INSTALL_MANIFEST_FILES}")
48 | file(WRITE "/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/debug/arm64-v8a/${CMAKE_INSTALL_MANIFEST}"
49 | "${CMAKE_INSTALL_MANIFEST_CONTENT}")
50 |
--------------------------------------------------------------------------------
/library/.cxx/cmake/debug/arm64-v8a/compile_commands.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "directory": "/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/debug/arm64-v8a",
4 | "command": "/Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ --target=aarch64-none-linux-android21 --gcc-toolchain=/Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64 --sysroot=/Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot -DSlCrop_EXPORTS -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -O0 -fno-limit-debug-info -fPIC -o CMakeFiles/SlCrop.dir/src/main/jni/SlCrop.cpp.o -c /Users/jiahui/workspace/android/github/ImageSelect/library/src/main/jni/SlCrop.cpp",
5 | "file": "/Users/jiahui/workspace/android/github/ImageSelect/library/src/main/jni/SlCrop.cpp"
6 | }
7 | ]
--------------------------------------------------------------------------------
/library/.cxx/cmake/debug/arm64-v8a/json_generation_record.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "level": "INFO",
4 | "message": "Start JSON generation. Platform version: 19 min SDK version: arm64-v8a",
5 | "file": "/Users/jiahui/workspace/android/github/ImageSelect/library/CMakeLists.txt",
6 | "tag": "debug|arm64-v8a"
7 | },
8 | {
9 | "level": "INFO",
10 | "message": "No CMake version was specified in build.gradle. Using default version 3.10.2.",
11 | "file": "/Users/jiahui/workspace/android/github/ImageSelect/library/CMakeLists.txt",
12 | "tag": "debug|arm64-v8a"
13 | },
14 | {
15 | "level": "INFO",
16 | "message": "Trying to locate CMake in local SDK repository.",
17 | "file": "/Users/jiahui/workspace/android/github/ImageSelect/library/CMakeLists.txt",
18 | "tag": "debug|arm64-v8a"
19 | },
20 | {
21 | "level": "INFO",
22 | "message": "- CMake found in SDK at \u0027/Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404\u0027 had version \u00273.10.2\u0027",
23 | "file": "/Users/jiahui/workspace/android/github/ImageSelect/library/CMakeLists.txt",
24 | "tag": "debug|arm64-v8a"
25 | },
26 | {
27 | "level": "INFO",
28 | "message": "CMake \u00273.6.0\u0027 found in SDK did not match requested version \u00273.10.2\u0027.",
29 | "file": "/Users/jiahui/workspace/android/github/ImageSelect/library/CMakeLists.txt",
30 | "tag": "debug|arm64-v8a"
31 | },
32 | {
33 | "level": "INFO",
34 | "message": "JSON \u0027/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/debug/arm64-v8a/android_gradle_build.json\u0027 was up-to-date",
35 | "file": "/Users/jiahui/workspace/android/github/ImageSelect/library/CMakeLists.txt",
36 | "tag": "debug|arm64-v8a"
37 | },
38 | {
39 | "level": "INFO",
40 | "message": "JSON generation completed without problems",
41 | "file": "/Users/jiahui/workspace/android/github/ImageSelect/library/CMakeLists.txt",
42 | "tag": "debug|arm64-v8a"
43 | }
44 | ]
--------------------------------------------------------------------------------
/library/.cxx/cmake/debug/arm64-v8a/prefab_config.json:
--------------------------------------------------------------------------------
1 | {
2 | "enabled": false,
3 | "packages": []
4 | }
--------------------------------------------------------------------------------
/library/.cxx/cmake/debug/arm64-v8a/rules.ninja:
--------------------------------------------------------------------------------
1 | # CMAKE generated file: DO NOT EDIT!
2 | # Generated by "Ninja" Generator, CMake Version 3.10
3 |
4 | # This file contains all the rules used to get the outputs files
5 | # built from the input files.
6 | # It is included in the main 'build.ninja'.
7 |
8 | # =============================================================================
9 | # Project: Project
10 | # Configuration: Debug
11 | # =============================================================================
12 | # =============================================================================
13 |
14 | #############################################
15 | # Rule for running custom commands.
16 |
17 | rule CUSTOM_COMMAND
18 | command = $COMMAND
19 | description = $DESC
20 |
21 |
22 | #############################################
23 | # Rule for compiling CXX files.
24 |
25 | rule CXX_COMPILER__SlCrop
26 | depfile = $DEP_FILE
27 | deps = gcc
28 | command = /Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ --target=aarch64-none-linux-android21 --gcc-toolchain=/Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64 --sysroot=/Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot $DEFINES $INCLUDES $FLAGS -MD -MT $out -MF $DEP_FILE -o $out -c $in
29 | description = Building CXX object $out
30 |
31 |
32 | #############################################
33 | # Rule for linking CXX shared library.
34 |
35 | rule CXX_SHARED_LIBRARY_LINKER__SlCrop
36 | command = $PRE_LINK && /Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ --target=aarch64-none-linux-android21 --gcc-toolchain=/Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64 --sysroot=/Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot -fPIC $LANGUAGE_COMPILE_FLAGS $ARCH_FLAGS $LINK_FLAGS -shared $SONAME_FLAG$SONAME -o $TARGET_FILE $in $LINK_PATH $LINK_LIBRARIES && $POST_BUILD
37 | description = Linking CXX shared library $TARGET_FILE
38 | restat = $RESTAT
39 |
40 |
41 | #############################################
42 | # Rule for re-running cmake.
43 |
44 | rule RERUN_CMAKE
45 | command = /Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/cmake -H/Users/jiahui/workspace/android/github/ImageSelect/library -B/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/debug/arm64-v8a
46 | description = Re-running CMake...
47 | generator = 1
48 |
49 |
50 | #############################################
51 | # Rule for cleaning all built files.
52 |
53 | rule CLEAN
54 | command = /Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/ninja -t clean
55 | description = Cleaning all built files...
56 |
57 |
58 | #############################################
59 | # Rule for printing all primary targets available.
60 |
61 | rule HELP
62 | command = /Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/ninja -t targets
63 | description = All primary targets available:
64 |
65 |
--------------------------------------------------------------------------------
/library/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_C.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JackLiaoJH/ImageSelect/662d1118fcc7ed3ed784809e9b476d540d7fa496/library/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_C.bin
--------------------------------------------------------------------------------
/library/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_CXX.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JackLiaoJH/ImageSelect/662d1118fcc7ed3ed784809e9b476d540d7fa496/library/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_CXX.bin
--------------------------------------------------------------------------------
/library/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:
--------------------------------------------------------------------------------
1 | set(CMAKE_HOST_SYSTEM "Darwin-19.5.0")
2 | set(CMAKE_HOST_SYSTEM_NAME "Darwin")
3 | set(CMAKE_HOST_SYSTEM_VERSION "19.5.0")
4 | set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64")
5 |
6 | include("/Users/jiahui/Library/Android/sdk/ndk-bundle/build/cmake/android.toolchain.cmake")
7 |
8 | set(CMAKE_SYSTEM "Android-1")
9 | set(CMAKE_SYSTEM_NAME "Android")
10 | set(CMAKE_SYSTEM_VERSION "1")
11 | set(CMAKE_SYSTEM_PROCESSOR "armv7-a")
12 |
13 | set(CMAKE_CROSSCOMPILING "TRUE")
14 |
15 | set(CMAKE_SYSTEM_LOADED 1)
16 |
--------------------------------------------------------------------------------
/library/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/TargetDirectories.txt:
--------------------------------------------------------------------------------
1 | /Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/rebuild_cache.dir
2 | /Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/edit_cache.dir
3 | /Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/SlCrop.dir
4 |
--------------------------------------------------------------------------------
/library/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/cmake.check_cache:
--------------------------------------------------------------------------------
1 | # This file is generated by cmake for dependency checking of the CMakeCache.txt file
2 |
--------------------------------------------------------------------------------
/library/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/feature_tests.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JackLiaoJH/ImageSelect/662d1118fcc7ed3ed784809e9b476d540d7fa496/library/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/feature_tests.bin
--------------------------------------------------------------------------------
/library/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/feature_tests.c:
--------------------------------------------------------------------------------
1 |
2 | const char features[] = {"\n"
3 | "C_FEATURE:"
4 | #if ((__clang_major__ * 100) + __clang_minor__) >= 304
5 | "1"
6 | #else
7 | "0"
8 | #endif
9 | "c_function_prototypes\n"
10 | "C_FEATURE:"
11 | #if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
12 | "1"
13 | #else
14 | "0"
15 | #endif
16 | "c_restrict\n"
17 | "C_FEATURE:"
18 | #if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L
19 | "1"
20 | #else
21 | "0"
22 | #endif
23 | "c_static_assert\n"
24 | "C_FEATURE:"
25 | #if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
26 | "1"
27 | #else
28 | "0"
29 | #endif
30 | "c_variadic_macros\n"
31 |
32 | };
33 |
34 | int main(int argc, char** argv) { (void)argv; return features[argc]; }
35 |
--------------------------------------------------------------------------------
/library/.cxx/cmake/debug/armeabi-v7a/android_gradle_build.json:
--------------------------------------------------------------------------------
1 | {
2 | "stringTable": {
3 | "0": "/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/debug/armeabi-v7a",
4 | "1": "--target=armv7-none-linux-androideabi19 --gcc-toolchain=/Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64 --sysroot=/Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot -DSlCrop_EXPORTS -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -march=armv7-a -mthumb -Wformat -Werror=format-security -O0 -fno-limit-debug-info -fPIC"
5 | },
6 | "buildFiles": [
7 | "/Users/jiahui/Library/Android/sdk/ndk-bundle/build/cmake/platforms.cmake",
8 | "/Users/jiahui/Library/Android/sdk/ndk-bundle/build/cmake/android.toolchain.cmake",
9 | "/Users/jiahui/workspace/android/github/ImageSelect/library/CMakeLists.txt"
10 | ],
11 | "cleanCommands": [
12 | "/Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/ninja -C \"/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/debug/armeabi-v7a\" clean"
13 | ],
14 | "buildTargetsCommand": "/Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/ninja -C \"/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/debug/armeabi-v7a\" {LIST_OF_TARGETS_TO_BUILD}",
15 | "libraries": {
16 | "SlCrop-Debug-armeabi-v7a": {
17 | "buildCommand": "/Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/ninja -C \"/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/debug/armeabi-v7a\" SlCrop",
18 | "buildType": "debug",
19 | "toolchain": "3599106317",
20 | "abi": "armeabi-v7a",
21 | "artifactName": "SlCrop",
22 | "files": [
23 | {
24 | "src": "/Users/jiahui/workspace/android/github/ImageSelect/library/src/main/jni/SlCrop.cpp",
25 | "flagsOrdinal": 1,
26 | "workingDirectoryOrdinal": 0
27 | }
28 | ],
29 | "headers": [],
30 | "output": "/Users/jiahui/workspace/android/github/ImageSelect/jniLibs/armeabi-v7a/libSlCrop.so",
31 | "runtimeFiles": []
32 | }
33 | },
34 | "toolchains": {
35 | "3599106317": {
36 | "cppCompilerExecutable": "/Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++"
37 | }
38 | },
39 | "cFileExtensions": [],
40 | "cppFileExtensions": [
41 | "cpp"
42 | ]
43 | }
--------------------------------------------------------------------------------
/library/.cxx/cmake/debug/armeabi-v7a/android_gradle_build_mini.json:
--------------------------------------------------------------------------------
1 | {
2 | "buildFiles": [
3 | "/Users/jiahui/Library/Android/sdk/ndk-bundle/build/cmake/platforms.cmake",
4 | "/Users/jiahui/Library/Android/sdk/ndk-bundle/build/cmake/android.toolchain.cmake",
5 | "/Users/jiahui/workspace/android/github/ImageSelect/library/CMakeLists.txt"
6 | ],
7 | "cleanCommands": [
8 | "/Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/ninja -C \"/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/debug/armeabi-v7a\" clean"
9 | ],
10 | "buildTargetsCommand": "/Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/ninja -C \"/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/debug/armeabi-v7a\" {LIST_OF_TARGETS_TO_BUILD}",
11 | "libraries": {
12 | "SlCrop-Debug-armeabi-v7a": {
13 | "artifactName": "SlCrop",
14 | "buildCommand": "/Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/ninja -C \"/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/debug/armeabi-v7a\" SlCrop",
15 | "abi": "armeabi-v7a",
16 | "output": "/Users/jiahui/workspace/android/github/ImageSelect/jniLibs/armeabi-v7a/libSlCrop.so",
17 | "runtimeFiles": []
18 | }
19 | }
20 | }
--------------------------------------------------------------------------------
/library/.cxx/cmake/debug/armeabi-v7a/build_command.txt:
--------------------------------------------------------------------------------
1 | Executable : /Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/cmake
2 | arguments :
3 | -H/Users/jiahui/workspace/android/github/ImageSelect/library
4 | -DCMAKE_FIND_ROOT_PATH=/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/debug/prefab/armeabi-v7a/prefab
5 | -DCMAKE_BUILD_TYPE=Debug
6 | -DCMAKE_TOOLCHAIN_FILE=/Users/jiahui/Library/Android/sdk/ndk-bundle/build/cmake/android.toolchain.cmake
7 | -DANDROID_ABI=armeabi-v7a
8 | -DANDROID_NDK=/Users/jiahui/Library/Android/sdk/ndk-bundle
9 | -DANDROID_PLATFORM=android-19
10 | -DCMAKE_ANDROID_ARCH_ABI=armeabi-v7a
11 | -DCMAKE_ANDROID_NDK=/Users/jiahui/Library/Android/sdk/ndk-bundle
12 | -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
13 | -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/Users/jiahui/workspace/android/github/ImageSelect/library/build/intermediates/cmake/debug/obj/armeabi-v7a
14 | -DCMAKE_MAKE_PROGRAM=/Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/ninja
15 | -DCMAKE_SYSTEM_NAME=Android
16 | -DCMAKE_SYSTEM_VERSION=19
17 | -B/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/debug/armeabi-v7a
18 | -GNinja
19 | jvmArgs :
20 |
21 | Build command args:
22 |
--------------------------------------------------------------------------------
/library/.cxx/cmake/debug/armeabi-v7a/build_output.txt:
--------------------------------------------------------------------------------
1 | aaaaa,
2 | Configuring done
--------------------------------------------------------------------------------
/library/.cxx/cmake/debug/armeabi-v7a/cmake_install.cmake:
--------------------------------------------------------------------------------
1 | # Install script for directory: /Users/jiahui/workspace/android/github/ImageSelect/library
2 |
3 | # Set the install prefix
4 | if(NOT DEFINED CMAKE_INSTALL_PREFIX)
5 | set(CMAKE_INSTALL_PREFIX "/usr/local")
6 | endif()
7 | string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
8 |
9 | # Set the install configuration name.
10 | if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
11 | if(BUILD_TYPE)
12 | string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
13 | CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
14 | else()
15 | set(CMAKE_INSTALL_CONFIG_NAME "Debug")
16 | endif()
17 | message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
18 | endif()
19 |
20 | # Set the component getting installed.
21 | if(NOT CMAKE_INSTALL_COMPONENT)
22 | if(COMPONENT)
23 | message(STATUS "Install component: \"${COMPONENT}\"")
24 | set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
25 | else()
26 | set(CMAKE_INSTALL_COMPONENT)
27 | endif()
28 | endif()
29 |
30 | # Install shared libraries without execute permission?
31 | if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
32 | set(CMAKE_INSTALL_SO_NO_EXE "0")
33 | endif()
34 |
35 | # Is this installation the result of a crosscompile?
36 | if(NOT DEFINED CMAKE_CROSSCOMPILING)
37 | set(CMAKE_CROSSCOMPILING "TRUE")
38 | endif()
39 |
40 | if(CMAKE_INSTALL_COMPONENT)
41 | set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt")
42 | else()
43 | set(CMAKE_INSTALL_MANIFEST "install_manifest.txt")
44 | endif()
45 |
46 | string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT
47 | "${CMAKE_INSTALL_MANIFEST_FILES}")
48 | file(WRITE "/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/debug/armeabi-v7a/${CMAKE_INSTALL_MANIFEST}"
49 | "${CMAKE_INSTALL_MANIFEST_CONTENT}")
50 |
--------------------------------------------------------------------------------
/library/.cxx/cmake/debug/armeabi-v7a/compile_commands.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "directory": "/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/debug/armeabi-v7a",
4 | "command": "/Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ --target=armv7-none-linux-androideabi19 --gcc-toolchain=/Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64 --sysroot=/Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot -DSlCrop_EXPORTS -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -march=armv7-a -mthumb -Wformat -Werror=format-security -O0 -fno-limit-debug-info -fPIC -o CMakeFiles/SlCrop.dir/src/main/jni/SlCrop.cpp.o -c /Users/jiahui/workspace/android/github/ImageSelect/library/src/main/jni/SlCrop.cpp",
5 | "file": "/Users/jiahui/workspace/android/github/ImageSelect/library/src/main/jni/SlCrop.cpp"
6 | }
7 | ]
--------------------------------------------------------------------------------
/library/.cxx/cmake/debug/armeabi-v7a/prefab_config.json:
--------------------------------------------------------------------------------
1 | {
2 | "enabled": false,
3 | "packages": []
4 | }
--------------------------------------------------------------------------------
/library/.cxx/cmake/debug/armeabi-v7a/rules.ninja:
--------------------------------------------------------------------------------
1 | # CMAKE generated file: DO NOT EDIT!
2 | # Generated by "Ninja" Generator, CMake Version 3.10
3 |
4 | # This file contains all the rules used to get the outputs files
5 | # built from the input files.
6 | # It is included in the main 'build.ninja'.
7 |
8 | # =============================================================================
9 | # Project: Project
10 | # Configuration: Debug
11 | # =============================================================================
12 | # =============================================================================
13 |
14 | #############################################
15 | # Rule for running custom commands.
16 |
17 | rule CUSTOM_COMMAND
18 | command = $COMMAND
19 | description = $DESC
20 |
21 |
22 | #############################################
23 | # Rule for compiling CXX files.
24 |
25 | rule CXX_COMPILER__SlCrop
26 | depfile = $DEP_FILE
27 | deps = gcc
28 | command = /Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ --target=armv7-none-linux-androideabi19 --gcc-toolchain=/Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64 --sysroot=/Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot $DEFINES $INCLUDES $FLAGS -MD -MT $out -MF $DEP_FILE -o $out -c $in
29 | description = Building CXX object $out
30 |
31 |
32 | #############################################
33 | # Rule for linking CXX shared library.
34 |
35 | rule CXX_SHARED_LIBRARY_LINKER__SlCrop
36 | command = $PRE_LINK && /Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ --target=armv7-none-linux-androideabi19 --gcc-toolchain=/Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64 --sysroot=/Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot -fPIC $LANGUAGE_COMPILE_FLAGS $ARCH_FLAGS $LINK_FLAGS -shared $SONAME_FLAG$SONAME -o $TARGET_FILE $in $LINK_PATH $LINK_LIBRARIES && $POST_BUILD
37 | description = Linking CXX shared library $TARGET_FILE
38 | restat = $RESTAT
39 |
40 |
41 | #############################################
42 | # Rule for re-running cmake.
43 |
44 | rule RERUN_CMAKE
45 | command = /Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/cmake -H/Users/jiahui/workspace/android/github/ImageSelect/library -B/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/debug/armeabi-v7a
46 | description = Re-running CMake...
47 | generator = 1
48 |
49 |
50 | #############################################
51 | # Rule for cleaning all built files.
52 |
53 | rule CLEAN
54 | command = /Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/ninja -t clean
55 | description = Cleaning all built files...
56 |
57 |
58 | #############################################
59 | # Rule for printing all primary targets available.
60 |
61 | rule HELP
62 | command = /Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/ninja -t targets
63 | description = All primary targets available:
64 |
65 |
--------------------------------------------------------------------------------
/library/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_C.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JackLiaoJH/ImageSelect/662d1118fcc7ed3ed784809e9b476d540d7fa496/library/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_C.bin
--------------------------------------------------------------------------------
/library/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_CXX.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JackLiaoJH/ImageSelect/662d1118fcc7ed3ed784809e9b476d540d7fa496/library/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_CXX.bin
--------------------------------------------------------------------------------
/library/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:
--------------------------------------------------------------------------------
1 | set(CMAKE_HOST_SYSTEM "Darwin-19.5.0")
2 | set(CMAKE_HOST_SYSTEM_NAME "Darwin")
3 | set(CMAKE_HOST_SYSTEM_VERSION "19.5.0")
4 | set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64")
5 |
6 | include("/Users/jiahui/Library/Android/sdk/ndk-bundle/build/cmake/android.toolchain.cmake")
7 |
8 | set(CMAKE_SYSTEM "Android-1")
9 | set(CMAKE_SYSTEM_NAME "Android")
10 | set(CMAKE_SYSTEM_VERSION "1")
11 | set(CMAKE_SYSTEM_PROCESSOR "i686")
12 |
13 | set(CMAKE_CROSSCOMPILING "TRUE")
14 |
15 | set(CMAKE_SYSTEM_LOADED 1)
16 |
--------------------------------------------------------------------------------
/library/.cxx/cmake/debug/x86/CMakeFiles/TargetDirectories.txt:
--------------------------------------------------------------------------------
1 | /Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/debug/x86/CMakeFiles/rebuild_cache.dir
2 | /Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/debug/x86/CMakeFiles/edit_cache.dir
3 | /Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/debug/x86/CMakeFiles/SlCrop.dir
4 |
--------------------------------------------------------------------------------
/library/.cxx/cmake/debug/x86/CMakeFiles/cmake.check_cache:
--------------------------------------------------------------------------------
1 | # This file is generated by cmake for dependency checking of the CMakeCache.txt file
2 |
--------------------------------------------------------------------------------
/library/.cxx/cmake/debug/x86/CMakeFiles/feature_tests.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JackLiaoJH/ImageSelect/662d1118fcc7ed3ed784809e9b476d540d7fa496/library/.cxx/cmake/debug/x86/CMakeFiles/feature_tests.bin
--------------------------------------------------------------------------------
/library/.cxx/cmake/debug/x86/CMakeFiles/feature_tests.c:
--------------------------------------------------------------------------------
1 |
2 | const char features[] = {"\n"
3 | "C_FEATURE:"
4 | #if ((__clang_major__ * 100) + __clang_minor__) >= 304
5 | "1"
6 | #else
7 | "0"
8 | #endif
9 | "c_function_prototypes\n"
10 | "C_FEATURE:"
11 | #if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
12 | "1"
13 | #else
14 | "0"
15 | #endif
16 | "c_restrict\n"
17 | "C_FEATURE:"
18 | #if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L
19 | "1"
20 | #else
21 | "0"
22 | #endif
23 | "c_static_assert\n"
24 | "C_FEATURE:"
25 | #if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
26 | "1"
27 | #else
28 | "0"
29 | #endif
30 | "c_variadic_macros\n"
31 |
32 | };
33 |
34 | int main(int argc, char** argv) { (void)argv; return features[argc]; }
35 |
--------------------------------------------------------------------------------
/library/.cxx/cmake/debug/x86/android_gradle_build.json:
--------------------------------------------------------------------------------
1 | {
2 | "stringTable": {
3 | "0": "/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/debug/x86",
4 | "1": "--target=i686-none-linux-android19 --gcc-toolchain=/Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64 --sysroot=/Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot -DSlCrop_EXPORTS -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -O0 -fno-limit-debug-info -fPIC"
5 | },
6 | "buildFiles": [
7 | "/Users/jiahui/Library/Android/sdk/ndk-bundle/build/cmake/platforms.cmake",
8 | "/Users/jiahui/Library/Android/sdk/ndk-bundle/build/cmake/android.toolchain.cmake",
9 | "/Users/jiahui/workspace/android/github/ImageSelect/library/CMakeLists.txt"
10 | ],
11 | "cleanCommands": [
12 | "/Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/ninja -C \"/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/debug/x86\" clean"
13 | ],
14 | "buildTargetsCommand": "/Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/ninja -C \"/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/debug/x86\" {LIST_OF_TARGETS_TO_BUILD}",
15 | "libraries": {
16 | "SlCrop-Debug-x86": {
17 | "buildCommand": "/Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/ninja -C \"/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/debug/x86\" SlCrop",
18 | "buildType": "debug",
19 | "toolchain": "3599106317",
20 | "abi": "x86",
21 | "artifactName": "SlCrop",
22 | "files": [
23 | {
24 | "src": "/Users/jiahui/workspace/android/github/ImageSelect/library/src/main/jni/SlCrop.cpp",
25 | "flagsOrdinal": 1,
26 | "workingDirectoryOrdinal": 0
27 | }
28 | ],
29 | "headers": [],
30 | "output": "/Users/jiahui/workspace/android/github/ImageSelect/jniLibs/x86/libSlCrop.so",
31 | "runtimeFiles": []
32 | }
33 | },
34 | "toolchains": {
35 | "3599106317": {
36 | "cppCompilerExecutable": "/Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++"
37 | }
38 | },
39 | "cFileExtensions": [],
40 | "cppFileExtensions": [
41 | "cpp"
42 | ]
43 | }
--------------------------------------------------------------------------------
/library/.cxx/cmake/debug/x86/android_gradle_build_mini.json:
--------------------------------------------------------------------------------
1 | {
2 | "buildFiles": [
3 | "/Users/jiahui/Library/Android/sdk/ndk-bundle/build/cmake/platforms.cmake",
4 | "/Users/jiahui/Library/Android/sdk/ndk-bundle/build/cmake/android.toolchain.cmake",
5 | "/Users/jiahui/workspace/android/github/ImageSelect/library/CMakeLists.txt"
6 | ],
7 | "cleanCommands": [
8 | "/Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/ninja -C \"/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/debug/x86\" clean"
9 | ],
10 | "buildTargetsCommand": "/Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/ninja -C \"/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/debug/x86\" {LIST_OF_TARGETS_TO_BUILD}",
11 | "libraries": {
12 | "SlCrop-Debug-x86": {
13 | "artifactName": "SlCrop",
14 | "buildCommand": "/Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/ninja -C \"/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/debug/x86\" SlCrop",
15 | "abi": "x86",
16 | "output": "/Users/jiahui/workspace/android/github/ImageSelect/jniLibs/x86/libSlCrop.so",
17 | "runtimeFiles": []
18 | }
19 | }
20 | }
--------------------------------------------------------------------------------
/library/.cxx/cmake/debug/x86/build_command.txt:
--------------------------------------------------------------------------------
1 | Executable : /Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/cmake
2 | arguments :
3 | -H/Users/jiahui/workspace/android/github/ImageSelect/library
4 | -DCMAKE_FIND_ROOT_PATH=/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/debug/prefab/x86/prefab
5 | -DCMAKE_BUILD_TYPE=Debug
6 | -DCMAKE_TOOLCHAIN_FILE=/Users/jiahui/Library/Android/sdk/ndk-bundle/build/cmake/android.toolchain.cmake
7 | -DANDROID_ABI=x86
8 | -DANDROID_NDK=/Users/jiahui/Library/Android/sdk/ndk-bundle
9 | -DANDROID_PLATFORM=android-19
10 | -DCMAKE_ANDROID_ARCH_ABI=x86
11 | -DCMAKE_ANDROID_NDK=/Users/jiahui/Library/Android/sdk/ndk-bundle
12 | -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
13 | -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/Users/jiahui/workspace/android/github/ImageSelect/library/build/intermediates/cmake/debug/obj/x86
14 | -DCMAKE_MAKE_PROGRAM=/Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/ninja
15 | -DCMAKE_SYSTEM_NAME=Android
16 | -DCMAKE_SYSTEM_VERSION=19
17 | -B/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/debug/x86
18 | -GNinja
19 | jvmArgs :
20 |
21 | Build command args:
22 |
--------------------------------------------------------------------------------
/library/.cxx/cmake/debug/x86/build_output.txt:
--------------------------------------------------------------------------------
1 | Check for working C compiler: /Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang
2 | Check for working C compiler: /Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang -- works
3 | Detecting C compiler ABI info
4 | Detecting C compiler ABI info - done
5 | Detecting C compile features
6 | Detecting C compile features - done
7 | Check for working CXX compiler: /Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++
8 | Check for working CXX compiler: /Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ -- works
9 | Detecting CXX compiler ABI info
10 | Detecting CXX compiler ABI info - done
11 | Detecting CXX compile features
12 | Detecting CXX compile features - done
13 | aaaaa,
14 | Configuring done
--------------------------------------------------------------------------------
/library/.cxx/cmake/debug/x86/cmake_install.cmake:
--------------------------------------------------------------------------------
1 | # Install script for directory: /Users/jiahui/workspace/android/github/ImageSelect/library
2 |
3 | # Set the install prefix
4 | if(NOT DEFINED CMAKE_INSTALL_PREFIX)
5 | set(CMAKE_INSTALL_PREFIX "/usr/local")
6 | endif()
7 | string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
8 |
9 | # Set the install configuration name.
10 | if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
11 | if(BUILD_TYPE)
12 | string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
13 | CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
14 | else()
15 | set(CMAKE_INSTALL_CONFIG_NAME "Debug")
16 | endif()
17 | message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
18 | endif()
19 |
20 | # Set the component getting installed.
21 | if(NOT CMAKE_INSTALL_COMPONENT)
22 | if(COMPONENT)
23 | message(STATUS "Install component: \"${COMPONENT}\"")
24 | set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
25 | else()
26 | set(CMAKE_INSTALL_COMPONENT)
27 | endif()
28 | endif()
29 |
30 | # Install shared libraries without execute permission?
31 | if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
32 | set(CMAKE_INSTALL_SO_NO_EXE "0")
33 | endif()
34 |
35 | # Is this installation the result of a crosscompile?
36 | if(NOT DEFINED CMAKE_CROSSCOMPILING)
37 | set(CMAKE_CROSSCOMPILING "TRUE")
38 | endif()
39 |
40 | if(CMAKE_INSTALL_COMPONENT)
41 | set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt")
42 | else()
43 | set(CMAKE_INSTALL_MANIFEST "install_manifest.txt")
44 | endif()
45 |
46 | string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT
47 | "${CMAKE_INSTALL_MANIFEST_FILES}")
48 | file(WRITE "/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/debug/x86/${CMAKE_INSTALL_MANIFEST}"
49 | "${CMAKE_INSTALL_MANIFEST_CONTENT}")
50 |
--------------------------------------------------------------------------------
/library/.cxx/cmake/debug/x86/compile_commands.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "directory": "/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/debug/x86",
4 | "command": "/Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ --target=i686-none-linux-android19 --gcc-toolchain=/Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64 --sysroot=/Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot -DSlCrop_EXPORTS -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -O0 -fno-limit-debug-info -fPIC -o CMakeFiles/SlCrop.dir/src/main/jni/SlCrop.cpp.o -c /Users/jiahui/workspace/android/github/ImageSelect/library/src/main/jni/SlCrop.cpp",
5 | "file": "/Users/jiahui/workspace/android/github/ImageSelect/library/src/main/jni/SlCrop.cpp"
6 | }
7 | ]
--------------------------------------------------------------------------------
/library/.cxx/cmake/debug/x86/json_generation_record.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "level": "INFO",
4 | "message": "Start JSON generation. Platform version: 19 min SDK version: x86",
5 | "file": "/Users/jiahui/workspace/android/github/ImageSelect/library/CMakeLists.txt",
6 | "tag": "debug|x86"
7 | },
8 | {
9 | "level": "INFO",
10 | "message": "No CMake version was specified in build.gradle. Using default version 3.10.2.",
11 | "file": "/Users/jiahui/workspace/android/github/ImageSelect/library/CMakeLists.txt",
12 | "tag": "debug|x86"
13 | },
14 | {
15 | "level": "INFO",
16 | "message": "Trying to locate CMake in local SDK repository.",
17 | "file": "/Users/jiahui/workspace/android/github/ImageSelect/library/CMakeLists.txt",
18 | "tag": "debug|x86"
19 | },
20 | {
21 | "level": "INFO",
22 | "message": "- CMake found in SDK at \u0027/Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404\u0027 had version \u00273.10.2\u0027",
23 | "file": "/Users/jiahui/workspace/android/github/ImageSelect/library/CMakeLists.txt",
24 | "tag": "debug|x86"
25 | },
26 | {
27 | "level": "INFO",
28 | "message": "CMake \u00273.6.0\u0027 found in SDK did not match requested version \u00273.10.2\u0027.",
29 | "file": "/Users/jiahui/workspace/android/github/ImageSelect/library/CMakeLists.txt",
30 | "tag": "debug|x86"
31 | },
32 | {
33 | "level": "INFO",
34 | "message": "JSON \u0027/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/debug/x86/android_gradle_build.json\u0027 was up-to-date",
35 | "file": "/Users/jiahui/workspace/android/github/ImageSelect/library/CMakeLists.txt",
36 | "tag": "debug|x86"
37 | },
38 | {
39 | "level": "INFO",
40 | "message": "JSON generation completed without problems",
41 | "file": "/Users/jiahui/workspace/android/github/ImageSelect/library/CMakeLists.txt",
42 | "tag": "debug|x86"
43 | }
44 | ]
--------------------------------------------------------------------------------
/library/.cxx/cmake/debug/x86/prefab_config.json:
--------------------------------------------------------------------------------
1 | {
2 | "enabled": false,
3 | "packages": []
4 | }
--------------------------------------------------------------------------------
/library/.cxx/cmake/debug/x86/rules.ninja:
--------------------------------------------------------------------------------
1 | # CMAKE generated file: DO NOT EDIT!
2 | # Generated by "Ninja" Generator, CMake Version 3.10
3 |
4 | # This file contains all the rules used to get the outputs files
5 | # built from the input files.
6 | # It is included in the main 'build.ninja'.
7 |
8 | # =============================================================================
9 | # Project: Project
10 | # Configuration: Debug
11 | # =============================================================================
12 | # =============================================================================
13 |
14 | #############################################
15 | # Rule for running custom commands.
16 |
17 | rule CUSTOM_COMMAND
18 | command = $COMMAND
19 | description = $DESC
20 |
21 |
22 | #############################################
23 | # Rule for compiling CXX files.
24 |
25 | rule CXX_COMPILER__SlCrop
26 | depfile = $DEP_FILE
27 | deps = gcc
28 | command = /Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ --target=i686-none-linux-android19 --gcc-toolchain=/Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64 --sysroot=/Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot $DEFINES $INCLUDES $FLAGS -MD -MT $out -MF $DEP_FILE -o $out -c $in
29 | description = Building CXX object $out
30 |
31 |
32 | #############################################
33 | # Rule for linking CXX shared library.
34 |
35 | rule CXX_SHARED_LIBRARY_LINKER__SlCrop
36 | command = $PRE_LINK && /Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ --target=i686-none-linux-android19 --gcc-toolchain=/Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64 --sysroot=/Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot -fPIC $LANGUAGE_COMPILE_FLAGS $ARCH_FLAGS $LINK_FLAGS -shared $SONAME_FLAG$SONAME -o $TARGET_FILE $in $LINK_PATH $LINK_LIBRARIES && $POST_BUILD
37 | description = Linking CXX shared library $TARGET_FILE
38 | restat = $RESTAT
39 |
40 |
41 | #############################################
42 | # Rule for re-running cmake.
43 |
44 | rule RERUN_CMAKE
45 | command = /Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/cmake -H/Users/jiahui/workspace/android/github/ImageSelect/library -B/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/debug/x86
46 | description = Re-running CMake...
47 | generator = 1
48 |
49 |
50 | #############################################
51 | # Rule for cleaning all built files.
52 |
53 | rule CLEAN
54 | command = /Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/ninja -t clean
55 | description = Cleaning all built files...
56 |
57 |
58 | #############################################
59 | # Rule for printing all primary targets available.
60 |
61 | rule HELP
62 | command = /Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/ninja -t targets
63 | description = All primary targets available:
64 |
65 |
--------------------------------------------------------------------------------
/library/.cxx/cmake/release/arm64-v8a/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_C.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JackLiaoJH/ImageSelect/662d1118fcc7ed3ed784809e9b476d540d7fa496/library/.cxx/cmake/release/arm64-v8a/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_C.bin
--------------------------------------------------------------------------------
/library/.cxx/cmake/release/arm64-v8a/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_CXX.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JackLiaoJH/ImageSelect/662d1118fcc7ed3ed784809e9b476d540d7fa496/library/.cxx/cmake/release/arm64-v8a/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_CXX.bin
--------------------------------------------------------------------------------
/library/.cxx/cmake/release/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:
--------------------------------------------------------------------------------
1 | set(CMAKE_HOST_SYSTEM "Darwin-19.5.0")
2 | set(CMAKE_HOST_SYSTEM_NAME "Darwin")
3 | set(CMAKE_HOST_SYSTEM_VERSION "19.5.0")
4 | set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64")
5 |
6 | include("/Users/jiahui/Library/Android/sdk/ndk-bundle/build/cmake/android.toolchain.cmake")
7 |
8 | set(CMAKE_SYSTEM "Android-1")
9 | set(CMAKE_SYSTEM_NAME "Android")
10 | set(CMAKE_SYSTEM_VERSION "1")
11 | set(CMAKE_SYSTEM_PROCESSOR "aarch64")
12 |
13 | set(CMAKE_CROSSCOMPILING "TRUE")
14 |
15 | set(CMAKE_SYSTEM_LOADED 1)
16 |
--------------------------------------------------------------------------------
/library/.cxx/cmake/release/arm64-v8a/CMakeFiles/TargetDirectories.txt:
--------------------------------------------------------------------------------
1 | /Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/release/arm64-v8a/CMakeFiles/rebuild_cache.dir
2 | /Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/release/arm64-v8a/CMakeFiles/edit_cache.dir
3 | /Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/release/arm64-v8a/CMakeFiles/SlCrop.dir
4 |
--------------------------------------------------------------------------------
/library/.cxx/cmake/release/arm64-v8a/CMakeFiles/cmake.check_cache:
--------------------------------------------------------------------------------
1 | # This file is generated by cmake for dependency checking of the CMakeCache.txt file
2 |
--------------------------------------------------------------------------------
/library/.cxx/cmake/release/arm64-v8a/CMakeFiles/feature_tests.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JackLiaoJH/ImageSelect/662d1118fcc7ed3ed784809e9b476d540d7fa496/library/.cxx/cmake/release/arm64-v8a/CMakeFiles/feature_tests.bin
--------------------------------------------------------------------------------
/library/.cxx/cmake/release/arm64-v8a/CMakeFiles/feature_tests.c:
--------------------------------------------------------------------------------
1 |
2 | const char features[] = {"\n"
3 | "C_FEATURE:"
4 | #if ((__clang_major__ * 100) + __clang_minor__) >= 304
5 | "1"
6 | #else
7 | "0"
8 | #endif
9 | "c_function_prototypes\n"
10 | "C_FEATURE:"
11 | #if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
12 | "1"
13 | #else
14 | "0"
15 | #endif
16 | "c_restrict\n"
17 | "C_FEATURE:"
18 | #if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L
19 | "1"
20 | #else
21 | "0"
22 | #endif
23 | "c_static_assert\n"
24 | "C_FEATURE:"
25 | #if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
26 | "1"
27 | #else
28 | "0"
29 | #endif
30 | "c_variadic_macros\n"
31 |
32 | };
33 |
34 | int main(int argc, char** argv) { (void)argv; return features[argc]; }
35 |
--------------------------------------------------------------------------------
/library/.cxx/cmake/release/arm64-v8a/android_gradle_build.json:
--------------------------------------------------------------------------------
1 | {
2 | "stringTable": {
3 | "0": "/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/release/arm64-v8a",
4 | "1": "--target=aarch64-none-linux-android21 --gcc-toolchain=/Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64 --sysroot=/Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot -DSlCrop_EXPORTS -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -O2 -DNDEBUG -fPIC"
5 | },
6 | "buildFiles": [
7 | "/Users/jiahui/Library/Android/sdk/ndk-bundle/build/cmake/platforms.cmake",
8 | "/Users/jiahui/Library/Android/sdk/ndk-bundle/build/cmake/android.toolchain.cmake",
9 | "/Users/jiahui/workspace/android/github/ImageSelect/library/CMakeLists.txt"
10 | ],
11 | "cleanCommands": [
12 | "/Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/ninja -C \"/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/release/arm64-v8a\" clean"
13 | ],
14 | "buildTargetsCommand": "/Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/ninja -C \"/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/release/arm64-v8a\" {LIST_OF_TARGETS_TO_BUILD}",
15 | "libraries": {
16 | "SlCrop-Release-arm64-v8a": {
17 | "buildCommand": "/Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/ninja -C \"/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/release/arm64-v8a\" SlCrop",
18 | "buildType": "release",
19 | "toolchain": "3599106317",
20 | "abi": "arm64-v8a",
21 | "artifactName": "SlCrop",
22 | "files": [
23 | {
24 | "src": "/Users/jiahui/workspace/android/github/ImageSelect/library/src/main/jni/SlCrop.cpp",
25 | "flagsOrdinal": 1,
26 | "workingDirectoryOrdinal": 0
27 | }
28 | ],
29 | "headers": [],
30 | "output": "/Users/jiahui/workspace/android/github/ImageSelect/jniLibs/arm64-v8a/libSlCrop.so",
31 | "runtimeFiles": []
32 | }
33 | },
34 | "toolchains": {
35 | "3599106317": {
36 | "cppCompilerExecutable": "/Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++"
37 | }
38 | },
39 | "cFileExtensions": [],
40 | "cppFileExtensions": [
41 | "cpp"
42 | ]
43 | }
--------------------------------------------------------------------------------
/library/.cxx/cmake/release/arm64-v8a/android_gradle_build_mini.json:
--------------------------------------------------------------------------------
1 | {
2 | "buildFiles": [
3 | "/Users/jiahui/Library/Android/sdk/ndk-bundle/build/cmake/platforms.cmake",
4 | "/Users/jiahui/Library/Android/sdk/ndk-bundle/build/cmake/android.toolchain.cmake",
5 | "/Users/jiahui/workspace/android/github/ImageSelect/library/CMakeLists.txt"
6 | ],
7 | "cleanCommands": [
8 | "/Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/ninja -C \"/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/release/arm64-v8a\" clean"
9 | ],
10 | "buildTargetsCommand": "/Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/ninja -C \"/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/release/arm64-v8a\" {LIST_OF_TARGETS_TO_BUILD}",
11 | "libraries": {
12 | "SlCrop-Release-arm64-v8a": {
13 | "artifactName": "SlCrop",
14 | "buildCommand": "/Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/ninja -C \"/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/release/arm64-v8a\" SlCrop",
15 | "abi": "arm64-v8a",
16 | "output": "/Users/jiahui/workspace/android/github/ImageSelect/jniLibs/arm64-v8a/libSlCrop.so",
17 | "runtimeFiles": []
18 | }
19 | }
20 | }
--------------------------------------------------------------------------------
/library/.cxx/cmake/release/arm64-v8a/build_command.txt:
--------------------------------------------------------------------------------
1 | Executable : /Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/cmake
2 | arguments :
3 | -H/Users/jiahui/workspace/android/github/ImageSelect/library
4 | -DCMAKE_FIND_ROOT_PATH=/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/release/prefab/arm64-v8a/prefab
5 | -DCMAKE_BUILD_TYPE=Release
6 | -DCMAKE_TOOLCHAIN_FILE=/Users/jiahui/Library/Android/sdk/ndk-bundle/build/cmake/android.toolchain.cmake
7 | -DANDROID_ABI=arm64-v8a
8 | -DANDROID_NDK=/Users/jiahui/Library/Android/sdk/ndk-bundle
9 | -DANDROID_PLATFORM=android-19
10 | -DCMAKE_ANDROID_ARCH_ABI=arm64-v8a
11 | -DCMAKE_ANDROID_NDK=/Users/jiahui/Library/Android/sdk/ndk-bundle
12 | -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
13 | -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/Users/jiahui/workspace/android/github/ImageSelect/library/build/intermediates/cmake/release/obj/arm64-v8a
14 | -DCMAKE_MAKE_PROGRAM=/Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/ninja
15 | -DCMAKE_SYSTEM_NAME=Android
16 | -DCMAKE_SYSTEM_VERSION=19
17 | -B/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/release/arm64-v8a
18 | -GNinja
19 | jvmArgs :
20 |
21 | Build command args:
22 |
--------------------------------------------------------------------------------
/library/.cxx/cmake/release/arm64-v8a/build_output.txt:
--------------------------------------------------------------------------------
1 | aaaaa,
2 | Configuring done
--------------------------------------------------------------------------------
/library/.cxx/cmake/release/arm64-v8a/cmake_install.cmake:
--------------------------------------------------------------------------------
1 | # Install script for directory: /Users/jiahui/workspace/android/github/ImageSelect/library
2 |
3 | # Set the install prefix
4 | if(NOT DEFINED CMAKE_INSTALL_PREFIX)
5 | set(CMAKE_INSTALL_PREFIX "/usr/local")
6 | endif()
7 | string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
8 |
9 | # Set the install configuration name.
10 | if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
11 | if(BUILD_TYPE)
12 | string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
13 | CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
14 | else()
15 | set(CMAKE_INSTALL_CONFIG_NAME "Release")
16 | endif()
17 | message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
18 | endif()
19 |
20 | # Set the component getting installed.
21 | if(NOT CMAKE_INSTALL_COMPONENT)
22 | if(COMPONENT)
23 | message(STATUS "Install component: \"${COMPONENT}\"")
24 | set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
25 | else()
26 | set(CMAKE_INSTALL_COMPONENT)
27 | endif()
28 | endif()
29 |
30 | # Install shared libraries without execute permission?
31 | if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
32 | set(CMAKE_INSTALL_SO_NO_EXE "0")
33 | endif()
34 |
35 | # Is this installation the result of a crosscompile?
36 | if(NOT DEFINED CMAKE_CROSSCOMPILING)
37 | set(CMAKE_CROSSCOMPILING "TRUE")
38 | endif()
39 |
40 | if(CMAKE_INSTALL_COMPONENT)
41 | set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt")
42 | else()
43 | set(CMAKE_INSTALL_MANIFEST "install_manifest.txt")
44 | endif()
45 |
46 | string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT
47 | "${CMAKE_INSTALL_MANIFEST_FILES}")
48 | file(WRITE "/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/release/arm64-v8a/${CMAKE_INSTALL_MANIFEST}"
49 | "${CMAKE_INSTALL_MANIFEST_CONTENT}")
50 |
--------------------------------------------------------------------------------
/library/.cxx/cmake/release/arm64-v8a/compile_commands.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "directory": "/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/release/arm64-v8a",
4 | "command": "/Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ --target=aarch64-none-linux-android21 --gcc-toolchain=/Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64 --sysroot=/Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot -DSlCrop_EXPORTS -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -O2 -DNDEBUG -fPIC -o CMakeFiles/SlCrop.dir/src/main/jni/SlCrop.cpp.o -c /Users/jiahui/workspace/android/github/ImageSelect/library/src/main/jni/SlCrop.cpp",
5 | "file": "/Users/jiahui/workspace/android/github/ImageSelect/library/src/main/jni/SlCrop.cpp"
6 | }
7 | ]
--------------------------------------------------------------------------------
/library/.cxx/cmake/release/arm64-v8a/prefab_config.json:
--------------------------------------------------------------------------------
1 | {
2 | "enabled": false,
3 | "packages": []
4 | }
--------------------------------------------------------------------------------
/library/.cxx/cmake/release/armeabi-v7a/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_C.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JackLiaoJH/ImageSelect/662d1118fcc7ed3ed784809e9b476d540d7fa496/library/.cxx/cmake/release/armeabi-v7a/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_C.bin
--------------------------------------------------------------------------------
/library/.cxx/cmake/release/armeabi-v7a/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_CXX.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JackLiaoJH/ImageSelect/662d1118fcc7ed3ed784809e9b476d540d7fa496/library/.cxx/cmake/release/armeabi-v7a/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_CXX.bin
--------------------------------------------------------------------------------
/library/.cxx/cmake/release/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:
--------------------------------------------------------------------------------
1 | set(CMAKE_HOST_SYSTEM "Darwin-19.5.0")
2 | set(CMAKE_HOST_SYSTEM_NAME "Darwin")
3 | set(CMAKE_HOST_SYSTEM_VERSION "19.5.0")
4 | set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64")
5 |
6 | include("/Users/jiahui/Library/Android/sdk/ndk-bundle/build/cmake/android.toolchain.cmake")
7 |
8 | set(CMAKE_SYSTEM "Android-1")
9 | set(CMAKE_SYSTEM_NAME "Android")
10 | set(CMAKE_SYSTEM_VERSION "1")
11 | set(CMAKE_SYSTEM_PROCESSOR "armv7-a")
12 |
13 | set(CMAKE_CROSSCOMPILING "TRUE")
14 |
15 | set(CMAKE_SYSTEM_LOADED 1)
16 |
--------------------------------------------------------------------------------
/library/.cxx/cmake/release/armeabi-v7a/CMakeFiles/TargetDirectories.txt:
--------------------------------------------------------------------------------
1 | /Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/release/armeabi-v7a/CMakeFiles/rebuild_cache.dir
2 | /Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/release/armeabi-v7a/CMakeFiles/edit_cache.dir
3 | /Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/release/armeabi-v7a/CMakeFiles/SlCrop.dir
4 |
--------------------------------------------------------------------------------
/library/.cxx/cmake/release/armeabi-v7a/CMakeFiles/cmake.check_cache:
--------------------------------------------------------------------------------
1 | # This file is generated by cmake for dependency checking of the CMakeCache.txt file
2 |
--------------------------------------------------------------------------------
/library/.cxx/cmake/release/armeabi-v7a/CMakeFiles/feature_tests.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JackLiaoJH/ImageSelect/662d1118fcc7ed3ed784809e9b476d540d7fa496/library/.cxx/cmake/release/armeabi-v7a/CMakeFiles/feature_tests.bin
--------------------------------------------------------------------------------
/library/.cxx/cmake/release/armeabi-v7a/CMakeFiles/feature_tests.c:
--------------------------------------------------------------------------------
1 |
2 | const char features[] = {"\n"
3 | "C_FEATURE:"
4 | #if ((__clang_major__ * 100) + __clang_minor__) >= 304
5 | "1"
6 | #else
7 | "0"
8 | #endif
9 | "c_function_prototypes\n"
10 | "C_FEATURE:"
11 | #if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
12 | "1"
13 | #else
14 | "0"
15 | #endif
16 | "c_restrict\n"
17 | "C_FEATURE:"
18 | #if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L
19 | "1"
20 | #else
21 | "0"
22 | #endif
23 | "c_static_assert\n"
24 | "C_FEATURE:"
25 | #if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
26 | "1"
27 | #else
28 | "0"
29 | #endif
30 | "c_variadic_macros\n"
31 |
32 | };
33 |
34 | int main(int argc, char** argv) { (void)argv; return features[argc]; }
35 |
--------------------------------------------------------------------------------
/library/.cxx/cmake/release/armeabi-v7a/android_gradle_build.json:
--------------------------------------------------------------------------------
1 | {
2 | "stringTable": {
3 | "0": "/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/release/armeabi-v7a",
4 | "1": "--target=armv7-none-linux-androideabi19 --gcc-toolchain=/Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64 --sysroot=/Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot -DSlCrop_EXPORTS -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -march=armv7-a -mthumb -Wformat -Werror=format-security -Oz -DNDEBUG -fPIC"
5 | },
6 | "buildFiles": [
7 | "/Users/jiahui/Library/Android/sdk/ndk-bundle/build/cmake/platforms.cmake",
8 | "/Users/jiahui/Library/Android/sdk/ndk-bundle/build/cmake/android.toolchain.cmake",
9 | "/Users/jiahui/workspace/android/github/ImageSelect/library/CMakeLists.txt"
10 | ],
11 | "cleanCommands": [
12 | "/Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/ninja -C \"/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/release/armeabi-v7a\" clean"
13 | ],
14 | "buildTargetsCommand": "/Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/ninja -C \"/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/release/armeabi-v7a\" {LIST_OF_TARGETS_TO_BUILD}",
15 | "libraries": {
16 | "SlCrop-Release-armeabi-v7a": {
17 | "buildCommand": "/Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/ninja -C \"/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/release/armeabi-v7a\" SlCrop",
18 | "buildType": "release",
19 | "toolchain": "3599106317",
20 | "abi": "armeabi-v7a",
21 | "artifactName": "SlCrop",
22 | "files": [
23 | {
24 | "src": "/Users/jiahui/workspace/android/github/ImageSelect/library/src/main/jni/SlCrop.cpp",
25 | "flagsOrdinal": 1,
26 | "workingDirectoryOrdinal": 0
27 | }
28 | ],
29 | "headers": [],
30 | "output": "/Users/jiahui/workspace/android/github/ImageSelect/jniLibs/armeabi-v7a/libSlCrop.so",
31 | "runtimeFiles": []
32 | }
33 | },
34 | "toolchains": {
35 | "3599106317": {
36 | "cppCompilerExecutable": "/Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++"
37 | }
38 | },
39 | "cFileExtensions": [],
40 | "cppFileExtensions": [
41 | "cpp"
42 | ]
43 | }
--------------------------------------------------------------------------------
/library/.cxx/cmake/release/armeabi-v7a/android_gradle_build_mini.json:
--------------------------------------------------------------------------------
1 | {
2 | "buildFiles": [
3 | "/Users/jiahui/Library/Android/sdk/ndk-bundle/build/cmake/platforms.cmake",
4 | "/Users/jiahui/Library/Android/sdk/ndk-bundle/build/cmake/android.toolchain.cmake",
5 | "/Users/jiahui/workspace/android/github/ImageSelect/library/CMakeLists.txt"
6 | ],
7 | "cleanCommands": [
8 | "/Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/ninja -C \"/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/release/armeabi-v7a\" clean"
9 | ],
10 | "buildTargetsCommand": "/Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/ninja -C \"/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/release/armeabi-v7a\" {LIST_OF_TARGETS_TO_BUILD}",
11 | "libraries": {
12 | "SlCrop-Release-armeabi-v7a": {
13 | "artifactName": "SlCrop",
14 | "buildCommand": "/Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/ninja -C \"/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/release/armeabi-v7a\" SlCrop",
15 | "abi": "armeabi-v7a",
16 | "output": "/Users/jiahui/workspace/android/github/ImageSelect/jniLibs/armeabi-v7a/libSlCrop.so",
17 | "runtimeFiles": []
18 | }
19 | }
20 | }
--------------------------------------------------------------------------------
/library/.cxx/cmake/release/armeabi-v7a/build_command.txt:
--------------------------------------------------------------------------------
1 | Executable : /Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/cmake
2 | arguments :
3 | -H/Users/jiahui/workspace/android/github/ImageSelect/library
4 | -DCMAKE_FIND_ROOT_PATH=/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/release/prefab/armeabi-v7a/prefab
5 | -DCMAKE_BUILD_TYPE=Release
6 | -DCMAKE_TOOLCHAIN_FILE=/Users/jiahui/Library/Android/sdk/ndk-bundle/build/cmake/android.toolchain.cmake
7 | -DANDROID_ABI=armeabi-v7a
8 | -DANDROID_NDK=/Users/jiahui/Library/Android/sdk/ndk-bundle
9 | -DANDROID_PLATFORM=android-19
10 | -DCMAKE_ANDROID_ARCH_ABI=armeabi-v7a
11 | -DCMAKE_ANDROID_NDK=/Users/jiahui/Library/Android/sdk/ndk-bundle
12 | -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
13 | -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/Users/jiahui/workspace/android/github/ImageSelect/library/build/intermediates/cmake/release/obj/armeabi-v7a
14 | -DCMAKE_MAKE_PROGRAM=/Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/ninja
15 | -DCMAKE_SYSTEM_NAME=Android
16 | -DCMAKE_SYSTEM_VERSION=19
17 | -B/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/release/armeabi-v7a
18 | -GNinja
19 | jvmArgs :
20 |
21 | Build command args:
22 |
--------------------------------------------------------------------------------
/library/.cxx/cmake/release/armeabi-v7a/build_output.txt:
--------------------------------------------------------------------------------
1 | aaaaa,
2 | Configuring done
--------------------------------------------------------------------------------
/library/.cxx/cmake/release/armeabi-v7a/cmake_install.cmake:
--------------------------------------------------------------------------------
1 | # Install script for directory: /Users/jiahui/workspace/android/github/ImageSelect/library
2 |
3 | # Set the install prefix
4 | if(NOT DEFINED CMAKE_INSTALL_PREFIX)
5 | set(CMAKE_INSTALL_PREFIX "/usr/local")
6 | endif()
7 | string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
8 |
9 | # Set the install configuration name.
10 | if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
11 | if(BUILD_TYPE)
12 | string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
13 | CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
14 | else()
15 | set(CMAKE_INSTALL_CONFIG_NAME "Release")
16 | endif()
17 | message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
18 | endif()
19 |
20 | # Set the component getting installed.
21 | if(NOT CMAKE_INSTALL_COMPONENT)
22 | if(COMPONENT)
23 | message(STATUS "Install component: \"${COMPONENT}\"")
24 | set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
25 | else()
26 | set(CMAKE_INSTALL_COMPONENT)
27 | endif()
28 | endif()
29 |
30 | # Install shared libraries without execute permission?
31 | if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
32 | set(CMAKE_INSTALL_SO_NO_EXE "0")
33 | endif()
34 |
35 | # Is this installation the result of a crosscompile?
36 | if(NOT DEFINED CMAKE_CROSSCOMPILING)
37 | set(CMAKE_CROSSCOMPILING "TRUE")
38 | endif()
39 |
40 | if(CMAKE_INSTALL_COMPONENT)
41 | set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt")
42 | else()
43 | set(CMAKE_INSTALL_MANIFEST "install_manifest.txt")
44 | endif()
45 |
46 | string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT
47 | "${CMAKE_INSTALL_MANIFEST_FILES}")
48 | file(WRITE "/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/release/armeabi-v7a/${CMAKE_INSTALL_MANIFEST}"
49 | "${CMAKE_INSTALL_MANIFEST_CONTENT}")
50 |
--------------------------------------------------------------------------------
/library/.cxx/cmake/release/armeabi-v7a/compile_commands.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "directory": "/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/release/armeabi-v7a",
4 | "command": "/Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ --target=armv7-none-linux-androideabi19 --gcc-toolchain=/Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64 --sysroot=/Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot -DSlCrop_EXPORTS -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -march=armv7-a -mthumb -Wformat -Werror=format-security -Oz -DNDEBUG -fPIC -o CMakeFiles/SlCrop.dir/src/main/jni/SlCrop.cpp.o -c /Users/jiahui/workspace/android/github/ImageSelect/library/src/main/jni/SlCrop.cpp",
5 | "file": "/Users/jiahui/workspace/android/github/ImageSelect/library/src/main/jni/SlCrop.cpp"
6 | }
7 | ]
--------------------------------------------------------------------------------
/library/.cxx/cmake/release/armeabi-v7a/prefab_config.json:
--------------------------------------------------------------------------------
1 | {
2 | "enabled": false,
3 | "packages": []
4 | }
--------------------------------------------------------------------------------
/library/.cxx/cmake/release/x86/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_C.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JackLiaoJH/ImageSelect/662d1118fcc7ed3ed784809e9b476d540d7fa496/library/.cxx/cmake/release/x86/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_C.bin
--------------------------------------------------------------------------------
/library/.cxx/cmake/release/x86/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_CXX.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JackLiaoJH/ImageSelect/662d1118fcc7ed3ed784809e9b476d540d7fa496/library/.cxx/cmake/release/x86/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_CXX.bin
--------------------------------------------------------------------------------
/library/.cxx/cmake/release/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:
--------------------------------------------------------------------------------
1 | set(CMAKE_HOST_SYSTEM "Darwin-19.5.0")
2 | set(CMAKE_HOST_SYSTEM_NAME "Darwin")
3 | set(CMAKE_HOST_SYSTEM_VERSION "19.5.0")
4 | set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64")
5 |
6 | include("/Users/jiahui/Library/Android/sdk/ndk-bundle/build/cmake/android.toolchain.cmake")
7 |
8 | set(CMAKE_SYSTEM "Android-1")
9 | set(CMAKE_SYSTEM_NAME "Android")
10 | set(CMAKE_SYSTEM_VERSION "1")
11 | set(CMAKE_SYSTEM_PROCESSOR "i686")
12 |
13 | set(CMAKE_CROSSCOMPILING "TRUE")
14 |
15 | set(CMAKE_SYSTEM_LOADED 1)
16 |
--------------------------------------------------------------------------------
/library/.cxx/cmake/release/x86/CMakeFiles/TargetDirectories.txt:
--------------------------------------------------------------------------------
1 | /Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/release/x86/CMakeFiles/rebuild_cache.dir
2 | /Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/release/x86/CMakeFiles/edit_cache.dir
3 | /Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/release/x86/CMakeFiles/SlCrop.dir
4 |
--------------------------------------------------------------------------------
/library/.cxx/cmake/release/x86/CMakeFiles/cmake.check_cache:
--------------------------------------------------------------------------------
1 | # This file is generated by cmake for dependency checking of the CMakeCache.txt file
2 |
--------------------------------------------------------------------------------
/library/.cxx/cmake/release/x86/CMakeFiles/feature_tests.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JackLiaoJH/ImageSelect/662d1118fcc7ed3ed784809e9b476d540d7fa496/library/.cxx/cmake/release/x86/CMakeFiles/feature_tests.bin
--------------------------------------------------------------------------------
/library/.cxx/cmake/release/x86/CMakeFiles/feature_tests.c:
--------------------------------------------------------------------------------
1 |
2 | const char features[] = {"\n"
3 | "C_FEATURE:"
4 | #if ((__clang_major__ * 100) + __clang_minor__) >= 304
5 | "1"
6 | #else
7 | "0"
8 | #endif
9 | "c_function_prototypes\n"
10 | "C_FEATURE:"
11 | #if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
12 | "1"
13 | #else
14 | "0"
15 | #endif
16 | "c_restrict\n"
17 | "C_FEATURE:"
18 | #if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L
19 | "1"
20 | #else
21 | "0"
22 | #endif
23 | "c_static_assert\n"
24 | "C_FEATURE:"
25 | #if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
26 | "1"
27 | #else
28 | "0"
29 | #endif
30 | "c_variadic_macros\n"
31 |
32 | };
33 |
34 | int main(int argc, char** argv) { (void)argv; return features[argc]; }
35 |
--------------------------------------------------------------------------------
/library/.cxx/cmake/release/x86/android_gradle_build.json:
--------------------------------------------------------------------------------
1 | {
2 | "stringTable": {
3 | "0": "/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/release/x86",
4 | "1": "--target=i686-none-linux-android19 --gcc-toolchain=/Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64 --sysroot=/Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot -DSlCrop_EXPORTS -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -O2 -DNDEBUG -fPIC"
5 | },
6 | "buildFiles": [
7 | "/Users/jiahui/Library/Android/sdk/ndk-bundle/build/cmake/platforms.cmake",
8 | "/Users/jiahui/Library/Android/sdk/ndk-bundle/build/cmake/android.toolchain.cmake",
9 | "/Users/jiahui/workspace/android/github/ImageSelect/library/CMakeLists.txt"
10 | ],
11 | "cleanCommands": [
12 | "/Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/ninja -C \"/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/release/x86\" clean"
13 | ],
14 | "buildTargetsCommand": "/Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/ninja -C \"/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/release/x86\" {LIST_OF_TARGETS_TO_BUILD}",
15 | "libraries": {
16 | "SlCrop-Release-x86": {
17 | "buildCommand": "/Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/ninja -C \"/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/release/x86\" SlCrop",
18 | "buildType": "release",
19 | "toolchain": "3599106317",
20 | "abi": "x86",
21 | "artifactName": "SlCrop",
22 | "files": [
23 | {
24 | "src": "/Users/jiahui/workspace/android/github/ImageSelect/library/src/main/jni/SlCrop.cpp",
25 | "flagsOrdinal": 1,
26 | "workingDirectoryOrdinal": 0
27 | }
28 | ],
29 | "headers": [],
30 | "output": "/Users/jiahui/workspace/android/github/ImageSelect/jniLibs/x86/libSlCrop.so",
31 | "runtimeFiles": []
32 | }
33 | },
34 | "toolchains": {
35 | "3599106317": {
36 | "cppCompilerExecutable": "/Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++"
37 | }
38 | },
39 | "cFileExtensions": [],
40 | "cppFileExtensions": [
41 | "cpp"
42 | ]
43 | }
--------------------------------------------------------------------------------
/library/.cxx/cmake/release/x86/android_gradle_build_mini.json:
--------------------------------------------------------------------------------
1 | {
2 | "buildFiles": [
3 | "/Users/jiahui/Library/Android/sdk/ndk-bundle/build/cmake/platforms.cmake",
4 | "/Users/jiahui/Library/Android/sdk/ndk-bundle/build/cmake/android.toolchain.cmake",
5 | "/Users/jiahui/workspace/android/github/ImageSelect/library/CMakeLists.txt"
6 | ],
7 | "cleanCommands": [
8 | "/Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/ninja -C \"/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/release/x86\" clean"
9 | ],
10 | "buildTargetsCommand": "/Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/ninja -C \"/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/release/x86\" {LIST_OF_TARGETS_TO_BUILD}",
11 | "libraries": {
12 | "SlCrop-Release-x86": {
13 | "artifactName": "SlCrop",
14 | "buildCommand": "/Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/ninja -C \"/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/release/x86\" SlCrop",
15 | "abi": "x86",
16 | "output": "/Users/jiahui/workspace/android/github/ImageSelect/jniLibs/x86/libSlCrop.so",
17 | "runtimeFiles": []
18 | }
19 | }
20 | }
--------------------------------------------------------------------------------
/library/.cxx/cmake/release/x86/build_command.txt:
--------------------------------------------------------------------------------
1 | Executable : /Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/cmake
2 | arguments :
3 | -H/Users/jiahui/workspace/android/github/ImageSelect/library
4 | -DCMAKE_FIND_ROOT_PATH=/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/release/prefab/x86/prefab
5 | -DCMAKE_BUILD_TYPE=Release
6 | -DCMAKE_TOOLCHAIN_FILE=/Users/jiahui/Library/Android/sdk/ndk-bundle/build/cmake/android.toolchain.cmake
7 | -DANDROID_ABI=x86
8 | -DANDROID_NDK=/Users/jiahui/Library/Android/sdk/ndk-bundle
9 | -DANDROID_PLATFORM=android-19
10 | -DCMAKE_ANDROID_ARCH_ABI=x86
11 | -DCMAKE_ANDROID_NDK=/Users/jiahui/Library/Android/sdk/ndk-bundle
12 | -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
13 | -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/Users/jiahui/workspace/android/github/ImageSelect/library/build/intermediates/cmake/release/obj/x86
14 | -DCMAKE_MAKE_PROGRAM=/Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/ninja
15 | -DCMAKE_SYSTEM_NAME=Android
16 | -DCMAKE_SYSTEM_VERSION=19
17 | -B/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/release/x86
18 | -GNinja
19 | jvmArgs :
20 |
21 | Build command args:
22 |
--------------------------------------------------------------------------------
/library/.cxx/cmake/release/x86/build_output.txt:
--------------------------------------------------------------------------------
1 | aaaaa,
2 | Configuring done
--------------------------------------------------------------------------------
/library/.cxx/cmake/release/x86/cmake_install.cmake:
--------------------------------------------------------------------------------
1 | # Install script for directory: /Users/jiahui/workspace/android/github/ImageSelect/library
2 |
3 | # Set the install prefix
4 | if(NOT DEFINED CMAKE_INSTALL_PREFIX)
5 | set(CMAKE_INSTALL_PREFIX "/usr/local")
6 | endif()
7 | string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
8 |
9 | # Set the install configuration name.
10 | if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
11 | if(BUILD_TYPE)
12 | string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
13 | CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
14 | else()
15 | set(CMAKE_INSTALL_CONFIG_NAME "Release")
16 | endif()
17 | message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
18 | endif()
19 |
20 | # Set the component getting installed.
21 | if(NOT CMAKE_INSTALL_COMPONENT)
22 | if(COMPONENT)
23 | message(STATUS "Install component: \"${COMPONENT}\"")
24 | set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
25 | else()
26 | set(CMAKE_INSTALL_COMPONENT)
27 | endif()
28 | endif()
29 |
30 | # Install shared libraries without execute permission?
31 | if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
32 | set(CMAKE_INSTALL_SO_NO_EXE "0")
33 | endif()
34 |
35 | # Is this installation the result of a crosscompile?
36 | if(NOT DEFINED CMAKE_CROSSCOMPILING)
37 | set(CMAKE_CROSSCOMPILING "TRUE")
38 | endif()
39 |
40 | if(CMAKE_INSTALL_COMPONENT)
41 | set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt")
42 | else()
43 | set(CMAKE_INSTALL_MANIFEST "install_manifest.txt")
44 | endif()
45 |
46 | string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT
47 | "${CMAKE_INSTALL_MANIFEST_FILES}")
48 | file(WRITE "/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/release/x86/${CMAKE_INSTALL_MANIFEST}"
49 | "${CMAKE_INSTALL_MANIFEST_CONTENT}")
50 |
--------------------------------------------------------------------------------
/library/.cxx/cmake/release/x86/compile_commands.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "directory": "/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/release/x86",
4 | "command": "/Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ --target=i686-none-linux-android19 --gcc-toolchain=/Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64 --sysroot=/Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot -DSlCrop_EXPORTS -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -O2 -DNDEBUG -fPIC -o CMakeFiles/SlCrop.dir/src/main/jni/SlCrop.cpp.o -c /Users/jiahui/workspace/android/github/ImageSelect/library/src/main/jni/SlCrop.cpp",
5 | "file": "/Users/jiahui/workspace/android/github/ImageSelect/library/src/main/jni/SlCrop.cpp"
6 | }
7 | ]
--------------------------------------------------------------------------------
/library/.cxx/cmake/release/x86/prefab_config.json:
--------------------------------------------------------------------------------
1 | {
2 | "enabled": false,
3 | "packages": []
4 | }
--------------------------------------------------------------------------------
/library/.cxx/cmake/release/x86/rules.ninja:
--------------------------------------------------------------------------------
1 | # CMAKE generated file: DO NOT EDIT!
2 | # Generated by "Ninja" Generator, CMake Version 3.10
3 |
4 | # This file contains all the rules used to get the outputs files
5 | # built from the input files.
6 | # It is included in the main 'build.ninja'.
7 |
8 | # =============================================================================
9 | # Project: Project
10 | # Configuration: Release
11 | # =============================================================================
12 | # =============================================================================
13 |
14 | #############################################
15 | # Rule for running custom commands.
16 |
17 | rule CUSTOM_COMMAND
18 | command = $COMMAND
19 | description = $DESC
20 |
21 |
22 | #############################################
23 | # Rule for compiling CXX files.
24 |
25 | rule CXX_COMPILER__SlCrop
26 | depfile = $DEP_FILE
27 | deps = gcc
28 | command = /Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ --target=i686-none-linux-android19 --gcc-toolchain=/Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64 --sysroot=/Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot $DEFINES $INCLUDES $FLAGS -MD -MT $out -MF $DEP_FILE -o $out -c $in
29 | description = Building CXX object $out
30 |
31 |
32 | #############################################
33 | # Rule for linking CXX shared library.
34 |
35 | rule CXX_SHARED_LIBRARY_LINKER__SlCrop
36 | command = $PRE_LINK && /Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ --target=i686-none-linux-android19 --gcc-toolchain=/Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64 --sysroot=/Users/jiahui/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot -fPIC $LANGUAGE_COMPILE_FLAGS $ARCH_FLAGS $LINK_FLAGS -shared $SONAME_FLAG$SONAME -o $TARGET_FILE $in $LINK_PATH $LINK_LIBRARIES && $POST_BUILD
37 | description = Linking CXX shared library $TARGET_FILE
38 | restat = $RESTAT
39 |
40 |
41 | #############################################
42 | # Rule for re-running cmake.
43 |
44 | rule RERUN_CMAKE
45 | command = /Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/cmake -H/Users/jiahui/workspace/android/github/ImageSelect/library -B/Users/jiahui/workspace/android/github/ImageSelect/library/.cxx/cmake/release/x86
46 | description = Re-running CMake...
47 | generator = 1
48 |
49 |
50 | #############################################
51 | # Rule for cleaning all built files.
52 |
53 | rule CLEAN
54 | command = /Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/ninja -t clean
55 | description = Cleaning all built files...
56 |
57 |
58 | #############################################
59 | # Rule for printing all primary targets available.
60 |
61 | rule HELP
62 | command = /Users/jiahui/Library/Android/sdk/cmake/3.10.2.4988404/bin/ninja -t targets
63 | description = All primary targets available:
64 |
65 |
--------------------------------------------------------------------------------
/library/.cxx/ndk_locator_record_18362l3d.json:
--------------------------------------------------------------------------------
1 | {
2 | "ndkFolder": "/Users/jiahui/Library/Android/sdk/ndk-bundle"
3 | }
--------------------------------------------------------------------------------
/library/.cxx/ndk_locator_record_18362l3d.log:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "level": "INFO",
4 | "message": "android.ndkVersion from module build.gradle is not set"
5 | },
6 | {
7 | "level": "INFO",
8 | "message": "ndk.dir in local.properties is /Users/jiahui/Library/Android/sdk/ndk-bundle"
9 | },
10 | {
11 | "level": "INFO",
12 | "message": "ANDROID_NDK_HOME environment variable is not set"
13 | },
14 | {
15 | "level": "INFO",
16 | "message": "sdkFolder is /Users/jiahui/Library/Android/sdk"
17 | },
18 | {
19 | "level": "INFO",
20 | "message": "Considering /Users/jiahui/Library/Android/sdk/ndk-bundle by ndk.dir"
21 | },
22 | {
23 | "level": "INFO",
24 | "message": "Considering /Users/jiahui/Library/Android/sdk/ndk-bundle in SDK ndk-bundle folder"
25 | },
26 | {
27 | "level": "INFO",
28 | "message": "Considering /Users/jiahui/Library/Android/sdk/ndk/20.0.5594570 in SDK ndk folder"
29 | },
30 | {
31 | "level": "INFO",
32 | "message": "Found requested ndk.dir (/Users/jiahui/Library/Android/sdk/ndk-bundle) which has version 21.3.6528147"
33 | }
34 | ]
--------------------------------------------------------------------------------
/library/.cxx/ndk_locator_record_18362l3d_key.json:
--------------------------------------------------------------------------------
1 | {
2 | "ndkDirProperty": "/Users/jiahui/Library/Android/sdk/ndk-bundle",
3 | "sdkFolder": "/Users/jiahui/Library/Android/sdk",
4 | "sideBySideNdkFolderNames": [
5 | "20.0.5594570"
6 | ]
7 | }
--------------------------------------------------------------------------------
/library/.cxx/ndk_locator_record_491x4e4r.json:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/library/.cxx/ndk_locator_record_491x4e4r.log:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "level": "INFO",
4 | "message": "android.ndkVersion from module build.gradle is not set"
5 | },
6 | {
7 | "level": "INFO",
8 | "message": "ndk.dir in local.properties is not set"
9 | },
10 | {
11 | "level": "INFO",
12 | "message": "ANDROID_NDK_HOME environment variable is not set"
13 | },
14 | {
15 | "level": "INFO",
16 | "message": "sdkFolder is /Users/jiahui/Library/Android/sdk"
17 | },
18 | {
19 | "level": "INFO",
20 | "message": "Because no explicit NDK was requested, the default version \u002721.0.6113669\u0027 for this Android Gradle Plugin will be used"
21 | },
22 | {
23 | "level": "INFO",
24 | "message": "Considering /Users/jiahui/Library/Android/sdk/ndk-bundle in SDK ndk-bundle folder"
25 | },
26 | {
27 | "level": "INFO",
28 | "message": "Considering /Users/jiahui/Library/Android/sdk/ndk/20.0.5594570 in SDK ndk folder"
29 | },
30 | {
31 | "level": "INFO",
32 | "message": "Rejected /Users/jiahui/Library/Android/sdk/ndk/20.0.5594570 in SDK ndk folder because that NDK had version 20.0.5594570 which didn\u0027t match the requested version 21.0.6113669"
33 | },
34 | {
35 | "level": "INFO",
36 | "message": "Rejected /Users/jiahui/Library/Android/sdk/ndk-bundle in SDK ndk-bundle folder because that NDK had version 21.3.6528147 which didn\u0027t match the requested version 21.0.6113669"
37 | },
38 | {
39 | "level": "ERROR",
40 | "message": "No version of NDK matched the requested version 21.0.6113669. Versions available locally: 20.0.5594570, 21.3.6528147"
41 | }
42 | ]
--------------------------------------------------------------------------------
/library/.cxx/ndk_locator_record_491x4e4r_key.json:
--------------------------------------------------------------------------------
1 | {
2 | "sdkFolder": "/Users/jiahui/Library/Android/sdk",
3 | "sideBySideNdkFolderNames": [
4 | "20.0.5594570"
5 | ]
6 | }
--------------------------------------------------------------------------------
/library/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/library/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # By default, the flags in this file are appended to flags specified
3 | # in D:\Android\sdk/tools/proguard/proguard-android.txt
4 | # You can edit the include path and order by changing the proguardFiles
5 | # directive in build.gradle.
6 | #
7 | # For more details, see
8 | # http://developer.android.com/guide/developing/tools/proguard.html
9 |
10 | # Add any project specific keep options here:
11 |
12 | # If your project uses WebView with JS, uncomment the following
13 | # and specify the fully qualified class name to the JavaScript interface
14 | # class:
15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16 | # public *;
17 | #}
18 |
--------------------------------------------------------------------------------
/library/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 |
9 |
14 |
15 |
18 |
19 |
22 |
23 |
26 |
27 |
32 |
35 |
36 |
37 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/library/src/main/java/com/jhworks/library/core/MediaConstant.kt:
--------------------------------------------------------------------------------
1 | package com.jhworks.library.core
2 |
3 | import android.graphics.Bitmap.CompressFormat
4 | import com.jhworks.library.core.vo.MediaVo
5 |
6 | /**
7 | * Media Constant
8 | * @author jackson
9 | * @version 1.0
10 | * @date 2020/6/11 10:15
11 | */
12 | object MediaConstant {
13 | // Default image size
14 | const val DEFAULT_IMAGE_SIZE = 9
15 |
16 | // Default image span count
17 | const val DEFAULT_IMAGE_SPAN_COUNT = 4
18 |
19 | /**
20 | * Max image size,int,[.DEFAULT_IMAGE_SIZE] by default
21 | */
22 | const val KEY_EXTRA_SELECT_COUNT = "max_select_count"
23 |
24 | /**
25 | * Result data set,ArrayList<String>
26 | */
27 | const val KEY_EXTRA_RESULT = "select_result"
28 |
29 | /**
30 | * Result data set,MutableList<Uri>
31 | */
32 | const val KEY_EXTRA_RESULT_URI = "select_result_uri"
33 |
34 | /**
35 | * Current Position
36 | */
37 | const val KEY_EXTRA_CURRENT_POSITION = "current_position"
38 |
39 | const val KEY_MEDIA_SELECT_CONFIG = "media_select_config"
40 | const val KEY_BIG_IMAGE_LIST = "big_image_list"
41 |
42 | const val RESULT_ERROR = 400
43 |
44 | //-------------------------crop-----------------------------//
45 | const val DEFAULT_COMPRESS_QUALITY = 90
46 | val DEFAULT_COMPRESS_FORMAT = CompressFormat.JPEG
47 |
48 | //all image list
49 | private val mAllMediaList = arrayListOf()
50 | private val mSelectMediaList = arrayListOf()
51 |
52 | fun setAllMediaList(list: MutableList?) {
53 | if (mAllMediaList.isNotEmpty()) mAllMediaList.clear()
54 | if (list != null) mAllMediaList.addAll(list)
55 | }
56 |
57 | fun getAllMediaList(): MutableList = mAllMediaList
58 |
59 | fun setSelectMediaList(list: MutableList?) {
60 | if (mSelectMediaList.isNotEmpty()) mSelectMediaList.clear()
61 | if (list != null) mSelectMediaList.addAll(list)
62 | }
63 |
64 | fun getSelectMediaList(): MutableList = mSelectMediaList
65 |
66 | fun clear() {
67 | mAllMediaList.clear()
68 | mSelectMediaList.clear()
69 | }
70 | }
--------------------------------------------------------------------------------
/library/src/main/java/com/jhworks/library/core/callback/ImgProgressListener.kt:
--------------------------------------------------------------------------------
1 | package com.jhworks.library.core.callback
2 |
3 | /**
4 | *
5 | * @author jackson
6 | * @version 1.0
7 | * @date 2021/9/10 15:28
8 | */
9 | interface ImgProgressListener {
10 | fun onLoadStart()
11 | fun onLoadProgress(progress: Int, isSuccess: Boolean)
12 | fun onLoadFail()
13 | }
--------------------------------------------------------------------------------
/library/src/main/java/com/jhworks/library/core/ui/ImagePermissionActivity.kt:
--------------------------------------------------------------------------------
1 | package com.jhworks.library.core.ui
2 |
3 | import android.content.pm.PackageManager
4 | import android.os.Build
5 |
6 | /**
7 | *
8 | * @author jackson
9 | * @version 1.0
10 | * @date 2020/6/11 15:55
11 | */
12 | abstract class ImagePermissionActivity : ImageBaseActivity() {
13 | companion object {
14 | private const val REQUEST_PERMISSION_CODE = 10000
15 | }
16 |
17 | private val needRequestPermissionList = arrayListOf()
18 |
19 | /**
20 | * 请求权限
21 | * @param permissions 权限列表,如{@link Manifest.permission.WRITE_EXTERNAL_STORAGE}
22 | */
23 | fun requestPermission(vararg permissions: String) {
24 | if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
25 | permissions.forEach {
26 | if (checkSelfPermission(it) == PackageManager.PERMISSION_DENIED
27 | && !needRequestPermissionList.contains(it)) {
28 | needRequestPermissionList.add(it)
29 | }
30 | }
31 | if (needRequestPermissionList.size == 0) {
32 | onRequestPermissionSuccess()
33 | return
34 | }
35 | requestPermissions(
36 | needRequestPermissionList.toArray(
37 | arrayOfNulls(needRequestPermissionList.size)
38 | ), REQUEST_PERMISSION_CODE
39 | )
40 | return
41 | }
42 | onRequestPermissionSuccess()
43 | }
44 |
45 | override fun onRequestPermissionsResult(
46 | requestCode: Int,
47 | permissions: Array,
48 | grantResults: IntArray
49 | ) {
50 | super.onRequestPermissionsResult(requestCode, permissions, grantResults)
51 | if (requestCode == REQUEST_PERMISSION_CODE) {
52 | for (i in grantResults.indices) {
53 | if (grantResults[i] == PackageManager.PERMISSION_GRANTED
54 | && needRequestPermissionList.contains(permissions[i])) {
55 | needRequestPermissionList.remove(permissions[i])
56 | }
57 | }
58 | if (needRequestPermissionList.size == 0) {
59 | onRequestPermissionSuccess()
60 | return
61 | }
62 | onRequestPermissionFail(needRequestPermissionList)
63 | }
64 | }
65 |
66 | /**
67 | * 请求权限成功回调,只有所有的都成功才会回调
68 | */
69 | protected abstract fun onRequestPermissionSuccess()
70 |
71 | /**
72 | * 请求权限失败回调,只要有一个不成功都会回调该方法
73 | * @param deniedPermissions 失败的权限列表
74 | */
75 | protected abstract fun onRequestPermissionFail(deniedPermissions: MutableList)
76 | }
--------------------------------------------------------------------------------
/library/src/main/java/com/jhworks/library/core/ui/adapter/ImagePagerAdapter.kt:
--------------------------------------------------------------------------------
1 | package com.jhworks.library.core.ui.adapter
2 |
3 | import android.content.Context
4 | import android.view.View
5 | import android.view.ViewGroup
6 | import android.widget.FrameLayout
7 | import androidx.viewpager.widget.PagerAdapter
8 | import com.jhworks.library.ImageSelector
9 | import com.jhworks.library.core.vo.ImageInfoVo
10 | import com.jhworks.library.core.vo.MediaUiConfigVo
11 | import com.jhworks.library.utils.SlScreenUtils
12 | import com.jhworks.library.view.SlLongImageView
13 | import com.jhworks.library.view.SlPhotoView
14 |
15 | /**
16 | *
17 | * @author jackson
18 | * @version 1.0
19 | * @date 2021/9/9 17:49
20 | */
21 | class ImagePagerAdapter(
22 | private val mContext: Context,
23 | private val imageList: MutableList = ArrayList()
24 | ) : PagerAdapter() {
25 |
26 | private val screenW = SlScreenUtils.getScreenWidth(mContext)
27 |
28 | override fun getCount(): Int = imageList.size
29 |
30 | override fun isViewFromObject(view: View, `object`: Any): Boolean {
31 | return view === `object`
32 | }
33 |
34 | override fun instantiateItem(container: ViewGroup, position: Int): Any {
35 | val imageInfo = imageList[position]
36 | val photoView = SlPhotoView(mContext, position, screenW, imageInfo)
37 |
38 | val uiConfig = MediaUiConfigVo(null, imageInfoVo = imageInfo)
39 | ImageSelector.getImageEngine()
40 | .loadBigImage(photoView, uiConfig, photoView.getProgressListener())
41 | container.addView(
42 | photoView,
43 | ViewGroup.LayoutParams.MATCH_PARENT,
44 | ViewGroup.LayoutParams.MATCH_PARENT
45 | )
46 | return photoView
47 | }
48 |
49 | override fun destroyItem(container: ViewGroup, position: Int, `object`: Any) {
50 | val view: View? = (`object` as FrameLayout).findViewWithTag(position)
51 | if (view is SlLongImageView) {
52 | view.recycle()
53 | }
54 | container.removeView(`object` as View)
55 | }
56 |
57 | }
--------------------------------------------------------------------------------
/library/src/main/java/com/jhworks/library/core/vo/FolderVo.kt:
--------------------------------------------------------------------------------
1 | package com.jhworks.library.core.vo
2 |
3 | import android.text.TextUtils
4 |
5 | /**
6 | * folder model data
7 | * @author jackson
8 | * @version 1.0
9 | * @date 2020/6/10 18:15
10 | */
11 | data class FolderVo(var name: String? = null,
12 | var path: String? = null,
13 | var cover: MediaVo? = null) {
14 | var mediaStoreList: MutableList? = null
15 |
16 | override fun equals(o: Any?): Boolean {
17 | try {
18 | val other = o as FolderVo
19 | return TextUtils.equals(other.path, path)
20 | } catch (e: ClassCastException) {
21 | e.printStackTrace()
22 | }
23 | return super.equals(o)
24 | }
25 |
26 | override fun toString(): String {
27 | return "FolderVo(name=$name, path=$path, cover=$cover, mediaStoreList=$mediaStoreList)"
28 | }
29 | }
--------------------------------------------------------------------------------
/library/src/main/java/com/jhworks/library/core/vo/ImageInfoVo.kt:
--------------------------------------------------------------------------------
1 | package com.jhworks.library.core.vo
2 |
3 | import android.os.Parcel
4 | import android.os.Parcelable
5 |
6 | /**
7 | * Image info, contains normal url, small url (can null)
8 | * @author jackson
9 | * @version 1.0
10 | * @date 2021/9/9 18:23
11 | */
12 | data class ImageInfoVo(
13 | var url: String?,
14 | var smallUrl: String? = null
15 | ): Parcelable {
16 | constructor(parcel: Parcel) : this(
17 | parcel.readString(),
18 | parcel.readString()
19 | ) {
20 | }
21 |
22 | override fun writeToParcel(parcel: Parcel, flags: Int) {
23 | parcel.writeString(url)
24 | parcel.writeString(smallUrl)
25 | }
26 |
27 | override fun describeContents(): Int {
28 | return 0
29 | }
30 |
31 | companion object CREATOR : Parcelable.Creator {
32 | override fun createFromParcel(parcel: Parcel): ImageInfoVo {
33 | return ImageInfoVo(parcel)
34 | }
35 |
36 | override fun newArray(size: Int): Array {
37 | return arrayOfNulls(size)
38 | }
39 | }
40 |
41 | }
--------------------------------------------------------------------------------
/library/src/main/java/com/jhworks/library/core/vo/MediaType.kt:
--------------------------------------------------------------------------------
1 | package com.jhworks.library.core.vo
2 |
3 | import androidx.annotation.IntDef
4 |
5 | /**
6 | *The type of data
7 | * @author jackson
8 | * @version 1.0
9 | * @date 2020/6/10 18:56
10 | */
11 | @IntDef(MediaType.VIDEO, MediaType.IMAGE)
12 | @Retention(AnnotationRetention.SOURCE)
13 | annotation class MediaType {
14 | companion object {
15 | const val VIDEO = 100
16 | const val IMAGE = 101
17 | }
18 | }
19 |
20 | @IntDef(SelectMode.MODE_SINGLE, SelectMode.MODE_MULTI)
21 | @Retention(AnnotationRetention.SOURCE)
22 | annotation class SelectMode {
23 | companion object {
24 | // Single choice
25 | const val MODE_SINGLE = 0
26 |
27 | // Multi choice
28 | const val MODE_MULTI = 1
29 | }
30 | }
--------------------------------------------------------------------------------
/library/src/main/java/com/jhworks/library/core/vo/MediaUiConfigVo.kt:
--------------------------------------------------------------------------------
1 | package com.jhworks.library.core.vo
2 |
3 | import androidx.annotation.DrawableRes
4 | import com.jhworks.library.R
5 |
6 | /**
7 | *
8 | * @author jackson
9 | * @version 1.0
10 | * @date 2020/6/11 15:32
11 | */
12 | class MediaUiConfigVo(
13 | var path: Any?, var width: Int = -1,
14 | var height: Int = -1,
15 |
16 | @DrawableRes
17 | var placeholderResId: Int = R.drawable.ic_sl_image_default,
18 |
19 | @DrawableRes
20 | var errorResId: Int = R.drawable.ic_sl_image_default,
21 |
22 | var imageInfoVo: ImageInfoVo? = null
23 | ) {
24 | }
--------------------------------------------------------------------------------
/library/src/main/java/com/jhworks/library/core/vo/MediaVo.kt:
--------------------------------------------------------------------------------
1 | package com.jhworks.library.core.vo
2 |
3 | import android.net.Uri
4 | import android.os.Parcel
5 | import android.os.Parcelable
6 | import android.text.TextUtils
7 |
8 |
9 | /**
10 | * A data model containing data for a single media item.
11 | * @author jackson
12 | * @version 1.0
13 | * @date 2020/6/10 18:10
14 | */
15 | data class MediaVo(
16 | val rowId: Long = 0,
17 | val uri: Uri? = null,
18 | val mimeType: String? = null,
19 | val dateModified: Long = 0,
20 | val type: Int = 0,
21 | val dateTaken: Long = 0,
22 | val path: String? = null,
23 | val name: String? = null,
24 | val time: Long = 0,
25 | val size: Int = 0
26 | ) : Parcelable {
27 | var isSelect: Boolean = false
28 |
29 | // 视频时长
30 | var duration: Int = 0
31 |
32 | constructor(parcel: Parcel) : this(
33 | parcel.readLong(),
34 | parcel.readParcelable(Uri::class.java.classLoader),
35 | parcel.readString(),
36 | parcel.readLong(),
37 | parcel.readInt(),
38 | parcel.readLong(),
39 | parcel.readString(),
40 | parcel.readString(),
41 | parcel.readLong(),
42 | parcel.readInt()) {
43 | isSelect = parcel.readByte() != 0.toByte()
44 | duration = parcel.readInt()
45 | }
46 |
47 | override fun writeToParcel(parcel: Parcel, flags: Int) {
48 | parcel.writeLong(rowId)
49 | parcel.writeParcelable(uri, flags)
50 | parcel.writeString(mimeType)
51 | parcel.writeLong(dateModified)
52 | parcel.writeInt(type)
53 | parcel.writeLong(dateTaken)
54 | parcel.writeString(path)
55 | parcel.writeString(name)
56 | parcel.writeLong(time)
57 | parcel.writeInt(size)
58 | parcel.writeByte(if (isSelect) 1 else 0)
59 | parcel.writeInt(duration)
60 | }
61 |
62 | override fun describeContents(): Int {
63 | return 0
64 | }
65 |
66 | override fun equals(o: Any?): Boolean {
67 | if (this === o) return true
68 | if (o == null || javaClass != o.javaClass) return false
69 |
70 | val otherMedia = o as MediaVo
71 |
72 | return TextUtils.equals(path, otherMedia.path)
73 | }
74 |
75 | override fun toString(): String {
76 | return "MediaVo(rowId=$rowId, uri=$uri, mimeType=$mimeType, dateModified=$dateModified, type=$type, dateTaken=$dateTaken, path=$path, name=$name, time=$time, size=$size, isSelect=$isSelect)"
77 | }
78 |
79 | companion object CREATOR : Parcelable.Creator {
80 | override fun createFromParcel(parcel: Parcel): MediaVo {
81 | return MediaVo(parcel)
82 | }
83 |
84 | override fun newArray(size: Int): Array {
85 | return arrayOfNulls(size)
86 | }
87 | }
88 | }
--------------------------------------------------------------------------------
/library/src/main/java/com/jhworks/library/engine/IEngine.kt:
--------------------------------------------------------------------------------
1 | package com.jhworks.library.engine
2 |
3 | import android.widget.ImageView
4 | import com.jhworks.library.core.callback.ImgProgressListener
5 | import com.jhworks.library.core.vo.MediaUiConfigVo
6 | import com.jhworks.library.view.SlPhotoView
7 |
8 | /**
9 | * 图片展示或视频预览逻辑接口
10 | * @author jackson
11 | * @version 1.0
12 | * @date 2020/6/11 15:11
13 | */
14 | interface IEngine {
15 | /**正常列表加载*/
16 | fun loadImage(imageView: ImageView, uiConfig: MediaUiConfigVo)
17 |
18 | /**详情页加载*/
19 | fun loadDetailImage(imageView: ImageView, uiConfig: MediaUiConfigVo)
20 |
21 | fun loadBigImage(
22 | photoView: SlPhotoView,
23 | uiConfig: MediaUiConfigVo,
24 | progressListener: ImgProgressListener?
25 | )
26 |
27 | }
--------------------------------------------------------------------------------
/library/src/main/java/com/jhworks/library/utils/CheckNullUtils.kt:
--------------------------------------------------------------------------------
1 | package com.jhworks.library.utils
2 |
3 | /**
4 | *
5 | * 空对象检查
6 | *
7 | * @author jiahui
8 | * date 2018/1/9
9 | */
10 | object CheckNullUtils {
11 |
12 | fun check(o: Any?, msg: String = "$o can not null!!!") {
13 | if (o == null) throw RuntimeException(msg)
14 | }
15 |
16 | fun isListEmpty(list: MutableList?): Boolean {
17 | if (list == null || list.isEmpty()) return true
18 | return false
19 | }
20 | }
--------------------------------------------------------------------------------
/library/src/main/java/com/jhworks/library/utils/SlImageUtils.kt:
--------------------------------------------------------------------------------
1 | package com.jhworks.library.utils
2 |
3 | import android.content.Context
4 | import android.graphics.Bitmap
5 |
6 | /**
7 | *
8 | * @author jackson
9 | * @version 1.0
10 | * @date 2021/9/10 00:07
11 | */
12 | object SlImageUtils {
13 |
14 | //大于此值即表示横向长图
15 | const val RATIO_W = 1.05f
16 |
17 | //大于此值即表示纵向长图
18 | const val RATIO_H = 0.8f
19 |
20 |
21 | fun isGifOrWebp(url: String?): Boolean {
22 | url ?: return false
23 | val fileName = url.substring(url.lastIndexOf("/") + 1)
24 | return fileName.endsWith(".webp") || fileName.endsWith(".gif")
25 | }
26 |
27 |
28 | fun isLongImage(context: Context, resource: Bitmap?, url: String?): Boolean {
29 | if (isGifOrWebp(url) || resource == null) return false
30 | val ratio =
31 | calculateImageRatio(context, resource.width.toFloat(), resource.height.toFloat())
32 | return ratio[0] > RATIO_W || ratio[1] > RATIO_H
33 | }
34 |
35 | fun calculateImageRatio(context: Context, imageWidth: Float, imageHeight: Float): FloatArray {
36 | val screenWith = SlScreenUtils.getScreenWidth(context)
37 | val screenHeight = SlScreenUtils.getScreenHeight(context)
38 | val offsetW = imageWidth / imageHeight - screenWith / screenHeight
39 | val offsetH = imageHeight / imageWidth - screenHeight / screenWith
40 | return floatArrayOf(offsetW, offsetH)
41 | }
42 | }
--------------------------------------------------------------------------------
/library/src/main/java/com/jhworks/library/utils/SlLog.kt:
--------------------------------------------------------------------------------
1 | package com.jhworks.library.utils
2 |
3 | import android.util.Log
4 |
5 | /**
6 | *
7 | * @author jackson
8 | * @version 1.0
9 | * @date 2021/9/10 23:14
10 | */
11 | object SlLog {
12 | var isDebug = false
13 | private const val TAG = "ImageSelector>>>>>"
14 |
15 | fun e(msg: String) {
16 | if (!isDebug) return
17 | Log.e(TAG, msg)
18 | }
19 |
20 | fun d(msg: String) {
21 | if (!isDebug) return
22 | Log.d(TAG, msg)
23 | }
24 |
25 | fun i(msg: String) {
26 | if (!isDebug) return
27 | Log.i(TAG, msg)
28 | }
29 |
30 | fun w(msg: String) {
31 | if (!isDebug) return
32 | Log.w(TAG, msg)
33 | }
34 | }
--------------------------------------------------------------------------------
/library/src/main/java/com/jhworks/library/utils/SlScreenUtils.kt:
--------------------------------------------------------------------------------
1 | package com.jhworks.library.utils
2 |
3 | import android.content.Context
4 | import android.graphics.Point
5 | import android.util.DisplayMetrics
6 | import android.view.WindowManager
7 | import androidx.annotation.ColorRes
8 | import androidx.core.content.ContextCompat
9 |
10 | /**
11 | * 屏幕工具
12 | */
13 | object SlScreenUtils {
14 |
15 | private var screenWidth = 0
16 | private var screenHeight = 0
17 |
18 | fun getScreenSize(context: Context): Point {
19 | val wm = context.getSystemService(Context.WINDOW_SERVICE) as WindowManager
20 | val out = Point()
21 | wm.defaultDisplay.getSize(out)
22 | return out
23 | }
24 |
25 | fun getScreenWidth(context: Context): Int {
26 | if (screenWidth > 0) return screenWidth
27 | val metric = DisplayMetrics()
28 | val wm = context.getSystemService(Context.WINDOW_SERVICE) as WindowManager
29 | wm.defaultDisplay.getMetrics(metric)
30 | screenWidth = metric.widthPixels
31 | return screenWidth
32 | }
33 |
34 | fun getScreenHeight(context: Context): Int {
35 | if (screenHeight > 0) return screenHeight
36 | val metric = DisplayMetrics()
37 | val wm = context.getSystemService(Context.WINDOW_SERVICE) as WindowManager
38 | wm.defaultDisplay.getMetrics(metric)
39 | screenHeight = metric.heightPixels
40 | return screenHeight
41 | }
42 |
43 |
44 | fun getColor(context: Context, @ColorRes colorRes: Int): Int {
45 | return ContextCompat.getColor(context, colorRes)
46 | }
47 | }
--------------------------------------------------------------------------------
/library/src/main/java/com/jhworks/library/view/HackyViewPager.kt:
--------------------------------------------------------------------------------
1 | package com.jhworks.library.view
2 |
3 | import android.content.Context
4 | import android.util.AttributeSet
5 | import android.view.MotionEvent
6 | import androidx.viewpager.widget.ViewPager
7 |
8 | class HackyViewPager : ViewPager {
9 | constructor(context: Context) : super(context) {}
10 | constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) {}
11 |
12 | override fun onInterceptTouchEvent(ev: MotionEvent): Boolean {
13 | return try {
14 | super.onInterceptTouchEvent(ev)
15 | } catch (e: IllegalArgumentException) {
16 | // e.printStackTrace();
17 | false
18 | }
19 | }
20 | }
--------------------------------------------------------------------------------
/library/src/main/java/com/jhworks/library/view/SlLongImageView.kt:
--------------------------------------------------------------------------------
1 | package com.jhworks.library.view
2 |
3 | import android.content.Context
4 | import android.graphics.Bitmap
5 | import android.graphics.PointF
6 | import android.util.AttributeSet
7 | import com.davemorrissey.labs.subscaleview.ImageSource
8 | import com.davemorrissey.labs.subscaleview.ImageViewState
9 | import com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView
10 | import com.jhworks.library.utils.SlImageUtils
11 | import com.jhworks.library.utils.SlLog
12 | import java.io.File
13 |
14 | /**
15 | * 长图预览,自动判断横向或者纵向展示
16 | * @author jackson
17 | * @version 1.0
18 | * @date 2021/9/10 10:09
19 | */
20 | private const val HORIZONTAL = 0
21 | private const val VERTICAL = 1
22 |
23 | class SlLongImageView(context: Context, attrs: AttributeSet?) :
24 | SubsamplingScaleImageView(context, attrs) {
25 | constructor(context: Context) : this(context, null)
26 |
27 |
28 | fun setData(file: File?, resource: Bitmap?, url: String?) {
29 | SlLog.e("setData1: ${file}, $resource")
30 | if (file == null || resource == null) return
31 | SlLog.e("setData2: ${file}, $resource")
32 | val resourceW = resource.width.toFloat()
33 | val resourceH = resource.height.toFloat()
34 | val ratio = SlImageUtils.calculateImageRatio(context, resourceW, resourceH)
35 | val offsetW = ratio[0]
36 | val offsetH = ratio[1]
37 | if (offsetW > SlImageUtils.RATIO_W) {
38 | // 横向长图
39 | SlLog.i("[${url}]横向长图: ${resourceW}*${resourceH}")
40 | setLongImageView(file, HORIZONTAL)
41 | } else if (offsetH > SlImageUtils.RATIO_H) {
42 | //纵向长图
43 | SlLog.i("[${url}]纵向长图: ${resourceW}*${resourceH}")
44 | setLongImageView(file, VERTICAL)
45 | }
46 | }
47 |
48 | private fun setLongImageView(file: File, orientation: Int) {
49 | when (orientation) {
50 | VERTICAL -> {
51 | setMinimumScaleType(SCALE_TYPE_CENTER_CROP)
52 | setImage(
53 | ImageSource.uri(file.absolutePath),
54 | ImageViewState(0f, PointF(0f, 0f), ORIENTATION_0)
55 | )
56 | }
57 | HORIZONTAL -> {
58 | setImage(ImageSource.uri(file.absolutePath))
59 | }
60 | }
61 | }
62 | }
--------------------------------------------------------------------------------
/library/src/main/java/com/jhworks/library/view/SquareFrameLayout.kt:
--------------------------------------------------------------------------------
1 | package com.jhworks.library.view
2 |
3 | import android.content.Context
4 | import android.util.AttributeSet
5 | import android.widget.FrameLayout
6 |
7 | class SquareFrameLayout : FrameLayout {
8 | constructor(context: Context) : super(context) {}
9 | constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) {}
10 |
11 | override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {
12 | super.onMeasure(widthMeasureSpec, heightMeasureSpec)
13 | setMeasuredDimension(measuredWidth, measuredWidth)
14 | }
15 | }
--------------------------------------------------------------------------------
/library/src/main/java/com/jhworks/library/view/SquaredImageView.kt:
--------------------------------------------------------------------------------
1 | package com.jhworks.library.view
2 |
3 | import android.content.Context
4 | import android.util.AttributeSet
5 | import androidx.appcompat.widget.AppCompatImageView
6 |
7 | /**
8 | * An image view which always remains square with respect to its width.
9 | */
10 | class SquaredImageView : AppCompatImageView {
11 | constructor(context: Context?) : super(context) {}
12 | constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs) {}
13 |
14 | override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {
15 | super.onMeasure(widthMeasureSpec, heightMeasureSpec)
16 | setMeasuredDimension(measuredWidth, measuredWidth)
17 | }
18 | }
--------------------------------------------------------------------------------
/library/src/main/res/color/sl_default_text_color.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/library/src/main/res/color/sl_folder_text_color.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/library/src/main/res/drawable-xhdpi/ic_sl_image_default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JackLiaoJH/ImageSelect/662d1118fcc7ed3ed784809e9b476d540d7fa496/library/src/main/res/drawable-xhdpi/ic_sl_image_default.png
--------------------------------------------------------------------------------
/library/src/main/res/drawable-xxhdpi/ic_sl_select_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JackLiaoJH/ImageSelect/662d1118fcc7ed3ed784809e9b476d540d7fa496/library/src/main/res/drawable-xxhdpi/ic_sl_select_normal.png
--------------------------------------------------------------------------------
/library/src/main/res/drawable-xxhdpi/ic_sl_select_pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JackLiaoJH/ImageSelect/662d1118fcc7ed3ed784809e9b476d540d7fa496/library/src/main/res/drawable-xxhdpi/ic_sl_select_pressed.png
--------------------------------------------------------------------------------
/library/src/main/res/drawable-xxhdpi/sl_ic_arrow_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JackLiaoJH/ImageSelect/662d1118fcc7ed3ed784809e9b476d540d7fa496/library/src/main/res/drawable-xxhdpi/sl_ic_arrow_down.png
--------------------------------------------------------------------------------
/library/src/main/res/drawable-xxhdpi/sl_ic_camera.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JackLiaoJH/ImageSelect/662d1118fcc7ed3ed784809e9b476d540d7fa496/library/src/main/res/drawable-xxhdpi/sl_ic_camera.png
--------------------------------------------------------------------------------
/library/src/main/res/drawable-xxhdpi/sl_ic_folder_item_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JackLiaoJH/ImageSelect/662d1118fcc7ed3ed784809e9b476d540d7fa496/library/src/main/res/drawable-xxhdpi/sl_ic_folder_item_select.png
--------------------------------------------------------------------------------
/library/src/main/res/drawable-xxhdpi/sl_ic_video_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JackLiaoJH/ImageSelect/662d1118fcc7ed3ed784809e9b476d540d7fa496/library/src/main/res/drawable-xxhdpi/sl_ic_video_icon.png
--------------------------------------------------------------------------------
/library/src/main/res/drawable-xxhdpi/sl_ic_white_nav.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JackLiaoJH/ImageSelect/662d1118fcc7ed3ed784809e9b476d540d7fa496/library/src/main/res/drawable-xxhdpi/sl_ic_white_nav.png
--------------------------------------------------------------------------------
/library/src/main/res/drawable/sl_action_btn.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | -
5 |
6 |
7 |
8 |
9 |
10 |
11 | -
12 |
13 |
14 |
15 |
16 |
17 |
18 | -
19 |
20 |
21 |
22 |
23 |
24 |
25 | -
26 |
27 |
28 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/library/src/main/res/drawable/sl_bg_checkbox.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/library/src/main/res/drawable/sl_bg_select_image.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/library/src/main/res/drawable/sl_divider.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/library/src/main/res/layout/activity_sl_image_detail.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
14 |
15 |
16 |
22 |
23 |
34 |
35 |
36 |
37 |
46 |
47 |
60 |
61 |
--------------------------------------------------------------------------------
/library/src/main/res/layout/activity_sl_image_pager.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
14 |
15 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
37 |
38 |
--------------------------------------------------------------------------------
/library/src/main/res/layout/sl_fragment_multi_image.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/library/src/main/res/layout/sl_list_item_camera.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
10 |
14 |
15 |
22 |
23 |
--------------------------------------------------------------------------------
/library/src/main/res/layout/sl_list_item_folder.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
16 |
17 |
18 |
30 |
31 |
32 |
44 |
45 |
53 |
54 |
55 |
61 |
62 |
--------------------------------------------------------------------------------
/library/src/main/res/layout/sl_list_item_image.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
13 |
14 |
19 |
20 |
21 |
31 |
32 |
33 |
40 |
41 |
42 |
53 |
54 |
--------------------------------------------------------------------------------
/library/src/main/res/values-zh/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 所有照片
4 | 所有视频
5 | 预览
6 | 没有系统相机
7 | 已经达到最高选择数量
8 | 完成
9 | (%1$d)
10 | (*)
11 | 拍摄照片
12 | 图片错误
13 | 无权限
14 | 权限拒绝
15 | 好
16 | 拒绝
17 | 浏览图片需要您提供浏览存储的权限
18 | 保存拍照图片需要您提供写存储权限
19 | 需要授予拍照权限才能拍照
20 | 选择图片
21 | 选择视频
22 |
23 |
--------------------------------------------------------------------------------
/library/src/main/res/values/attrs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/library/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | #4D000000
5 | #FF333333
6 |
--------------------------------------------------------------------------------
/library/src/main/res/values/colors_dark.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | @android:color/black
7 | @android:color/black
8 |
9 | @android:color/black
10 | @android:color/white
11 | #FF7F50FA
12 |
13 | @android:color/white
14 | #FF222222
15 | #FF979A9E
16 | #FFBCBFC5
17 |
18 | @android:color/black
19 | #FF111111
20 | @android:color/white
21 | @android:color/transparent
22 |
--------------------------------------------------------------------------------
/library/src/main/res/values/colors_light.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | @android:color/white
6 | @android:color/white
7 |
8 | @android:color/white
9 | #FF222222
10 | #FF7F50FA
11 |
12 | @android:color/white
13 | #FF222222
14 | #FF979A9E
15 | #FFBCBFC5
16 |
17 | @android:color/black
18 | #FF111111
19 | @android:color/white
20 |
21 |
22 |
--------------------------------------------------------------------------------
/library/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 3dp
5 | 48dp
6 | 64dp
7 | 48dp
8 | 16sp
9 | 16dp
10 |
--------------------------------------------------------------------------------
/library/src/main/res/values/ids.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/library/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | All Images
3 | All Videos
4 | Preview
5 | No system camera found
6 | Select images amount is limit
7 | Done
8 | %1$s(%2$d/%3$d)
9 | %1$d/%2$d
10 | (%1$d)
11 | (*)
12 | Camera
13 | Image error
14 | Has no permission
15 | Permission Deny
16 | OK
17 | Cancel
18 | Storage read permission is needed to pick files.
19 | Storage write permission is needed to save the image.
20 | You need to grant permission to take photos.
21 | /sdcard
22 | select photo
23 | select video
24 |
25 |
--------------------------------------------------------------------------------
/library/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
13 |
16 |
17 |
34 |
35 |
36 |
37 |
40 |
41 |
58 |
59 |
60 |
--------------------------------------------------------------------------------
/library/src/main/res/xml/sl_file_paths_public.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
8 |
11 |
12 |
15 |
16 |
19 |
20 |
23 |
24 |
27 |
--------------------------------------------------------------------------------
/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app', ':library'
2 |
--------------------------------------------------------------------------------
/test.jks:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JackLiaoJH/ImageSelect/662d1118fcc7ed3ed784809e9b476d540d7fa496/test.jks
--------------------------------------------------------------------------------