Inspiration
PixelGesture began as an offline open-source Android gesture project. This extension keeps that original edition separate and explores named local setups for different activities, with access verified by RevenueCat rather than a local Premium switch.
What it does
Configure an edge gesture to an Android action. Actual API 36 emulator recordings show four separately configured examples: Recent apps, screenshot, an already-running Clock shortcut and camera preview. The camera scene is emulated; no photo or physical camera is used. Back, Home, volume and other actions are configurable, but this film does not certify each one on every device. The Home illustration is app-only gesture practice; it does not perform system actions. The native interface follows the Android system light/dark theme with an optional app-only Follow system / Light / Dark choice in 0.6.2. The movie accurately shows system theme changes on vc8.
The separate NextGen test edition supports up to eight named local profiles. Saving and switching require active profiles access returned by RevenueCat CustomerInfo. A confirmed switch replaces local bindings and pauses gestures until resumed. Official Test Store product loading, cancelled/failed/successful purchases, restore and access rechecking have explicit states. The displayed $1.99 is a simulated Test Store price, not a real charge.
How I built it
This extends the pre-existing GPL-3.0-only Java project, baseline 8d59d18574e9aee31f61148c83853d40e633d082. The event extension adds entitlement-backed local profiles, official Test Store integration, validated configuration import/export and runtime checks. A separate application ID isolates this edition from the offline original. Profiles and bindings stay local. Public source excludes task-local test key configuration; reviewers supply their own documented Test Store setup. No server secret key or real store is required for this demo.
Challenges and learning
Real Android execution revealed SDK initialization and Android dispatcher requirements that pure JVM tests could not detect. The test integration lets the approved test key infer Test Store and checks it at runtime. Gesture QA also exposed Android Back interception and stale service-status behavior; these were corrected and retested. The frozen build adds accurate networking/privacy wording, backup exclusions, language application and native click accessibility handling.
Validation and demonstration
The 0.6.2/code9 build has 53 passing JVM tests; debug/release APK and release AAB builds pass, and Lint reports 0 errors/9 warnings. Actual API 36 ARM64 emulator checks cover Test Store entitlement gating, cancel/failure/success, local profile save/switch, same-customer restore/restart, and Recents across apps and after restart. Disabling accessibility prevents the gesture from opening Recents and remains disabled across restart. Additional four-action recording proof matches the same frozen APK. Ordinary input-interruption endurance, OEM behavior and broad API/navigation-mode coverage are not established by these tests.
The 30-second film combines labelled editorial projections of genuine UI with real emulator clips at source 1x. Cuts separate independently configured bindings. It retains the actual Test Store confirmation-to-success wait and shows a profile replacement confirmation. It does not claim one swipe triggers all four actions, instant cold startup, a real camera scene, or physical-phone certification. Original synthesized audio is editorial sound. The temporary accessibility service was revoked, the gesture master switch was turned off, and the QA emulator was stopped after verification.
Privacy
The original offline edition remains separate. The NextGen debug SDK sends a random synthetic test-user ID, simulated purchase/access state and automatic app/device/request metadata; the service sees the network IP. Diagnostics and automatic device-identifier collection are disabled. Gesture profiles, private files, school email, real payment data and server secret keys are not provided to RevenueCat. Accessibility is necessary only for chosen system gestures, not billing/profile QA.
What's next
Use physical-device feedback to refine edge ergonomics, verify OEM/background behavior, and maintain the original offline project as useful open source. Production store payments, a release APK and broad compatibility claims require separate work and decisions. No users, revenue, customer traction or award outcome is claimed.
Testing instructions
Follow docs/NEXTGEN.md, docs/INSTALL.md and docs/TESTING.md in the frozen source. Use JDK 17/AGP 8.6.1/Gradle 8.10.2 and the documented Android SDK setup. Create your own RevenueCat Test Store setup with profiles entitlement, profiles_lifetime_test non-consumable and a default lifetime offering, then keep the public test SDK key in ignored rc-test.properties. Never use a server secret or real-store credentials. Install the debug build on your own disposable test emulator. Profiles/billing do not require accessibility. Test Store restore rechecks the same synthetic customer; losing its ID is not account recovery. Unconfigured/release builds do not grant paid access.
Log in or sign up for Devpost to join the conversation.