Add boost click handling
This commit is contained in:
parent
afa21f5a5c
commit
0f15509345
7 changed files with 39 additions and 6 deletions
|
@ -17,7 +17,7 @@ class AccountViewHolder extends RecyclerView.ViewHolder {
|
|||
private TextView username;
|
||||
private TextView displayName;
|
||||
private CircularImageView avatar;
|
||||
private String id;
|
||||
private String accountId;
|
||||
|
||||
AccountViewHolder(View itemView) {
|
||||
super(itemView);
|
||||
|
@ -28,7 +28,7 @@ class AccountViewHolder extends RecyclerView.ViewHolder {
|
|||
}
|
||||
|
||||
void setupWithAccount(Account account) {
|
||||
id = account.id;
|
||||
accountId = account.id;
|
||||
String format = username.getContext().getString(R.string.status_username_format);
|
||||
String formattedUsername = String.format(format, account.username);
|
||||
username.setText(formattedUsername);
|
||||
|
@ -45,7 +45,7 @@ class AccountViewHolder extends RecyclerView.ViewHolder {
|
|||
container.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
listener.onViewAccount(id);
|
||||
listener.onViewAccount(accountId);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -54,7 +54,7 @@ class AccountViewHolder extends RecyclerView.ViewHolder {
|
|||
container.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
listener.onViewAccount(id);
|
||||
listener.onViewAccount(accountId);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
@ -425,7 +425,7 @@ class StatusViewHolder extends RecyclerView.ViewHolder {
|
|||
container.setOnClickListener(viewThreadListener);
|
||||
}
|
||||
|
||||
void setupWithStatus(Status status, StatusActionListener listener,
|
||||
void setupWithStatus(Status status, final StatusActionListener listener,
|
||||
boolean mediaPreviewEnabled) {
|
||||
Status realStatus = status.getActionableStatus();
|
||||
|
||||
|
@ -474,5 +474,15 @@ class StatusViewHolder extends RecyclerView.ViewHolder {
|
|||
} else {
|
||||
setSpoilerText(realStatus.spoilerText);
|
||||
}
|
||||
|
||||
// I think it's not efficient to create new object every time we bind a holder.
|
||||
// More efficient approach would be creating View.OnClickListener during holder creation
|
||||
// and storing StatusActionListener in a variable after binding.
|
||||
rebloggedBar.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
listener.onOpenReblog(getAdapterPosition());
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
|
@ -225,6 +225,12 @@ public class NotificationsFragment extends SFragment implements
|
|||
super.viewThread(notification.status);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onOpenReblog(int position) {
|
||||
Notification notification = adapter.getItem(position);
|
||||
if (notification != null) onViewAccount(notification.account.id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onViewTag(String tag) {
|
||||
super.viewTag(tag);
|
||||
|
|
|
@ -169,6 +169,11 @@ public abstract class SFragment extends BaseFragment {
|
|||
callList.add(call);
|
||||
}
|
||||
|
||||
protected void openReblog(@Nullable final Status status) {
|
||||
if (status == null) return;
|
||||
viewAccount(status.account.id);
|
||||
}
|
||||
|
||||
private void mute(String id) {
|
||||
Call<Relationship> call = mastodonApi.muteAccount(id);
|
||||
call.enqueue(new Callback<Relationship>() {
|
||||
|
|
|
@ -246,6 +246,11 @@ public class TimelineFragment extends SFragment implements
|
|||
super.more(adapter.getItem(position), view, adapter, position);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onOpenReblog(int position) {
|
||||
super.openReblog(adapter.getItem(position));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onViewMedia(String[] urls, int urlIndex, Status.MediaAttachment.Type type) {
|
||||
super.viewMedia(urls, urlIndex, type);
|
||||
|
|
|
@ -158,6 +158,12 @@ public class ViewThreadFragment extends SFragment implements
|
|||
super.viewThread(status);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onOpenReblog(int position) {
|
||||
// there should be no reblogs in the thread but let's implement it to be sure
|
||||
super.openReblog(adapter.getItem(position));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onViewTag(String tag) {
|
||||
super.viewTag(tag);
|
||||
|
|
|
@ -26,4 +26,5 @@ public interface StatusActionListener extends LinkListener {
|
|||
void onMore(View view, final int position);
|
||||
void onViewMedia(String[] urls, int index, Status.MediaAttachment.Type type);
|
||||
void onViewThread(int position);
|
||||
void onOpenReblog(int position);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue