Show screen pinning toasts on all users
Bug: 17657660
Change-Id: I964a210e7fb105e9494a7ab7f383aa9d141ba136
diff --git a/core/java/android/widget/Toast.java b/core/java/android/widget/Toast.java
index dd165ae..be4cdc1 100644
--- a/core/java/android/widget/Toast.java
+++ b/core/java/android/widget/Toast.java
@@ -235,6 +235,14 @@
public int getYOffset() {
return mTN.mY;
}
+
+ /**
+ * Gets the LayoutParams for the Toast window.
+ * @hide
+ */
+ public WindowManager.LayoutParams getWindowParams() {
+ return mTN.mParams;
+ }
/**
* Make a standard toast that just contains a text view.
diff --git a/services/core/java/com/android/server/am/LockTaskNotify.java b/services/core/java/com/android/server/am/LockTaskNotify.java
index 5768ddb..b3777ed 100644
--- a/services/core/java/com/android/server/am/LockTaskNotify.java
+++ b/services/core/java/com/android/server/am/LockTaskNotify.java
@@ -19,6 +19,7 @@
import android.content.Context;
import android.os.Handler;
import android.os.Message;
+import android.view.WindowManager;
import android.view.accessibility.AccessibilityManager;
import android.widget.Toast;
@@ -56,8 +57,7 @@
if (mLastToast != null) {
mLastToast.cancel();
}
- mLastToast = Toast.makeText(mContext, text, Toast.LENGTH_LONG);
- mLastToast.show();
+ mLastToast = makeAllUserToastAndShow(text);
}
public void show(boolean starting) {
@@ -65,7 +65,15 @@
if (starting) {
showString = R.string.lock_to_app_start;
}
- Toast.makeText(mContext, mContext.getString(showString), Toast.LENGTH_LONG).show();
+ makeAllUserToastAndShow(mContext.getString(showString));
+ }
+
+ private Toast makeAllUserToastAndShow(String text) {
+ Toast toast = Toast.makeText(mContext, text, Toast.LENGTH_LONG);
+ toast.getWindowParams().privateFlags |=
+ WindowManager.LayoutParams.PRIVATE_FLAG_SHOW_FOR_ALL_USERS;
+ toast.show();
+ return toast;
}
private final class H extends Handler {