mirror of
https://github.com/clangen/musikcube.git
synced 2025-03-20 04:20:48 +00:00
Added a quick toggle for remote/streaming playback mode selection.
This commit is contained in:
parent
5999ba3962
commit
29eabab4c6
@ -109,14 +109,24 @@ public class MainActivity extends WebSocketActivityBase {
|
||||
@Override
|
||||
public boolean onPrepareOptionsMenu(Menu menu) {
|
||||
boolean connected = wss.getState() == WebSocketService.State.Connected;
|
||||
boolean streaming = isStreamingSelected();
|
||||
|
||||
menu.findItem(R.id.action_playlists).setEnabled(connected);
|
||||
menu.findItem(R.id.action_genres).setEnabled(connected);
|
||||
|
||||
menu.findItem(R.id.action_remote_toggle).setIcon(
|
||||
streaming ? R.mipmap.ic_toolbar_streaming : R.mipmap.ic_toolbar_remote);
|
||||
|
||||
return super.onPrepareOptionsMenu(menu);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
switch (item.getItemId()) {
|
||||
case R.id.action_remote_toggle:
|
||||
togglePlaybackService();
|
||||
return true;
|
||||
|
||||
case R.id.action_settings:
|
||||
startActivity(SettingsActivity.getStartIntent(this));
|
||||
return true;
|
||||
@ -144,6 +154,28 @@ public class MainActivity extends WebSocketActivityBase {
|
||||
return this.playbackEvents;
|
||||
}
|
||||
|
||||
private boolean isStreamingSelected() {
|
||||
return prefs.getBoolean(
|
||||
Prefs.Key.STREAMING_PLAYBACK,
|
||||
Prefs.Default.STREAMING_PLAYBACK);
|
||||
}
|
||||
|
||||
private void togglePlaybackService() {
|
||||
final boolean streaming = isStreamingSelected();
|
||||
|
||||
if (streaming) {
|
||||
playback.stop();
|
||||
}
|
||||
|
||||
prefs.edit().putBoolean(Prefs.Key.STREAMING_PLAYBACK, !streaming).apply();
|
||||
|
||||
reloadPlaybackService();
|
||||
this.playback = getPlaybackService();
|
||||
|
||||
supportInvalidateOptionsMenu();
|
||||
rebindUi();
|
||||
}
|
||||
|
||||
private void bindCheckBoxEventListeners() {
|
||||
this.shuffleCb.setOnCheckedChangeListener(shuffleListener);
|
||||
this.muteCb.setOnCheckedChangeListener(muteListener);
|
||||
|
@ -107,6 +107,14 @@ public abstract class WebSocketActivityBase extends AppCompatActivity implements
|
||||
|
||||
}
|
||||
|
||||
protected void reloadPlaybackService() {
|
||||
if (!paused && this.playback != null) {
|
||||
this.playback.disconnect(getPlaybackServiceEventListener());
|
||||
this.playback = PlaybackServiceFactory.instance(this);
|
||||
this.playback.connect(getPlaybackServiceEventListener());
|
||||
}
|
||||
}
|
||||
|
||||
protected final Runner runner() {
|
||||
return this.runnerDelegate.runner();
|
||||
}
|
||||
|
@ -3,6 +3,12 @@
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
|
||||
<item
|
||||
android:id="@+id/action_remote_toggle"
|
||||
app:showAsAction="always"
|
||||
android:title="@string/menu_remote_toggle"
|
||||
android:icon="@mipmap/ic_toolbar_remote" />
|
||||
|
||||
<item
|
||||
android:id="@+id/action_playlists"
|
||||
app:showAsAction="never"
|
||||
|
Binary file not shown.
After Width: | Height: | Size: 27 KiB |
Binary file not shown.
After Width: | Height: | Size: 29 KiB |
@ -52,6 +52,7 @@
|
||||
<string name="menu_settings">settings</string>
|
||||
<string name="menu_genres">genres</string>
|
||||
<string name="menu_playlists">playlists</string>
|
||||
<string name="menu_remote_toggle">remote playback</string>
|
||||
<string name="unknown_value"><unknown></string>
|
||||
<string name="settings_playback_mode">playback mode:</string>
|
||||
<string name="settings_transcoder_bitrate">streaming downsampler bitrate:</string>
|
||||
|
Loading…
x
Reference in New Issue
Block a user