summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorCraig Mautner <cmautner@google.com>2015-04-15 09:45:42 -0700
committerCraig Mautner <cmautner@google.com>2015-04-21 10:11:12 -0700
commitc21ae9ed221912b61306e075d3f22726ac04013c (patch)
tree13584199534e3148ceceb7cdae210fe1c4d598b6 /services
parent8ce568e756c4096002d2bfb786114aac5a06e54e (diff)
downloadframeworks_base-c21ae9ed221912b61306e075d3f22726ac04013c.zip
frameworks_base-c21ae9ed221912b61306e075d3f22726ac04013c.tar.gz
frameworks_base-c21ae9ed221912b61306e075d3f22726ac04013c.tar.bz2
Add API for putting up locktask pinning toast.
Fixes bug 18993662. Change-Id: Ic1753285044857f8ea897784485fd1a9580acf25
Diffstat (limited to 'services')
-rw-r--r--services/core/java/com/android/server/am/ActivityManagerService.java12
-rw-r--r--services/core/java/com/android/server/am/ActivityStackSupervisor.java13
2 files changed, 24 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java
index f25808b..faba838 100644
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -33,7 +33,6 @@ import static com.android.server.am.TaskRecord.INVALID_TASK_ID;
import static com.android.server.am.TaskRecord.LOCK_TASK_AUTH_DONT_LOCK;
import static com.android.server.am.TaskRecord.LOCK_TASK_AUTH_LAUNCHABLE;
import static com.android.server.am.TaskRecord.LOCK_TASK_AUTH_PINNABLE;
-import static com.android.server.am.TaskRecord.LOCK_TASK_AUTH_WHITELISTED;
import static org.xmlpull.v1.XmlPullParser.END_DOCUMENT;
import static org.xmlpull.v1.XmlPullParser.START_TAG;
@@ -8661,6 +8660,17 @@ public final class ActivityManagerService extends ActivityManagerNative
}
}
+ @Override
+ public void showLockTaskEscapeMessage(IBinder token) {
+ synchronized (this) {
+ final ActivityRecord r = ActivityRecord.forTokenLocked(token);
+ if (r == null) {
+ return;
+ }
+ mStackSupervisor.showLockTaskEscapeMessageLocked(r.task);
+ }
+ }
+
// =========================================================
// CONTENT PROVIDERS
// =========================================================
diff --git a/services/core/java/com/android/server/am/ActivityStackSupervisor.java b/services/core/java/com/android/server/am/ActivityStackSupervisor.java
index 6908483..eb1b1d8 100644
--- a/services/core/java/com/android/server/am/ActivityStackSupervisor.java
+++ b/services/core/java/com/android/server/am/ActivityStackSupervisor.java
@@ -165,6 +165,7 @@ public final class ActivityStackSupervisor implements DisplayListener {
static final int LOCK_TASK_END_MSG = FIRST_SUPERVISOR_STACK_MSG + 10;
static final int CONTAINER_CALLBACK_TASK_LIST_EMPTY = FIRST_SUPERVISOR_STACK_MSG + 11;
static final int LAUNCH_TASK_BEHIND_COMPLETE = FIRST_SUPERVISOR_STACK_MSG + 12;
+ static final int SHOW_LOCK_TASK_ESCAPE_MESSAGE_MSG = FIRST_SUPERVISOR_STACK_MSG + 13;
private final static String VIRTUAL_DISPLAY_BASE_NAME = "ActivityViewVirtualDisplay";
@@ -3634,6 +3635,12 @@ public final class ActivityStackSupervisor implements DisplayListener {
mLockTaskNotify.showToast(mLockTaskModeState);
}
+ void showLockTaskEscapeMessageLocked(TaskRecord task) {
+ if (mLockTaskModeTasks.contains(task)) {
+ mHandler.sendEmptyMessage(SHOW_LOCK_TASK_ESCAPE_MESSAGE_MSG);
+ }
+ }
+
void setLockTaskModeLocked(TaskRecord task, int lockTaskModeState, String reason) {
if (task == null) {
// Take out of lock task mode if necessary
@@ -3879,6 +3886,12 @@ public final class ActivityStackSupervisor implements DisplayListener {
mLockTaskModeState = LOCK_TASK_MODE_NONE;
}
} break;
+ case SHOW_LOCK_TASK_ESCAPE_MESSAGE_MSG: {
+ if (mLockTaskNotify == null) {
+ mLockTaskNotify = new LockTaskNotify(mService.mContext);
+ }
+ mLockTaskNotify.showToast(LOCK_TASK_MODE_PINNED);
+ } break;
case CONTAINER_CALLBACK_TASK_LIST_EMPTY: {
final ActivityContainer container = (ActivityContainer) msg.obj;
final IActivityContainerCallback callback = container.mCallback;