├── .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 | 5 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/menu/sl_crop_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /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 | 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 --------------------------------------------------------------------------------