diff options
Diffstat (limited to 'services/java/com/android/server/UiModeManagerService.java')
| -rw-r--r-- | services/java/com/android/server/UiModeManagerService.java | 20 |
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) |
