From 2d82007abd5ebf1ccb630b53661b2c618ba4d138 Mon Sep 17 00:00:00 2001 From: CappielloAntonio Date: Tue, 4 Jan 2022 19:12:06 +0100 Subject: [PATCH] Reset user/music/db sessions on logout --- .../play/service/MediaManager.java | 23 +++++++++++++++++++ .../play/ui/activity/MainActivity.java | 2 +- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/cappielloantonio/play/service/MediaManager.java b/app/src/main/java/com/cappielloantonio/play/service/MediaManager.java index a8c42fda..3461edf3 100644 --- a/app/src/main/java/com/cappielloantonio/play/service/MediaManager.java +++ b/app/src/main/java/com/cappielloantonio/play/service/MediaManager.java @@ -21,6 +21,25 @@ import java.util.concurrent.ExecutionException; public class MediaManager { private static final String TAG = "MediaManager"; + public static void reset(ListenableFuture mediaBrowserListenableFuture) { + if (mediaBrowserListenableFuture != null) { + mediaBrowserListenableFuture.addListener(() -> { + try { + if (mediaBrowserListenableFuture.isDone()) { + if (mediaBrowserListenableFuture.get().isPlaying()) { + mediaBrowserListenableFuture.get().pause(); + mediaBrowserListenableFuture.get().stop(); + mediaBrowserListenableFuture.get().clearMediaItems(); + clearDatabase(); + } + } + } catch (ExecutionException | InterruptedException e) { + Log.e(TAG, e.getMessage()); + } + }, MoreExecutors.directExecutor()); + } + } + public static void quit(ListenableFuture mediaBrowserListenableFuture) { if (mediaBrowserListenableFuture != null) { mediaBrowserListenableFuture.addListener(() -> { @@ -306,4 +325,8 @@ public class MediaManager { getQueueRepository().insertAll(songs, true, 0); } } + + public static void clearDatabase() { + getQueueRepository().deleteAll(); + } } diff --git a/app/src/main/java/com/cappielloantonio/play/ui/activity/MainActivity.java b/app/src/main/java/com/cappielloantonio/play/ui/activity/MainActivity.java index f4b7749e..c8065c98 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/activity/MainActivity.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/activity/MainActivity.java @@ -266,7 +266,7 @@ public class MainActivity extends BaseActivity { } private void resetMusicSession() { - MediaManager.quit(getMediaBrowserListenableFuture()); + MediaManager.reset(getMediaBrowserListenableFuture()); } private void resetViewModel() {