设置-显示-屏保,
打开关闭
设置代码在 ./packages/apps/Settings/src/com/android/settings/dream/DreamMainSwitchPreferenceController.java
,
@Overridepublic boolean isChecked() {return mBackend.isEnabled();}@Overridepublic boolean setChecked(boolean isChecked) {mBackend.setEnabled(isChecked);return true;}
追溯到 ./frameworks/base/packages/SettingsLib/src/com/android/settingslib/dream/DreamBackend.java
,
public boolean isEnabled() {return getBoolean(Settings.Secure.SCREENSAVER_ENABLED, mDreamsEnabledByDefault);}public void setEnabled(boolean value) {logd("setEnabled(%s)", value);setBoolean(Settings.Secure.SCREENSAVER_ENABLED, value);}
启用时机
可选 充电时、插入基座时,
设置代码在 ./packages/apps/Settings/src/com/android/settings/dream/WhenToDreamPicker.java
,
@Overrideprotected String getDefaultKey() {return DreamSettings.getKeyFromSetting(mBackend.getWhenToDreamSetting());}@Overrideprotected boolean setDefaultKey(String key) {mBackend.setWhenToDream(DreamSettings.getSettingFromPrefKey(key));return true;}
追溯到 ./frameworks/base/packages/SettingsLib/src/com/android/settingslib/dream/DreamBackend.java
,
@WhenToDreampublic int getWhenToDreamSetting() {return isActivatedOnDock() && isActivatedOnSleep() ? EITHER: isActivatedOnDock() ? WHILE_DOCKED: isActivatedOnSleep() ? WHILE_CHARGING: NEVER;}public void setWhenToDream(@WhenToDream int whenToDream) {setEnabled(whenToDream != NEVER);switch (whenToDream) {case WHILE_CHARGING:setActivatedOnDock(false);setActivatedOnSleep(true);break;case WHILE_DOCKED:setActivatedOnDock(true);setActivatedOnSleep(false);break;case EITHER:setActivatedOnDock(true);setActivatedOnSleep(true);break;case NEVER:default:break;}}
充电时
public boolean isActivatedOnSleep() {return getBoolean(Settings.Secure.SCREENSAVER_ACTIVATE_ON_SLEEP,mDreamsActivatedOnSleepByDefault);}public void setActivatedOnSleep(boolean value) {logd("setActivatedOnSleep(%s)", value);setBoolean(Settings.Secure.SCREENSAVER_ACTIVATE_ON_SLEEP, value);}
插入基座时
public boolean isActivatedOnDock() {return getBoolean(Settings.Secure.SCREENSAVER_ACTIVATE_ON_DOCK,mDreamsActivatedOnDockByDefault);}public void setActivatedOnDock(boolean value) {logd("setActivatedOnDock(%s)", value);}