Loading core/java/android/text/Layout.java +7 −7 Original line number Diff line number Diff line Loading @@ -2214,22 +2214,22 @@ public abstract class Layout { int ellipsisStart = getEllipsisStart(line); int linestart = getLineStart(line); for (int i = ellipsisStart; i < ellipsisStart + ellipsisCount; i++) { final int min = Math.max(0, start - ellipsisStart - linestart); final int max = Math.min(ellipsisCount, end - ellipsisStart - linestart); for (int i = min; i < max; i++) { char c; if (i == ellipsisStart) { if (i == 0) { c = getEllipsisChar(method); // ellipsis } else { c = '\uFEFF'; // 0-width space } int a = i + linestart; if (a >= start && a < end) { int a = i + ellipsisStart + linestart; dest[destoff + a - start] = c; } } } /** * Stores information about bidirectional (left-to-right or right-to-left) Loading services/core/java/com/android/server/am/ActivityManagerShellCommand.java +2 −5 Original line number Diff line number Diff line Loading @@ -60,7 +60,6 @@ import com.android.internal.util.HexDump; import com.android.internal.util.Preconditions; import java.io.BufferedReader; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; Loading Loading @@ -660,8 +659,7 @@ final class ActivityManagerShellCommand extends ShellCommand { return -1; } File file = new File(filename); file.delete(); // Writes an error message to stderr on failure ParcelFileDescriptor fd = openOutputFileForSystem(filename); if (fd == null) { return -1; Loading Loading @@ -812,8 +810,7 @@ final class ActivityManagerShellCommand extends ShellCommand { String process = getNextArgRequired(); String heapFile = getNextArgRequired(); File file = new File(heapFile); file.delete(); // Writes an error message to stderr on failure ParcelFileDescriptor fd = openOutputFileForSystem(heapFile); if (fd == null) { return -1; Loading services/core/java/com/android/server/notification/NotificationManagerService.java 100644 → 100755 +23 −7 Original line number Diff line number Diff line Loading @@ -75,6 +75,7 @@ import android.app.backup.BackupManager; import android.app.IActivityManager; import android.app.INotificationManager; import android.app.ITransientNotification; import android.app.KeyguardManager; import android.app.Notification; import android.app.NotificationChannel; import android.app.NotificationManager.Policy; Loading Loading @@ -334,6 +335,8 @@ public class NotificationManagerService extends SystemService { final ArrayList<ToastRecord> mToastQueue = new ArrayList<>(); final ArrayMap<String, NotificationRecord> mSummaryByGroupKey = new ArrayMap<>(); private KeyguardManager mKeyguardManager; // The last key in this list owns the hardware. ArrayList<String> mLights = new ArrayList<>(); Loading Loading @@ -1472,6 +1475,7 @@ public class NotificationManagerService extends SystemService { mAudioManager = (AudioManager) getContext().getSystemService(Context.AUDIO_SERVICE); mAudioManagerInternal = getLocalService(AudioManagerInternal.class); mWindowManagerInternal = LocalServices.getService(WindowManagerInternal.class); mKeyguardManager = getContext().getSystemService(KeyguardManager.class); mZenModeHelper.onSystemReady(); } else if (phase == SystemService.PHASE_THIRD_PARTY_APPS_CAN_START) { // This observer will force an update when observe is called, causing us to Loading Loading @@ -4075,7 +4079,6 @@ public class NotificationManagerService extends SystemService { boolean beep = false; boolean blink = false; final Notification notification = record.sbn.getNotification(); final String key = record.getKey(); // Should this notification make noise, vibe, or use the LED? Loading @@ -4092,7 +4095,7 @@ public class NotificationManagerService extends SystemService { // If the notification will appear in the status bar, it should send an accessibility // event if (!record.isUpdate && record.getImportance() > IMPORTANCE_MIN) { sendAccessibilityEvent(notification, record.sbn.getPackageName()); sendAccessibilityEvent(record); sentAccessibilityEvent = true; } Loading @@ -4116,7 +4119,7 @@ public class NotificationManagerService extends SystemService { boolean hasAudibleAlert = hasValidSound || hasValidVibrate; if (hasAudibleAlert && !shouldMuteNotificationLocked(record)) { if (!sentAccessibilityEvent) { sendAccessibilityEvent(notification, record.sbn.getPackageName()); sendAccessibilityEvent(record); sentAccessibilityEvent = true; } if (DBG) Slog.v(TAG, "Interrupting!"); Loading Loading @@ -4634,17 +4637,30 @@ public class NotificationManagerService extends SystemService { return (x < low) ? low : ((x > high) ? high : x); } void sendAccessibilityEvent(Notification notification, CharSequence packageName) { void sendAccessibilityEvent(NotificationRecord record) { if (!mAccessibilityManager.isEnabled()) { return; } AccessibilityEvent event = final Notification notification = record.getNotification(); final CharSequence packageName = record.sbn.getPackageName(); final AccessibilityEvent event = AccessibilityEvent.obtain(AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED); event.setPackageName(packageName); event.setClassName(Notification.class.getName()); final int visibilityOverride = record.getPackageVisibilityOverride(); final int notifVisibility = visibilityOverride == NotificationManager.VISIBILITY_NO_OVERRIDE ? notification.visibility : visibilityOverride; final int userId = record.getUser().getIdentifier(); final boolean needPublic = userId >= 0 && mKeyguardManager.isDeviceLocked(userId); if (needPublic && notifVisibility != Notification.VISIBILITY_PUBLIC) { // Emit the public version if we're on the lockscreen and this notification isn't // publicly visible. event.setParcelableData(notification.publicVersion); } else { event.setParcelableData(notification); CharSequence tickerText = notification.tickerText; } final CharSequence tickerText = notification.tickerText; if (!TextUtils.isEmpty(tickerText)) { event.getText().add(tickerText); } Loading services/core/java/com/android/server/policy/PhoneWindowManager.java +11 −1 Original line number Diff line number Diff line Loading @@ -887,6 +887,8 @@ public class PhoneWindowManager implements WindowManagerPolicy { private final MutableBoolean mTmpBoolean = new MutableBoolean(false); private boolean mLockNowPending = false; private final List<DeviceKeyHandler> mDeviceKeyHandlers = new ArrayList<>(); private LineageButtons mLineageButtons; Loading Loading @@ -8285,6 +8287,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { mKeyguardDelegate.doKeyguardTimeout(options); } mLockScreenTimerActive = false; mLockNowPending = false; options = null; } } Loading @@ -8294,7 +8297,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { } } ScreenLockTimeout mScreenLockTimeout = new ScreenLockTimeout(); final ScreenLockTimeout mScreenLockTimeout = new ScreenLockTimeout(); @Override public void lockNow(Bundle options) { Loading @@ -8306,10 +8309,17 @@ public class PhoneWindowManager implements WindowManagerPolicy { mScreenLockTimeout.setLockOptions(options); } mHandler.post(mScreenLockTimeout); synchronized (mScreenLockTimeout) { mLockNowPending = true; } } private void updateLockScreenTimeout() { synchronized (mScreenLockTimeout) { if (mLockNowPending) { Log.w(TAG, "lockNow pending, ignore updating lockscreen timeout"); return; } boolean enable = (mAllowLockscreenWhenOn && mAwake && mKeyguardDelegate != null && mKeyguardDelegate.isSecure(mCurrentUserId)); if (mLockScreenTimerActive != enable) { Loading Loading
core/java/android/text/Layout.java +7 −7 Original line number Diff line number Diff line Loading @@ -2214,22 +2214,22 @@ public abstract class Layout { int ellipsisStart = getEllipsisStart(line); int linestart = getLineStart(line); for (int i = ellipsisStart; i < ellipsisStart + ellipsisCount; i++) { final int min = Math.max(0, start - ellipsisStart - linestart); final int max = Math.min(ellipsisCount, end - ellipsisStart - linestart); for (int i = min; i < max; i++) { char c; if (i == ellipsisStart) { if (i == 0) { c = getEllipsisChar(method); // ellipsis } else { c = '\uFEFF'; // 0-width space } int a = i + linestart; if (a >= start && a < end) { int a = i + ellipsisStart + linestart; dest[destoff + a - start] = c; } } } /** * Stores information about bidirectional (left-to-right or right-to-left) Loading
services/core/java/com/android/server/am/ActivityManagerShellCommand.java +2 −5 Original line number Diff line number Diff line Loading @@ -60,7 +60,6 @@ import com.android.internal.util.HexDump; import com.android.internal.util.Preconditions; import java.io.BufferedReader; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; Loading Loading @@ -660,8 +659,7 @@ final class ActivityManagerShellCommand extends ShellCommand { return -1; } File file = new File(filename); file.delete(); // Writes an error message to stderr on failure ParcelFileDescriptor fd = openOutputFileForSystem(filename); if (fd == null) { return -1; Loading Loading @@ -812,8 +810,7 @@ final class ActivityManagerShellCommand extends ShellCommand { String process = getNextArgRequired(); String heapFile = getNextArgRequired(); File file = new File(heapFile); file.delete(); // Writes an error message to stderr on failure ParcelFileDescriptor fd = openOutputFileForSystem(heapFile); if (fd == null) { return -1; Loading
services/core/java/com/android/server/notification/NotificationManagerService.java 100644 → 100755 +23 −7 Original line number Diff line number Diff line Loading @@ -75,6 +75,7 @@ import android.app.backup.BackupManager; import android.app.IActivityManager; import android.app.INotificationManager; import android.app.ITransientNotification; import android.app.KeyguardManager; import android.app.Notification; import android.app.NotificationChannel; import android.app.NotificationManager.Policy; Loading Loading @@ -334,6 +335,8 @@ public class NotificationManagerService extends SystemService { final ArrayList<ToastRecord> mToastQueue = new ArrayList<>(); final ArrayMap<String, NotificationRecord> mSummaryByGroupKey = new ArrayMap<>(); private KeyguardManager mKeyguardManager; // The last key in this list owns the hardware. ArrayList<String> mLights = new ArrayList<>(); Loading Loading @@ -1472,6 +1475,7 @@ public class NotificationManagerService extends SystemService { mAudioManager = (AudioManager) getContext().getSystemService(Context.AUDIO_SERVICE); mAudioManagerInternal = getLocalService(AudioManagerInternal.class); mWindowManagerInternal = LocalServices.getService(WindowManagerInternal.class); mKeyguardManager = getContext().getSystemService(KeyguardManager.class); mZenModeHelper.onSystemReady(); } else if (phase == SystemService.PHASE_THIRD_PARTY_APPS_CAN_START) { // This observer will force an update when observe is called, causing us to Loading Loading @@ -4075,7 +4079,6 @@ public class NotificationManagerService extends SystemService { boolean beep = false; boolean blink = false; final Notification notification = record.sbn.getNotification(); final String key = record.getKey(); // Should this notification make noise, vibe, or use the LED? Loading @@ -4092,7 +4095,7 @@ public class NotificationManagerService extends SystemService { // If the notification will appear in the status bar, it should send an accessibility // event if (!record.isUpdate && record.getImportance() > IMPORTANCE_MIN) { sendAccessibilityEvent(notification, record.sbn.getPackageName()); sendAccessibilityEvent(record); sentAccessibilityEvent = true; } Loading @@ -4116,7 +4119,7 @@ public class NotificationManagerService extends SystemService { boolean hasAudibleAlert = hasValidSound || hasValidVibrate; if (hasAudibleAlert && !shouldMuteNotificationLocked(record)) { if (!sentAccessibilityEvent) { sendAccessibilityEvent(notification, record.sbn.getPackageName()); sendAccessibilityEvent(record); sentAccessibilityEvent = true; } if (DBG) Slog.v(TAG, "Interrupting!"); Loading Loading @@ -4634,17 +4637,30 @@ public class NotificationManagerService extends SystemService { return (x < low) ? low : ((x > high) ? high : x); } void sendAccessibilityEvent(Notification notification, CharSequence packageName) { void sendAccessibilityEvent(NotificationRecord record) { if (!mAccessibilityManager.isEnabled()) { return; } AccessibilityEvent event = final Notification notification = record.getNotification(); final CharSequence packageName = record.sbn.getPackageName(); final AccessibilityEvent event = AccessibilityEvent.obtain(AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED); event.setPackageName(packageName); event.setClassName(Notification.class.getName()); final int visibilityOverride = record.getPackageVisibilityOverride(); final int notifVisibility = visibilityOverride == NotificationManager.VISIBILITY_NO_OVERRIDE ? notification.visibility : visibilityOverride; final int userId = record.getUser().getIdentifier(); final boolean needPublic = userId >= 0 && mKeyguardManager.isDeviceLocked(userId); if (needPublic && notifVisibility != Notification.VISIBILITY_PUBLIC) { // Emit the public version if we're on the lockscreen and this notification isn't // publicly visible. event.setParcelableData(notification.publicVersion); } else { event.setParcelableData(notification); CharSequence tickerText = notification.tickerText; } final CharSequence tickerText = notification.tickerText; if (!TextUtils.isEmpty(tickerText)) { event.getText().add(tickerText); } Loading
services/core/java/com/android/server/policy/PhoneWindowManager.java +11 −1 Original line number Diff line number Diff line Loading @@ -887,6 +887,8 @@ public class PhoneWindowManager implements WindowManagerPolicy { private final MutableBoolean mTmpBoolean = new MutableBoolean(false); private boolean mLockNowPending = false; private final List<DeviceKeyHandler> mDeviceKeyHandlers = new ArrayList<>(); private LineageButtons mLineageButtons; Loading Loading @@ -8285,6 +8287,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { mKeyguardDelegate.doKeyguardTimeout(options); } mLockScreenTimerActive = false; mLockNowPending = false; options = null; } } Loading @@ -8294,7 +8297,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { } } ScreenLockTimeout mScreenLockTimeout = new ScreenLockTimeout(); final ScreenLockTimeout mScreenLockTimeout = new ScreenLockTimeout(); @Override public void lockNow(Bundle options) { Loading @@ -8306,10 +8309,17 @@ public class PhoneWindowManager implements WindowManagerPolicy { mScreenLockTimeout.setLockOptions(options); } mHandler.post(mScreenLockTimeout); synchronized (mScreenLockTimeout) { mLockNowPending = true; } } private void updateLockScreenTimeout() { synchronized (mScreenLockTimeout) { if (mLockNowPending) { Log.w(TAG, "lockNow pending, ignore updating lockscreen timeout"); return; } boolean enable = (mAllowLockscreenWhenOn && mAwake && mKeyguardDelegate != null && mKeyguardDelegate.isSecure(mCurrentUserId)); if (mLockScreenTimerActive != enable) { Loading