move playback speed button methods inside AudioplayerActivity
This commit is contained in:
parent
7164e328ef
commit
7caa840331
|
@ -1,13 +1,19 @@
|
||||||
package de.danoeh.antennapod.activity;
|
package de.danoeh.antennapod.activity;
|
||||||
|
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
import android.support.v4.view.ViewCompat;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
import android.view.View;
|
||||||
|
|
||||||
|
import java.util.concurrent.atomic.AtomicBoolean;
|
||||||
|
|
||||||
import de.danoeh.antennapod.core.cast.CastManager;
|
import de.danoeh.antennapod.core.cast.CastManager;
|
||||||
import de.danoeh.antennapod.core.feed.MediaType;
|
import de.danoeh.antennapod.core.feed.MediaType;
|
||||||
|
import de.danoeh.antennapod.core.preferences.UserPreferences;
|
||||||
import de.danoeh.antennapod.core.service.playback.PlaybackService;
|
import de.danoeh.antennapod.core.service.playback.PlaybackService;
|
||||||
import de.danoeh.antennapod.core.util.playback.ExternalMedia;
|
import de.danoeh.antennapod.core.util.playback.ExternalMedia;
|
||||||
|
import de.danoeh.antennapod.dialog.VariableSpeedDialog;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Activity for playing audio files.
|
* Activity for playing audio files.
|
||||||
|
@ -15,6 +21,8 @@ import de.danoeh.antennapod.core.util.playback.ExternalMedia;
|
||||||
public class AudioplayerActivity extends MediaplayerInfoActivity {
|
public class AudioplayerActivity extends MediaplayerInfoActivity {
|
||||||
public static final String TAG = "AudioPlayerActivity";
|
public static final String TAG = "AudioPlayerActivity";
|
||||||
|
|
||||||
|
private AtomicBoolean isSetup = new AtomicBoolean(false);
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onResume() {
|
protected void onResume() {
|
||||||
super.onResume();
|
super.onResume();
|
||||||
|
@ -50,4 +58,91 @@ public class AudioplayerActivity extends MediaplayerInfoActivity {
|
||||||
super.onReloadNotification(notificationCode);
|
super.onReloadNotification(notificationCode);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void updatePlaybackSpeedButton() {
|
||||||
|
if(butPlaybackSpeed == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (controller == null) {
|
||||||
|
butPlaybackSpeed.setVisibility(View.GONE);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
updatePlaybackSpeedButtonText();
|
||||||
|
ViewCompat.setAlpha(butPlaybackSpeed, controller.canSetPlaybackSpeed() ? 1.0f : 0.5f);
|
||||||
|
butPlaybackSpeed.setVisibility(View.VISIBLE);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void updatePlaybackSpeedButtonText() {
|
||||||
|
if(butPlaybackSpeed == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (controller == null) {
|
||||||
|
butPlaybackSpeed.setVisibility(View.GONE);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
float speed = 1.0f;
|
||||||
|
if(controller.canSetPlaybackSpeed()) {
|
||||||
|
try {
|
||||||
|
// we can only retrieve the playback speed from the controller/playback service
|
||||||
|
// once mediaplayer has been initialized
|
||||||
|
speed = Float.parseFloat(UserPreferences.getPlaybackSpeed());
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
Log.e(TAG, Log.getStackTraceString(e));
|
||||||
|
UserPreferences.setPlaybackSpeed(String.valueOf(speed));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
String speedStr = String.format("%.2fx", speed);
|
||||||
|
butPlaybackSpeed.setText(speedStr);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void setupGUI() {
|
||||||
|
if(isSetup.getAndSet(true)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
super.setupGUI();
|
||||||
|
if(butPlaybackSpeed != null) {
|
||||||
|
butPlaybackSpeed.setOnClickListener(v -> {
|
||||||
|
if (controller == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (controller.canSetPlaybackSpeed()) {
|
||||||
|
String[] availableSpeeds = UserPreferences.getPlaybackSpeedArray();
|
||||||
|
String currentSpeed = UserPreferences.getPlaybackSpeed();
|
||||||
|
|
||||||
|
// Provide initial value in case the speed list has changed
|
||||||
|
// out from under us
|
||||||
|
// and our current speed isn't in the new list
|
||||||
|
String newSpeed;
|
||||||
|
if (availableSpeeds.length > 0) {
|
||||||
|
newSpeed = availableSpeeds[0];
|
||||||
|
} else {
|
||||||
|
newSpeed = "1.00";
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < availableSpeeds.length; i++) {
|
||||||
|
if (availableSpeeds[i].equals(currentSpeed)) {
|
||||||
|
if (i == availableSpeeds.length - 1) {
|
||||||
|
newSpeed = availableSpeeds[0];
|
||||||
|
} else {
|
||||||
|
newSpeed = availableSpeeds[i + 1];
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
UserPreferences.setPlaybackSpeed(newSpeed);
|
||||||
|
controller.setPlaybackSpeed(Float.parseFloat(newSpeed));
|
||||||
|
} else {
|
||||||
|
VariableSpeedDialog.showGetPluginDialog(this);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
butPlaybackSpeed.setOnLongClickListener(v -> {
|
||||||
|
VariableSpeedDialog.showDialog(this);
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
butPlaybackSpeed.setVisibility(View.VISIBLE);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,9 @@ package de.danoeh.antennapod.activity;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
import android.view.View;
|
||||||
|
|
||||||
|
import java.util.concurrent.atomic.AtomicBoolean;
|
||||||
|
|
||||||
import de.danoeh.antennapod.core.cast.CastManager;
|
import de.danoeh.antennapod.core.cast.CastManager;
|
||||||
import de.danoeh.antennapod.core.service.playback.PlaybackService;
|
import de.danoeh.antennapod.core.service.playback.PlaybackService;
|
||||||
|
@ -13,6 +16,8 @@ import de.danoeh.antennapod.core.service.playback.PlaybackService;
|
||||||
public class CastplayerActivity extends MediaplayerInfoActivity {
|
public class CastplayerActivity extends MediaplayerInfoActivity {
|
||||||
public static final String TAG = "CastPlayerActivity";
|
public static final String TAG = "CastPlayerActivity";
|
||||||
|
|
||||||
|
private AtomicBoolean isSetup = new AtomicBoolean(false);
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
@ -34,4 +39,15 @@ public class CastplayerActivity extends MediaplayerInfoActivity {
|
||||||
super.onReloadNotification(notificationCode);
|
super.onReloadNotification(notificationCode);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void setupGUI() {
|
||||||
|
if(isSetup.getAndSet(true)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
super.setupGUI();
|
||||||
|
if (butPlaybackSpeed != null) {
|
||||||
|
butPlaybackSpeed.setVisibility(View.GONE);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,6 @@ import android.graphics.PixelFormat;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.v4.view.ViewCompat;
|
|
||||||
import android.support.v7.app.AlertDialog;
|
import android.support.v7.app.AlertDialog;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
|
@ -66,7 +65,6 @@ public abstract class MediaplayerActivity extends CastEnabledActivity implements
|
||||||
protected TextView txtvPosition;
|
protected TextView txtvPosition;
|
||||||
protected TextView txtvLength;
|
protected TextView txtvLength;
|
||||||
protected SeekBar sbPosition;
|
protected SeekBar sbPosition;
|
||||||
protected Button butPlaybackSpeed;
|
|
||||||
protected ImageButton butRev;
|
protected ImageButton butRev;
|
||||||
protected TextView txtvRev;
|
protected TextView txtvRev;
|
||||||
protected ImageButton butPlay;
|
protected ImageButton butPlay;
|
||||||
|
@ -641,41 +639,12 @@ public abstract class MediaplayerActivity extends CastEnabledActivity implements
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updatePlaybackSpeedButton() {
|
protected void updatePlaybackSpeedButton() {
|
||||||
if(butPlaybackSpeed == null) {
|
// Only meaningful on AudioplayerActivity, where it is overridden.
|
||||||
return;
|
|
||||||
}
|
|
||||||
// TODO this possibly needs to change if we introduce an alternative button
|
|
||||||
if (controller == null || !(this instanceof AudioplayerActivity)) {
|
|
||||||
butPlaybackSpeed.setVisibility(View.GONE);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
updatePlaybackSpeedButtonText();
|
|
||||||
ViewCompat.setAlpha(butPlaybackSpeed, controller.canSetPlaybackSpeed() ? 1.0f : 0.5f);
|
|
||||||
butPlaybackSpeed.setVisibility(View.VISIBLE);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updatePlaybackSpeedButtonText() {
|
protected void updatePlaybackSpeedButtonText() {
|
||||||
if(butPlaybackSpeed == null) {
|
// Only meaningful on AudioplayerActivity, where it is overridden.
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (controller == null) {
|
|
||||||
butPlaybackSpeed.setVisibility(View.GONE);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
float speed = 1.0f;
|
|
||||||
if(controller.canSetPlaybackSpeed()) {
|
|
||||||
try {
|
|
||||||
// we can only retrieve the playback speed from the controller/playback service
|
|
||||||
// once mediaplayer has been initialized
|
|
||||||
speed = Float.parseFloat(UserPreferences.getPlaybackSpeed());
|
|
||||||
} catch (NumberFormatException e) {
|
|
||||||
Log.e(TAG, Log.getStackTraceString(e));
|
|
||||||
UserPreferences.setPlaybackSpeed(String.valueOf(speed));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
String speedStr = String.format("%.2fx", speed);
|
|
||||||
butPlaybackSpeed.setText(speedStr);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -688,6 +657,7 @@ public abstract class MediaplayerActivity extends CastEnabledActivity implements
|
||||||
showTimeLeft = prefs.getBoolean(PREF_SHOW_TIME_LEFT, false);
|
showTimeLeft = prefs.getBoolean(PREF_SHOW_TIME_LEFT, false);
|
||||||
Log.d("timeleft", showTimeLeft ? "true" : "false");
|
Log.d("timeleft", showTimeLeft ? "true" : "false");
|
||||||
txtvLength = (TextView) findViewById(R.id.txtvLength);
|
txtvLength = (TextView) findViewById(R.id.txtvLength);
|
||||||
|
if (txtvLength != null) {
|
||||||
txtvLength.setOnClickListener(v -> {
|
txtvLength.setOnClickListener(v -> {
|
||||||
showTimeLeft = !showTimeLeft;
|
showTimeLeft = !showTimeLeft;
|
||||||
Playable media = controller.getMedia();
|
Playable media = controller.getMedia();
|
||||||
|
@ -708,8 +678,8 @@ public abstract class MediaplayerActivity extends CastEnabledActivity implements
|
||||||
editor.apply();
|
editor.apply();
|
||||||
Log.d("timeleft on click", showTimeLeft ? "true" : "false");
|
Log.d("timeleft on click", showTimeLeft ? "true" : "false");
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
butPlaybackSpeed = (Button) findViewById(R.id.butPlaybackSpeed);
|
|
||||||
butRev = (ImageButton) findViewById(R.id.butRev);
|
butRev = (ImageButton) findViewById(R.id.butRev);
|
||||||
txtvRev = (TextView) findViewById(R.id.txtvRev);
|
txtvRev = (TextView) findViewById(R.id.txtvRev);
|
||||||
if (txtvRev != null) {
|
if (txtvRev != null) {
|
||||||
|
@ -729,53 +699,6 @@ public abstract class MediaplayerActivity extends CastEnabledActivity implements
|
||||||
|
|
||||||
// BUTTON SETUP
|
// BUTTON SETUP
|
||||||
|
|
||||||
if(butPlaybackSpeed != null) {
|
|
||||||
if (this instanceof AudioplayerActivity) {
|
|
||||||
butPlaybackSpeed.setOnClickListener(v -> {
|
|
||||||
if (controller == null) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (controller.canSetPlaybackSpeed()) {
|
|
||||||
String[] availableSpeeds = UserPreferences.getPlaybackSpeedArray();
|
|
||||||
String currentSpeed = UserPreferences.getPlaybackSpeed();
|
|
||||||
|
|
||||||
// Provide initial value in case the speed list has changed
|
|
||||||
// out from under us
|
|
||||||
// and our current speed isn't in the new list
|
|
||||||
String newSpeed;
|
|
||||||
if (availableSpeeds.length > 0) {
|
|
||||||
newSpeed = availableSpeeds[0];
|
|
||||||
} else {
|
|
||||||
newSpeed = "1.00";
|
|
||||||
}
|
|
||||||
|
|
||||||
for (int i = 0; i < availableSpeeds.length; i++) {
|
|
||||||
if (availableSpeeds[i].equals(currentSpeed)) {
|
|
||||||
if (i == availableSpeeds.length - 1) {
|
|
||||||
newSpeed = availableSpeeds[0];
|
|
||||||
} else {
|
|
||||||
newSpeed = availableSpeeds[i + 1];
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
UserPreferences.setPlaybackSpeed(newSpeed);
|
|
||||||
controller.setPlaybackSpeed(Float.parseFloat(newSpeed));
|
|
||||||
} else {
|
|
||||||
VariableSpeedDialog.showGetPluginDialog(this);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
butPlaybackSpeed.setOnLongClickListener(v -> {
|
|
||||||
VariableSpeedDialog.showDialog(this);
|
|
||||||
return true;
|
|
||||||
});
|
|
||||||
butPlaybackSpeed.setVisibility(View.VISIBLE);
|
|
||||||
} else {
|
|
||||||
// TODO in the future, perhaps replace it with some cast related button
|
|
||||||
butPlaybackSpeed.setVisibility(View.GONE);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (butRev != null) {
|
if (butRev != null) {
|
||||||
butRev.setOnClickListener(v -> onRewind());
|
butRev.setOnClickListener(v -> onRewind());
|
||||||
butRev.setOnLongClickListener(new View.OnLongClickListener() {
|
butRev.setOnLongClickListener(new View.OnLongClickListener() {
|
||||||
|
|
|
@ -22,12 +22,12 @@ import android.view.MenuInflater;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.AdapterView;
|
import android.widget.AdapterView;
|
||||||
|
import android.widget.Button;
|
||||||
import android.widget.ListView;
|
import android.widget.ListView;
|
||||||
|
|
||||||
import com.viewpagerindicator.CirclePageIndicator;
|
import com.viewpagerindicator.CirclePageIndicator;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.atomic.AtomicBoolean;
|
|
||||||
|
|
||||||
import de.danoeh.antennapod.R;
|
import de.danoeh.antennapod.R;
|
||||||
import de.danoeh.antennapod.adapter.ChaptersListAdapter;
|
import de.danoeh.antennapod.adapter.ChaptersListAdapter;
|
||||||
|
@ -84,8 +84,7 @@ public abstract class MediaplayerInfoActivity extends MediaplayerActivity implem
|
||||||
NavListAdapter.SUBSCRIPTION_LIST_TAG
|
NavListAdapter.SUBSCRIPTION_LIST_TAG
|
||||||
};
|
};
|
||||||
|
|
||||||
private AtomicBoolean isSetup = new AtomicBoolean(false);
|
protected Button butPlaybackSpeed;
|
||||||
|
|
||||||
private DrawerLayout drawerLayout;
|
private DrawerLayout drawerLayout;
|
||||||
private NavListAdapter navAdapter;
|
private NavListAdapter navAdapter;
|
||||||
private ListView navList;
|
private ListView navList;
|
||||||
|
@ -202,9 +201,6 @@ public abstract class MediaplayerInfoActivity extends MediaplayerActivity implem
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void setupGUI() {
|
protected void setupGUI() {
|
||||||
if(isSetup.getAndSet(true)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
super.setupGUI();
|
super.setupGUI();
|
||||||
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
|
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
|
||||||
setSupportActionBar(toolbar);
|
setSupportActionBar(toolbar);
|
||||||
|
@ -253,6 +249,8 @@ public abstract class MediaplayerInfoActivity extends MediaplayerActivity implem
|
||||||
startActivity(new Intent(MediaplayerInfoActivity.this, PreferenceController.getPreferenceActivity()));
|
startActivity(new Intent(MediaplayerInfoActivity.this, PreferenceController.getPreferenceActivity()));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
butPlaybackSpeed = (Button) findViewById(R.id.butPlaybackSpeed);
|
||||||
|
|
||||||
pager = (ViewPager) findViewById(R.id.pager);
|
pager = (ViewPager) findViewById(R.id.pager);
|
||||||
pagerAdapter = new MediaplayerInfoPagerAdapter(getSupportFragmentManager(), media);
|
pagerAdapter = new MediaplayerInfoPagerAdapter(getSupportFragmentManager(), media);
|
||||||
pagerAdapter.setController(controller);
|
pagerAdapter.setController(controller);
|
||||||
|
|
Loading…
Reference in New Issue