diff options
author | daniel oeh <daniel.oeh@gmail.com> | 2013-09-01 13:49:19 +0200 |
---|---|---|
committer | daniel oeh <daniel.oeh@gmail.com> | 2013-09-01 13:49:19 +0200 |
commit | c5f848ead5037ec73daa9d5eda17e8556091ef90 (patch) | |
tree | 7c06bcfb3851dad60500b7f4fd99744d4fa36be6 /src/de/danoeh/antennapod/preferences | |
parent | e29d1179425238672b8be7b01dfac14f98257198 (diff) | |
download | AntennaPod-c5f848ead5037ec73daa9d5eda17e8556091ef90.zip |
Added subscription syncing
Diffstat (limited to 'src/de/danoeh/antennapod/preferences')
-rw-r--r-- | src/de/danoeh/antennapod/preferences/GpodnetPreferences.java | 39 |
1 files changed, 38 insertions, 1 deletions
diff --git a/src/de/danoeh/antennapod/preferences/GpodnetPreferences.java b/src/de/danoeh/antennapod/preferences/GpodnetPreferences.java index 6c4d7b41c..0a9984137 100644 --- a/src/de/danoeh/antennapod/preferences/GpodnetPreferences.java +++ b/src/de/danoeh/antennapod/preferences/GpodnetPreferences.java @@ -16,10 +16,17 @@ public class GpodnetPreferences { public static final String PREF_GPODNET_PASSWORD = "de.danoeh.antennapod.preferences.gpoddernet.password"; public static final String PREF_GPODNET_DEVICEID = "de.danoeh.antennapod.preferences.gpoddernet.deviceID"; + public static final String PREF_LAST_SYNC_TIMESTAMP = "de.danoeh.antennapod.preferences.gpoddernet.last_sync_timestamp"; + private static String username; private static String password; private static String deviceID; + /** + * Last value returned by getSubscriptionChanges call. Will be used for all subsequent calls of getSubscriptionChanges. + */ + private static long lastSyncTimestamp; + private static boolean preferencesLoaded = false; private static SharedPreferences getPreferences() { @@ -32,7 +39,7 @@ public class GpodnetPreferences { username = prefs.getString(PREF_GPODNET_USERNAME, null); password = prefs.getString(PREF_GPODNET_PASSWORD, null); deviceID = prefs.getString(PREF_GPODNET_DEVICEID, null); - + lastSyncTimestamp = prefs.getLong(PREF_LAST_SYNC_TIMESTAMP, 0); preferencesLoaded = true; } } @@ -43,6 +50,11 @@ public class GpodnetPreferences { editor.commit(); } + private static void writePreference(String key, long value) { + SharedPreferences.Editor editor = getPreferences().edit(); + editor.putLong(key, value); + editor.commit(); + } public static String getUsername() { ensurePreferencesLoaded(); @@ -73,4 +85,29 @@ public class GpodnetPreferences { GpodnetPreferences.deviceID = deviceID; writePreference(PREF_GPODNET_DEVICEID, deviceID); } + + public static long getLastSyncTimestamp() { + ensurePreferencesLoaded(); + return lastSyncTimestamp; + } + + public static void setLastSyncTimestamp(long lastSyncTimestamp) { + GpodnetPreferences.lastSyncTimestamp = lastSyncTimestamp; + writePreference(PREF_LAST_SYNC_TIMESTAMP, lastSyncTimestamp); + } + + /** + * Returns true if device ID, username and password have a non-null value + */ + public static boolean loggedIn() { + ensurePreferencesLoaded(); + return deviceID != null && username != null && password != null; + } + + public static void logout() { + setUsername(null); + setPassword(null); + setDeviceID(null); + setLastSyncTimestamp(0); + } } |