From 97fc83ea9558388e2d8326092e2f9a74c1203411 Mon Sep 17 00:00:00 2001 From: Greg Gage Date: Thu, 24 Sep 2026 22:56:59 -0400 Subject: [PATCH] Rename the RoboRoach skin to Retro mode; keep it out of the store text Greg: "Don't call it roboroach skin. Let's call it Retro mode" and "don't talk about it in the preview text". The Settings switch, its string, IDs and pref key (retro_mode; testers' earlier choice resets once) are renamed, the smoke test taps "Retro mode", README/CLAUDE.md follow, and the Play description no longer mentions it. Co-Authored-By: Claude Opus 5.5 --- CLAUDE.md | 4 +-- README.md | 2 +- .../bybbackpack/MainActivity.java | 32 +++++++++---------- .../main/res/layout-land/activity_main.xml | 6 ++-- app/src/main/res/layout/activity_main.xml | 6 ++-- app/src/main/res/values/strings.xml | 2 +- .../android/en-US/full_description.txt | 2 +- tool/emulator_smoke.sh | 8 ++--- 8 files changed, 31 insertions(+), 31 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 2bd7c6a..3761d1f 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -14,9 +14,9 @@ needs them. Google Play app. (The old `com.backyardbrains.bybremote` Play listing is tied to a signing key we no longer have, so it is not used.) 3. **The app is BYB Backpack** (the iOS counterpart is called BYB Remote). The default look is - the board picture and "Find Signal Generator". The classic RoboRoach skin (roach and backpack + the board picture and "Find Signal Generator". **Retro mode** (the 1.x roach and backpack pictures, "Find RoboRoach") is a switch in Settings, off by default and remembered between - launches. Protocol names (for example `ROBOROACH_FREQUENCY` and the advertised device name) stay + launches. The store listing does not mention Retro mode. Protocol names (for example `ROBOROACH_FREQUENCY` and the advertised device name) stay as the firmware defines them. 4. **`targetSdk` meets Google Play's current requirement** (API 36 since 2026-08-31; Google raises it every August). Raising it is its own PR with emulator smoke screenshots checked. diff --git a/README.md b/README.md index 2aded40..c44d713 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ BYB Backpack is the Bluetooth remote for the Backyard Brains RoboRoach backpack (a tiny signal generator): find the nearest one, swipe left or right to send a pulse train, and set frequency, -pulse width, duration, gain and random mode. Settings has a **RoboRoach skin** switch for the +pulse width, duration, gain and random mode. Settings has a **Retro mode** switch for the classic roach-and-backpack look. Package `com.backyardbrains.bybbackpack`. The iOS counterpart is called BYB Remote diff --git a/app/src/main/java/com/backyardbrains/bybbackpack/MainActivity.java b/app/src/main/java/com/backyardbrains/bybbackpack/MainActivity.java index a05ef32..7996628 100644 --- a/app/src/main/java/com/backyardbrains/bybbackpack/MainActivity.java +++ b/app/src/main/java/com/backyardbrains/bybbackpack/MainActivity.java @@ -55,7 +55,7 @@ public class MainActivity extends AppCompatActivity implements RemoteManagerCall private static final int SCREEN_SETTINGS = 1; private static final String PREFS = "byb_remote"; - private static final String PREF_ROBOROACH_SKIN = "roboroach_skin"; + private static final String PREF_RETRO_MODE = "retro_mode"; boolean mScanning = false; boolean mTurning = false; @@ -78,7 +78,7 @@ public class MainActivity extends AppCompatActivity implements RemoteManagerCall private OnBackPressedCallback mSettingsBackCallback; /* the pictures for the current skin: always-on base, and the overlay that lights up when connected */ - private boolean mRoboRoachSkin = false; + private boolean mRetroMode = false; private ImageView mBaseImage; private ImageView mConnectedImage; @@ -141,10 +141,10 @@ public class MainActivity extends AppCompatActivity implements RemoteManagerCall if (getSupportActionBar() != null) getSupportActionBar().setDisplayShowTitleEnabled(false); final SharedPreferences prefs = getSharedPreferences(PREFS, MODE_PRIVATE); - applySkin(prefs.getBoolean(PREF_ROBOROACH_SKIN, false)); - viewHolder.RoboRoachSkin.setChecked(mRoboRoachSkin); - viewHolder.RoboRoachSkin.setOnCheckedChangeListener((buttonView, isChecked) -> { - prefs.edit().putBoolean(PREF_ROBOROACH_SKIN, isChecked).apply(); + applySkin(prefs.getBoolean(PREF_RETRO_MODE, false)); + viewHolder.RetroMode.setChecked(mRetroMode); + viewHolder.RetroMode.setOnCheckedChangeListener((buttonView, isChecked) -> { + prefs.edit().putBoolean(PREF_RETRO_MODE, isChecked).apply(); applySkin(isChecked); }); viewHolder.goLeftText.setVisibility(View.INVISIBLE); @@ -303,7 +303,7 @@ public void onClick(View v) { @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main_menu, menu); - menu.findItem(R.id.menu_scan).setTitle(mRoboRoachSkin ? R.string.menu_scan_roboroach : R.string.menu_scan); + menu.findItem(R.id.menu_scan).setTitle(mRetroMode ? R.string.menu_scan_roboroach : R.string.menu_scan); if (mRemoteManager.isConnected()) { menu.findItem(R.id.menu_stop).setVisible(false); menu.findItem(R.id.menu_scan).setVisible(false); @@ -516,14 +516,14 @@ private void updateSettingsEnabled() { viewHolder.PulseWidth.setEnabled(connected && !random); } - /* BYB Backpack board (default) or the classic RoboRoach pictures; keeps the current connection look */ - private void applySkin(boolean roboRoach) { + /* BYB Backpack board (default) or Retro mode (the 1.x roach pictures); keeps the current connection look */ + private void applySkin(boolean retro) { final ImageView oldOverlay = mConnectedImage; - mRoboRoachSkin = roboRoach; - mBaseImage = roboRoach ? viewHolder.roachImage : viewHolder.boardImage; - mConnectedImage = roboRoach ? viewHolder.backpackImage : viewHolder.boardConnectedImage; - final ImageView otherBase = roboRoach ? viewHolder.boardImage : viewHolder.roachImage; - final ImageView otherOverlay = roboRoach ? viewHolder.boardConnectedImage : viewHolder.backpackImage; + mRetroMode = retro; + mBaseImage = retro ? viewHolder.roachImage : viewHolder.boardImage; + mConnectedImage = retro ? viewHolder.backpackImage : viewHolder.boardConnectedImage; + final ImageView otherBase = retro ? viewHolder.boardImage : viewHolder.roachImage; + final ImageView otherOverlay = retro ? viewHolder.boardConnectedImage : viewHolder.backpackImage; mBaseImage.setVisibility(View.VISIBLE); otherBase.setVisibility(View.GONE); @@ -647,7 +647,7 @@ static class ViewHolder { SeekBar PulseWidth; SeekBar Gain; SwitchCompat RandomMode; - SwitchCompat RoboRoachSkin; + SwitchCompat RetroMode; // Binds UI elements to local variables void bind(@NonNull Activity activity) { @@ -667,7 +667,7 @@ void bind(@NonNull Activity activity) { Frequecy = activity.findViewById(R.id.sbFrequency); PulseWidth = activity.findViewById(R.id.sbPulseWidth); RandomMode = activity.findViewById(R.id.swRandomMode); - RoboRoachSkin = activity.findViewById(R.id.swRoboRoachSkin); + RetroMode = activity.findViewById(R.id.swRetroMode); } } diff --git a/app/src/main/res/layout-land/activity_main.xml b/app/src/main/res/layout-land/activity_main.xml index fd854a6..47f4ec6 100644 --- a/app/src/main/res/layout-land/activity_main.xml +++ b/app/src/main/res/layout-land/activity_main.xml @@ -69,7 +69,7 @@ android:src="@drawable/board_connected" android:visibility="invisible"/> - + diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 377ba85..3b0c807 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -69,7 +69,7 @@ android:src="@drawable/board_connected" android:visibility="invisible"/> - + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 608259e..27796ab 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -33,7 +33,7 @@ Random Mode Frequency Pulse Width - RoboRoach skin + Retro mode OK diff --git a/fastlane/metadata/android/en-US/full_description.txt b/fastlane/metadata/android/en-US/full_description.txt index b2b70a8..926d213 100644 --- a/fastlane/metadata/android/en-US/full_description.txt +++ b/fastlane/metadata/android/en-US/full_description.txt @@ -2,7 +2,7 @@ Do you have a project that requires TTL signals? Are you tired of having to plug Using this app and the BYB Backpack, our lightweight, portable two-channel Bluetooth signal generator, you can remotely enable TTL signals! Simply connect to the standard 0.1" header, and you can control two independent square-wave pulse trains with a swipe of your finger on your phone. The BYB Backpack is a great addition to your electronics workbench! -Using this app, you choose the type of signal to generate: frequency, pulse width, duration, gain, and a random mode. Prefer the classic look? Turn on the RoboRoach skin in Settings. +Using this app, you choose the type of signal to generate: frequency, pulse width, duration, gain, and a random mode. Note: you need the BYB Backpack hardware from Backyard Brains to use this app. diff --git a/tool/emulator_smoke.sh b/tool/emulator_smoke.sh index c262077..fd944bb 100755 --- a/tool/emulator_smoke.sh +++ b/tool/emulator_smoke.sh @@ -66,15 +66,15 @@ if ! adb shell pidof "$PKG" > /dev/null; then exit 1 fi -# 3. Settings are reachable before connecting; turn on the RoboRoach skin and go back. +# 3. Settings are reachable before connecting; turn on Retro mode and go back. tap_node 'text="Settings"' || { tap_node 'content-desc="More options"' && tap_node 'text="Settings"'; } \ || { echo "::error::Could not open Settings (API $sdk)"; exit 1; } shot 3-settings -tap_node 'text="RoboRoach skin"' || { echo "::error::No RoboRoach skin switch in Settings (API $sdk)"; exit 1; } +tap_node 'text="Retro mode"' || { echo "::error::No Retro mode switch in Settings (API $sdk)"; exit 1; } adb shell input keyevent KEYCODE_BACK -shot 4-roboroach-skin +shot 4-retro-mode -# 5. Landscape layout (RoboRoach skin is still on: the choice is saved). +# 5. Landscape layout (Retro mode is still on: the choice is saved). adb shell settings put system accelerometer_rotation 0 adb shell settings put system user_rotation 1 shot 5-landscape