livedisplay: Fix bad state after bootup
* Make sure all modules are updated, and clean up a little code. Change-Id: Id02ddb1558deea4451783fbe27f495d63f63c910
This commit is contained in:
parent
0ec60c69a0
commit
7cd7f79c75
|
@ -25,7 +25,6 @@ import android.animation.ValueAnimator.AnimatorUpdateListener;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.UserHandle;
|
|
||||||
import android.text.format.DateUtils;
|
import android.text.format.DateUtils;
|
||||||
import android.util.MathUtils;
|
import android.util.MathUtils;
|
||||||
import android.util.Slog;
|
import android.util.Slog;
|
||||||
|
|
|
@ -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_DAY;
|
||||||
import static cyanogenmod.hardware.LiveDisplayManager.MODE_FIRST;
|
import static cyanogenmod.hardware.LiveDisplayManager.MODE_FIRST;
|
||||||
import static cyanogenmod.hardware.LiveDisplayManager.MODE_LAST;
|
import static cyanogenmod.hardware.LiveDisplayManager.MODE_LAST;
|
||||||
|
import static cyanogenmod.hardware.LiveDisplayManager.MODE_OFF;
|
||||||
import static cyanogenmod.hardware.LiveDisplayManager.MODE_OUTDOOR;
|
import static cyanogenmod.hardware.LiveDisplayManager.MODE_OUTDOOR;
|
||||||
|
|
||||||
import android.app.Notification;
|
import android.app.Notification;
|
||||||
|
@ -184,23 +185,25 @@ public class LiveDisplayService extends SystemService {
|
||||||
mDisplayManager = (DisplayManager) getContext().getSystemService(
|
mDisplayManager = (DisplayManager) getContext().getSystemService(
|
||||||
Context.DISPLAY_SERVICE);
|
Context.DISPLAY_SERVICE);
|
||||||
mDisplayManager.registerDisplayListener(mDisplayListener, null);
|
mDisplayManager.registerDisplayListener(mDisplayListener, null);
|
||||||
|
updateDisplayState(mDisplayManager.getDisplay(Display.DEFAULT_DISPLAY).getState());
|
||||||
|
|
||||||
PowerManagerInternal pmi = LocalServices.getService(PowerManagerInternal.class);
|
PowerManagerInternal pmi = LocalServices.getService(PowerManagerInternal.class);
|
||||||
pmi.registerLowPowerModeObserver(mLowPowerModeListener);
|
pmi.registerLowPowerModeObserver(mLowPowerModeListener);
|
||||||
|
|
||||||
mTwilightManager = LocalServices.getService(TwilightManager.class);
|
|
||||||
mTwilightManager.registerListener(mTwilightListener, mHandler);
|
|
||||||
updateTwilight();
|
|
||||||
|
|
||||||
updateDisplayState(mDisplayManager.getDisplay(Display.DEFAULT_DISPLAY).getState());
|
|
||||||
|
|
||||||
if (mConfig.hasModeSupport()) {
|
if (mConfig.hasModeSupport()) {
|
||||||
mModeObserver = new ModeObserver(mHandler);
|
mModeObserver = new ModeObserver(mHandler);
|
||||||
mModeObserver.update();
|
mModeObserver.update();
|
||||||
|
|
||||||
mContext.registerReceiver(mNextModeReceiver,
|
mContext.registerReceiver(mNextModeReceiver,
|
||||||
new IntentFilter(ACTION_NEXT_MODE));
|
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;
|
mInitialized = true;
|
||||||
|
@ -312,9 +315,7 @@ public class LiveDisplayService extends SystemService {
|
||||||
@Override
|
@Override
|
||||||
public void onReceive(Context context, Intent intent) {
|
public void onReceive(Context context, Intent intent) {
|
||||||
int mode = intent.getIntExtra(EXTRA_NEXT_MODE, mConfig.getDefaultMode());
|
int mode = intent.getIntExtra(EXTRA_NEXT_MODE, mConfig.getDefaultMode());
|
||||||
if (mConfig.hasFeature(mode) && mode >= MODE_FIRST && mode <= MODE_LAST) {
|
mModeObserver.setMode(mode);
|
||||||
putInt(CMSettings.System.DISPLAY_TEMPERATURE_MODE, mode);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -334,11 +335,7 @@ public class LiveDisplayService extends SystemService {
|
||||||
public boolean setMode(int mode) {
|
public boolean setMode(int mode) {
|
||||||
mContext.enforceCallingOrSelfPermission(
|
mContext.enforceCallingOrSelfPermission(
|
||||||
cyanogenmod.platform.Manifest.permission.MANAGE_LIVEDISPLAY, null);
|
cyanogenmod.platform.Manifest.permission.MANAGE_LIVEDISPLAY, null);
|
||||||
if (mConfig.hasFeature(mode) && mode >= MODE_FIRST && mode <= MODE_LAST) {
|
return mModeObserver.setMode(mode);
|
||||||
putInt(CMSettings.System.DISPLAY_TEMPERATURE_MODE, mode);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -498,7 +495,7 @@ public class LiveDisplayService extends SystemService {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void update() {
|
protected void update() {
|
||||||
mHandler.obtainMessage(MSG_MODE_CHANGED, getMode(), 0).sendToTarget();
|
mHandler.obtainMessage(MSG_MODE_CHANGED, getMode()).sendToTarget();
|
||||||
publishCustomTile();
|
publishCustomTile();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -506,6 +503,14 @@ public class LiveDisplayService extends SystemService {
|
||||||
return getInt(CMSettings.System.DISPLAY_TEMPERATURE_MODE,
|
return getInt(CMSettings.System.DISPLAY_TEMPERATURE_MODE,
|
||||||
mConfig.getDefaultMode());
|
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
|
// Night watchman
|
||||||
|
@ -661,7 +666,8 @@ public class LiveDisplayService extends SystemService {
|
||||||
break;
|
break;
|
||||||
case MSG_MODE_CHANGED:
|
case MSG_MODE_CHANGED:
|
||||||
stopNudgingMe();
|
stopNudgingMe();
|
||||||
updateMode(msg.arg1);
|
int mode = msg.obj == null ? MODE_OFF : (Integer)msg.obj;
|
||||||
|
updateMode(mode);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue