Loading app/src/main/java/app/fedilab/android/activities/ComposeActivity.java +5 −4 Original line number Diff line number Diff line Loading @@ -402,8 +402,8 @@ public class ComposeActivity extends BaseActivity implements ComposeAdapter.Mana return true; } private void onRetrieveContact(PopupContactBinding binding, List<app.fedilab.android.client.entities.api.Account> accounts) { binding.loader.setVisibility(View.GONE); private void onRetrieveContact(PopupContactBinding popupContactBinding, List<app.fedilab.android.client.entities.api.Account> accounts) { popupContactBinding.loader.setVisibility(View.GONE); if (accounts == null) { accounts = new ArrayList<>(); } Loading @@ -413,8 +413,9 @@ public class ComposeActivity extends BaseActivity implements ComposeAdapter.Mana checkedValues.add(composeAdapter.getLastComposeContent().contains("@" + account.acct)); } AccountsReplyAdapter contactAdapter = new AccountsReplyAdapter(contacts, checkedValues); binding.lvAccountsSearch.setAdapter(contactAdapter); binding.lvAccountsSearch.setLayoutManager(new LinearLayoutManager(ComposeActivity.this)); contactAdapter.actionDone = ComposeActivity.this; popupContactBinding.lvAccountsSearch.setAdapter(contactAdapter); popupContactBinding.lvAccountsSearch.setLayoutManager(new LinearLayoutManager(ComposeActivity.this)); } @Override Loading app/src/main/java/app/fedilab/android/ui/drawer/AccountsReplyAdapter.java +0 −1 Original line number Diff line number Diff line Loading @@ -34,7 +34,6 @@ public class AccountsReplyAdapter extends RecyclerView.Adapter<RecyclerView.View private final boolean[] checked; public ActionDone actionDone; public AccountsReplyAdapter(List<Account> accounts, List<Boolean> checked) { this.accounts = accounts; this.checked = new boolean[checked.size()]; Loading app/src/main/java/app/fedilab/android/ui/drawer/ComposeAdapter.java +20 −7 Original line number Diff line number Diff line Loading @@ -142,6 +142,7 @@ public class ComposeAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder private List<Emoji> emojisList = new ArrayList<>(); public promptDraftListener promptDraftListener; private boolean unlisted_changed = false; public static int currentCursorPosition; public ComposeAdapter(List<Status> statusList, int statusCount, BaseAccount account, app.fedilab.android.client.entities.api.Account mentionedAccount, String visibility, String editMessageId) { this.statusList = statusList; Loading Loading @@ -298,6 +299,7 @@ public class ComposeAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder } else { holder.binding.content.requestFocus(); } } public void setStatusCount(int count) { Loading Loading @@ -852,19 +854,25 @@ public class ComposeAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder //It only targets last message in a thread //Return content of last compose message public String getLastComposeContent() { return statusList.get(statusList.size() - 1).text != null ? statusList.get(statusList.size() - 1).text : ""; return statusList.get(currentCursorPosition).text != null ? statusList.get(currentCursorPosition).text : ""; } //------- end contact -----> //Used to write contact when composing public void updateContent(boolean checked, String acct) { if (currentCursorPosition < statusList.size()) { if (checked) { if (!statusList.get(statusList.size() - 1).text.contains(acct)) statusList.get(statusList.size() - 1).text = String.format("%s %s", acct, statusList.get(statusList.size() - 1).text); if (statusList.get(currentCursorPosition).text == null) { statusList.get(currentCursorPosition).text = ""; } if (!statusList.get(currentCursorPosition).text.contains(acct)) { statusList.get(currentCursorPosition).text = String.format("@%s %s", acct, statusList.get(currentCursorPosition).text); } } else { statusList.get(statusList.size() - 1).text = statusList.get(statusList.size() - 1).text.replaceAll("\\s*" + acct, ""); statusList.get(currentCursorPosition).text = statusList.get(currentCursorPosition).text.replaceAll("\\b@" + acct, ""); } notifyItemChanged(currentCursorPosition); } notifyItemChanged(statusList.size() - 1); } //Put cursor to the end after changing contacts Loading Loading @@ -1316,6 +1324,11 @@ public class ComposeAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder addAttachment(position, uris); } }); holder.binding.content.setOnFocusChangeListener((view, focused) -> { if (focused) { currentCursorPosition = position; } }); if (statusDraft.cursorPosition <= holder.binding.content.length()) { holder.binding.content.setSelection(statusDraft.cursorPosition); } Loading Loading
app/src/main/java/app/fedilab/android/activities/ComposeActivity.java +5 −4 Original line number Diff line number Diff line Loading @@ -402,8 +402,8 @@ public class ComposeActivity extends BaseActivity implements ComposeAdapter.Mana return true; } private void onRetrieveContact(PopupContactBinding binding, List<app.fedilab.android.client.entities.api.Account> accounts) { binding.loader.setVisibility(View.GONE); private void onRetrieveContact(PopupContactBinding popupContactBinding, List<app.fedilab.android.client.entities.api.Account> accounts) { popupContactBinding.loader.setVisibility(View.GONE); if (accounts == null) { accounts = new ArrayList<>(); } Loading @@ -413,8 +413,9 @@ public class ComposeActivity extends BaseActivity implements ComposeAdapter.Mana checkedValues.add(composeAdapter.getLastComposeContent().contains("@" + account.acct)); } AccountsReplyAdapter contactAdapter = new AccountsReplyAdapter(contacts, checkedValues); binding.lvAccountsSearch.setAdapter(contactAdapter); binding.lvAccountsSearch.setLayoutManager(new LinearLayoutManager(ComposeActivity.this)); contactAdapter.actionDone = ComposeActivity.this; popupContactBinding.lvAccountsSearch.setAdapter(contactAdapter); popupContactBinding.lvAccountsSearch.setLayoutManager(new LinearLayoutManager(ComposeActivity.this)); } @Override Loading
app/src/main/java/app/fedilab/android/ui/drawer/AccountsReplyAdapter.java +0 −1 Original line number Diff line number Diff line Loading @@ -34,7 +34,6 @@ public class AccountsReplyAdapter extends RecyclerView.Adapter<RecyclerView.View private final boolean[] checked; public ActionDone actionDone; public AccountsReplyAdapter(List<Account> accounts, List<Boolean> checked) { this.accounts = accounts; this.checked = new boolean[checked.size()]; Loading
app/src/main/java/app/fedilab/android/ui/drawer/ComposeAdapter.java +20 −7 Original line number Diff line number Diff line Loading @@ -142,6 +142,7 @@ public class ComposeAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder private List<Emoji> emojisList = new ArrayList<>(); public promptDraftListener promptDraftListener; private boolean unlisted_changed = false; public static int currentCursorPosition; public ComposeAdapter(List<Status> statusList, int statusCount, BaseAccount account, app.fedilab.android.client.entities.api.Account mentionedAccount, String visibility, String editMessageId) { this.statusList = statusList; Loading Loading @@ -298,6 +299,7 @@ public class ComposeAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder } else { holder.binding.content.requestFocus(); } } public void setStatusCount(int count) { Loading Loading @@ -852,19 +854,25 @@ public class ComposeAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder //It only targets last message in a thread //Return content of last compose message public String getLastComposeContent() { return statusList.get(statusList.size() - 1).text != null ? statusList.get(statusList.size() - 1).text : ""; return statusList.get(currentCursorPosition).text != null ? statusList.get(currentCursorPosition).text : ""; } //------- end contact -----> //Used to write contact when composing public void updateContent(boolean checked, String acct) { if (currentCursorPosition < statusList.size()) { if (checked) { if (!statusList.get(statusList.size() - 1).text.contains(acct)) statusList.get(statusList.size() - 1).text = String.format("%s %s", acct, statusList.get(statusList.size() - 1).text); if (statusList.get(currentCursorPosition).text == null) { statusList.get(currentCursorPosition).text = ""; } if (!statusList.get(currentCursorPosition).text.contains(acct)) { statusList.get(currentCursorPosition).text = String.format("@%s %s", acct, statusList.get(currentCursorPosition).text); } } else { statusList.get(statusList.size() - 1).text = statusList.get(statusList.size() - 1).text.replaceAll("\\s*" + acct, ""); statusList.get(currentCursorPosition).text = statusList.get(currentCursorPosition).text.replaceAll("\\b@" + acct, ""); } notifyItemChanged(currentCursorPosition); } notifyItemChanged(statusList.size() - 1); } //Put cursor to the end after changing contacts Loading Loading @@ -1316,6 +1324,11 @@ public class ComposeAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder addAttachment(position, uris); } }); holder.binding.content.setOnFocusChangeListener((view, focused) -> { if (focused) { currentCursorPosition = position; } }); if (statusDraft.cursorPosition <= holder.binding.content.length()) { holder.binding.content.setSelection(statusDraft.cursorPosition); } Loading