remove some unused methods in music service
This commit is contained in:
parent
e6ad84f16c
commit
b1ffa78a2e
3 changed files with 38 additions and 92 deletions
|
|
@ -342,15 +342,6 @@ public class MusicPlayerRemote {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean removeFromQueue(@NonNull Song song) {
|
|
||||||
if (musicService != null) {
|
|
||||||
musicService.removeSong(song);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static boolean removeFromQueue(int position) {
|
public static boolean removeFromQueue(int position) {
|
||||||
if (musicService != null && position >= 0 && position < getPlayingQueue().size()) {
|
if (musicService != null && position >= 0 && position < getPlayingQueue().size()) {
|
||||||
musicService.removeSong(position);
|
musicService.removeSong(position);
|
||||||
|
|
|
||||||
|
|
@ -98,9 +98,9 @@ public class MusicService extends Service implements SharedPreferences.OnSharedP
|
||||||
public static final int PLAY_SONG = 3;
|
public static final int PLAY_SONG = 3;
|
||||||
public static final int PREPARE_NEXT = 4;
|
public static final int PREPARE_NEXT = 4;
|
||||||
public static final int SET_POSITION = 5;
|
public static final int SET_POSITION = 5;
|
||||||
private static final int FOCUS_CHANGE = 6;
|
public static final int FOCUS_CHANGE = 6;
|
||||||
private static final int DUCK = 7;
|
public static final int DUCK = 7;
|
||||||
private static final int UNDUCK = 8;
|
public static final int UNDUCK = 8;
|
||||||
public static final int RESTORE_QUEUES = 9;
|
public static final int RESTORE_QUEUES = 9;
|
||||||
|
|
||||||
public static final int SHUFFLE_MODE_NONE = 0;
|
public static final int SHUFFLE_MODE_NONE = 0;
|
||||||
|
|
@ -110,9 +110,9 @@ public class MusicService extends Service implements SharedPreferences.OnSharedP
|
||||||
public static final int REPEAT_MODE_ALL = 1;
|
public static final int REPEAT_MODE_ALL = 1;
|
||||||
public static final int REPEAT_MODE_THIS = 2;
|
public static final int REPEAT_MODE_THIS = 2;
|
||||||
|
|
||||||
public static final int SAVE_QUEUES = 0;
|
public static final int SAVE_QUEUE = 0;
|
||||||
|
|
||||||
private final IBinder musicBind = new MusicBinder();
|
private final IBinder musicBinder = new MusicBinder();
|
||||||
|
|
||||||
public boolean pendingQuit = false;
|
public boolean pendingQuit = false;
|
||||||
|
|
||||||
|
|
@ -133,7 +133,6 @@ public class MusicService extends Service implements SharedPreferences.OnSharedP
|
||||||
private AudioManager audioManager;
|
private AudioManager audioManager;
|
||||||
private MediaSessionCompat mediaSession;
|
private MediaSessionCompat mediaSession;
|
||||||
private PowerManager.WakeLock wakeLock;
|
private PowerManager.WakeLock wakeLock;
|
||||||
private PlaybackHandler playerHandler;
|
|
||||||
|
|
||||||
private final AudioManager.OnAudioFocusChangeListener audioFocusListener = new AudioManager.OnAudioFocusChangeListener() {
|
private final AudioManager.OnAudioFocusChangeListener audioFocusListener = new AudioManager.OnAudioFocusChangeListener() {
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -142,13 +141,13 @@ public class MusicService extends Service implements SharedPreferences.OnSharedP
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
private PlaybackHandler playerHandler;
|
||||||
|
private Handler uiThreadHandler;
|
||||||
|
private ThrottledSeekHandler throttledSeekHandler;
|
||||||
private QueueSaveHandler queueSaveHandler;
|
private QueueSaveHandler queueSaveHandler;
|
||||||
private ProgressHandler progressHandler;
|
private ProgressHandler progressHandler;
|
||||||
private HandlerThread musicPlayerHandlerThread;
|
private HandlerThread playerHandlerThread;
|
||||||
private HandlerThread queueSaveHandlerThread;
|
private HandlerThread queueSaveHandlerThread;
|
||||||
private ThrottledSeekHandler throttledSeekHandler;
|
|
||||||
private boolean becomingNoisyReceiverRegistered;
|
|
||||||
private IntentFilter becomingNoisyReceiverIntentFilter = new IntentFilter(AudioManager.ACTION_AUDIO_BECOMING_NOISY);
|
|
||||||
|
|
||||||
private final BroadcastReceiver becomingNoisyReceiver = new BroadcastReceiver() {
|
private final BroadcastReceiver becomingNoisyReceiver = new BroadcastReceiver() {
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -161,8 +160,6 @@ public class MusicService extends Service implements SharedPreferences.OnSharedP
|
||||||
|
|
||||||
private boolean notHandledMetaChangedForCurrentTrack;
|
private boolean notHandledMetaChangedForCurrentTrack;
|
||||||
|
|
||||||
private Handler uiThreadHandler;
|
|
||||||
|
|
||||||
private static final long MEDIA_SESSION_ACTIONS = PlaybackStateCompat.ACTION_PLAY
|
private static final long MEDIA_SESSION_ACTIONS = PlaybackStateCompat.ACTION_PLAY
|
||||||
| PlaybackStateCompat.ACTION_PAUSE
|
| PlaybackStateCompat.ACTION_PAUSE
|
||||||
| PlaybackStateCompat.ACTION_PLAY_PAUSE
|
| PlaybackStateCompat.ACTION_PLAY_PAUSE
|
||||||
|
|
@ -179,31 +176,30 @@ public class MusicService extends Service implements SharedPreferences.OnSharedP
|
||||||
wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, getClass().getName());
|
wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, getClass().getName());
|
||||||
wakeLock.setReferenceCounted(false);
|
wakeLock.setReferenceCounted(false);
|
||||||
|
|
||||||
musicPlayerHandlerThread = new HandlerThread("PlaybackHandler");
|
playerHandlerThread = new HandlerThread(PlaybackHandler.class.getName());
|
||||||
musicPlayerHandlerThread.start();
|
playerHandlerThread.start();
|
||||||
playerHandler = new PlaybackHandler(this, musicPlayerHandlerThread.getLooper());
|
playerHandler = new PlaybackHandler(this, playerHandlerThread.getLooper());
|
||||||
|
|
||||||
playback = new MultiPlayer(this);
|
playback = new MultiPlayer(this);
|
||||||
playback.setCallbacks(this);
|
playback.setCallbacks(this);
|
||||||
|
|
||||||
setupMediaSession();
|
initMediaSession();
|
||||||
|
|
||||||
// queue saving needs to run on a separate thread so that it doesn't block the playback handler events
|
// queue saving needs to run on a separate thread so that it doesn't block the playback handler events
|
||||||
queueSaveHandlerThread = new HandlerThread("QueueSaveHandler", Process.THREAD_PRIORITY_BACKGROUND);
|
queueSaveHandlerThread = new HandlerThread(QueueSaveHandler.class.getName(), Process.THREAD_PRIORITY_BACKGROUND);
|
||||||
queueSaveHandlerThread.start();
|
queueSaveHandlerThread.start();
|
||||||
queueSaveHandler = new QueueSaveHandler(this, queueSaveHandlerThread.getLooper());
|
queueSaveHandler = new QueueSaveHandler(this, queueSaveHandlerThread.getLooper());
|
||||||
|
|
||||||
uiThreadHandler = new Handler();
|
uiThreadHandler = new Handler();
|
||||||
progressHandler = new ProgressHandler(this, Looper.myLooper());
|
progressHandler = new ProgressHandler(this, Looper.myLooper());
|
||||||
|
throttledSeekHandler = new ThrottledSeekHandler(playerHandler);
|
||||||
|
|
||||||
registerReceiver(widgetIntentReceiver, new IntentFilter(APP_WIDGET_UPDATE));
|
registerReceiver(widgetIntentReceiver, new IntentFilter(APP_WIDGET_UPDATE));
|
||||||
|
registerReceiver(becomingNoisyReceiver, new IntentFilter(AudioManager.ACTION_AUDIO_BECOMING_NOISY));
|
||||||
initNotification();
|
|
||||||
|
|
||||||
throttledSeekHandler = new ThrottledSeekHandler(playerHandler);
|
|
||||||
|
|
||||||
PreferenceUtil.getInstance(this).registerOnSharedPreferenceChangedListener(this);
|
PreferenceUtil.getInstance(this).registerOnSharedPreferenceChangedListener(this);
|
||||||
|
|
||||||
|
initNotification();
|
||||||
restoreState();
|
restoreState();
|
||||||
|
|
||||||
mediaSession.setActive(true);
|
mediaSession.setActive(true);
|
||||||
|
|
@ -217,7 +213,7 @@ public class MusicService extends Service implements SharedPreferences.OnSharedP
|
||||||
return audioManager;
|
return audioManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setupMediaSession() {
|
private void initMediaSession() {
|
||||||
ComponentName mediaButtonReceiverComponentName = new ComponentName(getApplicationContext(), MediaButtonIntentReceiver.class);
|
ComponentName mediaButtonReceiverComponentName = new ComponentName(getApplicationContext(), MediaButtonIntentReceiver.class);
|
||||||
|
|
||||||
Intent mediaButtonIntent = new Intent(Intent.ACTION_MEDIA_BUTTON);
|
Intent mediaButtonIntent = new Intent(Intent.ACTION_MEDIA_BUTTON);
|
||||||
|
|
@ -330,10 +326,7 @@ public class MusicService extends Service implements SharedPreferences.OnSharedP
|
||||||
@Override
|
@Override
|
||||||
public void onDestroy() {
|
public void onDestroy() {
|
||||||
unregisterReceiver(widgetIntentReceiver);
|
unregisterReceiver(widgetIntentReceiver);
|
||||||
if (becomingNoisyReceiverRegistered) {
|
unregisterReceiver(becomingNoisyReceiver);
|
||||||
unregisterReceiver(becomingNoisyReceiver);
|
|
||||||
becomingNoisyReceiverRegistered = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
progressHandler.sendEmptyMessage(TRACK_ENDED);
|
progressHandler.sendEmptyMessage(TRACK_ENDED);
|
||||||
mediaSession.setActive(false);
|
mediaSession.setActive(false);
|
||||||
|
|
@ -345,7 +338,7 @@ public class MusicService extends Service implements SharedPreferences.OnSharedP
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IBinder onBind(Intent intent) {
|
public IBinder onBind(Intent intent) {
|
||||||
return musicBind;
|
return musicBinder;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final class QueueSaveHandler extends Handler {
|
private static final class QueueSaveHandler extends Handler {
|
||||||
|
|
@ -361,14 +354,14 @@ public class MusicService extends Service implements SharedPreferences.OnSharedP
|
||||||
public void handleMessage(@NonNull Message msg) {
|
public void handleMessage(@NonNull Message msg) {
|
||||||
final MusicService service = mService.get();
|
final MusicService service = mService.get();
|
||||||
switch (msg.what) {
|
switch (msg.what) {
|
||||||
case SAVE_QUEUES:
|
case SAVE_QUEUE:
|
||||||
service.saveQueuesImpl();
|
service.saveQueue();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void saveQueuesImpl() {
|
private void saveQueue() {
|
||||||
QueueStore.getInstance(this).saveQueues(playingQueue, originalPlayingQueue);
|
QueueStore.getInstance(this).saveQueues(playingQueue, originalPlayingQueue);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -381,16 +374,13 @@ public class MusicService extends Service implements SharedPreferences.OnSharedP
|
||||||
}
|
}
|
||||||
|
|
||||||
public void saveState() {
|
public void saveState() {
|
||||||
saveQueues();
|
queueSaveHandler.removeMessages(SAVE_QUEUE);
|
||||||
|
queueSaveHandler.sendEmptyMessage(SAVE_QUEUE);
|
||||||
|
|
||||||
savePosition();
|
savePosition();
|
||||||
saveProgress();
|
saveProgress();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void saveQueues() {
|
|
||||||
queueSaveHandler.removeMessages(SAVE_QUEUES);
|
|
||||||
queueSaveHandler.sendEmptyMessage(SAVE_QUEUES);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void restoreState() {
|
private void restoreState() {
|
||||||
shuffleMode = PreferenceManager.getDefaultSharedPreferences(this).getInt(PreferenceUtil.SHUFFLE, 0);
|
shuffleMode = PreferenceManager.getDefaultSharedPreferences(this).getInt(PreferenceUtil.SHUFFLE, 0);
|
||||||
repeatMode = PreferenceManager.getDefaultSharedPreferences(this).getInt(PreferenceUtil.REPEAT, 0);
|
repeatMode = PreferenceManager.getDefaultSharedPreferences(this).getInt(PreferenceUtil.REPEAT, 0);
|
||||||
|
|
@ -438,7 +428,7 @@ public class MusicService extends Service implements SharedPreferences.OnSharedP
|
||||||
|
|
||||||
private void releaseResources() {
|
private void releaseResources() {
|
||||||
playerHandler.removeCallbacksAndMessages(null);
|
playerHandler.removeCallbacksAndMessages(null);
|
||||||
musicPlayerHandlerThread.quitSafely();
|
playerHandlerThread.quitSafely();
|
||||||
|
|
||||||
queueSaveHandler.removeCallbacksAndMessages(null);
|
queueSaveHandler.removeCallbacksAndMessages(null);
|
||||||
queueSaveHandlerThread.quitSafely();
|
queueSaveHandlerThread.quitSafely();
|
||||||
|
|
@ -499,7 +489,7 @@ public class MusicService extends Service implements SharedPreferences.OnSharedP
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean requestFocus() {
|
private boolean requestFocus() {
|
||||||
return (getAudioManager().requestAudioFocus(audioFocusListener, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN) == AudioManager.AUDIOFOCUS_REQUEST_GRANTED);
|
return getAudioManager().requestAudioFocus(audioFocusListener, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN) == AudioManager.AUDIOFOCUS_REQUEST_GRANTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void initNotification() {
|
public void initNotification() {
|
||||||
|
|
@ -527,7 +517,7 @@ public class MusicService extends Service implements SharedPreferences.OnSharedP
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressLint("CheckResult")
|
@SuppressLint("CheckResult")
|
||||||
private void updateMediaSessionMetaData() {
|
private void updateMediaSessionMetadata() {
|
||||||
final Song song = getCurrentSong();
|
final Song song = getCurrentSong();
|
||||||
|
|
||||||
if (song.id == null) {
|
if (song.id == null) {
|
||||||
|
|
@ -571,7 +561,10 @@ public class MusicService extends Service implements SharedPreferences.OnSharedP
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onResourceReady(@NonNull Bitmap resource, Transition<? super Bitmap> glideAnimation) {
|
public void onResourceReady(@NonNull Bitmap resource, Transition<? super Bitmap> glideAnimation) {
|
||||||
metaData.putBitmap(MediaMetadataCompat.METADATA_KEY_ALBUM_ART, copy(resource));
|
Bitmap.Config config = resource.getConfig();
|
||||||
|
Bitmap copy = resource.copy(config, false);
|
||||||
|
|
||||||
|
metaData.putBitmap(MediaMetadataCompat.METADATA_KEY_ALBUM_ART, copy);
|
||||||
mediaSession.setMetadata(metaData.build());
|
mediaSession.setMetadata(metaData.build());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -588,20 +581,6 @@ public class MusicService extends Service implements SharedPreferences.OnSharedP
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Bitmap copy(Bitmap bitmap) {
|
|
||||||
Bitmap.Config config = bitmap.getConfig();
|
|
||||||
if (config == null) {
|
|
||||||
config = Bitmap.Config.RGB_565;
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
return bitmap.copy(config, false);
|
|
||||||
} catch (OutOfMemoryError e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void runOnUiThread(Runnable runnable) {
|
public void runOnUiThread(Runnable runnable) {
|
||||||
uiThreadHandler.post(runnable);
|
uiThreadHandler.post(runnable);
|
||||||
}
|
}
|
||||||
|
|
@ -727,28 +706,11 @@ public class MusicService extends Service implements SharedPreferences.OnSharedP
|
||||||
originalPlayingQueue.remove(playingQueue.remove(position));
|
originalPlayingQueue.remove(playingQueue.remove(position));
|
||||||
}
|
}
|
||||||
|
|
||||||
rePosition(position);
|
reposition(position);
|
||||||
notifyChange(QUEUE_CHANGED);
|
notifyChange(QUEUE_CHANGED);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void removeSong(@NonNull Song song) {
|
private void reposition(int deletedPosition) {
|
||||||
for (int i = 0; i < playingQueue.size(); i++) {
|
|
||||||
if (playingQueue.get(i).id.equals(song.id)) {
|
|
||||||
playingQueue.remove(i);
|
|
||||||
rePosition(i);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (int i = 0; i < originalPlayingQueue.size(); i++) {
|
|
||||||
if (originalPlayingQueue.get(i).id.equals(song.id)) {
|
|
||||||
originalPlayingQueue.remove(i);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
notifyChange(QUEUE_CHANGED);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void rePosition(int deletedPosition) {
|
|
||||||
int currentPosition = getPosition();
|
int currentPosition = getPosition();
|
||||||
if (deletedPosition < currentPosition) {
|
if (deletedPosition < currentPosition) {
|
||||||
position = currentPosition - 1;
|
position = currentPosition - 1;
|
||||||
|
|
@ -822,11 +784,6 @@ public class MusicService extends Service implements SharedPreferences.OnSharedP
|
||||||
playSongAt(getPosition());
|
playSongAt(getPosition());
|
||||||
} else {
|
} else {
|
||||||
playback.start();
|
playback.start();
|
||||||
if (!becomingNoisyReceiverRegistered) {
|
|
||||||
registerReceiver(becomingNoisyReceiver, becomingNoisyReceiverIntentFilter);
|
|
||||||
becomingNoisyReceiverRegistered = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (notHandledMetaChangedForCurrentTrack) {
|
if (notHandledMetaChangedForCurrentTrack) {
|
||||||
handleChangeInternal(META_CHANGED);
|
handleChangeInternal(META_CHANGED);
|
||||||
notHandledMetaChangedForCurrentTrack = false;
|
notHandledMetaChangedForCurrentTrack = false;
|
||||||
|
|
@ -991,14 +948,14 @@ public class MusicService extends Service implements SharedPreferences.OnSharedP
|
||||||
break;
|
break;
|
||||||
case META_CHANGED:
|
case META_CHANGED:
|
||||||
updateNotification();
|
updateNotification();
|
||||||
updateMediaSessionMetaData();
|
updateMediaSessionMetadata();
|
||||||
updateMediaSessionPlaybackState();
|
updateMediaSessionPlaybackState();
|
||||||
savePosition();
|
savePosition();
|
||||||
saveProgress();
|
saveProgress();
|
||||||
break;
|
break;
|
||||||
case QUEUE_CHANGED:
|
case QUEUE_CHANGED:
|
||||||
// because playing queue size might have changed
|
// because playing queue size might have changed
|
||||||
updateMediaSessionMetaData();
|
updateMediaSessionMetadata();
|
||||||
saveState();
|
saveState();
|
||||||
if (playingQueue.size() > 0) {
|
if (playingQueue.size() > 0) {
|
||||||
prepareNext();
|
prepareNext();
|
||||||
|
|
@ -1028,7 +985,7 @@ public class MusicService extends Service implements SharedPreferences.OnSharedP
|
||||||
switch (key) {
|
switch (key) {
|
||||||
case PreferenceUtil.SHOW_ALBUM_COVER:
|
case PreferenceUtil.SHOW_ALBUM_COVER:
|
||||||
case PreferenceUtil.BLUR_ALBUM_COVER:
|
case PreferenceUtil.BLUR_ALBUM_COVER:
|
||||||
updateMediaSessionMetaData();
|
updateMediaSessionMetadata();
|
||||||
break;
|
break;
|
||||||
case PreferenceUtil.COLORED_NOTIFICATION:
|
case PreferenceUtil.COLORED_NOTIFICATION:
|
||||||
updateNotification();
|
updateNotification();
|
||||||
|
|
@ -1058,7 +1015,6 @@ public class MusicService extends Service implements SharedPreferences.OnSharedP
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final class PlaybackHandler extends Handler {
|
private static final class PlaybackHandler extends Handler {
|
||||||
@NonNull
|
|
||||||
private final WeakReference<MusicService> mService;
|
private final WeakReference<MusicService> mService;
|
||||||
private int currentDuckVolume = 100;
|
private int currentDuckVolume = 100;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,6 @@ import com.dkanada.gramophone.dialogs.ConfirmLogoutDialog;
|
||||||
import com.dkanada.gramophone.R;
|
import com.dkanada.gramophone.R;
|
||||||
import com.dkanada.gramophone.glide.CustomGlideRequest;
|
import com.dkanada.gramophone.glide.CustomGlideRequest;
|
||||||
import com.dkanada.gramophone.helper.MusicPlayerRemote;
|
import com.dkanada.gramophone.helper.MusicPlayerRemote;
|
||||||
import com.dkanada.gramophone.interfaces.MediaCallback;
|
|
||||||
import com.dkanada.gramophone.model.Song;
|
import com.dkanada.gramophone.model.Song;
|
||||||
import com.dkanada.gramophone.ui.activities.base.AbsSlidingMusicPanelActivity;
|
import com.dkanada.gramophone.ui.activities.base.AbsSlidingMusicPanelActivity;
|
||||||
import com.dkanada.gramophone.ui.fragments.mainactivity.library.LibraryFragment;
|
import com.dkanada.gramophone.ui.fragments.mainactivity.library.LibraryFragment;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue