summaryrefslogtreecommitdiff
path: root/src/de/danoeh/antennapod/preferences
diff options
context:
space:
mode:
authordaniel oeh <daniel.oeh@gmail.com>2013-09-01 13:49:19 +0200
committerdaniel oeh <daniel.oeh@gmail.com>2013-09-01 13:49:19 +0200
commitc5f848ead5037ec73daa9d5eda17e8556091ef90 (patch)
tree7c06bcfb3851dad60500b7f4fd99744d4fa36be6 /src/de/danoeh/antennapod/preferences
parente29d1179425238672b8be7b01dfac14f98257198 (diff)
downloadAntennaPod-c5f848ead5037ec73daa9d5eda17e8556091ef90.zip
Added subscription syncing
Diffstat (limited to 'src/de/danoeh/antennapod/preferences')
-rw-r--r--src/de/danoeh/antennapod/preferences/GpodnetPreferences.java39
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);
+ }
}