summaryrefslogtreecommitdiff
path: root/app/src/main/java
diff options
context:
space:
mode:
authorMartin Fietz <Martin.Fietz@gmail.com>2016-01-24 12:59:25 +0100
committerMartin Fietz <Martin.Fietz@gmail.com>2016-01-24 12:59:25 +0100
commit6392f7abd4c778e2058c7a37bea2c6cfdde26496 (patch)
treecd875825db01ae7fcad8ab6c6d52f2cde26093cf /app/src/main/java
parent7e9e3bb9468c4829bac94fc5d3f8165d86d02bdb (diff)
downloadAntennaPod-6392f7abd4c778e2058c7a37bea2c6cfdde26496.zip
Eliminate confusion from UI elements that change playback speed
Diffstat (limited to 'app/src/main/java')
-rw-r--r--app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java36
-rw-r--r--app/src/main/java/de/danoeh/antennapod/dialog/VariableSpeedDialog.java12
2 files changed, 36 insertions, 12 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java
index a066beee9..879a4544d 100644
--- a/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java
+++ b/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java
@@ -427,15 +427,23 @@ public abstract class MediaplayerActivity extends AppCompatActivity implements O
})
.show();
final SeekBar barPlaybackSpeed = (SeekBar) dialog.findViewById(R.id.playback_speed);
-
final Button butDecSpeed = (Button) dialog.findViewById(R.id.butDecSpeed);
butDecSpeed.setOnClickListener(v -> {
- barPlaybackSpeed.setProgress(barPlaybackSpeed.getProgress() - 2);
+ if(controller != null && controller.canSetPlaybackSpeed()) {
+ barPlaybackSpeed.setProgress(barPlaybackSpeed.getProgress() - 2);
+ } else {
+ VariableSpeedDialog.showGetPluginDialog(this);
+ }
});
final Button butIncSpeed = (Button) dialog.findViewById(R.id.butIncSpeed);
butIncSpeed.setOnClickListener(v -> {
- barPlaybackSpeed.setProgress(barPlaybackSpeed.getProgress() + 2);
+ if(controller != null && controller.canSetPlaybackSpeed()) {
+ barPlaybackSpeed.setProgress(barPlaybackSpeed.getProgress() + 2);
+ } else {
+ VariableSpeedDialog.showGetPluginDialog(this);
+ }
});
+
final TextView txtvPlaybackSpeed = (TextView) dialog.findViewById(R.id.txtvPlaybackSpeed);
float currentSpeed = 1.0f;
try {
@@ -449,15 +457,25 @@ public abstract class MediaplayerActivity extends AppCompatActivity implements O
barPlaybackSpeed.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
- float playbackSpeed = (progress + 10) / 20.0f;
- controller.setPlaybackSpeed(playbackSpeed);
- String speed = String.format("%.2f", playbackSpeed);
- UserPreferences.setPlaybackSpeed(speed);
- txtvPlaybackSpeed.setText(speed + "x");
+ if(controller != null && controller.canSetPlaybackSpeed()) {
+ float playbackSpeed = (progress + 10) / 20.0f;
+ controller.setPlaybackSpeed(playbackSpeed);
+ String speed = String.format("%.2f", playbackSpeed);
+ UserPreferences.setPlaybackSpeed(speed);
+ txtvPlaybackSpeed.setText(speed + "x");
+ } else if(fromUser) {
+ float speed = Float.valueOf(UserPreferences.getPlaybackSpeed());
+ barPlaybackSpeed.post(() -> {
+ barPlaybackSpeed.setProgress((int) (20 * speed) - 10);
+ });
+ }
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
+ if(controller != null && !controller.canSetPlaybackSpeed()) {
+ VariableSpeedDialog.showGetPluginDialog(MediaplayerActivity.this);
+ }
}
@Override
@@ -740,7 +758,7 @@ public abstract class MediaplayerActivity extends AppCompatActivity implements O
UserPreferences.setPlaybackSpeed(newSpeed);
controller.setPlaybackSpeed(Float.parseFloat(newSpeed));
} else {
- VariableSpeedDialog.showDialog(this);
+ VariableSpeedDialog.showGetPluginDialog(this);
}
});
butPlaybackSpeed.setOnLongClickListener(v -> {
diff --git a/app/src/main/java/de/danoeh/antennapod/dialog/VariableSpeedDialog.java b/app/src/main/java/de/danoeh/antennapod/dialog/VariableSpeedDialog.java
index 6d19b0612..3ed82b9bd 100644
--- a/app/src/main/java/de/danoeh/antennapod/dialog/VariableSpeedDialog.java
+++ b/app/src/main/java/de/danoeh/antennapod/dialog/VariableSpeedDialog.java
@@ -35,11 +35,15 @@ public class VariableSpeedDialog {
|| Build.VERSION.SDK_INT >= 23) {
showSpeedSelectorDialog(context);
} else {
- showGetPluginDialog(context);
+ showGetPluginDialog(context, true);
}
}
- private static void showGetPluginDialog(final Context context) {
+ public static void showGetPluginDialog(final Context context) {
+ showGetPluginDialog(context, false);
+ }
+
+ private static void showGetPluginDialog(final Context context, boolean showSpeedSelector) {
MaterialDialog.Builder builder = new MaterialDialog.Builder(context);
builder.title(R.string.no_playback_plugin_title);
builder.content(R.string.no_playback_plugin_or_sonic_msg);
@@ -49,7 +53,9 @@ public class VariableSpeedDialog {
builder.onPositive((dialog, which) -> {
if (Build.VERSION.SDK_INT >= 16) { // just to be safe
UserPreferences.enableSonic(true);
- showSpeedSelectorDialog(context);
+ if(showSpeedSelector) {
+ showSpeedSelectorDialog(context);
+ }
}
});
builder.onNegative((dialog, which) -> {