readded the original files, builds break without it

This commit is contained in:
lv
2023-12-17 09:51:56 -05:00
parent a7e2b88e56
commit 3ea3407add
85 changed files with 48612 additions and 2 deletions

View File

@@ -0,0 +1,60 @@
From ef3810b1d55f079278f3ac3ef83f7b5b2eaaa7c1 Mon Sep 17 00:00:00 2001
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
Date: Sun, 5 Sep 2021 00:30:33 +0000
Subject: [PATCH 2/4] DeskClock: Remove night mode
Change-Id: I885f39027e78fcda397f1be59d17bc24bc66671a
---
res/xml/screensaver_settings.xml | 7 -------
src/com/android/deskclock/Screensaver.java | 5 ++---
src/com/android/deskclock/ScreensaverActivity.java | 2 +-
3 files changed, 3 insertions(+), 11 deletions(-)
diff --git a/res/xml/screensaver_settings.xml b/res/xml/screensaver_settings.xml
index 7b8c9764a..908f76fef 100644
--- a/res/xml/screensaver_settings.xml
+++ b/res/xml/screensaver_settings.xml
@@ -26,11 +26,4 @@
android:title="@string/clock_style"
app:iconSpaceReserved="false" />
- <CheckBoxPreference
- android:defaultValue="true"
- android:key="screensaver_night_mode"
- android:summary="@string/night_mode_summary"
- android:title="@string/night_mode_title"
- app:iconSpaceReserved="false" />
-
</PreferenceScreen>
diff --git a/src/com/android/deskclock/Screensaver.java b/src/com/android/deskclock/Screensaver.java
index ad92b1149..f6c03ed0a 100644
--- a/src/com/android/deskclock/Screensaver.java
+++ b/src/com/android/deskclock/Screensaver.java
@@ -136,9 +136,8 @@ public final class Screensaver extends DreamService {
private void setClockStyle() {
Utils.setScreensaverClockStyle(mDigitalClock, mAnalogClock);
- final boolean dimNightMode = DataModel.getDataModel().getScreensaverNightModeOn();
- Utils.dimClockView(dimNightMode, mMainClockView);
- setScreenBright(!dimNightMode);
+ Utils.dimClockView(false, mMainClockView);
+ setScreenBright(true);
}
/**
diff --git a/src/com/android/deskclock/ScreensaverActivity.java b/src/com/android/deskclock/ScreensaverActivity.java
index b30f82ee7..90235351f 100644
--- a/src/com/android/deskclock/ScreensaverActivity.java
+++ b/src/com/android/deskclock/ScreensaverActivity.java
@@ -101,7 +101,7 @@ public class ScreensaverActivity extends BaseActivity {
Utils.setClockIconTypeface(mMainClockView);
Utils.setTimeFormat((TextClock) digitalClock, false);
Utils.setClockStyle(digitalClock, analogClock);
- Utils.dimClockView(true, mMainClockView);
+ Utils.dimClockView(false, mMainClockView);
analogClock.enableSeconds(false);
mContentView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE
--
2.34.1

View File

@@ -0,0 +1,610 @@
From 3430de2c592c9d9b4a08c16477fff4ad1a4ca775 Mon Sep 17 00:00:00 2001
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
Date: Wed, 19 Jan 2022 18:04:36 +0000
Subject: [PATCH 3/4] DeskClock: Adapt digital clocks to S style
Lollipop is so yesterday...
Bring the layouts of various digital clocks (app, widget, daydream)
in-line, and adjust their styles to match the custom keyguard on S
Caveats/TODO:
- Widget swallows all touch events, even when touching an empty area
- World clocks in widgets are left untouched
Change-Id: I10c6fa213c89ac2f6e342be13fdd6390f7f787b0
---
res/layout/date_and_next_alarm_time.xml | 53 +++++++------
res/layout/desk_clock_saver.xml | 10 +--
res/layout/digital_widget.xml | 69 ++++++++---------
res/layout/digital_widget_sizer.xml | 77 ++++++++-----------
res/layout/main_clock_frame.xml | 36 +++------
res/values/dimens.xml | 12 ++-
res/values/styles.xml | 18 +++++
.../alarmclock/DigitalAppWidgetProvider.java | 31 ++++----
src/com/android/deskclock/AlarmUtils.java | 2 +-
src/com/android/deskclock/ClockFragment.java | 3 -
src/com/android/deskclock/Utils.java | 19 -----
11 files changed, 155 insertions(+), 175 deletions(-)
diff --git a/res/layout/date_and_next_alarm_time.xml b/res/layout/date_and_next_alarm_time.xml
index 9a0cb9103..b29ffedcf 100644
--- a/res/layout/date_and_next_alarm_time.xml
+++ b/res/layout/date_and_next_alarm_time.xml
@@ -18,36 +18,41 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
xmlns:tools="http://schemas.android.com/tools"
- android:layout_gravity="center_vertical"
- android:gravity="center">
+ android:gravity="center_vertical|start"
+ android:orientation="vertical">
<TextView
android:id="@+id/date"
- style="@style/body"
+ style="@style/sc_keyguard_row"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:textAllCaps="true"
+ android:paddingTop="@dimen/sc_keyguard_status_area_top_padding"
+ android:paddingStart="@dimen/sc_keyguard_row_date_start_padding"
tools:text="Sa., 01.01."/>
- <TextView
- android:id="@+id/nextAlarmIcon"
- style="@style/body"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:layout_marginEnd="@dimen/alarm_icon_padding"
- android:layout_marginStart="@dimen/alarm_icon_padding"
- android:ellipsize="none"
- android:includeFontPadding="false"
- android:maxLines="1"
- android:text="@string/clock_emoji" />
-
- <TextView
- android:id="@+id/nextAlarm"
- style="@style/body"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textAllCaps="true"
- tools:text="Mo., 07:00"/>
+ <LinearLayout
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:paddingTop="@dimen/sc_keyguard_row_top_padding"
+ android:paddingStart="@dimen/sc_keyguard_row_alarm_start_padding">
+
+ <TextView
+ android:id="@+id/nextAlarmIcon"
+ style="@style/sc_keyguard_row"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:layout_marginEnd="@dimen/alarm_icon_padding"
+ android:text="@string/clock_emoji"
+ android:textSize="@dimen/sc_keyguard_alarm_icon_size" />
+
+ <TextView
+ android:id="@+id/nextAlarm"
+ style="@style/sc_keyguard_row"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ tools:text="Mo., 07:00"/>
+
+ </LinearLayout>
</LinearLayout>
diff --git a/res/layout/desk_clock_saver.xml b/res/layout/desk_clock_saver.xml
index c147bf7cd..d24219dbb 100644
--- a/res/layout/desk_clock_saver.xml
+++ b/res/layout/desk_clock_saver.xml
@@ -42,16 +42,10 @@
<TextClock
android:id="@+id/digital_clock"
- style="@style/big_thin"
+ style="@style/sc_keyguard_clock"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:layout_marginBottom="@dimen/bottom_text_spacing_digital"
- android:ellipsize="none"
- android:gravity="center"
- android:singleLine="true"
- android:textColor="@color/white"
- android:textSize="@dimen/main_clock_font_size" />
+ android:fontFamily="sans-serif-thin" />
<include layout="@layout/date_and_next_alarm_time" />
diff --git a/res/layout/digital_widget.xml b/res/layout/digital_widget.xml
index 5cf896a84..e376a5a7a 100644
--- a/res/layout/digital_widget.xml
+++ b/res/layout/digital_widget.xml
@@ -19,58 +19,53 @@
android:id="@+id/digital_widget"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:gravity="top|center_horizontal"
+ android:gravity="center"
android:orientation="vertical">
- <TextClock
- android:id="@+id/clock"
- style="@style/widget_big_thin"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center_horizontal|top"
- android:ellipsize="none"
- android:format12Hour="@string/lock_screen_12_hour_format"
- android:format24Hour="@string/lock_screen_24_hour_format"
- android:includeFontPadding="false"
- android:singleLine="true"
- android:textColor="@color/white" />
-
<LinearLayout
+ android:id="@+id/digital_widget_actual"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_gravity="center_horizontal|top">
+ android:gravity="center_vertical|start"
+ android:orientation="vertical">
<TextClock
- android:id="@+id/date"
- style="@style/widget_label"
+ android:id="@+id/clock"
+ style="@style/sc_keyguard_clock"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:ellipsize="none"
- android:includeFontPadding="false"
- android:singleLine="true"
- android:textAllCaps="true"
- android:textColor="@color/white" />
+ android:format12Hour="@string/lock_screen_12_hour_format"
+ android:format24Hour="@string/lock_screen_24_hour_format" />
- <ImageView
- android:id="@+id/nextAlarmIcon"
+ <TextClock
+ android:id="@+id/date"
+ style="@style/sc_keyguard_row"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:contentDescription="@null"
- android:scaleType="center" />
+ android:paddingTop="@dimen/sc_keyguard_status_area_top_padding"
+ android:paddingStart="@dimen/sc_keyguard_row_date_start_padding" />
- <TextView
- android:id="@+id/nextAlarm"
- style="@style/widget_label"
+ <LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:ellipsize="none"
- android:includeFontPadding="false"
- android:singleLine="true"
- android:textAllCaps="true"
- android:textColor="@color/white" />
+ android:paddingTop="@dimen/sc_keyguard_row_top_padding"
+ android:paddingStart="@dimen/sc_keyguard_row_alarm_start_padding">
+
+ <ImageView
+ android:id="@+id/nextAlarmIcon"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:contentDescription="@null"
+ android:scaleType="center" />
+
+ <TextView
+ android:id="@+id/nextAlarm"
+ style="@style/sc_keyguard_row"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content" />
+
+ </LinearLayout>
</LinearLayout>
diff --git a/res/layout/digital_widget_sizer.xml b/res/layout/digital_widget_sizer.xml
index f524cf536..b9a28c79f 100644
--- a/res/layout/digital_widget_sizer.xml
+++ b/res/layout/digital_widget_sizer.xml
@@ -15,64 +15,55 @@
-->
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:gravity="center"
android:orientation="vertical">
- <TextClock
- android:id="@+id/clock"
- style="@style/widget_big_thin"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center_horizontal|top"
- android:includeFontPadding="false"
- android:ellipsize="none"
- android:format12Hour="@string/lock_screen_12_hour_format"
- android:format24Hour="@string/lock_screen_24_hour_format"
- android:singleLine="true"
- android:textColor="@color/white" />
-
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_gravity="center_horizontal|top">
+ android:gravity="center_vertical|start"
+ android:orientation="vertical">
<TextClock
- android:id="@+id/date"
- style="@style/widget_label"
+ android:id="@+id/clock"
+ style="@style/sc_keyguard_clock"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:includeFontPadding="false"
- android:ellipsize="none"
- android:singleLine="true"
- android:textAllCaps="true"
- android:textColor="@color/white" />
+ android:format12Hour="@string/lock_screen_12_hour_format"
+ android:format24Hour="@string/lock_screen_24_hour_format" />
- <!-- This view is drawn to a Bitmap and sent to the widget as an icon. -->
- <TextView
- android:id="@+id/nextAlarmIcon"
- style="@style/widget_label"
+ <TextClock
+ android:id="@+id/date"
+ style="@style/sc_keyguard_row"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:includeFontPadding="false"
- android:ellipsize="none"
- android:singleLine="true"
- android:text="@string/clock_emoji"
- android:textColor="@color/white" />
+ android:paddingTop="@dimen/sc_keyguard_status_area_top_padding"
+ android:paddingStart="@dimen/sc_keyguard_row_date_start_padding" />
- <TextView
- android:id="@+id/nextAlarm"
- style="@style/widget_label"
+ <LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:includeFontPadding="false"
- android:ellipsize="none"
- android:singleLine="true"
- android:textAllCaps="true"
- android:textColor="@color/white" />
+ android:paddingTop="@dimen/sc_keyguard_row_top_padding"
+ android:paddingStart="@dimen/sc_keyguard_row_alarm_start_padding">
+
+ <!-- This view is drawn to a Bitmap and sent to the widget as an icon. -->
+ <TextView
+ android:id="@+id/nextAlarmIcon"
+ style="@style/sc_keyguard_row"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:text="@string/clock_emoji" />
+
+ <TextView
+ android:id="@+id/nextAlarm"
+ style="@style/sc_keyguard_row"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content" />
+
+ </LinearLayout>
</LinearLayout>
diff --git a/res/layout/main_clock_frame.xml b/res/layout/main_clock_frame.xml
index c26f61dbd..c2e84eaa3 100644
--- a/res/layout/main_clock_frame.xml
+++ b/res/layout/main_clock_frame.xml
@@ -26,44 +26,28 @@
android:layout_marginEnd="24dp"
android:orientation="vertical">
- <androidx.constraintlayout.widget.ConstraintLayout
- android:layout_width="match_parent"
+ <LinearLayout
+ android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_gravity="start">
+ android:gravity="center_vertical|start"
+ android:orientation="vertical">
<com.android.deskclock.AnalogClock
android:id="@+id/analog_clock"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginTop="@dimen/circle_margin_top"
- app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintDimensionRatio="1:1"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toTopOf="parent"
- app:layout_constraintWidth_percent="@dimen/analog_clock_width_percent"/>
+ android:layout_marginTop="@dimen/circle_margin_top"/>
<com.android.deskclock.widget.AutoSizingTextClock
android:id="@+id/digital_clock"
- style="@style/display_time"
- android:layout_width="match_parent"
+ style="@style/sc_keyguard_clock"
+ android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:ellipsize="none"
- android:includeFontPadding="false"
android:paddingTop="@dimen/main_clock_digital_padding"
- android:singleLine="true"
- android:textSize="@dimen/main_clock_digital_font_size"
- app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toTopOf="parent"
tools:text="01:23"/>
- </androidx.constraintlayout.widget.ConstraintLayout>
+ <include layout="@layout/date_and_next_alarm_time" />
+
+ </LinearLayout>
- <include
- layout="@layout/date_and_next_alarm_time"
- android:id="@+id/date_and_next_alarm_time"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="start"/>
</LinearLayout>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index c136fe25a..58a9fedc0 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -62,7 +62,7 @@
<dimen name="body_font_padding">4dp</dimen>
<dimen name="alarm_label_size">14sp</dimen>
- <dimen name="alarm_icon_padding">6dp</dimen>
+ <dimen name="alarm_icon_padding">7dp</dimen>
<dimen name="backspace_icon_size">24dp</dimen>
<dimen name="no_alarms_size">90dp</dimen>
@@ -144,4 +144,14 @@
<dimen name="settings_padding">4dp</dimen>
<dimen name="analog_clock_width_percent">0.5</dimen>
+
+ <!-- Keyguard dimens, taken from S fwb -->
+ <dimen name="sc_keyguard_clock_text_size">86dp</dimen>
+ <dimen name="sc_keyguard_row_text_size">16dp</dimen>
+ <dimen name="sc_keyguard_alarm_icon_size">21dp</dimen>
+ <!-- Padding correction values, measured from S fwb -->
+ <dimen name="sc_keyguard_status_area_top_padding">9dp</dimen>
+ <dimen name="sc_keyguard_row_top_padding">11dp</dimen>
+ <dimen name="sc_keyguard_row_date_start_padding">6dp</dimen>
+ <dimen name="sc_keyguard_row_alarm_start_padding">5.5dp</dimen>
</resources>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index 8c6364344..159f24766 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -209,4 +209,22 @@
<item name="layout_constraintStart_toStartOf">parent</item>
<item name="layout_constraintTop_toBottomOf">@id/timer_setup_time</item>
</style>
+
+ <style name="sc_keyguard_clock">
+ <item name="android:fontFamily">sans-serif-light</item>
+ <item name="android:fontFeatureSettings">tnum</item>
+ <item name="android:textSize">@dimen/sc_keyguard_clock_text_size</item>
+ <item name="android:textColor">@color/white</item>
+ <item name="android:ellipsize">none</item>
+ <item name="android:includeFontPadding">false</item>
+ <item name="android:maxLines">1</item>
+ </style>
+
+ <style name="sc_keyguard_row">
+ <item name="android:textSize">@dimen/sc_keyguard_row_text_size</item>
+ <item name="android:textColor">@color/white</item>
+ <item name="android:ellipsize">none</item>
+ <item name="android:includeFontPadding">false</item>
+ <item name="android:maxLines">1</item>
+ </style>
</resources>
diff --git a/src/com/android/alarmclock/DigitalAppWidgetProvider.java b/src/com/android/alarmclock/DigitalAppWidgetProvider.java
index b54a500c5..fb1b30aa7 100644
--- a/src/com/android/alarmclock/DigitalAppWidgetProvider.java
+++ b/src/com/android/alarmclock/DigitalAppWidgetProvider.java
@@ -223,7 +223,7 @@ public class DigitalAppWidgetProvider extends AppWidgetProvider {
if (Utils.isWidgetClickable(wm, widgetId)) {
final Intent openApp = new Intent(context, DeskClock.class);
final PendingIntent pi = PendingIntent.getActivity(context, 0, openApp, FLAG_IMMUTABLE);
- rv.setOnClickPendingIntent(R.id.digital_widget, pi);
+ rv.setOnClickPendingIntent(R.id.digital_widget_actual, pi);
}
// Configure child views of the remote view.
@@ -255,7 +255,7 @@ public class DigitalAppWidgetProvider extends AppWidgetProvider {
final int targetWidthPx = portrait ? minWidthPx : maxWidthPx;
final int targetHeightPx = portrait ? maxHeightPx : minHeightPx;
final int largestClockFontSizePx =
- resources.getDimensionPixelSize(R.dimen.widget_max_clock_font_size);
+ resources.getDimensionPixelSize(R.dimen.sc_keyguard_clock_text_size);
// Create a size template that describes the widget bounds.
final Sizes template = new Sizes(targetWidthPx, targetHeightPx, largestClockFontSizePx);
@@ -327,13 +327,13 @@ public class DigitalAppWidgetProvider extends AppWidgetProvider {
}
// Measure the widget at the largest possible size.
- Sizes high = measure(template, template.getLargestClockFontSizePx(), sizer);
+ Sizes high = measure(context, template, template.getLargestClockFontSizePx(), sizer);
if (!high.hasViolations()) {
return high;
}
// Measure the widget at the smallest possible size.
- Sizes low = measure(template, template.getSmallestClockFontSizePx(), sizer);
+ Sizes low = measure(context, template, template.getSmallestClockFontSizePx(), sizer);
if (low.hasViolations()) {
return low;
}
@@ -345,7 +345,7 @@ public class DigitalAppWidgetProvider extends AppWidgetProvider {
return low;
}
- final Sizes midSize = measure(template, midFontSize, sizer);
+ final Sizes midSize = measure(context, template, midFontSize, sizer);
if (midSize.hasViolations()) {
high = midSize;
} else {
@@ -411,7 +411,7 @@ public class DigitalAppWidgetProvider extends AppWidgetProvider {
* the offscreen {@code sizer} view. Measure the {@code sizer} view and return the resulting
* size measurements.
*/
- private static Sizes measure(Sizes template, int clockFontSize, View sizer) {
+ private static Sizes measure(Context context, Sizes template, int clockFontSize, View sizer) {
// Create a copy of the given template sizes.
final Sizes measuredSizes = template.newSize();
@@ -422,13 +422,13 @@ public class DigitalAppWidgetProvider extends AppWidgetProvider {
final TextView nextAlarmIcon = sizer.findViewById(R.id.nextAlarmIcon);
// Adjust the font sizes.
- measuredSizes.setClockFontSizePx(clockFontSize);
+ measuredSizes.setClockFontSizePx(context, clockFontSize);
clock.setText(getLongestTimeString(clock));
clock.setTextSize(COMPLEX_UNIT_PX, measuredSizes.mClockFontSizePx);
date.setTextSize(COMPLEX_UNIT_PX, measuredSizes.mFontSizePx);
nextAlarm.setTextSize(COMPLEX_UNIT_PX, measuredSizes.mFontSizePx);
nextAlarmIcon.setTextSize(COMPLEX_UNIT_PX, measuredSizes.mIconFontSizePx);
- nextAlarmIcon.setPadding(measuredSizes.mIconPaddingPx, 0, measuredSizes.mIconPaddingPx, 0);
+ nextAlarmIcon.setPadding(0, 0, measuredSizes.mIconPaddingPx, 0);
// Measure and layout the sizer.
final int widthSize = View.MeasureSpec.getSize(measuredSizes.mTargetWidthPx);
@@ -509,12 +509,17 @@ public class DigitalAppWidgetProvider extends AppWidgetProvider {
private int getLargestClockFontSizePx() { return mLargestClockFontSizePx; }
private int getSmallestClockFontSizePx() { return mSmallestClockFontSizePx; }
private int getClockFontSizePx() { return mClockFontSizePx; }
- private void setClockFontSizePx(int clockFontSizePx) {
+ private void setClockFontSizePx(Context context, int clockFontSizePx) {
+ final Resources resources = context.getResources();
+ int keyguardClockTextSizePx = resources.getDimensionPixelSize(R.dimen.sc_keyguard_clock_text_size);
+ int keyguardRowTextSizePx = resources.getDimensionPixelSize(R.dimen.sc_keyguard_row_text_size);
+ int keyguardAlarmIconSizePx = resources.getDimensionPixelSize(R.dimen.sc_keyguard_alarm_icon_size);
+ int alarmIconPaddingPx = resources.getDimensionPixelSize(R.dimen.alarm_icon_padding);
mClockFontSizePx = clockFontSizePx;
- mFontSizePx = max(1, round(clockFontSizePx / 7.5f));
- mIconFontSizePx = (int) (mFontSizePx * 1.4f);
- mIconPaddingPx = mFontSizePx / 3;
- }
+ mFontSizePx = max(1, round(clockFontSizePx / (float) keyguardClockTextSizePx * (float) keyguardRowTextSizePx));
+ mIconFontSizePx = max(1, round(clockFontSizePx / (float) keyguardClockTextSizePx * (float) keyguardAlarmIconSizePx));
+ mIconPaddingPx = max(1, round(clockFontSizePx / (float) keyguardClockTextSizePx * (float) alarmIconPaddingPx));
+ }
/**
* @return the amount of widget height available to the world cities list
diff --git a/src/com/android/deskclock/AlarmUtils.java b/src/com/android/deskclock/AlarmUtils.java
index c3739bac8..5b931a46d 100644
--- a/src/com/android/deskclock/AlarmUtils.java
+++ b/src/com/android/deskclock/AlarmUtils.java
@@ -38,7 +38,7 @@ import java.util.Locale;
public class AlarmUtils {
public static String getFormattedTime(Context context, Calendar time) {
- final String skeleton = DateFormat.is24HourFormat(context) ? "EHm" : "Ehma";
+ final String skeleton = DateFormat.is24HourFormat(context) ? "Hm" : "hma";
final String pattern = DateFormat.getBestDateTimePattern(Locale.getDefault(), skeleton);
return (String) DateFormat.format(pattern, time);
}
diff --git a/src/com/android/deskclock/ClockFragment.java b/src/com/android/deskclock/ClockFragment.java
index bf53584e4..7a0e3ae0b 100644
--- a/src/com/android/deskclock/ClockFragment.java
+++ b/src/com/android/deskclock/ClockFragment.java
@@ -123,7 +123,6 @@ public final class ClockFragment extends DeskClockFragment {
Utils.updateDate(mDateFormat, mDateFormatForAccessibility, mClockFrame);
Utils.setClockStyle(mDigitalClock, mAnalogClock);
Utils.setClockSecondsEnabled(mDigitalClock, mAnalogClock);
- Utils.updateDateGravity(mClockFrame);
}
// Schedule a runnable to update the date every quarter hour.
@@ -151,7 +150,6 @@ public final class ClockFragment extends DeskClockFragment {
if (mDigitalClock != null && mAnalogClock != null) {
Utils.setClockStyle(mDigitalClock, mAnalogClock);
Utils.setClockSecondsEnabled(mDigitalClock, mAnalogClock);
- Utils.updateDateGravity(mClockFrame);
}
final View view = getView();
@@ -493,7 +491,6 @@ public final class ClockFragment extends DeskClockFragment {
Utils.updateDate(dateFormat, dateFormatForAccessibility, itemView);
Utils.setClockStyle(mDigitalClock, mAnalogClock);
Utils.setClockSecondsEnabled(mDigitalClock, mAnalogClock);
- Utils.updateDateGravity(itemView);
}
}
}
diff --git a/src/com/android/deskclock/Utils.java b/src/com/android/deskclock/Utils.java
index 4eea6beba..4a5ad5a0a 100644
--- a/src/com/android/deskclock/Utils.java
+++ b/src/com/android/deskclock/Utils.java
@@ -52,9 +52,7 @@ import android.text.style.RelativeSizeSpan;
import android.text.style.StyleSpan;
import android.text.style.TypefaceSpan;
import android.util.ArraySet;
-import android.view.Gravity;
import android.view.View;
-import android.widget.LinearLayout;
import android.widget.TextClock;
import android.widget.TextView;
@@ -302,23 +300,6 @@ public class Utils {
dateDisplay.setContentDescription(new SimpleDateFormat(descriptionPattern, l).format(now));
}
- public static void updateDateGravity(View clockFrame) {
- View dateAndNextAlarm = clockFrame.findViewById(R.id.date_and_next_alarm_time);
- LinearLayout.LayoutParams lp =
- (LinearLayout.LayoutParams)dateAndNextAlarm.getLayoutParams();
-
- final DataModel.ClockStyle clockStyle = DataModel.getDataModel().getClockStyle();
- switch (clockStyle) {
- case ANALOG:
- lp.gravity = Gravity.CENTER;
- break;
- case DIGITAL:
- lp.gravity = Gravity.START;
- break;
- }
- dateAndNextAlarm.setLayoutParams(lp);
- }
-
/***
* Formats the time in the TextClock according to the Locale with a special
* formatting treatment for the am/pm label.
--
2.34.1

View File

@@ -0,0 +1,118 @@
From 169570068c3a78f7294d581b2df864ccd3057579 Mon Sep 17 00:00:00 2001
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
Date: Thu, 20 Jan 2022 04:42:03 +0000
Subject: [PATCH 4/4] DeskClock: Wallpaper-based text coloring for digital
clock widget
RemoteViews is such a restrictive PITA
Change-Id: Ie22c4980526575f73ebb4e56780d4c2193cc45d3
---
.../alarmclock/DigitalAppWidgetProvider.java | 57 +++++++++++++++++++
1 file changed, 57 insertions(+)
diff --git a/src/com/android/alarmclock/DigitalAppWidgetProvider.java b/src/com/android/alarmclock/DigitalAppWidgetProvider.java
index fb1b30aa7..c04528240 100644
--- a/src/com/android/alarmclock/DigitalAppWidgetProvider.java
+++ b/src/com/android/alarmclock/DigitalAppWidgetProvider.java
@@ -38,6 +38,8 @@ import static java.lang.Math.round;
import android.annotation.SuppressLint;
import android.app.AlarmManager;
import android.app.PendingIntent;
+import android.app.WallpaperColors;
+import android.app.WallpaperManager;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.BroadcastReceiver;
@@ -111,12 +113,40 @@ public class DigitalAppWidgetProvider extends AppWidgetProvider {
/** Intent used to deliver the {@link #ACTION_ON_DAY_CHANGE} callback. */
private static final Intent DAY_CHANGE_INTENT = new Intent(ACTION_ON_DAY_CHANGE);
+ private static WallpaperManager mWallpaperManager;
+ private static boolean mDarkText;
+
+ private static void relayoutAllWidgets(Context context) {
+ final AppWidgetManager wm = AppWidgetManager.getInstance(context);
+ final ComponentName provider = new ComponentName(context, DigitalAppWidgetProvider.class);
+ final int[] widgetIds = wm.getAppWidgetIds(provider);
+ for (int widgetId : widgetIds) {
+ relayoutWidget(context, wm, widgetId, wm.getAppWidgetOptions(widgetId));
+ }
+ }
+
+ private static void addOnColorsChangedListener(Context context) {
+ mWallpaperManager.addOnColorsChangedListener(new WallpaperManager.OnColorsChangedListener() {
+ @Override
+ public void onColorsChanged(WallpaperColors colors, int which) {
+ relayoutAllWidgets(context);
+ }
+ }, null);
+ }
+
@Override
public void onEnabled(Context context) {
super.onEnabled(context);
// Schedule the day-change callback if necessary.
updateDayChangeCallback(context);
+
+ // Listen for wallpaper color changes
+ mWallpaperManager = WallpaperManager.getInstance(context);
+ addOnColorsChangedListener(context);
+
+ // Force a relayout to pick up initial colors
+ relayoutAllWidgets(context);
}
@Override
@@ -215,6 +245,19 @@ public class DigitalAppWidgetProvider extends AppWidgetProvider {
*/
private static RemoteViews relayoutWidget(Context context, AppWidgetManager wm, int widgetId,
Bundle options, boolean portrait) {
+ // Determine text colors.
+ if (mWallpaperManager == null) {
+ mWallpaperManager = WallpaperManager.getInstance(context);
+ addOnColorsChangedListener(context);
+ }
+ WallpaperColors wallpaperColors = mWallpaperManager.getWallpaperColors(WallpaperManager.FLAG_SYSTEM);
+ // Live wallpapers might not implement the WallpaperColors API.
+ if (wallpaperColors == null) {
+ mDarkText = false;
+ } else {
+ mDarkText = (wallpaperColors.getColorHints() & WallpaperColors.HINT_SUPPORTS_DARK_TEXT) != 0;
+ }
+
// Create a remote view for the digital clock.
final String packageName = context.getPackageName();
final RemoteViews rv = new RemoteViews(packageName, R.layout.digital_widget);
@@ -272,6 +315,17 @@ public class DigitalAppWidgetProvider extends AppWidgetProvider {
rv.setTextViewTextSize(R.id.nextAlarm, COMPLEX_UNIT_PX, sizes.mFontSizePx);
rv.setTextViewTextSize(R.id.clock, COMPLEX_UNIT_PX, sizes.mClockFontSizePx);
+ // Apply the text color to the remote views.
+ if (mDarkText) {
+ rv.setTextColor(R.id.clock, resources.getColor(R.color.black));
+ rv.setTextColor(R.id.date, resources.getColor(R.color.black));
+ rv.setTextColor(R.id.nextAlarm, resources.getColor(R.color.black));
+ } else {
+ rv.setTextColor(R.id.clock, resources.getColor(R.color.white));
+ rv.setTextColor(R.id.date, resources.getColor(R.color.white));
+ rv.setTextColor(R.id.nextAlarm, resources.getColor(R.color.white));
+ }
+
final int smallestWorldCityListSizePx =
resources.getDimensionPixelSize(R.dimen.widget_min_world_city_list_size);
if (sizes.getListHeight() <= smallestWorldCityListSizePx) {
@@ -430,6 +484,9 @@ public class DigitalAppWidgetProvider extends AppWidgetProvider {
nextAlarmIcon.setTextSize(COMPLEX_UNIT_PX, measuredSizes.mIconFontSizePx);
nextAlarmIcon.setPadding(0, 0, measuredSizes.mIconPaddingPx, 0);
+ // Adjust the alarm icon text color before generating its bitmap.
+ nextAlarmIcon.setTextColor(context.getResources().getColor(mDarkText ? R.color.black : R.color.white));
+
// Measure and layout the sizer.
final int widthSize = View.MeasureSpec.getSize(measuredSizes.mTargetWidthPx);
final int heightSize = View.MeasureSpec.getSize(measuredSizes.mTargetHeightPx);
--
2.34.1