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

Commit dfb65436 authored by Amith Yamasani's avatar Amith Yamasani
Browse files

Overhaul vibrate and silent settings to match hard keys.

We go back to the old style of toggling between Mute/Vibrate/Normal.
There is an addition of a checkbox to indicate Vibrate on ring/notif.

Icons in volume dialogs are no longer touchable.

Bug: 5586083

This simplifies the logic in SoundSettings quite a bit, since there's a 1-1 mapping
with ringer mode.

Don't disable volume sliders when muted, so you can go to zero and back up by sliding
your finger. This is because the icons are not clickable anymore.

Change-Id: Ia7ce7e1bf108419eb107f03b7720101efe1598b1
parent 2fa017f8
Loading
Loading
Loading
Loading
+10 −12
Original line number Diff line number Diff line
@@ -550,20 +550,18 @@
        <item>auto</item>
    </string-array>

    <!-- New incoming call vibrate options. -->
    <string-array name="vibrate_entries">
        <item>Always</item>
        <item>Never</item>
        <item>Only in Silent mode</item>
        <item>Only when not in Silent mode</item>
    <!-- Silent mode options. -->
    <string-array name="silent_mode_entries">
        <item>Off</item>
        <item>Vibrate</item>
        <item>Mute</item>
    </string-array>

    <!-- Values for vibrate_entries matching constants in SoundSettings. Do not translate. -->
    <string-array name="vibrate_values" translatable="false">
        <item>always</item>
        <item>never</item>
        <item>silent</item>
        <item>notsilent</item>
    <!-- Values for Silent mode. Do not translate. -->
    <string-array name="silent_mode_values" translatable="false">
        <item>off</item>
        <item>vibrate</item>
        <item>mute</item>
    </string-array>

    <!-- Titles for the list of long press timeout options. -->
+1 −1
Original line number Diff line number Diff line
@@ -1511,7 +1511,7 @@
    <!-- Sound settings screen, setting option name checkbox -->
    <string name="vibrate_in_silent_title">Vibrate when silent</string>
    <!-- Sound settings screen, setting option name checkbox -->
    <string name="vibrate_title">Vibrate</string>
    <string name="vibrate_on_ring_title">Vibrate and ring</string>
    <!-- Sound settings screen, setting option name -->
    <string name="notification_sound_title">Default notification</string>
    <!-- Sound settings screen, notification light repeat pulsing title -->
+8 −9
Original line number Diff line number Diff line
@@ -27,16 +27,10 @@
            android:streamType="ring" />

    <ListPreference
            android:key="vibrate"
            android:title="@string/vibrate_title"
            android:entries="@array/vibrate_entries"
            android:entryValues="@array/vibrate_values" />

    <CheckBoxPreference
            android:key="silent"
            android:key="silent_mode"
            android:title="@string/silent_mode_title"
            android:persistent="false"
            />
            android:entries="@array/silent_mode_entries"
            android:entryValues="@array/silent_mode_values" />

    <Preference
            android:key="musicfx"
@@ -64,6 +58,11 @@
            android:persistent="false"
            android:ringtoneType="notification" />

    <CheckBoxPreference
            android:key="vibrate_on_ring"
            android:title="@string/vibrate_on_ring_title"
            android:defaultValue="false" />

    <PreferenceCategory
            android:title="@string/sound_category_feedback_title"/>

+1 −22
Original line number Diff line number Diff line
@@ -53,7 +53,7 @@ import android.widget.TextView;
 * Special preference type that allows configuration of both the ring volume and
 * notification volume.
 */
public class RingerVolumePreference extends VolumePreference implements OnClickListener {
public class RingerVolumePreference extends VolumePreference {
    private static final String TAG = "RingerVolumePreference";
    private static final int MSG_RINGER_MODE_CHANGED = 101;

@@ -126,7 +126,6 @@ public class RingerVolumePreference extends VolumePreference implements OnClickL
                }
            }
            if (mSeekBars[i] != null) {
                mSeekBars[i].setEnabled(!muted);
                final int volume = muted ? mAudioManager.getLastAudibleStreamVolume(streamType)
                        : mAudioManager.getStreamVolume(streamType);
                mSeekBars[i].setProgress(volume);
@@ -176,9 +175,6 @@ public class RingerVolumePreference extends VolumePreference implements OnClickL
        // Register callbacks for mute/unmute buttons
        for (int i = 0; i < mCheckBoxes.length; i++) {
            ImageView checkbox = (ImageView) view.findViewById(CHECKBOX_VIEW_ID[i]);
            if ((silentableStreams & (1 << SEEKBAR_TYPE[i])) != 0) {
                checkbox.setOnClickListener(this);
            }
            mCheckBoxes[i] = checkbox;
        }

@@ -363,21 +359,4 @@ public class RingerVolumePreference extends VolumePreference implements OnClickL
            }
        };
    }

    public void onClick(View v) {
        // Touching any of the mute buttons causes us to get the state from the system and toggle it
        switch(mAudioManager.getRingerMode()) {
            case AudioManager.RINGER_MODE_NORMAL:
                mAudioManager.setRingerMode(
                        (Settings.System.getInt(getContext().getContentResolver(),
                                Settings.System.VIBRATE_IN_SILENT, 1) == 1)
                        ? AudioManager.RINGER_MODE_VIBRATE
                        : AudioManager.RINGER_MODE_SILENT);
                break;
            case AudioManager.RINGER_MODE_VIBRATE:
            case AudioManager.RINGER_MODE_SILENT:
                mAudioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
            break;
        }
    }
}
+3 −3
Original line number Diff line number Diff line
@@ -541,11 +541,11 @@ public class Settings extends PreferenceActivity implements ButtonBarHandler {
    @Override
    public boolean onPreferenceStartFragment(PreferenceFragment caller, Preference pref) {
        // Override the fragment title for Wallpaper settings
        CharSequence title = pref.getTitle();
        int titleRes = pref.getTitleRes();
        if (pref.getFragment().equals(WallpaperTypeSettings.class.getName())) {
            title = getString(R.string.wallpaper_settings_fragment_title);
            titleRes = R.string.wallpaper_settings_fragment_title;
        }
        startPreferencePanel(pref.getFragment(), pref.getExtras(), 0, title, null, 0);
        startPreferencePanel(pref.getFragment(), pref.getExtras(), titleRes, null, null, 0);
        return true;
    }

Loading