Merging ub-launcher3-qt-r1-dev, build 5766606
am: 8822dc0018
Change-Id: Ife2004942d44798afb5c7c4aabcf518bf358a6ae
This commit is contained in:
+2
-2
@@ -188,9 +188,9 @@ public class RecentsAnimationWrapper {
|
||||
return true;
|
||||
}
|
||||
|
||||
public void setCancelWithDeferredScreenshot(boolean deferredWithScreenshot) {
|
||||
public void setDeferCancelUntilNextTransition(boolean defer, boolean screenshot) {
|
||||
if (targetSet != null) {
|
||||
targetSet.controller.setCancelWithDeferredScreenshot(deferredWithScreenshot);
|
||||
targetSet.controller.setDeferCancelUntilNextTransition(defer, screenshot);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -31,6 +31,7 @@ import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_H
|
||||
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_NAV_BAR_HIDDEN;
|
||||
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_NOTIFICATION_PANEL_EXPANDED;
|
||||
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_OVERVIEW_DISABLED;
|
||||
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_QUICK_SETTINGS_EXPANDED;
|
||||
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_SCREEN_PINNING;
|
||||
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_STATUS_BAR_KEYGUARD_SHOWING_OCCLUDED;
|
||||
import static com.android.systemui.shared.system.RemoteAnimationTargetCompat.ACTIVITY_TYPE_ASSISTANT;
|
||||
@@ -68,6 +69,7 @@ import android.view.WindowManager;
|
||||
|
||||
import androidx.annotation.BinderThread;
|
||||
import androidx.annotation.UiThread;
|
||||
import androidx.annotation.WorkerThread;
|
||||
|
||||
import com.android.launcher3.BaseDraggingActivity;
|
||||
import com.android.launcher3.MainThreadExecutor;
|
||||
@@ -145,6 +147,11 @@ public class TouchInteractionService extends Service implements
|
||||
|
||||
private static final String TAG = "TouchInteractionService";
|
||||
|
||||
private static final String KEY_BACK_NOTIFICATION_COUNT = "backNotificationCount";
|
||||
private static final String NOTIFY_ACTION_BACK = "com.android.quickstep.action.BACK_GESTURE";
|
||||
private static final int MAX_BACK_NOTIFICATION_COUNT = 3;
|
||||
private int mBackGestureNotificationCounter = -1;
|
||||
|
||||
private final IBinder mMyBinder = new IOverviewProxy.Stub() {
|
||||
|
||||
public void onActiveNavBarRegionChanges(Region region) {
|
||||
@@ -205,6 +212,10 @@ public class TouchInteractionService extends Service implements
|
||||
mOverviewComponentObserver.getActivityControlHelper();
|
||||
UserEventDispatcher.newInstance(getBaseContext()).logActionBack(completed, downX, downY,
|
||||
isButton, gestureSwipeLeft, activityControl.getContainerType());
|
||||
|
||||
if (completed && !isButton && shouldNotifyBackGesture()) {
|
||||
BACKGROUND_EXECUTOR.execute(TouchInteractionService.this::tryNotifyBackGesture);
|
||||
}
|
||||
}
|
||||
|
||||
public void onSystemUiStateChanged(int stateFlags) {
|
||||
@@ -479,6 +490,8 @@ public class TouchInteractionService extends Service implements
|
||||
|
||||
// Temporarily disable model preload
|
||||
// new ModelPreload().start(this);
|
||||
mBackGestureNotificationCounter = Math.max(0, Utilities.getDevicePrefs(this)
|
||||
.getInt(KEY_BACK_NOTIFICATION_COUNT, MAX_BACK_NOTIFICATION_COUNT));
|
||||
|
||||
Utilities.unregisterReceiverSafely(this, mUserUnlockedReceiver);
|
||||
}
|
||||
@@ -569,6 +582,7 @@ public class TouchInteractionService extends Service implements
|
||||
private boolean validSystemUiFlags() {
|
||||
return (mSystemUiStateFlags & SYSUI_STATE_NAV_BAR_HIDDEN) == 0
|
||||
&& (mSystemUiStateFlags & SYSUI_STATE_NOTIFICATION_PANEL_EXPANDED) == 0
|
||||
&& (mSystemUiStateFlags & SYSUI_STATE_QUICK_SETTINGS_EXPANDED) == 0
|
||||
&& ((mSystemUiStateFlags & SYSUI_STATE_HOME_DISABLED) == 0
|
||||
|| (mSystemUiStateFlags & SYSUI_STATE_OVERVIEW_DISABLED) == 0);
|
||||
}
|
||||
@@ -864,6 +878,22 @@ public class TouchInteractionService extends Service implements
|
||||
mRecentsModel, mInputConsumer, isLikelyToStartNewTask, continuingLastGesture);
|
||||
}
|
||||
|
||||
protected boolean shouldNotifyBackGesture() {
|
||||
return mBackGestureNotificationCounter > 0 &&
|
||||
mGestureBlockingActivity != null;
|
||||
}
|
||||
|
||||
@WorkerThread
|
||||
protected void tryNotifyBackGesture() {
|
||||
if (shouldNotifyBackGesture()) {
|
||||
mBackGestureNotificationCounter--;
|
||||
Utilities.getDevicePrefs(this).edit()
|
||||
.putInt(KEY_BACK_NOTIFICATION_COUNT, mBackGestureNotificationCounter).apply();
|
||||
sendBroadcast(new Intent(NOTIFY_ACTION_BACK).setPackage(
|
||||
mGestureBlockingActivity.getPackageName()));
|
||||
}
|
||||
}
|
||||
|
||||
public static void startRecentsActivityAsync(Intent intent, RecentsAnimationListener listener) {
|
||||
BACKGROUND_EXECUTOR.execute(() -> ActivityManagerWrapper.getInstance()
|
||||
.startRecentsActivity(intent, null, listener, null, null));
|
||||
|
||||
+2
-1
@@ -1186,7 +1186,8 @@ public class WindowTransformSwipeHandler<T extends BaseDraggingActivity>
|
||||
private void setupLauncherUiAfterSwipeUpToRecentsAnimation() {
|
||||
endLauncherTransitionController();
|
||||
mActivityControlHelper.onSwipeUpToRecentsComplete(mActivity);
|
||||
mRecentsAnimationWrapper.setCancelWithDeferredScreenshot(true);
|
||||
mRecentsAnimationWrapper.setDeferCancelUntilNextTransition(true /* defer */,
|
||||
true /* screenshot */);
|
||||
mRecentsView.onSwipeUpAnimationSuccess();
|
||||
|
||||
RecentsModel.INSTANCE.get(mContext).onOverviewShown(false, TAG);
|
||||
|
||||
+3
-1
@@ -50,6 +50,7 @@ import com.android.quickstep.fallback.FallbackRecentsView;
|
||||
import com.android.quickstep.util.ObjectWrapper;
|
||||
import com.android.quickstep.util.RectFSpringAnim;
|
||||
import com.android.quickstep.util.SwipeAnimationTargetSet;
|
||||
import com.android.quickstep.views.RecentsView;
|
||||
import com.android.quickstep.views.TaskView;
|
||||
import com.android.systemui.shared.recents.model.ThumbnailData;
|
||||
import com.android.systemui.shared.system.ActivityManagerWrapper;
|
||||
@@ -335,7 +336,8 @@ public class FallbackNoButtonInputConsumer extends
|
||||
|
||||
ThumbnailData thumbnail =
|
||||
mRecentsAnimationWrapper.targetSet.controller.screenshotTask(mRunningTaskId);
|
||||
mRecentsAnimationWrapper.setCancelWithDeferredScreenshot(true);
|
||||
mRecentsAnimationWrapper.setDeferCancelUntilNextTransition(true /* defer */,
|
||||
false /* screenshot */);
|
||||
|
||||
ActivityOptions options = ActivityOptions.makeCustomAnimation(mContext, 0, 0);
|
||||
ActivityOptionsCompat.setFreezeRecentTasksList(options);
|
||||
|
||||
@@ -11,6 +11,7 @@ import android.database.Cursor;
|
||||
import android.util.Log;
|
||||
|
||||
import com.android.launcher3.LauncherSettings.Favorites;
|
||||
import com.android.launcher3.compat.UserManagerCompat;
|
||||
import com.android.launcher3.config.FeatureFlags;
|
||||
import com.android.launcher3.model.LoaderTask;
|
||||
import com.android.launcher3.provider.RestoreDbTask;
|
||||
@@ -18,6 +19,8 @@ import com.android.launcher3.util.ContentWriter;
|
||||
|
||||
import androidx.annotation.WorkerThread;
|
||||
|
||||
import static android.os.Process.myUserHandle;
|
||||
|
||||
public class AppWidgetsRestoredReceiver extends BroadcastReceiver {
|
||||
|
||||
private static final String TAG = "AWRestoredReceiver";
|
||||
@@ -77,9 +80,14 @@ public class AppWidgetsRestoredReceiver extends BroadcastReceiver {
|
||||
state = LauncherAppWidgetInfo.FLAG_PROVIDER_NOT_READY;
|
||||
}
|
||||
|
||||
String[] widgetIdParams = new String[] { Integer.toString(oldWidgetIds[i]) };
|
||||
// b/135926478: Work profile widget restore is broken in platform. This forces us to
|
||||
// recreate the widget during loading with the correct host provider.
|
||||
long mainProfileId = UserManagerCompat.getInstance(context)
|
||||
.getSerialNumberForUser(myUserHandle());
|
||||
String oldWidgetId = Integer.toString(oldWidgetIds[i]);
|
||||
int result = new ContentWriter(context, new ContentWriter.CommitParams(
|
||||
"appWidgetId=? and (restored & 1) = 1", widgetIdParams))
|
||||
"appWidgetId=? and (restored & 1) = 1 and profileId=?",
|
||||
new String[] { oldWidgetId, Long.toString(mainProfileId) }))
|
||||
.put(LauncherSettings.Favorites.APPWIDGET_ID, newWidgetIds[i])
|
||||
.put(LauncherSettings.Favorites.RESTORED, state)
|
||||
.commit();
|
||||
@@ -87,7 +95,7 @@ public class AppWidgetsRestoredReceiver extends BroadcastReceiver {
|
||||
if (result == 0) {
|
||||
Cursor cursor = cr.query(Favorites.CONTENT_URI,
|
||||
new String[] {Favorites.APPWIDGET_ID},
|
||||
"appWidgetId=?", widgetIdParams, null);
|
||||
"appWidgetId=?", new String[] { oldWidgetId }, null);
|
||||
try {
|
||||
if (!cursor.moveToFirst()) {
|
||||
// The widget no long exists.
|
||||
|
||||
Reference in New Issue
Block a user