From 43c8f9f09a097cf75778ec3aa18a686fedae1989 Mon Sep 17 00:00:00 2001 From: Scott Jackson Date: Tue, 11 Jun 2013 23:57:38 -0700 Subject: Close #136 Keep a permanent cache of version --- .../src/github/daneren2005/dsub/util/Constants.java | 1 + .../src/github/daneren2005/dsub/util/Util.java | 21 +++++++++++++++++++-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/subsonic-android/src/github/daneren2005/dsub/util/Constants.java b/subsonic-android/src/github/daneren2005/dsub/util/Constants.java index 78ed1a41..0eeb37c9 100644 --- a/subsonic-android/src/github/daneren2005/dsub/util/Constants.java +++ b/subsonic-android/src/github/daneren2005/dsub/util/Constants.java @@ -68,6 +68,7 @@ public final class Constants { public static final String PREFERENCES_KEY_SERVER_INSTANCE = "serverInstanceId"; public static final String PREFERENCES_KEY_SERVER_NAME = "serverName"; public static final String PREFERENCES_KEY_SERVER_URL = "serverUrl"; + public static final String PREFERENCES_KEY_SERVER_VERSION = "serverVersion"; public static final String PREFERENCES_KEY_TEST_CONNECTION = "serverTestConnection"; public static final String PREFERENCES_KEY_OPEN_BROWSER = "openBrowser"; public static final String PREFERENCES_KEY_MUSIC_FOLDER_ID = "musicFolderId"; diff --git a/subsonic-android/src/github/daneren2005/dsub/util/Util.java b/subsonic-android/src/github/daneren2005/dsub/util/Util.java index 8ff80bb7..1603924b 100644 --- a/subsonic-android/src/github/daneren2005/dsub/util/Util.java +++ b/subsonic-android/src/github/daneren2005/dsub/util/Util.java @@ -237,11 +237,28 @@ public final class Util { } public static void setServerRestVersion(Context context, Version version) { - SERVER_REST_VERSIONS.put(getActiveServer(context), version); + int instance = getActiveServer(context); + Version current = SERVER_REST_VERSIONS.get(instance); + if(current != version) { + SERVER_REST_VERSIONS.put(instance, version); + SharedPreferences.Editor editor = getPreferences(context).edit(); + editor.putString(Constants.PREFERENCES_KEY_SERVER_VERSION + instance, version.getVersion()); + editor.commit(); + } } public static Version getServerRestVersion(Context context) { - return SERVER_REST_VERSIONS.get(getActiveServer(context)); + int instance = getActiveServer(context); + Version version = SERVER_REST_VERSIONS.get(instance); + if(version == null) { + SharedPreferences prefs = getPreferences(context); + String versionString = prefs.getString(Constants.PREFERENCES_KEY_SERVER_VERSION + instance, null); + if(versionString != null) { + version = new Version(versionString); + SERVER_REST_VERSIONS.put(instance, version); + } + } + return version; } public static void setSelectedMusicFolderId(Context context, String musicFolderId) { -- cgit v1.2.3