mirror of
https://github.com/TwidereProject/Twidere-Android
synced 2025-02-17 04:00:48 +01:00
added activity actions
This commit is contained in:
parent
d263048a67
commit
0870731d28
@ -33,6 +33,8 @@ public interface Activity extends TwitterResponse, Comparable<Activity> {
|
||||
int ACTION_FAVORITED_RETWEET = 0x08;
|
||||
int ACTION_RETWEETED_RETWEET = 0x09;
|
||||
int ACTION_QUOTE = 0x0A;
|
||||
int ACTION_RETWEETED_MENTION = 0x0B;
|
||||
int ACTION_FAVORITED_MENTION = 0x0C;
|
||||
|
||||
Action getAction();
|
||||
|
||||
@ -66,7 +68,9 @@ public interface Activity extends TwitterResponse, Comparable<Activity> {
|
||||
enum Action {
|
||||
FAVORITE(ACTION_FAVORITE), FOLLOW(ACTION_FOLLOW), MENTION(ACTION_MENTION), REPLY(ACTION_REPLY),
|
||||
RETWEET(ACTION_RETWEET), LIST_MEMBER_ADDED(ACTION_LIST_MEMBER_ADDED), LIST_CREATED(ACTION_LIST_CREATED),
|
||||
FAVORITED_RETWEET(ACTION_FAVORITED_RETWEET), RETWEETED_RETWEET(ACTION_RETWEETED_RETWEET), QUOTE(ACTION_QUOTE);
|
||||
FAVORITED_RETWEET(ACTION_FAVORITED_RETWEET), RETWEETED_RETWEET(ACTION_RETWEETED_RETWEET),
|
||||
QUOTE(ACTION_QUOTE), RETWEETED_MENTION(ACTION_RETWEETED_MENTION),
|
||||
FAVORITED_MENTION(ACTION_FAVORITED_MENTION);
|
||||
|
||||
private final int actionId;
|
||||
|
||||
@ -74,10 +78,6 @@ public interface Activity extends TwitterResponse, Comparable<Activity> {
|
||||
actionId = action;
|
||||
}
|
||||
|
||||
public int getActionId() {
|
||||
return actionId;
|
||||
}
|
||||
|
||||
public static Action parse(final String string) {
|
||||
if ("favorite".equalsIgnoreCase(string)) return FAVORITE;
|
||||
if ("follow".equalsIgnoreCase(string)) return FOLLOW;
|
||||
@ -89,7 +89,13 @@ public interface Activity extends TwitterResponse, Comparable<Activity> {
|
||||
if ("favorited_retweet".equalsIgnoreCase(string)) return FAVORITED_RETWEET;
|
||||
if ("retweeted_retweet".equalsIgnoreCase(string)) return RETWEETED_RETWEET;
|
||||
if ("quote".equalsIgnoreCase(string)) return QUOTE;
|
||||
if ("retweeted_mention".equalsIgnoreCase(string)) return RETWEETED_MENTION;
|
||||
if ("favorited_mention".equalsIgnoreCase(string)) return FAVORITED_MENTION;
|
||||
throw new IllegalArgumentException("Unknown action " + string);
|
||||
}
|
||||
|
||||
public int getActionId() {
|
||||
return actionId;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -41,6 +41,18 @@ import java.util.Locale;
|
||||
|
||||
public class ActivityImpl extends TwitterResponseImpl implements Activity {
|
||||
|
||||
private static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.ENGLISH);
|
||||
private Action action;
|
||||
|
||||
private Date createdAt;
|
||||
|
||||
private User[] sources;
|
||||
private User[] targetUsers;
|
||||
private User[] targetObjectUsers;
|
||||
private Status[] targetObjectStatuses, targetStatuses;
|
||||
private UserList[] targetUserLists, targetObjectUserLists;
|
||||
private long maxPosition, minPosition;
|
||||
private int targetObjectsSize, targetsSize, sourcesSize;
|
||||
public static final JsonMapper<Activity> MAPPER = new JsonMapper<Activity>() {
|
||||
@SuppressWarnings("TryWithIdenticalCatches")
|
||||
@Override
|
||||
@ -90,51 +102,65 @@ public class ActivityImpl extends TwitterResponseImpl implements Activity {
|
||||
instance.sources = LoganSquare.mapperFor(User.class).parseList(jsonParser).toArray(new User[instance.sourcesSize]);
|
||||
} else if ("targets".equals(fieldName)) {
|
||||
if (instance.action == null) throw new IOException();
|
||||
if (instance.action == Action.FOLLOW || instance.action == Action.MENTION || instance.action == Action.LIST_MEMBER_ADDED) {
|
||||
instance.targetUsers = LoganSquare.mapperFor(User.class).parseList(jsonParser).toArray(new User[instance.targetsSize]);
|
||||
} else if (instance.action == Action.LIST_CREATED) {
|
||||
instance.targetUserLists = LoganSquare.mapperFor(UserList.class).parseList(jsonParser).toArray(new UserList[instance.targetsSize]);
|
||||
} else {
|
||||
instance.targetStatuses = LoganSquare.mapperFor(Status.class).parseList(jsonParser).toArray(new Status[instance.targetsSize]);
|
||||
switch (instance.action) {
|
||||
case FAVORITE:
|
||||
case REPLY:
|
||||
case RETWEET:
|
||||
case QUOTE:
|
||||
case FAVORITED_RETWEET:
|
||||
case RETWEETED_RETWEET:
|
||||
case RETWEETED_MENTION:
|
||||
case FAVORITED_MENTION: {
|
||||
instance.targetStatuses = LoganSquare.mapperFor(Status.class).parseList(jsonParser).toArray(new Status[instance.targetsSize]);
|
||||
break;
|
||||
}
|
||||
case FOLLOW:
|
||||
case MENTION:
|
||||
case LIST_MEMBER_ADDED: {
|
||||
instance.targetUsers = LoganSquare.mapperFor(User.class).parseList(jsonParser).toArray(new User[instance.targetsSize]);
|
||||
break;
|
||||
}
|
||||
case LIST_CREATED: {
|
||||
instance.targetUserLists = LoganSquare.mapperFor(UserList.class).parseList(jsonParser).toArray(new UserList[instance.targetsSize]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else if ("target_objects".equals(fieldName)) {
|
||||
if (instance.action == null) throw new IOException();
|
||||
if (instance.action == Action.LIST_MEMBER_ADDED) {
|
||||
instance.targetObjectUserLists = LoganSquare.mapperFor(UserList.class).parseList(jsonParser).toArray(new UserList[instance.targetObjectsSize]);
|
||||
} else if (instance.action == Action.RETWEETED_RETWEET) {
|
||||
instance.targetObjectUsers = LoganSquare.mapperFor(User.class).parseList(jsonParser).toArray(new User[instance.targetObjectsSize]);
|
||||
} else {
|
||||
instance.targetObjectStatuses = LoganSquare.mapperFor(Status.class).parseList(jsonParser).toArray(new Status[instance.targetObjectsSize]);
|
||||
switch (instance.action) {
|
||||
case FAVORITE:
|
||||
case FOLLOW:
|
||||
case MENTION:
|
||||
case REPLY:
|
||||
case RETWEET:
|
||||
case LIST_CREATED:
|
||||
case QUOTE: {
|
||||
instance.targetObjectStatuses = LoganSquare.mapperFor(Status.class).parseList(jsonParser).toArray(new Status[instance.targetObjectsSize]);
|
||||
break;
|
||||
}
|
||||
case LIST_MEMBER_ADDED: {
|
||||
instance.targetObjectUserLists = LoganSquare.mapperFor(UserList.class).parseList(jsonParser).toArray(new UserList[instance.targetObjectsSize]);
|
||||
break;
|
||||
}
|
||||
case FAVORITED_RETWEET:
|
||||
case RETWEETED_RETWEET:
|
||||
case RETWEETED_MENTION:
|
||||
case FAVORITED_MENTION: {
|
||||
instance.targetObjectUsers = LoganSquare.mapperFor(User.class).parseList(jsonParser).toArray(new User[instance.targetObjectsSize]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
private Action action;
|
||||
|
||||
private Date createdAt;
|
||||
|
||||
private User[] sources;
|
||||
private User[] targetUsers;
|
||||
ActivityImpl() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public User[] getTargetObjectUsers() {
|
||||
return targetObjectUsers;
|
||||
}
|
||||
|
||||
private User[] targetObjectUsers;
|
||||
|
||||
private Status[] targetObjectStatuses, targetStatuses;
|
||||
|
||||
private UserList[] targetUserLists, targetObjectUserLists;
|
||||
|
||||
private long maxPosition, minPosition;
|
||||
|
||||
private int targetObjectsSize, targetsSize, sourcesSize;
|
||||
|
||||
ActivityImpl() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public int compareTo(@NonNull final Activity another) {
|
||||
final Date thisDate = getCreatedAt(), thatDate = another.getCreatedAt();
|
||||
@ -226,6 +252,4 @@ public class ActivityImpl extends TwitterResponseImpl implements Activity {
|
||||
'}';
|
||||
}
|
||||
|
||||
private static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.ENGLISH);
|
||||
|
||||
}
|
@ -309,6 +309,8 @@ public abstract class AbsActivitiesAdapter<Data> extends LoadMoreSupportAdapter<
|
||||
case Activity.ACTION_RETWEET:
|
||||
case Activity.ACTION_FAVORITED_RETWEET:
|
||||
case Activity.ACTION_RETWEETED_RETWEET:
|
||||
case Activity.ACTION_RETWEETED_MENTION:
|
||||
case Activity.ACTION_FAVORITED_MENTION:
|
||||
case Activity.ACTION_LIST_MEMBER_ADDED: {
|
||||
return ITEM_VIEW_TYPE_TITLE_SUMMARY;
|
||||
}
|
||||
|
@ -126,6 +126,26 @@ public class ActivityTitleSummaryViewHolder extends ViewHolder {
|
||||
summaryView.setVisibility(View.VISIBLE);
|
||||
break;
|
||||
}
|
||||
case Activity.ACTION_RETWEETED_MENTION: {
|
||||
activityTypeView.setImageResource(R.drawable.ic_activity_action_retweet);
|
||||
activityTypeView.setColorFilter(resources.getColor(R.color.highlight_retweet), Mode.SRC_ATOP);
|
||||
titleView.setText(getTitleStringAboutMe(R.string.activity_about_me_retweeted_mention,
|
||||
R.string.activity_about_me_retweeted_mention_multi, activity.sources));
|
||||
displayUserProfileImages(activity.sources);
|
||||
summaryView.setText(activity.target_statuses[0].text_unescaped);
|
||||
summaryView.setVisibility(View.VISIBLE);
|
||||
break;
|
||||
}
|
||||
case Activity.ACTION_FAVORITED_MENTION: {
|
||||
activityTypeView.setImageResource(R.drawable.ic_activity_action_favorite);
|
||||
activityTypeView.setColorFilter(resources.getColor(R.color.highlight_favorite), Mode.SRC_ATOP);
|
||||
titleView.setText(getTitleStringAboutMe(R.string.activity_about_me_favorited_mention,
|
||||
R.string.activity_about_me_favorited_mention_multi, activity.sources));
|
||||
displayUserProfileImages(activity.sources);
|
||||
summaryView.setText(activity.target_statuses[0].text_unescaped);
|
||||
summaryView.setVisibility(View.VISIBLE);
|
||||
break;
|
||||
}
|
||||
case Activity.ACTION_LIST_MEMBER_ADDED: {
|
||||
activityTypeView.setImageResource(R.drawable.ic_activity_action_list_added);
|
||||
activityTypeView.setColorFilter(activityTypeView.getDefaultColor(), Mode.SRC_ATOP);
|
||||
|
@ -231,6 +231,7 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@+id/quoted_text"
|
||||
android:layout_marginBottom="@dimen/element_spacing_normal"
|
||||
android:layout_marginTop="@dimen/element_spacing_normal"
|
||||
android:layout_toEndOf="@+id/quote_indicator"
|
||||
android:layout_toRightOf="@+id/quote_indicator"
|
||||
@ -248,7 +249,7 @@
|
||||
android:layout_alignLeft="@+id/profile_container"
|
||||
android:layout_alignStart="@+id/profile_container"
|
||||
android:layout_below="@+id/media_preview"
|
||||
android:layout_marginTop="@dimen/element_spacing_minus_small"
|
||||
android:layout_marginTop="@dimen/element_spacing_minus_msmall"
|
||||
android:gravity="center_vertical|start"
|
||||
android:orientation="horizontal">
|
||||
|
||||
|
@ -207,6 +207,7 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@+id/quoted_text"
|
||||
android:layout_marginBottom="@dimen/element_spacing_msmall"
|
||||
android:layout_marginTop="@dimen/element_spacing_small"
|
||||
android:layout_toEndOf="@+id/quote_indicator"
|
||||
android:layout_toRightOf="@+id/quote_indicator"
|
||||
@ -226,7 +227,7 @@
|
||||
android:layout_alignLeft="@id/status_content"
|
||||
android:layout_alignStart="@id/status_content"
|
||||
android:layout_below="@+id/status_content"
|
||||
android:layout_marginTop="@dimen/element_spacing_minus_mlarge"
|
||||
android:layout_marginTop="@dimen/element_spacing_minus_normal"
|
||||
android:layout_toLeftOf="@+id/item_menu"
|
||||
android:layout_toStartOf="@+id/item_menu"
|
||||
android:gravity="center_vertical|start"
|
||||
|
@ -278,6 +278,10 @@
|
||||
<string name="activity_about_me_retweet_multi"><xliff:g id="user">%1$s</xliff:g> and <xliff:g id="other">%2$s</xliff:g> retweeted your tweet.</string>
|
||||
<string name="activity_about_me_retweeted_retweet"><xliff:g id="user">%s</xliff:g> retweeted your retweet.</string>
|
||||
<string name="activity_about_me_retweeted_retweet_multi"><xliff:g id="user">%1$s</xliff:g> and <xliff:g id="other">%2$s</xliff:g> retweeted your retweet.</string>
|
||||
<string name="activity_about_me_retweeted_mention"><xliff:g id="user">%s</xliff:g> retweeted a tweet mentioned you.</string>
|
||||
<string name="activity_about_me_retweeted_mention_multi"><xliff:g id="user">%s</xliff:g> and <xliff:g id="other">%2$s</xliff:g> retweeted a tweet mentioned you.</string>
|
||||
<string name="activity_about_me_favorited_mention"><xliff:g id="user">%s</xliff:g> favorited a tweet mentioned you.</string>
|
||||
<string name="activity_about_me_favorited_mention_multi"><xliff:g id="user">%s</xliff:g> and <xliff:g id="other">%2$s</xliff:g> favorited a tweet mentioned you.</string>
|
||||
<string name="activity_about_me_list_member_added"><xliff:g id="user">%s</xliff:g> added you to list.</string>
|
||||
<string name="activity_about_me_list_member_added_with_name"><xliff:g id="user">%1$s</xliff:g> added you to list <xliff:g id="list">%2$s</xliff:g>".</string>
|
||||
<string name="activity_about_me_list_member_added_multi"><xliff:g id="user">%1$s</xliff:g> and <xliff:g id="other">%2$s</xliff:g> added you to their lists.</string>
|
||||
|
Loading…
x
Reference in New Issue
Block a user