
Revert the introduction of the thin/tiny widgets, but keep the new cover layout I created while working on them. There is simply no way I can cram controls and metadata within the size bucket that the thin widget occupies. I have decided to give up and revert the widget to it's old form. I understand why the thin widget is not appealing. However, the sizing at which a widget can properly accomodate a taller widget is just too precise and not really large enough to justify it's existance.
94 lines
4 KiB
XML
94 lines
4 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<android.widget.RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
|
xmlns:tools="http://schemas.android.com/tools"
|
|
android:id="@android:id/background"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="match_parent"
|
|
android:background="@android:color/transparent"
|
|
android:theme="@style/Theme.Widget">
|
|
|
|
<!--
|
|
For most widget forms to work, we need to scale the ImageView across a 1:1 aspect ratio.
|
|
However, since we are working with a RemoteViews instance, we can't just use ConstraintLayout
|
|
to achieve this. We can use RelativeLayout, but there's no way to force an aspect ratio with
|
|
that layout. However, if we create an invisible ImageView that contains a massive fixed-size
|
|
drawable and then clamp our main ImageView to it, we can make the view scale on a 1:1 aspect
|
|
ratio.
|
|
|
|
This is easily one of the worst layout hacks I've done, but it seems to work.
|
|
-->
|
|
|
|
<android.widget.ImageView
|
|
android:id="@+id/widget_aspect_ratio"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:layout_above="@+id/widget_panel"
|
|
android:layout_alignParentStart="true"
|
|
android:layout_alignParentTop="true"
|
|
android:layout_alignParentEnd="true"
|
|
android:layout_alignParentBottom="true"
|
|
android:layout_marginStart="@dimen/spacing_small"
|
|
android:layout_marginTop="@dimen/spacing_small"
|
|
android:layout_marginEnd="@dimen/spacing_small"
|
|
android:layout_marginBottom="@dimen/spacing_small"
|
|
android:adjustViewBounds="true"
|
|
android:scaleType="fitCenter"
|
|
android:src="@drawable/ui_remote_aspect_ratio"
|
|
android:visibility="invisible"
|
|
tools:ignore="ContentDescription" />
|
|
|
|
<android.widget.ImageView
|
|
android:id="@+id/widget_cover"
|
|
android:layout_width="0dp"
|
|
android:layout_height="0dp"
|
|
android:layout_alignStart="@id/widget_aspect_ratio"
|
|
android:layout_alignTop="@id/widget_aspect_ratio"
|
|
android:layout_alignEnd="@id/widget_aspect_ratio"
|
|
android:layout_alignBottom="@id/widget_aspect_ratio"
|
|
android:src="@drawable/ic_remote_default_cover"
|
|
tools:ignore="ContentDescription" />
|
|
|
|
<android.widget.LinearLayout
|
|
android:id="@+id/widget_panel"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:layout_alignParentBottom="true"
|
|
android:layout_gravity="center"
|
|
android:background="@drawable/ui_widget_panel"
|
|
android:orientation="horizontal"
|
|
android:paddingStart="@dimen/spacing_small"
|
|
android:paddingTop="@dimen/spacing_small"
|
|
android:paddingEnd="@dimen/spacing_small"
|
|
android:paddingBottom="@dimen/spacing_small">
|
|
|
|
<android.widget.ImageButton
|
|
android:id="@+id/widget_skip_prev"
|
|
style="@style/Widget.Auxio.PlaybackButton.AppWidget"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:layout_weight="1"
|
|
android:contentDescription="@string/desc_skip_prev"
|
|
android:src="@drawable/ic_skip_prev" />
|
|
|
|
<android.widget.ImageButton
|
|
android:id="@+id/widget_play_pause"
|
|
style="@style/Widget.Auxio.PlaybackButton.AppWidget"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:layout_weight="1"
|
|
android:contentDescription="@string/desc_play_pause"
|
|
android:src="@drawable/ic_play" />
|
|
|
|
<android.widget.ImageButton
|
|
android:id="@+id/widget_skip_next"
|
|
style="@style/Widget.Auxio.PlaybackButton.AppWidget"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:layout_weight="1"
|
|
android:contentDescription="@string/desc_skip_next"
|
|
android:src="@drawable/ic_skip_next" />
|
|
|
|
</android.widget.LinearLayout>
|
|
</android.widget.RelativeLayout>
|
|
|
|
|