Loading services/core/java/com/android/server/notification/NotificationManagerService.java +20 −2 Original line number Diff line number Diff line Loading @@ -279,6 +279,7 @@ import android.content.pm.VersionedPackage; import android.content.res.Resources; import android.database.ContentObserver; import android.graphics.drawable.Icon; import android.hardware.display.DisplayManager; import android.metrics.LogMaker; import android.net.Uri; import android.os.Binder; Loading Loading @@ -335,6 +336,8 @@ import android.service.notification.ZenModeProto; import android.service.notification.ZenPolicy; import android.telecom.TelecomManager; import android.telephony.TelephonyManager; import android.text.Annotation; import android.text.Spanned; import android.text.TextUtils; import android.text.format.DateUtils; import android.util.ArrayMap; Loading @@ -353,8 +356,7 @@ import android.view.Display; import android.view.accessibility.AccessibilityManager; import android.widget.RemoteViews; import android.widget.Toast; import android.text.Spanned; import android.text.Annotation; import android.window.DesktopExperienceFlags; import com.android.internal.R; import com.android.internal.annotations.GuardedBy; Loading Loading @@ -684,6 +686,7 @@ public class NotificationManagerService extends SystemService { // Can be null for wear @Nullable StatusBarManagerInternal mStatusBar; private DisplayManager mDisplayManager; private WindowManagerInternal mWindowManagerInternal; private AlarmManager mAlarmManager; @VisibleForTesting Loading Loading @@ -3467,6 +3470,7 @@ public class NotificationManagerService extends SystemService { @VisibleForTesting void onBootPhase(int phase, Looper mainLooper) { if (phase == SystemService.PHASE_SYSTEM_SERVICES_READY) { mDisplayManager = getContext().getSystemService(DisplayManager.class); mWindowManagerInternal = LocalServices.getService(WindowManagerInternal.class); mZenModeHelper.onSystemReady(); RoleObserver roleObserver = new RoleObserver(getContext(), Loading Loading @@ -4160,6 +4164,20 @@ public class NotificationManagerService extends SystemService { } } // If the display cannot host tasks (such as a display used for mirroring), show the // toast on default display instead. if (DesktopExperienceFlags.ENABLE_MIRROR_DISPLAY_NO_ACTIVITY.isTrue()) { Display display = mDisplayManager.getDisplay(displayId); if (display != null && !display.canHostTasks()) { if (DBG) { Slogf.d(TAG, "Changing display id from %d to %d, because display %d " + "cannot host tasks", displayId, Display.DEFAULT_DISPLAY, displayId); } displayId = Display.DEFAULT_DISPLAY; } } checkCallerIsSameApp(pkg); final boolean isSystemToast = isCallerSystemOrSystemUi() || PackageManagerService.PLATFORM_PACKAGE_NAME.equals(pkg); Loading Loading
services/core/java/com/android/server/notification/NotificationManagerService.java +20 −2 Original line number Diff line number Diff line Loading @@ -279,6 +279,7 @@ import android.content.pm.VersionedPackage; import android.content.res.Resources; import android.database.ContentObserver; import android.graphics.drawable.Icon; import android.hardware.display.DisplayManager; import android.metrics.LogMaker; import android.net.Uri; import android.os.Binder; Loading Loading @@ -335,6 +336,8 @@ import android.service.notification.ZenModeProto; import android.service.notification.ZenPolicy; import android.telecom.TelecomManager; import android.telephony.TelephonyManager; import android.text.Annotation; import android.text.Spanned; import android.text.TextUtils; import android.text.format.DateUtils; import android.util.ArrayMap; Loading @@ -353,8 +356,7 @@ import android.view.Display; import android.view.accessibility.AccessibilityManager; import android.widget.RemoteViews; import android.widget.Toast; import android.text.Spanned; import android.text.Annotation; import android.window.DesktopExperienceFlags; import com.android.internal.R; import com.android.internal.annotations.GuardedBy; Loading Loading @@ -684,6 +686,7 @@ public class NotificationManagerService extends SystemService { // Can be null for wear @Nullable StatusBarManagerInternal mStatusBar; private DisplayManager mDisplayManager; private WindowManagerInternal mWindowManagerInternal; private AlarmManager mAlarmManager; @VisibleForTesting Loading Loading @@ -3467,6 +3470,7 @@ public class NotificationManagerService extends SystemService { @VisibleForTesting void onBootPhase(int phase, Looper mainLooper) { if (phase == SystemService.PHASE_SYSTEM_SERVICES_READY) { mDisplayManager = getContext().getSystemService(DisplayManager.class); mWindowManagerInternal = LocalServices.getService(WindowManagerInternal.class); mZenModeHelper.onSystemReady(); RoleObserver roleObserver = new RoleObserver(getContext(), Loading Loading @@ -4160,6 +4164,20 @@ public class NotificationManagerService extends SystemService { } } // If the display cannot host tasks (such as a display used for mirroring), show the // toast on default display instead. if (DesktopExperienceFlags.ENABLE_MIRROR_DISPLAY_NO_ACTIVITY.isTrue()) { Display display = mDisplayManager.getDisplay(displayId); if (display != null && !display.canHostTasks()) { if (DBG) { Slogf.d(TAG, "Changing display id from %d to %d, because display %d " + "cannot host tasks", displayId, Display.DEFAULT_DISPLAY, displayId); } displayId = Display.DEFAULT_DISPLAY; } } checkCallerIsSameApp(pkg); final boolean isSystemToast = isCallerSystemOrSystemUi() || PackageManagerService.PLATFORM_PACKAGE_NAME.equals(pkg); Loading