Fix per-account binding on re-binding

Stephen Paul Weber created

Change summary

src/main/java/eu/siacs/conversations/ui/adapter/ListItemAdapter.java | 7 
1 file changed, 3 insertions(+), 4 deletions(-)

Detailed changes

src/main/java/eu/siacs/conversations/ui/adapter/ListItemAdapter.java 🔗

@@ -56,19 +56,16 @@ public class ListItemAdapter extends ArrayAdapter<ListItem> {
 		LayoutInflater inflater = activity.getLayoutInflater();
 		ListItem item = getItem(position);
 		ViewHolder viewHolder;
-		View innerView;
 		if (view == null) {
 			ContactBinding binding = DataBindingUtil.inflate(inflater,R.layout.contact,parent,false);
 			viewHolder = ViewHolder.get(binding);
 			view = binding.getRoot();
-			innerView = binding.inner;
 		} else {
 			viewHolder = (ViewHolder) view.getTag();
-			innerView = view;
 		}
 
 		if (activity.xmppConnectionService != null && activity.xmppConnectionService.getAccounts().size() > 1) {
-			innerView.setBackgroundColor(item.getAccount().getColor(activity.isDarkTheme()));
+			viewHolder.inner.setBackgroundColor(item.getAccount().getColor(activity.isDarkTheme()));
 		}
 
 		view.setBackground(StyledAttributes.getDrawable(view.getContext(),R.attr.list_item_background));
@@ -113,6 +110,7 @@ public class ListItemAdapter extends ArrayAdapter<ListItem> {
 		private TextView jid;
 		private ImageView avatar;
 		private FlowLayout tags;
+		private View inner;
 
 		private ViewHolder() {
 
@@ -124,6 +122,7 @@ public class ListItemAdapter extends ArrayAdapter<ListItem> {
 			viewHolder.jid = binding.contactJid;
 			viewHolder.avatar = binding.contactPhoto;
 			viewHolder.tags = binding.tags;
+			viewHolder.inner = binding.inner;
 			binding.getRoot().setTag(viewHolder);
 			return viewHolder;
 		}