Match drawer clock preview line breaks
This commit is contained in:
@@ -125,7 +125,8 @@ public final class ClockFragment extends Fragment {
|
||||
SbtSettings.KEY_CLOCK_CUSTOM_FORMAT,
|
||||
customFormatEnabledValue,
|
||||
customFormatValue,
|
||||
18f);
|
||||
18f,
|
||||
true);
|
||||
bindCustomFormat(
|
||||
prefs,
|
||||
drawerClockCustomFormatEnabled,
|
||||
@@ -136,7 +137,8 @@ public final class ClockFragment extends Fragment {
|
||||
SbtSettings.KEY_DRAWER_CLOCK_CUSTOM_FORMAT,
|
||||
drawerClockCustomFormatEnabledValue,
|
||||
drawerClockCustomFormatValue,
|
||||
24f);
|
||||
24f,
|
||||
false);
|
||||
bindCustomFormat(
|
||||
prefs,
|
||||
drawerDateCustomFormatEnabled,
|
||||
@@ -147,7 +149,8 @@ public final class ClockFragment extends Fragment {
|
||||
SbtSettings.KEY_DRAWER_DATE_CUSTOM_FORMAT,
|
||||
drawerDateCustomFormatEnabledValue,
|
||||
drawerDateCustomFormatValue,
|
||||
16f);
|
||||
16f,
|
||||
false);
|
||||
updateCustomFormatHelpVisibility(customFormatHelpContainer, customFormatHelpToggle, false);
|
||||
applyBulletText(customFormatHelpCommon);
|
||||
applyBulletText(customFormatHelpStyling);
|
||||
@@ -186,7 +189,8 @@ public final class ClockFragment extends Fragment {
|
||||
String formatKey,
|
||||
boolean enabled,
|
||||
String format,
|
||||
float previewTextSizeSp) {
|
||||
float previewTextSizeSp,
|
||||
boolean multilinePreview) {
|
||||
if (enabledView == null || input == null) {
|
||||
return;
|
||||
}
|
||||
@@ -198,7 +202,7 @@ public final class ClockFragment extends Fragment {
|
||||
previewTextSizeSp);
|
||||
}
|
||||
updateCustomFormatVisibility(container, enabled);
|
||||
PreviewBinding binding = new PreviewBinding(enabledView, input, preview);
|
||||
PreviewBinding binding = new PreviewBinding(enabledView, input, preview, multilinePreview);
|
||||
previewBindings.add(binding);
|
||||
updatePreview(binding);
|
||||
enabledView.setOnCheckedChangeListener((buttonView, isChecked) -> {
|
||||
@@ -247,12 +251,37 @@ public final class ClockFragment extends Fragment {
|
||||
binding.preview.getContext(),
|
||||
pattern,
|
||||
binding.preview.getPreviewTextColor());
|
||||
if (!binding.multilinePreview) {
|
||||
result = flattenRows(result);
|
||||
}
|
||||
binding.preview.setPreview(result);
|
||||
binding.preview.setVisibility(result.rows().isEmpty() ? View.GONE : View.VISIBLE);
|
||||
binding.preview.setContentDescription(result.contentDescription());
|
||||
return result.containsSeconds();
|
||||
}
|
||||
|
||||
private ClockPatternPreviewRenderer.Result flattenRows(ClockPatternPreviewRenderer.Result result) {
|
||||
if (result == null || result.rows() == null || result.rows().size() <= 1) {
|
||||
return result;
|
||||
}
|
||||
SpannableStringBuilder text = new SpannableStringBuilder();
|
||||
StringBuilder description = new StringBuilder();
|
||||
for (int i = 0; i < result.rows().size(); i++) {
|
||||
ClockPatternPreviewRenderer.Row row = result.rows().get(i);
|
||||
if (i > 0) {
|
||||
text.append(' ');
|
||||
description.append(' ');
|
||||
}
|
||||
if (row != null && row.text() != null) {
|
||||
text.append(row.text());
|
||||
description.append(row.text());
|
||||
}
|
||||
}
|
||||
ArrayList<ClockPatternPreviewRenderer.Row> rows = new ArrayList<>();
|
||||
rows.add(new ClockPatternPreviewRenderer.Row(text, "", "", 0, 0));
|
||||
return new ClockPatternPreviewRenderer.Result(rows, description.toString(), result.containsSeconds());
|
||||
}
|
||||
|
||||
private void schedulePreviewTickerIfNeeded() {
|
||||
View view = getView();
|
||||
if (view == null) {
|
||||
@@ -446,7 +475,7 @@ public final class ClockFragment extends Fragment {
|
||||
view.setText(builder);
|
||||
}
|
||||
|
||||
private record PreviewBinding(CheckBox enabled, EditText input, ClockPatternPreviewView preview) {
|
||||
private record PreviewBinding(CheckBox enabled, EditText input, ClockPatternPreviewView preview, boolean multilinePreview) {
|
||||
}
|
||||
|
||||
private static final class FontFamilyAdapter extends BaseAdapter {
|
||||
|
||||
Reference in New Issue
Block a user