long press repeat

This commit is contained in:
Riko Sakurauchi 2020-01-17 00:54:30 +08:00
parent 6054710c53
commit b7b12d6dc5
No known key found for this signature in database
GPG Key ID: 25AC0345B92902AF
1 changed files with 44 additions and 0 deletions

View File

@ -13972,6 +13972,18 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
scrimPopupWindow.dismiss();
}
});
cell.setOnLongClickListener(v1 -> {
if (selectedObject == null || i < 0 || i >= options.size()) {
return false;
}
if (processSelectedOptionLongClick(options.get(i))) {
if (scrimPopupWindow != null) {
scrimPopupWindow.dismiss();
}
return true;
}
return false;
});
}
scrollView.addView(linearLayout, LayoutHelper.createScroll(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.LEFT | Gravity.TOP));
scrimPopupWindow = new ActionBarPopupWindow(popupLayout, LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT) {
@ -14843,6 +14855,38 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
selectedObjectToEditCaption = null;
}
private boolean processSelectedOptionLongClick(int option) {
switch (option) {
case 94: {
ArrayList<MessageObject> messages = new ArrayList<>();
messages.add(selectedObject);
if (selectedObject.type == 0 || selectedObject.isAnimatedEmoji() || getMessageCaption(selectedObject, selectedObjectGroup) != null) {
CharSequence caption = getMessageCaption(selectedObject, selectedObjectGroup);
if (caption == null) {
caption = getMessageContent(selectedObject, 0, false);
}
if (caption != null) {
StringBuilder toSend = new StringBuilder();
for (int i = 0; i < caption.length(); i++){
char c = caption.charAt(i);
if (c == '我') {
toSend.append('你');
} else if (c == '你') {
toSend.append('我');
} else {
toSend.append(c);
}
}
SendMessagesHelper.getInstance(currentAccount).sendMessage(toSend.toString(), dialog_id, selectedObject, null, false,
null, null, null, true, 0);
return true;
}
}
}
}
return false;
}
@Override
public void didSelectDialogs(DialogsActivity fragment, ArrayList<Long> dids, CharSequence message, boolean param) {
if (forwardingMessage == null && selectedMessagesIds[0].size() == 0 && selectedMessagesIds[1].size() == 0) {