aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorScott Jackson <daneren2005@gmail.com>2013-06-11 23:57:38 -0700
committerScott Jackson <daneren2005@gmail.com>2013-06-11 23:57:38 -0700
commit43c8f9f09a097cf75778ec3aa18a686fedae1989 (patch)
tree81b68d299a79a293e53a485f7cfd198caf7c77be
parent6830fe76ed069a1cc141f887a49c165669074f6b (diff)
downloaddsub-43c8f9f09a097cf75778ec3aa18a686fedae1989.tar.gz
dsub-43c8f9f09a097cf75778ec3aa18a686fedae1989.tar.bz2
dsub-43c8f9f09a097cf75778ec3aa18a686fedae1989.zip
Close #136 Keep a permanent cache of version
-rw-r--r--subsonic-android/src/github/daneren2005/dsub/util/Constants.java1
-rw-r--r--subsonic-android/src/github/daneren2005/dsub/util/Util.java21
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) {