mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-03-03 17:36:49 +00:00
Always recreate TaskbarActivityContext
- Add ENABLE_TASKBAR_NO_RECREATION flag When the flag is turned on, * Always destroy and recreate * Move task bar drag layer lifecycle from TaskbarActivityContext to TaskbarManager * Wrap the drag layer into a fullscreen root view Note that in order to preserve the window across multiple TaskbarActivityContext creations, the inset types and ids must stay the same, so it's extracted out. Bug: 274517647 Test: Fold and unfold a few times. Use a few applications. Make sure the task bar is visible and in the right place (tested with ENABLE_TASKBAR_NO_RECREATION and FLAG_HIDE_NAVBAR_WINDOW both on, both off, and one on and one off) Change-Id: Ic3f0aa3d056fe178a53b76b2ad6cc6b9bffd5898
This commit is contained in:
@@ -15,15 +15,28 @@
|
||||
*/
|
||||
package com.android.launcher3.taskbar;
|
||||
|
||||
import static android.view.InsetsFrameProvider.SOURCE_DISPLAY;
|
||||
import static android.view.WindowInsets.Type.mandatorySystemGestures;
|
||||
import static android.view.WindowInsets.Type.navigationBars;
|
||||
import static android.view.WindowInsets.Type.systemGestures;
|
||||
import static android.view.WindowInsets.Type.tappableElement;
|
||||
|
||||
import static com.android.launcher3.taskbar.LauncherTaskbarUIController.DISPLAY_PROGRESS_COUNT;
|
||||
|
||||
import android.app.PendingIntent;
|
||||
import android.os.Binder;
|
||||
import android.os.IBinder;
|
||||
import android.view.InsetsFrameProvider;
|
||||
|
||||
/**
|
||||
* State shared across different taskbar instance
|
||||
*/
|
||||
public class TaskbarSharedState {
|
||||
|
||||
private final IBinder mInsetsOwner = new Binder();
|
||||
private static int INDEX_LEFT = 0;
|
||||
private static int INDEX_RIGHT = 1;
|
||||
|
||||
// TaskbarManager#onSystemUiFlagsChanged
|
||||
public int sysuiStateFlags;
|
||||
|
||||
@@ -48,4 +61,14 @@ public class TaskbarSharedState {
|
||||
|
||||
// Taskbar System Action
|
||||
public PendingIntent taskbarSystemActionPendingIntent;
|
||||
|
||||
public final InsetsFrameProvider[] insetsFrameProviders = new InsetsFrameProvider[] {
|
||||
new InsetsFrameProvider(mInsetsOwner, 0, navigationBars()),
|
||||
new InsetsFrameProvider(mInsetsOwner, 0, tappableElement()),
|
||||
new InsetsFrameProvider(mInsetsOwner, 0, mandatorySystemGestures()),
|
||||
new InsetsFrameProvider(mInsetsOwner, INDEX_LEFT, systemGestures())
|
||||
.setSource(SOURCE_DISPLAY),
|
||||
new InsetsFrameProvider(mInsetsOwner, INDEX_RIGHT, systemGestures())
|
||||
.setSource(SOURCE_DISPLAY)
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user