sanders: dirac: Prevent failures when toggling

Signed-off-by: Ashwin R C <ashwin2001achu@gmail.com>
Signed-off-by: utsavbalar1231 <utsavbalar1231@gmail.com>
Signed-off-by: ronaxdevil <pratabidya.007@gmail.com>
This commit is contained in:
Henrique Silva
2019-02-17 15:17:32 +05:30
committed by ronaxdevil
parent 9967e4db15
commit b9f5ed218a
2 changed files with 24 additions and 6 deletions

View File

@@ -22,6 +22,7 @@ import android.content.Context;
import android.content.DialogInterface;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.os.Handler;
import android.support.v14.preference.PreferenceFragment;
import android.support.v14.preference.SwitchPreference;
import android.support.v7.preference.ListPreference;
@@ -51,6 +52,7 @@ public class DiracSettingsFragment extends PreferenceFragment implements
private ListPreference mPreset;
private DiracUtils mDiracUtils;
private Handler mHandler = new Handler();
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
@@ -117,12 +119,28 @@ public class DiracSettingsFragment extends PreferenceFragment implements
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {
mDiracUtils.setEnabled(isChecked);
mTextView.setText(getString(isChecked ? R.string.switch_bar_on : R.string.switch_bar_off));
mSwitchBar.setActivated(isChecked);
if (isChecked){
mSwitchBar.setEnabled(false);
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
try{
mSwitchBar.setEnabled(true);
setEnabled(isChecked);
}catch(Exception ignored){
}
}
}, 1020);
}else{
setEnabled(isChecked);
}
}
mHeadsetType.setEnabled(isChecked);
mPreset.setEnabled(isChecked);
private void setEnabled(boolean enabled){
mSwitchBar.setActivated(enabled);
mHeadsetType.setEnabled(enabled);
mPreset.setEnabled(enabled);
}
@Override

View File

@@ -86,13 +86,13 @@ public final class DiracUtils {
public void run() {
controller.dispatchMediaButtonEvent(evDownPlay);
}
}, 500);
}, 1000);
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
controller.dispatchMediaButtonEvent(evUpPlay);
}
}, 520);
}, 1020);
}
private int getMediaControllerPlaybackState(MediaController controller) {