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

Commit f14f6662 authored by David Morgan's avatar David Morgan
Browse files

Power widget defaults (brightness and sound)

Default behavior for the new brightness and sound power widgets
should be to cycle through all options and treat all of them as
selected when first configured.

Change-Id: Ie1831a8b7361bcb2dc6e9cc3c6a7d8e69796e6eb
parent 497e8031
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -79,6 +79,10 @@ public class MultiSelectListPreference extends ListPreference {
                    }
                }
            }
        } else {
            for (int i = 0; i < entryValues.length; i++) {
                mClickedDialogEntryIndices[i] = true;
            }
        }
    }

+5 −6
Original line number Diff line number Diff line
@@ -173,16 +173,15 @@ public class BrightnessButton extends PowerButton {

        String[] modes = MultiSelectListPreference.parseStoredValue(Settings.System.getString(
                resolver, Settings.System.EXPANDED_BRIGHTNESS_MODE));
        if (modes != null) {
        if (modes == null || modes.length == 0) {
            mBacklightValues = new int[] {
                    0, 1, 2, 3, 4, 5
            };
        } else {
            mBacklightValues = new int[modes.length];
            for (int i = 0; i < modes.length; i++) {
                mBacklightValues[i] = Integer.valueOf(modes[i]);
            }
        } else {
            // If no modes configured default to just MAX_BACKLIGHT
            mBacklightValues = new int[] {
                5
            };
        }

        mAutoBrightness = (Settings.System.getInt(resolver, Settings.System.SCREEN_BRIGHTNESS_MODE,
+28 −14
Original line number Diff line number Diff line
@@ -38,7 +38,7 @@ public class SoundButton extends PowerButton {

    private final Ringer mSilentRinger = new Ringer(false, AudioManager.VIBRATE_SETTING_OFF,
            AudioManager.RINGER_MODE_SILENT, false);
    private final Ringer mVibrateRinger = new Ringer(true, AudioManager.VIBRATE_SETTING_ON,
    private final Ringer mVibrateRinger = new Ringer(true, AudioManager.VIBRATE_SETTING_ONLY_SILENT,
            AudioManager.RINGER_MODE_VIBRATE, true);
    private final Ringer mSoundRinger = new Ringer(true, AudioManager.VIBRATE_SETTING_ONLY_SILENT,
            AudioManager.RINGER_MODE_NORMAL, false);
@@ -47,12 +47,12 @@ public class SoundButton extends PowerButton {
    private final Ringer[] mRingers = new Ringer[] {
            mSilentRinger, mVibrateRinger, mSoundRinger, mSoundVibrateRinger
    };
    private int mRingersIndex = 0;
    private int mRingersIndex = 2;

    private int[] mRingerValues = new int[] {
            0, 1, 2, 3
    };
    private int mRingerValuesIndex = 0;
    private int mRingerValuesIndex = 2;

    private boolean mHapticFeedbackEnabled = false;

@@ -95,6 +95,12 @@ public class SoundButton extends PowerButton {
                mState = STATE_ENABLED;
                break;
        }
        for (int i = 0; i < mRingerValues.length; i++) {
            if (mRingersIndex == mRingerValues[i]) {
                mRingerValuesIndex = i;
                break;
            }
        }
    }

    @Override
@@ -149,24 +155,18 @@ public class SoundButton extends PowerButton {

        String[] modes = MultiSelectListPreference.parseStoredValue(Settings.System.getString(
                resolver, Settings.System.EXPANDED_RING_MODE));
        if (modes != null) {
        if (modes == null || modes.length == 0) {
            mRingerValues = new int[] {
                    0, 1, 2, 3
            };
        } else {
            mRingerValues = new int[modes.length];
            for (int i = 0; i < modes.length; i++) {
                mRingerValues[i] = Integer.valueOf(modes[i]);
            }
        } else {
            mRingerValues = new int[] {
                2
            };
        }

        updateState();
        for (int i = 0; i < mRingerValues.length; i++) {
            if (mRingersIndex == mRingerValues[i]) {
                mRingerValuesIndex = i;
                break;
            }
        }
    }

    private void findCurrentState() {
@@ -175,6 +175,20 @@ public class SoundButton extends PowerButton {
                Settings.System.VIBRATE_IN_SILENT, 0) == 1;
        int vibrateSetting = mAudioManager.getVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER);
        int ringerMode = mAudioManager.getRingerMode();
        // Sometimes the setting don't quite match up to the states we've defined.
        // In that case, override the reported settings to get us "close" to the
        // defined settings. This bit is a little ugly but oh well.
        if (!vibrateInSilent && ringerMode == AudioManager.RINGER_MODE_SILENT) {
            vibrateSetting = AudioManager.VIBRATE_SETTING_OFF; // match Silent ringer
        } else if (!vibrateInSilent && ringerMode == AudioManager.RINGER_MODE_NORMAL) {
            vibrateInSilent = true; // match either Sound or SoundVibrate ringer
            if (vibrateSetting == AudioManager.VIBRATE_SETTING_OFF) {
                vibrateSetting = AudioManager.VIBRATE_SETTING_ONLY_SILENT; // match Sound ringer
            }
        } else if (vibrateInSilent && ringerMode == AudioManager.RINGER_MODE_VIBRATE) {
            vibrateSetting = AudioManager.VIBRATE_SETTING_ONLY_SILENT; // match Vibrate ringer 
        }

        Ringer ringer = new Ringer(vibrateInSilent, vibrateSetting, ringerMode, false);
        for (int i = 0; i < mRingers.length; i++) {
            if (mRingers[i].equals(ringer)) {