Make it so the notification manager doesn't mysteriously

beep during boot.
This commit is contained in:
Joe Onorato
2009-07-08 17:09:14 -07:00
parent d6fe243c1c
commit 302754801c
2 changed files with 19 additions and 7 deletions

View File

@ -88,7 +88,8 @@ class NotificationManagerService extends INotificationManager.Stub
private NotificationRecord mSoundNotification;
private AsyncPlayer mSound;
private int mDisabledNotifications;
private boolean mSystemReady;
private int mDisabledNotifications = StatusBarManager.DISABLE_NOTIFICATION_ALERTS;
private NotificationRecord mVibrateNotification;
private Vibrator mVibrator = new Vibrator();
@ -377,6 +378,11 @@ class NotificationManagerService extends INotificationManager.Stub
mSettingsObserver.observe();
}
void systemReady() {
// no beeping until we're basically done booting
mSystemReady = true;
}
// Toasts
// ============================================================================
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 {
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 (((mDisabledNotifications & StatusBarManager.DISABLE_NOTIFICATION_ALERTS) == 0)
&& (!(old != null
&& (notification.flags & Notification.FLAG_ONLY_ALERT_ONCE) != 0 ))) {
&& (notification.flags & Notification.FLAG_ONLY_ALERT_ONCE) != 0 ))
&& mSystemReady) {
// sound
final boolean useDefaultSound =
(notification.defaults & Notification.DEFAULT_SOUND) != 0;
@ -721,8 +728,7 @@ class NotificationManagerService extends INotificationManager.Stub
idOut[0] = id;
}
private void sendAccessibilityEventTypeNotificationChangedDoCheck(Notification notification,
CharSequence packageName) {
private void sendAccessibilityEvent(Notification notification, CharSequence packageName) {
AccessibilityManager manager = AccessibilityManager.getInstance(mContext);
if (!manager.isEnabled()) {
return;

View File

@ -190,6 +190,7 @@ class ServerThread extends Thread {
StatusBarService statusBar = null;
InputMethodManagerService imm = null;
AppWidgetService appWidget = null;
NotificationManagerService notification = null;
if (factoryTest != SystemServer.FACTORY_TEST_LOW_LEVEL) {
try {
@ -240,8 +241,8 @@ class ServerThread extends Thread {
try {
Log.i(TAG, "Starting Notification Manager.");
ServiceManager.addService(Context.NOTIFICATION_SERVICE,
new NotificationManagerService(context, statusBar, hardware));
notification = new NotificationManagerService(context, statusBar, hardware);
ServiceManager.addService(Context.NOTIFICATION_SERVICE, notification);
} catch (Throwable 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...
boolean safeMode = wm.detectSafeMode();
if (notification != null) {
notification.systemReady();
}
if (statusBar != null) {
statusBar.systemReady();
}