refactor: deduplicate remote interactions
This commit is contained in:
@@ -200,18 +200,10 @@ public class FooterStatusDisplayItem extends StatusDisplayItem{
|
|||||||
|
|
||||||
private void onReplyClick(View v){
|
private void onReplyClick(View v){
|
||||||
if(item.status.preview) return;
|
if(item.status.preview) return;
|
||||||
if(item.status.isRemote){
|
applyInteraction(v, status -> {
|
||||||
UiUtils.lookupStatus(v.getContext(),
|
|
||||||
item.status, item.accountID, null,
|
|
||||||
status -> {
|
|
||||||
UiUtils.opacityIn(v);
|
UiUtils.opacityIn(v);
|
||||||
openComposeView(status, item.accountID);
|
openComposeView(status, item.accountID);
|
||||||
}
|
});
|
||||||
);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
UiUtils.opacityIn(v);
|
|
||||||
openComposeView(item.status, item.accountID);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean onReplyLongClick(View v) {
|
private boolean onReplyLongClick(View v) {
|
||||||
@@ -243,22 +235,13 @@ public class FooterStatusDisplayItem extends StatusDisplayItem{
|
|||||||
onBoostLongClick(v);
|
onBoostLongClick(v);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(item.status.isRemote){
|
applyInteraction(v, status -> {
|
||||||
UiUtils.lookupStatus(v.getContext(),
|
|
||||||
item.status, item.accountID, null,
|
|
||||||
status -> {
|
|
||||||
if(status == null)
|
if(status == null)
|
||||||
return;
|
return;
|
||||||
boost.setSelected(!status.reblogged);
|
boost.setSelected(!status.reblogged);
|
||||||
vibrateForAction(boost, !status.reblogged);
|
vibrateForAction(boost, !status.reblogged);
|
||||||
AccountSessionManager.getInstance().getAccount(item.accountID).getStatusInteractionController().setReblogged(status, !status.reblogged, null, r->boostConsumer(v, r));
|
AccountSessionManager.getInstance().getAccount(item.accountID).getStatusInteractionController().setReblogged(status, !status.reblogged, null, r->boostConsumer(v, r));
|
||||||
}
|
});
|
||||||
);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
boost.setSelected(!item.status.reblogged);
|
|
||||||
vibrateForAction(boost, !item.status.reblogged);
|
|
||||||
AccountSessionManager.getInstance().getAccount(item.accountID).getStatusInteractionController().setReblogged(item.status, !item.status.reblogged, null, r->boostConsumer(v, r));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void boostConsumer(View v, Status r) {
|
private void boostConsumer(View v, Status r) {
|
||||||
@@ -275,22 +258,12 @@ public class FooterStatusDisplayItem extends StatusDisplayItem{
|
|||||||
|
|
||||||
Consumer<StatusPrivacy> doReblog = (visibility) -> {
|
Consumer<StatusPrivacy> doReblog = (visibility) -> {
|
||||||
UiUtils.opacityOut(v);
|
UiUtils.opacityOut(v);
|
||||||
if(item.status.isRemote){
|
applyInteraction(v,status -> {
|
||||||
UiUtils.lookupStatus(v.getContext(),
|
|
||||||
item.status, item.accountID, null,
|
|
||||||
status -> {
|
|
||||||
session.getStatusInteractionController()
|
session.getStatusInteractionController()
|
||||||
.setReblogged(status, !status.reblogged, visibility, r->boostConsumer(v, r));
|
.setReblogged(status, !status.reblogged, visibility, r->boostConsumer(v, r));
|
||||||
boost.setSelected(status.reblogged);
|
boost.setSelected(status.reblogged);
|
||||||
dialog.dismiss();
|
dialog.dismiss();
|
||||||
}
|
});
|
||||||
);
|
|
||||||
} else {
|
|
||||||
session.getStatusInteractionController()
|
|
||||||
.setReblogged(item.status, !item.status.reblogged, visibility, r->boostConsumer(v, r));
|
|
||||||
boost.setSelected(item.status.reblogged);
|
|
||||||
dialog.dismiss();
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
View separator = menu.findViewById(R.id.separator);
|
View separator = menu.findViewById(R.id.separator);
|
||||||
@@ -364,10 +337,7 @@ public class FooterStatusDisplayItem extends StatusDisplayItem{
|
|||||||
|
|
||||||
private void onFavoriteClick(View v){
|
private void onFavoriteClick(View v){
|
||||||
if(item.status.preview) return;
|
if(item.status.preview) return;
|
||||||
if(item.status.isRemote){
|
applyInteraction(v, status -> {
|
||||||
UiUtils.lookupStatus(v.getContext(),
|
|
||||||
item.status, item.accountID, null,
|
|
||||||
status -> {
|
|
||||||
if(status == null)
|
if(status == null)
|
||||||
return;
|
return;
|
||||||
favorite.setSelected(!status.favourited);
|
favorite.setSelected(!status.favourited);
|
||||||
@@ -379,18 +349,6 @@ public class FooterStatusDisplayItem extends StatusDisplayItem{
|
|||||||
UiUtils.opacityIn(v);
|
UiUtils.opacityIn(v);
|
||||||
bindText(favorites, r.favouritesCount);
|
bindText(favorites, r.favouritesCount);
|
||||||
});
|
});
|
||||||
}
|
|
||||||
);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
favorite.setSelected(!item.status.favourited);
|
|
||||||
vibrateForAction(favorite, !item.status.favourited);
|
|
||||||
AccountSessionManager.getInstance().getAccount(item.accountID).getStatusInteractionController().setFavorited(item.status, !item.status.favourited, r->{
|
|
||||||
if (item.status.favourited && !GlobalUserPreferences.reduceMotion && !GlobalUserPreferences.likeIcon) {
|
|
||||||
v.startAnimation(spin);
|
|
||||||
}
|
|
||||||
UiUtils.opacityIn(v);
|
|
||||||
bindText(favorites, r.favouritesCount);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -411,9 +369,7 @@ public class FooterStatusDisplayItem extends StatusDisplayItem{
|
|||||||
|
|
||||||
private void onBookmarkClick(View v){
|
private void onBookmarkClick(View v){
|
||||||
if(item.status.preview) return;
|
if(item.status.preview) return;
|
||||||
if(item.status.isRemote){
|
applyInteraction(v,
|
||||||
UiUtils.lookupStatus(v.getContext(),
|
|
||||||
item.status, item.accountID, null,
|
|
||||||
status -> {
|
status -> {
|
||||||
if(status == null)
|
if(status == null)
|
||||||
return;
|
return;
|
||||||
@@ -422,14 +378,6 @@ public class FooterStatusDisplayItem extends StatusDisplayItem{
|
|||||||
AccountSessionManager.getInstance().getAccount(item.accountID).getStatusInteractionController().setBookmarked(status, !status.bookmarked, r->{
|
AccountSessionManager.getInstance().getAccount(item.accountID).getStatusInteractionController().setBookmarked(status, !status.bookmarked, r->{
|
||||||
UiUtils.opacityIn(v);
|
UiUtils.opacityIn(v);
|
||||||
});
|
});
|
||||||
}
|
|
||||||
);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
bookmark.setSelected(!item.status.bookmarked);
|
|
||||||
vibrateForAction(bookmark, !item.status.bookmarked);
|
|
||||||
AccountSessionManager.getInstance().getAccount(item.accountID).getStatusInteractionController().setBookmarked(item.status, !item.status.bookmarked, r->{
|
|
||||||
UiUtils.opacityIn(v);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user