From a5161905f9f8d9d774df4b6c780e1237e9161d21 Mon Sep 17 00:00:00 2001 From: Bruce Ashton Date: Mon, 5 Oct 2026 22:07:13 +1300 Subject: [PATCH 1/3] Android: start new players on the Default tileset ForkFront fell back to TTY (text) when no tileset had been chosen. The fallback is now a config string, defaultTileset, which ForkFront leaves at TTY and the app sets to default_32. A tileset the player picks in Settings is still stored and takes precedence. Co-Authored-By: Claude Opus 5.5 --- sys/android/app/res/values/config.xml | 1 + sys/android/forkfront/res/values/config.xml | 2 ++ sys/android/forkfront/src/com/tbd/forkfront/Tileset.java | 2 +- .../forkfront/src/com/tbd/forkfront/TilesetPreference.java | 2 +- 4 files changed, 5 insertions(+), 2 deletions(-) diff --git a/sys/android/app/res/values/config.xml b/sys/android/app/res/values/config.xml index 4a49d199c..fd4f7fbe3 100644 --- a/sys/android/app/res/values/config.xml +++ b/sys/android/app/res/values/config.xml @@ -11,4 +11,5 @@ Gurr Android Nethack 3.6.0 Arc|Bar|Cav|Hea|Kni|Mon|Pri|Rog|Ran|Sam|Tou|Val|Wiz 54 + default_32 diff --git a/sys/android/forkfront/res/values/config.xml b/sys/android/forkfront/res/values/config.xml index 35b2079cb..eb1e9e27c 100644 --- a/sys/android/forkfront/res/values/config.xml +++ b/sys/android/forkfront/res/values/config.xml @@ -13,4 +13,6 @@ false false + + TTY diff --git a/sys/android/forkfront/src/com/tbd/forkfront/Tileset.java b/sys/android/forkfront/src/com/tbd/forkfront/Tileset.java index 281167d38..7584ca476 100644 --- a/sys/android/forkfront/src/com/tbd/forkfront/Tileset.java +++ b/sys/android/forkfront/src/com/tbd/forkfront/Tileset.java @@ -51,7 +51,7 @@ public void updateTileset(SharedPreferences prefs, Resources r) mFallbackRenderer = prefs.getBoolean("fallbackRenderer", false); - String tilesetName = prefs.getString("tileset", "TTY"); + String tilesetName = prefs.getString("tileset", r.getString(R.string.defaultTileset)); boolean TTY = tilesetName.equals("TTY"); int tileW = prefs.getInt("tileW", 32); diff --git a/sys/android/forkfront/src/com/tbd/forkfront/TilesetPreference.java b/sys/android/forkfront/src/com/tbd/forkfront/TilesetPreference.java index dec6ac3aa..c43676706 100644 --- a/sys/android/forkfront/src/com/tbd/forkfront/TilesetPreference.java +++ b/sys/android/forkfront/src/com/tbd/forkfront/TilesetPreference.java @@ -135,7 +135,7 @@ protected void onBindView(View view) super.onBindView(view); SharedPreferences prefs = getSharedPreferences(); - String currentValue = prefs.getString("tileset", TTY); + String currentValue = prefs.getString("tileset", getContext().getString(R.string.defaultTileset)); int i = mEntryValues.indexOf(currentValue); if(i < 0) From 2a3b5a8725f57cba220a52e00aa8fd42fa68f4c1 Mon Sep 17 00:00:00 2001 From: Bruce Ashton Date: Mon, 5 Oct 2026 22:14:38 +1300 Subject: [PATCH 2/3] Android: size the starting map zoom by screen density With no saved zoomLevel the map drew tiles at their pixel size, so 32px tiles were about 12dp tall on a phone and hard to make out. The starting zoom now comes from a config integer, defaultTileSizeDp, which ForkFront leaves at 0 (old behaviour) and the app sets to 24dp. Once the player zooms, the saved zoomLevel is used as before. Co-Authored-By: Claude Opus 5.5 --- sys/android/app/res/values/config.xml | 1 + sys/android/forkfront/res/values/config.xml | 2 ++ .../forkfront/src/com/tbd/forkfront/NHW_Map.java | 16 +++++++++++++++- 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/sys/android/app/res/values/config.xml b/sys/android/app/res/values/config.xml index fd4f7fbe3..58e76bc78 100644 --- a/sys/android/app/res/values/config.xml +++ b/sys/android/app/res/values/config.xml @@ -12,4 +12,5 @@ Arc|Bar|Cav|Hea|Kni|Mon|Pri|Rog|Ran|Sam|Tou|Val|Wiz 54 default_32 + 24 diff --git a/sys/android/forkfront/res/values/config.xml b/sys/android/forkfront/res/values/config.xml index eb1e9e27c..82f089cc0 100644 --- a/sys/android/forkfront/res/values/config.xml +++ b/sys/android/forkfront/res/values/config.xml @@ -15,4 +15,6 @@ false TTY + + 0 diff --git a/sys/android/forkfront/src/com/tbd/forkfront/NHW_Map.java b/sys/android/forkfront/src/com/tbd/forkfront/NHW_Map.java index 46f187590..e684647b1 100644 --- a/sys/android/forkfront/src/com/tbd/forkfront/NHW_Map.java +++ b/sys/android/forkfront/src/com/tbd/forkfront/NHW_Map.java @@ -575,7 +575,10 @@ public void loadZoomLevel() { float zoomLevel = 0; try { - zoomLevel = prefs.getFloat("zoomLevel", 0.f); + if(prefs.contains("zoomLevel")) + zoomLevel = prefs.getFloat("zoomLevel", 0.f); + else + zoomLevel = getDefaultZoomLevel(); } catch(Exception e) { @@ -583,6 +586,17 @@ public void loadZoomLevel() { zoom(zoomLevel - mScaleCount); } + // ____________________________________________________________________________________ + // The zoom used until the player zooms: tiles defaultTileSizeDp tall on any screen + // density, or the unscaled tile size if that is 0. + private float getDefaultZoomLevel() { + int tileSizeDp = mContext.getResources().getInteger(R.integer.defaultTileSizeDp); + if(tileSizeDp <= 0) + return 0; + float scale = tileSizeDp * mDisplayDensity / mUI.getBaseTileHeight(); + return (float)(Math.log(scale) / Math.log(ZOOM_BASE)); + } + // ____________________________________________________________________________________ // // // // ____________________________________________________________________________________ // From 1df4d4cfdd1a67be2df899045578004acf78a33c Mon Sep 17 00:00:00 2001 From: Bruce Ashton Date: Mon, 5 Oct 2026 22:16:18 +1300 Subject: [PATCH 3/3] Android: bump app version to 3.6.7-7 Co-Authored-By: Claude Opus 5.5 --- sys/android/app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/android/app/build.gradle b/sys/android/app/build.gradle index 52fbfd190..fbfa58ecf 100644 --- a/sys/android/app/build.gradle +++ b/sys/android/app/build.gradle @@ -25,8 +25,8 @@ android { applicationId 'com.skwidge.nethack' minSdk 24 targetSdk 36 - versionName '3.6.7-6' - versionCode 3676 + versionName '3.6.7-7' + versionCode 3677 } compileOptions {