gitextract_vzylt4jg/ ├── .gitignore ├── README.md ├── build.gradle ├── buildApk.bat ├── buildApk.sh ├── data/ │ ├── .gitignore │ ├── CMakeLists.txt │ ├── build.gradle │ ├── proguard-rules.pro │ └── src/ │ ├── androidTest/ │ │ └── java/ │ │ └── com/ │ │ └── yalin/ │ │ └── data/ │ │ └── ExampleInstrumentedTest.java │ ├── main/ │ │ ├── AndroidManifest.xml │ │ ├── cpp/ │ │ │ └── facet_id-lib.cpp │ │ ├── java/ │ │ │ └── com/ │ │ │ └── yalin/ │ │ │ └── style/ │ │ │ └── data/ │ │ │ ├── SyncConfig.java │ │ │ ├── cache/ │ │ │ │ ├── AdvanceWallpaperCache.kt │ │ │ │ ├── AdvanceWallpaperCacheImpl.kt │ │ │ │ ├── GalleryWallpaperCache.kt │ │ │ │ ├── SourcesCache.kt │ │ │ │ ├── SourcesCacheImpl.kt │ │ │ │ ├── WallpaperCache.java │ │ │ │ └── WallpaperCacheImpl.java │ │ │ ├── entity/ │ │ │ │ ├── AdvanceWallpaperEntity.java │ │ │ │ ├── DeviceInfo.java │ │ │ │ ├── GalleryWallpaperEntity.kt │ │ │ │ ├── HttpRequestBody.java │ │ │ │ ├── SourceEntity.kt │ │ │ │ ├── WallpaperEntity.java │ │ │ │ └── mapper/ │ │ │ │ ├── AdvanceWallpaperEntityMapper.java │ │ │ │ └── WallpaperEntityMapper.java │ │ │ ├── exception/ │ │ │ │ ├── LikeException.java │ │ │ │ ├── NetworkConnectionException.java │ │ │ │ ├── NoContentException.java │ │ │ │ ├── RemoteServerException.java │ │ │ │ └── ReswitchException.java │ │ │ ├── executor/ │ │ │ │ ├── JobExecutor.java │ │ │ │ └── SerialJobExecutor.java │ │ │ ├── extensions/ │ │ │ │ └── DelegateExt.kt │ │ │ ├── lock/ │ │ │ │ ├── LikeWallpaperLock.java │ │ │ │ ├── OpenInputStreamLock.java │ │ │ │ ├── ResourceLock.java │ │ │ │ └── SelectSourceLock.java │ │ │ ├── log/ │ │ │ │ └── LogUtil.java │ │ │ ├── observable/ │ │ │ │ ├── SourcesObservableImpl.kt │ │ │ │ └── WallpaperObservableImpl.kt │ │ │ ├── repository/ │ │ │ │ ├── AdvanceWallpaperDataRepository.kt │ │ │ │ ├── GalleryWallpaperDataRepository.kt │ │ │ │ ├── SourcesDataRepository.kt │ │ │ │ ├── StyleWallpaperDataRepository.java │ │ │ │ └── datasource/ │ │ │ │ ├── AdvanceWallpaperDataStore.kt │ │ │ │ ├── AdvanceWallpaperDataStoreFactory.kt │ │ │ │ ├── AdvanceWallpaperDataStoreImpl.kt │ │ │ │ ├── CacheWallpaperDataStore.java │ │ │ │ ├── DbWallpaperDataStore.java │ │ │ │ ├── GalleryWallpaperDataStore.kt │ │ │ │ ├── GalleryWallpaperDataStoreFactory.kt │ │ │ │ ├── RemoteAdvanceWallpaperDataStore.kt │ │ │ │ ├── SourcesDataStore.kt │ │ │ │ ├── SourcesDataStoreFactory.kt │ │ │ │ ├── SourcesDataStoreImpl.kt │ │ │ │ ├── StyleWallpaperDataStoreFactory.java │ │ │ │ ├── WallpaperDataStore.java │ │ │ │ ├── io/ │ │ │ │ │ ├── AdvanceWallpaperHandler.kt │ │ │ │ │ ├── GalleryWallpapersHandler.kt │ │ │ │ │ ├── JSONHandler.java │ │ │ │ │ ├── RemoveGalleryWallpapersHandler.kt │ │ │ │ │ └── WallpapersHandler.java │ │ │ │ ├── net/ │ │ │ │ │ ├── DataFetcher.java │ │ │ │ │ └── RemoteAdvanceWallpaperFetcher.java │ │ │ │ ├── provider/ │ │ │ │ │ ├── StyleContract.java │ │ │ │ │ ├── StyleContractHelper.java │ │ │ │ │ ├── StyleDatabase.java │ │ │ │ │ ├── StyleProvider.java │ │ │ │ │ ├── StyleProviderUriMatcher.java │ │ │ │ │ └── StyleUriEnum.java │ │ │ │ └── sync/ │ │ │ │ ├── RemoteStyleDataFetcher.java │ │ │ │ ├── StyleDataHandler.java │ │ │ │ ├── SyncAdapter.java │ │ │ │ ├── SyncHelper.java │ │ │ │ ├── SyncService.java │ │ │ │ ├── account/ │ │ │ │ │ ├── Account.java │ │ │ │ │ ├── Authenticator.java │ │ │ │ │ └── AuthenticatorService.java │ │ │ │ └── gallery/ │ │ │ │ └── GalleryScheduleService.kt │ │ │ └── utils/ │ │ │ ├── ChecksumUtil.java │ │ │ ├── DeviceUtil.java │ │ │ ├── FacetIdUtil.java │ │ │ ├── HttpRequestUtil.java │ │ │ ├── NativeFileHelper.kt │ │ │ ├── NetworkUtil.java │ │ │ ├── SelectionBuilder.java │ │ │ ├── TimeUtil.java │ │ │ ├── UriUtil.kt │ │ │ ├── WallpaperFileHelper.java │ │ │ └── WallpaperUtil.kt │ │ └── res/ │ │ ├── values/ │ │ │ └── strings.xml │ │ ├── values-zh-rCN/ │ │ │ └── strings.xml │ │ └── xml/ │ │ ├── authenticator.xml │ │ └── syncadapter.xml │ └── test/ │ └── java/ │ └── com/ │ └── yalin/ │ └── data/ │ └── ExampleUnitTest.java ├── domain/ │ ├── .gitignore │ ├── build.gradle │ └── src/ │ └── main/ │ └── java/ │ └── com/ │ └── yalin/ │ └── style/ │ └── domain/ │ ├── AdvanceWallpaper.java │ ├── GalleryWallpaper.java │ ├── Source.java │ ├── Wallpaper.java │ ├── exception/ │ │ ├── DefaultErrorBundle.java │ │ └── ErrorBundle.java │ ├── executor/ │ │ ├── PostExecutionThread.java │ │ ├── SerialThreadExecutor.java │ │ └── ThreadExecutor.java │ ├── interactor/ │ │ ├── AddGalleryWallpaper.java │ │ ├── DefaultObserver.java │ │ ├── DownloadAdvanceWallpaper.java │ │ ├── ForceNow.java │ │ ├── GetAdvanceWallpapers.java │ │ ├── GetGalleryUpdateInterval.java │ │ ├── GetGalleryWallpaper.java │ │ ├── GetSelectedAdvanceWallpaper.java │ │ ├── GetSelectedSource.java │ │ ├── GetSources.java │ │ ├── GetWallpaper.java │ │ ├── GetWallpaperCount.java │ │ ├── LikeWallpaper.java │ │ ├── LoadAdvanceWallpaper.java │ │ ├── ObserverSources.java │ │ ├── ObserverWallpaper.java │ │ ├── OpenWallpaperInputStream.java │ │ ├── ReadAdvanceAd.java │ │ ├── RemoveGalleryWallpaper.java │ │ ├── SelectAdvanceWallpaper.java │ │ ├── SelectSource.java │ │ ├── SetGalleryUpdateInterval.java │ │ ├── SwitchWallpaper.java │ │ └── UseCase.java │ ├── observable/ │ │ ├── SourcesObservable.java │ │ └── WallpaperObservable.java │ └── repository/ │ ├── SourcesRepository.java │ └── WallpaperRepository.java ├── engine/ │ ├── .gitignore │ ├── build.gradle │ ├── proguard-rules.pro │ └── src/ │ ├── androidTest/ │ │ └── java/ │ │ └── com/ │ │ └── yalin/ │ │ └── style/ │ │ └── engine/ │ │ └── ExampleInstrumentedTest.java │ ├── main/ │ │ ├── AndroidManifest.xml │ │ ├── java/ │ │ │ ├── com/ │ │ │ │ └── yalin/ │ │ │ │ └── style/ │ │ │ │ └── engine/ │ │ │ │ ├── GDXWallpaperServiceProxy.kt │ │ │ │ ├── GLWallpaperServiceProxy.kt │ │ │ │ ├── IProvider.java │ │ │ │ ├── ProxyApi.java │ │ │ │ ├── ProxyProvider.kt │ │ │ │ ├── WallpaperActiveCallback.kt │ │ │ │ ├── WallpaperServiceProxy.kt │ │ │ │ ├── advance/ │ │ │ │ │ ├── AnimationWallpaper.java │ │ │ │ │ ├── BokehRainbowCircle.java │ │ │ │ │ └── BokehRainbowWallpaper.java │ │ │ │ ├── component/ │ │ │ │ │ ├── ComponentContext.java │ │ │ │ │ └── StyleClassLoader.kt │ │ │ │ └── resource/ │ │ │ │ ├── BrandUtil.java │ │ │ │ ├── CompatResources.java │ │ │ │ ├── ReflectUtil.java │ │ │ │ └── ResourcesManager.java │ │ │ └── net/ │ │ │ └── rbgrn/ │ │ │ └── android/ │ │ │ └── glwallpaperservice/ │ │ │ ├── BaseConfigChooser.java │ │ │ └── GLWallpaperService.java │ │ └── res/ │ │ └── values/ │ │ └── strings.xml │ └── test/ │ └── java/ │ └── com/ │ └── yalin/ │ └── style/ │ └── engine/ │ └── ExampleUnitTest.java ├── gradle/ │ └── wrapper/ │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradle.properties ├── gradlew ├── gradlew.bat ├── presentation/ │ ├── .gitignore │ ├── build.gradle │ ├── component-proguard.pro │ ├── google-services.json │ ├── proguard-rules.pro │ └── src/ │ ├── androidTest/ │ │ └── java/ │ │ └── com/ │ │ └── yalin/ │ │ └── style/ │ │ ├── ExampleInstrumentedTest.java │ │ ├── provider/ │ │ │ └── DatabaseTest.java │ │ └── sync/ │ │ └── SyncAdapterTest.java │ ├── demo/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── yalin/ │ │ │ └── style/ │ │ │ └── util/ │ │ │ └── AdUtil.kt │ │ └── res/ │ │ └── values/ │ │ └── ad_strings.xml │ ├── main/ │ │ ├── AndroidManifest.xml │ │ ├── java/ │ │ │ └── com/ │ │ │ └── yalin/ │ │ │ └── style/ │ │ │ ├── LockScreenVisibleReceiver.kt │ │ │ ├── StyleApplication.kt │ │ │ ├── StyleWallpaperService.kt │ │ │ ├── StyleWallpaperServiceMirror.kt │ │ │ ├── UIThread.kt │ │ │ ├── WallpaperDetailViewport.kt │ │ │ ├── analytics/ │ │ │ │ ├── Analytics.kt │ │ │ │ ├── Event.kt │ │ │ │ └── IAnalytics.kt │ │ │ ├── engine/ │ │ │ │ └── StyleWallpaperProxy.kt │ │ │ ├── event/ │ │ │ │ ├── MainContainerInsetsChangedEvent.java │ │ │ │ ├── SeenTutorialEvent.java │ │ │ │ ├── StyleWallpaperSizeChangedEvent.java │ │ │ │ ├── SwitchWallpaperServiceEvent.java │ │ │ │ ├── SwitchingPhotosStateChangedEvent.java │ │ │ │ ├── SystemWallpaperSizeChangedEvent.java │ │ │ │ ├── WallpaperActivateEvent.java │ │ │ │ ├── WallpaperDetailOpenedEvent.java │ │ │ │ └── WallpaperSwitchEvent.java │ │ │ ├── exception/ │ │ │ │ └── ErrorMessageFactory.java │ │ │ ├── extensions/ │ │ │ │ └── DelegatesExtensions.kt │ │ │ ├── injection/ │ │ │ │ ├── HasComponent.kt │ │ │ │ ├── PerActivity.kt │ │ │ │ ├── component/ │ │ │ │ │ ├── ApplicationComponent.kt │ │ │ │ │ ├── SourceComponent.kt │ │ │ │ │ └── WallpaperComponent.kt │ │ │ │ └── modules/ │ │ │ │ ├── ApplicationModule.kt │ │ │ │ ├── SourceModule.kt │ │ │ │ └── WallpaperModule.kt │ │ │ ├── mapper/ │ │ │ │ ├── AdvanceWallpaperItemMapper.kt │ │ │ │ └── WallpaperItemMapper.kt │ │ │ ├── model/ │ │ │ │ ├── AdvanceWallpaperItem.java │ │ │ │ ├── GalleryWallpaperItem.java │ │ │ │ ├── SourceItem.kt │ │ │ │ └── WallpaperItem.java │ │ │ ├── presenter/ │ │ │ │ ├── AdvanceSettingPresenter.kt │ │ │ │ ├── GallerySettingPresenter.kt │ │ │ │ ├── Presenter.kt │ │ │ │ ├── SettingsChooseSourcePresenter.kt │ │ │ │ └── WallpaperDetailPresenter.kt │ │ │ ├── render/ │ │ │ │ ├── BitmapRegionLoader.java │ │ │ │ ├── DemoRenderController.kt │ │ │ │ ├── GLColorOverlay.java │ │ │ │ ├── GLPicture.java │ │ │ │ ├── GLTextureView.java │ │ │ │ ├── GLUtil.java │ │ │ │ ├── ImageBlurrer.java │ │ │ │ ├── ImageUtil.java │ │ │ │ ├── RenderController.kt │ │ │ │ ├── StyleBlurRenderer.java │ │ │ │ └── TickingFloatAnimator.java │ │ │ ├── settings/ │ │ │ │ └── Prefs.java │ │ │ ├── util/ │ │ │ │ ├── ImageLoader.java │ │ │ │ ├── MathUtil.java │ │ │ │ ├── MultiSelectionController.kt │ │ │ │ ├── ScrimUtil.java │ │ │ │ ├── SettingsUtil.java │ │ │ │ ├── ShareUtil.kt │ │ │ │ ├── SvgPathParser.java │ │ │ │ └── TypefaceUtil.java │ │ │ └── view/ │ │ │ ├── AdvanceSettingView.kt │ │ │ ├── GallerySettingView.kt │ │ │ ├── LoadingDataView.kt │ │ │ ├── SourceChooseView.kt │ │ │ ├── WallpaperDetailView.kt │ │ │ ├── activity/ │ │ │ │ ├── AboutActivity.kt │ │ │ │ ├── AdvanceSettingActivity.kt │ │ │ │ ├── BaseActivity.kt │ │ │ │ ├── GallerySettingActivity.kt │ │ │ │ ├── SettingsActivity.kt │ │ │ │ └── StyleActivity.kt │ │ │ ├── component/ │ │ │ │ ├── CircleProgressView.java │ │ │ │ ├── DownloadingDialog.kt │ │ │ │ ├── DrawInsetsFrameLayout.java │ │ │ │ ├── GalleryEmptyStateGraphicView.kt │ │ │ │ ├── ObservableHorizontalScrollView.kt │ │ │ │ ├── PanScaleProxyView.java │ │ │ │ ├── Scrollbar.kt │ │ │ │ ├── ShadowDipsTextView.kt │ │ │ │ ├── TintableImageButton.kt │ │ │ │ └── Zoomer.kt │ │ │ └── fragment/ │ │ │ ├── AnimatedStyleLogoFragment.kt │ │ │ ├── BaseFragment.kt │ │ │ ├── SettingsAdvanceFragment.kt │ │ │ ├── SettingsChooseSourceFragment.kt │ │ │ ├── StyleRenderFragment.java │ │ │ ├── TutorialFragment.kt │ │ │ └── WallpaperDetailFragment.kt │ │ └── res/ │ │ ├── anim/ │ │ │ └── image_fade_in.xml │ │ ├── anim-v21/ │ │ │ └── tutorial_icon_emanate_interpolator.xml │ │ ├── animator/ │ │ │ ├── fade_in.xml │ │ │ ├── fade_out.xml │ │ │ ├── tutorial_icon_emanate_wave1.xml │ │ │ ├── tutorial_icon_emanate_wave1_path.xml │ │ │ ├── tutorial_icon_emanate_wave2.xml │ │ │ ├── tutorial_icon_emanate_wave2_path.xml │ │ │ └── tutorial_icon_overlay_state_list.xml │ │ ├── color/ │ │ │ └── selector_skip_tint.xml │ │ ├── drawable/ │ │ │ ├── gallery_ic_add.xml │ │ │ ├── gallery_ic_add_folder.xml │ │ │ ├── gallery_ic_add_photo.xml │ │ │ ├── gallery_ic_folder.xml │ │ │ ├── grey_selectable_item_background_circle.xml │ │ │ ├── intro_background_protection.xml │ │ │ ├── popup_background.xml │ │ │ ├── scrubber_control_selector.xml │ │ │ ├── scrubber_progress_blur_amount.xml │ │ │ ├── scrubber_progress_dim_amount.xml │ │ │ ├── scrubber_progress_grey_amount.xml │ │ │ ├── scrubber_progress_horizontal.xml │ │ │ ├── settings_source_item_image_overlay.xml │ │ │ ├── tutorial_icon_on_overlay.xml │ │ │ └── white_circle_button.xml │ │ ├── drawable-v21/ │ │ │ ├── avd_tutorial_icon_emanate.xml │ │ │ ├── grey_selectable_item_background_circle.xml │ │ │ ├── settings_source_item_image_overlay.xml │ │ │ ├── tutorial_icon_emanate.xml │ │ │ └── tutorial_icon_on_overlay.xml │ │ ├── layout/ │ │ │ ├── activity_about.xml │ │ │ ├── activity_advance_setting.xml │ │ │ ├── activity_gallery_setting.xml │ │ │ ├── activity_main.xml │ │ │ ├── activity_settings.xml │ │ │ ├── advance_chosen_wallpaper_item.xml │ │ │ ├── animated_logo_fragment.xml │ │ │ ├── dialog_downloading.xml │ │ │ ├── gallery_chosen_photo_item.xml │ │ │ ├── gallery_chosen_photo_tree_item.xml │ │ │ ├── layout_include_about_content.xml │ │ │ ├── layout_include_active.xml │ │ │ ├── layout_include_settings_content.xml │ │ │ ├── layout_include_tutorial_content.xml │ │ │ ├── layout_include_wallpaper_detail.xml │ │ │ ├── layout_include_wallpaper_tutorial.xml │ │ │ ├── layout_settings_choose_source.xml │ │ │ ├── layout_style_settings.xml │ │ │ ├── layout_wallpaper_detail.xml │ │ │ ├── settings_ab_spinner_list_item.xml │ │ │ ├── settings_ab_spinner_list_item_dropdown.xml │ │ │ └── settings_choose_source_item.xml │ │ ├── menu/ │ │ │ ├── advance_activity.xml │ │ │ ├── gallery_activity.xml │ │ │ ├── gallery_selection.xml │ │ │ ├── menu_settings.xml │ │ │ ├── menu_settings_advanced.xml │ │ │ └── style_overflow.xml │ │ ├── values/ │ │ │ ├── attrs.xml │ │ │ ├── colors.xml │ │ │ ├── dimens.xml │ │ │ ├── ids.xml │ │ │ ├── integers.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ ├── values-v19/ │ │ │ └── styles.xml │ │ ├── values-v21/ │ │ │ └── styles.xml │ │ ├── values-w820dp/ │ │ │ └── dimens.xml │ │ ├── values-zh-rCN/ │ │ │ └── strings.xml │ │ └── xml/ │ │ ├── shortcuts.xml │ │ └── wallpaper.xml │ ├── production/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── yalin/ │ │ │ └── style/ │ │ │ └── util/ │ │ │ └── AdUtil.kt │ │ └── res/ │ │ └── values/ │ │ └── ad_strings.xml │ └── test/ │ └── java/ │ └── com/ │ └── yalin/ │ └── style/ │ └── ExampleUnitTest.java ├── settings.gradle └── switch.properties