From 00de34a84c3295ab49db8da013a339ece1236bf2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felix=20N=C3=BCsse?= Date: Fri, 29 Sep 2023 17:37:31 +0200 Subject: [PATCH 1/2] fix: switch widgets to relative layout to fix render issues --- .../bnyro/clock/widgets/DigitalClockWidget.kt | 14 ++---- .../clock/widgets/VerticalClockWidget.kt | 14 ++---- app/src/main/res/layout/digital_clock.xml | 43 ++++++++++++++++ .../main/res/layout/digital_clock_large.xml | 36 ------------- .../main/res/layout/digital_clock_small.xml | 37 -------------- app/src/main/res/layout/vertical_clock.xml | 50 +++++++++++++++++++ .../main/res/layout/vertical_clock_large.xml | 47 ----------------- .../main/res/layout/vertical_clock_small.xml | 47 ----------------- app/src/main/res/values-night-v31/colors.xml | 5 ++ app/src/main/res/values-v31/colors.xml | 5 ++ app/src/main/res/values/colors.xml | 2 + app/src/main/res/xml/digital_clock_widget.xml | 2 +- .../main/res/xml/vertical_clock_widget.xml | 2 +- 13 files changed, 115 insertions(+), 189 deletions(-) create mode 100644 app/src/main/res/layout/digital_clock.xml delete mode 100644 app/src/main/res/layout/digital_clock_large.xml delete mode 100644 app/src/main/res/layout/digital_clock_small.xml create mode 100644 app/src/main/res/layout/vertical_clock.xml delete mode 100644 app/src/main/res/layout/vertical_clock_large.xml delete mode 100644 app/src/main/res/layout/vertical_clock_small.xml create mode 100644 app/src/main/res/values-night-v31/colors.xml create mode 100644 app/src/main/res/values-v31/colors.xml diff --git a/app/src/main/java/com/bnyro/clock/widgets/DigitalClockWidget.kt b/app/src/main/java/com/bnyro/clock/widgets/DigitalClockWidget.kt index 564d8070..abf87bb2 100644 --- a/app/src/main/java/com/bnyro/clock/widgets/DigitalClockWidget.kt +++ b/app/src/main/java/com/bnyro/clock/widgets/DigitalClockWidget.kt @@ -6,7 +6,6 @@ import android.appwidget.AppWidgetProvider import android.content.Context import android.content.Intent import android.os.Build -import android.util.SizeF import android.widget.RemoteViews import com.bnyro.clock.R import com.bnyro.clock.ui.MainActivity @@ -26,19 +25,14 @@ class DigitalClockWidget : AppWidgetProvider() { PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE ) - val viewMapping: Map = mapOf( - SizeF(150f, 100f) to RemoteViews(context.packageName, R.layout.digital_clock_small).apply { - setOnClickPendingIntent(R.id.container, pendingIntent) - }, - SizeF(215f, 100f) to RemoteViews(context.packageName, R.layout.digital_clock_large).apply { - setOnClickPendingIntent(R.id.container, pendingIntent) - } - ) + val viewMapping = RemoteViews(context.packageName, R.layout.digital_clock).apply { + setOnClickPendingIntent(R.id.container, pendingIntent) + } val views = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { RemoteViews(viewMapping) } else { - viewMapping.values.first() + viewMapping } appWidgetManager.updateAppWidget(appWidgetId, views) diff --git a/app/src/main/java/com/bnyro/clock/widgets/VerticalClockWidget.kt b/app/src/main/java/com/bnyro/clock/widgets/VerticalClockWidget.kt index b9eecb1e..1541119e 100644 --- a/app/src/main/java/com/bnyro/clock/widgets/VerticalClockWidget.kt +++ b/app/src/main/java/com/bnyro/clock/widgets/VerticalClockWidget.kt @@ -6,7 +6,6 @@ import android.appwidget.AppWidgetProvider import android.content.Context import android.content.Intent import android.os.Build -import android.util.SizeF import android.widget.RemoteViews import com.bnyro.clock.R import com.bnyro.clock.ui.MainActivity @@ -26,19 +25,14 @@ class VerticalClockWidget : AppWidgetProvider() { PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE ) - val viewMapping: Map = mapOf( - SizeF(150f, 100f) to RemoteViews(context.packageName, R.layout.vertical_clock_small).apply { - setOnClickPendingIntent(R.id.container, pendingIntent) - }, - SizeF(215f, 100f) to RemoteViews(context.packageName, R.layout.vertical_clock_large).apply { - setOnClickPendingIntent(R.id.container, pendingIntent) - } - ) + val viewMapping = RemoteViews(context.packageName, R.layout.vertical_clock).apply { + setOnClickPendingIntent(R.id.container, pendingIntent) + } val views = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { RemoteViews(viewMapping) } else { - viewMapping.values.first() + viewMapping } appWidgetManager.updateAppWidget(appWidgetId, views) diff --git a/app/src/main/res/layout/digital_clock.xml b/app/src/main/res/layout/digital_clock.xml new file mode 100644 index 00000000..ab929bb9 --- /dev/null +++ b/app/src/main/res/layout/digital_clock.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/digital_clock_large.xml b/app/src/main/res/layout/digital_clock_large.xml deleted file mode 100644 index f4354697..00000000 --- a/app/src/main/res/layout/digital_clock_large.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/digital_clock_small.xml b/app/src/main/res/layout/digital_clock_small.xml deleted file mode 100644 index 8a29e3d3..00000000 --- a/app/src/main/res/layout/digital_clock_small.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/vertical_clock.xml b/app/src/main/res/layout/vertical_clock.xml new file mode 100644 index 00000000..d627945f --- /dev/null +++ b/app/src/main/res/layout/vertical_clock.xml @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/vertical_clock_large.xml b/app/src/main/res/layout/vertical_clock_large.xml deleted file mode 100644 index 17f7b991..00000000 --- a/app/src/main/res/layout/vertical_clock_large.xml +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/vertical_clock_small.xml b/app/src/main/res/layout/vertical_clock_small.xml deleted file mode 100644 index 9c4ea149..00000000 --- a/app/src/main/res/layout/vertical_clock_small.xml +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/values-night-v31/colors.xml b/app/src/main/res/values-night-v31/colors.xml new file mode 100644 index 00000000..6ad2e04e --- /dev/null +++ b/app/src/main/res/values-night-v31/colors.xml @@ -0,0 +1,5 @@ + + + @android:color/system_accent1_200 + @android:color/system_accent2_200 + \ No newline at end of file diff --git a/app/src/main/res/values-v31/colors.xml b/app/src/main/res/values-v31/colors.xml new file mode 100644 index 00000000..5a5abfe7 --- /dev/null +++ b/app/src/main/res/values-v31/colors.xml @@ -0,0 +1,5 @@ + + + @android:color/system_accent1_600 + @android:color/system_accent2_600 + \ No newline at end of file diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 914afe37..1922f10e 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -1,4 +1,6 @@ #FFFFFFFF + ?attr/colorOnSecondaryContainer + ?attr/colorOnSecondaryContainer \ No newline at end of file diff --git a/app/src/main/res/xml/digital_clock_widget.xml b/app/src/main/res/xml/digital_clock_widget.xml index d2db7a66..64d8d5f3 100644 --- a/app/src/main/res/xml/digital_clock_widget.xml +++ b/app/src/main/res/xml/digital_clock_widget.xml @@ -4,7 +4,7 @@ android:description="@string/digital_clock" android:minWidth="180dp" android:minHeight="50dp" - android:previewLayout="@layout/digital_clock_small" + android:previewLayout="@layout/digital_clock" android:resizeMode="horizontal|vertical" android:widgetCategory="home_screen" tools:targetApi="s" /> \ No newline at end of file diff --git a/app/src/main/res/xml/vertical_clock_widget.xml b/app/src/main/res/xml/vertical_clock_widget.xml index 01933c79..9287c664 100644 --- a/app/src/main/res/xml/vertical_clock_widget.xml +++ b/app/src/main/res/xml/vertical_clock_widget.xml @@ -4,7 +4,7 @@ android:description="@string/vertical_clock" android:minWidth="180dp" android:minHeight="120dp" - android:previewLayout="@layout/vertical_clock_small" + android:previewLayout="@layout/vertical_clock" android:resizeMode="horizontal|vertical" android:widgetCategory="home_screen" tools:targetApi="s" /> \ No newline at end of file From bf1e3d1cd456d3d30d2494d246326c2a4d08ddf8 Mon Sep 17 00:00:00 2001 From: Bnyro Date: Sun, 25 Feb 2024 16:24:50 +0100 Subject: [PATCH 2/2] fix(widgets): use text sizes relative to screen size --- app/build.gradle.kts | 1 + .../bnyro/clock/widgets/VerticalClockWidget.kt | 4 ++-- app/src/main/res/layout/digital_clock.xml | 13 +++++++------ app/src/main/res/layout/vertical_clock.xml | 15 +++++++++------ app/src/main/res/xml/vertical_clock_widget.xml | 4 ++-- gradle/libs.versions.toml | 2 ++ 6 files changed, 23 insertions(+), 16 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 95fe17ac..f266edf6 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -82,6 +82,7 @@ dependencies { implementation(libs.material) implementation(libs.material.icons.extended) + implementation(libs.sdp.android) implementation(libs.ui.viewbinding) testImplementation(libs.junit) androidTestImplementation(libs.androidx.test.ext.junit) diff --git a/app/src/main/java/com/bnyro/clock/widgets/VerticalClockWidget.kt b/app/src/main/java/com/bnyro/clock/widgets/VerticalClockWidget.kt index 1541119e..5a664b1f 100644 --- a/app/src/main/java/com/bnyro/clock/widgets/VerticalClockWidget.kt +++ b/app/src/main/java/com/bnyro/clock/widgets/VerticalClockWidget.kt @@ -26,8 +26,8 @@ class VerticalClockWidget : AppWidgetProvider() { ) val viewMapping = RemoteViews(context.packageName, R.layout.vertical_clock).apply { - setOnClickPendingIntent(R.id.container, pendingIntent) - } + setOnClickPendingIntent(R.id.container, pendingIntent) + } val views = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { RemoteViews(viewMapping) diff --git a/app/src/main/res/layout/digital_clock.xml b/app/src/main/res/layout/digital_clock.xml index ab929bb9..05a0e5ec 100644 --- a/app/src/main/res/layout/digital_clock.xml +++ b/app/src/main/res/layout/digital_clock.xml @@ -1,13 +1,11 @@ @@ -17,6 +15,7 @@ android:layout_height="wrap_content" android:orientation="vertical" android:gravity="center"> + diff --git a/app/src/main/res/layout/vertical_clock.xml b/app/src/main/res/layout/vertical_clock.xml index d627945f..fc50c237 100644 --- a/app/src/main/res/layout/vertical_clock.xml +++ b/app/src/main/res/layout/vertical_clock.xml @@ -4,8 +4,8 @@ android:layout_height="match_parent" android:theme="@style/Theme.Material3.DynamicColors.DayNight" android:background="@drawable/widget_shape" - android:paddingHorizontal="30dp" - android:paddingVertical="10dp" + android:paddingHorizontal="@dimen/_10sdp" + android:paddingVertical="@dimen/_3sdp" android:gravity="center|center_vertical"> + android:textSize="@dimen/_60sdp" /> + android:textSize="@dimen/_60sdp" + android:textStyle="bold" + android:layout_marginTop="@dimen/_minus25sdp" /> diff --git a/app/src/main/res/xml/vertical_clock_widget.xml b/app/src/main/res/xml/vertical_clock_widget.xml index 9287c664..240db2fc 100644 --- a/app/src/main/res/xml/vertical_clock_widget.xml +++ b/app/src/main/res/xml/vertical_clock_widget.xml @@ -2,8 +2,8 @@