diff --git a/src/main/java/org/thoughtcrime/securesms/accounts/AccountSelectionListAdapter.java b/src/main/java/org/thoughtcrime/securesms/accounts/AccountSelectionListAdapter.java
index c64a29894a..6ebe85c968 100644
--- a/src/main/java/org/thoughtcrime/securesms/accounts/AccountSelectionListAdapter.java
+++ b/src/main/java/org/thoughtcrime/securesms/accounts/AccountSelectionListAdapter.java
@@ -1,8 +1,6 @@
package org.thoughtcrime.securesms.accounts;
-import android.app.Activity;
import android.content.Context;
-import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -12,7 +10,6 @@
import androidx.recyclerview.widget.RecyclerView;
import com.b44t.messenger.DcAccounts;
-import com.b44t.messenger.DcContact;
import com.b44t.messenger.DcContext;
import org.thoughtcrime.securesms.R;
@@ -41,7 +38,7 @@ public ViewHolder(View itemView) {
super(itemView);
}
- public abstract void bind(@NonNull GlideRequests glideRequests, int accountId, DcContact self, String name, String addr, int unreadCount, boolean selected, boolean isMuted, AccountSelectionListFragment fragment);
+ public abstract void bind(@NonNull GlideRequests glideRequests, int accountId, DcContext dcContext, boolean selected, AccountSelectionListFragment fragment);
public abstract void unbind(@NonNull GlideRequests glideRequests);
}
@@ -61,8 +58,8 @@ public AccountSelectionListItem getView() {
return (AccountSelectionListItem) itemView;
}
- public void bind(@NonNull GlideRequests glideRequests, int accountId, DcContact self, String name, String addr, int unreadCount, boolean selected, boolean isMuted, AccountSelectionListFragment fragment) {
- getView().bind(glideRequests, accountId, self, name, addr, unreadCount, selected, isMuted, fragment);
+ public void bind(@NonNull GlideRequests glideRequests, int accountId, DcContext dcContext, boolean selected, AccountSelectionListFragment fragment) {
+ getView().bind(glideRequests, accountId, dcContext, selected, fragment);
}
@Override
@@ -92,31 +89,12 @@ public AccountSelectionListAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGr
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int i) {
-
int id = accountList[i];
- DcContact dcContact = null;
- String name;
- String addr = null;
- int unreadCount = 0;
DcContext dcContext = accounts.getAccount(id);
- if (id == DcContact.DC_CONTACT_ID_ADD_ACCOUNT) {
- name = context.getString(R.string.add_account);
- } else {
- dcContact = dcContext.getContact(DcContact.DC_CONTACT_ID_SELF);
- name = dcContext.getConfig("displayname");
- if (TextUtils.isEmpty(name)) {
- name = dcContact.getAddr();
- }
- if (!dcContext.isChatmail()) {
- addr = dcContact.getAddr();
- }
- unreadCount = dcContext.getFreshMsgs().length;
- }
-
ViewHolder holder = (ViewHolder) viewHolder;
holder.unbind(glideRequests);
- holder.bind(glideRequests, id, dcContact, name, addr, unreadCount, id == selectedAccountId, dcContext.isMuted(), fragment);
+ holder.bind(glideRequests, id, dcContext, id == selectedAccountId, fragment);
}
public interface ItemClickListener {
diff --git a/src/main/java/org/thoughtcrime/securesms/accounts/AccountSelectionListItem.java b/src/main/java/org/thoughtcrime/securesms/accounts/AccountSelectionListItem.java
index 883be52418..454eb15dd2 100644
--- a/src/main/java/org/thoughtcrime/securesms/accounts/AccountSelectionListItem.java
+++ b/src/main/java/org/thoughtcrime/securesms/accounts/AccountSelectionListItem.java
@@ -3,6 +3,7 @@
import android.content.Context;
import android.graphics.Color;
import android.graphics.Typeface;
+import android.text.TextUtils;
import android.util.AttributeSet;
import android.view.View;
import android.widget.ImageView;
@@ -13,6 +14,7 @@
import com.amulyakhare.textdrawable.TextDrawable;
import com.b44t.messenger.DcContact;
+import com.b44t.messenger.DcContext;
import org.thoughtcrime.securesms.R;
import org.thoughtcrime.securesms.components.AvatarImageView;
@@ -28,7 +30,6 @@ public class AccountSelectionListItem extends LinearLayout {
private TextView addrView;
private TextView nameView;
private ImageView unreadIndicator;
- private ImageView checkbox;
private int accountId;
@@ -48,13 +49,31 @@ protected void onFinishInflate() {
this.addrView = findViewById(R.id.addr);
this.nameView = findViewById(R.id.name);
this.unreadIndicator = findViewById(R.id.unread_indicator);
- this.checkbox = findViewById(R.id.checkbox);
ViewUtil.setTextViewGravityStart(this.nameView, getContext());
}
- public void bind(@NonNull GlideRequests glideRequests, int accountId, DcContact self, String name, String addr, int unreadCount, boolean selected, boolean isMuted, AccountSelectionListFragment fragment) {
+ public void bind(@NonNull GlideRequests glideRequests, int accountId, DcContext dcContext, boolean selected, AccountSelectionListFragment fragment) {
this.accountId = accountId;
+ DcContact self = null;
+ String name;
+ String addr = null;
+ int unreadCount = 0;
+ boolean isMuted = dcContext.isMuted();
+
+ if (accountId == DcContact.DC_CONTACT_ID_ADD_ACCOUNT) {
+ name = getContext().getString(R.string.add_account);
+ } else {
+ self = dcContext.getContact(DcContact.DC_CONTACT_ID_SELF);
+ name = dcContext.getConfig("displayname");
+ if (TextUtils.isEmpty(name)) {
+ name = self.getAddr();
+ }
+ if (!dcContext.isChatmail()) {
+ addr = self.getAddr();
+ }
+ unreadCount = dcContext.getFreshMsgs().length;
+ }
Recipient recipient;
if (accountId != DcContact.DC_CONTACT_ID_ADD_ACCOUNT) {
@@ -66,14 +85,13 @@ public void bind(@NonNull GlideRequests glideRequests, int accountId, DcContact
nameView.setCompoundDrawablesWithIntrinsicBounds(isMuted? R.drawable.ic_volume_off_grey600_18dp : 0, 0, 0, 0);
+ setSelected(selected);
if (selected) {
addrView.setTypeface(null, Typeface.BOLD);
nameView.setTypeface(null, Typeface.BOLD);
- checkbox.setVisibility(View.VISIBLE);
} else {
addrView.setTypeface(null, Typeface.NORMAL);
nameView.setTypeface(null, accountId == DcContact.DC_CONTACT_ID_ADD_ACCOUNT? Typeface.BOLD : Typeface.NORMAL);
- checkbox.setVisibility(View.GONE);
}
updateUnreadIndicator(unreadCount, isMuted);
diff --git a/src/main/res/layout/account_selection_list_item.xml b/src/main/res/layout/account_selection_list_item.xml
index 0f364e880a..c7bacf3b96 100644
--- a/src/main/res/layout/account_selection_list_item.xml
+++ b/src/main/res/layout/account_selection_list_item.xml
@@ -30,17 +30,6 @@
tools:src="@color/blue_600"
android:contentDescription="@null" />
-
-