Android Q beta 5 won’t let you use gesture navigation on third-party launchers
Google first introduced gesture navigation in Android 9 Pie with what’s now known as the 2-button navigation. In Android Q beta 2, Google revamped the gestures to be more fluid and take up less space. Arguably more iPhone-like, Android Q’s new gestures are a substantial improvement over Android Pie‘s gestures, but there are still improvements to be made. In the upcoming Q beta 5 release, Google confirmed they will change the gesture behavior for navigation drawers, but an early leak also shows that there will be a new Assistant gesture hint and animation as well as a back sensitivity option.
Now, we have more information about how Android Q beta 5 will change gesture navigation. The same Redditor who leaked the new Assistant gesture changes also confirmed that third-party launchers are now incompatible with gesture navigation. This is unsurprising considering that gesture support for third-party launchers has always been a bit wonky. Since Android 9 Pie, the recent apps component is integrated into the default system launcher. Android Q’s new gesture bar makes switching between apps in the recent apps overview really fluid, but this has resulted in making third-party launcher support even buggier since Q beta 3. It seems that Google has decided to just prevent users from enabling gesture navigation when the default launcher is changed to a third-party app.
The screenshots above, posted by /u/Charizarlslie, show what happens when you try to change the default launcher with gesture navigation enabled. When the default launcher is changed, the navigation style is forced back to the 3-button navigation and the gesture navigation option becomes inaccessible. We examined the SystemUI APK from Q beta 5 and confirmed that the NavigationModeController class has added a method to disable gesture controls when the default launcher is switched to a non-system app.
Interestingly, it’s possible to force enable gesture controls when a third-party launcher is made default by issuing the following ADB command:
adb shell cmd overlay enable com.android.internal.systemui.navbar.gestural
This is because the 3 gesture options are all toggled by overlays, so Google likely didn’t foresee users enabling the overlay manually.
Thanks to PNF Software for providing us a license to use JEB Decompiler, a professional-grade reverse engineering tool for Android applications.