From 803d3e370ec2290114b2424160dee800e207cefd Mon Sep 17 00:00:00 2001 From: RyanBateman Date: Mon, 17 Sep 2012 16:55:50 -0400 Subject: [PATCH] Added source shared IDs to comments and modified views to reflect share source. --- .../NewsBlur/res/layout/include_comment.xml | 35 +++++++++++++ .../com/newsblur/database/BlurDatabase.java | 2 + .../newsblur/database/DatabaseConstants.java | 7 ++- .../src/com/newsblur/domain/Comment.java | 5 ++ .../src/com/newsblur/domain/Story.java | 5 ++ .../fragment/ClassifierDialogFragment.java | 10 ++-- .../network/SetupCommentSectionTask.java | 51 +++++++++++++++++-- 7 files changed, 105 insertions(+), 10 deletions(-) diff --git a/media/android/NewsBlur/res/layout/include_comment.xml b/media/android/NewsBlur/res/layout/include_comment.xml index 414c435af..9b001aa29 100644 --- a/media/android/NewsBlur/res/layout/include_comment.xml +++ b/media/android/NewsBlur/res/layout/include_comment.xml @@ -22,6 +22,41 @@ android:layout_marginRight="10dp" android:contentDescription="@string/description_comment_user" android:scaleType="fitCenter" /> + + + + + + + + = 0 "; @@ -143,4 +145,5 @@ public class DatabaseConstants { public static final String STORY_INTELLIGENCE_ALL = " (" + DatabaseConstants.STORY_INTELLIGENCE_AUTHORS + " + " + DatabaseConstants.STORY_INTELLIGENCE_FEED + " + " + DatabaseConstants.STORY_INTELLIGENCE_TAGS + " + " + DatabaseConstants.STORY_INTELLIGENCE_TITLE + ") >= 0 "; + } diff --git a/media/android/NewsBlur/src/com/newsblur/domain/Comment.java b/media/android/NewsBlur/src/com/newsblur/domain/Comment.java index e380af64e..f64fb4e58 100644 --- a/media/android/NewsBlur/src/com/newsblur/domain/Comment.java +++ b/media/android/NewsBlur/src/com/newsblur/domain/Comment.java @@ -22,6 +22,9 @@ public class Comment implements Serializable { @SerializedName("shared_date") public String sharedDate; + + @SerializedName("source_user_id") + public String sourceUserId; @SerializedName("date") public String date; @@ -40,6 +43,7 @@ public class Comment implements Serializable { values.put(DatabaseConstants.COMMENT_LIKING_USERS, TextUtils.join(",", likingUsers)); values.put(DatabaseConstants.COMMENT_TEXT, commentText); values.put(DatabaseConstants.COMMENT_SHAREDDATE, sharedDate); + values.put(DatabaseConstants.COMMENT_SOURCE_USERID, sourceUserId); values.put(DatabaseConstants.COMMENT_USERID, userId); values.put(DatabaseConstants.COMMENT_ID, id); return values; @@ -55,6 +59,7 @@ public class Comment implements Serializable { comment.userId = cursor.getString(cursor.getColumnIndex(DatabaseConstants.COMMENT_USERID)); String likingUsers = cursor.getString(cursor.getColumnIndex(DatabaseConstants.COMMENT_LIKING_USERS)); comment.likingUsers = TextUtils.split(likingUsers, ","); + comment.sourceUserId = cursor.getString(cursor.getColumnIndex(DatabaseConstants.COMMENT_SOURCE_USERID)); comment.id = cursor.getString(cursor.getColumnIndex(DatabaseConstants.COMMENT_ID)); return comment; diff --git a/media/android/NewsBlur/src/com/newsblur/domain/Story.java b/media/android/NewsBlur/src/com/newsblur/domain/Story.java index e5fe4f7e3..0348bc1bf 100644 --- a/media/android/NewsBlur/src/com/newsblur/domain/Story.java +++ b/media/android/NewsBlur/src/com/newsblur/domain/Story.java @@ -43,6 +43,9 @@ public class Story implements Serializable { @SerializedName("social_user_id") public String socialUserId; + @SerializedName("source_user_id") + public String sourceUserId; + @SerializedName("story_title") public String title; @@ -86,6 +89,7 @@ public class Story implements Serializable { values.put(DatabaseConstants.STORY_SHARE_COUNT, shareCount); values.put(DatabaseConstants.STORY_AUTHORS, authors); values.put(DatabaseConstants.STORY_SOCIAL_USER_ID, socialUserId); + values.put(DatabaseConstants.STORY_SOURCE_USER_ID, sourceUserId); values.put(DatabaseConstants.STORY_SHARED_USER_IDS, TextUtils.join(",", sharedUserIds)); values.put(DatabaseConstants.STORY_FRIEND_USER_IDS, TextUtils.join(",", friendUserIds)); values.put(DatabaseConstants.STORY_PUBLIC_USER_IDS, TextUtils.join(",", publicUserIds)); @@ -110,6 +114,7 @@ public class Story implements Serializable { story.shareCount = cursor.getString(cursor.getColumnIndex(DatabaseConstants.STORY_SHARE_COUNT)); story.commentCount = cursor.getInt(cursor.getColumnIndex(DatabaseConstants.STORY_COMMENT_COUNT)); story.socialUserId = cursor.getString(cursor.getColumnIndex(DatabaseConstants.STORY_SOCIAL_USER_ID)); + story.sourceUserId = cursor.getString(cursor.getColumnIndex(DatabaseConstants.STORY_SOURCE_USER_ID)); story.permalink = cursor.getString(cursor.getColumnIndex(DatabaseConstants.STORY_PERMALINK)); story.sharedUserIds = TextUtils.split(cursor.getString(cursor.getColumnIndex(DatabaseConstants.STORY_SHARED_USER_IDS)), ","); story.friendUserIds = TextUtils.split(cursor.getString(cursor.getColumnIndex(DatabaseConstants.STORY_FRIEND_USER_IDS)), ","); diff --git a/media/android/NewsBlur/src/com/newsblur/fragment/ClassifierDialogFragment.java b/media/android/NewsBlur/src/com/newsblur/fragment/ClassifierDialogFragment.java index f0befe2c2..84d91d238 100644 --- a/media/android/NewsBlur/src/com/newsblur/fragment/ClassifierDialogFragment.java +++ b/media/android/NewsBlur/src/com/newsblur/fragment/ClassifierDialogFragment.java @@ -17,7 +17,6 @@ import android.widget.Toast; import com.newsblur.R; import com.newsblur.domain.Classifier; -import com.newsblur.fragment.ClassifierDialogFragment.TagUpdateCallback; import com.newsblur.network.APIManager; public class ClassifierDialogFragment extends DialogFragment { @@ -111,9 +110,10 @@ public class ClassifierDialogFragment extends DialogFragment { Toast.makeText(getActivity(), R.string.error_saving_classifier, Toast.LENGTH_SHORT).show(); } - ClassifierDialogFragment.this.dismiss(); }; }.execute(); + + ClassifierDialogFragment.this.dismiss(); } }); @@ -136,9 +136,10 @@ public class ClassifierDialogFragment extends DialogFragment { } else { tagCallback.updateTagView(key, classifierType, result.intValue()); } - ClassifierDialogFragment.this.dismiss(); } }.execute(); + + ClassifierDialogFragment.this.dismiss(); } }); @@ -169,9 +170,10 @@ public class ClassifierDialogFragment extends DialogFragment { } else { tagCallback.updateTagView(key, classifierType, result.intValue()); } - ClassifierDialogFragment.this.dismiss(); } }.execute(); + + ClassifierDialogFragment.this.dismiss(); } }); diff --git a/media/android/NewsBlur/src/com/newsblur/network/SetupCommentSectionTask.java b/media/android/NewsBlur/src/com/newsblur/network/SetupCommentSectionTask.java index 8f43b9f5b..d34a56951 100644 --- a/media/android/NewsBlur/src/com/newsblur/network/SetupCommentSectionTask.java +++ b/media/android/NewsBlur/src/com/newsblur/network/SetupCommentSectionTask.java @@ -13,6 +13,7 @@ import android.os.AsyncTask; import android.support.v4.app.DialogFragment; import android.support.v4.app.FragmentManager; import android.support.v7.widget.GridLayout; +import android.text.TextUtils; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; @@ -143,8 +144,17 @@ public class SetupCommentSectionTask extends AsyncTask { replyText.setText(reply.text); ImageView replyImage = (ImageView) replyView.findViewById(R.id.reply_user_image); - ProfileResponse replyUser = apiManager.getUser(reply.userId); + final ProfileResponse replyUser = apiManager.getUser(reply.userId); imageLoader.displayImage(replyUser.user.photoUrl, replyImage); + replyImage.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View view) { + Intent i = new Intent(context, Profile.class); + i.putExtra(Profile.USER_ID, replyUser.user.userId); + context.startActivity(i); + } + }); + TextView replyUsername = (TextView) replyView.findViewById(R.id.reply_username); replyUsername.setText(replyUser.user.username); @@ -159,8 +169,31 @@ public class SetupCommentSectionTask extends AsyncTask { TextView commentUsername = (TextView) commentView.findViewById(R.id.comment_username); commentUsername.setText(commentUser.username); String userPhoto = commentUser.photoUrl; - imageLoader.displayImage(userPhoto, commentImage); + + if (!TextUtils.isEmpty(comment.sourceUserId)) { + commentImage.setVisibility(View.INVISIBLE); + ImageView usershareImage = (ImageView) commentView.findViewById(R.id.comment_user_reshare_image); + ImageView sourceUserImage = (ImageView) commentView.findViewById(R.id.comment_sharesource_image); + sourceUserImage.setVisibility(View.VISIBLE); + usershareImage.setVisibility(View.VISIBLE); + commentImage.setVisibility(View.INVISIBLE); + + UserProfile user; + if (publicUserMap.containsKey(comment.sourceUserId)) { + user = publicUserMap.get(comment.sourceUserId); + } else { + user = friendUserMap.get(comment.sourceUserId); + } + + imageLoader.displayImage(user.photoUrl, sourceUserImage); + imageLoader.displayImage(userPhoto, usershareImage); + } else { + imageLoader.displayImage(userPhoto, commentImage); + } + publicCommentViews.add(commentView); + + } else { UserProfile commentUser = friendUserMap.get(comment.userId); if (commentUser != null) { @@ -171,6 +204,16 @@ public class SetupCommentSectionTask extends AsyncTask { friendCommentViews.add(commentView); } } + + commentImage.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View view) { + Intent i = new Intent(context, Profile.class); + i.putExtra(Profile.USER_ID, comment.userId); + context.startActivity(i); + } + }); + } return null; } @@ -228,7 +271,7 @@ public class SetupCommentSectionTask extends AsyncTask { commentCursor.moveToFirst(); for (int i = 0; i < commentCursor.getCount(); i++) { - Comment comment = Comment.fromCursor(commentCursor); + final Comment comment = Comment.fromCursor(commentCursor); ImageView image = new ImageView(context); int imageLength = UIUtils.convertDPsToPixels(context, 25); image.setMaxHeight(imageLength); @@ -249,7 +292,7 @@ public class SetupCommentSectionTask extends AsyncTask { @Override public void onClick(View view) { Intent i = new Intent(context, Profile.class); - //i.putExtra(Profile.USER_ID, userId); + i.putExtra(Profile.USER_ID, comment.userId); context.startActivity(i); } });