open-keychain/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/chips/EncryptRecipientDropdownAdapter.java
2020-05-30 15:47:09 +02:00

70 lines
2.5 KiB
Java

package org.sufficientlysecure.keychain.ui.chips;
import java.util.List;
import android.content.Context;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import org.sufficientlysecure.materialchips.ChipsInput;
import org.sufficientlysecure.keychain.R;
import org.sufficientlysecure.keychain.ui.chips.EncryptRecipientChipsInput.EncryptRecipientChip;
import org.sufficientlysecure.keychain.ui.chips.EncryptRecipientDropdownAdapter.ItemViewHolder;
import org.sufficientlysecure.keychain.ui.util.KeyInfoFormatter;
public class EncryptRecipientDropdownAdapter extends ChipsInput.ChipDropdownAdapter<EncryptRecipientChip, ItemViewHolder> {
private final LayoutInflater layoutInflater;
private final KeyInfoFormatter keyInfoFormatter;
EncryptRecipientDropdownAdapter(Context context, List<EncryptRecipientChip> keyInfoChips) {
super(keyInfoChips);
layoutInflater = LayoutInflater.from(context);
keyInfoFormatter = new KeyInfoFormatter(context);
}
class ItemViewHolder extends RecyclerView.ViewHolder {
private final TextView vMainUserId;
private final TextView vMainUserIdRest;
private final TextView vCreationDate;
private final ImageView vStatusIcon;
ItemViewHolder(View view) {
super(view);
vMainUserId = itemView.findViewById(R.id.key_list_item_name);
vMainUserIdRest = itemView.findViewById(R.id.key_list_item_email);
vStatusIcon = itemView.findViewById(R.id.key_list_item_status_icon);
vCreationDate = itemView.findViewById(R.id.key_list_item_creation);
}
public void bind(EncryptRecipientChip chip) {
keyInfoFormatter.setKeyInfo(chip.keyInfo);
keyInfoFormatter.formatUserId(vMainUserId, vMainUserIdRest);
keyInfoFormatter.formatCreationDate(vCreationDate);
keyInfoFormatter.formatStatusIcon(vStatusIcon);
}
}
@NonNull
@Override
public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = layoutInflater.inflate(R.layout.key_list_item, parent, false);
return new ItemViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) {
EncryptRecipientChip chip = getItem(position);
holder.bind(chip);
}
}