From 7cd7f79c75841fa98171f1f6ce112927d865e395 Mon Sep 17 00:00:00 2001 From: Steve Kondik Date: Fri, 15 Apr 2016 02:49:37 -0700 Subject: [PATCH] livedisplay: Fix bad state after bootup * Make sure all modules are updated, and clean up a little code. Change-Id: Id02ddb1558deea4451783fbe27f495d63f63c910 --- .../display/ColorTemperatureController.java | 1 - .../internal/display/LiveDisplayService.java | 40 +++++++++++-------- 2 files changed, 23 insertions(+), 18 deletions(-) diff --git a/cm/lib/main/java/org/cyanogenmod/platform/internal/display/ColorTemperatureController.java b/cm/lib/main/java/org/cyanogenmod/platform/internal/display/ColorTemperatureController.java index 9c4253e..9f7da60 100644 --- a/cm/lib/main/java/org/cyanogenmod/platform/internal/display/ColorTemperatureController.java +++ b/cm/lib/main/java/org/cyanogenmod/platform/internal/display/ColorTemperatureController.java @@ -25,7 +25,6 @@ import android.animation.ValueAnimator.AnimatorUpdateListener; import android.content.Context; import android.net.Uri; import android.os.Handler; -import android.os.UserHandle; import android.text.format.DateUtils; import android.util.MathUtils; import android.util.Slog; diff --git a/cm/lib/main/java/org/cyanogenmod/platform/internal/display/LiveDisplayService.java b/cm/lib/main/java/org/cyanogenmod/platform/internal/display/LiveDisplayService.java index a46d10a..2855c82 100644 --- a/cm/lib/main/java/org/cyanogenmod/platform/internal/display/LiveDisplayService.java +++ b/cm/lib/main/java/org/cyanogenmod/platform/internal/display/LiveDisplayService.java @@ -19,6 +19,7 @@ import static cyanogenmod.hardware.LiveDisplayManager.FEATURE_MANAGED_OUTDOOR_MO import static cyanogenmod.hardware.LiveDisplayManager.MODE_DAY; import static cyanogenmod.hardware.LiveDisplayManager.MODE_FIRST; import static cyanogenmod.hardware.LiveDisplayManager.MODE_LAST; +import static cyanogenmod.hardware.LiveDisplayManager.MODE_OFF; import static cyanogenmod.hardware.LiveDisplayManager.MODE_OUTDOOR; import android.app.Notification; @@ -184,23 +185,25 @@ public class LiveDisplayService extends SystemService { mDisplayManager = (DisplayManager) getContext().getSystemService( Context.DISPLAY_SERVICE); mDisplayManager.registerDisplayListener(mDisplayListener, null); + updateDisplayState(mDisplayManager.getDisplay(Display.DEFAULT_DISPLAY).getState()); PowerManagerInternal pmi = LocalServices.getService(PowerManagerInternal.class); pmi.registerLowPowerModeObserver(mLowPowerModeListener); - mTwilightManager = LocalServices.getService(TwilightManager.class); - mTwilightManager.registerListener(mTwilightListener, mHandler); - updateTwilight(); - - updateDisplayState(mDisplayManager.getDisplay(Display.DEFAULT_DISPLAY).getState()); - if (mConfig.hasModeSupport()) { mModeObserver = new ModeObserver(mHandler); mModeObserver.update(); mContext.registerReceiver(mNextModeReceiver, new IntentFilter(ACTION_NEXT_MODE)); - publishCustomTile(); + } + + mTwilightManager = LocalServices.getService(TwilightManager.class); + mTwilightManager.registerListener(mTwilightListener, mHandler); + updateTwilight(); + + for (int i = 0; i < mFeatures.size(); i++) { + mFeatures.get(i).onSettingsChanged(null); } mInitialized = true; @@ -312,9 +315,7 @@ public class LiveDisplayService extends SystemService { @Override public void onReceive(Context context, Intent intent) { int mode = intent.getIntExtra(EXTRA_NEXT_MODE, mConfig.getDefaultMode()); - if (mConfig.hasFeature(mode) && mode >= MODE_FIRST && mode <= MODE_LAST) { - putInt(CMSettings.System.DISPLAY_TEMPERATURE_MODE, mode); - } + mModeObserver.setMode(mode); } }; @@ -334,11 +335,7 @@ public class LiveDisplayService extends SystemService { public boolean setMode(int mode) { mContext.enforceCallingOrSelfPermission( cyanogenmod.platform.Manifest.permission.MANAGE_LIVEDISPLAY, null); - if (mConfig.hasFeature(mode) && mode >= MODE_FIRST && mode <= MODE_LAST) { - putInt(CMSettings.System.DISPLAY_TEMPERATURE_MODE, mode); - return true; - } - return false; + return mModeObserver.setMode(mode); } @Override @@ -498,7 +495,7 @@ public class LiveDisplayService extends SystemService { @Override protected void update() { - mHandler.obtainMessage(MSG_MODE_CHANGED, getMode(), 0).sendToTarget(); + mHandler.obtainMessage(MSG_MODE_CHANGED, getMode()).sendToTarget(); publishCustomTile(); } @@ -506,6 +503,14 @@ public class LiveDisplayService extends SystemService { return getInt(CMSettings.System.DISPLAY_TEMPERATURE_MODE, mConfig.getDefaultMode()); } + + boolean setMode(int mode) { + if (mConfig.hasFeature(mode) && mode >= MODE_FIRST && mode <= MODE_LAST) { + putInt(CMSettings.System.DISPLAY_TEMPERATURE_MODE, mode); + return true; + } + return false; + } } // Night watchman @@ -661,7 +666,8 @@ public class LiveDisplayService extends SystemService { break; case MSG_MODE_CHANGED: stopNudgingMe(); - updateMode(msg.arg1); + int mode = msg.obj == null ? MODE_OFF : (Integer)msg.obj; + updateMode(mode); break; } }