Files
plexamp-lite/res/layout/activity_setup.xml
T
xockoandClaude Opus 5.5 a4b875ef34 Minamp 1.2
- Transcoding: send client identities Plex has a profile for (unknown ones get
  400 "unable to find a matching profile"), with a fresh session id per variant
- Stream proxy: fetch transcodes once into a temp file and serve every player
  request from it, so reconnects no longer restart the transcode (503s, tracks
  cut short); original files still pass Range requests through
- Sign-in: remember the pending link code so it survives Minamp being closed
  while the code is entered elsewhere; add "I've entered it - check now"
- Diagnostics: in-app connection log (DiagLog) with a streaming test and save
  to SD card; tokens are never logged

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 20:38:17 +02:00

130 lines
8.1 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
android:fadingEdge="none">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="20dp">
<!-- welcome -->
<LinearLayout android:id="@+id/page_welcome"
android:layout_width="match_parent" android:layout_height="wrap_content"
android:orientation="vertical" android:gravity="center_horizontal">
<ImageView android:layout_width="64dp" android:layout_height="64dp"
android:layout_marginTop="12dp" android:src="@drawable/ic_launcher"
android:scaleType="fitCenter" />
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content"
android:text="Minamp" android:textSize="26sp" android:textStyle="bold"
android:paddingTop="8dp" />
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content"
android:gravity="center" android:textColor="@color/text2" android:textSize="13sp"
android:paddingTop="4dp" android:paddingBottom="22dp"
android:text="Your Plex music, anywhere,\non a very small phone." />
<Button android:id="@+id/btn_signin" style="@style/ButtonAccent"
android:layout_width="match_parent" android:text="Sign in with Plex" />
<Button android:id="@+id/btn_manual" style="@style/ButtonOutline"
android:layout_width="match_parent" android:layout_marginTop="10dp"
android:text="Connect to a server address" />
<TextView android:id="@+id/btn_setup_log"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="18dp" android:padding="8dp"
android:background="@drawable/bg_pressable"
android:textColor="@color/text2" android:textSize="12sp"
android:text="Connection log" />
</LinearLayout>
<!-- PIN -->
<LinearLayout android:id="@+id/page_pin"
android:layout_width="match_parent" android:layout_height="wrap_content"
android:orientation="vertical" android:gravity="center_horizontal"
android:visibility="gone">
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content"
android:gravity="center" android:textColor="@color/text2" android:textSize="13sp"
android:paddingTop="12dp"
android:text="On a computer or a newer phone, open" />
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content"
android:text="plex.tv/link" android:textSize="22sp" android:textStyle="bold"
android:textColor="@color/accent" android:paddingTop="4dp" />
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content"
android:textColor="@color/text2" android:textSize="13sp" android:paddingTop="10dp"
android:text="and enter this code:" />
<TextView android:id="@+id/pin_code"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:textSize="40sp" android:textStyle="bold" android:typeface="monospace"
android:paddingTop="6dp" android:paddingBottom="10dp" />
<LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal" android:gravity="center_vertical">
<ProgressBar style="@android:style/Widget.ProgressBar.Small"
android:layout_width="wrap_content" android:layout_height="wrap_content" />
<TextView android:id="@+id/pin_status"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:textColor="@color/text2" android:textSize="12sp" android:paddingLeft="8dp"
android:text="Waiting for you to link…" />
</LinearLayout>
<Button android:id="@+id/btn_pin_check" style="@style/ButtonAccent"
android:layout_width="match_parent" android:layout_marginTop="20dp"
android:text="I've entered it \u2014 check now" />
<Button android:id="@+id/btn_pin_cancel" style="@style/ButtonOutline"
android:layout_width="match_parent" android:layout_marginTop="10dp"
android:text="Cancel" />
</LinearLayout>
<!-- manual -->
<LinearLayout android:id="@+id/page_manual"
android:layout_width="match_parent" android:layout_height="wrap_content"
android:orientation="vertical" android:visibility="gone">
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content"
android:text="Server address" android:textSize="18sp" android:textStyle="bold" />
<TextView style="@style/Sub" android:layout_width="match_parent" android:layout_height="wrap_content"
android:singleLine="false" android:paddingTop="4dp" android:paddingBottom="10dp"
android:text="e.g. 192.168.1.20 or https://plex.example.com. Signing in with Plex is easier and finds remote addresses for you." />
<EditText android:id="@+id/edit_url" style="@style/Edit"
android:hint="Address" android:inputType="textUri" />
<EditText android:id="@+id/edit_token" style="@style/Edit"
android:layout_marginTop="8dp" android:hint="X-Plex-Token (optional on your LAN)"
android:inputType="textVisiblePassword" />
<Button android:id="@+id/btn_manual_go" style="@style/ButtonAccent"
android:layout_width="match_parent" android:layout_marginTop="14dp"
android:text="Connect" />
<Button android:id="@+id/btn_manual_back" style="@style/ButtonOutline"
android:layout_width="match_parent" android:layout_marginTop="10dp"
android:text="Back" />
</LinearLayout>
<!-- choose server / library -->
<LinearLayout android:id="@+id/page_choose"
android:layout_width="match_parent" android:layout_height="wrap_content"
android:orientation="vertical" android:visibility="gone">
<TextView android:id="@+id/choose_title"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:textSize="18sp" android:textStyle="bold" />
<TextView android:id="@+id/choose_sub" style="@style/Sub"
android:layout_width="match_parent" android:layout_height="wrap_content"
android:singleLine="false" android:paddingTop="2dp" android:paddingBottom="10dp" />
<LinearLayout android:id="@+id/choose_list"
android:layout_width="match_parent" android:layout_height="wrap_content"
android:orientation="vertical" />
<Button android:id="@+id/btn_choose_back" style="@style/ButtonOutline"
android:layout_width="match_parent" android:layout_marginTop="14dp"
android:text="Back" />
</LinearLayout>
<!-- busy -->
<LinearLayout android:id="@+id/page_busy"
android:layout_width="match_parent" android:layout_height="wrap_content"
android:orientation="vertical" android:gravity="center_horizontal"
android:paddingTop="60dp" android:visibility="gone">
<ProgressBar android:layout_width="wrap_content" android:layout_height="wrap_content" />
<TextView android:id="@+id/busy_text"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:gravity="center" android:textColor="@color/text2" android:textSize="13sp"
android:paddingTop="12dp" />
</LinearLayout>
</LinearLayout>
</ScrollView>