diff --git a/astrid/plugin-src/com/todoroo/astrid/actfm/ActFmLoginActivity.java b/astrid/plugin-src/com/todoroo/astrid/actfm/ActFmLoginActivity.java index 063624771..4faf6d908 100644 --- a/astrid/plugin-src/com/todoroo/astrid/actfm/ActFmLoginActivity.java +++ b/astrid/plugin-src/com/todoroo/astrid/actfm/ActFmLoginActivity.java @@ -527,6 +527,12 @@ public class ActFmLoginActivity extends FragmentActivity implements AuthListener result.optLong("id")); Preferences.setString(ActFmPreferenceService.PREF_NAME, result.optString("name")); + Preferences.setString(ActFmPreferenceService.PREF_FIRST_NAME, + result.optString("first_name")); + Preferences.setString(ActFmPreferenceService.PREF_LAST_NAME, + result.optString("last_name")); + Preferences.setBoolean(ActFmPreferenceService.PREF_PREMIUM, + result.optBoolean("premium")); Preferences.setString(ActFmPreferenceService.PREF_EMAIL, result.optString("email")); Preferences.setString(ActFmPreferenceService.PREF_PICTURE, diff --git a/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmPreferenceService.java b/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmPreferenceService.java index 6474e886c..ada23f8a7 100644 --- a/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmPreferenceService.java +++ b/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmPreferenceService.java @@ -63,6 +63,15 @@ public class ActFmPreferenceService extends SyncProviderUtilities { /** Act.fm current user name */ public static final String PREF_NAME = IDENTIFIER + "_name"; //$NON-NLS-1$ + /** Act.fm current user first name */ + public static final String PREF_FIRST_NAME = IDENTIFIER + "_first_name"; //$NON-NLS-1$ + + /** Act.fm current user last name */ + public static final String PREF_LAST_NAME = IDENTIFIER + "_last_name"; //$NON-NLS-1$ + + /** Act.fm current user premium status */ + public static final String PREF_PREMIUM = IDENTIFIER + "_premium"; //$NON-NLS-1$ + /** Act.fm current user picture */ public static final String PREF_PICTURE = IDENTIFIER + "_picture"; //$NON-NLS-1$ @@ -115,6 +124,9 @@ public class ActFmPreferenceService extends SyncProviderUtilities { user = new JSONObject(); try { user.put("name", Preferences.getStringValue(PREF_NAME)); + user.put("first_name", Preferences.getStringValue(PREF_FIRST_NAME)); + user.put("last_name", Preferences.getStringValue(PREF_LAST_NAME)); + user.put("premium", Preferences.getBoolean(PREF_PREMIUM, false)); user.put("email", Preferences.getStringValue(PREF_EMAIL)); user.put("picture", Preferences.getStringValue(PREF_PICTURE)); user.put("id", Preferences.getLong(PREF_USER_ID, 0)); @@ -125,6 +137,10 @@ public class ActFmPreferenceService extends SyncProviderUtilities { return user; } + public boolean isPremiumUser() { + return Preferences.getBoolean(PREF_PREMIUM, false); + } + @Override public String getLoggedInUserName() { return Preferences.getStringValue(PREF_NAME); diff --git a/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmSyncV2Provider.java b/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmSyncV2Provider.java index 1a40cf818..e4c44eaad 100644 --- a/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmSyncV2Provider.java +++ b/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmSyncV2Provider.java @@ -10,6 +10,7 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; import org.json.JSONException; +import org.json.JSONObject; import com.timsu.astrid.C2DMReceiver; import com.timsu.astrid.R; @@ -123,7 +124,7 @@ public class ActFmSyncV2Provider extends SyncV2Provider { final AtomicInteger finisher = new AtomicInteger(3); actFmPreferenceService.recordSyncStart(); - + updateUserStatus(); startUsersFetcher(callback, finisher); @@ -137,6 +138,30 @@ public class ActFmSyncV2Provider extends SyncV2Provider { }).start(); } + /** fetch user status hash*/ + @SuppressWarnings("nls") + private void updateUserStatus() { + try { + JSONObject status = actFmSyncService.invoke("user_status"); //$NON-NLS-1$ + if (status.has("id")) + Preferences.setLong(ActFmPreferenceService.PREF_USER_ID, status.optLong("id")); + if (status.has("name")) + Preferences.setString(ActFmPreferenceService.PREF_NAME, status.optString("name")); + if (status.has("first_name")) + Preferences.setString(ActFmPreferenceService.PREF_FIRST_NAME, status.optString("first_name")); + if (status.has("last_name")) + Preferences.setString(ActFmPreferenceService.PREF_LAST_NAME, status.optString("first_name")); + if (status.has("premium")) + Preferences.setBoolean(ActFmPreferenceService.PREF_PREMIUM, status.optBoolean("premium")); + if (status.has("email")) + Preferences.setString(ActFmPreferenceService.PREF_EMAIL, status.optString("email")); + if (status.has("picture")) + Preferences.setString(ActFmPreferenceService.PREF_PICTURE, status.optString("picture")); + } catch (IOException e) { + handler.handleException("actfm-sync", e, e.toString()); //$NON-NLS-1$ + } + } + /** fetch changes to users/friends */ private void startUsersFetcher(final SyncResultCallback callback, final AtomicInteger finisher) {