Minor performance improvement.
This commit is contained in:
parent
119f4e1f1c
commit
2f75f9826e
1 changed files with 11 additions and 11 deletions
|
|
@ -141,7 +141,7 @@ public class MusicService extends Service implements SharedPreferences.OnSharedP
|
||||||
private HandlerThread musicPlayerHandlerThread;
|
private HandlerThread musicPlayerHandlerThread;
|
||||||
private HandlerThread queueSaveHandlerThread;
|
private HandlerThread queueSaveHandlerThread;
|
||||||
private SongPlayCountHelper songPlayCountHelper = new SongPlayCountHelper();
|
private SongPlayCountHelper songPlayCountHelper = new SongPlayCountHelper();
|
||||||
private ThrottledPublicPlayStateChangedNotifier throttledPublicPlayStateChangedNotifier;
|
private ThrottledSeekHandler throttledSeekHandler;
|
||||||
private final BroadcastReceiver becomingNoisyReceiver = new BroadcastReceiver() {
|
private final BroadcastReceiver becomingNoisyReceiver = new BroadcastReceiver() {
|
||||||
@Override
|
@Override
|
||||||
public void onReceive(Context context, @NonNull Intent intent) {
|
public void onReceive(Context context, @NonNull Intent intent) {
|
||||||
|
|
@ -191,7 +191,7 @@ public class MusicService extends Service implements SharedPreferences.OnSharedP
|
||||||
registerReceiver(widgetIntentReceiver, new IntentFilter(APP_WIDGET_UPDATE));
|
registerReceiver(widgetIntentReceiver, new IntentFilter(APP_WIDGET_UPDATE));
|
||||||
|
|
||||||
mediaStoreObserver = new MediaStoreObserver(playerHandler);
|
mediaStoreObserver = new MediaStoreObserver(playerHandler);
|
||||||
throttledPublicPlayStateChangedNotifier = new ThrottledPublicPlayStateChangedNotifier(playerHandler);
|
throttledSeekHandler = new ThrottledSeekHandler(playerHandler);
|
||||||
getContentResolver().registerContentObserver(
|
getContentResolver().registerContentObserver(
|
||||||
MediaStore.Audio.Media.INTERNAL_CONTENT_URI, true, mediaStoreObserver);
|
MediaStore.Audio.Media.INTERNAL_CONTENT_URI, true, mediaStoreObserver);
|
||||||
getContentResolver().registerContentObserver(
|
getContentResolver().registerContentObserver(
|
||||||
|
|
@ -848,8 +848,7 @@ public class MusicService extends Service implements SharedPreferences.OnSharedP
|
||||||
synchronized (this) {
|
synchronized (this) {
|
||||||
try {
|
try {
|
||||||
int newPosition = playback.seek(millis);
|
int newPosition = playback.seek(millis);
|
||||||
savePositionInTrack();
|
throttledSeekHandler.notifySeek();
|
||||||
throttledPublicPlayStateChangedNotifier.scheduleIntent();
|
|
||||||
return newPosition;
|
return newPosition;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
return -1;
|
return -1;
|
||||||
|
|
@ -1203,23 +1202,24 @@ public class MusicService extends Service implements SharedPreferences.OnSharedP
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private class ThrottledPublicPlayStateChangedNotifier implements Runnable {
|
private class ThrottledSeekHandler implements Runnable {
|
||||||
// milliseconds to delay before calling refresh to aggregate events
|
// milliseconds to throttle before calling run() to aggregate events
|
||||||
private static final long REFRESH_DELAY = 500;
|
private static final long THROTTLE = 500;
|
||||||
private Handler mHandler;
|
private Handler mHandler;
|
||||||
|
|
||||||
public ThrottledPublicPlayStateChangedNotifier(Handler handler) {
|
public ThrottledSeekHandler(Handler handler) {
|
||||||
mHandler = handler;
|
mHandler = handler;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void scheduleIntent() {
|
public void notifySeek() {
|
||||||
mHandler.removeCallbacks(this);
|
mHandler.removeCallbacks(this);
|
||||||
mHandler.postDelayed(this, REFRESH_DELAY);
|
mHandler.postDelayed(this, THROTTLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
sendPublicIntent(PLAY_STATE_CHANGED);
|
savePositionInTrack();
|
||||||
|
sendPublicIntent(PLAY_STATE_CHANGED); // for musixmatch synced lyrics
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue