Private
Public Access
- Interface in Galician by default regardless of the phone's language, with English selectable under Axustes -> Idioma; switching rebuilds the screens - All text in tools/strings.py (key -> English, Galician), generating res/values/strings.xml (gl) and res/values-en/strings.xml; layouts now use string resources - util/Tr.java: translations for the network and Plex layers, which can't read Android resources (falls back to English in desktop tests) - net/RefusedException: distinguish "server answered but refused" from connection failures - The connection log stays in English for troubleshooting Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
146 lines
7.1 KiB
XML
146 lines
7.1 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
|
android:id="@+id/np_root"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="match_parent"
|
|
android:orientation="vertical">
|
|
|
|
<LinearLayout
|
|
android:layout_width="match_parent"
|
|
android:layout_height="44dp"
|
|
android:orientation="horizontal"
|
|
android:gravity="center_vertical"
|
|
android:paddingLeft="2dp"
|
|
android:paddingRight="2dp">
|
|
<ImageButton android:id="@+id/np_down" style="@style/IconButton" />
|
|
<LinearLayout
|
|
android:layout_width="0dp" android:layout_height="wrap_content"
|
|
android:layout_weight="1" android:orientation="vertical" android:gravity="center">
|
|
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content"
|
|
android:text="@string/playing_from" android:textSize="9sp" android:textStyle="bold"
|
|
android:textColor="@color/text2" />
|
|
<TextView android:id="@+id/np_from" style="@style/Sub"
|
|
android:layout_width="wrap_content" android:layout_height="wrap_content"
|
|
android:textColor="@color/text" android:textSize="12sp" />
|
|
</LinearLayout>
|
|
<ImageButton android:id="@+id/np_queue" style="@style/IconButton" />
|
|
</LinearLayout>
|
|
|
|
<FrameLayout
|
|
android:id="@+id/np_art_box"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="0dp"
|
|
android:layout_weight="1"
|
|
android:paddingLeft="20dp"
|
|
android:paddingRight="20dp"
|
|
android:paddingTop="4dp"
|
|
android:paddingBottom="6dp">
|
|
<com.minamp.SquareImageView
|
|
android:id="@+id/np_art"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="match_parent"
|
|
android:layout_gravity="center"
|
|
android:scaleType="centerCrop" />
|
|
</FrameLayout>
|
|
|
|
<LinearLayout
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:orientation="horizontal"
|
|
android:gravity="center_vertical"
|
|
android:paddingLeft="18dp"
|
|
android:paddingRight="8dp">
|
|
<LinearLayout
|
|
android:layout_width="0dp" android:layout_height="wrap_content"
|
|
android:layout_weight="1" android:orientation="vertical">
|
|
<TextView android:id="@+id/np_title" style="@style/Title"
|
|
android:layout_width="match_parent" android:layout_height="wrap_content"
|
|
android:textSize="18sp" />
|
|
<TextView android:id="@+id/np_sub" style="@style/Sub"
|
|
android:layout_width="match_parent" android:layout_height="wrap_content"
|
|
android:textSize="13sp" android:textColor="#CCFFFFFF" />
|
|
</LinearLayout>
|
|
<ImageButton android:id="@+id/np_love" style="@style/IconButton" />
|
|
</LinearLayout>
|
|
|
|
<SeekBar
|
|
android:id="@+id/np_seek"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:max="1000"
|
|
android:paddingLeft="18dp"
|
|
android:paddingRight="18dp"
|
|
android:paddingTop="8dp"
|
|
android:paddingBottom="4dp"
|
|
android:thumbOffset="7dp"
|
|
android:maxHeight="4dp"
|
|
android:minHeight="4dp"
|
|
android:progressDrawable="@drawable/seek_progress"
|
|
android:thumb="@drawable/seek_thumb" />
|
|
|
|
<LinearLayout
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:orientation="horizontal"
|
|
android:paddingLeft="18dp"
|
|
android:paddingRight="18dp">
|
|
<TextView android:id="@+id/np_elapsed"
|
|
android:layout_width="wrap_content" android:layout_height="wrap_content"
|
|
android:textSize="10sp" android:textColor="#B3FFFFFF" />
|
|
<TextView android:id="@+id/np_status"
|
|
android:layout_width="0dp" android:layout_height="wrap_content"
|
|
android:layout_weight="1" android:gravity="center"
|
|
android:textSize="10sp" android:textColor="#B3FFFFFF"
|
|
android:singleLine="true" android:ellipsize="end"
|
|
android:paddingLeft="4dp" android:paddingRight="4dp" />
|
|
<TextView android:id="@+id/np_remaining"
|
|
android:layout_width="wrap_content" android:layout_height="wrap_content"
|
|
android:textSize="10sp" android:textColor="#B3FFFFFF" />
|
|
</LinearLayout>
|
|
|
|
<LinearLayout
|
|
android:layout_width="match_parent"
|
|
android:layout_height="64dp"
|
|
android:orientation="horizontal"
|
|
android:gravity="center"
|
|
android:paddingLeft="6dp"
|
|
android:paddingRight="6dp">
|
|
<ImageButton android:id="@+id/np_shuffle" style="@style/IconButton" />
|
|
<View android:layout_width="0dp" android:layout_height="1dp" android:layout_weight="1" />
|
|
<ImageButton android:id="@+id/np_prev" style="@style/IconButton" android:layout_width="50dp" android:layout_height="50dp" />
|
|
<ImageButton android:id="@+id/np_play"
|
|
android:layout_width="58dp" android:layout_height="58dp"
|
|
android:layout_marginLeft="8dp" android:layout_marginRight="8dp"
|
|
android:background="@drawable/bg_play_circle" android:scaleType="center" />
|
|
<ImageButton android:id="@+id/np_next" style="@style/IconButton" android:layout_width="50dp" android:layout_height="50dp" />
|
|
<View android:layout_width="0dp" android:layout_height="1dp" android:layout_weight="1" />
|
|
<ImageButton android:id="@+id/np_repeat" style="@style/IconButton" />
|
|
</LinearLayout>
|
|
|
|
<LinearLayout
|
|
android:layout_width="match_parent"
|
|
android:layout_height="36dp"
|
|
android:orientation="horizontal"
|
|
android:gravity="center_vertical"
|
|
android:paddingLeft="12dp"
|
|
android:paddingRight="12dp"
|
|
android:layout_marginBottom="4dp">
|
|
<LinearLayout android:id="@+id/np_sleep"
|
|
android:layout_width="wrap_content" android:layout_height="match_parent"
|
|
android:orientation="horizontal" android:gravity="center_vertical"
|
|
android:background="@drawable/bg_pressable" android:paddingLeft="6dp" android:paddingRight="8dp">
|
|
<ImageView android:id="@+id/np_sleep_icon" android:layout_width="20dp" android:layout_height="20dp" />
|
|
<TextView android:id="@+id/np_sleep_text"
|
|
android:layout_width="wrap_content" android:layout_height="wrap_content"
|
|
android:textSize="11sp" android:textColor="#B3FFFFFF" android:paddingLeft="5dp"
|
|
android:text="@string/sleep" />
|
|
</LinearLayout>
|
|
<View android:layout_width="0dp" android:layout_height="1dp" android:layout_weight="1" />
|
|
<TextView android:id="@+id/np_artist_link"
|
|
android:layout_width="wrap_content" android:layout_height="match_parent"
|
|
android:gravity="center_vertical" android:background="@drawable/bg_pressable"
|
|
android:paddingLeft="8dp" android:paddingRight="8dp"
|
|
android:textSize="11sp" android:textColor="#B3FFFFFF" android:text="@string/album_link" />
|
|
</LinearLayout>
|
|
</LinearLayout>
|