├── app ├── .gitignore ├── src │ └── main │ │ ├── ic_launcher-playstore.png │ │ ├── res │ │ ├── drawable │ │ │ ├── img_drdisagree.webp │ │ │ ├── buymeacoffee_bg.webp │ │ │ ├── buymeacoffee_fg.webp │ │ │ ├── color_table_square.xml │ │ │ ├── bg_icon_rounded.xml │ │ │ ├── divider_toggle_button.xml │ │ │ ├── bg_container_mid.xml │ │ │ ├── preview_color_picker.xml │ │ │ ├── bg_popup_menu.xml │ │ │ ├── ic_switch_thumb.xml │ │ │ ├── bg_searchbox.xml │ │ │ ├── ic_nav_colors.xml │ │ │ ├── ic_nav_styles.xml │ │ │ ├── ic_nav_theme.xml │ │ │ ├── bg_searchbox_transparent.xml │ │ │ ├── ic_nav_settings.xml │ │ │ ├── ic_github_scaled.xml │ │ │ ├── ic_help_scaled.xml │ │ │ ├── ic_news_scaled.xml │ │ │ ├── ic_launcher_background.xml │ │ │ ├── bg_container_top.xml │ │ │ ├── bg_container_bottom.xml │ │ │ ├── ic_clear.xml │ │ │ ├── ic_tick.xml │ │ │ ├── ic_cross.xml │ │ │ ├── ic_light_dark.xml │ │ │ ├── ic_brush.xml │ │ │ ├── ic_add.xml │ │ │ ├── ic_nav_theme_filled.xml │ │ │ ├── ic_info.xml │ │ │ ├── ic_service.xml │ │ │ ├── ic_invert_colors.xml │ │ │ ├── ic_dark_icon.xml │ │ │ ├── ic_paint.xml │ │ │ ├── ic_backup.xml │ │ │ ├── ic_arrow_end.xml │ │ │ ├── ic_restore.xml │ │ │ ├── ic_toolbar_chevron.xml │ │ │ ├── ic_checked_filled.xml │ │ │ ├── ic_search.xml │ │ │ ├── ic_close.xml │ │ │ ├── ic_edit.xml │ │ │ ├── ic_filter_list.xml │ │ │ ├── ic_text.xml │ │ │ ├── ic_color_picker.xml │ │ │ ├── ic_checked_outline.xml │ │ │ ├── divider_credits_item.xml │ │ │ ├── ic_nav_theme_outline.xml │ │ │ ├── ic_extension.xml │ │ │ ├── ic_attach_file.xml │ │ │ ├── ic_color_fill.xml │ │ │ ├── ic_nav_styles_filled.xml │ │ │ ├── ic_warning.xml │ │ │ ├── ic_user_account.xml │ │ │ ├── ic_android.xml │ │ │ ├── ic_delete.xml │ │ │ ├── ic_launcher_notification.xml │ │ │ ├── ic_open_in_new.xml │ │ │ ├── ic_nav_styles_outline.xml │ │ │ ├── ic_renew.xml │ │ │ ├── ic_nav_colors_filled.xml │ │ │ ├── ic_nav_settings_filled.xml │ │ │ ├── ic_update.xml │ │ │ ├── ic_reset.xml │ │ │ ├── ic_settings_starry.xml │ │ │ ├── ic_app_widgets.xml │ │ │ ├── ic_adb.xml │ │ │ ├── ic_counter_one.xml │ │ │ ├── ic_github.xml │ │ │ ├── ic_launcher_foreground.xml │ │ │ ├── ic_stop.xml │ │ │ ├── ic_ab_back_material.xml │ │ │ ├── ic_help.xml │ │ │ ├── seekbar_track.xml │ │ │ ├── ic_nav_colors_outline.xml │ │ │ ├── ic_table_view.xml │ │ │ ├── ic_counter_two.xml │ │ │ ├── ic_news.xml │ │ │ ├── ic_counter_three.xml │ │ │ ├── ic_nav_settings_outline.xml │ │ │ ├── ic_notification_error.xml │ │ │ └── ic_notification.xml │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.webp │ │ │ ├── ic_launcher_round.webp │ │ │ ├── ic_launcher_background.webp │ │ │ └── ic_launcher_foreground.webp │ │ ├── mipmap-mdpi │ │ │ ├── ic_launcher.webp │ │ │ ├── ic_launcher_round.webp │ │ │ ├── ic_launcher_background.webp │ │ │ └── ic_launcher_foreground.webp │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.webp │ │ │ ├── ic_launcher_round.webp │ │ │ ├── ic_launcher_background.webp │ │ │ └── ic_launcher_foreground.webp │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.webp │ │ │ ├── ic_launcher_round.webp │ │ │ ├── ic_launcher_background.webp │ │ │ └── ic_launcher_foreground.webp │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.webp │ │ │ ├── ic_launcher_round.webp │ │ │ ├── ic_launcher_background.webp │ │ │ └── ic_launcher_foreground.webp │ │ ├── values-night │ │ │ ├── colors.xml │ │ │ ├── ic_launcher_background.xml │ │ │ └── themes.xml │ │ ├── color │ │ │ ├── color_seekbar_progress.xml │ │ │ ├── color_searchbar_background.xml │ │ │ └── color_seekbar_progress_disabled.xml │ │ ├── values │ │ │ ├── colors.xml │ │ │ ├── ic_launcher_background.xml │ │ │ ├── dimens.xml │ │ │ ├── arrays.xml │ │ │ └── themes.xml │ │ ├── values-v31 │ │ │ └── colors.xml │ │ ├── values-v32 │ │ │ └── colors.xml │ │ ├── values-v33 │ │ │ ├── colors.xml │ │ │ └── styles.xml │ │ ├── values-night-v31 │ │ │ └── colors.xml │ │ ├── values-night-v32 │ │ │ └── colors.xml │ │ ├── values-night-v33 │ │ │ └── colors.xml │ │ ├── anim │ │ │ ├── fade_out.xml │ │ │ ├── slide_in_left.xml │ │ │ ├── slide_in_right.xml │ │ │ ├── slide_out_left.xml │ │ │ ├── slide_out_right.xml │ │ │ └── fade_in.xml │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ ├── layout │ │ │ ├── item_style_preview.xml │ │ │ ├── activity_main.xml │ │ │ ├── view_about_app_credits_header.xml │ │ │ ├── view_text_field_outlined.xml │ │ │ ├── fragment_about.xml │ │ │ ├── view_wallpaper_color.xml │ │ │ ├── view_toolbar.xml │ │ │ └── fragment_home.xml │ │ ├── menu │ │ │ ├── settings_menu.xml │ │ │ ├── custom_style_menu.xml │ │ │ └── bottom_nav_menu.xml │ │ ├── xml │ │ │ ├── backup_rules.xml │ │ │ ├── data_extraction_rules.xml │ │ │ └── locales_config.xml │ │ └── drawable-night │ │ │ └── ic_toolbar_chevron.xml │ │ ├── aidl │ │ └── com │ │ │ └── drdisagree │ │ │ └── colorblendr │ │ │ ├── extension │ │ │ └── MethodInterface.aidl │ │ │ ├── utils │ │ │ └── fabricated │ │ │ │ └── FabricatedOverlayResource.aidl │ │ │ └── service │ │ │ ├── IShizukuConnection.aidl │ │ │ └── IRootConnection.aidl │ │ └── java │ │ └── com │ │ └── drdisagree │ │ └── colorblendr │ │ ├── data │ │ ├── enums │ │ │ ├── AppType.kt │ │ │ ├── WorkMethod.kt │ │ │ └── MonetStyle.kt │ │ ├── models │ │ │ ├── AppInfoModel.kt │ │ │ ├── StyleModel.kt │ │ │ ├── CustomStyleModel.kt │ │ │ └── AboutAppModel.kt │ │ ├── domain │ │ │ └── RefreshCoordinator.kt │ │ ├── database │ │ │ └── Converters.kt │ │ ├── repository │ │ │ └── CustomStyleRepository.kt │ │ └── dao │ │ │ └── CustomStyleDao.kt │ │ ├── utils │ │ ├── annotations │ │ │ └── Test.kt │ │ ├── monet │ │ │ ├── quantize │ │ │ │ ├── Quantizer.java │ │ │ │ ├── QuantizerResult.java │ │ │ │ └── PointProvider.java │ │ │ ├── dynamiccolor │ │ │ │ ├── Variant.java │ │ │ │ └── TonePolarity.java │ │ │ └── utils │ │ │ │ └── StringUtils.java │ │ └── wifiadb │ │ │ └── AdbPairingNotificationWorker.kt │ │ ├── provider │ │ └── RemotePrefProvider.kt │ │ ├── ui │ │ ├── fragments │ │ │ ├── BaseFragment.kt │ │ │ └── onboarding │ │ │ │ └── pages │ │ │ │ └── OnboardingItem1Fragment.kt │ │ ├── adapters │ │ │ ├── FragmentAdapter.kt │ │ │ └── OnboardingAdapter.kt │ │ ├── views │ │ │ └── ResizableSeekbar.kt │ │ └── viewmodels │ │ │ └── SharedViewModel.kt │ │ └── service │ │ ├── ServiceLauncher.kt │ │ ├── ScheduledJobService.kt │ │ └── RestartBroadcastReceiver.kt └── proguard-rules.pro ├── libadb ├── .gitignore ├── src │ └── main │ │ ├── java │ │ └── io │ │ │ └── github │ │ │ └── muntashirakon │ │ │ └── adb │ │ │ ├── android │ │ │ └── package.html │ │ │ ├── AdbPairingRequiredException.java │ │ │ ├── AdbAuthenticationFailedException.java │ │ │ ├── ByteArrayNoThrowOutputStream.java │ │ │ ├── StringCompat.java │ │ │ ├── AdbOutputStream.java │ │ │ ├── KeyPair.java │ │ │ └── AdbInputStream.java │ │ └── AndroidManifest.xml ├── LICENSE └── build.gradle ├── systemstubs ├── .gitignore ├── consumer-rules.pro ├── src │ └── main │ │ ├── AndroidManifest.xml │ │ ├── aidl │ │ └── android │ │ │ ├── os │ │ │ ├── UserHandle.aidl │ │ │ └── IUserManager.aidl │ │ │ ├── content │ │ │ ├── pm │ │ │ │ └── UserInfo.aidl │ │ │ └── om │ │ │ │ ├── OverlayInfo.aidl │ │ │ │ ├── OverlayIdentifier.aidl │ │ │ │ └── OverlayManagerTransaction.aidl │ │ │ └── app │ │ │ ├── IActivityManager.aidl │ │ │ └── IProcessObserver.aidl │ │ └── java │ │ └── android │ │ ├── app │ │ └── ProfilerInfo.java │ │ └── os │ │ └── UserHandle.java ├── build.gradle.kts └── proguard-rules.pro ├── colorpickerdialog ├── .gitignore ├── src │ └── main │ │ ├── AndroidManifest.xml │ │ ├── res │ │ ├── values │ │ │ ├── dimens.xml │ │ │ ├── styles.xml │ │ │ ├── attrs.xml │ │ │ └── colors.xml │ │ ├── drawable │ │ │ ├── color_picker_thumb.xml │ │ │ └── ic_add_a_photo.xml │ │ ├── layout │ │ │ ├── colorpicker_item_image.xml │ │ │ ├── colorpicker_layout_preset_picker.xml │ │ │ └── colorpicker_item_color.xml │ │ ├── values-zh-rCN │ │ │ └── strings.xml │ │ ├── values-zh-rTW │ │ │ └── strings.xml │ │ ├── values-ja-rJP │ │ │ └── strings.xml │ │ ├── values-ko-rKR │ │ │ └── strings.xml │ │ ├── values-vi-rVN │ │ │ └── strings.xml │ │ ├── values-ar-rSA │ │ │ └── strings.xml │ │ ├── values-bn-rBD │ │ │ └── strings.xml │ │ ├── values-tr-rTR │ │ │ └── strings.xml │ │ ├── values-af-rZA │ │ │ └── strings.xml │ │ ├── values-ca-rES │ │ │ └── strings.xml │ │ ├── values-cs-rCZ │ │ │ └── strings.xml │ │ ├── values-da-rDK │ │ │ └── strings.xml │ │ ├── values-el-rGR │ │ │ └── strings.xml │ │ ├── values-fi-rFI │ │ │ └── strings.xml │ │ ├── values-hi-rIN │ │ │ └── strings.xml │ │ ├── values-iw-rIL │ │ │ └── strings.xml │ │ ├── values-nl-rNL │ │ │ └── strings.xml │ │ ├── values-no-rNO │ │ │ └── strings.xml │ │ ├── values-pt-rPT │ │ │ └── strings.xml │ │ ├── values-ro-rRO │ │ │ └── strings.xml │ │ ├── values-sr-rSP │ │ │ └── strings.xml │ │ ├── values-sv-rSE │ │ │ └── strings.xml │ │ ├── values-uk-rUA │ │ │ └── strings.xml │ │ ├── values-hu-rHU │ │ │ └── strings.xml │ │ ├── values-pl-rPL │ │ │ └── strings.xml │ │ ├── values-ru-rRU │ │ │ └── strings.xml │ │ ├── values-pt-rBR │ │ │ └── strings.xml │ │ ├── values-es-rES │ │ │ └── strings.xml │ │ ├── values-de-rDE │ │ │ └── strings.xml │ │ ├── values-it-rIT │ │ │ └── strings.xml │ │ └── values-fr-rFR │ │ │ └── strings.xml │ │ └── java │ │ └── me │ │ └── jfenn │ │ └── colorpickerdialog │ │ ├── interfaces │ │ ├── OnColorPickedListener.java │ │ ├── PickerTheme.java │ │ ├── ActivityResultHandler.java │ │ └── ActivityRequestHandler.java │ │ ├── utils │ │ └── ArrayUtils.java │ │ ├── adapters │ │ └── HeightablePagerAdapter.java │ │ └── views │ │ └── color │ │ ├── OrientationDiffListener.java │ │ ├── HorizontalSmoothColorView.java │ │ └── VerticalSmoothColorView.java ├── consumer-rules.pro ├── LICENSE └── build.gradle ├── fastlane └── metadata │ └── android │ ├── en-US │ ├── title.txt │ ├── short_description.txt │ ├── changelogs │ │ ├── 1.txt │ │ ├── 19.txt │ │ ├── 2.txt │ │ ├── 23.txt │ │ ├── 22.txt │ │ ├── 10.txt │ │ ├── 8.txt │ │ ├── 4.txt │ │ ├── 38.txt │ │ ├── 20.txt │ │ ├── 3.txt │ │ ├── 25.txt │ │ ├── 11.txt │ │ ├── 26.txt │ │ ├── 15.txt │ │ ├── 24.txt │ │ ├── 9.txt │ │ ├── 12.txt │ │ ├── 7.txt │ │ ├── 6.txt │ │ ├── 5.txt │ │ ├── 13.txt │ │ ├── 18.txt │ │ ├── 35.txt │ │ ├── 36.txt │ │ ├── 37.txt │ │ ├── 14.txt │ │ ├── 16.txt │ │ ├── 21.txt │ │ └── 17.txt │ ├── images │ │ ├── icon.png │ │ ├── featureGraphic.png │ │ └── phoneScreenshots │ │ │ ├── 1.png │ │ │ ├── 2.png │ │ │ ├── 3.png │ │ │ └── 4.png │ └── full_description.txt │ └── ru │ └── short_description.txt ├── .github ├── FUNDING.yml ├── resources │ ├── banner.png │ ├── features.png │ └── bmc-button.png ├── ISSUE_TEMPLATE │ └── config.yml └── workflows │ ├── crowdin.yml │ └── crowdin_upload.yml ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradle.properties ├── crowdin.yml ├── .gitignore └── settings.gradle.kts /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /libadb/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /systemstubs/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /systemstubs/consumer-rules.pro: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /colorpickerdialog/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/title.txt: -------------------------------------------------------------------------------- 1 | ColorBlendr -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | custom: ['https://buymeacoffee.com/drdisagree'] -------------------------------------------------------------------------------- /colorpickerdialog/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /fastlane/metadata/android/ru/short_description.txt: -------------------------------------------------------------------------------- 1 | Выразите себя в цветах -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/short_description.txt: -------------------------------------------------------------------------------- 1 | Express yourself with colors -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/1.txt: -------------------------------------------------------------------------------- 1 | Changelog: 2 | 3 | • Initial release 4 | -------------------------------------------------------------------------------- /.github/resources/banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mahmud0808/ColorBlendr/HEAD/.github/resources/banner.png -------------------------------------------------------------------------------- /.github/resources/features.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mahmud0808/ColorBlendr/HEAD/.github/resources/features.png -------------------------------------------------------------------------------- /.github/resources/bmc-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mahmud0808/ColorBlendr/HEAD/.github/resources/bmc-button.png -------------------------------------------------------------------------------- /colorpickerdialog/consumer-rules.pro: -------------------------------------------------------------------------------- 1 | -keep,allowoptimization,allowobfuscation class me.jfenn.colorpickerdialog.** { *; } -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mahmud0808/ColorBlendr/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /app/src/main/ic_launcher-playstore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mahmud0808/ColorBlendr/HEAD/app/src/main/ic_launcher-playstore.png -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 2 | android.useAndroidX=true 3 | android.nonTransitiveRClass=true 4 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/img_drdisagree.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mahmud0808/ColorBlendr/HEAD/app/src/main/res/drawable/img_drdisagree.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mahmud0808/ColorBlendr/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mahmud0808/ColorBlendr/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher.webp -------------------------------------------------------------------------------- /libadb/src/main/java/io/github/muntashirakon/adb/android/package.html: -------------------------------------------------------------------------------- 1 |

All Android dependencies are kept under this package for easy reference.

-------------------------------------------------------------------------------- /app/src/main/res/drawable/buymeacoffee_bg.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mahmud0808/ColorBlendr/HEAD/app/src/main/res/drawable/buymeacoffee_bg.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/buymeacoffee_fg.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mahmud0808/ColorBlendr/HEAD/app/src/main/res/drawable/buymeacoffee_fg.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mahmud0808/ColorBlendr/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mahmud0808/ColorBlendr/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/19.txt: -------------------------------------------------------------------------------- 1 | Changelog: 2 | 3 | • Fixed F-Droid build issue. 4 | • Suggest to open theme config with ColorBlendr. -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mahmud0808/ColorBlendr/HEAD/fastlane/metadata/android/en-US/images/icon.png -------------------------------------------------------------------------------- /app/src/main/aidl/com/drdisagree/colorblendr/extension/MethodInterface.aidl: -------------------------------------------------------------------------------- 1 | package com.drdisagree.colorblendr.extension; 2 | 3 | parcelable MethodInterface; -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mahmud0808/ColorBlendr/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mahmud0808/ColorBlendr/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mahmud0808/ColorBlendr/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mahmud0808/ColorBlendr/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mahmud0808/ColorBlendr/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mahmud0808/ColorBlendr/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher_background.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mahmud0808/ColorBlendr/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher_background.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mahmud0808/ColorBlendr/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher_background.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mahmud0808/ColorBlendr/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher_background.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mahmud0808/ColorBlendr/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher_background.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mahmud0808/ColorBlendr/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher_background.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mahmud0808/ColorBlendr/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/2.txt: -------------------------------------------------------------------------------- 1 | Changelog: 2 | 3 | • Fixed some crashing issues 4 | • Added support for android 12.1 5 | • Added support for android 14 6 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/featureGraphic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mahmud0808/ColorBlendr/HEAD/fastlane/metadata/android/en-US/images/featureGraphic.png -------------------------------------------------------------------------------- /systemstubs/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher_background.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mahmud0808/ColorBlendr/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher_background.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mahmud0808/ColorBlendr/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher_background.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mahmud0808/ColorBlendr/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher_background.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mahmud0808/ColorBlendr/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp -------------------------------------------------------------------------------- /colorpickerdialog/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 24dp 4 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mahmud0808/ColorBlendr/HEAD/fastlane/metadata/android/en-US/images/phoneScreenshots/1.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mahmud0808/ColorBlendr/HEAD/fastlane/metadata/android/en-US/images/phoneScreenshots/2.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mahmud0808/ColorBlendr/HEAD/fastlane/metadata/android/en-US/images/phoneScreenshots/3.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mahmud0808/ColorBlendr/HEAD/fastlane/metadata/android/en-US/images/phoneScreenshots/4.png -------------------------------------------------------------------------------- /app/src/main/aidl/com/drdisagree/colorblendr/utils/fabricated/FabricatedOverlayResource.aidl: -------------------------------------------------------------------------------- 1 | package com.drdisagree.colorblendr.utils.fabricated; 2 | 3 | parcelable FabricatedOverlayResource; -------------------------------------------------------------------------------- /app/src/main/res/values-night/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | @color/material_dynamic_primary80 4 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/23.txt: -------------------------------------------------------------------------------- 1 | Changelog: 2 | 3 | • Fix F-Droid build issue. 4 | • Bump dependencies. 5 | 6 | Translation credit goes to all the contributors on our Crowdin platform. -------------------------------------------------------------------------------- /app/src/main/java/com/drdisagree/colorblendr/data/enums/AppType.kt: -------------------------------------------------------------------------------- 1 | package com.drdisagree.colorblendr.data.enums 2 | 3 | enum class AppType { 4 | SYSTEM, 5 | USER, 6 | LAUNCHABLE, 7 | ALL 8 | } -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/22.txt: -------------------------------------------------------------------------------- 1 | Changelog: 2 | 3 | • Fix overridden color not resetting on long press. [Root] 4 | 5 | Translation credit goes to all the contributors on our Crowdin platform. -------------------------------------------------------------------------------- /app/src/main/res/drawable/color_table_square.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/10.txt: -------------------------------------------------------------------------------- 1 | Changelog: 2 | 3 | • Fixed onboarding page crash in landscape mode. 4 | • Updated translations. 5 | 6 | Translation credit goes to all the contributors on our Crowdin platform. 7 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/8.txt: -------------------------------------------------------------------------------- 1 | Changelog: 2 | 3 | • Updated translations. 4 | • Fixed version name as per F-Droid's guidelines. 5 | 6 | Translation credit goes to all the contributors on our crowdin platform. 7 | -------------------------------------------------------------------------------- /colorpickerdialog/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_info.xml: -------------------------------------------------------------------------------- 1 | 6 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_service.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/16.txt: -------------------------------------------------------------------------------- 1 | Changelog: 2 | 3 | • Added option to use separate lightness/saturation for light and dark modes. [Root] 4 | • Added option to change secondary and tertiary colors. [Root] 5 | • Added pitch black theme for Settings Services. [Root] 6 | • Added and improved several dynamic colors. [Root] 7 | • Fixed surface container colors for Android 15. [Root] 8 | • Bumped target SDK to Android 15. 9 | • Updated AGP and dependencies. 10 | • Updated translations. 11 | 12 | Translation credit goes to all the contributors on our Crowdin platform. -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_invert_colors.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/21.txt: -------------------------------------------------------------------------------- 1 | Changelog: 2 | 3 | • Added option to save your current setup. 4 | • Applied themes to cloned apps and private spaces. 5 | • Switched to HCT-based color modification for better accuracy. 6 | • Removed thumbnail colors from live wallpaper color extraction. 7 | • Fixed colors resetting with screen-off updates enabled. 8 | • Retained background saturation for rainbow style. 9 | • Improved performance of color palette loading. 10 | • Updated translations. 11 | 12 | Translation credit goes to all the contributors on our Crowdin platform. -------------------------------------------------------------------------------- /libadb/LICENSE: -------------------------------------------------------------------------------- 1 | LibADB Android is provided under: 2 | 3 | SPDX-License-Identifier: GPL-3.0-or-later or Apache-2.0 4 | 5 | Being under the terms of the GNU General Public License version 3 or 6 | later, according with: 7 | 8 | LICENSES/GPL-3.0-or-later 9 | 10 | or Apache License, Version 2.0, according with: 11 | 12 | LICENSES/Apache-2.0 13 | 14 | In addition, other licenses may also apply. Please navigate to: 15 | 16 | LICENSES/ 17 | 18 | to see all the licenses used in this project. 19 | 20 | All contributions to the LibADB Android are subject to this COPYING 21 | file. -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_dark_icon.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | contact_links: 3 | - name: GitHub Discussions 4 | url: https://github.com/Mahmud0808/ColorBlendr/discussions 5 | about: Discuss anything related to ColorBlendr, or ask and answer questions here. 6 | - name: Telegram Channel 7 | url: https://t.me/DrDsProjects 8 | about: Follow telegram channel to get latest news and updates. 9 | - name: Telegram Group 10 | url: https://t.me/DrDsProjectsChat 11 | about: We recommend to go to this place if you wish to ask a question and want a quicker reply. 12 | -------------------------------------------------------------------------------- /colorpickerdialog/LICENSE: -------------------------------------------------------------------------------- 1 | LibADB Android is provided under: 2 | 3 | SPDX-License-Identifier: GPL-3.0-or-later or Apache-2.0 4 | 5 | Being under the terms of the GNU General Public License version 3 or 6 | later, according with: 7 | 8 | LICENSES/GPL-3.0-or-later 9 | 10 | or Apache License, Version 2.0, according with: 11 | 12 | LICENSES/Apache-2.0 13 | 14 | In addition, other licenses may also apply. Please navigate to: 15 | 16 | LICENSES/ 17 | 18 | to see all the licenses used in this project. 19 | 20 | All contributions to the LibADB Android are subject to this COPYING 21 | file. -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/17.txt: -------------------------------------------------------------------------------- 1 | Changelog: 2 | 3 | • Updated color palette preview. 4 | • Fixed QS tiles colors for Android 15 QPR1 beta 3. [Root] 5 | • Updated material color utilities for expressive on-colors. [Root] 6 | • Added workaround for settings pitch black theme on Android 15. [Root] 7 | • Themed Pixel Launcher and added darker monochrome icon option. [Root] 8 | • Added semi-transparent style for Pixel Launcher. [Root] 9 | • Updated AGP and dependencies. 10 | • Updated translations. 11 | 12 | Translation credit goes to all the contributors on our Crowdin platform. -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_paint.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/java/com/drdisagree/colorblendr/data/enums/MonetStyle.kt: -------------------------------------------------------------------------------- 1 | package com.drdisagree.colorblendr.data.enums 2 | 3 | enum class MONET { 4 | SPRITZ, 5 | MONOCHROMATIC, 6 | TONAL_SPOT, 7 | VIBRANT, 8 | RAINBOW, 9 | EXPRESSIVE, 10 | FIDELITY, 11 | CONTENT, 12 | FRUIT_SALAD; 13 | 14 | override fun toString(): String { 15 | return name 16 | } 17 | 18 | companion object { 19 | fun String?.toEnumMonet(): MONET { 20 | return entries.find { it.name.equals(this, ignoreCase = true) } ?: TONAL_SPOT 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /app/src/main/res/anim/fade_in.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 11 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_backup.xml: -------------------------------------------------------------------------------- 1 | 6 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_arrow_end.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_restore.xml: -------------------------------------------------------------------------------- 1 | 6 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_toolbar_chevron.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | 9 | 10 | 11 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_checked_filled.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_search.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-night/ic_toolbar_chevron.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | 9 | 10 | 11 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 28dp 4 | 22dp 5 | 24dp 6 | 16dp 7 | 12dp 8 | 2dp 9 | 24dp 10 | 4dp 11 | 120dp 12 | -------------------------------------------------------------------------------- /libadb/src/main/java/io/github/muntashirakon/adb/AdbAuthenticationFailedException.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: BSD-3-Clause AND (GPL-3.0-or-later OR Apache-2.0) 2 | 3 | package io.github.muntashirakon.adb; 4 | 5 | /** 6 | * Thrown when the ADB daemon rejects our initial authentication attempt, which typically means that the peer has not 7 | * previously saved our public key. 8 | */ 9 | // Copyright 2020 Sam Palmer 10 | public class AdbAuthenticationFailedException extends RuntimeException { 11 | public AdbAuthenticationFailedException() { 12 | super("Initial authentication attempt rejected by peer."); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /colorpickerdialog/src/main/res/layout/colorpicker_item_color.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 13 | 14 | -------------------------------------------------------------------------------- /colorpickerdialog/src/main/res/drawable/ic_add_a_photo.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/xml/data_extraction_rules.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | 12 | 13 | 19 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_close.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /libadb/src/main/java/io/github/muntashirakon/adb/ByteArrayNoThrowOutputStream.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: GPL-3.0-or-later OR Apache-2.0 2 | 3 | package io.github.muntashirakon.adb; 4 | 5 | import java.io.ByteArrayOutputStream; 6 | 7 | class ByteArrayNoThrowOutputStream extends ByteArrayOutputStream { 8 | public ByteArrayNoThrowOutputStream() { 9 | super(); 10 | } 11 | 12 | public ByteArrayNoThrowOutputStream(int size) { 13 | super(size); 14 | } 15 | 16 | @Override 17 | public void write(byte[] b) { 18 | write(b, 0, b.length); 19 | } 20 | 21 | @Override 22 | public void close() { 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /colorpickerdialog/src/main/java/me/jfenn/colorpickerdialog/interfaces/ActivityRequestHandler.java: -------------------------------------------------------------------------------- 1 | package me.jfenn.colorpickerdialog.interfaces; 2 | 3 | import android.content.Intent; 4 | 5 | import androidx.annotation.Nullable; 6 | import androidx.fragment.app.FragmentManager; 7 | 8 | public interface ActivityRequestHandler { 9 | 10 | void handlePermissionsRequest(ActivityResultHandler resultHandler, String... permissions); 11 | 12 | void handleActivityRequest(ActivityResultHandler resultHandler, Intent intent); 13 | 14 | @Nullable 15 | FragmentManager requestFragmentManager(); 16 | 17 | @Nullable 18 | PickerTheme getPickerTheme(); 19 | 20 | } 21 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_edit.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/layout/view_about_app_credits_header.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/java/com/drdisagree/colorblendr/data/models/CustomStyleModel.kt: -------------------------------------------------------------------------------- 1 | package com.drdisagree.colorblendr.data.models 2 | 3 | import androidx.room.Entity 4 | import androidx.room.PrimaryKey 5 | import com.drdisagree.colorblendr.data.common.Constant.CUSTOM_STYLE_TABLE 6 | import com.drdisagree.colorblendr.data.enums.MONET 7 | import java.util.UUID 8 | 9 | @Entity(tableName = CUSTOM_STYLE_TABLE) 10 | data class CustomStyleModel( 11 | @PrimaryKey val styleId: String = UUID.randomUUID().toString(), 12 | var styleName: String, 13 | var description: String, 14 | val prefsGson: String, 15 | val monet: MONET, 16 | val palette: ArrayList> 17 | ) 18 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_filter_list.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_text.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_color_picker.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /colorpickerdialog/src/main/res/values-zh-rCN/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 颜色选择器 4 | 默认 5 | 图像 6 | 从图像中选择颜色 7 | 授予权限 8 | 请授予“外部存储”权限以继续。 9 | 无法使用此图像。 10 | 所有照片 11 | 12 | -------------------------------------------------------------------------------- /colorpickerdialog/src/main/res/values-zh-rTW/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 顏色選擇器 4 | 預設 5 | 圖片 6 | 從圖片選取顏色 7 | 授予權限 8 | 請授予「外部儲存」權限以繼續。 9 | 無法使用此圖片。 10 | 所有照片 11 | 12 | -------------------------------------------------------------------------------- /settings.gradle.kts: -------------------------------------------------------------------------------- 1 | pluginManagement { 2 | repositories { 3 | gradlePluginPortal() 4 | google() 5 | mavenCentral() 6 | } 7 | } 8 | 9 | @Suppress("UnstableApiUsage") 10 | dependencyResolutionManagement { 11 | repositoriesMode = RepositoriesMode.FAIL_ON_PROJECT_REPOS 12 | repositories { 13 | google() 14 | mavenCentral() 15 | maven { 16 | setUrl("https://jitpack.io") 17 | } 18 | } 19 | versionCatalogs { 20 | create("libs") 21 | } 22 | } 23 | 24 | rootProject.name = "ColorBlendr" 25 | 26 | include(":app") 27 | include(":systemstubs") 28 | include(":libadb") 29 | include(":colorpickerdialog") 30 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_checked_outline.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/divider_credits_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /colorpickerdialog/src/main/res/values-ja-rJP/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | カラーピッカー 4 | プリセット 5 | 画像 6 | 画像から色を選択 7 | 権限の許可 8 | 続行するには、「外部ストレージ」の権限を許可してください。 9 | この画像は使用できませんでした。 10 | すべての画像 11 | 12 | -------------------------------------------------------------------------------- /colorpickerdialog/src/main/res/values-ko-rKR/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 색 선택기 4 | 프리셋 5 | 이미지 6 | 이미지로 색선택 7 | 권한 부여 8 | 계속하려면 \'외부 저장소\' 권한을 부여해 주세요. 9 | 이 이미지를 사용할 수 없습니다. 10 | 모든 이미지 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_nav_theme_outline.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/menu/custom_style_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 13 | 18 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_extension.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_attach_file.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /colorpickerdialog/src/main/res/values-vi-rVN/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Bộ chọn màu 4 | Preset 5 | Ảnh 6 | Chọn màu từ ảnh 7 | Cấp quyền 8 | Vui lòng cấp quyền \'Bộ nhớ ngoài\' để tiếp tục. 9 | Không thể dùng ảnh này. 10 | Tất cả hình ảnh 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/java/com/drdisagree/colorblendr/data/database/Converters.kt: -------------------------------------------------------------------------------- 1 | package com.drdisagree.colorblendr.data.database 2 | 3 | import androidx.room.TypeConverter 4 | import com.drdisagree.colorblendr.data.common.Constant.GSON 5 | import com.google.gson.reflect.TypeToken 6 | 7 | class Converters { 8 | @TypeConverter 9 | fun fromPalette(palette: ArrayList>?): String? { 10 | val type = object : TypeToken>>() {}.type 11 | return GSON.toJson(palette, type) 12 | } 13 | 14 | @TypeConverter 15 | fun toPalette(paletteString: String?): ArrayList>? { 16 | val type = object : TypeToken>>() {}.type 17 | return GSON.fromJson(paletteString, type) 18 | } 19 | } -------------------------------------------------------------------------------- /systemstubs/src/main/aidl/android/os/UserHandle.aidl: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2011 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package android.os; 17 | 18 | parcelable UserHandle; -------------------------------------------------------------------------------- /colorpickerdialog/src/main/res/values-ar-rSA/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | متنقي الألوان 4 | إعدادات 5 | صورة 6 | اختيار اللون من الصورة 7 | منح الصلاحيات 8 | الرجاء منح صلاحيات \"التخزين الخارجي\" للمتابعة. 9 | تعذر استخدام هذه الصورة. 10 | جميع الصور 11 | 12 | -------------------------------------------------------------------------------- /colorpickerdialog/src/main/res/values-bn-rBD/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | রঙ চয়নকারী 4 | প্রিসেট 5 | ছবি 6 | ছবি থেকে রঙ বেছে নিন 7 | অনুমতি দিন 8 | চালিয়ে যাওয়ার জন্য \'External Storage\'-এর অনুমতি দিন। 9 | এই ছবিটি ব্যবহার করা যায়নি। 10 | সকল ছবি 11 | 12 | -------------------------------------------------------------------------------- /systemstubs/src/main/aidl/android/content/pm/UserInfo.aidl: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2011 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package android.content.pm; 17 | 18 | parcelable UserInfo; -------------------------------------------------------------------------------- /colorpickerdialog/src/main/res/values-tr-rTR/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Renk Seçici 4 | Ön Ayar 5 | Görsel 6 | Görselden Renk Seç 7 | İzinleri Ver 8 | Devam etmek için lütfen \'Harici Depolama\' izinlerini verin. 9 | Bu görsel kullanılamadı. 10 | Tüm Fotoğraflar 11 | 12 | -------------------------------------------------------------------------------- /systemstubs/src/main/aidl/android/content/om/OverlayInfo.aidl: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package android.content.om; 17 | 18 | parcelable OverlayInfo; -------------------------------------------------------------------------------- /colorpickerdialog/src/main/res/values-af-rZA/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Color Picker 4 | Preset 5 | Image 6 | Pick Color from Image 7 | Grant Permissions 8 | Please grant the \'External Storage\' permissions to continue. 9 | Couldn\'t use this image. 10 | All Photos 11 | 12 | -------------------------------------------------------------------------------- /colorpickerdialog/src/main/res/values-ca-rES/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Color Picker 4 | Preset 5 | Image 6 | Pick Color from Image 7 | Grant Permissions 8 | Please grant the \'External Storage\' permissions to continue. 9 | Couldn\'t use this image. 10 | All Photos 11 | 12 | -------------------------------------------------------------------------------- /colorpickerdialog/src/main/res/values-cs-rCZ/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Výběr barvy 4 | Předvolba 5 | Z fotky 6 | Vybrat barvu z obrázku 7 | Udělit oprávnění 8 | Pro pokračování udělte oprávnění \'Externí úložiště\'. 9 | Tento obrázek nelze použít. 10 | Všechny fotky 11 | 12 | -------------------------------------------------------------------------------- /colorpickerdialog/src/main/res/values-da-rDK/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Color Picker 4 | Preset 5 | Image 6 | Pick Color from Image 7 | Grant Permissions 8 | Please grant the \'External Storage\' permissions to continue. 9 | Couldn\'t use this image. 10 | All Photos 11 | 12 | -------------------------------------------------------------------------------- /colorpickerdialog/src/main/res/values-el-rGR/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Color Picker 4 | Preset 5 | Image 6 | Pick Color from Image 7 | Grant Permissions 8 | Please grant the \'External Storage\' permissions to continue. 9 | Couldn\'t use this image. 10 | All Photos 11 | 12 | -------------------------------------------------------------------------------- /colorpickerdialog/src/main/res/values-fi-rFI/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Color Picker 4 | Preset 5 | Image 6 | Pick Color from Image 7 | Grant Permissions 8 | Please grant the \'External Storage\' permissions to continue. 9 | Couldn\'t use this image. 10 | All Photos 11 | 12 | -------------------------------------------------------------------------------- /colorpickerdialog/src/main/res/values-hi-rIN/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Color Picker 4 | Preset 5 | Image 6 | Pick Color from Image 7 | Grant Permissions 8 | Please grant the \'External Storage\' permissions to continue. 9 | Couldn\'t use this image. 10 | All Photos 11 | 12 | -------------------------------------------------------------------------------- /colorpickerdialog/src/main/res/values-iw-rIL/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Color Picker 4 | Preset 5 | Image 6 | Pick Color from Image 7 | Grant Permissions 8 | Please grant the \'External Storage\' permissions to continue. 9 | Couldn\'t use this image. 10 | All Photos 11 | 12 | -------------------------------------------------------------------------------- /colorpickerdialog/src/main/res/values-nl-rNL/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Color Picker 4 | Preset 5 | Image 6 | Pick Color from Image 7 | Grant Permissions 8 | Please grant the \'External Storage\' permissions to continue. 9 | Couldn\'t use this image. 10 | All Photos 11 | 12 | -------------------------------------------------------------------------------- /colorpickerdialog/src/main/res/values-no-rNO/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Color Picker 4 | Preset 5 | Image 6 | Pick Color from Image 7 | Grant Permissions 8 | Please grant the \'External Storage\' permissions to continue. 9 | Couldn\'t use this image. 10 | All Photos 11 | 12 | -------------------------------------------------------------------------------- /colorpickerdialog/src/main/res/values-pt-rPT/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Color Picker 4 | Preset 5 | Image 6 | Pick Color from Image 7 | Grant Permissions 8 | Please grant the \'External Storage\' permissions to continue. 9 | Couldn\'t use this image. 10 | All Photos 11 | 12 | -------------------------------------------------------------------------------- /colorpickerdialog/src/main/res/values-ro-rRO/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Color Picker 4 | Preset 5 | Image 6 | Pick Color from Image 7 | Grant Permissions 8 | Please grant the \'External Storage\' permissions to continue. 9 | Couldn\'t use this image. 10 | All Photos 11 | 12 | -------------------------------------------------------------------------------- /colorpickerdialog/src/main/res/values-sr-rSP/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Color Picker 4 | Preset 5 | Image 6 | Pick Color from Image 7 | Grant Permissions 8 | Please grant the \'External Storage\' permissions to continue. 9 | Couldn\'t use this image. 10 | All Photos 11 | 12 | -------------------------------------------------------------------------------- /colorpickerdialog/src/main/res/values-sv-rSE/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Color Picker 4 | Preset 5 | Image 6 | Pick Color from Image 7 | Grant Permissions 8 | Please grant the \'External Storage\' permissions to continue. 9 | Couldn\'t use this image. 10 | All Photos 11 | 12 | -------------------------------------------------------------------------------- /colorpickerdialog/src/main/res/values-uk-rUA/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Піпетка 4 | Пресет 5 | Зображення 6 | Взяти колір із зображення 7 | Надати дозволи 8 | Надайте дозвіл Зовнішньому сховищу, щоб продовжити. 9 | Не вдалося використати це зображення. 10 | Усі фото 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/java/com/drdisagree/colorblendr/ui/fragments/BaseFragment.kt: -------------------------------------------------------------------------------- 1 | package com.drdisagree.colorblendr.ui.fragments 2 | 3 | import android.os.Bundle 4 | import androidx.fragment.app.Fragment 5 | import androidx.fragment.app.activityViewModels 6 | import com.drdisagree.colorblendr.ui.viewmodels.ColorsViewModel 7 | import com.drdisagree.colorblendr.ui.viewmodels.StylesViewModel 8 | 9 | open class BaseFragment : Fragment() { 10 | 11 | private val colorsViewModel: ColorsViewModel by activityViewModels() 12 | private val stylesViewModel: StylesViewModel by activityViewModels() 13 | 14 | override fun onCreate(savedInstanceState: Bundle?) { 15 | super.onCreate(savedInstanceState) 16 | 17 | colorsViewModel.refreshData() 18 | stylesViewModel.refreshData() 19 | } 20 | } -------------------------------------------------------------------------------- /colorpickerdialog/src/main/res/values-hu-rHU/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Színválasztó 4 | Séma 5 | Kép 6 | Szín kiválasztása képből 7 | Engedélyek Megadása 8 | Kérlek adj \'Külső Tárhely\' hozzáférést a folytatáshoz. 9 | Ezt a képet nem lehetett használni. 10 | Összes kép 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_color_fill.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /systemstubs/src/main/aidl/android/content/om/OverlayIdentifier.aidl: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2021 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package android.content.om; 18 | 19 | parcelable OverlayIdentifier; -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_nav_styles_filled.xml: -------------------------------------------------------------------------------- 1 | 6 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/layout/view_text_field_outlined.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 16 | 17 | -------------------------------------------------------------------------------- /colorpickerdialog/src/main/res/values-pl-rPL/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Wybór kolorów 4 | Szablony 5 | Obraz 6 | Wybierz kolor z obrazu 7 | Przyznaj uprawnienia 8 | Proszę przyznać uprawnienia \'Pamięć zewnętrzna\' aby kontynuować. 9 | Nie można użyć tego obrazu. 10 | Wszystkie zdjęcia 11 | 12 | -------------------------------------------------------------------------------- /systemstubs/src/main/aidl/android/content/om/OverlayManagerTransaction.aidl: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2019 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package android.content.om; 17 | 18 | parcelable OverlayManagerTransaction; -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_warning.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_user_account.xml: -------------------------------------------------------------------------------- 1 | 7 | 12 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /colorpickerdialog/src/main/res/values-ru-rRU/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Выбор цвета 4 | Предустановка 5 | Изображение 6 | Выбрать цвет с изображения 7 | Предоставить разрешения 8 | Чтобы продолжить, предоставьте доступ к внешнему хранилищу. 9 | Это изображение нельзя использовать. 10 | Все фото 11 | 12 | -------------------------------------------------------------------------------- /systemstubs/build.gradle.kts: -------------------------------------------------------------------------------- 1 | plugins { 2 | alias(libs.plugins.agp.library) 3 | } 4 | 5 | android { 6 | namespace = "com.drdisagree.colorblendr.systemstubs" 7 | compileSdk = 34 8 | 9 | defaultConfig { 10 | minSdk = 31 11 | } 12 | 13 | buildTypes { 14 | release { 15 | isMinifyEnabled = false 16 | proguardFiles( 17 | getDefaultProguardFile("proguard-android-optimize.txt"), 18 | "proguard-rules.pro" 19 | ) 20 | } 21 | } 22 | 23 | compileOptions { 24 | sourceCompatibility = JavaVersion.VERSION_17 25 | targetCompatibility = JavaVersion.VERSION_17 26 | } 27 | 28 | buildFeatures { 29 | aidl = true 30 | } 31 | } 32 | 33 | dependencies { 34 | implementation(libs.annotation) 35 | } -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_android.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /colorpickerdialog/src/main/res/values-pt-rBR/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Seletor de cores 4 | Predefinido 5 | Imagem 6 | Escolha a cor da imagem 7 | Conceder permissões 8 | Por favor, conceda a permissão de Armazenamento externo para continuar. 9 | Não foi possível usar esta imagem. 10 | Todas as fotos 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/java/com/drdisagree/colorblendr/ui/adapters/FragmentAdapter.kt: -------------------------------------------------------------------------------- 1 | package com.drdisagree.colorblendr.ui.adapters 2 | 3 | import androidx.fragment.app.Fragment 4 | import androidx.fragment.app.FragmentActivity 5 | import androidx.viewpager2.adapter.FragmentStateAdapter 6 | 7 | class FragmentAdapter(fragmentActivity: FragmentActivity, private val fragments: List) : 8 | FragmentStateAdapter(fragmentActivity) { 9 | 10 | override fun createFragment(position: Int): Fragment { 11 | if (position >= 0 && position < fragments.size) { 12 | return fragments[position] 13 | } else { 14 | throw IndexOutOfBoundsException("Invalid fragment position: $position") 15 | } 16 | } 17 | 18 | override fun getItemCount(): Int { 19 | return fragments.size 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /colorpickerdialog/src/main/res/values-es-rES/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Selector de color 4 | Preajuste 5 | Imagen 6 | Seleccionar color desde la imagen 7 | Garantizar permisos 8 | Por favor, garantiza el permiso \"Almacenamiento Externo\" para continuar. 9 | No se pudo usar esta imagen. 10 | Todas las fotos 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/java/com/drdisagree/colorblendr/ui/adapters/OnboardingAdapter.kt: -------------------------------------------------------------------------------- 1 | package com.drdisagree.colorblendr.ui.adapters 2 | 3 | import androidx.fragment.app.Fragment 4 | import androidx.fragment.app.FragmentManager 5 | import androidx.lifecycle.Lifecycle 6 | import androidx.viewpager2.adapter.FragmentStateAdapter 7 | 8 | class OnboardingAdapter(fragmentManager: FragmentManager, lifecycle: Lifecycle) : 9 | FragmentStateAdapter(fragmentManager, lifecycle) { 10 | 11 | private val fragmentList = ArrayList() 12 | 13 | override fun createFragment(position: Int): Fragment { 14 | return fragmentList[position] 15 | } 16 | 17 | fun addFragment(fragment: Fragment) { 18 | fragmentList.add(fragment) 19 | } 20 | 21 | override fun getItemCount(): Int { 22 | return fragmentList.size 23 | } 24 | } -------------------------------------------------------------------------------- /colorpickerdialog/src/main/res/values-de-rDE/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Farbauswahl 4 | Voreinstellung 5 | Bild 6 | Farbe aus einem Bild benutzen 7 | Berechtigungen erteilen 8 | Bitte erteile die Berechtigungen für „Externer Speicher“, um fortzufahren. 9 | Dieses Bild konnte nicht verwendet werden. 10 | Alle Fotos 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_delete.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /colorpickerdialog/src/main/res/values-it-rIT/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Selettore colore 4 | Preimpostato 5 | Immagine 6 | Seleziona il colore dall\'immagine 7 | Consenti autorizzazioni 8 | Si prega di concedere i permessi di archiviazione esterna per continuare. 9 | Impossibile usare questa immagine. 10 | Tutte le foto 11 | 12 | -------------------------------------------------------------------------------- /systemstubs/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile -------------------------------------------------------------------------------- /app/src/main/java/com/drdisagree/colorblendr/ui/fragments/onboarding/pages/OnboardingItem1Fragment.kt: -------------------------------------------------------------------------------- 1 | package com.drdisagree.colorblendr.ui.fragments.onboarding.pages 2 | 3 | import android.os.Bundle 4 | import android.view.LayoutInflater 5 | import android.view.View 6 | import android.view.ViewGroup 7 | import androidx.fragment.app.Fragment 8 | import com.drdisagree.colorblendr.databinding.FragmentOnboardingItem1Binding 9 | 10 | class OnboardingItem1Fragment : Fragment() { 11 | 12 | private lateinit var binding: FragmentOnboardingItem1Binding 13 | 14 | override fun onCreateView( 15 | inflater: LayoutInflater, 16 | container: ViewGroup?, 17 | savedInstanceState: Bundle? 18 | ): View { 19 | binding = FragmentOnboardingItem1Binding.inflate(inflater, container, false) 20 | return binding.getRoot() 21 | } 22 | } -------------------------------------------------------------------------------- /colorpickerdialog/src/main/res/values-fr-rFR/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Sélecteur de couleur 4 | Préréglage 5 | Image 6 | Choisir la couleur à partir d\'une image 7 | Accorder les autorisations 8 | Svp accordez l\'autorisation \"Stockage externe\" pour continuer. 9 | Impossible d\'utiliser cette image. 10 | Toutes les photos 11 | 12 | -------------------------------------------------------------------------------- /colorpickerdialog/src/main/java/me/jfenn/colorpickerdialog/adapters/HeightablePagerAdapter.java: -------------------------------------------------------------------------------- 1 | package me.jfenn.colorpickerdialog.adapters; 2 | 3 | import android.view.ViewGroup; 4 | 5 | import androidx.annotation.NonNull; 6 | import androidx.viewpager.widget.PagerAdapter; 7 | 8 | import me.jfenn.colorpickerdialog.views.HeightableViewPager; 9 | 10 | public abstract class HeightablePagerAdapter extends PagerAdapter implements HeightableViewPager.Heightable { 11 | 12 | private int position = -1; 13 | 14 | @Override 15 | public void setPrimaryItem(@NonNull ViewGroup container, int position, @NonNull Object object) { 16 | super.setPrimaryItem(container, position, object); 17 | 18 | if (position != this.position) { 19 | this.position = position; 20 | container.requestLayout(); 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_launcher_notification.xml: -------------------------------------------------------------------------------- 1 | 6 | 10 | 14 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_open_in_new.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_nav_styles_outline.xml: -------------------------------------------------------------------------------- 1 | 6 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/java/com/drdisagree/colorblendr/utils/monet/quantize/Quantizer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.drdisagree.colorblendr.utils.monet.quantize; 18 | 19 | interface Quantizer { 20 | QuantizerResult quantize(int[] pixels, int maxColors); 21 | } 22 | -------------------------------------------------------------------------------- /colorpickerdialog/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | alias(libs.plugins.agp.library) 3 | } 4 | 5 | android { 6 | compileSdk 36 7 | namespace "me.jfenn.colorpickerdialog" 8 | 9 | defaultConfig { 10 | minSdk 31 11 | targetSdk 36 12 | aarMetadata { 13 | minCompileSdk = 31 14 | } 15 | consumerProguardFiles 'consumer-rules.pro' 16 | } 17 | 18 | compileOptions { 19 | sourceCompatibility JavaVersion.VERSION_17 20 | targetCompatibility JavaVersion.VERSION_17 21 | } 22 | 23 | publishing { 24 | singleVariant("release") { 25 | withSourcesJar() 26 | withJavadocJar() 27 | } 28 | } 29 | } 30 | 31 | dependencies { 32 | implementation libs.annotation 33 | implementation libs.material 34 | implementation libs.androidUtils 35 | implementation libs.glide 36 | } 37 | -------------------------------------------------------------------------------- /systemstubs/src/main/aidl/android/os/IUserManager.aidl: -------------------------------------------------------------------------------- 1 | /* 2 | ** 3 | ** Copyright 2012, The Android Open Source Project 4 | ** 5 | ** Licensed under the Apache License, Version 2.0 (the "License"); 6 | ** you may not use this file except in compliance with the License. 7 | ** You may obtain a copy of the License at 8 | ** 9 | ** http://www.apache.org/licenses/LICENSE-2.0 10 | ** 11 | ** Unless required by applicable law or agreed to in writing, software 12 | ** distributed under the License is distributed on an "AS IS" BASIS, 13 | ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | ** See the License for the specific language governing permissions and 15 | ** limitations under the License. 16 | */ 17 | package android.os; 18 | 19 | import android.content.pm.UserInfo; 20 | 21 | interface IUserManager { 22 | List getProfiles(int userId, boolean enabledOnly); 23 | } -------------------------------------------------------------------------------- /app/src/main/res/menu/bottom_nav_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 13 | 18 | 23 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_renew.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/java/com/drdisagree/colorblendr/ui/views/ResizableSeekbar.kt: -------------------------------------------------------------------------------- 1 | package com.drdisagree.colorblendr.ui.views 2 | 3 | import android.content.Context 4 | import android.util.AttributeSet 5 | import androidx.appcompat.widget.AppCompatSeekBar 6 | 7 | class ResizableSeekbar : AppCompatSeekBar { 8 | 9 | constructor(context: Context) : super(context) 10 | 11 | constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) 12 | 13 | constructor(context: Context, attrs: AttributeSet?, defStyle: Int) : super( 14 | context, 15 | attrs, 16 | defStyle 17 | ) 18 | 19 | @Synchronized 20 | override fun onSizeChanged(w: Int, h: Int, oldw: Int, oldh: Int) { 21 | super.onSizeChanged(w, h, oldw, oldh) 22 | 23 | val trackDrawable = progressDrawable.current 24 | trackDrawable.setBounds(0, 0, measuredWidth, measuredHeight) 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /systemstubs/src/main/java/android/app/ProfilerInfo.java: -------------------------------------------------------------------------------- 1 | package android.app; 2 | 3 | import android.os.Parcel; 4 | import android.os.Parcelable; 5 | 6 | public class ProfilerInfo implements Parcelable { 7 | 8 | protected ProfilerInfo(Parcel in) { 9 | } 10 | 11 | public static final Creator CREATOR = new Creator() { 12 | @Override 13 | public ProfilerInfo createFromParcel(Parcel in) { 14 | return new ProfilerInfo(in); 15 | } 16 | 17 | @Override 18 | public ProfilerInfo[] newArray(int size) { 19 | return new ProfilerInfo[size]; 20 | } 21 | }; 22 | 23 | @Override 24 | public int describeContents() { 25 | throw new RuntimeException("Stub!"); 26 | } 27 | 28 | @Override 29 | public void writeToParcel(Parcel parcel, int i) { 30 | throw new RuntimeException("Stub!"); 31 | } 32 | } -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_nav_colors_filled.xml: -------------------------------------------------------------------------------- 1 | 6 | 10 | 11 | -------------------------------------------------------------------------------- /.github/workflows/crowdin.yml: -------------------------------------------------------------------------------- 1 | name: Crowdin Synchronization 2 | 3 | on: 4 | workflow_dispatch: 5 | 6 | permissions: 7 | contents: write 8 | pull-requests: write 9 | 10 | jobs: 11 | 12 | synchronize-with-crowdin: 13 | name: Synchronize with Crowdin 14 | if: github.repository_owner == 'Mahmud0808' 15 | runs-on: ubuntu-latest 16 | steps: 17 | 18 | - name: Checkout 19 | uses: actions/checkout@v4 20 | 21 | - name: Sync Translations 22 | uses: crowdin/github-action@v2 23 | with: 24 | upload_translations: false 25 | upload_sources: true 26 | download_translations: true 27 | localization_branch_name: localization 28 | create_pull_request: true 29 | env: 30 | GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} 31 | CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID }} 32 | CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }} -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_nav_settings_filled.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_update.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_reset.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 13 | 14 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_settings_starry.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_app_widgets.xml: -------------------------------------------------------------------------------- 1 | 7 | 11 | 12 | -------------------------------------------------------------------------------- /systemstubs/src/main/aidl/android/app/IActivityManager.aidl: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2011 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package android.app; 17 | 18 | import android.app.IProcessObserver; 19 | 20 | interface IActivityManager { 21 | void registerProcessObserver(in IProcessObserver observer); 22 | void unregisterProcessObserver(in IProcessObserver observer); 23 | } -------------------------------------------------------------------------------- /.github/workflows/crowdin_upload.yml: -------------------------------------------------------------------------------- 1 | name: Crowdin Upload 2 | 3 | on: 4 | push: 5 | branches: [ "master" ] 6 | paths: 7 | - 'app/src/main/res/values/strings.xml' 8 | workflow_dispatch: 9 | 10 | jobs: 11 | synchronize-with-crowdin: 12 | name: Upload source to Crowdin 13 | if: github.repository_owner == 'Mahmud0808' 14 | runs-on: ubuntu-latest 15 | steps: 16 | 17 | - name: Checkout 18 | uses: actions/checkout@v4 19 | 20 | - name: Upload Strings 21 | uses: crowdin/github-action@v2 22 | with: 23 | upload_translations: false 24 | upload_sources: true 25 | download_translations: false 26 | localization_branch_name: localization 27 | create_pull_request: false 28 | env: 29 | GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} 30 | CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID }} 31 | CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }} 32 | -------------------------------------------------------------------------------- /app/src/main/java/com/drdisagree/colorblendr/utils/monet/dynamiccolor/Variant.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.drdisagree.colorblendr.utils.monet.dynamiccolor; 17 | 18 | /** 19 | * Themes for Dynamic Color. 20 | */ 21 | public enum Variant { 22 | MONOCHROME, NEUTRAL, TONAL_SPOT, VIBRANT, EXPRESSIVE, FIDELITY, CONTENT, RAINBOW, FRUIT_SALAD 23 | } 24 | -------------------------------------------------------------------------------- /libadb/src/main/java/io/github/muntashirakon/adb/StringCompat.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: GPL-3.0-or-later OR Apache-2.0 2 | 3 | package io.github.muntashirakon.adb; 4 | 5 | import android.os.Build; 6 | 7 | import androidx.annotation.NonNull; 8 | 9 | import java.io.UnsupportedEncodingException; 10 | import java.nio.charset.Charset; 11 | import java.nio.charset.IllegalCharsetNameException; 12 | 13 | final class StringCompat { 14 | @NonNull 15 | public static byte[] getBytes(@NonNull String text, @NonNull String charsetName) { 16 | if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) { 17 | return text.getBytes(Charset.forName(charsetName)); 18 | } 19 | try { 20 | return text.getBytes(charsetName); 21 | } catch (UnsupportedEncodingException e) { 22 | throw (IllegalCharsetNameException) new IllegalCharsetNameException("Illegal charset " + charsetName) 23 | .initCause(e); 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /systemstubs/src/main/aidl/android/app/IProcessObserver.aidl: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2011 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package android.app; 17 | 18 | interface IProcessObserver { 19 | void onForegroundActivitiesChanged(int pid, int uid, boolean foregroundActivities); 20 | void onForegroundServicesChanged(int pid, int uid, int serviceTypes); 21 | void onProcessDied(int pid, int uid); 22 | } -------------------------------------------------------------------------------- /app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Kotlin 2 | -assumenosideeffects class kotlin.jvm.internal.Intrinsics { 3 | public static void check*(...); 4 | public static void throw*(...); 5 | } 6 | -assumenosideeffects class java.util.Objects { 7 | public static ** requireNonNull(...); 8 | } 9 | 10 | # Strip debug log 11 | -assumenosideeffects class android.util.Log { 12 | public static int v(...); 13 | public static int d(...); 14 | } 15 | 16 | # Obfuscation 17 | -repackageclasses 18 | -allowaccessmodification 19 | 20 | # AIDL 21 | -keep,allowoptimization,allowobfuscation class com.drdisagree.colorblendr.service.IRootConnection { *; } 22 | -keep,allowoptimization,allowobfuscation class com.drdisagree.colorblendr.service.IShizukuConnection { *; } 23 | -keep,allowoptimization,allowobfuscation class com.drdisagree.colorblendr.utils.fabricated.FabricatedOverlayResource { *; } 24 | 25 | # Gson 26 | -keepattributes Signature 27 | -keep class com.google.gson.reflect.TypeToken { *; } 28 | -keep class * extends com.google.gson.reflect.TypeToken -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_adb.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_counter_one.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/values/arrays.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | @string/monet_neutral 5 | @string/monet_monochrome 6 | @string/monet_tonalspot 7 | @string/monet_vibrant 8 | @string/monet_rainbow 9 | @string/monet_expressive 10 | @string/monet_fidelity 11 | @string/monet_content 12 | @string/monet_fruitsalad 13 | 14 | 15 | 16 | #f9d99a 17 | #fa5f49 18 | #ff9800 19 | #59b4bc 20 | #d8f79a 21 | #95b8f6 22 | #7ff9c7 23 | #f3edc8 24 | #f7cae4 25 | #b186f1 26 | 27 | 28 | -------------------------------------------------------------------------------- /app/src/main/java/com/drdisagree/colorblendr/data/repository/CustomStyleRepository.kt: -------------------------------------------------------------------------------- 1 | package com.drdisagree.colorblendr.data.repository 2 | 3 | import com.drdisagree.colorblendr.data.dao.CustomStyleDao 4 | import com.drdisagree.colorblendr.data.models.CustomStyleModel 5 | 6 | class CustomStyleRepository(private val customStyleDao: CustomStyleDao) { 7 | suspend fun getCustomStyles(): List { 8 | return customStyleDao.getAllCustomStyles() 9 | } 10 | 11 | suspend fun saveCustomStyle(customStyle: CustomStyleModel) { 12 | customStyleDao.insertCustomStyle(customStyle) 13 | } 14 | 15 | suspend fun updateCustomStyle(customStyle: CustomStyleModel) { 16 | customStyleDao.updateCustomStyle(customStyle) 17 | } 18 | 19 | suspend fun deleteCustomStyle(customStyle: CustomStyleModel) { 20 | customStyleDao.deleteCustomStyle(customStyle) 21 | } 22 | 23 | suspend fun getCustomStyleById(styleId: String): CustomStyleModel? { 24 | return customStyleDao.getCustomStyleById(styleId) 25 | } 26 | } -------------------------------------------------------------------------------- /app/src/main/java/com/drdisagree/colorblendr/service/ServiceLauncher.kt: -------------------------------------------------------------------------------- 1 | package com.drdisagree.colorblendr.service 2 | 3 | import android.content.Context 4 | import android.content.Intent 5 | import android.util.Log 6 | 7 | class ServiceLauncher { 8 | private fun setServiceIntent(context: Context) { 9 | if (serviceIntent == null) { 10 | serviceIntent = Intent( 11 | context, 12 | AutoStartService::class.java 13 | ) 14 | } 15 | } 16 | 17 | fun launchService(context: Context?) { 18 | if (context == null) { 19 | return 20 | } 21 | 22 | setServiceIntent(context) 23 | 24 | if (AutoStartService.isServiceNotRunning) { 25 | Log.d(TAG, "launchService: Service is starting...") 26 | context.startForegroundService(serviceIntent) 27 | } 28 | } 29 | 30 | companion object { 31 | private val TAG: String = ServiceLauncher::class.java.simpleName 32 | private var serviceIntent: Intent? = null 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_github.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_launcher_foreground.xml: -------------------------------------------------------------------------------- 1 | 6 | 11 | 15 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /libadb/build.gradle: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: GPL-3.0-or-later OR Apache-2.0 2 | 3 | plugins { 4 | alias(libs.plugins.agp.library) 5 | } 6 | 7 | group = 'io.github.muntashirakon' 8 | version = '3.1.0' 9 | 10 | android { 11 | compileSdk 35 12 | namespace "io.github.muntashirakon.adb" 13 | 14 | defaultConfig { 15 | minSdk 1 16 | targetSdk 35 17 | aarMetadata { 18 | minCompileSdk = 1 19 | } 20 | } 21 | 22 | buildTypes { 23 | release { 24 | minifyEnabled false 25 | } 26 | } 27 | 28 | compileOptions { 29 | sourceCompatibility JavaVersion.VERSION_1_8 30 | targetCompatibility JavaVersion.VERSION_1_8 31 | } 32 | 33 | publishing { 34 | singleVariant("release") { 35 | withSourcesJar() 36 | withJavadocJar() 37 | } 38 | } 39 | } 40 | 41 | dependencies { 42 | implementation libs.annotation 43 | implementation libs.bcprov.jdk15to18 44 | implementation libs.spake2.android 45 | 46 | testImplementation libs.junit 47 | } 48 | -------------------------------------------------------------------------------- /app/src/main/java/com/drdisagree/colorblendr/data/dao/CustomStyleDao.kt: -------------------------------------------------------------------------------- 1 | package com.drdisagree.colorblendr.data.dao 2 | 3 | import androidx.room.Dao 4 | import androidx.room.Delete 5 | import androidx.room.Insert 6 | import androidx.room.OnConflictStrategy 7 | import androidx.room.Query 8 | import androidx.room.Update 9 | import com.drdisagree.colorblendr.data.common.Constant.CUSTOM_STYLE_TABLE 10 | import com.drdisagree.colorblendr.data.models.CustomStyleModel 11 | 12 | @Dao 13 | interface CustomStyleDao { 14 | @Insert(onConflict = OnConflictStrategy.REPLACE) 15 | suspend fun insertCustomStyle(customStyle: CustomStyleModel) 16 | 17 | @Update 18 | suspend fun updateCustomStyle(customStyle: CustomStyleModel) 19 | 20 | @Delete 21 | suspend fun deleteCustomStyle(customStyle: CustomStyleModel) 22 | 23 | @Query("SELECT * FROM $CUSTOM_STYLE_TABLE") 24 | suspend fun getAllCustomStyles(): List 25 | 26 | @Query("SELECT * FROM $CUSTOM_STYLE_TABLE WHERE styleId = :styleId LIMIT 1") 27 | suspend fun getCustomStyleById(styleId: String): CustomStyleModel? 28 | } -------------------------------------------------------------------------------- /libadb/src/main/java/io/github/muntashirakon/adb/AdbOutputStream.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: GPL-3.0-or-later OR Apache-2.0 2 | 3 | package io.github.muntashirakon.adb; 4 | 5 | import java.io.IOException; 6 | import java.io.OutputStream; 7 | 8 | public class AdbOutputStream extends OutputStream { 9 | private final AdbStream mAdbStream; 10 | 11 | public AdbOutputStream(AdbStream adbStream) { 12 | this.mAdbStream = adbStream; 13 | } 14 | 15 | @Override 16 | public void write(int b) throws IOException { 17 | write(new byte[]{(byte) (b & 0xFF)}); 18 | } 19 | 20 | @Override 21 | public void write(byte[] b) throws IOException { 22 | write(b, 0, b.length); 23 | } 24 | 25 | @Override 26 | public void write(byte[] b, int off, int len) throws IOException { 27 | mAdbStream.write(b, off, len); 28 | } 29 | 30 | @Override 31 | public void flush() throws IOException { 32 | mAdbStream.flush(); 33 | } 34 | 35 | @Override 36 | public void close() throws IOException { 37 | flush(); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_about.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 19 | 20 | 23 | 24 | -------------------------------------------------------------------------------- /app/src/main/java/com/drdisagree/colorblendr/utils/monet/quantize/QuantizerResult.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.drdisagree.colorblendr.utils.monet.quantize; 18 | 19 | import java.util.Map; 20 | 21 | /** 22 | * Represents result of a quantizer run 23 | */ 24 | public final class QuantizerResult { 25 | public final Map colorToCount; 26 | 27 | QuantizerResult(Map colorToCount) { 28 | this.colorToCount = colorToCount; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /app/src/main/res/layout/view_wallpaper_color.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 15 | 16 | 26 | 27 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_stop.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | -------------------------------------------------------------------------------- /libadb/src/main/java/io/github/muntashirakon/adb/KeyPair.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: GPL-3.0-or-later OR Apache-2.0 2 | 3 | package io.github.muntashirakon.adb; 4 | 5 | import java.security.PrivateKey; 6 | import java.security.PublicKey; 7 | import java.security.cert.Certificate; 8 | 9 | import javax.security.auth.DestroyFailedException; 10 | 11 | final class KeyPair { 12 | private final PrivateKey mPrivateKey; 13 | private final Certificate mCertificate; 14 | 15 | public KeyPair(PrivateKey privateKey, Certificate certificate) { 16 | mPrivateKey = privateKey; 17 | mCertificate = certificate; 18 | } 19 | 20 | public PrivateKey getPrivateKey() { 21 | return mPrivateKey; 22 | } 23 | 24 | public PublicKey getPublicKey() { 25 | return mCertificate.getPublicKey(); 26 | } 27 | 28 | public Certificate getCertificate() { 29 | return mCertificate; 30 | } 31 | 32 | public void destroy() throws DestroyFailedException { 33 | try { 34 | mPrivateKey.destroy(); 35 | } catch (NoSuchMethodError ignore) { 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /app/src/main/java/com/drdisagree/colorblendr/data/models/AboutAppModel.kt: -------------------------------------------------------------------------------- 1 | package com.drdisagree.colorblendr.data.models 2 | 3 | import com.drdisagree.colorblendr.ui.adapters.AboutAppAdapter.Companion.TYPE_ABOUT_APP 4 | import com.drdisagree.colorblendr.ui.adapters.AboutAppAdapter.Companion.TYPE_CREDITS_HEADER 5 | import com.drdisagree.colorblendr.ui.adapters.AboutAppAdapter.Companion.TYPE_CREDITS_ITEM 6 | 7 | class AboutAppModel { 8 | 9 | var layout = 0 10 | var icon: String = "" 11 | var title: String = "" 12 | var desc: String = "" 13 | var url: String = "" 14 | var viewType: Int = TYPE_CREDITS_ITEM 15 | 16 | constructor(layout: Int) { 17 | this.layout = layout 18 | this.viewType = TYPE_ABOUT_APP 19 | } 20 | 21 | constructor(title: String) { 22 | this.title = title 23 | this.viewType = TYPE_CREDITS_HEADER 24 | } 25 | 26 | constructor(title: String, desc: String, url: String, icon: String) { 27 | this.title = title 28 | this.desc = desc 29 | this.icon = icon 30 | this.url = url 31 | this.viewType = TYPE_CREDITS_ITEM 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /app/src/main/res/layout/view_toolbar.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 24 | 25 | -------------------------------------------------------------------------------- /colorpickerdialog/src/main/java/me/jfenn/colorpickerdialog/views/color/OrientationDiffListener.java: -------------------------------------------------------------------------------- 1 | package me.jfenn.colorpickerdialog.views.color; 2 | 3 | import android.content.Context; 4 | import android.view.OrientationEventListener; 5 | 6 | public abstract class OrientationDiffListener extends OrientationEventListener { 7 | 8 | private int rotation = -1; 9 | 10 | public OrientationDiffListener(Context context) { 11 | super(context); 12 | } 13 | 14 | @Override 15 | public void onOrientationChanged(int orientation) { 16 | int rotation; 17 | 18 | if (orientation <= 45 || orientation > 315) 19 | rotation = 0; 20 | else if (orientation <= 135) 21 | rotation = 1; 22 | else if (orientation <= 225) 23 | rotation = 2; 24 | else rotation = 3; 25 | 26 | if (this.rotation < 0) { 27 | this.rotation = rotation; 28 | return; 29 | } 30 | 31 | if (this.rotation != rotation) 32 | onRotationChanged(rotation); 33 | } 34 | 35 | public abstract void onRotationChanged(int rotation); 36 | 37 | } 38 | -------------------------------------------------------------------------------- /app/src/main/java/com/drdisagree/colorblendr/service/ScheduledJobService.kt: -------------------------------------------------------------------------------- 1 | package com.drdisagree.colorblendr.service 2 | 3 | import android.app.job.JobParameters 4 | import android.app.job.JobService 5 | import android.content.Intent 6 | import android.util.Log 7 | import androidx.work.Configuration 8 | 9 | class ScheduledJobService internal constructor() : JobService() { 10 | 11 | init { 12 | val builder: Configuration.Builder = Configuration.Builder() 13 | builder.setJobSchedulerJobIdRange(0, 1000) 14 | } 15 | 16 | override fun onStartJob(jobParameters: JobParameters): Boolean { 17 | val serviceLauncher = ServiceLauncher() 18 | serviceLauncher.launchService(this) 19 | 20 | return false 21 | } 22 | 23 | override fun onStopJob(jobParameters: JobParameters): Boolean { 24 | Log.i(TAG, "Stopping job...") 25 | 26 | val broadcastIntent = Intent(applicationContext.packageName) 27 | sendBroadcast(broadcastIntent) 28 | 29 | return false 30 | } 31 | 32 | companion object { 33 | private val TAG: String = ScheduledJobService::class.java.simpleName 34 | } 35 | } -------------------------------------------------------------------------------- /app/src/main/java/com/drdisagree/colorblendr/utils/wifiadb/AdbPairingNotificationWorker.kt: -------------------------------------------------------------------------------- 1 | package com.drdisagree.colorblendr.utils.wifiadb 2 | 3 | import android.content.Context 4 | import android.content.Intent 5 | import androidx.work.Worker 6 | import androidx.work.WorkerParameters 7 | import com.drdisagree.colorblendr.service.AdbPairingNotification 8 | 9 | class AdbPairingNotificationWorker( 10 | context: Context, 11 | params: WorkerParameters 12 | ) : Worker( 13 | context, 14 | params 15 | ) { 16 | 17 | override fun doWork(): Result { 18 | val context = applicationContext 19 | val pairingCode = inputData.getString(PAIRING_CODE_KEY) 20 | val message = inputData.getString("message") 21 | 22 | context.startForegroundService( 23 | Intent(context, AdbPairingNotification::class.java).apply { 24 | putExtra(PAIRING_CODE_KEY, pairingCode) 25 | message?.let { putExtra("message", it) } 26 | } 27 | ) 28 | 29 | return Result.success() 30 | } 31 | 32 | companion object { 33 | const val PAIRING_CODE_KEY = "pairingCode" 34 | } 35 | } -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_ab_back_material.xml: -------------------------------------------------------------------------------- 1 | 16 | 23 | 26 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_help.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 10 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/seekbar_track.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 13 | 14 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /libadb/src/main/java/io/github/muntashirakon/adb/AdbInputStream.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: GPL-3.0-or-later OR Apache-2.0 2 | 3 | package io.github.muntashirakon.adb; 4 | 5 | import java.io.IOException; 6 | import java.io.InputStream; 7 | 8 | public class AdbInputStream extends InputStream { 9 | public AdbStream mAdbStream; 10 | 11 | public AdbInputStream(AdbStream adbStream) { 12 | this.mAdbStream = adbStream; 13 | } 14 | 15 | @Override 16 | public int read() throws IOException { 17 | byte[] bytes = new byte[1]; 18 | if (read(bytes) == -1) { 19 | return -1; 20 | } 21 | return bytes[0]; 22 | } 23 | 24 | @Override 25 | public int read(byte[] b) throws IOException { 26 | return read(b, 0, b.length); 27 | } 28 | 29 | @Override 30 | public int read(byte[] b, int off, int len) throws IOException { 31 | if (mAdbStream.isClosed()) return -1; 32 | return mAdbStream.read(b, off, len); 33 | } 34 | 35 | @Override 36 | public void close() { 37 | } 38 | 39 | @Override 40 | public int available() throws IOException { 41 | return mAdbStream.available(); 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_nav_colors_outline.xml: -------------------------------------------------------------------------------- 1 | 6 | 11 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_home.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 17 | 18 | 27 | 28 | -------------------------------------------------------------------------------- /systemstubs/src/main/java/android/os/UserHandle.java: -------------------------------------------------------------------------------- 1 | package android.os; 2 | 3 | import androidx.annotation.NonNull; 4 | 5 | public class UserHandle implements Parcelable { 6 | 7 | private UserHandle(@NonNull Parcel in) { 8 | throw new RuntimeException("Stub!"); 9 | } 10 | 11 | public static UserHandle of(int userId) { 12 | throw new RuntimeException("Stub!"); 13 | } 14 | 15 | public int getIdentifier() { 16 | throw new RuntimeException("Stub!"); 17 | } 18 | 19 | @Override 20 | public int describeContents() { 21 | throw new RuntimeException("Stub!"); 22 | } 23 | 24 | @Override 25 | public void writeToParcel(Parcel dest, int flags) { 26 | throw new RuntimeException("Stub!"); 27 | } 28 | 29 | public static final @NonNull Creator CREATOR = 30 | new Creator() { 31 | @Override 32 | public UserHandle createFromParcel(Parcel source) { 33 | return UserHandle.of(source.readInt()); 34 | } 35 | 36 | @Override 37 | public UserHandle[] newArray(int size) { 38 | return new UserHandle[size]; 39 | } 40 | }; 41 | } -------------------------------------------------------------------------------- /app/src/main/java/com/drdisagree/colorblendr/utils/monet/dynamiccolor/TonePolarity.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.drdisagree.colorblendr.utils.monet.dynamiccolor; 18 | 19 | /** 20 | * Describes the relationship in lightness between two colors. 21 | * 22 | *

'nearer' and 'farther' describes closeness to the surface roles. For instance, 23 | * ToneDeltaPair(A, B, 10, 'nearer', stayTogether) states that A should be 10 lighter than B in 24 | * light mode, and 10 darker than B in dark mode. 25 | * 26 | *

See `ToneDeltaPair` for details. 27 | */ 28 | public enum TonePolarity { 29 | DARKER, LIGHTER, NEARER, FARTHER 30 | } 31 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_table_view.xml: -------------------------------------------------------------------------------- 1 | 7 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_counter_two.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_news.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 12 | 15 | -------------------------------------------------------------------------------- /app/src/main/java/com/drdisagree/colorblendr/ui/viewmodels/SharedViewModel.kt: -------------------------------------------------------------------------------- 1 | package com.drdisagree.colorblendr.ui.viewmodels 2 | 3 | import androidx.lifecycle.LiveData 4 | import androidx.lifecycle.MutableLiveData 5 | import androidx.lifecycle.ViewModel 6 | 7 | class SharedViewModel : ViewModel() { 8 | 9 | private val booleanStates: MutableLiveData> = MutableLiveData() 10 | 11 | fun getBooleanStates(): LiveData> { 12 | return booleanStates 13 | } 14 | 15 | fun setBooleanState(viewId: String, state: Boolean) { 16 | val currentStates: MutableMap = booleanStates.getValue() ?: HashMap() 17 | currentStates[viewId] = state 18 | booleanStates.value = currentStates 19 | } 20 | 21 | private val visibilityStates: MutableLiveData> = MutableLiveData() 22 | 23 | fun getVisibilityStates(): LiveData> { 24 | return visibilityStates 25 | } 26 | 27 | fun setVisibilityState(viewId: String, visibility: Int) { 28 | val currentStates: MutableMap = visibilityStates.getValue() ?: HashMap() 29 | currentStates[viewId] = visibility 30 | visibilityStates.value = currentStates 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /colorpickerdialog/src/main/java/me/jfenn/colorpickerdialog/views/color/HorizontalSmoothColorView.java: -------------------------------------------------------------------------------- 1 | package me.jfenn.colorpickerdialog.views.color; 2 | 3 | import android.content.Context; 4 | import android.util.AttributeSet; 5 | 6 | import androidx.annotation.Nullable; 7 | import androidx.annotation.RequiresApi; 8 | 9 | public class HorizontalSmoothColorView extends SmoothColorView { 10 | 11 | public HorizontalSmoothColorView(Context context) { 12 | super(context); 13 | } 14 | 15 | public HorizontalSmoothColorView(Context context, @Nullable AttributeSet attrs) { 16 | super(context, attrs); 17 | } 18 | 19 | public HorizontalSmoothColorView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { 20 | super(context, attrs, defStyleAttr); 21 | } 22 | 23 | @RequiresApi(21) 24 | public HorizontalSmoothColorView(Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) { 25 | super(context, attrs, defStyleAttr, defStyleRes); 26 | } 27 | 28 | @Override 29 | protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { 30 | super.onMeasure(widthMeasureSpec, heightMeasureSpec); 31 | 32 | int height = (int) (getMeasuredWidth() * 0.5625); 33 | setMeasuredDimension(getMeasuredWidth(), height); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_counter_three.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_nav_settings_outline.xml: -------------------------------------------------------------------------------- 1 | 7 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/values/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 25 | 26 | 26 | 27 |