diff options
Diffstat (limited to 'services/java/com/android/server/NotificationManagerService.java')
-rwxr-xr-x | services/java/com/android/server/NotificationManagerService.java | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/services/java/com/android/server/NotificationManagerService.java b/services/java/com/android/server/NotificationManagerService.java index a2bfe78..2ac2a96 100755 --- a/services/java/com/android/server/NotificationManagerService.java +++ b/services/java/com/android/server/NotificationManagerService.java @@ -70,6 +70,8 @@ import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityManager; import android.widget.Toast; +import com.android.internal.app.ThemeUtils; + import java.io.FileDescriptor; import java.io.PrintWriter; import java.util.ArrayList; @@ -102,6 +104,7 @@ public class NotificationManagerService extends INotificationManager.Stub private static final int DEFAULT_STREAM_TYPE = AudioManager.STREAM_NOTIFICATION; final Context mContext; + Context mUiContext; final IActivityManager mAm; final IBinder mForegroundToken = new Binder(); @@ -422,6 +425,13 @@ public class NotificationManagerService extends INotificationManager.Stub } }; + private BroadcastReceiver mThemeChangeReceiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + mUiContext = null; + } + }; + private BroadcastReceiver mIntentReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { @@ -809,6 +819,8 @@ public class NotificationManagerService extends INotificationManager.Stub IntentFilter ledFilter = new IntentFilter(ACTION_UPDATE_LED); mContext.registerReceiver(mIntentReceiver, ledFilter); + ThemeUtils.registerThemeChangeReceiver(mContext, mThemeChangeReceiver); + SettingsObserver observer = new SettingsObserver(mHandler); observer.observe(); @@ -1819,7 +1831,7 @@ public class NotificationManagerService extends INotificationManager.Stub PendingIntent pi = PendingIntent.getActivity(mContext, 0, intent, 0); - mAdbNotification.setLatestEventInfo(mContext, title, message, pi); + mAdbNotification.setLatestEventInfo(getUiContext(), title, message, pi); mAdbNotificationShown = true; mAdbNotificationIsUsb = !networkEnabled; @@ -1837,6 +1849,13 @@ public class NotificationManagerService extends INotificationManager.Stub } } + private Context getUiContext() { + if (mUiContext == null) { + mUiContext = ThemeUtils.createUiContext(mContext); + } + return mUiContext != null ? mUiContext : mContext; + } + private void updateNotificationPulse() { synchronized (mNotificationList) { updateLightsLocked(); |