CHANGELOG.md (10693 bytes)
1 # Changelog 2 3 ## 0.1.0-beta - 2026-09-21 4 5 Version code 16. The first beta. The alpha versions end here. 6 7 - **Updates: Ink Update.** Rebind has no internet permission, so it cannot 8 look for a new version. Ink Update, an open source app of its own, does 9 that: F-Droid first, then Google Play (it leaves an app that Google Play 10 installed to Google Play), then GitHub. It makes a notification and opens 11 the page. Setup has an "Updates" row that installs or opens it. The build 12 for direct install carries it. 13 - The build for direct install carries Ink Dim too. Hardware hacks lists it. 14 - The lists of carried apps are named "Extensions". 15 16 - **Settings are safe across versions and across an uninstall.** An update 17 always kept the settings: they are in the data of the app. An uninstall 18 removed them. Now Android asks at uninstall whether to keep the data 19 (`hasFragileUserData`), and Rebind keeps an automatic copy of the settings in 20 `Documents/Rebind/rebind-settings.json`, which an uninstall does not touch. 21 Import opens that folder. `StoredFormatTest` holds the texts that every 22 0.0.x version stored, so a new version cannot stop reading them unseen. 23 24 ## 0.0.15-alpha - 2026-09-21 25 26 Version code 15. 27 28 - **The Recents button opens Ink Recents.** Android does not let an app take 29 the place of the recent-apps screen of the system. Rebind now sees that 30 screen open (the task manager of the Viwoods launcher, or the stock Android 31 one), closes it, and opens Ink Recents. It works for the Recents button of 32 the bar, for the swipe, and for the Recents action. Home and recents has the 33 switch "Recents button opens Ink Recents". It is on when Ink Recents is 34 installed. Tests: `SystemRecentsTest`. 35 36 ## 0.0.14-alpha - 2026-09-21 37 38 Version code 14. 39 40 - **Permissions covers the extensions again.** New items, each only where it 41 can apply: "Install apps from Rebind" (the build that carries apps), "Ink 42 Recents: app usage data" (when Ink Recents is installed), and "Home screen" 43 to choose inkOS or ThinkLauncher (when one is installed). "Set up what is 44 missing" walks through them too. The main screen still counts only the 45 grants of Rebind itself. 46 - **Fix: voice typing said "The microphone is not allowed" although it was 47 allowed.** Android gives the microphone to an app only while that app is in 48 use. The Viwoods firmware does not count a speech app as in use while it 49 listens in the background for another app, so Whisper was refused (error 50 9). Rebind now goes to the speech screen of the speech app, where that app 51 is in use, takes the words from its result, and remembers the route. 52 Regression test: `DictationRouteTest`. 53 - **Fix: "Let Rebind get the Power hold" opened nothing.** Android has no 54 request dialog for the assistant role. The row now opens the settings page 55 "Default digital assistant app". 56 57 ## 0.0.13-alpha - 2026-09-21 58 59 Version code 13. 60 61 - **Home screens: inkOS and ThinkLauncher in place of CLauncher.** The build 62 for direct install carries inkOS v0.6 and ThinkLauncher v3.0, both made for 63 e-ink, both GPL-3.0, each the release file of its maker and not changed. 64 ThinkLauncher has the internet permission of its own. Rebind still has 65 none. 66 67 - **Change a button from the Done step.** "Change what it does" and "Change 68 how you press it" go back to those steps with the button kept. Back on the 69 Done step goes to the actions too. Tests: `Route.back`. 70 - **Show or hide the button bar** is an action (build for direct install). 71 Android 16 has no auto-hide for the three-button bar, so a button does it. 72 It uses the shell commands of the Navigation screen and keeps the gestures 73 as they are. The allow step asks for shell access for this action and for 74 the light actions. 75 - **AI voice prompt** is an action of its own (Viwoods). It is what the 76 firmware does on a hold of the AI key: the Viwoods AI screen, told to start 77 its voice prompt. It needs the Viwoods AI account, as the stock hold does. 78 A component launch can now carry text extras (`pkg/class?key=value`). 79 Tests: `ComponentPayloadTest`. 80 - **Ask when the user tries it.** The first run asks for every grant once. 81 After that the app asks at the moment something is missing: after a menu is 82 saved, after the Power switch on the Navigation screen, when a Power press 83 arrives while button remapping is off, and when voice typing starts with no 84 microphone grant. Before, those places showed a short message or nothing. 85 - **Fix: system Back always closed the button setup.** From Android 13 the 86 system does not call `onBackPressed` for an app with this target version. 87 The setup now registers the Back callback, and Back goes one step back. 88 Checked on the reader: Done, actions, how to press, main screen. 89 90 ## 0.0.12-alpha - 2026-09-21 91 92 Version code 12. 93 94 - **Apps of other makers.** The build for direct install carries two apps and 95 can install them: CLauncher v5.3.0 (the release APK of its maker, not 96 changed) and Ink Recents 0.1.1 (open source). Home and recents lists them. Android asks before 97 each install. The APKs are in the build, because Rebind has no internet 98 permission. The Google Play build carries nothing and has no install 99 permission: Google Play does not allow that here. It opens the page of the 100 maker. 101 - Whisper 3.7 (speech to text on the device, MIT, the F-Droid build) is the 102 third app that the build for direct install carries. Voice typing lists it. 103 - **The home screen of Rebind is gone**, with its settings screens. CLauncher 104 is the home screen now, as its maker released it. An old settings file that 105 has home screen settings still imports. Those settings are skipped. 106 - **Recent apps is a program of its own: Ink Recents** (open source, 107 github.com/equwal/ink-recents). Rebind no longer has that screen, and no 108 longer asks for usage access or `KILL_BACKGROUND_PROCESSES`. The Recent apps 109 action opens Ink Recents. Old bindings keep working. Where Ink Recents is 110 not installed, the action opens the screen that offers it. 111 - Hardware hacks: the double tap of Power is one row. Its way in is the camera 112 intent or the wallet intent, as the device decides. There is no wallet 113 button. 114 - The setup of a Power combination no longer says the same thing twice. 115 116 - **Hardware hacks** is a tile on the main screen with a screen of its own: 117 hold Power (assistant role), double tap Power (camera intent), the wallet 118 button, the full Power button (shell access), extra-dim light, and the 119 button settings of the device. Advanced no longer holds them. 120 121 ## 0.0.11-alpha - 2026-09-21 122 123 Version code 11. 124 125 - **Fix: a Camera key in the drawing of a device that has none.** The Viwoods 126 reader declares a camera key to Android and has no such button. Detection 127 put the declared key in the drawing. The drawing now shows only the buttons 128 that the device profile knows, and a button that was really pressed in 129 normal use. The Detect screen still lists what the device declares, and 130 marks a key that was never seen. Regression test: `DeviceKeysTest`. 131 The double tap of Power uses the camera *intent* of Android. It needs no 132 camera button. 133 134 ## 0.0.10-alpha - 2026-09-21 135 136 Version code 10. 137 138 - **No Google Play, no lock.** On a device where the Google Play app is not 139 installed or is turned off, the app is free and complete. There is no way 140 to buy there, so there is nothing to lock. The licence screen says "Free on 141 this device". A bought licence still comes first. Tests: `LicenseDecideTest`. 142 - The build for direct install has a tip link on the Licence screen 143 (ko-fi.com/truex). A tip unlocks nothing. The Google Play build has no such 144 link, because Google Play does not allow it. 145 - The reasons in the allow step are hints of three to seven words. The app 146 says "double tap" for Power too. 147 148 ## 0.0.9-alpha - 2026-09-21 149 150 Version code 9. 151 152 - **New name: Rebind.** The name says what the app does, and it has the words 153 that buyers type in Play search. The package id stays `dev.equwal.assistkey`, 154 so an update keeps all settings. The settings file keeps its `AssistKey` 155 marker, so old exports still import. 156 - **Recent apps.** Swipe up closes the app. Swipe down closes all the others. 157 One swipe sideways moves one card in one step, with no glide. When the screen 158 opens, the card jumps up and sideways once to show the swipes. "Close all but 159 this app" and "Close all" are two tall buttons with space between them. 160 Closing works without shell access too: Android ends the background 161 processes of the app (`KILL_BACKGROUND_PROCESSES`, a normal permission). 162 - **Hardware hacks** have their own box under Advanced: hold Power, double 163 press Power, the wallet button, the full Power button, extra-dim light, and 164 the button settings of the device. 165 - **Ask when it is needed, everywhere.** A binding made under Advanced now opens 166 the same "allow" step as the guided setup, when something is missing. 167 - **The drawing is the main screen.** The device and its buttons are on the 168 first screen. Each button shows what it does now. Tap a button to set it up. 169 Tap two buttons to set up a combination. 170 - **Button order.** A device profile gives the order of its buttons from the 171 top down. Viwoods AiPaper: Power, Volume up, Volume down, AI key. 172 - **On-screen button.** A new button that needs no hardware: a small round 173 button that floats over every app. Tap it to do the action, drag it to move 174 it. The key filter draws it, only while it has an action. Android's own 175 accessibility button is not used, because Android shows that button to every 176 user as soon as a service asks for it. 177 - **More ways to press.** Step two lists tap, double tap, triple tap, hold, 4 178 taps and 5 taps, and an Advanced row with every gesture of the button. 179 - **More actions.** Step three adds Lock screen and Screenshot, and an Advanced 180 row with every action. 181 - **Ask when it is needed.** A Power press that Android hides from apps is now 182 offered where the build can have shell access. The app then asks for shell 183 access, which opens the full Power button. After a double press of Power is 184 set up, the app offers the wallet way for devices that use it. 185 - **Device detection.** At first start the app finds which buttons the device 186 has, and what the device can do. It never asks the user to press a button. 187 Advanced > Detect this device shows the result. The device report has it too. 188 - **Less text.** All "More about this" rows are gone. Notes are one short 189 sentence. The accessibility disclosure is short. Google Play requires it, so 190 it stays. 191 - Tests: selection rules of the drawing, the on-screen button route, shell 192 access as a need, detection parser and round trip.