Initial commit: SVXHomyak - Android client for SVXLink reflectors

This commit is contained in:
ua1zbe
2026-08-13 13:33:17 +03:00
commit f924c4cc4a
29 changed files with 2528 additions and 0 deletions

View File

@@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@color/bg"
android:padding="16dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center_vertical">
<TextView
android:id="@+id/status_chip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingHorizontal="14dp"
android:paddingVertical="6dp"
android:textColor="@color/text_primary"
android:textSize="14sp"
android:background="@drawable/bg_chip"
android:text="@string/status_disconnected" />
<Space
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_weight="1" />
<ImageButton
android:id="@+id/btn_settings"
android:layout_width="48dp"
android:layout_height="48dp"
android:src="@drawable/ic_settings"
android:background="?android:attr/selectableItemBackgroundBorderless"
android:contentDescription="@string/settings_title"
android:scaleType="centerInside" />
</LinearLayout>
<TextView
android:id="@+id/lbl_subtitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:textColor="@color/text_secondary"
android:textSize="13sp"
android:singleLine="true"
android:ellipsize="end"
android:text="@string/settings_not_configured" />
<TextView
android:id="@+id/lbl_talker_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="28dp"
android:textColor="@color/text_secondary"
android:textSize="14sp"
android:text="@string/talker_none" />
<TextView
android:id="@+id/lbl_talker"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:textColor="@color/accent"
android:textSize="28sp"
android:textStyle="bold"
android:singleLine="true"
android:ellipsize="end"
android:text="@string/talker_none" />
<Space
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
<ru.ua1zbe.svxremote.ui.LevelMeter
android:id="@+id/level_meter"
android:layout_width="match_parent"
android:layout_height="30dp" />
<ru.ua1zbe.svxremote.ui.PttButton
android:id="@+id/ptt_button"
android:layout_width="match_parent"
android:layout_height="220dp"
android:layout_marginTop="24dp"
android:layout_marginBottom="12dp" />
<TextView
android:id="@+id/lbl_ptt_hint"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:textColor="@color/text_secondary"
android:textSize="13sp"
android:text="@string/ptt_hint" />
<TextView
android:id="@+id/lbl_tx_state"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:textColor="@color/danger"
android:textSize="14sp"
android:textStyle="bold"
android:visibility="gone"
android:text="@string/ptt_talking" />
<Button
android:id="@+id/btn_connect"
android:layout_width="match_parent"
android:layout_height="52dp"
android:layout_marginTop="12dp"
android:text="@string/btn_connect"
android:textColor="#0D1117"
android:background="@drawable/bg_primary_btn"
android:textSize="16sp"
android:textStyle="bold" />
</LinearLayout>

View File

@@ -0,0 +1,132 @@
<?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:background="@color/bg"
android:fillViewport="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="20dp">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/settings_hint"
android:textColor="@color/text_secondary"
android:textSize="14sp"
android:layout_marginBottom="20dp" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/pref_server_host"
android:textColor="@color/text_primary"
android:textSize="15sp" />
<EditText
android:id="@+id/input_host"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:inputType="textUri"
android:textColor="@color/text_primary"
android:textColorHint="@color/text_secondary"
android:textSize="16sp"
android:background="@drawable/bg_input"
android:padding="12dp"
android:hint="reflector.example.org" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/pref_server_port"
android:textColor="@color/text_primary"
android:textSize="15sp" />
<EditText
android:id="@+id/input_port"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:inputType="number"
android:textColor="@color/text_primary"
android:textColorHint="@color/text_secondary"
android:textSize="16sp"
android:background="@drawable/bg_input"
android:padding="12dp"
android:hint="5300" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/pref_callsign"
android:textColor="@color/text_primary"
android:textSize="15sp" />
<EditText
android:id="@+id/input_callsign"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:inputType="text"
android:textColor="@color/text_primary"
android:textColorHint="@color/text_secondary"
android:textSize="16sp"
android:background="@drawable/bg_input"
android:padding="12dp"
android:hint="@string/pref_callsign_hint" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/pref_auth_key"
android:textColor="@color/text_primary"
android:textSize="15sp" />
<EditText
android:id="@+id/input_auth_key"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:inputType="textPassword"
android:textColor="@color/text_primary"
android:textColorHint="@color/text_secondary"
android:textSize="16sp"
android:background="@drawable/bg_input"
android:padding="12dp"
android:hint="••••••••" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/pref_tg"
android:textColor="@color/text_primary"
android:textSize="15sp" />
<EditText
android:id="@+id/input_tg"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="24dp"
android:inputType="number"
android:textColor="@color/text_primary"
android:textColorHint="@color/text_secondary"
android:textSize="16sp"
android:background="@drawable/bg_input"
android:padding="12dp"
android:hint="11" />
<Button
android:id="@+id/btn_save"
android:layout_width="match_parent"
android:layout_height="52dp"
android:text="@string/btn_save"
android:textColor="#0D1117"
android:background="@drawable/bg_primary_btn"
android:textSize="16sp"
android:textStyle="bold" />
</LinearLayout>
</ScrollView>