feat(ui): add vertical brightness fills, dark mode, and websocket toggle
All checks were successful
Update Wiki Documentation / generate-docs (push) Successful in 2m26s

This commit is contained in:
Krzysztof Cieślik
2026-06-14 17:51:46 +02:00
parent ff8b94feea
commit 948ad4a425
23 changed files with 678 additions and 238 deletions

View File

@@ -7,6 +7,7 @@
android:padding="16dp">
<TextView
android:id="@+id/tvConnectionTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/title_connection"
@@ -16,6 +17,7 @@
android:textColor="@color/ha_black" />
<View
android:id="@+id/vBorderTitle"
android:layout_width="match_parent"
android:layout_height="2dp"
android:background="@color/ha_black"
@@ -23,6 +25,7 @@
android:layout_marginBottom="16dp" />
<TextView
android:id="@+id/labelUrl"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/label_url"
@@ -43,12 +46,14 @@
android:textSize="16sp" />
<View
android:id="@+id/vBorderUrl"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/ha_black"
android:layout_marginBottom="16dp" />
<TextView
android:id="@+id/labelToken"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/label_token"
@@ -69,12 +74,14 @@
android:textSize="16sp" />
<View
android:id="@+id/vBorderToken"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/ha_black"
android:layout_marginBottom="16dp" />
<TextView
android:id="@+id/labelRefresh"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/label_refresh"
@@ -95,10 +102,35 @@
android:textSize="16sp" />
<View
android:id="@+id/vBorderRefresh"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/ha_black"
android:layout_marginBottom="24dp" />
android:layout_marginBottom="16dp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center_vertical"
android:layout_marginBottom="24dp">
<com.example.retroha.ui.BauhausCheckbox
android:id="@+id/cbWebSocket"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/labelWebSocket"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/label_websocket_enable"
android:typeface="monospace"
android:textSize="12sp"
android:textColor="@color/ha_black"
android:layout_marginLeft="12dp" />
</LinearLayout>
<FrameLayout
android:layout_width="match_parent"

View File

@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/rootLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
@@ -7,6 +8,7 @@
android:padding="16dp">
<TextView
android:id="@+id/tvSelectionTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/btn_entity_selection"
@@ -16,6 +18,7 @@
android:textColor="@color/ha_black" />
<View
android:id="@+id/vBorderTitle"
android:layout_width="match_parent"
android:layout_height="2dp"
android:background="@color/ha_black"
@@ -26,20 +29,27 @@
android:id="@+id/etSearch"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Szukaj encji..."
android:inputType="text"
android:background="@null"
android:padding="8dp"
android:hint="Szukaj / Search..."
android:typeface="monospace"
android:textSize="14sp"
android:drawableLeft="@android:drawable/ic_menu_search" />
android:textSize="14sp" />
<View
android:id="@+id/vBorderSearch"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/ha_black"
android:layout_marginBottom="16dp" />
<ListView
android:id="@+id/lvEntities"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_marginTop="8dp"
android:divider="@color/ha_black"
android:dividerHeight="1dp" />
android:dividerHeight="1dp"
android:listSelector="@android:color/transparent" />
<FrameLayout
android:layout_width="match_parent"

View File

@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/scrollView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/ha_white">
@@ -11,6 +12,7 @@
android:padding="16dp">
<TextView
android:id="@+id/tvInstructionsTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/btn_instructions"
@@ -21,12 +23,14 @@
android:layout_marginBottom="16dp" />
<View
android:id="@+id/vBorderTitle"
android:layout_width="match_parent"
android:layout_height="2dp"
android:background="@color/ha_black"
android:layout_marginBottom="16dp" />
<TextView
android:id="@+id/tvHeader1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/inst_header_1"
@@ -37,6 +41,7 @@
android:layout_marginBottom="8dp" />
<TextView
android:id="@+id/tvBody1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/inst_body_1"
@@ -47,6 +52,7 @@
android:layout_marginBottom="24dp" />
<TextView
android:id="@+id/tvHeader2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/inst_header_2"
@@ -57,6 +63,7 @@
android:layout_marginBottom="8dp" />
<TextView
android:id="@+id/tvBody2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/inst_body_2"
@@ -67,6 +74,7 @@
android:layout_marginBottom="24dp" />
<TextView
android:id="@+id/tvHeader3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/inst_header_3"
@@ -77,6 +85,7 @@
android:layout_marginBottom="8dp" />
<TextView
android:id="@+id/tvBody3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/inst_body_3"

View File

@@ -1,131 +1,151 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mainRoot"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@color/ha_white">
android:layout_height="match_parent">
<!-- TOP BAR -->
<LinearLayout
android:id="@+id/mainLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@color/ha_white">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="54dp"
android:paddingLeft="16dp"
android:paddingRight="16dp">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:orientation="vertical">
<TextView
android:id="@+id/tvTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/app_title"
android:textSize="18sp"
android:textStyle="bold"
android:typeface="monospace"
android:textColor="@color/ha_black" />
<TextView
android:id="@+id/tvStatusIndicator"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ONLINE"
android:textSize="9sp"
android:textStyle="bold"
android:typeface="monospace"
android:textColor="@color/ha_blue" />
</LinearLayout>
<FrameLayout
android:id="@+id/btnSettingsContainer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true">
<!-- hard shadow -->
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/btn_settings"
android:paddingLeft="12dp"
android:paddingRight="12dp"
android:paddingTop="7dp"
android:paddingBottom="7dp"
android:layout_marginLeft="3dp"
android:layout_marginTop="3dp"
android:background="@color/ha_black"
android:textSize="12sp"
android:typeface="monospace"
android:textColor="@color/ha_black" />
<!-- button -->
<TextView
android:id="@+id/btnSettings"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/btn_settings"
android:paddingLeft="12dp"
android:paddingRight="12dp"
android:paddingTop="7dp"
android:paddingBottom="7dp"
android:background="@color/ha_blue"
android:textSize="12sp"
android:typeface="monospace"
android:textColor="@color/ha_white"
android:clickable="true" />
</FrameLayout>
</RelativeLayout>
<!-- TABS -->
<HorizontalScrollView
<!-- TOP BAR -->
<LinearLayout
android:id="@+id/topBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scrollbars="none"
android:orientation="vertical"
android:background="@color/ha_white">
<LinearLayout
android:id="@+id/tabContainer"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:orientation="horizontal"
android:paddingLeft="8dp"
android:paddingRight="8dp">
<!-- Tabs will be added programmatically -->
</LinearLayout>
</HorizontalScrollView>
<!-- 2dp bottom border -->
<View
<RelativeLayout
android:id="@+id/topBarContent"
android:layout_width="match_parent"
android:layout_height="54dp"
android:paddingLeft="16dp"
android:paddingRight="16dp">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:orientation="vertical">
<TextView
android:id="@+id/tvTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/app_title"
android:textSize="18sp"
android:textStyle="bold"
android:typeface="monospace"
android:textColor="@color/ha_black" />
<TextView
android:id="@+id/tvStatusIndicator"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ONLINE"
android:textSize="9sp"
android:textStyle="bold"
android:typeface="monospace"
android:textColor="@color/ha_blue" />
</LinearLayout>
<FrameLayout
android:id="@+id/btnSettingsContainer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true">
<!-- hard shadow -->
<TextView
android:id="@+id/btnSettingsShadow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/btn_settings"
android:paddingLeft="12dp"
android:paddingRight="12dp"
android:paddingTop="7dp"
android:paddingBottom="7dp"
android:layout_marginLeft="3dp"
android:layout_marginTop="3dp"
android:background="@color/ha_black"
android:textSize="12sp"
android:typeface="monospace"
android:textColor="@color/ha_black" />
<!-- button -->
<TextView
android:id="@+id/btnSettings"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/btn_settings"
android:paddingLeft="12dp"
android:paddingRight="12dp"
android:paddingTop="7dp"
android:paddingBottom="7dp"
android:background="@color/ha_blue"
android:textSize="12sp"
android:typeface="monospace"
android:textColor="@color/ha_white"
android:clickable="true" />
</FrameLayout>
</RelativeLayout>
<!-- TABS -->
<HorizontalScrollView
android:id="@+id/tabScrollView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scrollbars="none"
android:background="@color/ha_white">
<LinearLayout
android:id="@+id/tabContainer"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:orientation="horizontal"
android:paddingLeft="8dp"
android:paddingRight="8dp">
<!-- Tabs will be added programmatically -->
</LinearLayout>
</HorizontalScrollView>
<!-- 2dp bottom border -->
<View
android:id="@+id/vTopBarBorder"
android:layout_width="match_parent"
android:layout_height="2dp"
android:background="@color/ha_black" />
</LinearLayout>
<!-- WIDGET GRID -->
<GridView
android:id="@+id/gridView"
android:layout_width="match_parent"
android:layout_height="2dp"
android:background="@color/ha_black" />
android:layout_height="0dp"
android:layout_weight="1"
android:numColumns="2"
android:horizontalSpacing="8dp"
android:verticalSpacing="8dp"
android:padding="8dp"
android:background="@color/ha_white"
android:listSelector="@android:color/transparent"
android:scrollbarStyle="insideOverlay"
android:scrollbars="vertical"
android:clipToPadding="false" />
</LinearLayout>
<!-- WIDGET GRID -->
<GridView
android:id="@+id/gridView"
<!-- CONTROL OVERLAY (Hidden by default) -->
<com.example.retroha.ui.BauhausControlOverlay
android:id="@+id/controlOverlay"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:numColumns="2"
android:horizontalSpacing="8dp"
android:verticalSpacing="8dp"
android:padding="8dp"
android:background="@color/ha_white"
android:listSelector="@android:color/transparent"
android:scrollbarStyle="insideOverlay"
android:scrollbars="vertical"
android:clipToPadding="false" />
android:layout_height="match_parent"
android:visibility="gone" />
</LinearLayout>
</FrameLayout>

View File

@@ -7,6 +7,7 @@
android:padding="16dp">
<TextView
android:id="@+id/tvSettingsTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/btn_settings"
@@ -109,6 +110,38 @@
android:textStyle="bold" />
</FrameLayout>
<!-- DARK MODE TOGGLE -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center_vertical"
android:layout_marginTop="24dp"
android:layout_marginBottom="16dp">
<com.example.retroha.ui.BauhausCheckbox
android:id="@+id/cbDarkMode"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/labelDarkMode"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/label_dark_mode"
android:typeface="monospace"
android:textSize="12sp"
android:textColor="@color/ha_black"
android:layout_marginLeft="12dp" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/ha_black"
android:layout_marginBottom="16dp" />
<!-- DELETE ALL BUTTON -->
<FrameLayout
android:layout_width="match_parent"