Reset user/music/db sessions on logout

This commit is contained in:
CappielloAntonio 2022-01-04 19:12:06 +01:00
parent eb34473706
commit 2d82007abd
2 changed files with 24 additions and 1 deletions

View file

@ -21,6 +21,25 @@ import java.util.concurrent.ExecutionException;
public class MediaManager {
private static final String TAG = "MediaManager";
public static void reset(ListenableFuture<MediaBrowser> 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<MediaBrowser> mediaBrowserListenableFuture) {
if (mediaBrowserListenableFuture != null) {
mediaBrowserListenableFuture.addListener(() -> {
@ -306,4 +325,8 @@ public class MediaManager {
getQueueRepository().insertAll(songs, true, 0);
}
}
public static void clearDatabase() {
getQueueRepository().deleteAll();
}
}

View file

@ -266,7 +266,7 @@ public class MainActivity extends BaseActivity {
}
private void resetMusicSession() {
MediaManager.quit(getMediaBrowserListenableFuture());
MediaManager.reset(getMediaBrowserListenableFuture());
}
private void resetViewModel() {