Skip to content

Commit

Permalink
fix: switch widgets to relative layout to fix render issues
Browse files Browse the repository at this point in the history
  • Loading branch information
newhinton authored and Bnyro committed Feb 25, 2024
1 parent ec3fcac commit df396a6
Show file tree
Hide file tree
Showing 13 changed files with 115 additions and 189 deletions.
14 changes: 4 additions & 10 deletions app/src/main/java/com/bnyro/clock/widgets/DigitalClockWidget.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -26,19 +25,14 @@ class DigitalClockWidget : AppWidgetProvider() {
PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE
)

val viewMapping: Map<SizeF, RemoteViews> = 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)
Expand Down
14 changes: 4 additions & 10 deletions app/src/main/java/com/bnyro/clock/widgets/VerticalClockWidget.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -26,19 +25,14 @@ class VerticalClockWidget : AppWidgetProvider() {
PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE
)

val viewMapping: Map<SizeF, RemoteViews> = 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)
Expand Down
43 changes: 43 additions & 0 deletions app/src/main/res/layout/digital_clock.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:theme="@style/Theme.Material3.DynamicColors.DayNight"
android:background="@drawable/widget_shape"
android:paddingHorizontal="30dp"
android:paddingVertical="10dp"
android:id="@+id/frameLayout"
android:gravity="center|center_vertical">

<LinearLayout
android:id="@+id/container"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center">
<TextClock
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:format12Hour="EE, MMM dd"
android:format24Hour="EE, MMM dd"
android:textColor="@color/widgetSecondaryTextColor"
android:text="Today"
android:id="@+id/textClock" />

<TextClock
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="-8sp"
android:format12Hour="hh:mm"
android:format24Hour="kk:mm"
android:textColor="@color/widgetPrimaryTextColor"
android:textSize="55sp"
android:text="12:34"
android:id="@+id/textClock2"
android:singleLine="true" />

</LinearLayout>

</RelativeLayout>
36 changes: 0 additions & 36 deletions app/src/main/res/layout/digital_clock_large.xml

This file was deleted.

37 changes: 0 additions & 37 deletions app/src/main/res/layout/digital_clock_small.xml

This file was deleted.

50 changes: 50 additions & 0 deletions app/src/main/res/layout/vertical_clock.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:theme="@style/Theme.Material3.DynamicColors.DayNight"
android:background="@drawable/widget_shape"
android:paddingHorizontal="30dp"
android:paddingVertical="10dp"
android:gravity="center|center_vertical">

<LinearLayout
android:id="@+id/container"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">

<TextClock
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:format12Hour="EE, MMM dd"
android:format24Hour="EE, MMM dd"
android:text="Today"
android:textColor="@color/widgetSecondaryTextColor" />

<TextClock
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="-8sp"
android:layout_gravity="center"
android:format12Hour="hh"
android:format24Hour="kk"
android:text="12"
android:textColor="@color/widgetPrimaryTextColor"
android:textSize="84sp" />

<TextClock
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:format12Hour="mm"
android:format24Hour="mm"
android:text="34"
android:textColor="@color/widgetPrimaryTextColor"
android:textSize="84sp"
android:layout_marginTop="-40sp" />

</LinearLayout>

</RelativeLayout>
47 changes: 0 additions & 47 deletions app/src/main/res/layout/vertical_clock_large.xml

This file was deleted.

47 changes: 0 additions & 47 deletions app/src/main/res/layout/vertical_clock_small.xml

This file was deleted.

5 changes: 5 additions & 0 deletions app/src/main/res/values-night-v31/colors.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="widgetPrimaryTextColor">@android:color/system_accent1_200</color>
<color name="widgetSecondaryTextColor">@android:color/system_accent2_200</color>
</resources>
5 changes: 5 additions & 0 deletions app/src/main/res/values-v31/colors.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="widgetPrimaryTextColor">@android:color/system_accent1_600</color>
<color name="widgetSecondaryTextColor">@android:color/system_accent2_600</color>
</resources>
2 changes: 2 additions & 0 deletions app/src/main/res/values/colors.xml
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="windowBackground">#FFFFFFFF</color>
<color name="widgetPrimaryTextColor">?attr/colorOnSecondaryContainer</color>
<color name="widgetSecondaryTextColor">?attr/colorOnSecondaryContainer</color>
</resources>
2 changes: 1 addition & 1 deletion app/src/main/res/xml/digital_clock_widget.xml
Original file line number Diff line number Diff line change
Expand Up @@ -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" />
2 changes: 1 addition & 1 deletion app/src/main/res/xml/vertical_clock_widget.xml
Original file line number Diff line number Diff line change
Expand Up @@ -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" />

0 comments on commit df396a6

Please sign in to comment.