Mercury-IM/app/src/main/java/org/mercury_im/messenger/ui/login/AccountsRecyclerViewAdapter...

91 lines
3.2 KiB
Java
Raw Normal View History

2019-06-03 01:16:49 +02:00
package org.mercury_im.messenger.ui.login;
import androidx.recyclerview.widget.RecyclerView;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Switch;
import android.widget.TextView;
import org.mercury_im.messenger.MercuryImApplication;
import org.mercury_im.messenger.R;
import org.mercury_im.messenger.persistence.model.AccountModel;
import org.mercury_im.messenger.persistence.room.model.RoomAccountModel;
import org.mercury_im.messenger.ui.login.AccountsFragment.OnListFragmentInteractionListener;
import java.util.ArrayList;
import java.util.List;
import de.hdodenhof.circleimageview.CircleImageView;
public class AccountsRecyclerViewAdapter extends RecyclerView.Adapter<AccountsRecyclerViewAdapter.ViewHolder> {
private final List<RoomAccountModel> mValues;
private final OnListFragmentInteractionListener mListener;
public AccountsRecyclerViewAdapter(List<RoomAccountModel> items, OnListFragmentInteractionListener listener) {
mValues = items != null ? items : new ArrayList<>();
mListener = listener;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.recycler_view_item_account, parent, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(final ViewHolder holder, int position) {
AccountModel account = mValues.get(position);
holder.jid.setText(account.getJid());
holder.enabled.setChecked(account.getEnabled());
holder.accountModel = account;
2019-07-03 00:56:55 +02:00
holder.status.setText(account.getState());
2019-06-03 01:16:49 +02:00
holder.mView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (null != mListener) {
// Notify the active callbacks interface (the activity, if the
// fragment is attached to one) that an item has been selected.
mListener.onListFragmentInteraction(holder.accountModel);
}
}
});
}
public void setValues(List<RoomAccountModel> values) {
this.mValues.clear();
if (values != null) {
mValues.addAll(values);
}
notifyDataSetChanged();
}
@Override
public int getItemCount() {
Log.d(MercuryImApplication.TAG, "Accounts Item Count: " + mValues.size());
return mValues.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
public AccountModel accountModel;
public final View mView;
public final CircleImageView avatar;
public final TextView jid;
public final Switch enabled;
2019-07-03 00:56:55 +02:00
public final TextView status;
2019-06-03 01:16:49 +02:00
public ViewHolder(View view) {
super(view);
mView = view;
avatar = view.findViewById(R.id.avatar_account);
jid = view.findViewById(R.id.text_account_jid);
enabled = view.findViewById(R.id.switch_account_enabled);
2019-07-03 00:56:55 +02:00
status = view.findViewById(R.id.text_account_status);
2019-06-03 01:16:49 +02:00
}
}
}