Loading res/values-v31/themes.xml 0 → 100644 +124 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <resources> <!--System palette (Android 12+)--> <style name="CalendarAppThemeLightMonet" parent="Theme.AppCompat.Light.NoActionBar"> <item name="colorPrimary">@android:color/system_accent1_500</item> <item name="colorPrimaryDark">@android:color/system_accent1_800</item> <item name="colorAccent">@android:color/system_accent2_500</item> <item name="light_dark">@color/bg_black</item> <item name="android:windowBackground">@android:color/system_neutral1_10</item> <item name="android:itemBackground">@android:color/system_neutral1_10</item> <item name="settings_titleText">?android:attr/textAppearanceLargeInverse</item> <item name="month_header_bgcolor">@color/month_other_bgcolor</item> <item name="agenda_general_bgcolor">@color/agenda_general_background_color</item> <item name="agenda_day_item_text_color">@color/agenda_day_item_text_color</item> <item name="edit_event_bgcolor">@android:color/system_neutral1_10</item> <item name="editEvent_small_color">@color/edit_event_small</item> <item name="recurrence_picker_bgcolor_up">@android:color/system_neutral1_10</item> <item name="recurrence_picker_bgcolor">@color/recurrence_picker_background</item> <item name="done_text_recurrence">@color/recurrence_done_text_color</item> <item name="spinner_privacy_presence_bgcolor">@color/spinner_privacy_popupBackground</item> <item name="event_info_bgcolor">@android:color/system_neutral1_10</item> <item name="event_info_scrollview_bgcolor">@android:color/system_neutral1_10</item> <item name="event_info_organizer_color">@color/event_info_organizer_color</item> <item name="event_info_description_color">@color/event_info_description_color</item> <item name="event_info_body_color">@color/event_info_body_color</item> <item name="event_info_label_color">@color/event_info_label_color</item> <item name="create_event_date_color">@color/create_event_date_color</item> <item name="calendar_owner_text_color">@color/calendar_owner_text_color</item> <item name="calendar_date_banner_bgcolor">@color/calendar_date_banner_background</item> <item name="app_bar_color">@android:color/system_accent1_500</item> <item name="autoCompleteTextViewStyle">@style/actionbar_cursor</item> <item name="minus_button">@drawable/ic_menu_remove_field_holo_light</item> <item name="ic_menu_email">@drawable/ic_menu_email_holo_light</item> <item name="calendar_future_bg_color">@color/calendar_future_bg_color</item> <item name="month_other_bgcolor">@color/month_other_bgcolor</item> <item name="settings_calendar_offline">@drawable/ic_sync_off_light</item> <item name="iconAboutAuthors">@android:color/black</item> <item name="iconAboutLicense">@android:color/black</item> <item name="iconSettingsAbout">@android:color/black</item> <item name="iconSettingsGeneral">@android:color/black</item> <item name="iconAddCalendar">@android:color/black</item> <item name="iconCalendarAccount">@android:color/black</item> </style> <style name="CalendarAppThemeDarkMonet" parent="Theme.AppCompat.NoActionBar"> <item name="colorPrimary">@android:color/system_accent1_500</item> <item name="colorPrimaryDark">@android:color/system_accent1_900</item> <item name="colorAccent">@android:color/system_accent2_400</item> <item name="light_dark">@android:color/white</item> <item name="android:windowBackground">@android:color/system_neutral1_800</item> <item name="android:itemBackground">@android:color/system_neutral1_800</item> <item name="actionBarPopupTheme">@style/ThemeOverlay.AppCompat.Dark</item> <item name="settings_titleText">?android:attr/textAppearanceLarge</item> <item name="month_header_bgcolor">@color/month_bgcolor_dark</item> <item name="agenda_general_bgcolor">@color/agenda_general_background_color_dark</item> <item name="agenda_day_item_text_color">@color/agenda_day_item_text_color_dark</item> <item name="edit_event_bgcolor">@color/edit_event_color_dark</item> <item name="editEvent_small_color">@color/edit_event_small_dark</item> <item name="recurrence_picker_bgcolor_up">@color/recurrence_picker_background_up_dark</item> <item name="recurrence_picker_bgcolor">@color/recurrence_picker_background_dark</item> <item name="done_text_recurrence">@color/recurrence_done_text_color_black</item> <item name="spinner_privacy_presence_bgcolor">@color/spinner_privacy_popupBackground_dark</item> <item name="event_info_bgcolor">@android:color/system_neutral1_800</item> <item name="event_info_scrollview_bgcolor">@android:color/system_neutral1_800</item> <item name="event_info_organizer_color">@color/event_info_organizer_color_dark</item> <item name="event_info_description_color">@color/event_info_description_color_dark</item> <item name="event_info_body_color">@color/event_info_body_color_dark</item> <item name="event_info_label_color">@color/event_info_label_color_dark</item> <item name="create_event_date_color">@color/create_event_date_color_dark</item> <item name="calendar_owner_text_color">@color/calendar_owner_text_color_dark</item> <item name="calendar_date_banner_bgcolor">@color/calendar_date_banner_background_dark</item> <item name="app_bar_color">@android:color/system_accent1_800</item> <item name="minus_button">@drawable/ic_menu_remove_field_holo_light_dark</item> <item name="ic_menu_email">@drawable/ic_menu_email_holo_dark</item> <item name="calendar_future_bg_color">@color/calendar_future_bg_color_dark</item> <item name="month_other_bgcolor">@color/month_other_bgcolor_dark</item> <item name="settings_calendar_offline">@drawable/ic_sync_off_dark</item> <item name="iconAboutAuthors">@android:color/white</item> <item name="iconAboutLicense">@android:color/white</item> <item name="iconSettingsAbout">@android:color/white</item> <item name="iconSettingsGeneral">@android:color/white</item> <item name="iconAddCalendar">@android:color/white</item> <item name="iconCalendarAccount">@android:color/white</item> </style> <style name="CalendarAppThemeBlackMonet" parent="Theme.AppCompat.NoActionBar"> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/bg_black</item> <item name="colorAccent">@color/colorAccent</item> <item name="light_dark">@android:color/white</item> <item name="android:windowBackground">@color/bg_black</item> <item name="actionBarPopupTheme">@style/ThemeOverlay.AppCompat.Dark</item> <item name="settings_titleText">?android:attr/textAppearanceLarge</item> <item name="month_header_bgcolor">@color/month_bgcolor_black</item> <item name="agenda_general_bgcolor">@color/agenda_general_background_color_black</item> <item name="agenda_day_item_text_color">@color/agenda_day_item_text_color_black</item> <item name="edit_event_bgcolor">@color/edit_event_color_black</item> <item name="editEvent_small_color">@color/edit_event_small_black</item> <item name="android:itemBackground">@color/bg_black</item> <item name="recurrence_picker_bgcolor_up">@color/recurrence_picker_background_up_black</item> <item name="recurrence_picker_bgcolor">@color/recurrence_picker_background_black</item> <item name="done_text_recurrence">@color/recurrence_done_text_color_black</item> <item name="spinner_privacy_presence_bgcolor">@color/spinner_privacy_popupBackground_black</item> <item name="event_info_bgcolor">@color/bg_black</item> <item name="event_info_scrollview_bgcolor">@color/bg_black</item> <item name="event_info_organizer_color">@color/event_info_organizer_color_black</item> <item name="event_info_description_color">@color/event_info_description_color_black</item> <item name="event_info_body_color">@color/event_info_body_color_black</item> <item name="event_info_label_color">@color/event_info_label_color_black</item> <item name="create_event_date_color">@color/create_event_date_color_black</item> <item name="calendar_owner_text_color">@color/calendar_owner_text_color_black</item> <item name="calendar_date_banner_bgcolor">@color/calendar_date_banner_background_black</item> <item name="app_bar_color">@color/app_bar_black</item> <item name="minus_button">@drawable/ic_menu_remove_field_holo_light_dark</item> <item name="ic_menu_email">@drawable/ic_menu_email_holo_dark</item> <item name="calendar_future_bg_color">@color/calendar_future_bg_color_black</item> <item name="month_other_bgcolor">@color/month_other_bgcolor_black</item> <item name="settings_calendar_offline">@drawable/ic_sync_off_dark</item> <item name="iconAboutAuthors">@android:color/white</item> <item name="iconAboutLicense">@android:color/white</item> <item name="iconSettingsAbout">@android:color/white</item> <item name="iconSettingsGeneral">@android:color/white</item> <item name="iconAddCalendar">@android:color/white</item> <item name="iconCalendarAccount">@android:color/white</item> </style> </resources> No newline at end of file src/com/android/calendar/DynamicTheme.java +37 −1 Original line number Diff line number Diff line Loading @@ -6,6 +6,8 @@ import android.content.Intent; import android.content.res.Configuration; import android.content.res.Resources; import android.os.Build; import android.util.Log; import androidx.annotation.NonNull; import ws.xsoh.etar.R; Loading @@ -14,6 +16,7 @@ import ws.xsoh.etar.R; * Created by Gitsaibot on 01.07.16. */ public class DynamicTheme { private static final String TAG = "DynamicTheme"; private static final String THEME_PREF = "pref_theme"; private static final String COLOR_PREF = "pref_color"; Loading @@ -28,6 +31,7 @@ public class DynamicTheme { private static final String GREEN = "green"; private static final String RED = "red"; private static final String PURPLE = "purple"; private static final String MONET = "monet"; private int currentTheme; Loading @@ -52,8 +56,34 @@ public class DynamicTheme { private static int getSelectedTheme(Activity activity) { String theme = getTheme(activity) + getPrimaryColor(activity); if (theme.endsWith("monet") && !Utils.isMonetAvailable(activity.getApplicationContext())) { // Fall back to teal theme Log.d(TAG, "Monet theme chosen but system does not support Material You"); theme = getTheme(activity) + "teal"; } boolean pureBlack = Utils.getSharedPreference(activity, PURE_BLACK_NIGHT_MODE, false); switch (theme) { // System palette (Android 12+) case SYSTEM+MONET: if (isSystemInDarkTheme(activity)) { if (pureBlack) { return R.style.CalendarAppThemeBlackMonet; } else { return R.style.CalendarAppThemeDarkMonet; } } else { return R.style.CalendarAppThemeLightMonet; } case LIGHT+MONET: return R.style.CalendarAppThemeLightMonet; case DARK+MONET: return R.style.CalendarAppThemeDarkMonet; case BLACK+MONET: return R.style.CalendarAppThemeBlackMonet; // Colors case SYSTEM+TEAL: if (isSystemInDarkTheme(activity)) { if (pureBlack) { Loading Loading @@ -156,8 +186,12 @@ public class DynamicTheme { } public static String getPrimaryColor(Context context) { if (Utils.isMonetAvailable(context)) { return MONET; } else { return Utils.getSharedPreference(context, COLOR_PREF, TEAL); } } private static String getSuffix(Context context) { String theme = getTheme(context); Loading Loading @@ -191,6 +225,8 @@ public class DynamicTheme { return R.color.colorRedPrimary; case PURPLE: return R.color.colorPurplePrimary; case MONET: return android.R.color.system_accent1_500; default: throw new UnsupportedOperationException("Unknown color name : " + name); } Loading src/com/android/calendar/Utils.java +30 −0 Original line number Diff line number Diff line Loading @@ -204,6 +204,36 @@ public class Utils { return Build.VERSION.SDK_INT >= Build.VERSION_CODES.O; } /** * Returns whether the system supports Material You. * * As of Android 12.0, Material You is only available on some devices (Pixel, select Samsung * devices). On other devices (e.g., AOSP-based ROMs), the system_* color resources will still * exist but cannot be configured by the user. */ public static boolean isMonetAvailable(Context context) { if (Build.VERSION.SDK_INT < 31) { return false; } // Wallpaper-based theming requires a color extraction engine and is enabled when the `flag_monet` // config flag is enabled in SystemUI. It's unclear how to access this information from a // normal application. // // To determine whether Material You is available on the device, we use a naive heuristic which // is to compare the palette against known default values in AOSP. Resources resources = context.getResources(); int probe1 = resources.getColor(android.R.color.system_accent1_500, context.getTheme()); int probe2 = resources.getColor(android.R.color.system_accent2_500, context.getTheme()); if (probe1 == Color.parseColor("#007fac") && probe2 == Color.parseColor("#657985")) { // AOSP palette Log.d(TAG, "Material You not available - Detected AOSP palette"); return false; } return true; } public static int getViewTypeFromIntentAndSharedPref(Activity activity) { Intent intent = activity.getIntent(); Bundle extras = intent.getExtras(); Loading src/com/android/calendar/settings/GeneralPreferences.kt +5 −0 Original line number Diff line number Diff line Loading @@ -135,6 +135,11 @@ class GeneralPreferences : PreferenceFragmentCompat(), ringtonePref.summary = ringtoneDisplayString ?: "" } if (Utils.isMonetAvailable(requireContext())) { // Palette is controlled by user wallpaper preferenceScreen.removePreferenceRecursively(KEY_COLOR_PREF); } buildSnoozeDelayEntries() buildDefaultReminderPrefEntries() defaultEventDurationPref.summary = defaultEventDurationPref.entry Loading Loading
res/values-v31/themes.xml 0 → 100644 +124 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <resources> <!--System palette (Android 12+)--> <style name="CalendarAppThemeLightMonet" parent="Theme.AppCompat.Light.NoActionBar"> <item name="colorPrimary">@android:color/system_accent1_500</item> <item name="colorPrimaryDark">@android:color/system_accent1_800</item> <item name="colorAccent">@android:color/system_accent2_500</item> <item name="light_dark">@color/bg_black</item> <item name="android:windowBackground">@android:color/system_neutral1_10</item> <item name="android:itemBackground">@android:color/system_neutral1_10</item> <item name="settings_titleText">?android:attr/textAppearanceLargeInverse</item> <item name="month_header_bgcolor">@color/month_other_bgcolor</item> <item name="agenda_general_bgcolor">@color/agenda_general_background_color</item> <item name="agenda_day_item_text_color">@color/agenda_day_item_text_color</item> <item name="edit_event_bgcolor">@android:color/system_neutral1_10</item> <item name="editEvent_small_color">@color/edit_event_small</item> <item name="recurrence_picker_bgcolor_up">@android:color/system_neutral1_10</item> <item name="recurrence_picker_bgcolor">@color/recurrence_picker_background</item> <item name="done_text_recurrence">@color/recurrence_done_text_color</item> <item name="spinner_privacy_presence_bgcolor">@color/spinner_privacy_popupBackground</item> <item name="event_info_bgcolor">@android:color/system_neutral1_10</item> <item name="event_info_scrollview_bgcolor">@android:color/system_neutral1_10</item> <item name="event_info_organizer_color">@color/event_info_organizer_color</item> <item name="event_info_description_color">@color/event_info_description_color</item> <item name="event_info_body_color">@color/event_info_body_color</item> <item name="event_info_label_color">@color/event_info_label_color</item> <item name="create_event_date_color">@color/create_event_date_color</item> <item name="calendar_owner_text_color">@color/calendar_owner_text_color</item> <item name="calendar_date_banner_bgcolor">@color/calendar_date_banner_background</item> <item name="app_bar_color">@android:color/system_accent1_500</item> <item name="autoCompleteTextViewStyle">@style/actionbar_cursor</item> <item name="minus_button">@drawable/ic_menu_remove_field_holo_light</item> <item name="ic_menu_email">@drawable/ic_menu_email_holo_light</item> <item name="calendar_future_bg_color">@color/calendar_future_bg_color</item> <item name="month_other_bgcolor">@color/month_other_bgcolor</item> <item name="settings_calendar_offline">@drawable/ic_sync_off_light</item> <item name="iconAboutAuthors">@android:color/black</item> <item name="iconAboutLicense">@android:color/black</item> <item name="iconSettingsAbout">@android:color/black</item> <item name="iconSettingsGeneral">@android:color/black</item> <item name="iconAddCalendar">@android:color/black</item> <item name="iconCalendarAccount">@android:color/black</item> </style> <style name="CalendarAppThemeDarkMonet" parent="Theme.AppCompat.NoActionBar"> <item name="colorPrimary">@android:color/system_accent1_500</item> <item name="colorPrimaryDark">@android:color/system_accent1_900</item> <item name="colorAccent">@android:color/system_accent2_400</item> <item name="light_dark">@android:color/white</item> <item name="android:windowBackground">@android:color/system_neutral1_800</item> <item name="android:itemBackground">@android:color/system_neutral1_800</item> <item name="actionBarPopupTheme">@style/ThemeOverlay.AppCompat.Dark</item> <item name="settings_titleText">?android:attr/textAppearanceLarge</item> <item name="month_header_bgcolor">@color/month_bgcolor_dark</item> <item name="agenda_general_bgcolor">@color/agenda_general_background_color_dark</item> <item name="agenda_day_item_text_color">@color/agenda_day_item_text_color_dark</item> <item name="edit_event_bgcolor">@color/edit_event_color_dark</item> <item name="editEvent_small_color">@color/edit_event_small_dark</item> <item name="recurrence_picker_bgcolor_up">@color/recurrence_picker_background_up_dark</item> <item name="recurrence_picker_bgcolor">@color/recurrence_picker_background_dark</item> <item name="done_text_recurrence">@color/recurrence_done_text_color_black</item> <item name="spinner_privacy_presence_bgcolor">@color/spinner_privacy_popupBackground_dark</item> <item name="event_info_bgcolor">@android:color/system_neutral1_800</item> <item name="event_info_scrollview_bgcolor">@android:color/system_neutral1_800</item> <item name="event_info_organizer_color">@color/event_info_organizer_color_dark</item> <item name="event_info_description_color">@color/event_info_description_color_dark</item> <item name="event_info_body_color">@color/event_info_body_color_dark</item> <item name="event_info_label_color">@color/event_info_label_color_dark</item> <item name="create_event_date_color">@color/create_event_date_color_dark</item> <item name="calendar_owner_text_color">@color/calendar_owner_text_color_dark</item> <item name="calendar_date_banner_bgcolor">@color/calendar_date_banner_background_dark</item> <item name="app_bar_color">@android:color/system_accent1_800</item> <item name="minus_button">@drawable/ic_menu_remove_field_holo_light_dark</item> <item name="ic_menu_email">@drawable/ic_menu_email_holo_dark</item> <item name="calendar_future_bg_color">@color/calendar_future_bg_color_dark</item> <item name="month_other_bgcolor">@color/month_other_bgcolor_dark</item> <item name="settings_calendar_offline">@drawable/ic_sync_off_dark</item> <item name="iconAboutAuthors">@android:color/white</item> <item name="iconAboutLicense">@android:color/white</item> <item name="iconSettingsAbout">@android:color/white</item> <item name="iconSettingsGeneral">@android:color/white</item> <item name="iconAddCalendar">@android:color/white</item> <item name="iconCalendarAccount">@android:color/white</item> </style> <style name="CalendarAppThemeBlackMonet" parent="Theme.AppCompat.NoActionBar"> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/bg_black</item> <item name="colorAccent">@color/colorAccent</item> <item name="light_dark">@android:color/white</item> <item name="android:windowBackground">@color/bg_black</item> <item name="actionBarPopupTheme">@style/ThemeOverlay.AppCompat.Dark</item> <item name="settings_titleText">?android:attr/textAppearanceLarge</item> <item name="month_header_bgcolor">@color/month_bgcolor_black</item> <item name="agenda_general_bgcolor">@color/agenda_general_background_color_black</item> <item name="agenda_day_item_text_color">@color/agenda_day_item_text_color_black</item> <item name="edit_event_bgcolor">@color/edit_event_color_black</item> <item name="editEvent_small_color">@color/edit_event_small_black</item> <item name="android:itemBackground">@color/bg_black</item> <item name="recurrence_picker_bgcolor_up">@color/recurrence_picker_background_up_black</item> <item name="recurrence_picker_bgcolor">@color/recurrence_picker_background_black</item> <item name="done_text_recurrence">@color/recurrence_done_text_color_black</item> <item name="spinner_privacy_presence_bgcolor">@color/spinner_privacy_popupBackground_black</item> <item name="event_info_bgcolor">@color/bg_black</item> <item name="event_info_scrollview_bgcolor">@color/bg_black</item> <item name="event_info_organizer_color">@color/event_info_organizer_color_black</item> <item name="event_info_description_color">@color/event_info_description_color_black</item> <item name="event_info_body_color">@color/event_info_body_color_black</item> <item name="event_info_label_color">@color/event_info_label_color_black</item> <item name="create_event_date_color">@color/create_event_date_color_black</item> <item name="calendar_owner_text_color">@color/calendar_owner_text_color_black</item> <item name="calendar_date_banner_bgcolor">@color/calendar_date_banner_background_black</item> <item name="app_bar_color">@color/app_bar_black</item> <item name="minus_button">@drawable/ic_menu_remove_field_holo_light_dark</item> <item name="ic_menu_email">@drawable/ic_menu_email_holo_dark</item> <item name="calendar_future_bg_color">@color/calendar_future_bg_color_black</item> <item name="month_other_bgcolor">@color/month_other_bgcolor_black</item> <item name="settings_calendar_offline">@drawable/ic_sync_off_dark</item> <item name="iconAboutAuthors">@android:color/white</item> <item name="iconAboutLicense">@android:color/white</item> <item name="iconSettingsAbout">@android:color/white</item> <item name="iconSettingsGeneral">@android:color/white</item> <item name="iconAddCalendar">@android:color/white</item> <item name="iconCalendarAccount">@android:color/white</item> </style> </resources> No newline at end of file
src/com/android/calendar/DynamicTheme.java +37 −1 Original line number Diff line number Diff line Loading @@ -6,6 +6,8 @@ import android.content.Intent; import android.content.res.Configuration; import android.content.res.Resources; import android.os.Build; import android.util.Log; import androidx.annotation.NonNull; import ws.xsoh.etar.R; Loading @@ -14,6 +16,7 @@ import ws.xsoh.etar.R; * Created by Gitsaibot on 01.07.16. */ public class DynamicTheme { private static final String TAG = "DynamicTheme"; private static final String THEME_PREF = "pref_theme"; private static final String COLOR_PREF = "pref_color"; Loading @@ -28,6 +31,7 @@ public class DynamicTheme { private static final String GREEN = "green"; private static final String RED = "red"; private static final String PURPLE = "purple"; private static final String MONET = "monet"; private int currentTheme; Loading @@ -52,8 +56,34 @@ public class DynamicTheme { private static int getSelectedTheme(Activity activity) { String theme = getTheme(activity) + getPrimaryColor(activity); if (theme.endsWith("monet") && !Utils.isMonetAvailable(activity.getApplicationContext())) { // Fall back to teal theme Log.d(TAG, "Monet theme chosen but system does not support Material You"); theme = getTheme(activity) + "teal"; } boolean pureBlack = Utils.getSharedPreference(activity, PURE_BLACK_NIGHT_MODE, false); switch (theme) { // System palette (Android 12+) case SYSTEM+MONET: if (isSystemInDarkTheme(activity)) { if (pureBlack) { return R.style.CalendarAppThemeBlackMonet; } else { return R.style.CalendarAppThemeDarkMonet; } } else { return R.style.CalendarAppThemeLightMonet; } case LIGHT+MONET: return R.style.CalendarAppThemeLightMonet; case DARK+MONET: return R.style.CalendarAppThemeDarkMonet; case BLACK+MONET: return R.style.CalendarAppThemeBlackMonet; // Colors case SYSTEM+TEAL: if (isSystemInDarkTheme(activity)) { if (pureBlack) { Loading Loading @@ -156,8 +186,12 @@ public class DynamicTheme { } public static String getPrimaryColor(Context context) { if (Utils.isMonetAvailable(context)) { return MONET; } else { return Utils.getSharedPreference(context, COLOR_PREF, TEAL); } } private static String getSuffix(Context context) { String theme = getTheme(context); Loading Loading @@ -191,6 +225,8 @@ public class DynamicTheme { return R.color.colorRedPrimary; case PURPLE: return R.color.colorPurplePrimary; case MONET: return android.R.color.system_accent1_500; default: throw new UnsupportedOperationException("Unknown color name : " + name); } Loading
src/com/android/calendar/Utils.java +30 −0 Original line number Diff line number Diff line Loading @@ -204,6 +204,36 @@ public class Utils { return Build.VERSION.SDK_INT >= Build.VERSION_CODES.O; } /** * Returns whether the system supports Material You. * * As of Android 12.0, Material You is only available on some devices (Pixel, select Samsung * devices). On other devices (e.g., AOSP-based ROMs), the system_* color resources will still * exist but cannot be configured by the user. */ public static boolean isMonetAvailable(Context context) { if (Build.VERSION.SDK_INT < 31) { return false; } // Wallpaper-based theming requires a color extraction engine and is enabled when the `flag_monet` // config flag is enabled in SystemUI. It's unclear how to access this information from a // normal application. // // To determine whether Material You is available on the device, we use a naive heuristic which // is to compare the palette against known default values in AOSP. Resources resources = context.getResources(); int probe1 = resources.getColor(android.R.color.system_accent1_500, context.getTheme()); int probe2 = resources.getColor(android.R.color.system_accent2_500, context.getTheme()); if (probe1 == Color.parseColor("#007fac") && probe2 == Color.parseColor("#657985")) { // AOSP palette Log.d(TAG, "Material You not available - Detected AOSP palette"); return false; } return true; } public static int getViewTypeFromIntentAndSharedPref(Activity activity) { Intent intent = activity.getIntent(); Bundle extras = intent.getExtras(); Loading
src/com/android/calendar/settings/GeneralPreferences.kt +5 −0 Original line number Diff line number Diff line Loading @@ -135,6 +135,11 @@ class GeneralPreferences : PreferenceFragmentCompat(), ringtonePref.summary = ringtoneDisplayString ?: "" } if (Utils.isMonetAvailable(requireContext())) { // Palette is controlled by user wallpaper preferenceScreen.removePreferenceRecursively(KEY_COLOR_PREF); } buildSnoozeDelayEntries() buildDefaultReminderPrefEntries() defaultEventDurationPref.summary = defaultEventDurationPref.entry Loading