update abstract music service activity

This commit is contained in:
dkanada 2020-07-25 17:13:11 +09:00
commit e89aa2e9ef
20 changed files with 18 additions and 132 deletions

View file

@ -7,13 +7,11 @@ public interface MusicServiceEventListener {
void onQueueChanged();
void onPlayingMetaChanged();
void onPlayMetadataChanged();
void onPlayStateChanged();
void onRepeatModeChanged();
void onShuffleModeChanged();
void onMediaStoreChanged();
}

View file

@ -87,7 +87,6 @@ public class MusicService extends Service implements SharedPreferences.OnSharedP
public static final String REPEAT_MODE_CHANGED = PHONOGRAPH_PACKAGE_NAME + ".repeatmodechanged";
public static final String SHUFFLE_MODE_CHANGED = PHONOGRAPH_PACKAGE_NAME + ".shufflemodechanged";
public static final String MEDIA_STORE_CHANGED = PHONOGRAPH_PACKAGE_NAME + ".mediastorechanged";
public static final String SAVED_POSITION = "POSITION";
public static final String SAVED_POSITION_IN_TRACK = "POSITION_IN_TRACK";
@ -160,7 +159,6 @@ public class MusicService extends Service implements SharedPreferences.OnSharedP
}
};
private ContentObserver mediaStoreObserver;
private boolean notHandledMetaChangedForCurrentTrack;
private Handler uiThreadHandler;
@ -197,14 +195,8 @@ public class MusicService extends Service implements SharedPreferences.OnSharedP
initNotification();
mediaStoreObserver = new MediaStoreObserver(playerHandler);
throttledSeekHandler = new ThrottledSeekHandler(playerHandler);
getContentResolver().registerContentObserver(
MediaStore.Audio.Media.INTERNAL_CONTENT_URI, true, mediaStoreObserver);
getContentResolver().registerContentObserver(
MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, true, mediaStoreObserver);
PreferenceUtil.getInstance(this).registerOnSharedPreferenceChangedListener(this);
restoreState();
@ -344,7 +336,6 @@ public class MusicService extends Service implements SharedPreferences.OnSharedP
mediaSession.setActive(false);
quit();
releaseResources();
getContentResolver().unregisterContentObserver(mediaStoreObserver);
PreferenceUtil.getInstance(this).unregisterOnSharedPreferenceChangedListener(this);
wakeLock.release();
@ -1275,33 +1266,6 @@ public class MusicService extends Service implements SharedPreferences.OnSharedP
}
};
private class MediaStoreObserver extends ContentObserver implements Runnable {
// milliseconds to delay before calling refresh to aggregate events
private static final long REFRESH_DELAY = 500;
private Handler mHandler;
public MediaStoreObserver(Handler handler) {
super(handler);
mHandler = handler;
}
@Override
public void onChange(boolean selfChange) {
// if a change is detected, remove any scheduled callback
// then post a new one. This is intended to prevent closely
// spaced events from generating multiple refresh calls
mHandler.removeCallbacks(this);
mHandler.postDelayed(this, REFRESH_DELAY);
}
@Override
public void run() {
// actually call refresh when the delayed callback fires
// do not send a sticky broadcast here
handleAndSendChangeInternal(MEDIA_STORE_CHANGED);
}
}
private class ThrottledSeekHandler implements Runnable {
// milliseconds to throttle before calling run to aggregate events
private static final long THROTTLE = 500;

View file

@ -136,6 +136,7 @@ public class AboutActivity extends AbsBaseActivity implements View.OnClickListen
onBackPressed();
return true;
}
return super.onOptionsItemSelected(item);
}
@ -145,6 +146,7 @@ public class AboutActivity extends AbsBaseActivity implements View.OnClickListen
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return "Unknown";
}

View file

@ -314,11 +314,6 @@ public class AlbumDetailActivity extends AbsSlidingMusicPanelActivity implements
}
}
@Override
public void onMediaStoreChanged() {
super.onMediaStoreChanged();
}
@Override
public void setStatusbarColor(int color) {
super.setStatusbarColor(color);

View file

@ -336,11 +336,6 @@ public class ArtistDetailActivity extends AbsSlidingMusicPanelActivity implement
}
}
@Override
public void onMediaStoreChanged() {
super.onMediaStoreChanged();
}
@Override
public void setStatusbarColor(int color) {
super.setStatusbarColor(color);

View file

@ -149,11 +149,6 @@ public class GenreDetailActivity extends AbsSlidingMusicPanelActivity implements
}
}
@Override
public void onMediaStoreChanged() {
super.onMediaStoreChanged();
}
private void checkIsEmpty() {
empty.setVisibility(adapter.getItemCount() == 0 ? View.VISIBLE : View.GONE);
}

View file

@ -214,8 +214,8 @@ public class MainActivity extends AbsSlidingMusicPanelActivity {
}
@Override
public void onPlayingMetaChanged() {
super.onPlayingMetaChanged();
public void onPlayMetadataChanged() {
super.onPlayMetadataChanged();
updateNavigationDrawerHeader();
}

View file

@ -177,11 +177,6 @@ public class PlaylistDetailActivity extends AbsSlidingMusicPanelActivity impleme
}
}
@Override
public void onMediaStoreChanged() {
super.onMediaStoreChanged();
}
private void checkIsEmpty() {
empty.setVisibility(adapter.getItemCount() == 0 ? View.VISIBLE : View.GONE);
}

View file

@ -196,11 +196,6 @@ public class SearchActivity extends AbsMusicServiceActivity implements SearchVie
QueryUtil.getItems(itemQuery, callback);
}
@Override
public void onMediaStoreChanged() {
super.onMediaStoreChanged();
}
@Override
public boolean onQueryTextSubmit(String query) {
hideSoftKeyboard();

View file

@ -27,6 +27,7 @@ public abstract class AbsMusicServiceActivity extends AbsBaseActivity implements
private MusicPlayerRemote.ServiceToken serviceToken;
private MusicStateReceiver musicStateReceiver;
private boolean receiverRegistered;
@Override
@ -80,7 +81,6 @@ public abstract class AbsMusicServiceActivity extends AbsBaseActivity implements
filter.addAction(MusicService.REPEAT_MODE_CHANGED);
filter.addAction(MusicService.META_CHANGED);
filter.addAction(MusicService.QUEUE_CHANGED);
filter.addAction(MusicService.MEDIA_STORE_CHANGED);
registerReceiver(musicStateReceiver, filter);
@ -109,10 +109,10 @@ public abstract class AbsMusicServiceActivity extends AbsBaseActivity implements
}
@Override
public void onPlayingMetaChanged() {
public void onPlayMetadataChanged() {
for (MusicServiceEventListener listener : mMusicServiceEventListeners) {
if (listener != null) {
listener.onPlayingMetaChanged();
listener.onPlayMetadataChanged();
}
}
}
@ -135,15 +135,6 @@ public abstract class AbsMusicServiceActivity extends AbsBaseActivity implements
}
}
@Override
public void onMediaStoreChanged() {
for (MusicServiceEventListener listener : mMusicServiceEventListeners) {
if (listener != null) {
listener.onMediaStoreChanged();
}
}
}
@Override
public void onRepeatModeChanged() {
for (MusicServiceEventListener listener : mMusicServiceEventListeners) {
@ -177,7 +168,7 @@ public abstract class AbsMusicServiceActivity extends AbsBaseActivity implements
if (activity != null) {
switch (action) {
case MusicService.META_CHANGED:
activity.onPlayingMetaChanged();
activity.onPlayMetadataChanged();
break;
case MusicService.QUEUE_CHANGED:
activity.onQueueChanged();
@ -191,9 +182,6 @@ public abstract class AbsMusicServiceActivity extends AbsBaseActivity implements
case MusicService.SHUFFLE_MODE_CHANGED:
activity.onShuffleModeChanged();
break;
case MusicService.MEDIA_STORE_CHANGED:
activity.onMediaStoreChanged();
break;
}
}
}
@ -201,12 +189,8 @@ public abstract class AbsMusicServiceActivity extends AbsBaseActivity implements
@Override
protected void onHasPermissionsChanged(boolean hasPermissions) {
// TODO is this method even required
super.onHasPermissionsChanged(hasPermissions);
Intent intent = new Intent(MusicService.MEDIA_STORE_CHANGED);
// just in case we need to know this at some point
intent.putExtra("from_permissions_changed", true);
sendBroadcast(intent);
}
@Nullable

View file

@ -40,10 +40,6 @@ public class AbsMusicServiceFragment extends Fragment implements MusicServiceEve
activity.removeMusicServiceEventListener(this);
}
@Override
public void onPlayingMetaChanged() {
}
@Override
public void onServiceConnected() {
}
@ -56,6 +52,10 @@ public class AbsMusicServiceFragment extends Fragment implements MusicServiceEve
public void onQueueChanged() {
}
@Override
public void onPlayMetadataChanged() {
}
@Override
public void onPlayStateChanged() {
}
@ -67,8 +67,4 @@ public class AbsMusicServiceFragment extends Fragment implements MusicServiceEve
@Override
public void onShuffleModeChanged() {
}
@Override
public void onMediaStoreChanged() {
}
}

View file

@ -106,9 +106,4 @@ public class AlbumsFragment extends AbsLibraryPagerRecyclerViewCustomGridSizeFra
protected void saveUsePalette(boolean usePalette) {
PreferenceUtil.getInstance(getActivity()).setAlbumColoredFooters(usePalette);
}
@Override
public void onMediaStoreChanged() {
super.onMediaStoreChanged();
}
}

View file

@ -65,11 +65,6 @@ public class ArtistsFragment extends AbsLibraryPagerRecyclerViewCustomGridSizeFr
return R.layout.item_list_single_row;
}
@Override
public void onMediaStoreChanged() {
super.onMediaStoreChanged();
}
@Override
protected String loadSortMethod() {
return SortMethod.NAME;

View file

@ -46,8 +46,4 @@ public class GenresFragment extends AbsLibraryPagerRecyclerViewFragment<GenreAda
protected int getEmptyMessage() {
return R.string.no_genres;
}
@Override
public void onMediaStoreChanged() {
}
}

View file

@ -47,8 +47,4 @@ public class PlaylistsFragment extends AbsLibraryPagerRecyclerViewFragment<Playl
protected int getEmptyMessage() {
return R.string.no_playlists;
}
@Override
public void onMediaStoreChanged() {
}
}

View file

@ -72,11 +72,6 @@ public class SongsFragment extends AbsLibraryPagerRecyclerViewCustomGridSizeFrag
return R.string.no_songs;
}
@Override
public void onMediaStoreChanged() {
super.onMediaStoreChanged();
}
@Override
protected String loadSortMethod() {
return PreferenceUtil.getInstance(getActivity()).getSongSortMethod();

View file

@ -95,7 +95,7 @@ public class MiniPlayerFragment extends AbsMusicServiceFragment implements Music
}
@Override
public void onPlayingMetaChanged() {
public void onPlayMetadataChanged() {
updateSongTitle();
}

View file

@ -81,7 +81,7 @@ public class PlayerAlbumCoverFragment extends AbsMusicServiceFragment implements
}
@Override
public void onPlayingMetaChanged() {
public void onPlayMetadataChanged() {
viewPager.setCurrentItem(MusicPlayerRemote.getPosition());
}

View file

@ -176,7 +176,7 @@ public class CardPlayerFragment extends AbsPlayerFragment implements PlayerAlbum
}
@Override
public void onPlayingMetaChanged() {
public void onPlayMetadataChanged() {
updateCurrentSong();
updateIsFavorite();
updateQueuePosition();
@ -187,11 +187,6 @@ public class CardPlayerFragment extends AbsPlayerFragment implements PlayerAlbum
updateQueue();
}
@Override
public void onMediaStoreChanged() {
updateQueue();
}
private void updateQueue() {
playingQueueAdapter.swapDataSet(MusicPlayerRemote.getPlayingQueue(), MusicPlayerRemote.getPosition());
playerQueueSubHeader.setText(getUpNextAndQueueTime());

View file

@ -170,7 +170,7 @@ public class FlatPlayerFragment extends AbsPlayerFragment implements PlayerAlbum
}
@Override
public void onPlayingMetaChanged() {
public void onPlayMetadataChanged() {
updateCurrentSong();
updateIsFavorite();
updateQueuePosition();
@ -181,11 +181,6 @@ public class FlatPlayerFragment extends AbsPlayerFragment implements PlayerAlbum
updateQueue();
}
@Override
public void onMediaStoreChanged() {
updateQueue();
}
private void updateQueue() {
playingQueueAdapter.swapDataSet(MusicPlayerRemote.getPlayingQueue(), MusicPlayerRemote.getPosition());
playerQueueSubHeader.setText(getUpNextAndQueueTime());