Files
podlite/res/layout/activity_login.xml
T
XoséandClaude Opus 5.5 06a5c7078f MiniABS 1.7: bundled TLS 1.2, no legacy HTTPS port needed
All requests (API, covers, downloads, the streaming proxy) go through Minamp's own
HTTP/TLS client (Bouncy Castle TLS 1.2, Mozilla roots, keep-alive, session
resumption) via NetConnection, a drop-in HttpURLConnection, as the iPod version does
with BearSSL. The phone reaches the normal https:// address directly; nothing changes
on the server.

- Trust: Mozilla roots + the user's pinned CAs/certificates feed the new verifier; the
  trust prompt, renew-safe CA pinning and forged-chain protection behave as before
- PATCH is a normal request now (no raw-socket path)
- Job, covers, player, downloads and proxy threads get big stacks for the handshake
- embedded Roots.java and gen_roots.py replaced by assets/roots
- tests: desktop shims read assets; all 104 checks pass (HTTP and HTTPS)

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

105 lines
4.0 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="6dp">
<ImageView
android:layout_width="48dp"
android:layout_height="48dp"
android:src="@drawable/ic_launcher" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingLeft="10dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="MiniABS"
android:textSize="@dimen/login_title"
android:textStyle="bold"
android:textColor="@color/accent_light" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Podcasts de Audiobookshelf"
android:textSize="@dimen/login_tip"
android:textColor="@color/sub" />
</LinearLayout>
</LinearLayout>
<TextView style="@style/Label" android:text="Enderezo do servidor" />
<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="Usuario" />
<EditText
android:id="@+id/user"
style="@style/Field"
android:inputType="text" />
<TextView android:id="@+id/pass_label" style="@style/Label" android:text="Contrasinal" />
<EditText
android:id="@+id/pass"
style="@style/Field"
android:inputType="textPassword" />
<CheckBox
android:id="@+id/use_key"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:minHeight="48dp"
android:textSize="@dimen/login_check"
android:text="Usar unha chave da API" />
<Button
android:id="@+id/connect"
android:layout_width="fill_parent"
android:layout_height="@dimen/login_btn_h"
android:layout_marginTop="6dp"
android:background="@drawable/btn_accent"
android:text="Conectar"
android:textStyle="bold"
android:textSize="@dimen/login_btn_text"
android:textColor="#FFFFFF" />
<TextView
android:id="@+id/status"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:textSize="@dimen/login_status"
android:textColor="@color/accent_light" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:textSize="@dimen/login_tip"
android:textColor="@color/dim"
android:lineSpacingExtra="2dp"
android:text="Usa o enderezo https:// normal do servidor, na casa ou fóra: MiniABS trae o seu propio TLS moderno. Na casa tamén vale o enderezo local http://. Se o certificado non se recoñece, amosaráseche a súa pegada dixital para que a comprobes." />
</LinearLayout>
</ScrollView>