Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 469c873b authored by Roman Birg's avatar Roman Birg
Browse files

Settings: disable lockscreen settings appropriately



Give visual feedback on which features are unavailable
with the new lockscreen style.

Change-Id: I05b905e9a6e48d884943156b2dedc93ceee57bc4
Signed-off-by: default avatarRoman Birg <roman@cyngn.com>
parent 8e38552b
Loading
Loading
Loading
Loading
+29 −6
Original line number Diff line number Diff line
@@ -64,6 +64,7 @@ public class LockscreenInterface extends SettingsPreferenceFragment implements
    private static final String KEY_ENABLE_WIDGETS = "keyguard_enable_widgets";
    private static final String KEY_LOCK_CLOCK = "lock_clock";
    private static final String KEY_ENABLE_CAMERA = "keyguard_enable_camera";
    private static final String KEY_ENABLE_MAXIMIZE_WIGETS = "lockscreen_maximize_widgets";
    private static final String LOCKSCREEN_BACKGROUND_STYLE = "lockscreen_background_style";
    private static final String KEY_LOCKSCREEN_MODLOCK_ENABLED = "lockscreen_modlock_enabled";

@@ -74,6 +75,7 @@ public class LockscreenInterface extends SettingsPreferenceFragment implements
    private CheckBoxPreference mEnableKeyguardWidgets;
    private CheckBoxPreference mEnableCameraWidget;
    private CheckBoxPreference mEnableModLock;
    private CheckBoxPreference mEnableMaximizeWidgets;
    private ListPreference mLockBackground;
    private ListPreference mBatteryStatus;

@@ -101,6 +103,7 @@ public class LockscreenInterface extends SettingsPreferenceFragment implements
        // Find preferences
        mEnableKeyguardWidgets = (CheckBoxPreference) findPreference(KEY_ENABLE_WIDGETS);
        mEnableCameraWidget = (CheckBoxPreference) findPreference(KEY_ENABLE_CAMERA);
        mEnableMaximizeWidgets = (CheckBoxPreference) findPreference(KEY_ENABLE_MAXIMIZE_WIGETS);

        mEnableModLock = (CheckBoxPreference) findPreference(KEY_LOCKSCREEN_MODLOCK_ENABLED);
        if (mEnableModLock != null) {
@@ -117,10 +120,6 @@ public class LockscreenInterface extends SettingsPreferenceFragment implements
            generalCategory.removePreference(findPreference(KEY_LOCKSCREEN_BUTTONS));
        }

        // Enable or disable lockscreen widgets based on policy
        checkDisabledByPolicy(mEnableKeyguardWidgets,
                DevicePolicyManager.KEYGUARD_DISABLE_WIDGETS_ALL);

        // Enable or disable camera widget based on device and policy
        if (Camera.getNumberOfCameras() == 0) {
            widgetsCategory.removePreference(mEnableCameraWidget);
@@ -152,7 +151,7 @@ public class LockscreenInterface extends SettingsPreferenceFragment implements
        // Remove maximize widgets on tablets
        if (!Utils.isPhone(getActivity())) {
            widgetsCategory.removePreference(
                    findPreference(Settings.System.LOCKSCREEN_MAXIMIZE_WIDGETS));
                    mEnableMaximizeWidgets);
        }

        mLockBackground = (ListPreference) findPreference(LOCKSCREEN_BACKGROUND_STYLE);
@@ -193,6 +192,25 @@ public class LockscreenInterface extends SettingsPreferenceFragment implements
        }

        updateBackgroundPreference();
        updateAvailableModLockPreferences();
    }

    private void updateAvailableModLockPreferences() {
        if (mEnableModLock == null) {
            return;
        }

        boolean enabled = !mEnableModLock.isChecked();
        if (mEnableKeyguardWidgets != null) {
            // Enable or disable lockscreen widgets based on policy
            if(!checkDisabledByPolicy(mEnableKeyguardWidgets,
                    DevicePolicyManager.KEYGUARD_DISABLE_WIDGETS_ALL)) {
                mEnableKeyguardWidgets.setEnabled(enabled);
            }
        }
        if (mEnableMaximizeWidgets != null) {
            mEnableMaximizeWidgets.setEnabled(enabled);
        }
    }

    private void updateBackgroundPreference() {
@@ -232,6 +250,9 @@ public class LockscreenInterface extends SettingsPreferenceFragment implements
            boolean value = (Boolean) objValue;
            Settings.System.putInt(cr, Settings.System.LOCKSCREEN_MODLOCK_ENABLED,
                    value ? 1 : 0);
            // force it so update picks up correct values
            ((CheckBoxPreference) preference).setChecked(value);
            updateAvailableModLockPreferences();
            return true;
        }

@@ -252,8 +273,9 @@ public class LockscreenInterface extends SettingsPreferenceFragment implements
     * provided preference if so.
     * @param preference Preference
     * @param feature Feature
     * @return True if disabled.
     */
    private void checkDisabledByPolicy(Preference preference, int feature) {
    private boolean checkDisabledByPolicy(Preference preference, int feature) {
        boolean disabled = featureIsDisabled(feature);

        if (disabled) {
@@ -261,6 +283,7 @@ public class LockscreenInterface extends SettingsPreferenceFragment implements
        }

        preference.setEnabled(!disabled);
        return disabled;
    }

    /**