From 47f736d17abb9db7b5fabe9d7d2a045722d30874 Mon Sep 17 00:00:00 2001 From: Sam Bosley Date: Thu, 18 Oct 2012 17:30:45 -0700 Subject: [PATCH] Started working on new layout for people view --- api/src/com/todoroo/astrid/data/User.java | 11 +++++ .../astrid/actfm/sync/ActFmSyncService.java | 1 + .../astrid/people/PersonViewFragment.java | 31 ++++++++++++ astrid/res/layout/task_list_body_user.xml | 48 +++++++++++++++++++ .../src/com/todoroo/astrid/dao/Database.java | 7 +++ 5 files changed, 98 insertions(+) create mode 100644 astrid/res/layout/task_list_body_user.xml diff --git a/api/src/com/todoroo/astrid/data/User.java b/api/src/com/todoroo/astrid/data/User.java index f5641badf..ea589994b 100644 --- a/api/src/com/todoroo/astrid/data/User.java +++ b/api/src/com/todoroo/astrid/data/User.java @@ -58,6 +58,10 @@ public final class User extends RemoteModel { public static final LongProperty REMOTE_ID = new LongProperty( TABLE, REMOTE_ID_PROPERTY_NAME); + /** Friendship status */ + public static final StringProperty STATUS = new StringProperty( + TABLE, "status"); + /** List of all properties for this model */ public static final Property[] PROPERTIES = generateProperties(User.class); @@ -70,6 +74,7 @@ public final class User extends RemoteModel { defaultValues.put(NAME.name, ""); defaultValues.put(EMAIL.name, ""); defaultValues.put(PICTURE.name, ""); + defaultValues.put(STATUS.name, ""); } @Override @@ -77,6 +82,12 @@ public final class User extends RemoteModel { return defaultValues; } + public static final String STATUS_PENDING = "pending"; + public static final String STATUS_OTHER_PENDING = "other_pending"; + public static final String STATUS_FRIENDS = "friends"; + public static final String STATUS_IGNORED = "ignored"; + public static final String STATUS_BLOCKED = "blocked"; + // --- data access boilerplate public User() { diff --git a/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmSyncService.java b/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmSyncService.java index da5090ec0..415f5de91 100644 --- a/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmSyncService.java +++ b/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmSyncService.java @@ -1426,6 +1426,7 @@ public final class ActFmSyncService { model.setValue(User.NAME, json.optString("name")); model.setValue(User.EMAIL, json.optString("email")); model.setValue(User.PICTURE, json.optString("picture")); + model.setValue(User.STATUS, json.optString("status")); } public static void jsonFromUser(JSONObject json, User model) throws JSONException { diff --git a/astrid/plugin-src/com/todoroo/astrid/people/PersonViewFragment.java b/astrid/plugin-src/com/todoroo/astrid/people/PersonViewFragment.java index 80f303ed1..e849aca7e 100644 --- a/astrid/plugin-src/com/todoroo/astrid/people/PersonViewFragment.java +++ b/astrid/plugin-src/com/todoroo/astrid/people/PersonViewFragment.java @@ -9,6 +9,7 @@ import android.content.Intent; import android.support.v4.view.Menu; import android.text.TextUtils; import android.view.View; +import android.view.ViewGroup; import android.widget.TextView; import com.timsu.astrid.R; @@ -21,6 +22,7 @@ import com.todoroo.astrid.activity.TaskListFragment; import com.todoroo.astrid.api.AstridApiConstants; import com.todoroo.astrid.dao.UserDao; import com.todoroo.astrid.data.User; +import com.todoroo.astrid.helper.AsyncImageView; import com.todoroo.astrid.helper.ProgressBarSyncResultCallback; import com.todoroo.astrid.service.SyncV2Service; import com.todoroo.astrid.service.ThemeService; @@ -41,6 +43,10 @@ public class PersonViewFragment extends TaskListFragment { @Autowired ActFmPreferenceService actFmPreferenceService; + private AsyncImageView userImage; + private TextView userName; + private TextView userSubtitle; + private User user; @Override @@ -50,6 +56,13 @@ public class PersonViewFragment extends TaskListFragment { user = userDao.fetch(extras.getLong(EXTRA_USER_ID_LOCAL), User.PROPERTIES); } ((TextView) getView().findViewById(android.R.id.empty)).setText(getEmptyDisplayString()); + + if (user != null) { + userImage.setUrl(user.getValue(User.PICTURE)); + userName.setText(user.getDisplayName()); + } else { + getView().findViewById(R.id.user_header).setVisibility(View.GONE); + } } @Override @@ -67,6 +80,24 @@ public class PersonViewFragment extends TaskListFragment { } + @Override + protected void setUpUiComponents() { + super.setUpUiComponents(); + userImage = (AsyncImageView) getView().findViewById(R.id.user_image); + userName = (TextView) getView().findViewById(R.id.user_name); + userSubtitle = (TextView) getView().findViewById(R.id.user_subtitle); + } + + @Override + protected View getListBody(ViewGroup root) { + ViewGroup parent = (ViewGroup) getActivity().getLayoutInflater().inflate(R.layout.task_list_body_user, root, false); + + View taskListView = super.getListBody(parent); + parent.addView(taskListView); + + return parent; + } + @Override protected void addSyncRefreshMenuItem(Menu menu, int themeFlags) { if(actFmPreferenceService.isLoggedIn()) { diff --git a/astrid/res/layout/task_list_body_user.xml b/astrid/res/layout/task_list_body_user.xml new file mode 100644 index 000000000..a5cdb7444 --- /dev/null +++ b/astrid/res/layout/task_list_body_user.xml @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + diff --git a/astrid/src/com/todoroo/astrid/dao/Database.java b/astrid/src/com/todoroo/astrid/dao/Database.java index 95f431b11..2d07e802e 100644 --- a/astrid/src/com/todoroo/astrid/dao/Database.java +++ b/astrid/src/com/todoroo/astrid/dao/Database.java @@ -330,6 +330,13 @@ public class Database extends AbstractDatabase { Log.e("astrid", "db-upgrade-" + oldVersion + "-" + newVersion, e); } + case 25: try { + database.execSQL("ALTER TABLE " + User.TABLE.name + " ADD " + + User.STATUS.accept(visitor, null)); + } catch (SQLiteException e) { + Log.e("astrid", "db-upgrade-" + oldVersion + "-" + newVersion, e); + } + return true; }