From 80769567867db1cfa762a252657ac5c115209fa9 Mon Sep 17 00:00:00 2001 From: Yahor Berdnikau Date: Mon, 12 Mar 2018 22:21:07 +0100 Subject: [PATCH] Clear persistent storage on server deletion. Signed-off-by: Yahor Berdnikau --- .../ultrasonic/fragment/ServerSettingsFragment.java | 11 +++++++++++ .../ultrasonic/service/MusicServiceFactory.java | 12 ++++++++---- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/ultrasonic/src/main/java/org/moire/ultrasonic/fragment/ServerSettingsFragment.java b/ultrasonic/src/main/java/org/moire/ultrasonic/fragment/ServerSettingsFragment.java index 85456be2..536e6fc4 100644 --- a/ultrasonic/src/main/java/org/moire/ultrasonic/fragment/ServerSettingsFragment.java +++ b/ultrasonic/src/main/java/org/moire/ultrasonic/fragment/ServerSettingsFragment.java @@ -12,7 +12,9 @@ import android.support.annotation.Nullable; import android.util.Log; import android.view.View; +import org.moire.ultrasonic.BuildConfig; import org.moire.ultrasonic.R; +import org.moire.ultrasonic.cache.PermanentFileStorage; import org.moire.ultrasonic.service.MusicService; import org.moire.ultrasonic.service.MusicServiceFactory; import org.moire.ultrasonic.util.Constants; @@ -279,6 +281,15 @@ public class ServerSettingsFragment extends PreferenceFragment int activeServers = sharedPreferences .getInt(Constants.PREFERENCES_KEY_ACTIVE_SERVERS, 0); + // Clear permanent storage + final String storageServerId = MusicServiceFactory.getServerId(sharedPreferences, serverId); + final PermanentFileStorage fileStorage = new PermanentFileStorage( + MusicServiceFactory.getDirectories(getActivity()), + storageServerId, + BuildConfig.DEBUG + ); + fileStorage.clearAll(); + // Reset values to null so when we ask for them again they are new sharedPreferences.edit() .remove(Constants.PREFERENCES_KEY_SERVER_NAME + serverId) diff --git a/ultrasonic/src/main/java/org/moire/ultrasonic/service/MusicServiceFactory.java b/ultrasonic/src/main/java/org/moire/ultrasonic/service/MusicServiceFactory.java index 3c29a6b5..eb859aa5 100644 --- a/ultrasonic/src/main/java/org/moire/ultrasonic/service/MusicServiceFactory.java +++ b/ultrasonic/src/main/java/org/moire/ultrasonic/service/MusicServiceFactory.java @@ -116,14 +116,18 @@ public class MusicServiceFactory { private static PermanentFileStorage getPermanentFileStorage(final Context context) { final SharedPreferences preferences = Util.getPreferences(context); int instance = preferences.getInt(Constants.PREFERENCES_KEY_SERVER_INSTANCE, 1); - String serverUrl = preferences.getString( - Constants.PREFERENCES_KEY_SERVER_URL + instance, null); - String serverId = String.valueOf(Math.abs((serverUrl + instance).hashCode())); + final String serverId = getServerId(preferences, instance); return new PermanentFileStorage(getDirectories(context), serverId, BuildConfig.DEBUG); } - private static Directories getDirectories(final Context context) { + public static String getServerId(final SharedPreferences sp, final int instance) { + String serverUrl = sp.getString( + Constants.PREFERENCES_KEY_SERVER_URL + instance, null); + return String.valueOf(Math.abs((serverUrl + instance).hashCode())); + } + + public static Directories getDirectories(final Context context) { return new Directories() { @NotNull @Override