Allow non-resizable apps in split-screen (9/n)

Cleanup SizeCompatModeActivityController

Bug: 176061101
Bug: 178327644
Test: pass existing
Change-Id: If4bb5e082976725b80bda5a95880a24201b6c595
This commit is contained in:
Chris Li
2021-02-02 17:47:52 -08:00
parent 58b9a4e48e
commit 7dfa7106a9
13 changed files with 21 additions and 159 deletions

View File

@@ -144,18 +144,6 @@ oneway interface ITaskStackListener {
*/
void onTaskSnapshotChanged(int taskId, in TaskSnapshot snapshot);
/**
* Called when the resumed activity is in size compatibility mode and its override configuration
* is different from the current one of system.
*
* @param displayId Id of the display where the activity resides.
* @param activityToken Token of the size compatibility mode activity. It will be null when
* switching to a activity that is not in size compatibility mode or the
* configuration of the activity.
* @see com.android.server.wm.ActivityRecord#inSizeCompatMode
*/
void onSizeCompatModeActivityChanged(int displayId, in IBinder activityToken);
/**
* Reports that an Activity received a back key press when there were no additional activities
* on the back stack.

View File

@@ -21,7 +21,6 @@ import android.compat.annotation.UnsupportedAppUsage;
import android.content.ComponentName;
import android.os.Binder;
import android.os.Build;
import android.os.IBinder;
import android.os.RemoteException;
import android.window.TaskSnapshot;
@@ -162,12 +161,6 @@ public abstract class TaskStackListener extends ITaskStackListener.Stub {
}
}
@Override
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
public void onSizeCompatModeActivityChanged(int displayId, IBinder activityToken)
throws RemoteException {
}
@Override
public void onBackPressedOnTaskRoot(RunningTaskInfo taskInfo)
throws RemoteException {

View File

@@ -19,7 +19,6 @@ package com.android.wm.shell.common;
import android.app.ActivityManager.RunningTaskInfo;
import android.app.ITaskStackListener;
import android.content.ComponentName;
import android.os.IBinder;
import android.window.TaskSnapshot;
import androidx.annotation.BinderThread;
@@ -85,6 +84,4 @@ public interface TaskStackListenerCallback {
default void onActivityRequestedOrientationChanged(int taskId, int requestedOrientation) { }
default void onActivityRotation(int displayId) { }
default void onSizeCompatModeActivityChanged(int displayId, IBinder activityToken) { }
}

View File

@@ -22,7 +22,6 @@ import android.app.IActivityTaskManager;
import android.app.TaskStackListener;
import android.content.ComponentName;
import android.os.Handler;
import android.os.IBinder;
import android.os.Message;
import android.os.Trace;
import android.util.Log;
@@ -54,13 +53,12 @@ public class TaskStackListenerImpl extends TaskStackListener implements Handler.
private static final int ON_TASK_MOVED_TO_FRONT = 12;
private static final int ON_ACTIVITY_REQUESTED_ORIENTATION_CHANGE = 13;
private static final int ON_ACTIVITY_LAUNCH_ON_SECONDARY_DISPLAY_REROUTED = 14;
private static final int ON_SIZE_COMPAT_MODE_ACTIVITY_CHANGED = 15;
private static final int ON_BACK_PRESSED_ON_TASK_ROOT = 16;
private static final int ON_TASK_DISPLAY_CHANGED = 17;
private static final int ON_TASK_LIST_UPDATED = 18;
private static final int ON_TASK_LIST_FROZEN_UNFROZEN = 19;
private static final int ON_TASK_DESCRIPTION_CHANGED = 20;
private static final int ON_ACTIVITY_ROTATION = 21;
private static final int ON_BACK_PRESSED_ON_TASK_ROOT = 15;
private static final int ON_TASK_DISPLAY_CHANGED = 16;
private static final int ON_TASK_LIST_UPDATED = 17;
private static final int ON_TASK_LIST_FROZEN_UNFROZEN = 18;
private static final int ON_TASK_DESCRIPTION_CHANGED = 19;
private static final int ON_ACTIVITY_ROTATION = 20;
/**
* List of {@link TaskStackListenerCallback} registered from {@link #addListener}.
@@ -263,13 +261,6 @@ public class TaskStackListenerImpl extends TaskStackListener implements Handler.
.sendToTarget();
}
@Override
public void onSizeCompatModeActivityChanged(int displayId, IBinder activityToken) {
mMainHandler.obtainMessage(ON_SIZE_COMPAT_MODE_ACTIVITY_CHANGED, displayId,
0 /* unused */,
activityToken).sendToTarget();
}
@Override
public boolean handleMessage(Message msg) {
synchronized (mTaskStackListeners) {
@@ -383,13 +374,6 @@ public class TaskStackListenerImpl extends TaskStackListener implements Handler.
}
break;
}
case ON_SIZE_COMPAT_MODE_ACTIVITY_CHANGED: {
for (int i = mTaskStackListeners.size() - 1; i >= 0; i--) {
mTaskStackListeners.get(i).onSizeCompatModeActivityChanged(
msg.arg1, (IBinder) msg.obj);
}
break;
}
case ON_BACK_PRESSED_ON_TASK_ROOT: {
for (int i = mTaskStackListeners.size() - 1; i >= 0; i--) {
mTaskStackListeners.get(i).onBackPressedOnTaskRoot(

View File

@@ -91,7 +91,6 @@ public class SizeCompatUIController implements DisplayController.OnDisplaysChang
}
}
// TODO move from SizeCompatModeActivityController from system UI.
@Override
public void onDisplayRemoved(int displayId) {
mDisplayContextCache.remove(displayId);

View File

@@ -27,7 +27,6 @@ import android.app.ActivityManager;
import android.app.IActivityTaskManager;
import android.content.ComponentName;
import android.os.Handler;
import android.os.IBinder;
import android.os.Message;
import android.os.RemoteException;
import android.testing.AndroidTestingRunner;
@@ -234,14 +233,6 @@ public class TaskStackListenerImplTest {
verify(mOtherCallback).onActivityRotation(eq(123));
}
@Test
public void testOnSizeCompatModeActivityChanged() {
IBinder b = mock(IBinder.class);
mImpl.onSizeCompatModeActivityChanged(123, b);
verify(mCallback).onSizeCompatModeActivityChanged(eq(123), eq(b));
verify(mOtherCallback).onSizeCompatModeActivityChanged(eq(123), eq(b));
}
/**
* Handler that synchronously calls TaskStackListenerImpl#handleMessage() when it receives a
* message.

View File

@@ -39,7 +39,6 @@
<item>com.android.systemui.shortcut.ShortcutKeyDispatcher</item>
<item>@string/config_systemUIVendorServiceComponent</item>
<item>com.android.systemui.SliceBroadcastRelayHandler</item>
<item>com.android.systemui.SizeCompatModeActivityController</item>
<item>com.android.systemui.statusbar.notification.InstantAppNotifier</item>
<item>com.android.systemui.toast.ToastUI</item>
<item>com.android.systemui.wmshell.WMShell</item>

View File

@@ -301,7 +301,6 @@
<item>com.android.systemui.ScreenDecorations</item>
<item>com.android.systemui.biometrics.AuthController</item>
<item>com.android.systemui.SliceBroadcastRelayHandler</item>
<item>com.android.systemui.SizeCompatModeActivityController</item>
<item>com.android.systemui.statusbar.notification.InstantAppNotifier</item>
<item>com.android.systemui.theme.ThemeOverlayController</item>
<item>com.android.systemui.accessibility.WindowMagnification</item>

View File

@@ -19,7 +19,6 @@ package com.android.systemui.shared.system;
import android.app.ActivityManager.RunningTaskInfo;
import android.app.ITaskStackListener;
import android.content.ComponentName;
import android.os.IBinder;
import com.android.systemui.shared.recents.model.ThumbnailData;
@@ -80,7 +79,6 @@ public abstract class TaskStackChangeListener {
public void onTaskDescriptionChanged(RunningTaskInfo taskInfo) { }
public void onActivityRequestedOrientationChanged(int taskId, int requestedOrientation) { }
public void onSizeCompatModeActivityChanged(int displayId, IBinder activityToken) { }
public void onBackPressedOnTaskRoot(RunningTaskInfo taskInfo) { }

View File

@@ -18,15 +18,14 @@ package com.android.systemui.shared.system;
import android.app.ActivityManager.RunningTaskInfo;
import android.app.ActivityTaskManager;
import android.window.TaskSnapshot;
import android.app.TaskStackListener;
import android.content.ComponentName;
import android.os.Handler;
import android.os.IBinder;
import android.os.Looper;
import android.os.Message;
import android.os.Trace;
import android.util.Log;
import android.window.TaskSnapshot;
import com.android.internal.os.SomeArgs;
import com.android.systemui.shared.recents.model.ThumbnailData;
@@ -88,13 +87,12 @@ public class TaskStackChangeListeners {
private static final int ON_TASK_MOVED_TO_FRONT = 14;
private static final int ON_ACTIVITY_REQUESTED_ORIENTATION_CHANGE = 15;
private static final int ON_ACTIVITY_LAUNCH_ON_SECONDARY_DISPLAY_REROUTED = 16;
private static final int ON_SIZE_COMPAT_MODE_ACTIVITY_CHANGED = 17;
private static final int ON_BACK_PRESSED_ON_TASK_ROOT = 18;
private static final int ON_TASK_DISPLAY_CHANGED = 19;
private static final int ON_TASK_LIST_UPDATED = 20;
private static final int ON_TASK_LIST_FROZEN_UNFROZEN = 21;
private static final int ON_TASK_DESCRIPTION_CHANGED = 22;
private static final int ON_ACTIVITY_ROTATION = 23;
private static final int ON_BACK_PRESSED_ON_TASK_ROOT = 17;
private static final int ON_TASK_DISPLAY_CHANGED = 18;
private static final int ON_TASK_LIST_UPDATED = 19;
private static final int ON_TASK_LIST_FROZEN_UNFROZEN = 20;
private static final int ON_TASK_DESCRIPTION_CHANGED = 21;
private static final int ON_ACTIVITY_ROTATION = 22;
/**
* List of {@link TaskStackChangeListener} registered from {@link #addListener}.
@@ -247,13 +245,6 @@ public class TaskStackChangeListeners {
requestedOrientation).sendToTarget();
}
@Override
public void onSizeCompatModeActivityChanged(int displayId, IBinder activityToken) {
mHandler.obtainMessage(ON_SIZE_COMPAT_MODE_ACTIVITY_CHANGED, displayId,
0 /* unused */,
activityToken).sendToTarget();
}
@Override
public void onTaskDisplayChanged(int taskId, int newDisplayId) {
mHandler.obtainMessage(ON_TASK_DISPLAY_CHANGED, taskId, newDisplayId).sendToTarget();
@@ -391,13 +382,6 @@ public class TaskStackChangeListeners {
}
break;
}
case ON_SIZE_COMPAT_MODE_ACTIVITY_CHANGED: {
for (int i = mTaskStackListeners.size() - 1; i >= 0; i--) {
mTaskStackListeners.get(i).onSizeCompatModeActivityChanged(
msg.arg1, (IBinder) msg.obj);
}
break;
}
case ON_BACK_PRESSED_ON_TASK_ROOT: {
for (int i = mTaskStackListeners.size() - 1; i >= 0; i--) {
mTaskStackListeners.get(i).onBackPressedOnTaskRoot(

View File

@@ -1,42 +0,0 @@
/*
* Copyright (C) 2019 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.systemui;
import android.content.Context;
import com.android.systemui.dagger.SysUISingleton;
import javax.inject.Inject;
/**
* Shows a restart-activity button when the foreground activity is in size compatibility mode.
*
* // TODO remove this class after cleanup all dependencies.
* @deprecated Use {@link com.android.wm.shell.sizecompatui.SizeCompatUIController}
*/
@Deprecated
@SysUISingleton
public class SizeCompatModeActivityController extends SystemUI {
@Inject
SizeCompatModeActivityController(Context context) {
super(context);
}
@Override
public void start() { }
}

View File

@@ -18,7 +18,6 @@ package com.android.systemui.dagger;
import com.android.systemui.LatencyTester;
import com.android.systemui.ScreenDecorations;
import com.android.systemui.SizeCompatModeActivityController;
import com.android.systemui.SliceBroadcastRelayHandler;
import com.android.systemui.SystemUI;
import com.android.systemui.accessibility.SystemActions;
@@ -113,13 +112,6 @@ public abstract class SystemUIBinder {
@ClassKey(ShortcutKeyDispatcher.class)
public abstract SystemUI bindsShortcutKeyDispatcher(ShortcutKeyDispatcher sysui);
/** Inject into SizeCompatModeActivityController. */
@Binds
@IntoMap
@ClassKey(SizeCompatModeActivityController.class)
public abstract SystemUI bindsSizeCompatModeActivityController(
SizeCompatModeActivityController sysui);
/** Inject into SliceBroadcastRelayHandler. */
@Binds
@IntoMap

View File

@@ -23,7 +23,6 @@ import android.app.TaskInfo;
import android.content.ComponentName;
import android.os.Binder;
import android.os.Handler;
import android.os.IBinder;
import android.os.Looper;
import android.os.Message;
import android.os.RemoteCallbackList;
@@ -52,15 +51,14 @@ class TaskChangeNotificationController {
private static final int NOTIFY_ACTIVITY_UNPINNED_LISTENERS_MSG = 17;
private static final int NOTIFY_ACTIVITY_LAUNCH_ON_SECONDARY_DISPLAY_FAILED_MSG = 18;
private static final int NOTIFY_ACTIVITY_LAUNCH_ON_SECONDARY_DISPLAY_REROUTED_MSG = 19;
private static final int NOTIFY_SIZE_COMPAT_MODE_ACTIVITY_CHANGED_MSG = 20;
private static final int NOTIFY_BACK_PRESSED_ON_TASK_ROOT = 21;
private static final int NOTIFY_TASK_DISPLAY_CHANGED_LISTENERS_MSG = 22;
private static final int NOTIFY_TASK_LIST_UPDATED_LISTENERS_MSG = 23;
private static final int NOTIFY_TASK_LIST_FROZEN_UNFROZEN_MSG = 24;
private static final int NOTIFY_TASK_FOCUS_CHANGED_MSG = 25;
private static final int NOTIFY_TASK_REQUESTED_ORIENTATION_CHANGED_MSG = 26;
private static final int NOTIFY_ACTIVITY_ROTATED_MSG = 27;
private static final int NOTIFY_TASK_MOVED_TO_BACK_LISTENERS_MSG = 28;
private static final int NOTIFY_BACK_PRESSED_ON_TASK_ROOT = 20;
private static final int NOTIFY_TASK_DISPLAY_CHANGED_LISTENERS_MSG = 21;
private static final int NOTIFY_TASK_LIST_UPDATED_LISTENERS_MSG = 22;
private static final int NOTIFY_TASK_LIST_FROZEN_UNFROZEN_MSG = 23;
private static final int NOTIFY_TASK_FOCUS_CHANGED_MSG = 24;
private static final int NOTIFY_TASK_REQUESTED_ORIENTATION_CHANGED_MSG = 25;
private static final int NOTIFY_ACTIVITY_ROTATED_MSG = 26;
private static final int NOTIFY_TASK_MOVED_TO_BACK_LISTENERS_MSG = 27;
// Delay in notifying task stack change listeners (in millis)
private static final int NOTIFY_TASK_STACK_CHANGE_LISTENERS_DELAY = 100;
@@ -151,10 +149,6 @@ class TaskChangeNotificationController {
l.onTaskSnapshotChanged(m.arg1, (TaskSnapshot) m.obj);
};
private final TaskStackConsumer mOnSizeCompatModeActivityChanged = (l, m) -> {
l.onSizeCompatModeActivityChanged(m.arg1, (IBinder) m.obj);
};
private final TaskStackConsumer mNotifyTaskDisplayChanged = (l, m) -> {
l.onTaskDisplayChanged(m.arg1, m.arg2);
};
@@ -250,9 +244,6 @@ class TaskChangeNotificationController {
case NOTIFY_TASK_SNAPSHOT_CHANGED_LISTENERS_MSG:
forAllRemoteListeners(mNotifyTaskSnapshotChanged, msg);
break;
case NOTIFY_SIZE_COMPAT_MODE_ACTIVITY_CHANGED_MSG:
forAllRemoteListeners(mOnSizeCompatModeActivityChanged, msg);
break;
case NOTIFY_BACK_PRESSED_ON_TASK_ROOT:
forAllRemoteListeners(mNotifyBackPressedOnTaskRoot, msg);
break;
@@ -489,17 +480,6 @@ class TaskChangeNotificationController {
msg.sendToTarget();
}
/**
* Notify listeners that whether a size compatibility mode activity is using the override
* bounds which is not fit its parent.
*/
void notifySizeCompatModeActivityChanged(int displayId, IBinder activityToken) {
final Message msg = mHandler.obtainMessage(NOTIFY_SIZE_COMPAT_MODE_ACTIVITY_CHANGED_MSG,
displayId, 0 /* unused */, activityToken);
forAllLocalListeners(mOnSizeCompatModeActivityChanged, msg);
msg.sendToTarget();
}
/**
* Notify listeners that an activity received a back press when there are no other activities
* in the back stack.