gitextract_4ugyik6s/ ├── .gitignore ├── README.md ├── SharryKey ├── app/ │ ├── .gitignore │ ├── build.gradle │ ├── proguard-rules.pro │ ├── release/ │ │ └── output.json │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ ├── java/ │ │ └── com/ │ │ └── sharry/ │ │ └── app/ │ │ └── salbum/ │ │ ├── MainActivity.kt │ │ └── WatermarkPreviewerRenderer.java │ └── res/ │ ├── drawable/ │ │ ├── app_activity_main_launcher.xml │ │ └── ic_launcher_foreground.xml │ ├── layout/ │ │ └── app_activity_main.xml │ ├── mipmap-anydpi-v26/ │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ ├── values/ │ │ ├── colors.xml │ │ ├── ic_launcher_background.xml │ │ ├── strings.xml │ │ └── styles.xml │ ├── values-zh/ │ │ └── strings.xml │ └── xml/ │ └── provider_paths.xml ├── assert/ │ └── SAlbum-1.0.1.apk ├── build.gradle ├── git ├── gradle/ │ └── wrapper/ │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradle.properties ├── gradlew ├── gradlew.bat ├── lib-album/ │ ├── .gitignore │ ├── build.gradle │ ├── proguard-rules.pro │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ ├── base/ │ │ └── com/ │ │ └── sharry/ │ │ └── lib/ │ │ └── album/ │ │ ├── ILoaderEngine.java │ │ ├── Loader.java │ │ └── MediaMeta.java │ ├── copper/ │ │ └── com/ │ │ └── sharry/ │ │ └── lib/ │ │ └── album/ │ │ ├── CropperCallback.java │ │ ├── CropperCallbackLambda.java │ │ ├── CropperConfig.java │ │ ├── CropperFragment.java │ │ └── CropperManager.java │ ├── picker/ │ │ └── com/ │ │ └── sharry/ │ │ └── lib/ │ │ └── album/ │ │ ├── FolderAdapter.java │ │ ├── FolderModel.java │ │ ├── PickerActivity.java │ │ ├── PickerAdapter.java │ │ ├── PickerCallback.java │ │ ├── PickerCallbackLambda.java │ │ ├── PickerConfig.java │ │ ├── PickerContract.java │ │ ├── PickerManager.java │ │ ├── PickerModel.java │ │ ├── PickerPresenter.java │ │ └── res/ │ │ ├── drawable/ │ │ │ ├── ic_album_picker_bottom_indicator.xml │ │ │ ├── ic_album_picker_camera_header.xml │ │ │ ├── ic_album_picker_fab.xml │ │ │ ├── ic_album_picker_gif.xml │ │ │ ├── ic_album_picker_right_arrow.xml │ │ │ ├── ic_album_picker_video_default.xml │ │ │ └── ic_album_picker_video_play.xml │ │ ├── layout/ │ │ │ ├── lib_album_activity_picker.xml │ │ │ ├── lib_album_recycle_item_folder.xml │ │ │ ├── lib_album_recycle_item_header_camera.xml │ │ │ ├── lib_album_recycle_item_picture.xml │ │ │ └── lib_album_recycle_item_video.xml │ │ ├── values/ │ │ │ ├── picker_colors.xml │ │ │ ├── picker_strings.xml │ │ │ └── picker_themes.xml │ │ └── values-zh/ │ │ └── picker_strings.xml │ ├── player/ │ │ └── com/ │ │ └── sharry/ │ │ └── lib/ │ │ └── album/ │ │ ├── VideoPlayerActivity.java │ │ └── res/ │ │ ├── drawable/ │ │ │ ├── ic_album_player_video_pasue.xml │ │ │ └── ic_album_player_video_play.xml │ │ ├── layout/ │ │ │ └── lib_album_activity_video_player.xml │ │ ├── layout-land/ │ │ │ └── lib_album_activity_video_player.xml │ │ └── values/ │ │ └── player_color.xml │ ├── taker/ │ │ └── com/ │ │ └── sharry/ │ │ └── lib/ │ │ └── album/ │ │ ├── AspectRatioFragment.java │ │ ├── ITakerContract.java │ │ ├── TakerActivity.java │ │ ├── TakerCallback.java │ │ ├── TakerCallbackLambda.java │ │ ├── TakerConfig.java │ │ ├── TakerManager.java │ │ ├── TakerPresenter.java │ │ └── res/ │ │ ├── drawable/ │ │ │ ├── ic_album_taker_aspect.xml │ │ │ ├── ic_album_taker_camera_switch.xml │ │ │ ├── ic_album_taker_denied.xml │ │ │ ├── ic_album_taker_full_screen.xml │ │ │ └── ic_album_taker_granted.xml │ │ ├── layout/ │ │ │ └── lib_ablum_activity_taker.xml │ │ ├── values/ │ │ │ ├── taker_colors.xml │ │ │ └── taker_strings.xml │ │ └── values-zh/ │ │ └── taker_strings.xml │ ├── utils/ │ │ └── com/ │ │ └── sharry/ │ │ └── lib/ │ │ └── album/ │ │ ├── ActivityStateUtil.java │ │ ├── CallbackFragment.java │ │ ├── ColorUtil.java │ │ ├── CompressUtil.java │ │ ├── Constants.java │ │ ├── DateUtil.java │ │ ├── DensityUtil.java │ │ ├── FileUtil.java │ │ ├── PermissionsCallback.java │ │ ├── PermissionsFragment.java │ │ ├── PermissionsHelper.java │ │ ├── Preconditions.java │ │ ├── SharedElementHelper.java │ │ └── VersionUtil.java │ ├── watcher/ │ │ └── com/ │ │ └── sharry/ │ │ └── lib/ │ │ └── album/ │ │ ├── DisplayAdapter.java │ │ ├── PickedPanelAdapter.java │ │ ├── WatcherActivity.java │ │ ├── WatcherCallback.java │ │ ├── WatcherCallbackLambda.java │ │ ├── WatcherConfig.java │ │ ├── WatcherContract.java │ │ ├── WatcherFragment.java │ │ ├── WatcherManager.java │ │ ├── WatcherPresenter.java │ │ └── res/ │ │ ├── drawable/ │ │ │ ├── ic_album_watcher_right_arrow.xml │ │ │ └── ic_album_watcher_video_play.xml │ │ ├── layout/ │ │ │ ├── lib_album_activity_watcher.xml │ │ │ └── lib_album_fragment_watcher_pager.xml │ │ ├── values/ │ │ │ ├── watcher_colors.xml │ │ │ ├── watcher_strings.xml │ │ │ └── watcher_themes.xml │ │ └── values-zh/ │ │ └── watcher_strings.xml │ └── widget/ │ └── com/ │ └── sharry/ │ └── lib/ │ └── album/ │ ├── CheckedIndicatorView.java │ ├── DraggableViewPager.java │ ├── PicturePickerFabBehavior.java │ ├── RecorderButton.java │ ├── photoview/ │ │ ├── Compat.java │ │ ├── CustomGestureDetector.java │ │ ├── OnGestureListener.java │ │ ├── OnMatrixChangedListener.java │ │ ├── OnOutsidePhotoTapListener.java │ │ ├── OnPhotoTapListener.java │ │ ├── OnScaleChangedListener.java │ │ ├── OnSingleFlingListener.java │ │ ├── OnViewDragListener.java │ │ ├── OnViewTapListener.java │ │ ├── PhotoView.java │ │ ├── PhotoViewAttacher.java │ │ └── Util.java │ └── toolbar/ │ ├── AppBarHelper.java │ ├── Builder.java │ ├── ImageViewOptions.java │ ├── Options.java │ ├── SToolbar.java │ ├── Style.java │ ├── TextViewOptions.java │ ├── Utils.java │ ├── ViewOptions.java │ └── res/ │ └── values/ │ └── lib_toolbar_attrs.xml ├── lib-media-recorder/ │ ├── .gitignore │ ├── CMakeLists.txt │ ├── Readme.markdown │ ├── build.gradle │ ├── proguard-rules.pro │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ ├── api/ │ │ └── com/ │ │ └── sharry/ │ │ └── lib/ │ │ └── media/ │ │ └── recorder/ │ │ ├── IMediaRecorder.java │ │ ├── IRecorderCallback.java │ │ ├── Options.java │ │ └── SMediaRecorder.java │ ├── cpp/ │ │ ├── ConstDefine.h │ │ ├── JNICall.cpp │ │ ├── JNICall.h │ │ ├── OpenSLRecorder.cpp │ │ ├── OpenSLRecorder.h │ │ ├── RecordBuffer.cpp │ │ ├── RecordBuffer.h │ │ └── native-bridge-recorder.cpp │ ├── encoder/ │ │ └── com/ │ │ └── sharry/ │ │ └── lib/ │ │ └── media/ │ │ └── recorder/ │ │ ├── AACEncoder.java │ │ ├── EncodeType.java │ │ ├── EncoderFactory.java │ │ ├── H264Encoder.java │ │ ├── H264Render.java │ │ ├── IAudioEncoder.java │ │ └── IVideoEncoder.java │ ├── muxer/ │ │ └── com/ │ │ └── sharry/ │ │ └── lib/ │ │ └── media/ │ │ └── recorder/ │ │ ├── IMuxer.java │ │ ├── MPEG4Muxer.java │ │ ├── MuxerFactory.java │ │ └── MuxerType.java │ ├── pcmprovider/ │ │ └── com/ │ │ └── sharry/ │ │ └── lib/ │ │ └── media/ │ │ └── recorder/ │ │ ├── DefaultPCMProvider.java │ │ ├── IPCMProvider.java │ │ └── OpenSLESPCMProvider.java │ ├── recorder/ │ │ └── com/ │ │ └── sharry/ │ │ └── lib/ │ │ └── media/ │ │ └── recorder/ │ │ ├── AudioRecorder.java │ │ ├── BaseMediaRecorder.java │ │ └── VideoRecorder.java │ └── utils/ │ └── com/ │ └── sharry/ │ └── lib/ │ └── media/ │ └── recorder/ │ ├── AVPoolExecutor.java │ ├── FileUtil.java │ ├── NetworkUtil.java │ └── VersionUtil.java ├── lib-opengles/ │ ├── .gitignore │ ├── build.gradle │ ├── proguard-rules.pro │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ ├── java/ │ │ └── com/ │ │ └── sharry/ │ │ └── lib/ │ │ └── opengles/ │ │ ├── surface/ │ │ │ └── ContextSharedGLSurfaceView.java │ │ ├── texture/ │ │ │ ├── GLTextureView.java │ │ │ └── ITextureRenderer.java │ │ └── util/ │ │ ├── EglCore.java │ │ ├── FboHelper.java │ │ ├── GlMatrixUtil.java │ │ └── GlUtil.java │ └── utils/ │ └── com/ │ └── sharry/ │ └── lib/ │ └── opengles/ │ ├── EglCore.java │ └── GlUtil.java ├── lib-scamera/ │ ├── .gitignore │ ├── build.gradle │ ├── proguard-rules.pro │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ ├── api/ │ │ └── com/ │ │ └── sharry/ │ │ └── lib/ │ │ └── camera/ │ │ └── SCameraView.java │ ├── common/ │ │ └── com/ │ │ └── sharry/ │ │ └── lib/ │ │ └── camera/ │ │ ├── AspectRatio.java │ │ ├── CameraContext.java │ │ ├── Constants.java │ │ ├── Size.java │ │ └── SizeMap.java │ ├── device/ │ │ └── com/ │ │ └── sharry/ │ │ └── lib/ │ │ └── camera/ │ │ ├── AbsCameraDevice.java │ │ ├── Camera1Device.java │ │ └── ICameraDevice.java │ ├── orientation/ │ │ └── com/ │ │ └── sharry/ │ │ └── lib/ │ │ └── camera/ │ │ └── ScreenOrientationDetector.java │ ├── previewer/ │ │ └── com/ │ │ └── sharry/ │ │ └── lib/ │ │ └── camera/ │ │ ├── DefaultPreviewerRenderer.java │ │ ├── IPreviewer.java │ │ ├── Previewer.java │ │ ├── PreviewerRendererImpl.java │ │ ├── PreviewerRendererWrapper.java │ │ └── ScaleType.java │ └── res/ │ ├── raw/ │ │ ├── camera_fragment_shader.glsl │ │ └── camera_vertex_shader.glsl │ └── values/ │ ├── attrs.xml │ ├── public.xml │ └── styles.xml └── settings.gradle