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