Dismisses system overlays for Home intent.

Test: Used Facebook chatheads (not system bubble).
Before the change, Home gesture didn't work. After
the change, it does work :)
Bug: 146593239

Merged-In: Ib9c85de2f83f99d1ef53fb17fde5d0b3c514849a
Change-Id: I19d91aaed19ccaec68478e364ce6b80049d49a98
This commit is contained in:
Andy Wickham
2020-03-10 01:36:02 +00:00
parent 4461347e0e
commit d5cafac586
4 changed files with 13 additions and 0 deletions

View File

@@ -19,6 +19,7 @@ package com.android.launcher3.uioverrides;
import static com.android.launcher3.LauncherState.NORMAL;
import static com.android.launcher3.LauncherState.OVERVIEW;
import static com.android.quickstep.SysUINavigationMode.Mode.NO_BUTTON;
import static com.android.systemui.shared.system.ActivityManagerWrapper.CLOSE_SYSTEM_WINDOWS_REASON_RECENTS;
import android.content.Context;
import android.graphics.Rect;
@@ -48,6 +49,7 @@ import com.android.quickstep.SysUINavigationMode;
import com.android.quickstep.SysUINavigationMode.Mode;
import com.android.quickstep.TouchInteractionService;
import com.android.quickstep.views.RecentsView;
import com.android.systemui.shared.system.ActivityManagerWrapper;
import com.android.systemui.shared.system.WindowManagerWrapper;
import java.util.ArrayList;
@@ -208,6 +210,12 @@ public abstract class RecentsUiFactory {
}
}
/** Closes system windows. */
public static void closeSystemWindows() {
ActivityManagerWrapper.getInstance()
.closeSystemWindows(CLOSE_SYSTEM_WINDOWS_REASON_RECENTS);
}
private static final class LauncherTaskViewController extends
TaskViewTouchController<Launcher> {

View File

@@ -251,4 +251,6 @@ public class UiFactory extends RecentsUiFactory {
Person[] persons = si.getPersons();
return persons == null ? Utilities.EMPTY_PERSON_ARRAY : persons;
}
public static void closeSystemWindows() {}
}

View File

@@ -1397,6 +1397,7 @@ public class Launcher extends BaseDraggingActivity implements LauncherExterns,
if (!internalStateHandled) {
// In all these cases, only animate if we're already on home
AbstractFloatingView.closeAllOpenViews(this, isStarted());
UiFactory.closeSystemWindows();
if (!isInState(NORMAL)) {
// Only change state, if not already the same. This prevents cancelling any

View File

@@ -101,4 +101,6 @@ public class UiFactory {
public static Person[] getPersons(ShortcutInfo si) {
return Utilities.EMPTY_PERSON_ARRAY;
}
public static void closeSystemWindows() {}
}