diff --git a/astrid/plugin-src/com/todoroo/astrid/actfm/ActFmLoginActivity.java b/astrid/plugin-src/com/todoroo/astrid/actfm/ActFmLoginActivity.java index 4faf6d908..8eef9eeec 100644 --- a/astrid/plugin-src/com/todoroo/astrid/actfm/ActFmLoginActivity.java +++ b/astrid/plugin-src/com/todoroo/astrid/actfm/ActFmLoginActivity.java @@ -538,6 +538,8 @@ public class ActFmLoginActivity extends FragmentActivity implements AuthListener Preferences.setString(ActFmPreferenceService.PREF_PICTURE, result.optString("picture")); + actFmPreferenceService.reloadThisUser(); + setResult(RESULT_OK); finish(); 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 d48c837f1..e19a6cda2 100644 --- a/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmPreferenceService.java +++ b/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmPreferenceService.java @@ -94,9 +94,9 @@ public class ActFmPreferenceService extends SyncProviderUtilities { * @return */ public static JSONObject userFromModel(RemoteModel model) { - if(model.getValue(RemoteModel.USER_ID_PROPERTY) == 0) + if(model.getValue(RemoteModel.USER_ID_PROPERTY) == 0) { return thisUser(); - else { + }else { try { return new JSONObject(model.getValue(RemoteModel.USER_JSON_PROPERTY)); } catch (JSONException e) { @@ -118,25 +118,36 @@ public class ActFmPreferenceService extends SyncProviderUtilities { return String.format("%s: %s", updateUser.optString("name"), description); } - @SuppressWarnings("nls") + public synchronized static JSONObject thisUser() { if(user == null) { 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)); - } catch (JSONException e) { - throw new RuntimeException(e); - } + populateUser(); } return user; } + public synchronized static void reloadThisUser() { + if (user == null) + return; + populateUser(); + } + + @SuppressWarnings("nls") + private static void populateUser() { + 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)); + } catch (JSONException e) { + throw new RuntimeException(e); + } + } + public static boolean isPremiumUser() { return Preferences.getBoolean(PREF_PREMIUM, false); } 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 e26809ef8..71547afee 100644 --- a/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmSyncV2Provider.java +++ b/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmSyncV2Provider.java @@ -181,6 +181,8 @@ public class ActFmSyncV2Provider extends SyncV2Provider { Preferences.setString(ActFmPreferenceService.PREF_EMAIL, status.optString("email")); if (status.has("picture")) Preferences.setString(ActFmPreferenceService.PREF_PICTURE, status.optString("picture")); + + actFmPreferenceService.reloadThisUser(); } catch (IOException e) { handler.handleException("actfm-sync", e, e.toString()); //$NON-NLS-1$ } diff --git a/astrid/src/com/todoroo/astrid/adapter/UpdateAdapter.java b/astrid/src/com/todoroo/astrid/adapter/UpdateAdapter.java index 8bb07981b..497cdf433 100644 --- a/astrid/src/com/todoroo/astrid/adapter/UpdateAdapter.java +++ b/astrid/src/com/todoroo/astrid/adapter/UpdateAdapter.java @@ -229,9 +229,9 @@ public class UpdateAdapter extends CursorAdapter { @SuppressWarnings("nls") public static Spanned getUpdateComment (final AstridActivity activity, Update update, JSONObject user, String linkColor, String fromView) { - if (user == null) { + if (user == null) user = ActFmPreferenceService.userFromModel(update); - } + JSONObject otherUser = null; try { otherUser = new JSONObject(update.getValue(Update.OTHER_USER));