mirror of
https://github.com/ultrasonic/ultrasonic
synced 2025-02-17 04:00:39 +01:00
Fixed exit and restart
This commit is contained in:
parent
7dad738fce
commit
decca7103f
@ -160,7 +160,7 @@ public class SubsonicTabActivity extends ResultActivity implements OnClickListen
|
|||||||
|
|
||||||
Util.registerMediaButtonEventReceiver(this);
|
Util.registerMediaButtonEventReceiver(this);
|
||||||
// Lifecycle support's constructor registers some event receivers so it should be created early
|
// Lifecycle support's constructor registers some event receivers so it should be created early
|
||||||
lifecycleSupport.getValue();
|
lifecycleSupport.getValue().onCreate();
|
||||||
|
|
||||||
// Make sure to update theme
|
// Make sure to update theme
|
||||||
if (theme != null && !theme.equals(Util.getTheme(this)))
|
if (theme != null && !theme.equals(Util.getTheme(this)))
|
||||||
|
@ -54,6 +54,7 @@ public class MediaPlayerControllerImpl implements MediaPlayerController
|
|||||||
{
|
{
|
||||||
private static final String TAG = MediaPlayerControllerImpl.class.getSimpleName();
|
private static final String TAG = MediaPlayerControllerImpl.class.getSimpleName();
|
||||||
|
|
||||||
|
private boolean created = false;
|
||||||
private String suggestedPlaylistName;
|
private String suggestedPlaylistName;
|
||||||
private boolean keepScreenOn;
|
private boolean keepScreenOn;
|
||||||
|
|
||||||
@ -79,6 +80,12 @@ public class MediaPlayerControllerImpl implements MediaPlayerController
|
|||||||
this.shufflePlayBuffer = shufflePlayBuffer;
|
this.shufflePlayBuffer = shufflePlayBuffer;
|
||||||
this.localMediaPlayer = localMediaPlayer;
|
this.localMediaPlayer = localMediaPlayer;
|
||||||
|
|
||||||
|
Log.i(TAG, "MediaPlayerControllerImpl constructed");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void onCreate()
|
||||||
|
{
|
||||||
|
if (created) return;
|
||||||
this.externalStorageMonitor.onCreate(new Runnable() {
|
this.externalStorageMonitor.onCreate(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
@ -88,15 +95,18 @@ public class MediaPlayerControllerImpl implements MediaPlayerController
|
|||||||
|
|
||||||
int instance = Util.getActiveServer(context);
|
int instance = Util.getActiveServer(context);
|
||||||
setJukeboxEnabled(Util.getJukeboxEnabled(context, instance));
|
setJukeboxEnabled(Util.getJukeboxEnabled(context, instance));
|
||||||
|
created = true;
|
||||||
|
|
||||||
Log.i(TAG, "MediaPlayerControllerImpl created");
|
Log.i(TAG, "MediaPlayerControllerImpl created");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onDestroy()
|
public void onDestroy()
|
||||||
{
|
{
|
||||||
|
if (!created) return;
|
||||||
externalStorageMonitor.onDestroy();
|
externalStorageMonitor.onDestroy();
|
||||||
context.stopService(new Intent(context, MediaPlayerService.class));
|
context.stopService(new Intent(context, MediaPlayerService.class));
|
||||||
downloader.onDestroy();
|
downloader.onDestroy();
|
||||||
|
created = false;
|
||||||
|
|
||||||
Log.i(TAG, "MediaPlayerControllerImpl destroyed");
|
Log.i(TAG, "MediaPlayerControllerImpl destroyed");
|
||||||
}
|
}
|
||||||
|
@ -44,6 +44,7 @@ public class MediaPlayerLifecycleSupport
|
|||||||
{
|
{
|
||||||
private static final String TAG = MediaPlayerLifecycleSupport.class.getSimpleName();
|
private static final String TAG = MediaPlayerLifecycleSupport.class.getSimpleName();
|
||||||
|
|
||||||
|
private boolean created = false;
|
||||||
private DownloadQueueSerializer downloadQueueSerializer; // From DI
|
private DownloadQueueSerializer downloadQueueSerializer; // From DI
|
||||||
private final MediaPlayerControllerImpl mediaPlayerController; // From DI
|
private final MediaPlayerControllerImpl mediaPlayerController; // From DI
|
||||||
private final Downloader downloader; // From DI
|
private final Downloader downloader; // From DI
|
||||||
@ -59,6 +60,12 @@ public class MediaPlayerLifecycleSupport
|
|||||||
this.context = context;
|
this.context = context;
|
||||||
this.downloader = downloader;
|
this.downloader = downloader;
|
||||||
|
|
||||||
|
Log.i(TAG, "LifecycleSupport constructed");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void onCreate()
|
||||||
|
{
|
||||||
|
if (created) return;
|
||||||
registerHeadsetReceiver();
|
registerHeadsetReceiver();
|
||||||
|
|
||||||
// React to media buttons.
|
// React to media buttons.
|
||||||
@ -75,6 +82,7 @@ public class MediaPlayerLifecycleSupport
|
|||||||
commandFilter.addAction(Constants.CMD_PROCESS_KEYCODE);
|
commandFilter.addAction(Constants.CMD_PROCESS_KEYCODE);
|
||||||
context.registerReceiver(intentReceiver, commandFilter);
|
context.registerReceiver(intentReceiver, commandFilter);
|
||||||
|
|
||||||
|
mediaPlayerController.onCreate();
|
||||||
this.downloadQueueSerializer.deserializeDownloadQueue(new Consumer<State>() {
|
this.downloadQueueSerializer.deserializeDownloadQueue(new Consumer<State>() {
|
||||||
@Override
|
@Override
|
||||||
public void accept(State state) {
|
public void accept(State state) {
|
||||||
@ -88,15 +96,20 @@ public class MediaPlayerLifecycleSupport
|
|||||||
});
|
});
|
||||||
|
|
||||||
new CacheCleaner(context).clean();
|
new CacheCleaner(context).clean();
|
||||||
|
created = true;
|
||||||
Log.i(TAG, "LifecycleSupport created");
|
Log.i(TAG, "LifecycleSupport created");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onDestroy()
|
public void onDestroy()
|
||||||
{
|
{
|
||||||
|
if (!created) return;
|
||||||
|
downloadQueueSerializer.serializeDownloadQueueNow(downloader.downloadList,
|
||||||
|
downloader.getCurrentPlayingIndex(), mediaPlayerController.getPlayerPosition());
|
||||||
mediaPlayerController.clear(false);
|
mediaPlayerController.clear(false);
|
||||||
context.unregisterReceiver(headsetEventReceiver);
|
context.unregisterReceiver(headsetEventReceiver);
|
||||||
context.unregisterReceiver(intentReceiver);
|
context.unregisterReceiver(intentReceiver);
|
||||||
mediaPlayerController.onDestroy();
|
mediaPlayerController.onDestroy();
|
||||||
|
created = false;
|
||||||
Log.i(TAG, "LifecycleSupport destroyed");
|
Log.i(TAG, "LifecycleSupport destroyed");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -191,8 +191,6 @@ public class MediaPlayerService extends Service
|
|||||||
instance = null;
|
instance = null;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
downloadQueueSerializer.serializeDownloadQueueNow(downloader.downloadList,
|
|
||||||
downloader.getCurrentPlayingIndex(), getPlayerPosition());
|
|
||||||
localMediaPlayer.onDestroy();
|
localMediaPlayer.onDestroy();
|
||||||
downloader.stop();
|
downloader.stop();
|
||||||
shufflePlayBuffer.onDestroy();
|
shufflePlayBuffer.onDestroy();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user