diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/utils/MaterialYouUtils.java b/app/src/main/java/ml/docilealligator/infinityforreddit/utils/MaterialYouUtils.java index d470e1d0..63c3d9f2 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/utils/MaterialYouUtils.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/utils/MaterialYouUtils.java @@ -48,7 +48,93 @@ public class MaterialYouUtils { SharedPreferences amoledThemeSharedPreferences, @Nullable MaterialYouListener materialYouListener) { executor.execute(() -> { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { + CustomTheme lightTheme = CustomThemeWrapper.getIndigo(context); + CustomTheme darkTheme = CustomThemeWrapper.getIndigoDark(context); + CustomTheme amoledTheme = CustomThemeWrapper.getIndigoAmoled(context); + + + lightTheme.colorPrimary = context.getColor(android.R.color.system_accent1_300); + lightTheme.colorPrimaryDark = context.getColor(android.R.color.system_accent1_500); + lightTheme.colorAccent = context.getColor(android.R.color.system_accent3_300); + lightTheme.colorPrimaryLightTheme = context.getColor(android.R.color.system_accent1_200); + lightTheme.backgroundColor = context.getColor(android.R.color.system_neutral1_10); + lightTheme.cardViewBackgroundColor = context.getColor(android.R.color.system_neutral2_50); + lightTheme.commentBackgroundColor = context.getColor(android.R.color.system_neutral2_50); + lightTheme.awardedCommentBackgroundColor = context.getColor(android.R.color.system_neutral2_100); + lightTheme.bottomAppBarBackgroundColor = context.getColor(android.R.color.system_accent2_100); + lightTheme.navBarColor = context.getColor(android.R.color.system_neutral2_100); + lightTheme.primaryTextColor = context.getColor(android.R.color.system_neutral1_900); + lightTheme.secondaryTextColor = context.getColor(android.R.color.system_neutral1_900); + lightTheme.bottomAppBarIconColor = context.getColor(android.R.color.system_accent1_400);; + lightTheme.primaryIconColor = context.getColor(android.R.color.system_accent1_400); + lightTheme.fabIconColor = context.getColor(android.R.color.system_neutral1_10); + lightTheme.toolbarPrimaryTextAndIconColor = context.getColor(android.R.color.system_accent1_50); + lightTheme.toolbarSecondaryTextColor = context.getColor(android.R.color.system_accent3_50); + lightTheme.tabLayoutWithCollapsedCollapsingToolbarTabIndicator = context.getColor(android.R.color.system_accent1_50); + lightTheme.tabLayoutWithCollapsedCollapsingToolbarTextColor = context.getColor(android.R.color.system_accent1_50); + lightTheme.tabLayoutWithCollapsedCollapsingToolbarTabBackground = context.getColor(android.R.color.system_accent1_50); + lightTheme.tabLayoutWithExpandedCollapsingToolbarTabBackground = context.getColor(android.R.color.system_accent1_50); + lightTheme.tabLayoutWithExpandedCollapsingToolbarTabIndicator = context.getColor(android.R.color.system_accent1_50); + lightTheme.tabLayoutWithExpandedCollapsingToolbarTextColor = context.getColor(android.R.color.system_accent1_50); + lightTheme.circularProgressBarBackground = context.getColor(android.R.color.system_accent1_10); + lightTheme.dividerColor = context.getColor(android.R.color.system_neutral1_100); + lightTheme.isLightStatusBar = false; + lightTheme.isChangeStatusBarIconColorAfterToolbarCollapsedInImmersiveInterface = true; + lightTheme.name = "Material You"; + + darkTheme.colorPrimary = context.getColor(android.R.color.system_accent1_100); + darkTheme.colorPrimaryDark = context.getColor(android.R.color.system_accent1_300); + darkTheme.colorAccent = context.getColor(android.R.color.system_accent3_100); + darkTheme.colorPrimaryLightTheme = context.getColor(android.R.color.system_accent1_100); + darkTheme.backgroundColor = context.getColor(android.R.color.system_neutral1_900); + darkTheme.cardViewBackgroundColor = context.getColor(android.R.color.system_neutral2_800); + darkTheme.commentBackgroundColor = context.getColor(android.R.color.system_neutral2_800); + darkTheme.awardedCommentBackgroundColor = context.getColor(android.R.color.system_neutral2_800); + darkTheme.bottomAppBarBackgroundColor = context.getColor(android.R.color.system_accent2_800); + darkTheme.navBarColor = context.getColor(android.R.color.system_neutral2_800); + darkTheme.primaryTextColor = context.getColor(android.R.color.system_neutral1_10); + darkTheme.secondaryTextColor = context.getColor(android.R.color.system_neutral1_10); + darkTheme.bottomAppBarIconColor = context.getColor(android.R.color.system_accent1_100);; + darkTheme.primaryIconColor = context.getColor(android.R.color.system_accent1_100); + darkTheme.fabIconColor = context.getColor(android.R.color.system_neutral1_900); + darkTheme.toolbarPrimaryTextAndIconColor = context.getColor(android.R.color.system_accent1_900); + darkTheme.toolbarSecondaryTextColor = context.getColor(android.R.color.system_accent3_900); + darkTheme.tabLayoutWithCollapsedCollapsingToolbarTabIndicator = context.getColor(android.R.color.system_accent1_800); + darkTheme.tabLayoutWithCollapsedCollapsingToolbarTextColor = context.getColor(android.R.color.system_accent1_800); + darkTheme.tabLayoutWithCollapsedCollapsingToolbarTabBackground = context.getColor(android.R.color.system_accent1_800); + darkTheme.tabLayoutWithExpandedCollapsingToolbarTabBackground = context.getColor(android.R.color.system_accent1_800); + darkTheme.tabLayoutWithExpandedCollapsingToolbarTabIndicator = context.getColor(android.R.color.system_accent1_800); + darkTheme.tabLayoutWithExpandedCollapsingToolbarTextColor = context.getColor(android.R.color.system_accent1_800); + darkTheme.circularProgressBarBackground = context.getColor(android.R.color.system_accent1_900); + darkTheme.dividerColor = context.getColor(android.R.color.system_neutral1_600); + darkTheme.isLightStatusBar = true; + darkTheme.isChangeStatusBarIconColorAfterToolbarCollapsedInImmersiveInterface = true; + darkTheme.name = "Material You Dark"; + + amoledTheme.colorAccent = context.getColor(android.R.color.system_accent1_100); + amoledTheme.colorPrimaryLightTheme = context.getColor(android.R.color.system_accent3_100); + amoledTheme.name = "Material You Amoled"; + + redditDataRoomDatabase.customThemeDao().unsetLightTheme(); + redditDataRoomDatabase.customThemeDao().unsetDarkTheme(); + redditDataRoomDatabase.customThemeDao().unsetAmoledTheme(); + + redditDataRoomDatabase.customThemeDao().insert(lightTheme); + redditDataRoomDatabase.customThemeDao().insert(darkTheme); + redditDataRoomDatabase.customThemeDao().insert(amoledTheme); + + CustomThemeSharedPreferencesUtils.insertThemeToSharedPreferences(lightTheme, lightThemeSharedPreferences); + CustomThemeSharedPreferencesUtils.insertThemeToSharedPreferences(darkTheme, darkThemeSharedPreferences); + CustomThemeSharedPreferencesUtils.insertThemeToSharedPreferences(amoledTheme, amoledThemeSharedPreferences); + + handler.post(() -> { + if (materialYouListener != null) { + materialYouListener.applied(); + } + EventBus.getDefault().post(new RecreateActivityEvent()); + }); + } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) { WallpaperManager wallpaperManager = WallpaperManager.getInstance(context); WallpaperColors wallpaperColors = wallpaperManager.getWallpaperColors(WallpaperManager.FLAG_SYSTEM); @@ -109,7 +195,7 @@ public class MaterialYouUtils { redditDataRoomDatabase.customThemeDao().unsetLightTheme(); redditDataRoomDatabase.customThemeDao().unsetDarkTheme(); redditDataRoomDatabase.customThemeDao().unsetAmoledTheme(); - + redditDataRoomDatabase.customThemeDao().insert(lightTheme); redditDataRoomDatabase.customThemeDao().insert(darkTheme); redditDataRoomDatabase.customThemeDao().insert(amoledTheme);