Merge "Create ACTIVITY_TYPE_DREAM" into rvc-dev am: 389580c7da
Change-Id: Ie57f4bf24a6bc6be597cae5f06745fdf81c5eb2b
This commit is contained in:
@@ -535,6 +535,7 @@ package android.app {
|
||||
method public void setWindowingMode(int);
|
||||
method public void writeToParcel(android.os.Parcel, int);
|
||||
field public static final int ACTIVITY_TYPE_ASSISTANT = 4; // 0x4
|
||||
field public static final int ACTIVITY_TYPE_DREAM = 5; // 0x5
|
||||
field public static final int ACTIVITY_TYPE_HOME = 2; // 0x2
|
||||
field public static final int ACTIVITY_TYPE_RECENTS = 3; // 0x3
|
||||
field public static final int ACTIVITY_TYPE_STANDARD = 1; // 0x1
|
||||
|
||||
@@ -141,6 +141,8 @@ public class WindowConfiguration implements Parcelable, Comparable<WindowConfigu
|
||||
public static final int ACTIVITY_TYPE_RECENTS = 3;
|
||||
/** Assistant activity type. */
|
||||
public static final int ACTIVITY_TYPE_ASSISTANT = 4;
|
||||
/** Dream activity type. */
|
||||
public static final int ACTIVITY_TYPE_DREAM = 5;
|
||||
|
||||
/** @hide */
|
||||
@IntDef(prefix = { "ACTIVITY_TYPE_" }, value = {
|
||||
@@ -149,6 +151,7 @@ public class WindowConfiguration implements Parcelable, Comparable<WindowConfigu
|
||||
ACTIVITY_TYPE_HOME,
|
||||
ACTIVITY_TYPE_RECENTS,
|
||||
ACTIVITY_TYPE_ASSISTANT,
|
||||
ACTIVITY_TYPE_DREAM,
|
||||
})
|
||||
public @interface ActivityType {}
|
||||
|
||||
@@ -746,9 +749,11 @@ public class WindowConfiguration implements Parcelable, Comparable<WindowConfigu
|
||||
* @hide
|
||||
*/
|
||||
public boolean isAlwaysOnTop() {
|
||||
return mWindowingMode == WINDOWING_MODE_PINNED || (mAlwaysOnTop == ALWAYS_ON_TOP_ON
|
||||
&& (mWindowingMode == WINDOWING_MODE_FREEFORM
|
||||
|| mWindowingMode == WINDOWING_MODE_MULTI_WINDOW));
|
||||
if (mWindowingMode == WINDOWING_MODE_PINNED) return true;
|
||||
if (mActivityType == ACTIVITY_TYPE_DREAM) return true;
|
||||
if (mAlwaysOnTop != ALWAYS_ON_TOP_ON) return false;
|
||||
return mWindowingMode == WINDOWING_MODE_FREEFORM
|
||||
|| mWindowingMode == WINDOWING_MODE_MULTI_WINDOW;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -798,7 +803,7 @@ public class WindowConfiguration implements Parcelable, Comparable<WindowConfigu
|
||||
|
||||
/** @hide */
|
||||
public static boolean supportSplitScreenWindowingMode(int activityType) {
|
||||
return activityType != ACTIVITY_TYPE_ASSISTANT;
|
||||
return activityType != ACTIVITY_TYPE_ASSISTANT && activityType != ACTIVITY_TYPE_DREAM;
|
||||
}
|
||||
|
||||
/** @hide */
|
||||
@@ -823,6 +828,7 @@ public class WindowConfiguration implements Parcelable, Comparable<WindowConfigu
|
||||
case ACTIVITY_TYPE_HOME: return "home";
|
||||
case ACTIVITY_TYPE_RECENTS: return "recents";
|
||||
case ACTIVITY_TYPE_ASSISTANT: return "assistant";
|
||||
case ACTIVITY_TYPE_DREAM: return "dream";
|
||||
}
|
||||
return String.valueOf(applicationType);
|
||||
}
|
||||
|
||||
@@ -31,6 +31,7 @@ import static android.app.ActivityManager.LOCK_TASK_MODE_NONE;
|
||||
import static android.app.ActivityManagerInternal.ALLOW_NON_FULL;
|
||||
import static android.app.ActivityTaskManager.INVALID_TASK_ID;
|
||||
import static android.app.ActivityTaskManager.RESIZE_MODE_PRESERVE_WINDOW;
|
||||
import static android.app.WindowConfiguration.ACTIVITY_TYPE_DREAM;
|
||||
import static android.app.WindowConfiguration.ACTIVITY_TYPE_UNDEFINED;
|
||||
import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM;
|
||||
import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
|
||||
@@ -1274,9 +1275,13 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub {
|
||||
a.colorMode = ActivityInfo.COLOR_MODE_DEFAULT;
|
||||
a.flags |= ActivityInfo.FLAG_EXCLUDE_FROM_RECENTS;
|
||||
|
||||
final ActivityOptions options = ActivityOptions.makeBasic();
|
||||
options.setLaunchActivityType(ACTIVITY_TYPE_DREAM);
|
||||
|
||||
try {
|
||||
getActivityStartController().obtainStarter(intent, "dream")
|
||||
.setActivityInfo(a)
|
||||
.setActivityOptions(options.toBundle())
|
||||
.setIsDream(true)
|
||||
.execute();
|
||||
return true;
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
package com.android.server.wm;
|
||||
|
||||
import static android.app.WindowConfiguration.ACTIVITY_TYPE_ASSISTANT;
|
||||
import static android.app.WindowConfiguration.ACTIVITY_TYPE_DREAM;
|
||||
import static android.app.WindowConfiguration.ACTIVITY_TYPE_HOME;
|
||||
import static android.app.WindowConfiguration.ACTIVITY_TYPE_RECENTS;
|
||||
import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD;
|
||||
@@ -467,6 +468,10 @@ public abstract class ConfigurationContainer<E extends ConfigurationContainer> {
|
||||
return getActivityType() == ACTIVITY_TYPE_ASSISTANT;
|
||||
}
|
||||
|
||||
public boolean isActivityTypeDream() {
|
||||
return getActivityType() == ACTIVITY_TYPE_DREAM;
|
||||
}
|
||||
|
||||
public boolean isActivityTypeStandard() {
|
||||
return getActivityType() == ACTIVITY_TYPE_STANDARD;
|
||||
}
|
||||
|
||||
@@ -4495,6 +4495,10 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo
|
||||
*/
|
||||
private int findPositionForStack(int requestedPosition, ActivityStack stack,
|
||||
boolean adding) {
|
||||
if (stack.isActivityTypeDream()) {
|
||||
return POSITION_TOP;
|
||||
}
|
||||
|
||||
if (stack.inPinnedWindowingMode()) {
|
||||
return POSITION_TOP;
|
||||
}
|
||||
|
||||
@@ -21,6 +21,7 @@ import static android.app.ActivityManager.RECENT_IGNORE_UNAVAILABLE;
|
||||
import static android.app.ActivityManager.RECENT_WITH_EXCLUDED;
|
||||
import static android.app.ActivityTaskManager.INVALID_TASK_ID;
|
||||
import static android.app.WindowConfiguration.ACTIVITY_TYPE_ASSISTANT;
|
||||
import static android.app.WindowConfiguration.ACTIVITY_TYPE_DREAM;
|
||||
import static android.app.WindowConfiguration.ACTIVITY_TYPE_HOME;
|
||||
import static android.app.WindowConfiguration.ACTIVITY_TYPE_RECENTS;
|
||||
import static android.app.WindowConfiguration.ACTIVITY_TYPE_UNDEFINED;
|
||||
@@ -1298,6 +1299,7 @@ class RecentTasks {
|
||||
switch (task.getActivityType()) {
|
||||
case ACTIVITY_TYPE_HOME:
|
||||
case ACTIVITY_TYPE_RECENTS:
|
||||
case ACTIVITY_TYPE_DREAM:
|
||||
// Ignore certain activity types completely
|
||||
return false;
|
||||
case ACTIVITY_TYPE_ASSISTANT:
|
||||
|
||||
@@ -18,6 +18,7 @@ package com.android.server.wm;
|
||||
|
||||
import static android.app.ActivityTaskManager.INVALID_TASK_ID;
|
||||
import static android.app.WindowConfiguration.ACTIVITY_TYPE_ASSISTANT;
|
||||
import static android.app.WindowConfiguration.ACTIVITY_TYPE_DREAM;
|
||||
import static android.app.WindowConfiguration.ACTIVITY_TYPE_HOME;
|
||||
import static android.app.WindowConfiguration.ACTIVITY_TYPE_RECENTS;
|
||||
import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD;
|
||||
@@ -2915,6 +2916,7 @@ class RootWindowContainer extends WindowContainer<DisplayContent>
|
||||
case ACTIVITY_TYPE_HOME: return r.isActivityTypeHome();
|
||||
case ACTIVITY_TYPE_RECENTS: return r.isActivityTypeRecents();
|
||||
case ACTIVITY_TYPE_ASSISTANT: return r.isActivityTypeAssistant();
|
||||
case ACTIVITY_TYPE_DREAM: return r.isActivityTypeDream();
|
||||
}
|
||||
// TODO(task-hierarchy): Find another way to differentiate tile from normal stack once it is
|
||||
// part of the hierarchy
|
||||
|
||||
Reference in New Issue
Block a user