Merge change 6555 into donut
* changes: Make it so the notification manager doesn't mysteriously beep during boot.
This commit is contained in:
@@ -88,7 +88,8 @@ class NotificationManagerService extends INotificationManager.Stub
|
|||||||
|
|
||||||
private NotificationRecord mSoundNotification;
|
private NotificationRecord mSoundNotification;
|
||||||
private AsyncPlayer mSound;
|
private AsyncPlayer mSound;
|
||||||
private int mDisabledNotifications;
|
private boolean mSystemReady;
|
||||||
|
private int mDisabledNotifications = StatusBarManager.DISABLE_NOTIFICATION_ALERTS;
|
||||||
|
|
||||||
private NotificationRecord mVibrateNotification;
|
private NotificationRecord mVibrateNotification;
|
||||||
private Vibrator mVibrator = new Vibrator();
|
private Vibrator mVibrator = new Vibrator();
|
||||||
@@ -377,6 +378,11 @@ class NotificationManagerService extends INotificationManager.Stub
|
|||||||
mSettingsObserver.observe();
|
mSettingsObserver.observe();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void systemReady() {
|
||||||
|
// no beeping until we're basically done booting
|
||||||
|
mSystemReady = true;
|
||||||
|
}
|
||||||
|
|
||||||
// Toasts
|
// Toasts
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
public void enqueueToast(String pkg, ITransientNotification callback, int duration)
|
public void enqueueToast(String pkg, ITransientNotification callback, int duration)
|
||||||
@@ -637,7 +643,7 @@ class NotificationManagerService extends INotificationManager.Stub
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
sendAccessibilityEventTypeNotificationChangedDoCheck(notification, pkg);
|
sendAccessibilityEvent(notification, pkg);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
if (old != null && old.statusBarKey != null) {
|
if (old != null && old.statusBarKey != null) {
|
||||||
@@ -654,7 +660,8 @@ class NotificationManagerService extends INotificationManager.Stub
|
|||||||
// If we're not supposed to beep, vibrate, etc. then don't.
|
// If we're not supposed to beep, vibrate, etc. then don't.
|
||||||
if (((mDisabledNotifications & StatusBarManager.DISABLE_NOTIFICATION_ALERTS) == 0)
|
if (((mDisabledNotifications & StatusBarManager.DISABLE_NOTIFICATION_ALERTS) == 0)
|
||||||
&& (!(old != null
|
&& (!(old != null
|
||||||
&& (notification.flags & Notification.FLAG_ONLY_ALERT_ONCE) != 0 ))) {
|
&& (notification.flags & Notification.FLAG_ONLY_ALERT_ONCE) != 0 ))
|
||||||
|
&& mSystemReady) {
|
||||||
// sound
|
// sound
|
||||||
final boolean useDefaultSound =
|
final boolean useDefaultSound =
|
||||||
(notification.defaults & Notification.DEFAULT_SOUND) != 0;
|
(notification.defaults & Notification.DEFAULT_SOUND) != 0;
|
||||||
@@ -721,8 +728,7 @@ class NotificationManagerService extends INotificationManager.Stub
|
|||||||
idOut[0] = id;
|
idOut[0] = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void sendAccessibilityEventTypeNotificationChangedDoCheck(Notification notification,
|
private void sendAccessibilityEvent(Notification notification, CharSequence packageName) {
|
||||||
CharSequence packageName) {
|
|
||||||
AccessibilityManager manager = AccessibilityManager.getInstance(mContext);
|
AccessibilityManager manager = AccessibilityManager.getInstance(mContext);
|
||||||
if (!manager.isEnabled()) {
|
if (!manager.isEnabled()) {
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -190,6 +190,7 @@ class ServerThread extends Thread {
|
|||||||
StatusBarService statusBar = null;
|
StatusBarService statusBar = null;
|
||||||
InputMethodManagerService imm = null;
|
InputMethodManagerService imm = null;
|
||||||
AppWidgetService appWidget = null;
|
AppWidgetService appWidget = null;
|
||||||
|
NotificationManagerService notification = null;
|
||||||
|
|
||||||
if (factoryTest != SystemServer.FACTORY_TEST_LOW_LEVEL) {
|
if (factoryTest != SystemServer.FACTORY_TEST_LOW_LEVEL) {
|
||||||
try {
|
try {
|
||||||
@@ -240,8 +241,8 @@ class ServerThread extends Thread {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
Log.i(TAG, "Starting Notification Manager.");
|
Log.i(TAG, "Starting Notification Manager.");
|
||||||
ServiceManager.addService(Context.NOTIFICATION_SERVICE,
|
notification = new NotificationManagerService(context, statusBar, hardware);
|
||||||
new NotificationManagerService(context, statusBar, hardware));
|
ServiceManager.addService(Context.NOTIFICATION_SERVICE, notification);
|
||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
Log.e(TAG, "Failure starting Notification Manager", e);
|
Log.e(TAG, "Failure starting Notification Manager", e);
|
||||||
}
|
}
|
||||||
@@ -348,6 +349,11 @@ class ServerThread extends Thread {
|
|||||||
|
|
||||||
// It is now time to start up the app processes...
|
// It is now time to start up the app processes...
|
||||||
boolean safeMode = wm.detectSafeMode();
|
boolean safeMode = wm.detectSafeMode();
|
||||||
|
|
||||||
|
if (notification != null) {
|
||||||
|
notification.systemReady();
|
||||||
|
}
|
||||||
|
|
||||||
if (statusBar != null) {
|
if (statusBar != null) {
|
||||||
statusBar.systemReady();
|
statusBar.systemReady();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user