summaryrefslogtreecommitdiffstats
path: root/quickstep/src
diff options
context:
space:
mode:
authorWinson Chung <winsonc@google.com>2019-05-23 13:56:10 -0700
committerWinson Chung <winsonc@google.com>2019-05-23 14:33:05 -0700
commitdd71ca04370a8885cfeeb1d2c6846f5299e8edcc (patch)
tree42736c6ff904ae7933c584085bb0b6a859efbc46 /quickstep/src
parent9e26fccacc59202912406fe237bd9f11207fd34b (diff)
downloadandroid_packages_apps_Trebuchet-dd71ca04370a8885cfeeb1d2c6846f5299e8edcc.tar.gz
android_packages_apps_Trebuchet-dd71ca04370a8885cfeeb1d2c6846f5299e8edcc.tar.bz2
android_packages_apps_Trebuchet-dd71ca04370a8885cfeeb1d2c6846f5299e8edcc.zip
Support individual lock task features
- If screen pinning is enabled, disable gestures and wrap with input consumer to break out of screen pinning (existing logic) - If Home & Overview are both disabled, disable gestures completely - If only Home is disabled, then always launch the user into fallback recents (to simplify logic around breaking out of overview into Home) - If only Overview is disabled, then prevent swiping from going into overview or from triggering overview from home - Switch to using screen pinning flag check instead of binder call Bug: 133113732 Bug: 131698989 Change-Id: Ie6f447520d4cc3fa1eaaf8427ee014851688bf37
Diffstat (limited to 'quickstep/src')
-rw-r--r--quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/PortraitStatesTouchController.java6
-rw-r--r--quickstep/src/com/android/quickstep/OverviewComponentObserver.java15
-rw-r--r--quickstep/src/com/android/quickstep/OverviewInteractionState.java10
3 files changed, 30 insertions, 1 deletions
diff --git a/quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/PortraitStatesTouchController.java b/quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/PortraitStatesTouchController.java
index 0c29fcf5a..6030cea93 100644
--- a/quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/PortraitStatesTouchController.java
+++ b/quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/PortraitStatesTouchController.java
@@ -26,6 +26,7 @@ import static com.android.launcher3.anim.Interpolators.ACCEL;
import static com.android.launcher3.anim.Interpolators.DEACCEL;
import static com.android.launcher3.anim.Interpolators.LINEAR;
import static com.android.launcher3.config.FeatureFlags.QUICKSTEP_SPRINGS;
+import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_OVERVIEW_DISABLED;
import android.animation.TimeInterpolator;
import android.animation.ValueAnimator;
@@ -46,9 +47,11 @@ import com.android.launcher3.touch.SwipeDetector;
import com.android.launcher3.uioverrides.states.OverviewState;
import com.android.launcher3.userevent.nano.LauncherLogProto.Action.Touch;
import com.android.launcher3.userevent.nano.LauncherLogProto.ContainerType;
+import com.android.quickstep.OverviewInteractionState;
import com.android.quickstep.RecentsModel;
import com.android.quickstep.TouchInteractionService;
import com.android.quickstep.util.LayoutUtils;
+import com.android.systemui.shared.system.QuickStepContract;
/**
* Touch controller for handling various state transitions in portrait UI.
@@ -135,7 +138,10 @@ public class PortraitStatesTouchController extends AbstractStateChangeTouchContr
} else if (fromState == OVERVIEW) {
return isDragTowardPositive ? ALL_APPS : NORMAL;
} else if (fromState == NORMAL && isDragTowardPositive) {
+ int stateFlags = OverviewInteractionState.INSTANCE.get(mLauncher)
+ .getSystemUiStateFlags();
return mAllowDragToOverview && TouchInteractionService.isConnected()
+ && (stateFlags & SYSUI_STATE_OVERVIEW_DISABLED) == 0
? OVERVIEW : ALL_APPS;
}
return fromState;
diff --git a/quickstep/src/com/android/quickstep/OverviewComponentObserver.java b/quickstep/src/com/android/quickstep/OverviewComponentObserver.java
index a2f07e318..b5da836e6 100644
--- a/quickstep/src/com/android/quickstep/OverviewComponentObserver.java
+++ b/quickstep/src/com/android/quickstep/OverviewComponentObserver.java
@@ -22,6 +22,7 @@ import static android.content.Intent.ACTION_PACKAGE_REMOVED;
import static com.android.launcher3.util.PackageManagerHelper.getPackageFilter;
import static com.android.systemui.shared.system.PackageManagerWrapper.ACTION_PREFERRED_ACTIVITY_CHANGED;
+import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_HOME_DISABLED;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
@@ -32,6 +33,7 @@ import android.content.pm.ResolveInfo;
import com.android.systemui.shared.system.PackageManagerWrapper;
+import com.android.systemui.shared.system.QuickStepContract;
import java.util.ArrayList;
/**
@@ -56,6 +58,7 @@ public final class OverviewComponentObserver {
private String mUpdateRegisteredPackage;
private ActivityControlHelper mActivityControlHelper;
private Intent mOverviewIntent;
+ private int mSystemUiStateFlags;
public OverviewComponentObserver(Context context) {
mContext = context;
@@ -71,6 +74,15 @@ public final class OverviewComponentObserver {
updateOverviewTargets();
}
+ public void onSystemUiStateChanged(int stateFlags) {
+ boolean homeDisabledChanged = (mSystemUiStateFlags & SYSUI_STATE_HOME_DISABLED)
+ != (stateFlags & SYSUI_STATE_HOME_DISABLED);
+ mSystemUiStateFlags = stateFlags;
+ if (homeDisabledChanged) {
+ updateOverviewTargets();
+ }
+ }
+
/**
* Update overview intent and {@link ActivityControlHelper} based off the current launcher home
* component.
@@ -81,7 +93,8 @@ public final class OverviewComponentObserver {
final String overviewIntentCategory;
ComponentName overviewComponent;
- if (defaultHome == null || mMyHomeComponent.equals(defaultHome)) {
+ if ((mSystemUiStateFlags & SYSUI_STATE_HOME_DISABLED) == 0 &&
+ (defaultHome == null || mMyHomeComponent.equals(defaultHome))) {
// User default home is same as out home app. Use Overview integrated in Launcher.
overviewComponent = mMyHomeComponent;
mActivityControlHelper = new LauncherActivityControllerHelper();
diff --git a/quickstep/src/com/android/quickstep/OverviewInteractionState.java b/quickstep/src/com/android/quickstep/OverviewInteractionState.java
index 79d922c24..78b48d77a 100644
--- a/quickstep/src/com/android/quickstep/OverviewInteractionState.java
+++ b/quickstep/src/com/android/quickstep/OverviewInteractionState.java
@@ -53,6 +53,8 @@ public class OverviewInteractionState {
private ISystemUiProxy mISystemUiProxy;
private float mBackButtonAlpha = 1;
+ private int mSystemUiStateFlags;
+
private OverviewInteractionState(Context context) {
mContext = context;
@@ -83,6 +85,14 @@ public class OverviewInteractionState {
mBgHandler.obtainMessage(MSG_SET_PROXY, proxy).sendToTarget();
}
+ public void setSystemUiStateFlags(int stateFlags) {
+ mSystemUiStateFlags = stateFlags;
+ }
+
+ public int getSystemUiStateFlags() {
+ return mSystemUiStateFlags;
+ }
+
private boolean handleUiMessage(Message msg) {
if (msg.what == MSG_SET_BACK_BUTTON_ALPHA) {
mBackButtonAlpha = (float) msg.obj;