Share default settings decoding

This commit is contained in:
ajp_anton
2026-07-15 19:20:16 +00:00
parent 898e33ccfa
commit 50fc608eae
2 changed files with 41 additions and 137 deletions
@@ -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<String> 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<String, Integer> systemIconBlockedModes = readSystemIconBlockedModes(prefs);
return new SbtSettings(
@@ -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);