- Bundle current root certificates (Let's Encrypt, GTS, Sectigo, DigiCert G2, Amazon, ...) missing from Android 2.x's store (Roots.java, tools/gen_roots.py) - Ask once for unknown certificates, showing the SHA-256 fingerprint, and remember the answer; replaces "accept any certificate" (Trust*, Settings) - Local streaming proxy so Android 2.x's MediaPlayer can play https:// servers, with seeking and a fresh token per request (StreamProxy.java) - Tests over real TLS with good, expired, wrong-host, forged and self-signed certificates (test/make_pki.sh, TrustTest.java) - README: server setup for a legacy TLS 1.0 port Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
102 lines
3.8 KiB
XML
102 lines
3.8 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
|
android:layout_width="fill_parent"
|
|
android:layout_height="fill_parent"
|
|
android:fillViewport="true">
|
|
|
|
<LinearLayout
|
|
android:layout_width="fill_parent"
|
|
android:layout_height="wrap_content"
|
|
android:orientation="vertical"
|
|
android:padding="12dp">
|
|
|
|
<LinearLayout
|
|
android:layout_width="fill_parent"
|
|
android:layout_height="wrap_content"
|
|
android:orientation="horizontal"
|
|
android:gravity="center_vertical"
|
|
android:layout_marginBottom="4dp">
|
|
|
|
<ImageView
|
|
android:layout_width="36dp"
|
|
android:layout_height="36dp"
|
|
android:src="@drawable/ic_launcher" />
|
|
|
|
<LinearLayout
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:orientation="vertical"
|
|
android:paddingLeft="8dp">
|
|
|
|
<TextView
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:text="MiniABS"
|
|
android:textSize="18sp"
|
|
android:textStyle="bold"
|
|
android:textColor="@color/accent" />
|
|
|
|
<TextView
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:text="Audiobookshelf podcasts"
|
|
android:textSize="11sp"
|
|
android:textColor="@color/sub" />
|
|
</LinearLayout>
|
|
</LinearLayout>
|
|
|
|
<TextView style="@style/Label" android:text="Server address" />
|
|
<EditText
|
|
android:id="@+id/server"
|
|
style="@style/Field"
|
|
android:hint="http://192.168.1.10:13378"
|
|
android:inputType="textUri" />
|
|
|
|
<TextView android:id="@+id/user_label" style="@style/Label" android:text="Username" />
|
|
<EditText
|
|
android:id="@+id/user"
|
|
style="@style/Field"
|
|
android:inputType="text" />
|
|
|
|
<TextView android:id="@+id/pass_label" style="@style/Label" android:text="Password" />
|
|
<EditText
|
|
android:id="@+id/pass"
|
|
style="@style/Field"
|
|
android:inputType="textPassword" />
|
|
|
|
<CheckBox
|
|
android:id="@+id/use_key"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:textSize="12sp"
|
|
android:text="Use an API key instead" />
|
|
|
|
<Button
|
|
android:id="@+id/connect"
|
|
android:layout_width="fill_parent"
|
|
android:layout_height="42dp"
|
|
android:layout_marginTop="6dp"
|
|
android:background="@drawable/btn_accent"
|
|
android:text="Connect"
|
|
android:textStyle="bold"
|
|
android:textSize="14sp"
|
|
android:textColor="#121519" />
|
|
|
|
<TextView
|
|
android:id="@+id/status"
|
|
android:layout_width="fill_parent"
|
|
android:layout_height="wrap_content"
|
|
android:layout_marginTop="8dp"
|
|
android:textSize="12sp"
|
|
android:textColor="@color/accent" />
|
|
|
|
<TextView
|
|
android:layout_width="fill_parent"
|
|
android:layout_height="wrap_content"
|
|
android:layout_marginTop="8dp"
|
|
android:textSize="10sp"
|
|
android:textColor="@color/dim"
|
|
android:text="At home, use your server's local http:// address. For https://, Android 2.3 needs the server to offer TLS 1.0 on a separate port (see README). If the certificate isn't recognised, you'll be shown its fingerprint to check." />
|
|
</LinearLayout>
|
|
</ScrollView>
|