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

Commit c736efcb authored by Julia Reynolds's avatar Julia Reynolds
Browse files

Fix ringtone persistance after device rotation.

Bug: 26122624
Change-Id: I187fe673dea250e93c6e9603239f01845ed378a3
parent f9db17e3
Loading
Loading
Loading
Loading
+5 −13
Original line number Diff line number Diff line
@@ -49,8 +49,6 @@ public class RingtonePreference extends Preference {

    private static final String TAG = "RingtonePreference";

    private static int sRequestCode = 100;

    private int mRingtoneType;
    private boolean mShowDefault;
    private boolean mShowSilent;
@@ -213,12 +211,9 @@ public class RingtonePreference extends Preference {
    }
    protected void onAttachedToHierarchy(PreferenceManager preferenceManager) {
        super.onAttachedToHierarchy(preferenceManager);

        mRequestCode = sRequestCode++;
    }

    public boolean onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == mRequestCode) {
        if (data != null) {
            Uri uri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);

@@ -230,7 +225,4 @@ public class RingtonePreference extends Preference {
        return true;
    }

        return false;
    }

}
+21 −1
Original line number Diff line number Diff line
@@ -48,7 +48,9 @@ import android.provider.Settings;
import android.support.v7.preference.Preference;
import android.support.v7.preference.Preference.OnPreferenceChangeListener;
import android.support.v7.preference.TwoStatePreference;
import android.text.TextUtils;
import android.util.Log;

import com.android.internal.logging.MetricsProto.MetricsEvent;
import com.android.settings.R;
import com.android.settings.RingtonePreference;
@@ -83,6 +85,9 @@ public class SoundSettings extends SettingsPreferenceFragment implements Indexab
    private static final String KEY_ZEN_MODE = "zen_mode";
    private static final String KEY_CELL_BROADCAST_SETTINGS = "cell_broadcast_settings";

    private static final String SELECTED_PREFERENCE_KEY = "selected_preference";
    private static final int REQUEST_CODE = 200;

    private static final String[] RESTRICTED_KEYS = {
        KEY_MEDIA_VOLUME,
        KEY_ALARM_VOLUME,
@@ -175,6 +180,13 @@ public class SoundSettings extends SettingsPreferenceFragment implements Indexab
        initVibrateWhenRinging();
        updateRingerMode();
        updateEffectsSuppressor();

        if (savedInstanceState != null) {
            String selectedPreference = savedInstanceState.getString(SELECTED_PREFERENCE_KEY, null);
            if (!TextUtils.isEmpty(selectedPreference)) {
                mRequestPreference = (RingtonePreference) findPreference(selectedPreference);
            }
        }
    }

    @Override
@@ -226,7 +238,7 @@ public class SoundSettings extends SettingsPreferenceFragment implements Indexab
        if (preference instanceof RingtonePreference) {
            mRequestPreference = (RingtonePreference) preference;
            mRequestPreference.onPrepareRingtonePickerIntent(mRequestPreference.getIntent());
            startActivityForResult(preference.getIntent(), mRequestPreference.getRequestCode());
            startActivityForResult(preference.getIntent(), REQUEST_CODE);
            return true;
        }
        return super.onPreferenceTreeClick(preference);
@@ -240,6 +252,14 @@ public class SoundSettings extends SettingsPreferenceFragment implements Indexab
        }
    }

    @Override
    public void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        if (mRequestPreference != null) {
            outState.putString(SELECTED_PREFERENCE_KEY, mRequestPreference.getKey());
        }
    }

    // === Volumes ===

    private VolumeSeekBarPreference initVolumePreference(String key, int stream, int muteIcon) {