Cleaned up MusicService and MusicPlayerRemote even more.
This commit is contained in:
parent
049bf90620
commit
60cae85ecb
7 changed files with 200 additions and 169 deletions
|
|
@ -248,11 +248,6 @@ public class MainActivity extends AbsFabActivity
|
|||
return TAG;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
updateNavigationDrawerHeader();
|
||||
}
|
||||
|
||||
private void updateNavigationDrawerHeader() {
|
||||
Song song = MusicPlayerRemote.getCurrentSong();
|
||||
|
|
@ -305,6 +300,12 @@ public class MainActivity extends AbsFabActivity
|
|||
updateNavigationDrawerHeader();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onServiceConnected() {
|
||||
super.onServiceConnected();
|
||||
updateNavigationDrawerHeader();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCreateOptionsMenu(Menu menu) {
|
||||
if (isAlbumPage()) {
|
||||
|
|
@ -411,7 +412,7 @@ public class MainActivity extends AbsFabActivity
|
|||
MusicPlayerRemote.openQueue(SearchQueryHelper.getSongs(this, intent.getExtras()), 0, true);
|
||||
}
|
||||
if (uri != null && uri.toString().length() > 0) {
|
||||
MusicPlayerRemote.playFile(uri);
|
||||
MusicPlayerRemote.playFile(uri.toString());
|
||||
handled = true;
|
||||
} else if (MediaStore.Audio.Playlists.CONTENT_TYPE.equals(mimeType)) {
|
||||
final int id = (int) parseIdFromIntent(intent, "playlistId", "playlist");
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ import com.kabouzeid.gramophone.dialogs.ColorChooserDialog;
|
|||
import com.kabouzeid.gramophone.helper.PlayingNotificationHelper;
|
||||
import com.kabouzeid.gramophone.model.UIPreferenceChangedEvent;
|
||||
import com.kabouzeid.gramophone.prefs.ColorChooserPreference;
|
||||
import com.kabouzeid.gramophone.service.MusicService;
|
||||
import com.kabouzeid.gramophone.ui.activities.base.AbsBaseActivity;
|
||||
import com.kabouzeid.gramophone.util.NavigationUtil;
|
||||
import com.kabouzeid.gramophone.util.PreferenceUtils;
|
||||
|
|
@ -146,6 +147,15 @@ public class SettingsActivity extends AbsBaseActivity implements ColorChooserDia
|
|||
}
|
||||
});
|
||||
|
||||
Preference gaplessPlayback = findPreference("gapless_playback");
|
||||
gaplessPlayback.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||
getActivity().sendBroadcast(new Intent(MusicService.SETTING_GAPLESS_PLAYBACK_CHANGED).putExtra(MusicService.SETTING_GAPLESS_PLAYBACK_CHANGED_VALUE_EXTRA, (boolean) newValue));
|
||||
return true;
|
||||
}
|
||||
});
|
||||
|
||||
equalizer = findPreference("equalizer");
|
||||
resolveEqualizer();
|
||||
equalizer.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import android.content.Context;
|
|||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
|
||||
import com.kabouzeid.gramophone.helper.MusicPlayerRemote;
|
||||
import com.kabouzeid.gramophone.service.MusicService;
|
||||
|
||||
import java.lang.ref.WeakReference;
|
||||
|
|
@ -13,7 +14,7 @@ import java.lang.ref.WeakReference;
|
|||
* @author Karim Abou Zeid (kabouzeid)
|
||||
*/
|
||||
public abstract class AbsPlaybackStatusActivity extends AbsBaseActivity {
|
||||
private PlaybackStatus playbackStatus;
|
||||
private PlaybackStatusReceiver playbackStatusReceiver;
|
||||
|
||||
public void onPlayingMetaChanged() {
|
||||
|
||||
|
|
@ -31,35 +32,45 @@ public abstract class AbsPlaybackStatusActivity extends AbsBaseActivity {
|
|||
|
||||
}
|
||||
|
||||
public void onServiceConnected() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onStart() {
|
||||
super.onStart();
|
||||
|
||||
playbackStatus = new PlaybackStatus(this);
|
||||
playbackStatusReceiver = new PlaybackStatusReceiver(this);
|
||||
|
||||
// ensures that onServiceConnected() is called even if the service is already connected and wont sent the Intent again.
|
||||
if (MusicPlayerRemote.isServiceConnected()) {
|
||||
onServiceConnected();
|
||||
}
|
||||
|
||||
final IntentFilter filter = new IntentFilter();
|
||||
filter.addAction(MusicService.PLAYSTATE_CHANGED);
|
||||
filter.addAction(MusicService.SHUFFLEMODE_CHANGED);
|
||||
filter.addAction(MusicService.REPEATMODE_CHANGED);
|
||||
filter.addAction(MusicService.META_CHANGED);
|
||||
filter.addAction(MusicPlayerRemote.SERVICE_BOUND);
|
||||
|
||||
registerReceiver(playbackStatus, filter);
|
||||
registerReceiver(playbackStatusReceiver, filter);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onStop() {
|
||||
super.onStop();
|
||||
try {
|
||||
unregisterReceiver(playbackStatus);
|
||||
unregisterReceiver(playbackStatusReceiver);
|
||||
} catch (Throwable ignored) {
|
||||
}
|
||||
}
|
||||
|
||||
private static final class PlaybackStatus extends BroadcastReceiver {
|
||||
private static final class PlaybackStatusReceiver extends BroadcastReceiver {
|
||||
|
||||
private final WeakReference<AbsPlaybackStatusActivity> reference;
|
||||
|
||||
public PlaybackStatus(final AbsPlaybackStatusActivity activity) {
|
||||
public PlaybackStatusReceiver(final AbsPlaybackStatusActivity activity) {
|
||||
reference = new WeakReference<>(activity);
|
||||
}
|
||||
|
||||
|
|
@ -79,6 +90,9 @@ public abstract class AbsPlaybackStatusActivity extends AbsBaseActivity {
|
|||
case MusicService.SHUFFLEMODE_CHANGED:
|
||||
reference.get().onShuffleModeChanged();
|
||||
break;
|
||||
case MusicPlayerRemote.SERVICE_BOUND:
|
||||
reference.get().onServiceConnected();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue