From cc8f9c72f1e9e74e3463022f977e9c5707959f8d Mon Sep 17 00:00:00 2001 From: Oguz Kocer Date: Tue, 6 Oct 2015 18:54:52 +0300 Subject: [PATCH 01/21] Person model & Role enum introduced --- .../org/wordpress/android/models/Person.java | 25 ++++++++++ .../org/wordpress/android/models/Role.java | 47 +++++++++++++++++++ 2 files changed, 72 insertions(+) create mode 100644 WordPress/src/main/java/org/wordpress/android/models/Person.java create mode 100644 WordPress/src/main/java/org/wordpress/android/models/Role.java diff --git a/WordPress/src/main/java/org/wordpress/android/models/Person.java b/WordPress/src/main/java/org/wordpress/android/models/Person.java new file mode 100644 index 000000000000..6356ca397c62 --- /dev/null +++ b/WordPress/src/main/java/org/wordpress/android/models/Person.java @@ -0,0 +1,25 @@ +package org.wordpress.android.models; + +public class Person { + public long personID; + + private String username; + private String firstName; + private String lastName; + private String displayName; + private Role role; + + public Person(long personID, + String username, + String firstName, + String lastName, + String displayName, + Role role) { + this.personID = personID; + this.username = username; + this.firstName = firstName; + this.lastName = lastName; + this.displayName = displayName; + this.role = role; + } +} diff --git a/WordPress/src/main/java/org/wordpress/android/models/Role.java b/WordPress/src/main/java/org/wordpress/android/models/Role.java new file mode 100644 index 000000000000..8ae3cb6dbe92 --- /dev/null +++ b/WordPress/src/main/java/org/wordpress/android/models/Role.java @@ -0,0 +1,47 @@ +package org.wordpress.android.models; + +import android.content.Context; + +import org.wordpress.android.R; + +public enum Role { + SUPER_ADMIN, + ADMIN, + EDITOR, + AUTHOR, + CONTRIBUTOR, + UNSUPPORTED; + + public static String toString(Context context, Role role) { + switch (role) { + case SUPER_ADMIN: + return context.getString(R.string.role_super_admin); + case ADMIN: + return context.getString(R.string.role_admin); + case EDITOR: + return context.getString(R.string.role_editor); + case AUTHOR: + return context.getString(R.string.role_author); + case CONTRIBUTOR: + return context.getString(R.string.role_contributor); + case UNSUPPORTED: + return context.getString(R.string.role_unsupported); + default: + return ""; + } + } + + public static Role fromString(String value) { + if (value == null) + return Role.UNSUPPORTED; + if (value.equals("administrator")) + return Role.ADMIN; + if (value.equals("editor")) + return Role.EDITOR; + if (value.equals("author")) + return Role.AUTHOR; + if (value.equals("contributor")) + return Role.CONTRIBUTOR; + return Role.UNSUPPORTED; + } +} From 3ac4905e26d4f847d356a6f99b54147bc43c7c5f Mon Sep 17 00:00:00 2001 From: Oguz Kocer Date: Tue, 6 Oct 2015 18:55:32 +0300 Subject: [PATCH 02/21] New people management strings added --- WordPress/src/main/res/values/strings.xml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/WordPress/src/main/res/values/strings.xml b/WordPress/src/main/res/values/strings.xml index ddc4515be15c..f25c6ddeb4a4 100644 --- a/WordPress/src/main/res/values/strings.xml +++ b/WordPress/src/main/res/values/strings.xml @@ -1026,4 +1026,13 @@ My Site Me + + People + Super Admin + Admin + Editor + Author + Contributor + Unsupported + From b0c1b8cb09df458228dfac73d144d85c1a17bb66 Mon Sep 17 00:00:00 2001 From: Oguz Kocer Date: Wed, 7 Oct 2015 18:16:34 +0300 Subject: [PATCH 03/21] ImageUrl property and setter/getters for Person model --- .../org/wordpress/android/models/Person.java | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/WordPress/src/main/java/org/wordpress/android/models/Person.java b/WordPress/src/main/java/org/wordpress/android/models/Person.java index 6356ca397c62..9610c15e7a95 100644 --- a/WordPress/src/main/java/org/wordpress/android/models/Person.java +++ b/WordPress/src/main/java/org/wordpress/android/models/Person.java @@ -7,6 +7,7 @@ public class Person { private String firstName; private String lastName; private String displayName; + private String imageUrl; private Role role; public Person(long personID, @@ -14,12 +15,62 @@ public Person(long personID, String firstName, String lastName, String displayName, + String imageUrl, Role role) { this.personID = personID; this.username = username; this.firstName = firstName; this.lastName = lastName; this.displayName = displayName; + this.imageUrl = imageUrl; this.role = role; } + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getFirstName() { + return firstName; + } + + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + public String getLastName() { + return lastName; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } + + public String getDisplayName() { + return displayName; + } + + public void setDisplayName(String displayName) { + this.displayName = displayName; + } + + public Role getRole() { + return role; + } + + public void setRole(Role role) { + this.role = role; + } + + public String getImageUrl() { + return imageUrl; + } + + public void setImageUrl(String imageUrl) { + this.imageUrl = imageUrl; + } } From b1d60268c6608cb286644f33684272a18fb5a626 Mon Sep 17 00:00:00 2001 From: Oguz Kocer Date: Wed, 7 Oct 2015 19:07:38 +0300 Subject: [PATCH 04/21] People management activity introduced with dummy data --- WordPress/src/main/AndroidManifest.xml | 4 + .../android/ui/people/PeopleAdapter.java | 90 +++++++++++++++++++ .../ui/people/PeopleManagementActivity.java | 45 ++++++++++ .../src/main/res/layout/people_list_row.xml | 35 ++++++++ .../src/main/res/layout/people_management.xml | 14 +++ WordPress/src/main/res/values/dimens.xml | 3 + 6 files changed, 191 insertions(+) create mode 100644 WordPress/src/main/java/org/wordpress/android/ui/people/PeopleAdapter.java create mode 100644 WordPress/src/main/java/org/wordpress/android/ui/people/PeopleManagementActivity.java create mode 100644 WordPress/src/main/res/layout/people_list_row.xml create mode 100644 WordPress/src/main/res/layout/people_management.xml diff --git a/WordPress/src/main/AndroidManifest.xml b/WordPress/src/main/AndroidManifest.xml index 7e8b9eb5a211..3b9517934f24 100644 --- a/WordPress/src/main/AndroidManifest.xml +++ b/WordPress/src/main/AndroidManifest.xml @@ -290,6 +290,10 @@ android:theme="@style/CalypsoTheme" android:windowSoftInputMode="stateHidden"/> + + mPersonList; + private int mAvatarSz; + + public PeopleAdapter(Context context) { + mAvatarSz = context.getResources().getDimensionPixelSize(R.dimen.avatar_sz_medium); + mInflater = LayoutInflater.from(context); + mPersonList = new ArrayList<>(); + mPersonList.add(new Person(1, "beaulebens", "Beau", "Lebens", "Beau", "http://lorempixum.com/76/76", Role.ADMIN)); + mPersonList.add(new Person(2, "ebinnion", "Eric", "Binnion", "Eric", "http://lorempixum.com/76/76", Role.AUTHOR)); + mPersonList.add(new Person(3, "javialvarez", "Javi", "Alvarez", "Javi", "http://lorempixum.com/76/76", Role.CONTRIBUTOR)); + mPersonList.add(new Person(4, "oguzkocer", "Oguz", "Kocer", "Oguz", "http://lorempixum.com/76/76", Role.EDITOR)); + } + + @Override + public int getCount() { + return mPersonList.size(); + } + + @Override + public Person getItem(int position) { + if (mPersonList == null) { + return null; + } + return mPersonList.get(position); + } + + @Override + public long getItemId(int position) { + return getItem(position).personID; + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + final PeopleViewHolder holder; + + if (convertView == null || convertView.getTag() == null) { + convertView = mInflater.inflate(R.layout.people_list_row, parent, false); + holder = new PeopleViewHolder(convertView); + convertView.setTag(holder); + } else { + holder = (PeopleViewHolder) convertView.getTag(); + } + + Person person = getItem(position); + + if (person != null) { + String avatarUrl = GravatarUtils.fixGravatarUrl(person.getImageUrl(), mAvatarSz); + holder.imgAvatar.setImageUrl(avatarUrl, WPNetworkImageView.ImageType.AVATAR); + holder.txtDisplayName.setText(person.getDisplayName()); + } + + // hide the divider for the last item + boolean isLastItem = (position == getCount() - 1); + holder.divider.setVisibility(isLastItem ? View.INVISIBLE : View.VISIBLE); + + return convertView; + } + + private class PeopleViewHolder { + private final WPNetworkImageView imgAvatar; + private final TextView txtDisplayName; + private final View divider; + + PeopleViewHolder(View row) { + imgAvatar = (WPNetworkImageView) row.findViewById(R.id.people_list_row_avatar); + txtDisplayName = (TextView) row.findViewById(R.id.people_list_row_display_name); + divider = row.findViewById(R.id.divider); + } + } +} \ No newline at end of file diff --git a/WordPress/src/main/java/org/wordpress/android/ui/people/PeopleManagementActivity.java b/WordPress/src/main/java/org/wordpress/android/ui/people/PeopleManagementActivity.java new file mode 100644 index 000000000000..c4fe81f43e43 --- /dev/null +++ b/WordPress/src/main/java/org/wordpress/android/ui/people/PeopleManagementActivity.java @@ -0,0 +1,45 @@ +package org.wordpress.android.ui.people; + +import android.os.Bundle; +import android.support.v7.app.ActionBar; +import android.support.v7.app.AppCompatActivity; +import android.view.MenuItem; +import android.widget.ListView; + +import org.wordpress.android.R; +import org.wordpress.android.ui.ActivityLauncher; + +public class PeopleManagementActivity extends AppCompatActivity { + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + ActionBar actionBar = getSupportActionBar(); + if (actionBar != null) { + actionBar.setHomeButtonEnabled(true); + actionBar.setDisplayHomeAsUpEnabled(true); + } + setContentView(R.layout.people_management); + + setTitle(R.string.people); + + ListView listView = (ListView)findViewById(android.R.id.list); + listView.setAdapter(new PeopleAdapter(this)); + } + + @Override + public void finish() { + super.finish(); + ActivityLauncher.slideOutToRight(this); + } + + @Override + public boolean onOptionsItemSelected(final MenuItem item) { + if (item.getItemId() == android.R.id.home) { + onBackPressed(); + return true; + } + return super.onOptionsItemSelected(item); + } +} diff --git a/WordPress/src/main/res/layout/people_list_row.xml b/WordPress/src/main/res/layout/people_list_row.xml new file mode 100644 index 000000000000..4b77ba657e8f --- /dev/null +++ b/WordPress/src/main/res/layout/people_list_row.xml @@ -0,0 +1,35 @@ + + + + + + + + + + \ No newline at end of file diff --git a/WordPress/src/main/res/layout/people_management.xml b/WordPress/src/main/res/layout/people_management.xml new file mode 100644 index 000000000000..6dd20482ea86 --- /dev/null +++ b/WordPress/src/main/res/layout/people_management.xml @@ -0,0 +1,14 @@ + + + + + + \ No newline at end of file diff --git a/WordPress/src/main/res/values/dimens.xml b/WordPress/src/main/res/values/dimens.xml index 928d2059acb0..8b5c19d12ea6 100644 --- a/WordPress/src/main/res/values/dimens.xml +++ b/WordPress/src/main/res/values/dimens.xml @@ -190,4 +190,7 @@ 32dp + + 84dp + From 5f9906001c615a3d4b98153cccaba50b17b8b904 Mon Sep 17 00:00:00 2001 From: Oguz Kocer Date: Wed, 7 Oct 2015 19:07:59 +0300 Subject: [PATCH 05/21] People link added to the blog details page --- .../android/ui/ActivityLauncher.java | 7 +++++++ .../android/ui/main/MySiteFragment.java | 7 +++++++ .../src/main/res/layout/my_site_fragment.xml | 19 +++++++++++++++++++ 3 files changed, 33 insertions(+) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/ActivityLauncher.java b/WordPress/src/main/java/org/wordpress/android/ui/ActivityLauncher.java index 3e989f82e3ea..3e24db313912 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/ActivityLauncher.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/ActivityLauncher.java @@ -22,6 +22,7 @@ import org.wordpress.android.ui.main.SitePickerActivity; import org.wordpress.android.ui.media.MediaBrowserActivity; import org.wordpress.android.ui.media.WordPressMediaUtils; +import org.wordpress.android.ui.people.PeopleManagementActivity; import org.wordpress.android.ui.posts.EditPostActivity; import org.wordpress.android.ui.posts.PostPreviewActivity; import org.wordpress.android.ui.posts.PostsListActivity; @@ -101,6 +102,12 @@ public static void viewCurrentBlogThemes(Context context) { } } + public static void viewCurrentBlogPeople(Context context) { + Intent intent = new Intent(context, PeopleManagementActivity.class); + slideInFromRight(context, intent); + // TODO: add -> AnalyticsTracker.track(AnalyticsTracker.Stat.OPENED_PEOPLE_MANAGEMENT); + } + public static void viewBlogSettingsForResult(Activity activity, Blog blog) { if (blog == null) return; diff --git a/WordPress/src/main/java/org/wordpress/android/ui/main/MySiteFragment.java b/WordPress/src/main/java/org/wordpress/android/ui/main/MySiteFragment.java index 67031d17cebf..398aa552f1b6 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/main/MySiteFragment.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/main/MySiteFragment.java @@ -186,6 +186,13 @@ public void onClick(View v) { } }); + rootView.findViewById(R.id.row_people).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + ActivityLauncher.viewCurrentBlogPeople(getActivity()); + } + }); + rootView.findViewById(R.id.row_settings).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/WordPress/src/main/res/layout/my_site_fragment.xml b/WordPress/src/main/res/layout/my_site_fragment.xml index dc315302f9ff..35a552b63644 100644 --- a/WordPress/src/main/res/layout/my_site_fragment.xml +++ b/WordPress/src/main/res/layout/my_site_fragment.xml @@ -266,6 +266,25 @@ + + + + + + + + + Date: Tue, 13 Oct 2015 19:52:32 +0300 Subject: [PATCH 06/21] Username & role UI elements added for people --- .../org/wordpress/android/models/Person.java | 2 +- .../org/wordpress/android/models/Role.java | 20 ++++++++++++ .../android/ui/people/PeopleAdapter.java | 9 ++++++ .../src/main/res/layout/people_list_row.xml | 31 +++++++++++++++++-- 4 files changed, 59 insertions(+), 3 deletions(-) diff --git a/WordPress/src/main/java/org/wordpress/android/models/Person.java b/WordPress/src/main/java/org/wordpress/android/models/Person.java index 9610c15e7a95..54f849155178 100644 --- a/WordPress/src/main/java/org/wordpress/android/models/Person.java +++ b/WordPress/src/main/java/org/wordpress/android/models/Person.java @@ -27,7 +27,7 @@ public Person(long personID, } public String getUsername() { - return username; + return "@" + username; } public void setUsername(String username) { diff --git a/WordPress/src/main/java/org/wordpress/android/models/Role.java b/WordPress/src/main/java/org/wordpress/android/models/Role.java index 8ae3cb6dbe92..a97c7896b74a 100644 --- a/WordPress/src/main/java/org/wordpress/android/models/Role.java +++ b/WordPress/src/main/java/org/wordpress/android/models/Role.java @@ -1,6 +1,7 @@ package org.wordpress.android.models; import android.content.Context; +import android.support.v4.content.ContextCompat; import org.wordpress.android.R; @@ -44,4 +45,23 @@ public static Role fromString(String value) { return Role.CONTRIBUTOR; return Role.UNSUPPORTED; } + + public static int backgroundColor(Context context, Role role) { + switch (role) { + case SUPER_ADMIN: + return ContextCompat.getColor(context, R.color.orange_fire); + case ADMIN: + return ContextCompat.getColor(context, R.color.grey_dark); + case EDITOR: + return ContextCompat.getColor(context, R.color.blue_dark); + case AUTHOR: + return ContextCompat.getColor(context, R.color.blue_wordpress); + case CONTRIBUTOR: + return ContextCompat.getColor(context, R.color.blue_wordpress); + case UNSUPPORTED: + return ContextCompat.getColor(context, R.color.blue_wordpress); + default: + return ContextCompat.getColor(context, R.color.blue_wordpress); + } + } } diff --git a/WordPress/src/main/java/org/wordpress/android/ui/people/PeopleAdapter.java b/WordPress/src/main/java/org/wordpress/android/ui/people/PeopleAdapter.java index 74a9e004be92..7de45f42a5c3 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/people/PeopleAdapter.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/people/PeopleAdapter.java @@ -17,11 +17,13 @@ import java.util.List; public class PeopleAdapter extends BaseAdapter { + private final Context mContext; private final LayoutInflater mInflater; private List mPersonList; private int mAvatarSz; public PeopleAdapter(Context context) { + mContext = context; mAvatarSz = context.getResources().getDimensionPixelSize(R.dimen.avatar_sz_medium); mInflater = LayoutInflater.from(context); mPersonList = new ArrayList<>(); @@ -67,6 +69,9 @@ public View getView(int position, View convertView, ViewGroup parent) { String avatarUrl = GravatarUtils.fixGravatarUrl(person.getImageUrl(), mAvatarSz); holder.imgAvatar.setImageUrl(avatarUrl, WPNetworkImageView.ImageType.AVATAR); holder.txtDisplayName.setText(person.getDisplayName()); + holder.txtUsername.setText(person.getUsername()); + holder.txtRole.setText(Role.toString(mContext, person.getRole())); + holder.txtRole.setBackgroundColor(Role.backgroundColor(mContext, person.getRole())); } // hide the divider for the last item @@ -79,11 +84,15 @@ public View getView(int position, View convertView, ViewGroup parent) { private class PeopleViewHolder { private final WPNetworkImageView imgAvatar; private final TextView txtDisplayName; + private final TextView txtUsername; + private final TextView txtRole; private final View divider; PeopleViewHolder(View row) { imgAvatar = (WPNetworkImageView) row.findViewById(R.id.people_list_row_avatar); txtDisplayName = (TextView) row.findViewById(R.id.people_list_row_display_name); + txtUsername = (TextView) row.findViewById(R.id.people_list_row_username); + txtRole = (TextView) row.findViewById(R.id.people_list_row_role); divider = row.findViewById(R.id.divider); } } diff --git a/WordPress/src/main/res/layout/people_list_row.xml b/WordPress/src/main/res/layout/people_list_row.xml index 4b77ba657e8f..5212c85d0ed8 100644 --- a/WordPress/src/main/res/layout/people_list_row.xml +++ b/WordPress/src/main/res/layout/people_list_row.xml @@ -1,8 +1,8 @@ + + + + Date: Tue, 13 Oct 2015 11:22:02 -0600 Subject: [PATCH 07/21] PersonActivity introduced --- WordPress/src/main/AndroidManifest.xml | 5 +++ .../android/ui/people/PersonActivity.java | 39 +++++++++++++++++++ .../src/main/res/layout/activity_person.xml | 7 ++++ 3 files changed, 51 insertions(+) create mode 100644 WordPress/src/main/java/org/wordpress/android/ui/people/PersonActivity.java create mode 100644 WordPress/src/main/res/layout/activity_person.xml diff --git a/WordPress/src/main/AndroidManifest.xml b/WordPress/src/main/AndroidManifest.xml index 4d5c694a0fcf..7caf7bfaa6ee 100644 --- a/WordPress/src/main/AndroidManifest.xml +++ b/WordPress/src/main/AndroidManifest.xml @@ -298,10 +298,15 @@ android:theme="@style/CalypsoTheme" android:windowSoftInputMode="stateHidden"/> + + + + + + From adbb46d0047805f49827bdc182046fa4c018069d Mon Sep 17 00:00:00 2001 From: Oguz Kocer Date: Tue, 13 Oct 2015 11:24:14 -0600 Subject: [PATCH 08/21] People management and person activity naming changes --- .../wordpress/android/ui/people/PeopleManagementActivity.java | 2 +- .../java/org/wordpress/android/ui/people/PersonActivity.java | 2 +- .../{people_management.xml => people_management_activity.xml} | 0 .../res/layout/{activity_person.xml => person_activity.xml} | 0 4 files changed, 2 insertions(+), 2 deletions(-) rename WordPress/src/main/res/layout/{people_management.xml => people_management_activity.xml} (100%) rename WordPress/src/main/res/layout/{activity_person.xml => person_activity.xml} (100%) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/people/PeopleManagementActivity.java b/WordPress/src/main/java/org/wordpress/android/ui/people/PeopleManagementActivity.java index c4fe81f43e43..07f4a249e86e 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/people/PeopleManagementActivity.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/people/PeopleManagementActivity.java @@ -20,7 +20,7 @@ public void onCreate(Bundle savedInstanceState) { actionBar.setHomeButtonEnabled(true); actionBar.setDisplayHomeAsUpEnabled(true); } - setContentView(R.layout.people_management); + setContentView(R.layout.people_management_activity); setTitle(R.string.people); diff --git a/WordPress/src/main/java/org/wordpress/android/ui/people/PersonActivity.java b/WordPress/src/main/java/org/wordpress/android/ui/people/PersonActivity.java index 2a9b31500235..14e82a80475c 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/people/PersonActivity.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/people/PersonActivity.java @@ -19,7 +19,7 @@ protected void onCreate(Bundle savedInstanceState) { actionBar.setHomeButtonEnabled(true); actionBar.setDisplayHomeAsUpEnabled(true); } - setContentView(R.layout.activity_person); + setContentView(R.layout.person_activity); } @Override diff --git a/WordPress/src/main/res/layout/people_management.xml b/WordPress/src/main/res/layout/people_management_activity.xml similarity index 100% rename from WordPress/src/main/res/layout/people_management.xml rename to WordPress/src/main/res/layout/people_management_activity.xml diff --git a/WordPress/src/main/res/layout/activity_person.xml b/WordPress/src/main/res/layout/person_activity.xml similarity index 100% rename from WordPress/src/main/res/layout/activity_person.xml rename to WordPress/src/main/res/layout/person_activity.xml From 6603a2893aacc3f19a9a9233c1611a99c0f09cb8 Mon Sep 17 00:00:00 2001 From: Oguz Kocer Date: Tue, 13 Oct 2015 11:55:36 -0600 Subject: [PATCH 09/21] Selecting a person from the list opens PersonActivity --- .../java/org/wordpress/android/models/Person.java | 9 +++++++++ .../org/wordpress/android/ui/ActivityLauncher.java | 8 ++++++++ .../android/ui/people/PeopleManagementActivity.java | 13 +++++++++++++ .../wordpress/android/ui/people/PersonActivity.java | 3 +++ WordPress/src/main/res/values/strings.xml | 1 + 5 files changed, 34 insertions(+) diff --git a/WordPress/src/main/java/org/wordpress/android/models/Person.java b/WordPress/src/main/java/org/wordpress/android/models/Person.java index 54f849155178..3b5ee58f74a1 100644 --- a/WordPress/src/main/java/org/wordpress/android/models/Person.java +++ b/WordPress/src/main/java/org/wordpress/android/models/Person.java @@ -1,6 +1,7 @@ package org.wordpress.android.models; public class Person { + private long localTablePersonId; public long personID; private String username; @@ -73,4 +74,12 @@ public String getImageUrl() { public void setImageUrl(String imageUrl) { this.imageUrl = imageUrl; } + + public long getLocalTablePersonId() { + return localTablePersonId; + } + + public void setLocalTablePersonId(long localTablePersonId) { + this.localTablePersonId = localTablePersonId; + } } diff --git a/WordPress/src/main/java/org/wordpress/android/ui/ActivityLauncher.java b/WordPress/src/main/java/org/wordpress/android/ui/ActivityLauncher.java index 3e24db313912..d511dd38abc7 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/ActivityLauncher.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/ActivityLauncher.java @@ -11,6 +11,7 @@ import org.wordpress.android.WordPress; import org.wordpress.android.analytics.AnalyticsTracker; import org.wordpress.android.models.Blog; +import org.wordpress.android.models.Person; import org.wordpress.android.models.Post; import org.wordpress.android.networking.SSLCertsViewActivity; import org.wordpress.android.networking.SelfSignedSSLCertsManager; @@ -23,6 +24,7 @@ import org.wordpress.android.ui.media.MediaBrowserActivity; import org.wordpress.android.ui.media.WordPressMediaUtils; import org.wordpress.android.ui.people.PeopleManagementActivity; +import org.wordpress.android.ui.people.PersonActivity; import org.wordpress.android.ui.posts.EditPostActivity; import org.wordpress.android.ui.posts.PostPreviewActivity; import org.wordpress.android.ui.posts.PostsListActivity; @@ -256,6 +258,12 @@ public static void addSelfHostedSiteForResult(Activity activity) { activity.startActivityForResult(intent, RequestCodes.ADD_ACCOUNT); } + public static void viewPersonDetails(Context context, Person person) { + Intent intent = new Intent(context, PersonActivity.class); + intent.putExtra(PersonActivity.EXTRA_PERSON_LOCAL_ID, person.getLocalTablePersonId()); + slideInFromRight(context, intent); + } + public static void slideInFromRight(Context context, Intent intent) { if (context instanceof Activity) { intent.putExtra(ARG_DID_SLIDE_IN_FROM_RIGHT, true); diff --git a/WordPress/src/main/java/org/wordpress/android/ui/people/PeopleManagementActivity.java b/WordPress/src/main/java/org/wordpress/android/ui/people/PeopleManagementActivity.java index 07f4a249e86e..5c03c29a8ad8 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/people/PeopleManagementActivity.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/people/PeopleManagementActivity.java @@ -1,12 +1,16 @@ package org.wordpress.android.ui.people; +import android.app.Activity; import android.os.Bundle; import android.support.v7.app.ActionBar; import android.support.v7.app.AppCompatActivity; import android.view.MenuItem; +import android.view.View; +import android.widget.AdapterView; import android.widget.ListView; import org.wordpress.android.R; +import org.wordpress.android.models.Person; import org.wordpress.android.ui.ActivityLauncher; public class PeopleManagementActivity extends AppCompatActivity { @@ -26,6 +30,15 @@ public void onCreate(Bundle savedInstanceState) { ListView listView = (ListView)findViewById(android.R.id.list); listView.setAdapter(new PeopleAdapter(this)); + + final Activity context = this; + listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + Person person = (Person) parent.getItemAtPosition(position); + ActivityLauncher.viewPersonDetails(context, person); + } + }); } @Override diff --git a/WordPress/src/main/java/org/wordpress/android/ui/people/PersonActivity.java b/WordPress/src/main/java/org/wordpress/android/ui/people/PersonActivity.java index 14e82a80475c..9f0a44c51dc1 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/people/PersonActivity.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/people/PersonActivity.java @@ -9,6 +9,7 @@ import org.wordpress.android.ui.ActivityLauncher; public class PersonActivity extends AppCompatActivity { + public static final String EXTRA_PERSON_LOCAL_ID = "EXTRA_PERSON_LOCAL_ID"; @Override protected void onCreate(Bundle savedInstanceState) { @@ -20,6 +21,8 @@ protected void onCreate(Bundle savedInstanceState) { actionBar.setDisplayHomeAsUpEnabled(true); } setContentView(R.layout.person_activity); + + setTitle(R.string.edit_user); } @Override diff --git a/WordPress/src/main/res/values/strings.xml b/WordPress/src/main/res/values/strings.xml index fb51e846827b..7d252f0c0b53 100644 --- a/WordPress/src/main/res/values/strings.xml +++ b/WordPress/src/main/res/values/strings.xml @@ -1042,6 +1042,7 @@ People + Edit User Super Admin Admin Editor From d9d3e8dc3b99d98d8df074395de8e0261126b915 Mon Sep 17 00:00:00 2001 From: Oguz Kocer Date: Tue, 13 Oct 2015 15:41:28 -0600 Subject: [PATCH 10/21] Person details added to the UI A mock method is also introduced to get a person from the DB for the local table id. For now, it'll return mock person object to test the UI. --- .../org/wordpress/android/WordPressDB.java | 9 ++++ .../android/ui/people/PersonActivity.java | 28 ++++++++++++ .../src/main/res/layout/person_activity.xml | 44 ++++++++++++++++++- 3 files changed, 79 insertions(+), 2 deletions(-) diff --git a/WordPress/src/main/java/org/wordpress/android/WordPressDB.java b/WordPress/src/main/java/org/wordpress/android/WordPressDB.java index 107fd54df2d2..2d1cbf3795f8 100644 --- a/WordPress/src/main/java/org/wordpress/android/WordPressDB.java +++ b/WordPress/src/main/java/org/wordpress/android/WordPressDB.java @@ -19,10 +19,12 @@ import org.wordpress.android.datasets.SuggestionTable; import org.wordpress.android.models.Account; import org.wordpress.android.models.Blog; +import org.wordpress.android.models.Person; import org.wordpress.android.models.Post; import org.wordpress.android.models.PostLocation; import org.wordpress.android.models.PostsListPost; import org.wordpress.android.models.PostsListPostList; +import org.wordpress.android.models.Role; import org.wordpress.android.models.Theme; import org.wordpress.android.ui.posts.EditPostActivity; import org.wordpress.android.ui.prefs.AppPrefs; @@ -1909,4 +1911,11 @@ protected void copyDatabase() { public boolean hasAnyJetpackBlogs() { return SqlUtils.boolForQuery(db, "SELECT 1 FROM " + BLOGS_TABLE + " WHERE api_blogid != 0 LIMIT 1", null); } + + /* + * This is a stub method. Once implemented it'll retrive a person object for the provided local id + */ + public Person getPersonForLocalTablePostId(long localTablePersonId) { + return new Person(4, "oguzkocer", "Oguz", "Kocer", "Oguz", "http://lorempixum.com/76/76", Role.EDITOR); + } } diff --git a/WordPress/src/main/java/org/wordpress/android/ui/people/PersonActivity.java b/WordPress/src/main/java/org/wordpress/android/ui/people/PersonActivity.java index 9f0a44c51dc1..9e7e0130618a 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/people/PersonActivity.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/people/PersonActivity.java @@ -4,17 +4,26 @@ import android.support.v7.app.ActionBar; import android.support.v7.app.AppCompatActivity; import android.view.MenuItem; +import android.widget.TextView; import org.wordpress.android.R; +import org.wordpress.android.WordPress; +import org.wordpress.android.models.Person; import org.wordpress.android.ui.ActivityLauncher; +import org.wordpress.android.util.GravatarUtils; +import org.wordpress.android.widgets.WPNetworkImageView; public class PersonActivity extends AppCompatActivity { public static final String EXTRA_PERSON_LOCAL_ID = "EXTRA_PERSON_LOCAL_ID"; + private int mLocalTablePersonId; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + mLocalTablePersonId = getIntent().getExtras().getInt(EXTRA_PERSON_LOCAL_ID); + ActionBar actionBar = getSupportActionBar(); if (actionBar != null) { actionBar.setHomeButtonEnabled(true); @@ -23,6 +32,8 @@ protected void onCreate(Bundle savedInstanceState) { setContentView(R.layout.person_activity); setTitle(R.string.edit_user); + + refreshUserDetails(); } @Override @@ -39,4 +50,21 @@ public boolean onOptionsItemSelected(final MenuItem item) { } return super.onOptionsItemSelected(item); } + + private void refreshUserDetails() { + WPNetworkImageView imgAvatar = (WPNetworkImageView) findViewById(R.id.person_avatar); + TextView txtDisplayName = (TextView) findViewById(R.id.person_display_name); + TextView txtUsername = (TextView) findViewById(R.id.person_username); + + Person person = WordPress.wpDB.getPersonForLocalTablePostId(mLocalTablePersonId); + + if (person != null) { + int avatarSz = getResources().getDimensionPixelSize(R.dimen.avatar_sz_large); + String avatarUrl = GravatarUtils.fixGravatarUrl(person.getImageUrl(), avatarSz); + + imgAvatar.setImageUrl(avatarUrl, WPNetworkImageView.ImageType.AVATAR); + txtDisplayName.setText(person.getDisplayName()); + txtUsername.setText(person.getUsername()); + } + } } diff --git a/WordPress/src/main/res/layout/person_activity.xml b/WordPress/src/main/res/layout/person_activity.xml index 74dab0784d08..37c8423a533a 100644 --- a/WordPress/src/main/res/layout/person_activity.xml +++ b/WordPress/src/main/res/layout/person_activity.xml @@ -1,7 +1,47 @@ - - + + + + + + + + + + + From 95f3490cb8a332cf0119c5f79d5c63b61efc177b Mon Sep 17 00:00:00 2001 From: Oguz Kocer Date: Tue, 27 Oct 2015 17:53:49 +0200 Subject: [PATCH 11/21] Person role and remove button added --- .../android/ui/people/PersonActivity.java | 13 +++++ .../src/main/res/layout/person_activity.xml | 49 +++++++++++++++++-- WordPress/src/main/res/values/strings.xml | 2 + 3 files changed, 61 insertions(+), 3 deletions(-) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/people/PersonActivity.java b/WordPress/src/main/java/org/wordpress/android/ui/people/PersonActivity.java index 9e7e0130618a..e13f811b6390 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/people/PersonActivity.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/people/PersonActivity.java @@ -4,11 +4,13 @@ import android.support.v7.app.ActionBar; import android.support.v7.app.AppCompatActivity; import android.view.MenuItem; +import android.view.View; import android.widget.TextView; import org.wordpress.android.R; import org.wordpress.android.WordPress; import org.wordpress.android.models.Person; +import org.wordpress.android.models.Role; import org.wordpress.android.ui.ActivityLauncher; import org.wordpress.android.util.GravatarUtils; import org.wordpress.android.widgets.WPNetworkImageView; @@ -55,6 +57,8 @@ private void refreshUserDetails() { WPNetworkImageView imgAvatar = (WPNetworkImageView) findViewById(R.id.person_avatar); TextView txtDisplayName = (TextView) findViewById(R.id.person_display_name); TextView txtUsername = (TextView) findViewById(R.id.person_username); + TextView txtRole = (TextView) findViewById(R.id.person_role); + TextView txtRemove = (TextView) findViewById(R.id.person_remove); Person person = WordPress.wpDB.getPersonForLocalTablePostId(mLocalTablePersonId); @@ -65,6 +69,15 @@ private void refreshUserDetails() { imgAvatar.setImageUrl(avatarUrl, WPNetworkImageView.ImageType.AVATAR); txtDisplayName.setText(person.getDisplayName()); txtUsername.setText(person.getUsername()); + txtRole.setText(Role.toString(this, person.getRole())); + txtRemove.setText(String.format(getString(R.string.remove_user), person.getFirstName().toUpperCase())); + + txtRemove.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + // remove user + } + }); } } } diff --git a/WordPress/src/main/res/layout/person_activity.xml b/WordPress/src/main/res/layout/person_activity.xml index 37c8423a533a..9768ccd25f72 100644 --- a/WordPress/src/main/res/layout/person_activity.xml +++ b/WordPress/src/main/res/layout/person_activity.xml @@ -1,14 +1,14 @@ + android:layout_height="wrap_content"> + + + + + + diff --git a/WordPress/src/main/res/values/strings.xml b/WordPress/src/main/res/values/strings.xml index 7d252f0c0b53..95fb5f4a01c9 100644 --- a/WordPress/src/main/res/values/strings.xml +++ b/WordPress/src/main/res/values/strings.xml @@ -1043,11 +1043,13 @@ People Edit User + Role Super Admin Admin Editor Author Contributor Unsupported + REMOVE %s From 4e7b70fac8897c18545ae262599727492f2f1885 Mon Sep 17 00:00:00 2001 From: Oguz Kocer Date: Tue, 27 Oct 2015 17:59:58 +0200 Subject: [PATCH 12/21] Removes the 'People' button from my sites until the feature is ready --- .../java/org/wordpress/android/ui/main/MySiteFragment.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/main/MySiteFragment.java b/WordPress/src/main/java/org/wordpress/android/ui/main/MySiteFragment.java index 398aa552f1b6..ad8f97a827a0 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/main/MySiteFragment.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/main/MySiteFragment.java @@ -193,6 +193,9 @@ public void onClick(View v) { } }); + // this temporarily removes the people feature from the app until it's ready + rootView.findViewById(R.id.row_people).setVisibility(View.GONE); + rootView.findViewById(R.id.row_settings).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { From aae15e0f6281349a700fe0e5547413f1e96eea9d Mon Sep 17 00:00:00 2001 From: Oguz Kocer Date: Mon, 2 Nov 2015 14:13:19 +0200 Subject: [PATCH 13/21] People page is accessible again We have decided not to merge the current branch with develop, so there is no reason to hide the People link anymore. --- .../java/org/wordpress/android/ui/main/MySiteFragment.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/main/MySiteFragment.java b/WordPress/src/main/java/org/wordpress/android/ui/main/MySiteFragment.java index ad8f97a827a0..398aa552f1b6 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/main/MySiteFragment.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/main/MySiteFragment.java @@ -193,9 +193,6 @@ public void onClick(View v) { } }); - // this temporarily removes the people feature from the app until it's ready - rootView.findViewById(R.id.row_people).setVisibility(View.GONE); - rootView.findViewById(R.id.row_settings).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { From 596ff14e2bfa9dd68d6378740780a548fe43b89d Mon Sep 17 00:00:00 2001 From: Oguz Kocer Date: Fri, 13 Nov 2015 14:11:54 +0200 Subject: [PATCH 14/21] Remove default case for toString method --- WordPress/src/main/java/org/wordpress/android/models/Role.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/WordPress/src/main/java/org/wordpress/android/models/Role.java b/WordPress/src/main/java/org/wordpress/android/models/Role.java index a97c7896b74a..cee1e70592f4 100644 --- a/WordPress/src/main/java/org/wordpress/android/models/Role.java +++ b/WordPress/src/main/java/org/wordpress/android/models/Role.java @@ -27,9 +27,8 @@ public static String toString(Context context, Role role) { return context.getString(R.string.role_contributor); case UNSUPPORTED: return context.getString(R.string.role_unsupported); - default: - return ""; } + return ""; } public static Role fromString(String value) { From c45dc6efe854d81927c91548c377567fa0b62474 Mon Sep 17 00:00:00 2001 From: Oguz Kocer Date: Fri, 13 Nov 2015 14:29:36 +0200 Subject: [PATCH 15/21] Comment added to fromString method for Role to explain how it'll be used --- WordPress/src/main/java/org/wordpress/android/models/Role.java | 1 + 1 file changed, 1 insertion(+) diff --git a/WordPress/src/main/java/org/wordpress/android/models/Role.java b/WordPress/src/main/java/org/wordpress/android/models/Role.java index cee1e70592f4..d0de7e515dfd 100644 --- a/WordPress/src/main/java/org/wordpress/android/models/Role.java +++ b/WordPress/src/main/java/org/wordpress/android/models/Role.java @@ -31,6 +31,7 @@ public static String toString(Context context, Role role) { return ""; } + // This method will be used to determine the role of the user from network request public static Role fromString(String value) { if (value == null) return Role.UNSUPPORTED; From 13c7ef0afe8d446c364253ed4a22210b59247ec6 Mon Sep 17 00:00:00 2001 From: Oguz Kocer Date: Fri, 13 Nov 2015 14:33:20 +0200 Subject: [PATCH 16/21] Potential null point exceptions fixed in PeopleAdapter --- .../org/wordpress/android/ui/people/PeopleAdapter.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/people/PeopleAdapter.java b/WordPress/src/main/java/org/wordpress/android/ui/people/PeopleAdapter.java index 7de45f42a5c3..a5a61ac16364 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/people/PeopleAdapter.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/people/PeopleAdapter.java @@ -35,6 +35,9 @@ public PeopleAdapter(Context context) { @Override public int getCount() { + if (mPersonList == null) { + return 0; + } return mPersonList.size(); } @@ -48,7 +51,11 @@ public Person getItem(int position) { @Override public long getItemId(int position) { - return getItem(position).personID; + Person person = getItem(position); + if (person == null) { + return 0; + } + return person.personID; } @Override From 50cc4d7932436487bd055134bcc7c3638aecc748 Mon Sep 17 00:00:00 2001 From: Oguz Kocer Date: Fri, 13 Nov 2015 17:51:20 +0200 Subject: [PATCH 17/21] Right margin added to display name in people list row --- WordPress/src/main/res/layout/people_list_row.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/WordPress/src/main/res/layout/people_list_row.xml b/WordPress/src/main/res/layout/people_list_row.xml index 5212c85d0ed8..7a9743298195 100644 --- a/WordPress/src/main/res/layout/people_list_row.xml +++ b/WordPress/src/main/res/layout/people_list_row.xml @@ -17,6 +17,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="@dimen/margin_medium" + android:layout_marginRight="@dimen/margin_medium" android:layout_marginTop="@dimen/margin_large" android:layout_toRightOf="@id/people_list_row_avatar" android:ellipsize="end" From 364a34cf418a0933faf29ce74b51e8acf3e94059 Mon Sep 17 00:00:00 2001 From: Oguz Kocer Date: Mon, 16 Nov 2015 14:32:04 +0200 Subject: [PATCH 18/21] Role enum refactored to use constructors --- .../org/wordpress/android/models/Role.java | 53 ++++++------------- 1 file changed, 16 insertions(+), 37 deletions(-) diff --git a/WordPress/src/main/java/org/wordpress/android/models/Role.java b/WordPress/src/main/java/org/wordpress/android/models/Role.java index d0de7e515dfd..5f8528b95b57 100644 --- a/WordPress/src/main/java/org/wordpress/android/models/Role.java +++ b/WordPress/src/main/java/org/wordpress/android/models/Role.java @@ -6,29 +6,23 @@ import org.wordpress.android.R; public enum Role { - SUPER_ADMIN, - ADMIN, - EDITOR, - AUTHOR, - CONTRIBUTOR, - UNSUPPORTED; + SUPER_ADMIN(R.string.role_super_admin, R.color.orange_fire), + ADMIN(R.string.role_admin, R.color.grey_dark), + EDITOR(R.string.role_editor, R.color.blue_dark), + AUTHOR(R.string.role_author, R.color.blue_wordpress), + CONTRIBUTOR(R.string.role_contributor, R.color.blue_wordpress), + UNSUPPORTED(R.string.role_unsupported, R.color.blue_wordpress); + + private final int label; + private final int backgroundColor; + + Role(int label, int backgroundColor) { + this.label = label; + this.backgroundColor = backgroundColor; + } public static String toString(Context context, Role role) { - switch (role) { - case SUPER_ADMIN: - return context.getString(R.string.role_super_admin); - case ADMIN: - return context.getString(R.string.role_admin); - case EDITOR: - return context.getString(R.string.role_editor); - case AUTHOR: - return context.getString(R.string.role_author); - case CONTRIBUTOR: - return context.getString(R.string.role_contributor); - case UNSUPPORTED: - return context.getString(R.string.role_unsupported); - } - return ""; + return context.getString(role.label); } // This method will be used to determine the role of the user from network request @@ -47,21 +41,6 @@ public static Role fromString(String value) { } public static int backgroundColor(Context context, Role role) { - switch (role) { - case SUPER_ADMIN: - return ContextCompat.getColor(context, R.color.orange_fire); - case ADMIN: - return ContextCompat.getColor(context, R.color.grey_dark); - case EDITOR: - return ContextCompat.getColor(context, R.color.blue_dark); - case AUTHOR: - return ContextCompat.getColor(context, R.color.blue_wordpress); - case CONTRIBUTOR: - return ContextCompat.getColor(context, R.color.blue_wordpress); - case UNSUPPORTED: - return ContextCompat.getColor(context, R.color.blue_wordpress); - default: - return ContextCompat.getColor(context, R.color.blue_wordpress); - } + return ContextCompat.getColor(context, role.backgroundColor); } } From ec2040bd468fdecb07c6c8a3e6d47581d08e7b49 Mon Sep 17 00:00:00 2001 From: Oguz Kocer Date: Mon, 16 Nov 2015 15:52:53 +0200 Subject: [PATCH 19/21] Use listview divider instead of a separate view for people management --- .../org/wordpress/android/ui/people/PeopleAdapter.java | 6 ------ WordPress/src/main/res/layout/people_list_row.xml | 9 +-------- .../src/main/res/layout/people_management_activity.xml | 4 +++- 3 files changed, 4 insertions(+), 15 deletions(-) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/people/PeopleAdapter.java b/WordPress/src/main/java/org/wordpress/android/ui/people/PeopleAdapter.java index a5a61ac16364..39bea3bc1390 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/people/PeopleAdapter.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/people/PeopleAdapter.java @@ -81,10 +81,6 @@ public View getView(int position, View convertView, ViewGroup parent) { holder.txtRole.setBackgroundColor(Role.backgroundColor(mContext, person.getRole())); } - // hide the divider for the last item - boolean isLastItem = (position == getCount() - 1); - holder.divider.setVisibility(isLastItem ? View.INVISIBLE : View.VISIBLE); - return convertView; } @@ -93,14 +89,12 @@ private class PeopleViewHolder { private final TextView txtDisplayName; private final TextView txtUsername; private final TextView txtRole; - private final View divider; PeopleViewHolder(View row) { imgAvatar = (WPNetworkImageView) row.findViewById(R.id.people_list_row_avatar); txtDisplayName = (TextView) row.findViewById(R.id.people_list_row_display_name); txtUsername = (TextView) row.findViewById(R.id.people_list_row_username); txtRole = (TextView) row.findViewById(R.id.people_list_row_role); - divider = row.findViewById(R.id.divider); } } } \ No newline at end of file diff --git a/WordPress/src/main/res/layout/people_list_row.xml b/WordPress/src/main/res/layout/people_list_row.xml index 7a9743298195..45417b26d3c6 100644 --- a/WordPress/src/main/res/layout/people_list_row.xml +++ b/WordPress/src/main/res/layout/people_list_row.xml @@ -53,11 +53,4 @@ android:textSize="@dimen/text_sz_medium" tools:text="role" /> - - - \ No newline at end of file + diff --git a/WordPress/src/main/res/layout/people_management_activity.xml b/WordPress/src/main/res/layout/people_management_activity.xml index 6dd20482ea86..08332b249e8c 100644 --- a/WordPress/src/main/res/layout/people_management_activity.xml +++ b/WordPress/src/main/res/layout/people_management_activity.xml @@ -9,6 +9,8 @@ style="@style/WordPress.BorderedBackground" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_margin="@dimen/margin_extra_large"/> + android:layout_margin="@dimen/margin_extra_large" + android:divider="@color/grey_lighten_20" + android:dividerHeight="1dp" /> \ No newline at end of file From d16be54075018a6cfc37d2ea98d7ba1719e7029f Mon Sep 17 00:00:00 2001 From: Oguz Kocer Date: Mon, 23 Nov 2015 15:22:33 +0200 Subject: [PATCH 20/21] Person local id removed, instead personId is used as unique now --- .../src/main/java/org/wordpress/android/WordPressDB.java | 4 ++-- .../main/java/org/wordpress/android/models/Person.java | 9 --------- .../java/org/wordpress/android/ui/ActivityLauncher.java | 2 +- .../org/wordpress/android/ui/people/PersonActivity.java | 8 ++++---- 4 files changed, 7 insertions(+), 16 deletions(-) diff --git a/WordPress/src/main/java/org/wordpress/android/WordPressDB.java b/WordPress/src/main/java/org/wordpress/android/WordPressDB.java index 279f01844f37..a35c8520a9e1 100644 --- a/WordPress/src/main/java/org/wordpress/android/WordPressDB.java +++ b/WordPress/src/main/java/org/wordpress/android/WordPressDB.java @@ -1944,9 +1944,9 @@ public boolean hasAnyJetpackBlogs() { } /* - * This is a stub method. Once implemented it'll retrive a person object for the provided local id + * This is a stub method. Once implemented it'll retrieve a person object for the provided person id */ - public Person getPersonForLocalTablePostId(long localTablePersonId) { + public Person getPersonForPersonId(long personId) { return new Person(4, "oguzkocer", "Oguz", "Kocer", "Oguz", "http://lorempixum.com/76/76", Role.EDITOR); } } diff --git a/WordPress/src/main/java/org/wordpress/android/models/Person.java b/WordPress/src/main/java/org/wordpress/android/models/Person.java index 3b5ee58f74a1..54f849155178 100644 --- a/WordPress/src/main/java/org/wordpress/android/models/Person.java +++ b/WordPress/src/main/java/org/wordpress/android/models/Person.java @@ -1,7 +1,6 @@ package org.wordpress.android.models; public class Person { - private long localTablePersonId; public long personID; private String username; @@ -74,12 +73,4 @@ public String getImageUrl() { public void setImageUrl(String imageUrl) { this.imageUrl = imageUrl; } - - public long getLocalTablePersonId() { - return localTablePersonId; - } - - public void setLocalTablePersonId(long localTablePersonId) { - this.localTablePersonId = localTablePersonId; - } } diff --git a/WordPress/src/main/java/org/wordpress/android/ui/ActivityLauncher.java b/WordPress/src/main/java/org/wordpress/android/ui/ActivityLauncher.java index ea5ca7446c42..9fbf7ea1e361 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/ActivityLauncher.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/ActivityLauncher.java @@ -261,7 +261,7 @@ public static void addSelfHostedSiteForResult(Activity activity) { public static void viewPersonDetails(Context context, Person person) { Intent intent = new Intent(context, PersonActivity.class); - intent.putExtra(PersonActivity.EXTRA_PERSON_LOCAL_ID, person.getLocalTablePersonId()); + intent.putExtra(PersonActivity.EXTRA_PERSON_ID, person.personID); slideInFromRight(context, intent); } diff --git a/WordPress/src/main/java/org/wordpress/android/ui/people/PersonActivity.java b/WordPress/src/main/java/org/wordpress/android/ui/people/PersonActivity.java index e13f811b6390..a37926a04d9e 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/people/PersonActivity.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/people/PersonActivity.java @@ -16,15 +16,15 @@ import org.wordpress.android.widgets.WPNetworkImageView; public class PersonActivity extends AppCompatActivity { - public static final String EXTRA_PERSON_LOCAL_ID = "EXTRA_PERSON_LOCAL_ID"; + public static final String EXTRA_PERSON_ID = "EXTRA_PERSON_ID"; - private int mLocalTablePersonId; + private int mPersonId; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - mLocalTablePersonId = getIntent().getExtras().getInt(EXTRA_PERSON_LOCAL_ID); + mPersonId = getIntent().getExtras().getInt(EXTRA_PERSON_ID); ActionBar actionBar = getSupportActionBar(); if (actionBar != null) { @@ -60,7 +60,7 @@ private void refreshUserDetails() { TextView txtRole = (TextView) findViewById(R.id.person_role); TextView txtRemove = (TextView) findViewById(R.id.person_remove); - Person person = WordPress.wpDB.getPersonForLocalTablePostId(mLocalTablePersonId); + Person person = WordPress.wpDB.getPersonForLocalTablePostId(mPersonId); if (person != null) { int avatarSz = getResources().getDimensionPixelSize(R.dimen.avatar_sz_large); From cbd57d356557b73d8414d368d51b0e3f7d996160 Mon Sep 17 00:00:00 2001 From: Oguz Kocer Date: Mon, 23 Nov 2015 15:26:19 +0200 Subject: [PATCH 21/21] PersonTable introduced --- .../java/org/wordpress/android/WordPressDB.java | 8 -------- .../wordpress/android/datasets/PersonTable.java | 16 ++++++++++++++++ .../android/ui/people/PersonActivity.java | 4 ++-- 3 files changed, 18 insertions(+), 10 deletions(-) create mode 100644 WordPress/src/main/java/org/wordpress/android/datasets/PersonTable.java diff --git a/WordPress/src/main/java/org/wordpress/android/WordPressDB.java b/WordPress/src/main/java/org/wordpress/android/WordPressDB.java index a35c8520a9e1..0f167d4853ad 100644 --- a/WordPress/src/main/java/org/wordpress/android/WordPressDB.java +++ b/WordPress/src/main/java/org/wordpress/android/WordPressDB.java @@ -24,7 +24,6 @@ import org.wordpress.android.models.PostLocation; import org.wordpress.android.models.PostsListPost; import org.wordpress.android.models.PostsListPostList; -import org.wordpress.android.models.Role; import org.wordpress.android.models.Theme; import org.wordpress.android.ui.posts.EditPostActivity; import org.wordpress.android.ui.prefs.AppPrefs; @@ -1942,11 +1941,4 @@ protected void copyDatabase() { public boolean hasAnyJetpackBlogs() { return SqlUtils.boolForQuery(db, "SELECT 1 FROM " + BLOGS_TABLE + " WHERE api_blogid != 0 LIMIT 1", null); } - - /* - * This is a stub method. Once implemented it'll retrieve a person object for the provided person id - */ - public Person getPersonForPersonId(long personId) { - return new Person(4, "oguzkocer", "Oguz", "Kocer", "Oguz", "http://lorempixum.com/76/76", Role.EDITOR); - } } diff --git a/WordPress/src/main/java/org/wordpress/android/datasets/PersonTable.java b/WordPress/src/main/java/org/wordpress/android/datasets/PersonTable.java new file mode 100644 index 000000000000..39efc825b9a1 --- /dev/null +++ b/WordPress/src/main/java/org/wordpress/android/datasets/PersonTable.java @@ -0,0 +1,16 @@ +package org.wordpress.android.datasets; + +import org.wordpress.android.models.Person; +import org.wordpress.android.models.Role; + +public class PersonTable { + /** + * retrieve a single person + * @param personId - unique id in person table + * @return Person if found, null otherwise + */ + public static Person getPerson(int personId) { + // This is a stub method for now so it returns a mock object, once implemented it will query the db + return new Person(4, "oguzkocer", "Oguz", "Kocer", "Oguz", "http://lorempixum.com/76/76", Role.EDITOR); + } +} diff --git a/WordPress/src/main/java/org/wordpress/android/ui/people/PersonActivity.java b/WordPress/src/main/java/org/wordpress/android/ui/people/PersonActivity.java index a37926a04d9e..7dbcc333f1bf 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/people/PersonActivity.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/people/PersonActivity.java @@ -8,7 +8,7 @@ import android.widget.TextView; import org.wordpress.android.R; -import org.wordpress.android.WordPress; +import org.wordpress.android.datasets.PersonTable; import org.wordpress.android.models.Person; import org.wordpress.android.models.Role; import org.wordpress.android.ui.ActivityLauncher; @@ -60,7 +60,7 @@ private void refreshUserDetails() { TextView txtRole = (TextView) findViewById(R.id.person_role); TextView txtRemove = (TextView) findViewById(R.id.person_remove); - Person person = WordPress.wpDB.getPersonForLocalTablePostId(mPersonId); + Person person = PersonTable.getPerson(mPersonId); if (person != null) { int avatarSz = getResources().getDimensionPixelSize(R.dimen.avatar_sz_large);