diff --git a/app/src/main/java/org/oxycblt/auxio/widgets/Forms.kt b/app/src/main/java/org/oxycblt/auxio/widgets/Forms.kt
index 5391b4650..d6cfa2e2b 100644
--- a/app/src/main/java/org/oxycblt/auxio/widgets/Forms.kt
+++ b/app/src/main/java/org/oxycblt/auxio/widgets/Forms.kt
@@ -43,7 +43,7 @@ private fun createViews(
private fun RemoteViews.applyMeta(context: Context, state: WidgetState) {
setTextViewText(R.id.widget_song, state.song.name)
- setTextViewText(R.id.widget_artist, state.song.album.artist.name)
+ setTextViewText(R.id.widget_artist, state.song.album.artist.resolvedName)
if (state.albumArt != null) {
setImageViewBitmap(R.id.widget_cover, state.albumArt)
@@ -92,15 +92,15 @@ fun createDefaultWidget(context: Context): RemoteViews {
return createViews(context, R.layout.widget_default)
}
-fun createCompactWidget(context: Context, state: WidgetState): RemoteViews {
- val views = createViews(context, R.layout.widget_compact)
+fun createTinyWidget(context: Context, state: WidgetState): RemoteViews {
+ val views = createViews(context, R.layout.widget_tiny)
views.applyMeta(context, state)
views.applyControls(context, state)
return views
}
-fun createMinimalWidget(context: Context, state: WidgetState): RemoteViews {
- val views = createViews(context, R.layout.widget_minimal)
+fun createWideWidget(context: Context, state: WidgetState): RemoteViews {
+ val views = createViews(context, R.layout.widget_wide)
views.applyMeta(context, state)
views.applyControls(context, state)
return views
@@ -113,8 +113,15 @@ fun createSmallWidget(context: Context, state: WidgetState): RemoteViews {
return views
}
-fun createFullWidget(context: Context, state: WidgetState): RemoteViews {
- val views = createViews(context, R.layout.widget_full)
+fun createMediumWidget(context: Context, state: WidgetState): RemoteViews {
+ val views = createViews(context, R.layout.widget_medium)
+ views.applyMeta(context, state)
+ views.applyControls(context, state)
+ return views
+}
+
+fun createLargeWidget(context: Context, state: WidgetState): RemoteViews {
+ val views = createViews(context, R.layout.widget_large)
views.applyMeta(context, state)
views.applyControls(context, state)
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 82e32e900..a9abb902b 100644
--- a/app/src/main/java/org/oxycblt/auxio/widgets/WidgetProvider.kt
+++ b/app/src/main/java/org/oxycblt/auxio/widgets/WidgetProvider.kt
@@ -46,10 +46,11 @@ import org.oxycblt.auxio.util.logD
* packing what could be considered multiple widgets into a single responsive widget. All types
* are listed below:
*
- * - Full: Large widgets will show cover art and all controls
- * - Small: Tall and thin widgets will show cover art and three controls
- * - Compact: Wide and short widgets will show cover art and all controls in a compact manner
- * - Minimal: Small widgets will only show cover art and three controls
+ * - Large widgets will show cover art and all controls
+ * - Tall and thin widgets will show cover art and three controls
+ * - Wide and short widgets will show cover art and all controls in a compact manner
+ * - Small widgets will only show text and three controls
+ * - Tiny widgets [e.g landscape mode] will show cover art, text, and a play/pause control.
*
* There are some minor problems with this implementation [notably UI jittering when the widget
* picks a new layout below Android 12], but this is tolerable. It may be improved in the future.
@@ -80,10 +81,11 @@ class WidgetProvider : AppWidgetProvider() {
// Map each widget form to the cells where it would look at least okay.
val views = mapOf(
- SizeF(180f, 152f) to createMinimalWidget(context, state),
- SizeF(272f, 152f) to createCompactWidget(context, state),
- SizeF(180f, 270f) to createSmallWidget(context, state),
- SizeF(272f, 270f) to createFullWidget(context, state)
+ SizeF(180f, 100f) to createTinyWidget(context, state),
+ SizeF(180f, 152f) to createSmallWidget(context, state),
+ SizeF(272f, 152f) to createWideWidget(context, state),
+ SizeF(180f, 270f) to createMediumWidget(context, state),
+ SizeF(272f, 270f) to createLargeWidget(context, state)
)
appWidgetManager.applyViewsCompat(context, views)
diff --git a/app/src/main/res/layout/widget_full.xml b/app/src/main/res/layout/widget_large.xml
similarity index 100%
rename from app/src/main/res/layout/widget_full.xml
rename to app/src/main/res/layout/widget_large.xml
diff --git a/app/src/main/res/layout/widget_medium.xml b/app/src/main/res/layout/widget_medium.xml
new file mode 100644
index 000000000..5bafa713c
--- /dev/null
+++ b/app/src/main/res/layout/widget_medium.xml
@@ -0,0 +1,104 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/widget_small.xml b/app/src/main/res/layout/widget_small.xml
index 5bafa713c..1bc3eaa4b 100644
--- a/app/src/main/res/layout/widget_small.xml
+++ b/app/src/main/res/layout/widget_small.xml
@@ -1,53 +1,14 @@
-
+ android:layout_height="match_parent"
+ android:background="?attr/colorSurface"
+ android:gravity="center_vertical"
+ android:orientation="vertical"
+ android:theme="@style/Theme.Widget">
-
-
-
-
-
-
-
+
+ android:layout_marginTop="@dimen/spacing_medium">
-
-
+
diff --git a/app/src/main/res/layout/widget_minimal.xml b/app/src/main/res/layout/widget_tiny.xml
similarity index 61%
rename from app/src/main/res/layout/widget_minimal.xml
rename to app/src/main/res/layout/widget_tiny.xml
index 5d3cb9495..4de2446a5 100644
--- a/app/src/main/res/layout/widget_minimal.xml
+++ b/app/src/main/res/layout/widget_tiny.xml
@@ -8,11 +8,12 @@
android:background="?attr/colorSurface"
android:theme="@style/Theme.Widget">
-
-
-
-
-
-
+ android:src="@drawable/sel_playing_state" />
-
-
+
-
-
-
\ No newline at end of file
+
diff --git a/app/src/main/res/layout/widget_compact.xml b/app/src/main/res/layout/widget_wide.xml
similarity index 100%
rename from app/src/main/res/layout/widget_compact.xml
rename to app/src/main/res/layout/widget_wide.xml
diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml
index e0e468bd8..f4f3174a3 100644
--- a/app/src/main/res/values/dimens.xml
+++ b/app/src/main/res/values/dimens.xml
@@ -43,7 +43,7 @@
28dp
176dp
- 180dp
+ 110dp
@dimen/widget_width_min
180dp
\ No newline at end of file
diff --git a/app/src/main/res/xml-v31/widget_info.xml b/app/src/main/res/xml-v31/widget_info.xml
index 4890660a1..8e344046f 100644
--- a/app/src/main/res/xml-v31/widget_info.xml
+++ b/app/src/main/res/xml-v31/widget_info.xml
@@ -1,10 +1,10 @@