diff --git a/app/src/main/java/org/oxycblt/auxio/widgets/WidgetProvider.kt b/app/src/main/java/org/oxycblt/auxio/widgets/WidgetProvider.kt
index 930c445b0..54dbb2a03 100644
--- a/app/src/main/java/org/oxycblt/auxio/widgets/WidgetProvider.kt
+++ b/app/src/main/java/org/oxycblt/auxio/widgets/WidgetProvider.kt
@@ -133,13 +133,15 @@ class WidgetProvider : AppWidgetProvider() {
} else {
// Otherwise, we try our best to backport the responsive behavior to older versions.
// This is mostly a guess based on RemoteView's documentation, and it has some
- // problems [most notably UI jittering when resizing], but it works. It may be
- // improved once Android 12's source is released.
+ // problems [most notably UI jittering when resizing]. Its better than just using
+ // one layout though. It may be improved once Android 12's source is released.
// Theres a non-zero likelihood that this code ends up being copy-pasted all over
// by other apps that are trying to refresh their widgets for Android 12. So, if
// you're doing that than uh...hi.
+ // Each widget has independent dimensions, so we iterate through them all
+ // and do this for each.
val ids = getAppWidgetIds(ComponentName(context, WidgetProvider::class.java))
for (id in ids) {
@@ -170,21 +172,19 @@ class WidgetProvider : AppWidgetProvider() {
}
}
+ // Find the layout with the greatest area. This is what we use.
val layout = candidates.maxByOrNull { it.height * it.width }
if (layout != null) {
logD("Using widget layout $layout")
- updateAppWidget(
- ComponentName(context, WidgetProvider::class.java),
- views[layout]
- )
+ updateAppWidget(id, views[layout])
continue
}
}
- // No layout works. Just use the smallest view.
+ // No layout fits. Just use the smallest view.
logD("No widget layout found")
diff --git a/app/src/main/res/drawable/ui_widget_preview.png b/app/src/main/res/drawable/ui_widget_preview.png
new file mode 100755
index 000000000..685e2d133
Binary files /dev/null and b/app/src/main/res/drawable/ui_widget_preview.png differ
diff --git a/app/src/main/res/layout/widget_small.xml b/app/src/main/res/layout/widget_small.xml
index 31877a042..df7f9c818 100644
--- a/app/src/main/res/layout/widget_small.xml
+++ b/app/src/main/res/layout/widget_small.xml
@@ -15,7 +15,7 @@
android:background="?attr/colorSurface"
android:scaleType="centerCrop"
tools:ignore="contentDescription"
- tools:src="@drawable/ic_song" />
+ android:src="@drawable/ic_song" />
+ android:text="@string/placeholder_widget_song" />
+ android:text="@string/placeholder_widget_artist" />
A simple, rational music player for android.
- Music Playback
+ Now Playing
See and control playing music
diff --git a/app/src/main/res/xml/widget_minimal.xml b/app/src/main/res/xml/widget_minimal.xml
index 51a1db205..644816a80 100644
--- a/app/src/main/res/xml/widget_minimal.xml
+++ b/app/src/main/res/xml/widget_minimal.xml
@@ -7,4 +7,5 @@
android:minResizeHeight="110dp"
android:resizeMode="horizontal|vertical"
android:updatePeriodMillis="0"
+ android:previewImage="@drawable/ui_widget_preview"
android:widgetCategory="home_screen" />
\ No newline at end of file