Alex

Android software development engineer

Welcome to my web site


DreamManager

目录

DreamManager

public final class DreamManager {
    public static final int WHILE_CHARGING = 0;
    public static final int WHILE_DOCKED = 1;
    public static final int EITHER = 2;
    public static final int NEVER = 3;

    public static final String SCREENSAVER_COMPONENT = "screensaver_component";
    public static final String SCREENSAVER_ENABLED = "screensaver_enabled";
    public static final String SCREENSAVER_ACTIVATE_ON_DOCK = "screensaver_activate_on_dock";
    public static final String SCREENSAVER_ACTIVATE_ON_SLEEP = "screensaver_activate_on_sleep";

    private static final DreamManager sInstance = new DreamManager();

    public static DreamManager getInstance() {
        return sInstance;
    }

    private DreamManager() {
        mContext = getApplicationContext();
    }

    private Context getApplicationContext() {
        // No implement
        return null;
    }

    private final Context mContext;


    public void setDreamComponent(ComponentName name) {
        Settings.Secure.putString(mContext.getContentResolver(), SCREENSAVER_COMPONENT, name.flattenToString());
    }

    public ComponentName getDreamComponent() {
        String component = Settings.Secure.getString(mContext.getContentResolver(), SCREENSAVER_COMPONENT);
        if (component != null) {
            return ComponentName.unflattenFromString(component);
        } else {
            return null;
        }
    }

    public void setWhenToDream(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 int getWhenToDreamSetting() {
        if (!isEnabled()) {
            return NEVER;
        }
        return isActivatedOnDock() && isActivatedOnSleep() ? EITHER
                : isActivatedOnDock() ? WHILE_DOCKED
                : isActivatedOnSleep() ? WHILE_CHARGING
                : NEVER;
    }

    public boolean isEnabled() {
        return getBoolean(SCREENSAVER_ENABLED, false);
    }

    public void setEnabled(boolean value) {
        setBoolean(SCREENSAVER_ENABLED, value);
    }

    public boolean isActivatedOnDock() {
        return getBoolean(SCREENSAVER_ACTIVATE_ON_DOCK,
                false);
    }

    public void setActivatedOnDock(boolean value) {
        setBoolean(SCREENSAVER_ACTIVATE_ON_DOCK, value);
    }

    public boolean isActivatedOnSleep() {
        return getBoolean(SCREENSAVER_ACTIVATE_ON_SLEEP,
                false);
    }

    public void setActivatedOnSleep(boolean value) {
        setBoolean(SCREENSAVER_ACTIVATE_ON_SLEEP, value);
    }

    private boolean getBoolean(String key, boolean def) {
        return Settings.Secure.getInt(mContext.getContentResolver(), key, def ? 1 : 0) == 1;
    }

    private void setBoolean(String key, boolean value) {
        Settings.Secure.putInt(mContext.getContentResolver(), key, value ? 1 : 0);
    }
}

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦