Long press to mention users by name in PhotoViewer

(cherry picked from commit fc2f81f1fe0ebd44a04b43f711cac6bed1c474a2)
This commit is contained in:
NekoInverter 2020-06-22 22:11:11 +08:00 committed by 世界
parent 9945aacf39
commit 69da1b17a8
No known key found for this signature in database
GPG Key ID: CD109927C34A63C4
1 changed files with 9 additions and 0 deletions

View File

@ -4666,6 +4666,8 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat
mentionListView.setOnItemLongClickListener((view, position) -> {
Object object = mentionsAdapter.getItem(position);
int start = mentionsAdapter.getResultStartPosition();
int len = mentionsAdapter.getResultLength();
if (object instanceof String) {
AlertDialog.Builder builder = new AlertDialog.Builder(parentActivity);
builder.setTitle(LocaleController.getString("NekoX", R.string.NekoX));
@ -4674,6 +4676,13 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat
builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null);
showAlertDialog(builder);
return true;
} else if (object instanceof TLRPC.User) {
TLRPC.User user = (TLRPC.User) object;
String name = UserObject.getFirstName(user);
Spannable spannable = new SpannableString("@" + name + " ");
spannable.setSpan(new URLSpanUserMentionPhotoViewer("" + user.id, true), 0, spannable.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
captionEditText.replaceWithText(start, len, spannable, false);
return true;
}
return false;
});