Fixes issue #201 - Mentions in replies & cursor position
This commit is contained in:
parent
9d22a7d6e7
commit
e787a27005
|
@ -1857,26 +1857,30 @@ public class TootActivity extends BaseActivity implements OnRetrieveSearcAccount
|
||||||
}
|
}
|
||||||
//Retrieves mentioned accounts + OP and adds them at the beginin of the toot
|
//Retrieves mentioned accounts + OP and adds them at the beginin of the toot
|
||||||
ArrayList<String> mentionedAccountsAdded = new ArrayList<>();
|
ArrayList<String> mentionedAccountsAdded = new ArrayList<>();
|
||||||
|
int cursorReply = 0;
|
||||||
if( tootReply.getAccount() != null && tootReply.getAccount().getAcct() != null && !tootReply.getAccount().getId().equals(userId)) {
|
if( tootReply.getAccount() != null && tootReply.getAccount().getAcct() != null && !tootReply.getAccount().getId().equals(userId)) {
|
||||||
toot_content.setText(String.format("@%s ", tootReply.getAccount().getAcct()));
|
toot_content.setText(String.format("@%s", tootReply.getAccount().getAcct()));
|
||||||
mentionedAccountsAdded.add(tootReply.getAccount().getAcct());
|
mentionedAccountsAdded.add(tootReply.getAccount().getAcct());
|
||||||
|
//Evaluate the cursor position => mention length + 1 char for carriage return
|
||||||
|
cursorReply = toot_content.getText().toString().length() + 1;
|
||||||
}
|
}
|
||||||
if( tootReply.getMentions() != null ){
|
if( tootReply.getMentions() != null ){
|
||||||
|
//Put other accounts mentioned at the bottom
|
||||||
|
toot_content.setText(String.format("%s", (toot_content.getText().toString() + "\n\n")));
|
||||||
for(Mention mention : tootReply.getMentions()){
|
for(Mention mention : tootReply.getMentions()){
|
||||||
if( mention.getAcct() != null && !mention.getId().equals(userId) && !mentionedAccountsAdded.contains(mention.getAcct())) {
|
if( mention.getAcct() != null && !mention.getId().equals(userId) && !mentionedAccountsAdded.contains(mention.getAcct())) {
|
||||||
mentionedAccountsAdded.add(mention.getAcct());
|
mentionedAccountsAdded.add(mention.getAcct());
|
||||||
String tootTemp = String.format("@%s ", mention.getAcct());
|
String tootTemp = String.format("@%s ", mention.getAcct());
|
||||||
toot_content.setText(String.format("%s ", (toot_content.getText().toString() + " " + tootTemp)));
|
toot_content.setText(String.format("%s ", (toot_content.getText().toString() + tootTemp.trim())));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
toot_content.setText(toot_content.getText().toString().trim());
|
toot_content.setText(toot_content.getText().toString().trim());
|
||||||
if (toot_content.getText().toString().startsWith("@")) {
|
|
||||||
toot_content.append("\n");
|
|
||||||
}
|
|
||||||
toot_space_left.setText(String.valueOf(toot_content.length()));
|
toot_space_left.setText(String.valueOf(toot_content.length()));
|
||||||
toot_content.requestFocus();
|
toot_content.requestFocus();
|
||||||
|
if( cursorReply > 0 )
|
||||||
|
toot_content.setSelection(cursorReply);
|
||||||
|
else
|
||||||
toot_content.setSelection(toot_content.getText().length()); //Put cursor at the end
|
toot_content.setSelection(toot_content.getText().length()); //Put cursor at the end
|
||||||
}
|
}
|
||||||
initialContent = toot_content.getText().toString();
|
initialContent = toot_content.getText().toString();
|
||||||
|
|
Loading…
Reference in New Issue