summaryrefslogtreecommitdiffstats
path: root/services/java/com/android/server/UiModeManagerService.java
diff options
context:
space:
mode:
Diffstat (limited to 'services/java/com/android/server/UiModeManagerService.java')
-rw-r--r--services/java/com/android/server/UiModeManagerService.java20
1 files changed, 19 insertions, 1 deletions
diff --git a/services/java/com/android/server/UiModeManagerService.java b/services/java/com/android/server/UiModeManagerService.java
index 0e456f1..797990e 100644
--- a/services/java/com/android/server/UiModeManagerService.java
+++ b/services/java/com/android/server/UiModeManagerService.java
@@ -48,6 +48,7 @@ import java.io.PrintWriter;
import com.android.internal.R;
import com.android.internal.app.DisableCarModeActivity;
import com.android.server.TwilightService.TwilightState;
+import com.android.internal.app.ThemeUtils;
final class UiModeManagerService extends IUiModeManager.Stub {
private static final String TAG = UiModeManager.class.getSimpleName();
@@ -60,6 +61,7 @@ final class UiModeManagerService extends IUiModeManager.Stub {
private final Context mContext;
private final TwilightService mTwilightService;
private final Handler mHandler = new Handler();
+ private Context mUiContext;
final Object mLock = new Object();
@@ -142,6 +144,13 @@ final class UiModeManagerService extends IUiModeManager.Stub {
}
};
+ private final BroadcastReceiver mThemeChangeReceiver = new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ mUiContext = null;
+ }
+ };
+
private final TwilightService.TwilightListener mTwilightListener =
new TwilightService.TwilightListener() {
@Override
@@ -161,6 +170,8 @@ final class UiModeManagerService extends IUiModeManager.Stub {
mContext.registerReceiver(mBatteryReceiver,
new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
+ ThemeUtils.registerThemeChangeReceiver(mContext, mThemeChangeReceiver);
+
mPowerManager = (PowerManager)context.getSystemService(Context.POWER_SERVICE);
mWakeLock = mPowerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK, TAG);
@@ -549,7 +560,7 @@ final class UiModeManagerService extends IUiModeManager.Stub {
n.flags = Notification.FLAG_ONGOING_EVENT;
n.when = 0;
n.setLatestEventInfo(
- mContext,
+ getUiContext(),
mContext.getString(R.string.car_mode_disable_notification_title),
mContext.getString(R.string.car_mode_disable_notification_message),
PendingIntent.getActivityAsUser(mContext, 0, carModeOffIntent, 0,
@@ -579,6 +590,13 @@ final class UiModeManagerService extends IUiModeManager.Stub {
}
}
+ private Context getUiContext() {
+ if (mUiContext == null) {
+ mUiContext = ThemeUtils.createUiContext(mContext);
+ }
+ return mUiContext != null ? mUiContext : mContext;
+ }
+
@Override
protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
if (mContext.checkCallingOrSelfPermission(android.Manifest.permission.DUMP)