From bbdab09f83320c2c4cce9e659c29984717e4df8e Mon Sep 17 00:00:00 2001 From: xocko Date: Thu, 15 Oct 2026 08:02:49 +0200 Subject: [PATCH] Minamp 1.6: adjustable UI size, larger text and controls - New setting "Text and button size" (Normal / Large / Extra large): scales text, icons and buttons on top of the phone's density (App.UI_SCALES) - Larger default text, rows, tiles, touch targets and player icons; all sizes now live in res/values/dimens.xml - Seek bar knob drawn in code, since Android 2.x caches XML shapes at the size they were first loaded - Full-width buttons wrap to two lines instead of cutting words off - Shorter labels so they fit 240x320 screens in both languages - tools/check_fit.py checks that UI texts fit their slots at every size and language using Droid Sans metrics; build.sh runs it and setup_toolchain.sh fetches the font Co-Authored-By: Claude Opus 5.5 --- .gitignore | 1 + AndroidManifest.xml | 4 +- build.sh | 7 ++ res/drawable/seek_progress.xml | 2 +- res/drawable/seek_thumb.xml | 2 +- res/layout/activity_home.xml | 4 +- res/layout/activity_now_playing.xml | 110 ++++++++++++----------- res/layout/activity_search.xml | 2 +- res/layout/activity_setup.xml | 16 ++-- res/layout/row_choice.xml | 2 +- res/layout/row_header.xml | 6 +- res/layout/row_item.xml | 14 +-- res/layout/view_album_card.xml | 8 +- res/layout/view_detail_header.xml | 12 +-- res/layout/view_home_tile.xml | 18 ++-- res/layout/view_miniplayer.xml | 10 +-- res/layout/view_status.xml | 2 +- res/layout/view_topbar.xml | 4 +- res/values-en/strings.xml | 23 +++-- res/values/dimens.xml | 47 ++++++++++ res/values/strings.xml | 33 ++++--- res/values/styles.xml | 27 +++--- src/com/minamp/App.java | 29 +++++- src/com/minamp/BaseActivity.java | 49 +++++++--- src/com/minamp/BrowseActivity.java | 2 +- src/com/minamp/HomeActivity.java | 22 ++--- src/com/minamp/ItemAdapter.java | 2 +- src/com/minamp/NowPlayingActivity.java | 23 +++-- src/com/minamp/Ui.java | 7 +- tools/check_fit.py | 118 +++++++++++++++++++++++++ tools/setup_toolchain.sh | 8 ++ tools/strings.py | 33 ++++--- 32 files changed, 457 insertions(+), 190 deletions(-) create mode 100644 res/values/dimens.xml create mode 100644 tools/check_fit.py diff --git a/.gitignore b/.gitignore index 5979b45..a79a668 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ build/ toolchain/ .DS_Store ._* +__pycache__/ diff --git a/AndroidManifest.xml b/AndroidManifest.xml index f685313..04ba8d0 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -1,8 +1,8 @@ diff --git a/build.sh b/build.sh index 65b7376..c9fcbdb 100755 --- a/build.sh +++ b/build.sh @@ -22,6 +22,13 @@ javac -nowarn -Xlint:-options -source 8 -target 8 -encoding UTF-8 -g:source,line -d $OUT/classes @$OUT/sources.txt 2>&1 | grep -v -E '^Picked up|^Note:' || true test -f $OUT/classes/com/minamp/HomeActivity.class +echo "== text fit check (240x320, all languages and sizes)" +if [ -f "$T/fonts/droidsans-regular.ttf" ]; then + python3 tools/check_fit.py "$T/fonts" || { echo "Some texts don't fit their space (see above)"; exit 1; } +else + echo "(skipped: run tools/setup_toolchain.sh to fetch the Droid Sans font)" +fi + echo "== Dalvik 2.x link check" python3 tools/scan_dalvik.py $OUT/classes $ANDROID_JAR > $OUT/dalvik-scan.txt if ! grep -q "^total patterns: 0$" $OUT/dalvik-scan.txt; then diff --git a/res/drawable/seek_progress.xml b/res/drawable/seek_progress.xml index aa53a26..9af9835 100644 --- a/res/drawable/seek_progress.xml +++ b/res/drawable/seek_progress.xml @@ -1,6 +1,6 @@ - + diff --git a/res/drawable/seek_thumb.xml b/res/drawable/seek_thumb.xml index 9a2dd04..43ae0a3 100644 --- a/res/drawable/seek_thumb.xml +++ b/res/drawable/seek_thumb.xml @@ -1,5 +1,5 @@ - + diff --git a/res/layout/activity_home.xml b/res/layout/activity_home.xml index a272cd2..2f0281d 100644 --- a/res/layout/activity_home.xml +++ b/res/layout/activity_home.xml @@ -9,7 +9,7 @@ @@ -20,7 +20,7 @@ + android:text="@string/playing_from" android:textSize="@dimen/text_tiny" android:textStyle="bold" + android:textColor="@color/text2" android:singleLine="true" /> + android:textColor="@color/text" android:textSize="@dimen/text_sub" /> @@ -33,8 +33,8 @@ android:layout_weight="1" android:paddingLeft="20dp" android:paddingRight="20dp" - android:paddingTop="4dp" - android:paddingBottom="6dp"> + android:paddingTop="2dp" + android:paddingBottom="4dp"> + android:paddingLeft="16dp" + android:paddingRight="4dp"> + android:textSize="@dimen/text_np_title" /> + android:textSize="@dimen/text_np_sub" android:textColor="#CCFFFFFF" /> @@ -68,13 +68,13 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:max="1000" - android:paddingLeft="18dp" - android:paddingRight="18dp" - android:paddingTop="8dp" - android:paddingBottom="4dp" - android:thumbOffset="7dp" - android:maxHeight="4dp" - android:minHeight="4dp" + android:paddingLeft="16dp" + android:paddingRight="16dp" + android:paddingTop="6dp" + android:paddingBottom="2dp" + android:thumbOffset="10dp" + android:maxHeight="@dimen/seek_track" + android:minHeight="@dimen/seek_track" android:progressDrawable="@drawable/seek_progress" android:thumb="@drawable/seek_thumb" /> @@ -82,64 +82,70 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" - android:paddingLeft="18dp" - android:paddingRight="18dp"> + android:paddingLeft="16dp" + android:paddingRight="16dp"> + android:textSize="@dimen/text_tiny" android:textColor="#CCFFFFFF" /> + android:textSize="@dimen/text_tiny" android:textColor="#CCFFFFFF" /> + - - - - - - - - - - + android:paddingLeft="4dp" + android:paddingRight="4dp"> + + + + + + + + + + - + android:background="@drawable/bg_pressable" android:paddingLeft="8dp" android:paddingRight="8dp"> + - + android:paddingLeft="8dp" android:paddingRight="8dp" android:singleLine="true" + android:textSize="@dimen/text_np_small" android:textColor="#CCFFFFFF" android:text="@string/album_link" /> diff --git a/res/layout/activity_search.xml b/res/layout/activity_search.xml index 411b2a6..dac1492 100644 --- a/res/layout/activity_search.xml +++ b/res/layout/activity_search.xml @@ -5,7 +5,7 @@ android:orientation="vertical">