Loading core/java/android/widget/ToastPresenter.java +15 −12 Original line number Diff line number Diff line Loading @@ -89,9 +89,10 @@ public class ToastPresenter { return view; } private final WeakReference<Context> mContext; private final Resources mResources; private final WeakReference<WindowManager> mWindowManager; private final WeakReference<AccessibilityManager> mAccessibilityManager; private final IAccessibilityManager mAccessibilityManagerService; private final INotificationManager mNotificationManager; private final String mPackageName; private final String mContextPackageName; Loading @@ -101,21 +102,14 @@ public class ToastPresenter { public ToastPresenter(Context context, IAccessibilityManager accessibilityManager, INotificationManager notificationManager, String packageName) { mContext = new WeakReference<>(context); mResources = context.getResources(); mWindowManager = new WeakReference<>(context.getSystemService(WindowManager.class)); mNotificationManager = notificationManager; mPackageName = packageName; mContextPackageName = context.getPackageName(); mParams = createLayoutParams(); // We obtain AccessibilityManager manually via its constructor instead of using method // AccessibilityManager.getInstance() for 2 reasons: // 1. We want to be able to inject IAccessibilityManager in tests to verify behavior. // 2. getInstance() caches the instance for the process even if we pass a different // context to it. This is problematic for multi-user because callers can pass a context // created via Context.createContextAsUser(). mAccessibilityManager = new WeakReference<>( new AccessibilityManager(context, accessibilityManager, context.getUserId())); mAccessibilityManagerService = accessibilityManager; } public String getPackageName() { Loading Loading @@ -306,11 +300,20 @@ public class ToastPresenter { * enabled. */ public void trySendAccessibilityEvent(View view, String packageName) { final AccessibilityManager accessibilityManager = mAccessibilityManager.get(); if (accessibilityManager == null) { final Context context = mContext.get(); if (context == null) { return; } // We obtain AccessibilityManager manually via its constructor instead of using method // AccessibilityManager.getInstance() for 2 reasons: // 1. We want to be able to inject IAccessibilityManager in tests to verify behavior. // 2. getInstance() caches the instance for the process even if we pass a different // context to it. This is problematic for multi-user because callers can pass a context // created via Context.createContextAsUser(). final AccessibilityManager accessibilityManager = new AccessibilityManager(context, mAccessibilityManagerService, context.getUserId()); if (!accessibilityManager.isEnabled()) { accessibilityManager.removeClient(); return; Loading Loading
core/java/android/widget/ToastPresenter.java +15 −12 Original line number Diff line number Diff line Loading @@ -89,9 +89,10 @@ public class ToastPresenter { return view; } private final WeakReference<Context> mContext; private final Resources mResources; private final WeakReference<WindowManager> mWindowManager; private final WeakReference<AccessibilityManager> mAccessibilityManager; private final IAccessibilityManager mAccessibilityManagerService; private final INotificationManager mNotificationManager; private final String mPackageName; private final String mContextPackageName; Loading @@ -101,21 +102,14 @@ public class ToastPresenter { public ToastPresenter(Context context, IAccessibilityManager accessibilityManager, INotificationManager notificationManager, String packageName) { mContext = new WeakReference<>(context); mResources = context.getResources(); mWindowManager = new WeakReference<>(context.getSystemService(WindowManager.class)); mNotificationManager = notificationManager; mPackageName = packageName; mContextPackageName = context.getPackageName(); mParams = createLayoutParams(); // We obtain AccessibilityManager manually via its constructor instead of using method // AccessibilityManager.getInstance() for 2 reasons: // 1. We want to be able to inject IAccessibilityManager in tests to verify behavior. // 2. getInstance() caches the instance for the process even if we pass a different // context to it. This is problematic for multi-user because callers can pass a context // created via Context.createContextAsUser(). mAccessibilityManager = new WeakReference<>( new AccessibilityManager(context, accessibilityManager, context.getUserId())); mAccessibilityManagerService = accessibilityManager; } public String getPackageName() { Loading Loading @@ -306,11 +300,20 @@ public class ToastPresenter { * enabled. */ public void trySendAccessibilityEvent(View view, String packageName) { final AccessibilityManager accessibilityManager = mAccessibilityManager.get(); if (accessibilityManager == null) { final Context context = mContext.get(); if (context == null) { return; } // We obtain AccessibilityManager manually via its constructor instead of using method // AccessibilityManager.getInstance() for 2 reasons: // 1. We want to be able to inject IAccessibilityManager in tests to verify behavior. // 2. getInstance() caches the instance for the process even if we pass a different // context to it. This is problematic for multi-user because callers can pass a context // created via Context.createContextAsUser(). final AccessibilityManager accessibilityManager = new AccessibilityManager(context, mAccessibilityManagerService, context.getUserId()); if (!accessibilityManager.isEnabled()) { accessibilityManager.removeClient(); return; Loading