From 94244a1cea084835847d54e2e49753667be6b3b1 Mon Sep 17 00:00:00 2001 From: Chris Blyth Date: Wed, 25 Sep 2013 07:37:52 +0100 Subject: [PATCH 1/3] Fix for #319 - Use correct ID for original status on ADN posts --- .../SocialNetLib/src/org/appdotnet4j/model/AdnPost.java | 2 ++ .../src/org/tweetalib/android/model/TwitterStatus.java | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/android/libraries/SocialNetLib/src/org/appdotnet4j/model/AdnPost.java b/android/libraries/SocialNetLib/src/org/appdotnet4j/model/AdnPost.java index 64d0c18e..63150e3e 100644 --- a/android/libraries/SocialNetLib/src/org/appdotnet4j/model/AdnPost.java +++ b/android/libraries/SocialNetLib/src/org/appdotnet4j/model/AdnPost.java @@ -35,6 +35,7 @@ public class AdnPost { public boolean mIsRetweetedByMe; public boolean mIsFavorited; public AdnUser mOriginalAuthor; + public long mOriginalId; public AdnMedia mEmbeddedMedia; public URLEntity[] mUrls; @@ -60,6 +61,7 @@ public AdnPost(String jsonAsString) { AdnPost repost = new AdnPost(object.getJSONObject("repost_of") .toString()); mOriginalAuthor = repost.mUser; + mOriginalId = repost.mId; mText = repost.mText; mEmbeddedMedia = repost.mEmbeddedMedia; } diff --git a/android/libraries/SocialNetLib/src/org/tweetalib/android/model/TwitterStatus.java b/android/libraries/SocialNetLib/src/org/tweetalib/android/model/TwitterStatus.java index 0a129406..eaf9d7f5 100644 --- a/android/libraries/SocialNetLib/src/org/tweetalib/android/model/TwitterStatus.java +++ b/android/libraries/SocialNetLib/src/org/tweetalib/android/model/TwitterStatus.java @@ -189,7 +189,7 @@ public TwitterStatus(AdnPost post) { mAuthorName = post.mOriginalAuthor.mName; mAuthorScreenName = post.mOriginalAuthor.mUserName; SetProfileImagesFromUser(new TwitterUser(post.mOriginalAuthor)); - mOriginalRetweetId = post.mOriginalAuthor.mId; + mOriginalRetweetId = post.mOriginalId; } else { SetProfileImagesFromUser(new TwitterUser(post.mUser)); } From 85e38421ed1f5a93fef50af9b289f717403870ef Mon Sep 17 00:00:00 2001 From: Chris Blyth Date: Wed, 25 Sep 2013 07:44:39 +0100 Subject: [PATCH 2/3] Fix for #300 & #301 better handling of delete/report spam --- .../android/core/view/TweetFeedFragment.java | 32 +++++++++++++------ 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/android/libraries/TweetLanesCore/src/com/tweetlanes/android/core/view/TweetFeedFragment.java b/android/libraries/TweetLanesCore/src/com/tweetlanes/android/core/view/TweetFeedFragment.java index 7502c670..aa8c1b28 100644 --- a/android/libraries/TweetLanesCore/src/com/tweetlanes/android/core/view/TweetFeedFragment.java +++ b/android/libraries/TweetLanesCore/src/com/tweetlanes/android/core/view/TweetFeedFragment.java @@ -354,6 +354,12 @@ public void UpdateTweetCache(TwitterStatus status, boolean deleteStatus) { TwitterStatuses selectedStatuses = new TwitterStatuses(cachedStatus); if (statusFeed != null) statusFeed.remove(selectedStatuses); if (_mCachedStatusFeed != null) _mCachedStatusFeed.remove(selectedStatuses); + + setStatusFeed(getStatusFeed(), true); + mTweetFeedListAdapter.notifyDataSetChanged(); + mTweetFeedListView.onRefreshComplete(); + updateViewVisibility(true); + } else { cachedStatus.setFavorite(status.mIsFavorited); cachedStatus.setRetweet(status.mIsRetweetedByMe); @@ -1446,23 +1452,26 @@ public void finished(boolean successful, TwitterStatuses statuses, Integer value mode.finish(); } else if (itemId == R.id.action_delete_status) { - TwitterStatuses selectedStatuses = getSelectedStatuses(); + final TwitterStatuses selected = getSelectedStatuses(); TwitterModifyStatuses.FinishedDeleteCallback callback = - TwitterManager.get().getSetStatusesInstance().new FinishedDeleteCallback(selectedStatuses) { + TwitterManager.get().getSetStatusesInstance().new FinishedDeleteCallback(selected) { @Override public void finished(boolean successful, TwitterStatuses statuses, Integer value) { if (successful) { showToast(getString(R.string.deleted_successfully)); - TwitterStatuses cachedStatuses = getStatusFeed(); - TwitterStatuses selectedStatuses = getSelectedStatuses(); - if (selectedStatuses != null && selectedStatuses.getStatusCount() > 0) { - if (cachedStatuses != null) - cachedStatuses.remove(selectedStatuses); - if (_mCachedStatusFeed != null) - _mCachedStatusFeed.remove(selectedStatuses); + if (getStatusFeed() != null) { + getStatusFeed().remove(selected); + } + if (_mCachedStatusFeed != null){ + _mCachedStatusFeed.remove(selected); } + + setStatusFeed(getStatusFeed(), true); + mTweetFeedListAdapter.notifyDataSetChanged(); + mTweetFeedListView.onRefreshComplete(); + updateViewVisibility(true); } else { if (!mDetached) { showToast(getString(R.string.deleted_un_successfully)); @@ -1471,7 +1480,7 @@ public void finished(boolean successful, TwitterStatuses statuses, Integer value } }; - TwitterManager.get().deleteTweet(selectedStatuses, callback); + TwitterManager.get().deleteTweet(selected, callback); mode.finish(); } else if (itemId == R.id.action_report_for_spam || itemId == R.id.action_block) { AccountDescriptor account = getApp().getCurrentAccount(); @@ -1498,6 +1507,9 @@ public void finished(TwitterFetchResult result, TwitterUsers users) { if (getStatusFeed() != null) { getStatusFeed().remove(selected); } + if (_mCachedStatusFeed != null){ + _mCachedStatusFeed.remove(selected); + } setStatusFeed(getStatusFeed(), true); mTweetFeedListAdapter.notifyDataSetChanged(); From d08c5df0f99326fda7e7734b2d5db87c096f97c6 Mon Sep 17 00:00:00 2001 From: Chris Blyth Date: Fri, 27 Sep 2013 07:35:51 +0100 Subject: [PATCH 3/3] Fix #322 added a "filler" which is present when hiding images on account spinner to padd out the box to the correct size (same as when images are present) --- android/clientbeta/AndroidManifest.xml | 2 +- .../libraries/TweetLanesCore/res/layout/account_row.xml | 7 +++++++ .../src/com/tweetlanes/android/core/view/HomeActivity.java | 4 ++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/android/clientbeta/AndroidManifest.xml b/android/clientbeta/AndroidManifest.xml index 8df79438..71f1dbcf 100644 --- a/android/clientbeta/AndroidManifest.xml +++ b/android/clientbeta/AndroidManifest.xml @@ -2,7 +2,7 @@ + android:versionName="1.2.1_b8"> diff --git a/android/libraries/TweetLanesCore/res/layout/account_row.xml b/android/libraries/TweetLanesCore/res/layout/account_row.xml index 35d9b3f7..ada61bbe 100644 --- a/android/libraries/TweetLanesCore/res/layout/account_row.xml +++ b/android/libraries/TweetLanesCore/res/layout/account_row.xml @@ -38,4 +38,11 @@ android:text="ScreenName" android:textSize="@dimen/account_row_size" android:layout_marginLeft="10dp"/> + + \ No newline at end of file diff --git a/android/libraries/TweetLanesCore/src/com/tweetlanes/android/core/view/HomeActivity.java b/android/libraries/TweetLanesCore/src/com/tweetlanes/android/core/view/HomeActivity.java index 6f7c29b0..42749093 100644 --- a/android/libraries/TweetLanesCore/src/com/tweetlanes/android/core/view/HomeActivity.java +++ b/android/libraries/TweetLanesCore/src/com/tweetlanes/android/core/view/HomeActivity.java @@ -814,6 +814,7 @@ public View getView(int position, View convertView, ViewGroup parent) { holder.AvatarImage = (ImageView) row.findViewById(R.id.accountAvatar); holder.ServiceImage = (ImageView) row.findViewById(R.id.serviceImage); holder.ScreenName = (TextView) row.findViewById(R.id.accountScreenName); + holder.Filler = (TextView) row.findViewById(R.id.filler); row.setTag(holder); } else { @@ -833,9 +834,11 @@ public View getView(int position, View convertView, ViewGroup parent) { if (mShowImages) { setProfileImage(account.AvatarImageUrl, account.ServiceType, holder.AvatarImage, holder.ServiceImage); + holder.Filler.setVisibility(View.GONE); } else { holder.AvatarImage.setVisibility(View.GONE); holder.ServiceImage.setVisibility(View.GONE); + holder.Filler.setVisibility(View.VISIBLE); } return row; @@ -859,6 +862,7 @@ class AccountHolder { public ImageView AvatarImage; public ImageView ServiceImage; public TextView ScreenName; + public TextView Filler; } private void setProfileImage(String profileImageUrl, SocialNetConstant.Type serviceType, ImageView avatar, ImageView service) {