[Module][3.3.1] QuickSwitch - Quickstep enabler for supported launchers

Search This thread

Minotaur

Senior Member
Latest Lawnchair Magisk module supports it, but the recents menu looks exactly the same as the default (Trebuchet) one.
Installed the zip file of 12.1a3, however QuickSwitch still reports it to not be compatible with Android 12.
- EDIT- Been experimenting with the order I install modules. I was able to get Lawnchair12.1a3 as the recents provider by installing its magisk module first, and then the Quickswitch magisk module, but recents didn't work at all andLawnchair threw up an error. Still trying some other combinations.

- EDIT 2- Success! I've used an ap of Lawnchair 12.0a3 (12.1a3 didn't work) along with the Quickswitch Magisk module and have working recents again. Thanks.
- EDIT 3- I've updated to the latest 12.0 build I could find and it's will working. Going to any 12.1 build breaks it though.
 
Last edited:
  • Like
Reactions: arvindgr and 4qx

Sneakdovi

Senior Member
Dec 5, 2014
470
38
Hi, I'm on OnePlus 8P with A13 (C20): lawnchair + quickswitch.
I don't understand why I'm unable to use One Hand Mode since I decided to format everything and perform a clean install. I can't figure out how now I am in the same configuration as before resetting with MSM tool but it seems that lawnchair (or quickswitch) disables that stock gesture that used to work before resetting.

Is there a solution or an app that can open (through gesture) that system function?
 

FoxyDrew

Senior Member
Aug 18, 2014
1,224
506
East Taunton
Installed the zip file of 12.1a3, however QuickSwitch still reports it to not be compatible with Android 12.
- EDIT- Been experimenting with the order I install modules. I was able to get Lawnchair12.1a3 as the recents provider by installing its magisk module first, and then the Quickswitch magisk module, but recents didn't work at all andLawnchair threw up an error. Still trying some other combinations.

- EDIT 2- Success! I've used an ap of Lawnchair 12.0a3 (12.1a3 didn't work) along with the Quickswitch Magisk module and have working recents again. Thanks.
- EDIT 3- I've updated to the latest 12.0 build I could find and it's will working. Going to any 12.1 build breaks it though.
Lawnchair 12.0 builds are for Android 12.0. 12.1 builds are for Android 12.1....lol. Nothing crazy going on here, you must be on Android 12.0, not 12.1

Real question is what launchers have support for Android 13
 
  • Like
Reactions: VicKrypt
Dec 7, 2015
16
0
Peace to all!
OnePlus 8t A11
I ran into a problem that came up after enabling - customizing the feature bar in gravitybox.

And since then quick switch won't install on custom launchers or even on lawnchair 12.1.0 (or any version)

I have no way to use MSM to restore the full original firmware because it gives some kind of error (this is of course off topic), and when it gives an error or failure, my Oneplus 8t does not turn on at all, but only after I disconnect and then connect the battery , it will turn on.

My question is if there are any other options to make the quick switch perfectly understand that my A11 is perfect for Lawnchair 12.1.0. (or any version). Because I didn't even update the quick switch that was installed from the magisk repository. It worked fine until I touched one feature in gravitybox
 

xerel89

Senior Member
Jul 20, 2022
189
33
Austria 🇦🇹
I have problems with the installation with lawnchair I got everywhere a error log when I flash the zip file

FATAL EXCEPTION: main
Process: app.lawnchair, PID: 29681
java.lang.NullPointerException: Invalid Surface(name=Surface(name=Task=43)/@0x77b3f31 - animation-leash of recents_animation)/@0xeebfce1, mNativeObject is null. Have you called release() already?
at android.view.SurfaceControl.checkNotReleased(SurfaceControl.java:1678)
at android.view.SurfaceControl.access$2600(SurfaceControl.java:89)
at android.view.SurfaceControl$Transaction.checkPreconditions(SurfaceControl.java:2693)
at android.view.SurfaceControl$Transaction.setAlpha(SurfaceControl.java:2953)
at com.android.systemui.shared.system.SyncRtSurfaceTransactionApplierCompat$SurfaceParams.applyTo(SyncRtSurfaceTransactionApplierCompat.java:361)
at com.android.systemui.shared.system.SyncRtSurfaceTransactionApplierCompat.applyParams(SyncRtSurfaceTransactionApplierCompat.java:158)
at com.android.quickstep.util.TransformParams.applySurfaceParams(TransformParams.java:214)
at com.android.quickstep.util.TaskViewSimulator.apply(TaskViewSimulator.java:302)
at com.android.quickstep.views.RecentsView.redrawLiveTile(RecentsView.java:3410)
at com.android.quickstep.views.RecentsView.dispatchDraw(RecentsView.java:690)
at android.view.View.draw(View.java:22707)
at com.android.launcher3.PagedView.draw(PagedView.java:1778)
at com.android.quickstep.views.RecentsView.draw(RecentsView.java:857)
at android.view.View.updateDisplayListIfDirty(View.java:21579)
at android.view.View.draw(View.java:22435)
at android.view.ViewGroup.drawChild(ViewGroup.java:4528)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4289)
at com.android.launcher3.dragndrop.DragLayer.dispatchDraw(DragLayer.java:517)
at android.view.View.updateDisplayListIfDirty(View.java:21570)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4512)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4485)
at android.view.View.updateDisplayListIfDirty(View.java:21535)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4512)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4485)
at android.view.View.updateDisplayListIfDirty(View.java:21535)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4512)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4485)
at android.view.View.updateDisplayListIfDirty(View.java:21535)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4512)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4485)
at android.view.View.updateDisplayListIfDirty(View.java:21535)
at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:534)
at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:540)
at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:616)
at android.view.ViewRootImpl.draw(ViewRootImpl.java:4531)
at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:4251)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3374)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2179)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:8793)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1037)
at android.view.Choreographer.doCallbacks(Choreographer.java:845)
at android.view.Choreographer.doFrame(Choreographer.java:780)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1022)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.app.ActivityThread.main(ActivityThread.java:7870)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
 

Pshemo__

Senior Member
Jul 29, 2015
666
275
Reda
OnePlus 8T
Hi, I'm on OnePlus 8P with A13 (C20): lawnchair + quickswitch.
I don't understand why I'm unable to use One Hand Mode since I decided to format everything and perform a clean install. I can't figure out how now I am in the same configuration as before resetting with MSM tool but it seems that lawnchair (or quickswitch) disables that stock gesture that used to work before resetting.

Is there a solution or an app that can open (through gesture) that system function?
Lawnchair replaces the stock One-handed mode gesture action with Notification pulldown. So the gesture works but has different effect. No clue about how to change it
 

Top Liked Posts

  • There are no posts matching your filters.
  • 1
    vous en savez une tonne sur les lanceurs, en espérant obtenir des suggestions
    Pourriez-vous recd un lanceur avec un verrouillage d'application récent, s'il vous plaît ? J'utilise le lanceur Havocs A11 depuis longtemps et je remplace souvent tous les lanceurs A11 par celui-ci très bien lol
    Je les ai installés manuellement (autorisations vérifiées, oris sauvegardés, récupération utilisée pour les restaurer manuellement) car le lanceur nusas n'a pas été détecté. seul le lanceur derpfests + quickswitch a fonctionné pour moi, le reste soit 1 ou les deux n'arrêtait pas de planter
    quelle version Android utilisez-vous il y a le lanceur corvus pour A13 qui vient de sortir...
    1
    Latest launchers for A13 only to flash with Magisk.
    Note: Delete all Launcher before flash Keep only stock launcher and take your precautions if bootloop (Magisk bootloop protector/backup) No need to use quickswitch...
    Delete all launchers? Dude are you serious ? Why? I'm using the pixel launcher that came stock with my custom ROM. If I delete it I don't know where to get tit back? Do I really have to delete it? I just want to try out different launchers
  • 149
    QuickSwitch - Quickstep enabler for supported launchers

    QuickSwitch is a Magisk module which systemlessly allows supported launchers to access the recents (QuickStep) APIs. It's future proof, detects which launchers are capable of being a recents provider, and is fairly simple to use.

    Requirements:
    - Android Pie+
    - The latest version of Magisk
    - A launcher which can be used as a recents provider on your specific android version.

    Installation:
    To use the module, simply follow the instructions:

    1. Install the latest QuickSwitch apk from the Telegram channel or GitHub releases.
    2. Open the QuickSwitch app that was installed.
    3. Select a different launcher as your recents provider.
    4. Reboot.
    5. Verify your new recents provider is correct.
    6. Set the new recents provider as the default launcher.
    7. Profit.

    After switching providers and rebooting, make sure the current provider is the default home app.

    To switch providers after the initial install just open the app, select a new provider and reboot.

    Updating:
    To update, just update the app when a new release is published, or check the Magisk app as it should fetch updates too.

    Uninstallation:
    To uninstall the module, use the bin icon in magisk manager. Your recents provider will go back to default and your launcher will return to being a user app, after that, just uninstall the quickswitch app

    Logging:
    QuickSwitch saves all its logs to /data/adb/modules/quickswitch/logs/ and /sdcard/Documents/quickswitch/ all logs belonging to QuickSwitch begin with quickswitch. If you have any issues with the module send all log files in a compressed archive.

    Compatibility:
    As stated earlier, the QuickSwitch app auto-detects which launchers are compatible so it's going to be difficult to say a definitive list. But for an easy explanation, I'll just say that almost all stock Pie+ launchers will work as long as they are either ported to other devices or are installed by default on your device.
    As for custom launchers, you'll have to install them and see if they appear in the QuickSwitch app.

    Notes:
    - QuickSwitch doesn't add support for launchers, launchers need to support QuickSwitch. Because of this, a full list of compatible launchers will not be provided as the app autodetects which launchers are compatible.
    - Nova Launcher is NOT compatible with QuickSwitch and never will be unless they decide to add support for the Razer Phone natively.

    Misc:
    - You can grab the source for the module here

    The SystemUI option (removed in Android 10+) will grant you Oreo style recents.

    Credits:
    - @paphonb for the QuickSwitch app and the initial concept and idea of a universal Quickstep enabler.

    - @osm0sis for assistance with getting 3.x.x to work without having to go permissive, and for his and @topjohnwu's zipsigner

    - The Lawnchair and Hyperion team's for initial testing of the module.

    Download:
    Download the latest version here.

    Donations:
    - If you wish to donate to @paphonb for creating the QuickSwitch app you can do so here.
    - Or if you wish to sponsor me on GitHub for making the module, scripts, and handling support you can do so here.

    Release details:
    Current version: 3.3.1
    Last updated: 19-06-2022

    Created: 28-12-2018
    41
    FAQ

    What does this module do?
    The only thing this module does is changes which launcher controls your recents

    Can I get app actions, or recents text/picture selection with this module?
    This module doesn't control what features a launcher has. All it does is grant the launcher more permissions and enable a launchers access to recents.

    How to get Oreo/Oreo Grid recents?
    For Oreo recents simply set your recents provider to SystemUI and reboot.
    If the SystemUI option doesn't show up it's because you're on Android 10 and the Oreo recents fallback has been removed from AOSP.

    For grid recents follow these instructions:
    1. Set the recents provider to SystemUI
    2. Tap the three dot menu and toggle "Enable grid recents" to on
    3. Reboot.

    The FAQ will grow as more questions come to mind.
    24
    QuickSwitch 3.0.0 released

    Changelog:
    - completely rewrite the app and the module backend. Now the app uses a shell binary as the backend to
    remove the need for bootscripts
    - re-add the $MODDIR/product/overlay install path as the Magisk issue has been fixed
    - added a check for MIUI which will abort the installation of the module


    Been a while since an update, but a few days short of the 1 year anniversary of when QuickSwitch was first released, we finally release 3.0.0

    Sent from my Google Pixel 3a XL using XDA Labs
    18
    QuickSwitch 3.0.4 released

    Samsung users rejoice. With the help of @osm0sis I've removed the need for permissive selinux while the backend script ran, so there are no longer any dependencies on that.

    I'm now also signing the overlay using zipsigner compiled by osm0sis so if there were any issues I wasn't aware of since the release of 3.x.x and they were caused by an unsigned overlay, they're now fixed. As far as I know however it shouldn't have been an issue.

    Another thing to take note of is that I've talked to an omni rom developer and they're doing something similar to what certain pixel experience device trees have done and the overlay won't work on it. I've had a tester try omni and I've given them a few test builds in an attempt to work around it but from what I can tell it's just not possible to fix it on my side. (Said attempted fixes aren't in QuickSwitch, and won't be added btw)

    I've not blocked omni, just incase it works on some devices but don't get your hopes up if it hasn't worked in the past.

    Changelog:
    - remove selinux dependant commands in favour of grepping packages.xml and listing the contents of /data/app to find launcher dirs
    - sign the overlay again
    - I'd like to thank @osm0sis for helping with this update

    Sent from my Google Pixel 3a XL using XDA Labs
    17
    QuickSwitch 3.0.5 released

    Changelog:
    - fix for the launcher not getting copied over and aborting recents provider change
    - fix dalvikvm invokation for Android 10 (-Xnodex2oat is removed upstream)

    The last change is just an update to zipsigner

    Sent from my Google Pixel 3a XL using XDA Labs