Loading apex/jobscheduler/service/java/com/android/server/alarm/AlarmManagerService.java +6 −1 Original line number Diff line number Diff line Loading @@ -104,6 +104,7 @@ import android.text.TextUtils; import android.text.format.DateFormat; import android.util.ArrayMap; import android.util.ArraySet; import android.util.EventLog; import android.util.IndentingPrintWriter; import android.util.Log; import android.util.LongArrayQueue; Loading Loading @@ -2031,7 +2032,11 @@ public class AlarmManagerService extends SystemService { + " reached for uid: " + UserHandle.formatUid(callingUid) + ", callingPackage: " + callingPackage; Slog.w(TAG, errorMsg); if (callingUid != Process.SYSTEM_UID) { throw new IllegalStateException(errorMsg); } else { EventLog.writeEvent(0x534e4554, "234441463", -1, errorMsg); } } setImplLocked(type, triggerAtTime, triggerElapsed, windowLength, interval, operation, directReceiver, listenerTag, flags, workSource, alarmClock, callingUid, Loading core/java/android/app/ActivityOptions.java +5 −0 Original line number Diff line number Diff line Loading @@ -1352,6 +1352,11 @@ public class ActivityOptions { return mRemoteTransition; } /** @hide */ public void setRemoteTransition(@Nullable RemoteTransition remoteTransition) { mRemoteTransition = remoteTransition; } /** @hide */ public static ActivityOptions fromBundle(Bundle bOptions) { return bOptions != null ? new ActivityOptions(bOptions) : null; Loading core/java/android/view/inputmethod/InputMethodManager.java +1 −1 Original line number Diff line number Diff line Loading @@ -2958,7 +2958,7 @@ public final class InputMethodManager { @UnsupportedAppUsage public int getInputMethodWindowVisibleHeight() { try { return mService.getInputMethodWindowVisibleHeight(); return mService.getInputMethodWindowVisibleHeight(mClient); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } Loading core/java/com/android/internal/view/IInputMethodManager.aidl +1 −1 Original line number Diff line number Diff line Loading @@ -67,7 +67,7 @@ interface IInputMethodManager { void setAdditionalInputMethodSubtypes(String id, in InputMethodSubtype[] subtypes); // This is kept due to @UnsupportedAppUsage. // TODO(Bug 113914148): Consider removing this. int getInputMethodWindowVisibleHeight(); int getInputMethodWindowVisibleHeight(in IInputMethodClient client); oneway void reportPerceptibleAsync(in IBinder windowToken, boolean perceptible); /** Remove the IME surface. Requires INTERNAL_SYSTEM_WINDOW permission. */ Loading packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/NotificationInterruptStateProviderImpl.java +81 −10 Original line number Diff line number Diff line Loading @@ -176,9 +176,86 @@ public class NotificationInterruptStateProviderImpl implements NotificationInter */ @Override public boolean shouldLaunchFullScreenIntentWhenAdded(NotificationEntry entry) { return entry.getSbn().getNotification().fullScreenIntent != null && (!shouldHeadsUp(entry) || mStatusBarStateController.getState() == StatusBarState.KEYGUARD); if (entry.getSbn().getNotification().fullScreenIntent == null) { return false; } // Never show FSI when suppressed by DND if (entry.shouldSuppressFullScreenIntent()) { if (DEBUG) { Log.d(TAG, "No FullScreenIntent: Suppressed by DND: " + entry.getKey()); } return false; } // Never show FSI if importance is not HIGH if (entry.getImportance() < NotificationManager.IMPORTANCE_HIGH) { if (DEBUG) { Log.d(TAG, "No FullScreenIntent: Not important enough: " + entry.getKey()); } return false; } // If the notification has suppressive GroupAlertBehavior, block FSI and warn. StatusBarNotification sbn = entry.getSbn(); if (sbn.isGroup() && sbn.getNotification().suppressAlertingDueToGrouping()) { // b/231322873: Detect and report an event when a notification has both an FSI and a // suppressive groupAlertBehavior, and now correctly block the FSI from firing. final int uid = entry.getSbn().getUid(); android.util.EventLog.writeEvent(0x534e4554, "231322873", uid, "groupAlertBehavior"); if (DEBUG) { Log.w(TAG, "No FullScreenIntent: WARNING: GroupAlertBehavior will prevent HUN: " + entry.getKey()); } return false; } // If the screen is off, then launch the FullScreenIntent if (!mPowerManager.isInteractive()) { if (DEBUG) { Log.d(TAG, "FullScreenIntent: Device is not interactive: " + entry.getKey()); } return true; } // If the device is currently dreaming, then launch the FullScreenIntent if (isDreaming()) { if (DEBUG) { Log.d(TAG, "FullScreenIntent: Device is dreaming: " + entry.getKey()); } return true; } // If the keyguard is showing, then launch the FullScreenIntent if (mStatusBarStateController.getState() == StatusBarState.KEYGUARD) { if (DEBUG) { Log.d(TAG, "FullScreenIntent: Keyguard is showing: " + entry.getKey()); } return true; } // If the notification should HUN, then we don't need FSI if (shouldHeadsUp(entry)) { if (DEBUG) { Log.d(TAG, "No FullScreenIntent: Expected to HUN: " + entry.getKey()); } return false; } // If the notification won't HUN for some other reason (DND/snooze/etc), launch FSI. if (DEBUG) { Log.d(TAG, "FullScreenIntent: Expected not to HUN: " + entry.getKey()); } return true; } private boolean isDreaming() { try { return mDreamManager.isDreaming(); } catch (RemoteException e) { Log.e(TAG, "Failed to query dream manager.", e); return false; } } private boolean shouldHeadsUpWhenAwake(NotificationEntry entry) { Loading Loading @@ -229,13 +306,7 @@ public class NotificationInterruptStateProviderImpl implements NotificationInter return false; } boolean isDreaming = false; try { isDreaming = mDreamManager.isDreaming(); } catch (RemoteException e) { Log.e(TAG, "Failed to query dream manager.", e); } boolean inUse = mPowerManager.isScreenOn() && !isDreaming; boolean inUse = mPowerManager.isScreenOn() && !isDreaming(); if (!inUse) { if (DEBUG_HEADS_UP) { Loading Loading
apex/jobscheduler/service/java/com/android/server/alarm/AlarmManagerService.java +6 −1 Original line number Diff line number Diff line Loading @@ -104,6 +104,7 @@ import android.text.TextUtils; import android.text.format.DateFormat; import android.util.ArrayMap; import android.util.ArraySet; import android.util.EventLog; import android.util.IndentingPrintWriter; import android.util.Log; import android.util.LongArrayQueue; Loading Loading @@ -2031,7 +2032,11 @@ public class AlarmManagerService extends SystemService { + " reached for uid: " + UserHandle.formatUid(callingUid) + ", callingPackage: " + callingPackage; Slog.w(TAG, errorMsg); if (callingUid != Process.SYSTEM_UID) { throw new IllegalStateException(errorMsg); } else { EventLog.writeEvent(0x534e4554, "234441463", -1, errorMsg); } } setImplLocked(type, triggerAtTime, triggerElapsed, windowLength, interval, operation, directReceiver, listenerTag, flags, workSource, alarmClock, callingUid, Loading
core/java/android/app/ActivityOptions.java +5 −0 Original line number Diff line number Diff line Loading @@ -1352,6 +1352,11 @@ public class ActivityOptions { return mRemoteTransition; } /** @hide */ public void setRemoteTransition(@Nullable RemoteTransition remoteTransition) { mRemoteTransition = remoteTransition; } /** @hide */ public static ActivityOptions fromBundle(Bundle bOptions) { return bOptions != null ? new ActivityOptions(bOptions) : null; Loading
core/java/android/view/inputmethod/InputMethodManager.java +1 −1 Original line number Diff line number Diff line Loading @@ -2958,7 +2958,7 @@ public final class InputMethodManager { @UnsupportedAppUsage public int getInputMethodWindowVisibleHeight() { try { return mService.getInputMethodWindowVisibleHeight(); return mService.getInputMethodWindowVisibleHeight(mClient); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } Loading
core/java/com/android/internal/view/IInputMethodManager.aidl +1 −1 Original line number Diff line number Diff line Loading @@ -67,7 +67,7 @@ interface IInputMethodManager { void setAdditionalInputMethodSubtypes(String id, in InputMethodSubtype[] subtypes); // This is kept due to @UnsupportedAppUsage. // TODO(Bug 113914148): Consider removing this. int getInputMethodWindowVisibleHeight(); int getInputMethodWindowVisibleHeight(in IInputMethodClient client); oneway void reportPerceptibleAsync(in IBinder windowToken, boolean perceptible); /** Remove the IME surface. Requires INTERNAL_SYSTEM_WINDOW permission. */ Loading
packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/NotificationInterruptStateProviderImpl.java +81 −10 Original line number Diff line number Diff line Loading @@ -176,9 +176,86 @@ public class NotificationInterruptStateProviderImpl implements NotificationInter */ @Override public boolean shouldLaunchFullScreenIntentWhenAdded(NotificationEntry entry) { return entry.getSbn().getNotification().fullScreenIntent != null && (!shouldHeadsUp(entry) || mStatusBarStateController.getState() == StatusBarState.KEYGUARD); if (entry.getSbn().getNotification().fullScreenIntent == null) { return false; } // Never show FSI when suppressed by DND if (entry.shouldSuppressFullScreenIntent()) { if (DEBUG) { Log.d(TAG, "No FullScreenIntent: Suppressed by DND: " + entry.getKey()); } return false; } // Never show FSI if importance is not HIGH if (entry.getImportance() < NotificationManager.IMPORTANCE_HIGH) { if (DEBUG) { Log.d(TAG, "No FullScreenIntent: Not important enough: " + entry.getKey()); } return false; } // If the notification has suppressive GroupAlertBehavior, block FSI and warn. StatusBarNotification sbn = entry.getSbn(); if (sbn.isGroup() && sbn.getNotification().suppressAlertingDueToGrouping()) { // b/231322873: Detect and report an event when a notification has both an FSI and a // suppressive groupAlertBehavior, and now correctly block the FSI from firing. final int uid = entry.getSbn().getUid(); android.util.EventLog.writeEvent(0x534e4554, "231322873", uid, "groupAlertBehavior"); if (DEBUG) { Log.w(TAG, "No FullScreenIntent: WARNING: GroupAlertBehavior will prevent HUN: " + entry.getKey()); } return false; } // If the screen is off, then launch the FullScreenIntent if (!mPowerManager.isInteractive()) { if (DEBUG) { Log.d(TAG, "FullScreenIntent: Device is not interactive: " + entry.getKey()); } return true; } // If the device is currently dreaming, then launch the FullScreenIntent if (isDreaming()) { if (DEBUG) { Log.d(TAG, "FullScreenIntent: Device is dreaming: " + entry.getKey()); } return true; } // If the keyguard is showing, then launch the FullScreenIntent if (mStatusBarStateController.getState() == StatusBarState.KEYGUARD) { if (DEBUG) { Log.d(TAG, "FullScreenIntent: Keyguard is showing: " + entry.getKey()); } return true; } // If the notification should HUN, then we don't need FSI if (shouldHeadsUp(entry)) { if (DEBUG) { Log.d(TAG, "No FullScreenIntent: Expected to HUN: " + entry.getKey()); } return false; } // If the notification won't HUN for some other reason (DND/snooze/etc), launch FSI. if (DEBUG) { Log.d(TAG, "FullScreenIntent: Expected not to HUN: " + entry.getKey()); } return true; } private boolean isDreaming() { try { return mDreamManager.isDreaming(); } catch (RemoteException e) { Log.e(TAG, "Failed to query dream manager.", e); return false; } } private boolean shouldHeadsUpWhenAwake(NotificationEntry entry) { Loading Loading @@ -229,13 +306,7 @@ public class NotificationInterruptStateProviderImpl implements NotificationInter return false; } boolean isDreaming = false; try { isDreaming = mDreamManager.isDreaming(); } catch (RemoteException e) { Log.e(TAG, "Failed to query dream manager.", e); } boolean inUse = mPowerManager.isScreenOn() && !isDreaming; boolean inUse = mPowerManager.isScreenOn() && !isDreaming(); if (!inUse) { if (DEBUG_HEADS_UP) { Loading