Fix issue when adding mentions
This commit is contained in:
parent
51f1280d99
commit
6f6208be59
|
@ -1682,7 +1682,7 @@ public class PixelfedComposeActivity extends BaseActivity implements UploadStatu
|
|||
this.checkedValues.add(toot_content.getText().toString().contains("@" + account.getAcct()));
|
||||
}
|
||||
this.loader.setVisibility(View.GONE);
|
||||
AccountsReplyAdapter contactAdapter = new AccountsReplyAdapter(this.contacts, this.checkedValues);
|
||||
AccountsReplyAdapter contactAdapter = new AccountsReplyAdapter(new WeakReference<>(PixelfedComposeActivity.this), this.contacts, this.checkedValues);
|
||||
this.lv_accounts_search.setAdapter(contactAdapter);
|
||||
}
|
||||
|
||||
|
|
|
@ -58,6 +58,7 @@ import android.text.Html;
|
|||
import android.text.InputFilter;
|
||||
import android.text.InputType;
|
||||
import android.text.TextWatcher;
|
||||
import android.util.Log;
|
||||
import android.util.Patterns;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.Menu;
|
||||
|
@ -2895,7 +2896,7 @@ public class TootActivity extends BaseActivity implements UploadStatusDelegate,
|
|||
this.checkedValues.add(toot_content.getText().toString().contains("@" + account.getAcct()));
|
||||
}
|
||||
this.loader.setVisibility(View.GONE);
|
||||
AccountsReplyAdapter contactAdapter = new AccountsReplyAdapter(this.contacts, this.checkedValues);
|
||||
AccountsReplyAdapter contactAdapter = new AccountsReplyAdapter(new WeakReference<>(TootActivity.this),this.contacts, this.checkedValues);
|
||||
this.lv_accounts_search.setAdapter(contactAdapter);
|
||||
}
|
||||
|
||||
|
@ -4029,7 +4030,7 @@ public class TootActivity extends BaseActivity implements UploadStatusDelegate,
|
|||
i++;
|
||||
}
|
||||
final AlertDialog.Builder builderSingle = new AlertDialog.Builder(TootActivity.this, style);
|
||||
AccountsReplyAdapter accountsReplyAdapter = new AccountsReplyAdapter(accounts, checkedValues);
|
||||
AccountsReplyAdapter accountsReplyAdapter = new AccountsReplyAdapter(new WeakReference<>(TootActivity.this), accounts, checkedValues);
|
||||
builderSingle.setTitle(getString(R.string.select_accounts)).setAdapter(accountsReplyAdapter, null);
|
||||
builderSingle.setNegativeButton(R.string.validate, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
|
@ -4042,6 +4043,7 @@ public class TootActivity extends BaseActivity implements UploadStatusDelegate,
|
|||
}
|
||||
|
||||
public void changeAccountReply(boolean isChecked, String acct) {
|
||||
Log.v(Helper.TAG,isChecked + " -> " + acct );
|
||||
if (isChecked) {
|
||||
if (!toot_content.getText().toString().contains(acct))
|
||||
toot_content.setText(String.format("%s %s", acct, toot_content.getText()));
|
||||
|
|
|
@ -15,6 +15,7 @@ package app.fedilab.android.drawers;
|
|||
* see <http://www.gnu.org/licenses>. */
|
||||
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
@ -31,6 +32,7 @@ import android.widget.TextView;
|
|||
|
||||
import com.bumptech.glide.Glide;
|
||||
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.util.List;
|
||||
|
||||
import app.fedilab.android.client.Entities.Account;
|
||||
|
@ -45,22 +47,23 @@ import app.fedilab.android.activities.TootActivity;
|
|||
public class AccountsReplyAdapter extends BaseAdapter {
|
||||
|
||||
private List<Account> accounts;
|
||||
private LayoutInflater layoutInflater;
|
||||
private boolean[] checked;
|
||||
private Context context;
|
||||
private WeakReference<Activity> activityWeakReference;
|
||||
|
||||
public AccountsReplyAdapter(List<Account> accounts, boolean[] checked) {
|
||||
public AccountsReplyAdapter(WeakReference<Activity> activityWeakReference, List<Account> accounts, boolean[] checked) {
|
||||
this.accounts = accounts;
|
||||
this.checked = checked;
|
||||
this.activityWeakReference = activityWeakReference;
|
||||
}
|
||||
|
||||
public AccountsReplyAdapter(List<Account> accounts, List<Boolean> checked) {
|
||||
public AccountsReplyAdapter(WeakReference<Activity> activityWeakReference, List<Account> accounts, List<Boolean> checked) {
|
||||
this.accounts = accounts;
|
||||
this.checked = new boolean[checked.size()];
|
||||
int index = 0;
|
||||
for (Boolean val : checked) {
|
||||
this.checked[index++] = val;
|
||||
}
|
||||
this.activityWeakReference = activityWeakReference;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -82,8 +85,7 @@ public class AccountsReplyAdapter extends BaseAdapter {
|
|||
@NonNull
|
||||
@Override
|
||||
public View getView(final int position, View convertView, @NonNull ViewGroup parent) {
|
||||
context = parent.getContext();
|
||||
layoutInflater = LayoutInflater.from(context);
|
||||
LayoutInflater layoutInflater = LayoutInflater.from(activityWeakReference.get());
|
||||
final Account account = accounts.get(position);
|
||||
final ViewHolder holder;
|
||||
if (convertView == null) {
|
||||
|
@ -102,9 +104,10 @@ public class AccountsReplyAdapter extends BaseAdapter {
|
|||
@Override
|
||||
public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {
|
||||
try {
|
||||
((TootActivity) context).changeAccountReply(isChecked, "@" + account.getAcct());
|
||||
((TootActivity) activityWeakReference.get()).changeAccountReply(isChecked, "@" + account.getAcct());
|
||||
checked[position] = isChecked;
|
||||
} catch (Exception ignored) {
|
||||
ignored.printStackTrace();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue