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

Commit aaaa54ec authored by John Spurlock's avatar John Spurlock
Browse files

Settings: Rebind to volume sliders after returning from stopped.

Bug: 18118623
Change-Id: I29fb22a1a4476639a4f5cce06affd8ce58b6105d
parent f68bc645
Loading
Loading
Loading
Loading
+16 −11
Original line number Diff line number Diff line
@@ -50,6 +50,7 @@ public class VolumeSeekBarPreference extends SeekBarPreference
    private boolean mMuted;
    private int mIconResId;
    private int mMuteIconResId;
    private boolean mStopped;

    public VolumeSeekBarPreference(Context context, AttributeSet attrs, int defStyleAttr,
            int defStyleRes) {
@@ -77,8 +78,15 @@ public class VolumeSeekBarPreference extends SeekBarPreference
        mCallback = callback;
    }

    public void onActivityResume() {
        if (mStopped) {
            init();
        }
    }

    @Override
    public void onActivityStop() {
        mStopped = true;
        if (mVolumizer != null) {
            mVolumizer.stop();
        }
@@ -91,10 +99,15 @@ public class VolumeSeekBarPreference extends SeekBarPreference
            Log.w(TAG, "No stream found, not binding volumizer");
            return;
        }
        mSeekBar = (SeekBar) view.findViewById(com.android.internal.R.id.seekbar);
        mIconView = (ImageView) view.findViewById(com.android.internal.R.id.icon);
        mSuppressionTextView = (TextView) view.findViewById(R.id.suppression_text);
        init();
    }

    private void init() {
        if (mSeekBar == null) return;
        getPreferenceManager().registerOnActivityStopListener(this);
        final SeekBar seekBar = (SeekBar) view.findViewById(com.android.internal.R.id.seekbar);
        if (seekBar == mSeekBar) return;
        mSeekBar = seekBar;
        final SeekBarVolumizer.Callback sbvc = new SeekBarVolumizer.Callback() {
            @Override
            public void onSampleStarting(SeekBarVolumizer sbv) {
@@ -121,19 +134,11 @@ public class VolumeSeekBarPreference extends SeekBarPreference
        }
        mVolumizer.start();
        mVolumizer.setSeekBar(mSeekBar);
        mIconView = (ImageView) view.findViewById(com.android.internal.R.id.icon);
        updateIconView();
        mSuppressionTextView = (TextView) view.findViewById(R.id.suppression_text);
        mCallback.onStreamValueChanged(mStream, mSeekBar.getProgress());
        updateSuppressionText();
    }

    public void onActivityResume() {
        if (mVolumizer != null) {
            mVolumizer.start();
        }
    }

    // during initialization, this preference is the SeekBar listener
    @Override
    public void onProgressChanged(SeekBar seekBar, int progress, boolean fromTouch) {