Tap, Tap v1.0 : Restarting from scratch

Kieron Quinn
5 min readJan 23, 2022

--

A year and a half ago, I launched Tap, Tap: a port of the double tap on back gesture from Android 11’s developer preview on Pixels to any Android 7.0+ device with a gyroscope — without root or modifications. Since then, Google silently dropped and then re-engineered the feature to be released as “Quick Tap” in Android 12, to much fanfare with a partnership with Snap, makers of Snapchat.

Tap, Tap meanwhile gained a number of actions, “gates” (restrictions on when the gesture can run actions), community support including Tasker integration, and wild ideas on how the feature can be used; ranging from unlocking a car to catching a Klefki in Pokémon Go. But with Android 12’s new gesture feature, it needed a rewrite of its core, so I took the opportunity to rewrite the whole app, incorporating Material 3, a bunch of new features, and even more previously device-exclusive features for all.

New UI

Immediately obvious when launching the new app, everything has been redesigned. Much like the rewrites for DarQ and DiscoverKiller, as well as Classic Power Menu, Tap, Tap 1.0 uses a Material 3 theme, including adjusting to your wallpaper colour. Large titles are used throughout to improve reachability on tall devices; although on pages where space is a premium, such as the action and gate editing pages, the title bar is locked-collapsed to give more room during re-ordering of options.

The old and new Double Tap Actions pages

Tap, Tap’s UI is far more complex than any of my other apps, and required a number of new UI styles, giving prominence to important elements such as switches and important menu options, and splitting the long list of settings into separate pages.

The settings page has been split into tabbed sections — Gesture controls, settings and other, app related options.

New Actions & Gates

Tap, Tap now has over 50 actions and over 20 gates.

New actions in 1.0 include:

  • Camera Shutter: Take a photo in supported cameras*
  • Quick Setting tile: Simulates a click on a quick setting*
  • App Shortcut: Launches an App Shortcut, such as opening a WhatsApp chat (usually a deep link)*
  • Device Controls: Opens the Device Controls for controlling home devices (Requires Android 12)**
  • Quick Access Wallet: Opens the Quick Access Wallet with your cards (Requires Android 12)**
  • Quick Tap to Snap: Launches Quick Tap to Snap (see below)***

Gate changes include:

  • New Low Battery gate: Prevent Tap, Tap from listening for the gesture when low on battery
  • Improvements to the keyboard detection gate to prevent accidental activation when typing

* Requires Shizuku, which works without root

** Requires root access

*** Requires root or an officially compatible device, see below

“Columbus” & Low Power Mode

In the early Android 11 developer previews, Google added code for a hidden feature called “Columbus”, a double tap gesture that ran actions, backed by TensorFlow machine learning models — this is the code that Tap, Tap is built on. However, Google ended up shelving the feature, and it never made it into Android 11, despite its popularity as Tap, Tap.

In Android 12, it made a re-appearance, but the code is now dramatically different. In 11, detection of the gesture was done entirely in SystemUI, the system app that provides the status bar, navigation bar and other related UIs. In 12, the detection was moved into a new “CHRE” (Context Hub Runtime Environment) module, running on the low-power CPU of Pixel devices — known as a Nanoapp. This has vastly improved battery consumption on officially supported devices, but does leave Tap, Tap with a slight problem — Nanoapps are built specifically for a CPU and firmware, and therefore cannot be ported.

Instead, Tap, Tap now supports two modes: running the detection in the Tap, Tap app, which is more battery intensive, or running via the low-power Nanoapp on officially supported devices (Requires Shizuku).

Google did however include some new TensorFlow models in Android 12, and despite being officially unusable on the devices they are built for, they are included in Tap, Tap 1.0. They are more refined than the original models, requiring a more intentional “tap” rather than a “slap” that the original models accepted, and can be found in the app as “Newest” models, while the older models are still available as “Legacy”.

Important Note:

The use of the new low power mode in Android 12 with supported devices without root (using Shizuku) may be short-lived, as Google are changing which apps are able to access the CHRE in Android 13. This feature may require root in the future.

Tap, Tap 1.0 also leverages a fully reverse engineered version of Columbus, built from a hybrid of the Android 11 code and unused Android 12 code. Previously, a semi-decompiled version of Columbus was used, resulting in a number of hacks to improve compatibility and add features. The new version changes all this, and implements previous hacks properly, meaning less crashes, a more stable service and more features available. All the code is also available for everyone to see — Tap, Tap is now entirely open source, no first party dependencies are included as bundled JARs.

Quick Tap to Snap

As mentioned above, for Android 12, Google partnered with Snap, makers of Snapchat. Quick Tap to Snap uses the Quick Tap feature on supported Pixel devices to open Snapchat, allowing for easy access to the camera to take photos in the moment. Unlike simply opening the app however, Quick Tap to Snap also works while the device is locked, allowing taking Snaps before unlocking the device to edit & send them.

While Quick Tap to Snap is currently a Pixel exclusive (and will work with Tap, Tap without root on officially supported devices — see in the app for more details), it is possible to make it work on unsupported devices, with root access. Simply add the “Quick Tap to Snap” action in Tap, Tap and the app will guide you through the rest.

Using Quick Tap to Snap with Tap, Tap. Note the lack of a Bitmoji in the top left of Snapchat, signifying the “secure” state of the locked UI

Download

You can get Tap, Tap 1.0 on GitHub, as usual. Download from the Releases page. Alternatively, if you are using an older version, you will be prompted by the app to update.

Feature Requests & Issues

Got an idea for Tap, Tap or found an issue with this new version? Check out the section on the readme document on GitHub for info on requesting a feature or reporting an issue.

--

--