Fix Toast dimensions on non-default displays
LayoutInflater should not be using an application context as this causes
wrong dimensions to be calculated.
Bug: 342316405
Test: manual and showing Toasts on VirtualDevices
Flag: EXEMPT bugfix
Change-Id: I48e948f8801a8cc6363c52ae50a0c5be61e4b636
diff --git a/packages/SystemUI/src/com/android/systemui/toast/ToastFactory.java b/packages/SystemUI/src/com/android/systemui/toast/ToastFactory.java
index f3b9cc1..9ae6674 100644
--- a/packages/SystemUI/src/com/android/systemui/toast/ToastFactory.java
+++ b/packages/SystemUI/src/com/android/systemui/toast/ToastFactory.java
@@ -40,14 +40,11 @@
public class ToastFactory implements Dumpable {
// only one ToastPlugin can be connected at a time.
private ToastPlugin mPlugin;
- private final LayoutInflater mLayoutInflater;
@Inject
public ToastFactory(
- LayoutInflater layoutInflater,
PluginManager pluginManager,
DumpManager dumpManager) {
- mLayoutInflater = layoutInflater;
dumpManager.registerDumpable("ToastFactory", this);
pluginManager.addPluginListener(
new PluginListener<ToastPlugin>() {
@@ -70,11 +67,12 @@
*/
public SystemUIToast createToast(Context context, CharSequence text, String packageName,
int userId, int orientation) {
+ LayoutInflater layoutInflater = LayoutInflater.from(context);
if (isPluginAvailable()) {
- return new SystemUIToast(mLayoutInflater, context, text, mPlugin.createToast(text,
+ return new SystemUIToast(layoutInflater, context, text, mPlugin.createToast(text,
packageName, userId), packageName, userId, orientation);
}
- return new SystemUIToast(mLayoutInflater, context, text, packageName, userId,
+ return new SystemUIToast(layoutInflater, context, text, packageName, userId,
orientation);
}
diff --git a/packages/SystemUI/src/com/android/systemui/toast/ToastUI.java b/packages/SystemUI/src/com/android/systemui/toast/ToastUI.java
index 85a455d..bbfa32b 100644
--- a/packages/SystemUI/src/com/android/systemui/toast/ToastUI.java
+++ b/packages/SystemUI/src/com/android/systemui/toast/ToastUI.java
@@ -128,7 +128,7 @@
return;
}
Context displayContext = context.createDisplayContext(display);
- mToast = mToastFactory.createToast(mContext /* sysuiContext */, text, packageName,
+ mToast = mToastFactory.createToast(displayContext /* sysuiContext */, text, packageName,
userHandle.getIdentifier(), mOrientation);
if (mToast.getInAnimation() != null) {
diff --git a/packages/SystemUI/tests/src/com/android/systemui/toast/ToastUITest.java b/packages/SystemUI/tests/src/com/android/systemui/toast/ToastUITest.java
index 8df37ce..666bdd6 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/toast/ToastUITest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/toast/ToastUITest.java
@@ -134,7 +134,6 @@
mNotificationManager,
mAccessibilityManager,
new ToastFactory(
- mLayoutInflater,
mPluginManager,
mDumpManager),
mToastLogger);