open-keychain/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/chips/EncryptRecipientChipAdapter.java

89 lines
3.1 KiB
Java

package org.sufficientlysecure.keychain.ui.chips;
import android.content.Context;
import android.support.v4.content.ContextCompat;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import org.sufficientlysecure.materialchips.ChipView;
import org.sufficientlysecure.materialchips.ChipsInput;
import org.sufficientlysecure.materialchips.adapter.ChipsAdapter;
import org.sufficientlysecure.materialchips.simple.SimpleChip;
import org.sufficientlysecure.materialchips.util.ViewUtil;
import org.sufficientlysecure.materialchips.views.DetailedChipView;
import org.sufficientlysecure.keychain.R;
import org.sufficientlysecure.keychain.model.SubKey;
import org.sufficientlysecure.keychain.ui.chips.EncryptRecipientChipAdapter.ItemViewHolder;
import org.sufficientlysecure.keychain.ui.chips.EncryptRecipientChipsInput.EncryptRecipientChip;
public class EncryptRecipientChipAdapter extends ChipsAdapter<EncryptRecipientChip, ItemViewHolder> {
EncryptRecipientChipAdapter(Context context, ChipsInput<EncryptRecipientChip> chipsInput) {
super(context, chipsInput);
}
@Override
public ItemViewHolder onCreateChipViewHolder(ViewGroup parent, int viewType) {
int padding = ViewUtil.dpToPx(4);
ChipView chipView = new ChipView.Builder(context)
// .labelColor(mChipLabelColor)
// .deletable(mChipDeletable)
// .deleteIcon(mChipDeleteIcon)
// .deleteIconColor(mChipDeleteIconColor)
.build();
chipView.setPadding(padding, padding, padding, padding);
return new ItemViewHolder(chipView);
}
@Override
public void onBindChipViewHolder(ItemViewHolder holder, int position) {
EncryptRecipientChip chip = getItem(position);
holder.chipView.inflate(simpleChipFromKeyInfo(chip.keyInfo));
handleClickOnEditText(holder.chipView, position);
}
@Override
public DetailedChipView getDetailedChipView(EncryptRecipientChip chip) {
return new DetailedChipView.Builder(context)
.chip(simpleChipFromKeyInfo(chip.keyInfo))
.backgroundColor(ContextCompat.getColorStateList(context, R.color.cardview_light_background))
.build();
}
class ItemViewHolder extends RecyclerView.ViewHolder {
private final ChipView chipView;
ItemViewHolder(View view) {
super(view);
chipView = (ChipView) view;
}
}
private SimpleChip simpleChipFromKeyInfo(SubKey.UnifiedKeyInfo keyInfo) {
String name;
String email;
if (keyInfo.name() == null) {
if (keyInfo.email() != null) {
name = keyInfo.email();
email = null;
} else {
name = context.getString(R.string.user_id_no_name);
email = null;
}
} else {
name = keyInfo.name();
if (keyInfo.email() != null) {
email = keyInfo.email();
} else {
email = null;
}
}
return new SimpleChip(name, email);
}
}