From 50fc608eaedb5dd2a59e8411a803c6653267757e Mon Sep 17 00:00:00 2001 From: ajp_anton Date: Wed, 15 Jul 2026 19:20:16 +0000 Subject: [PATCH] Share default settings decoding --- .../shell/settings/SbtSettings.java | 168 ++++-------------- .../shell/settings/SbtSettingsTest.java | 10 ++ 2 files changed, 41 insertions(+), 137 deletions(-) diff --git a/app/src/main/java/se/ajpanton/statusbartweak/shell/settings/SbtSettings.java b/app/src/main/java/se/ajpanton/statusbartweak/shell/settings/SbtSettings.java index ca2d717..be234e3 100644 --- a/app/src/main/java/se/ajpanton/statusbartweak/shell/settings/SbtSettings.java +++ b/app/src/main/java/se/ajpanton/statusbartweak/shell/settings/SbtSettings.java @@ -96,6 +96,35 @@ public final class SbtSettings { } } + private enum EmptySettingsSource implements SettingsSource { + INSTANCE; + + @Override + public boolean getBoolean(String key, boolean defaultValue) { + return defaultValue; + } + + @Override + public int getInt(String key, int defaultValue) { + return defaultValue; + } + + @Override + public String getString(String key, String defaultValue) { + return defaultValue; + } + + @Override + public Set getStringSet(String key) { + return Collections.emptySet(); + } + + @Override + public boolean contains(String key) { + return false; + } + } + public static final String MODULE_PACKAGE = "se.ajpanton.statusbartweak"; public static final String PREFS_NAME = "sbt_settings"; public static final String ACTION_SETTINGS_CHANGED = @@ -938,142 +967,7 @@ public final class SbtSettings { } public static SbtSettings defaults() { - return new SbtSettings( - SbtDefaults.ICONS_AOD_CUTOUT_LIMIT_DEFAULT, - SbtDefaults.ICONS_LOCK_CUTOUT_LIMIT_DEFAULT, - SbtDefaults.UNLOCKED_MAX_ICONS_PER_ROW_DEFAULT, - SbtDefaults.ICONS_AOD_MAX_ICONS_PER_ROW_DEFAULT, - SbtDefaults.ICONS_AOD_MAX_ROWS_DEFAULT, - SbtDefaults.ICONS_AOD_EVEN_DISTRIBUTION_DEFAULT, - SbtDefaults.ICONS_LOCK_MAX_ICONS_PER_ROW_DEFAULT, - SbtDefaults.ICONS_LOCK_MAX_ROWS_DEFAULT, - SbtDefaults.ICONS_LOCK_EVEN_DISTRIBUTION_DEFAULT, - SbtDefaults.CARDS_AOD_MAX_ICONS_PER_ROW_DEFAULT, - SbtDefaults.CARDS_AOD_MAX_ROWS_DEFAULT, - SbtDefaults.CARDS_AOD_EVEN_DISTRIBUTION_DEFAULT, - SbtDefaults.CARDS_AOD_LIMIT_TO_WIDTH_DEFAULT, - SbtDefaults.LAYOUT_CARDS_NOTIF_AOD_ICON_HEIGHT_STEPS_DEFAULT, - SbtDefaults.CARDS_LOCK_MAX_ICONS_PER_ROW_DEFAULT, - SbtDefaults.CARDS_LOCK_MAX_ROWS_DEFAULT, - SbtDefaults.CARDS_LOCK_EVEN_DISTRIBUTION_DEFAULT, - SbtDefaults.CARDS_LOCK_LIMIT_TO_WIDTH_DEFAULT, - SbtDefaults.LAYOUT_CARDS_NOTIF_LOCK_ICON_HEIGHT_STEPS_DEFAULT, - SbtDefaults.AOD_KEEP_VISIBLE_DURING_CALL_DEFAULT, - SbtDefaults.BATTERY_LOCKSCREEN_UNPLUGGED_PERCENT_DEFAULT, - SbtDefaults.BATTERY_AOD_UNPLUGGED_PERCENT_DEFAULT, - SbtDefaults.BATTERY_BAR_ENABLED_DEFAULT, - SbtDefaults.BATTERY_BAR_POSITION_DEFAULT, - SbtDefaults.BATTERY_BAR_ALIGNMENT_DEFAULT, - SbtDefaults.BATTERY_BAR_THICKNESS_DP_DEFAULT, - SbtDefaults.BATTERY_BAR_EDGE_OFFSET_DP_DEFAULT, - SbtDefaults.BATTERY_BAR_CURVED_GEOMETRY_MODE_DEFAULT, - Collections.emptySet(), - Collections.emptyMap(), - Collections.emptyMap(), - SbtDefaults.BATTERY_BAR_MIN_LEVEL_DEFAULT, - SbtDefaults.BATTERY_BAR_MAX_LEVEL_DEFAULT, - SbtDefaults.BATTERY_BAR_DEFAULT_DISCHARGE_COLOR_DEFAULT, - SbtDefaults.BATTERY_BAR_DEFAULT_CHARGE_COLOR_DEFAULT, - new ArrayList<>(), - SbtDefaults.CLOCK_ENABLED_DEFAULT, - SbtDefaults.CLOCK_ENABLED_LOCKSCREEN_DEFAULT, - SbtDefaults.CLOCK_ENABLED_UNLOCKED_DEFAULT, - SbtDefaults.CLOCK_POSITION_DEFAULT, - SbtDefaults.CLOCK_HORIZONTAL_OFFSET_PX_DEFAULT, - SbtDefaults.CLOCK_MIDDLE_CUTOUT_SIDE_DEFAULT, - SbtDefaults.CLOCK_MIDDLE_AUTO_NEAREST_SIDE_DEFAULT, - SbtDefaults.CLOCK_MIDDLE_CUTOUT_GAP_PX_DEFAULT, - SbtDefaults.CLOCK_VERTICAL_OFFSET_PX_DEFAULT, - SbtDefaults.CLOCK_TEXT_SIZE_STEPS_DEFAULT, - SbtDefaults.CLOCK_TEXT_SIZE_STEPS_DEFAULT, - SbtDefaults.CLOCK_SHOW_SECONDS_DEFAULT, - SbtDefaults.CLOCK_SHOW_DATE_PREFIX_DEFAULT, - SbtDefaults.CLOCK_CUSTOM_FORMAT_ENABLED_DEFAULT, - SbtDefaults.CLOCK_CUSTOM_FORMAT_DEFAULT, - SbtDefaults.DRAWER_CLOCK_CUSTOM_FORMAT_ENABLED_DEFAULT, - SbtDefaults.DRAWER_CLOCK_CUSTOM_FORMAT_DEFAULT, - SbtDefaults.DRAWER_DATE_CUSTOM_FORMAT_ENABLED_DEFAULT, - SbtDefaults.DRAWER_DATE_CUSTOM_FORMAT_DEFAULT, - SbtDefaults.CLOCK_IGNORE_UNDER_DISPLAY_CAMERAS_DEFAULT, - SbtDefaults.LAYOUT_PADDING_CUTOUT_PX_DEFAULT, - SbtDefaults.LAYOUT_PADDING_LEFT_PX_DEFAULT, - SbtDefaults.LAYOUT_PADDING_RIGHT_PX_DEFAULT, - SbtDefaults.LAYOUT_ITEM_PADDING_PX_DEFAULT, - SbtDefaults.LAYOUT_PADDING_LEFT_ADD_STOCK_DEFAULT, - SbtDefaults.LAYOUT_PADDING_RIGHT_ADD_STOCK_DEFAULT, - SbtDefaults.LAYOUT_IGNORE_UNDER_DISPLAY_CAMERAS_DEFAULT, - SbtDefaults.LAYOUT_ITEM_ORDER_DEFAULT, - SbtDefaults.LAYOUT_CARRIER_POSITION_DEFAULT, - SbtDefaults.LAYOUT_CARRIER_ENABLED_LOCKSCREEN_DEFAULT, - SbtDefaults.LAYOUT_CARRIER_MIDDLE_SIDE_DEFAULT, - SbtDefaults.LAYOUT_CARRIER_VERTICAL_OFFSET_PX_DEFAULT, - SbtDefaults.LAYOUT_CHIP_POSITION_DEFAULT, - SbtDefaults.LAYOUT_CHIP_ENABLED_UNLOCKED_DEFAULT, - SbtDefaults.LAYOUT_CHIP_MIDDLE_SIDE_DEFAULT, - SbtDefaults.LAYOUT_CHIP_VERTICAL_OFFSET_PX_DEFAULT, - SbtDefaults.LAYOUT_CHIP_HEIGHT_STEPS_DEFAULT, - SbtDefaults.LAYOUT_NOTIF_POSITION_DEFAULT, - SbtDefaults.LAYOUT_NOTIF_SORT_ORDER_DEFAULT, - SbtDefaults.LAYOUT_NOTIF_ENABLED_AOD_DEFAULT, - SbtDefaults.LAYOUT_NOTIF_ENABLED_LOCKSCREEN_DEFAULT, - SbtDefaults.LAYOUT_NOTIF_ENABLED_UNLOCKED_DEFAULT, - SbtDefaults.LAYOUT_NOTIF_MIDDLE_SIDE_DEFAULT, - SbtDefaults.LAYOUT_NOTIF_VERTICAL_OFFSET_PX_DEFAULT, - SbtDefaults.LAYOUT_NOTIF_ICON_HEIGHT_STEPS_DEFAULT, - SbtDefaults.LAYOUT_NOTIF_LOCK_ICON_HEIGHT_STEPS_DEFAULT, - SbtDefaults.LAYOUT_NOTIF_AOD_ICON_HEIGHT_STEPS_DEFAULT, - SbtDefaults.LAYOUT_NOTIF_UNLOCKED_COUNT_DEFAULT, - null, - null, - null, - SbtDefaults.LAYOUT_NOTIF_UNLOCKED_COUNT_DEFAULT, - null, - null, - null, - SbtDefaults.LAYOUT_NOTIF_UNLOCKED_COUNT_DEFAULT, - null, - null, - null, - SbtDefaults.LAYOUT_STATUS_POSITION_DEFAULT, - SbtDefaults.LAYOUT_STATUS_ENABLED_AOD_DEFAULT, - SbtDefaults.LAYOUT_STATUS_ENABLED_LOCKSCREEN_DEFAULT, - SbtDefaults.LAYOUT_STATUS_ENABLED_UNLOCKED_DEFAULT, - SbtDefaults.LAYOUT_STATUS_MIDDLE_SIDE_DEFAULT, - SbtDefaults.LAYOUT_STATUS_VERTICAL_OFFSET_PX_DEFAULT, - SbtDefaults.LAYOUT_STATUS_ICON_HEIGHT_STEPS_DEFAULT, - SbtDefaults.LAYOUT_STATUS_ICON_HEIGHT_STEPS_DEFAULT, - SbtDefaults.LAYOUT_STATUS_ICON_HEIGHT_STEPS_DEFAULT, - SbtDefaults.LAYOUT_STATUS_UNLOCKED_COUNT_DEFAULT, - null, - null, - null, - SbtDefaults.LAYOUT_STATUS_UNLOCKED_COUNT_DEFAULT, - null, - null, - null, - SbtDefaults.LAYOUT_STATUS_UNLOCKED_COUNT_DEFAULT, - null, - null, - null, - Collections.emptyMap(), - Collections.emptyMap(), - SbtDefaults.SYSTEM_ICON_DUAL_SIM_SIGNAL_MODE_DEFAULT, - false, - false, - false, - false, - false, - Collections.emptyMap(), - Collections.emptyMap(), - "dot", - SbtDefaults.DEBUG_VISUALIZE_NOTIFICATION_CONTAINER_DEFAULT, - SbtDefaults.DEBUG_VISUALIZE_STATUS_CONTAINER_DEFAULT, - SbtDefaults.DEBUG_VISUALIZE_CLOCK_CONTAINER_DEFAULT, - SbtDefaults.DEBUG_VISUALIZE_CHIP_CONTAINER_DEFAULT, - SbtDefaults.DEBUG_VISUALIZE_CAMERA_CUTOUT_DEFAULT, - SbtDefaults.DEBUG_VISUALIZE_AOD_STOCK_CONTAINERS_DEFAULT, - SbtDefaults.DEBUG_EXPERIMENTAL_AOD_STATUSBAR_ROOT_DEFAULT - ); + return fromSource(EmptySettingsSource.INSTANCE); } private static String sanitizeLockedNotificationMode(String mode) { @@ -1245,7 +1139,7 @@ public final class SbtSettings { static SbtSettings fromSource(SettingsSource prefs) { if (prefs == null) { - return defaults(); + prefs = EmptySettingsSource.INSTANCE; } Map systemIconBlockedModes = readSystemIconBlockedModes(prefs); return new SbtSettings( diff --git a/app/src/test/java/se/ajpanton/statusbartweak/shell/settings/SbtSettingsTest.java b/app/src/test/java/se/ajpanton/statusbartweak/shell/settings/SbtSettingsTest.java index 08247ba..9221a90 100644 --- a/app/src/test/java/se/ajpanton/statusbartweak/shell/settings/SbtSettingsTest.java +++ b/app/src/test/java/se/ajpanton/statusbartweak/shell/settings/SbtSettingsTest.java @@ -17,6 +17,16 @@ public final class SbtSettingsTest { SbtSettings defaults = SbtSettings.defaults(); SbtSettings decoded = SbtSettings.fromSource(new MapSource()); + assertEquals(SbtDefaults.CLOCK_ENABLED_DEFAULT, defaults.clockEnabled); + assertEquals(SbtDefaults.CLOCK_CUSTOM_FORMAT_DEFAULT, defaults.clockCustomFormat); + assertEquals(SbtDefaults.BATTERY_BAR_POSITION_DEFAULT, defaults.batteryBarPosition); + assertEquals(SbtDefaults.BATTERY_BAR_THICKNESS_DP_DEFAULT, defaults.batteryBarThicknessDp); + assertEquals( + SbtDefaults.LAYOUT_NOTIF_UNLOCKED_COUNT_DEFAULT, + defaults.layoutNotifUnlockedCount); + assertEquals( + SbtDefaults.LAYOUT_STATUS_UNLOCKED_COUNT_DEFAULT, + defaults.layoutStatusUnlockedCount); assertEquals(defaults.clockEnabled, decoded.clockEnabled); assertEquals(defaults.clockCustomFormat, decoded.clockCustomFormat); assertEquals(defaults.batteryBarPosition, decoded.batteryBarPosition);