package com.vscool.os.adapter; import android.content.Context; import android.content.Intent; import android.provider.Settings; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; import androidx.annotation.NonNull; import androidx.constraintlayout.widget.ConstraintLayout; import androidx.recyclerview.widget.RecyclerView; import com.bumptech.glide.Glide; import com.shehuan.niv.NiceImageView; import com.vscool.os.R; import com.vscool.os.activity.callwechat.CallWechatActivity; import com.vscool.os.activity.contact.AddContactActivity; import com.vscool.os.bean.Contact; import com.vscool.os.utils.AccessibilityUtils; import java.util.List; public class WechatContactAdapter extends RecyclerView.Adapter { private static final String TAG = "WechatContactAdapter"; private List mContactList; private Context mContext; public static final String DIALER_PACKAGE = "com.android.dialer"; public static final String DIALER_ADD_CONTACT = "com.uiui.aios.contact.add"; public void setContactList(List contactList) { this.mContactList = contactList; notifyDataSetChanged(); } private OnLongClick mOnLongClick; public void setOnLongClick(OnLongClick onLongClick) { mOnLongClick = onLongClick; } public interface OnLongClick { void setOnLongClickListener(Contact contact); } @NonNull @Override public ContactHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { mContext = parent.getContext(); return new ContactHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_contact_wechat, parent, false)); } @Override public void onBindViewHolder(@NonNull ContactHolder contactHolder, int position) { Contact contact = mContactList.get(position); contactHolder.tv_name.setText(contact.getName()); contactHolder.tv_phone.setText(contact.getMobile()); Glide.with(contactHolder.iv_head).load(contact.getAvatar()).override(200, 200).error(R.drawable.default_avatar).into(contactHolder.iv_head); // switch (position % 6) { // case 0: // contactHolder.iv_bg.setImageDrawable(mContext.getDrawable(R.drawable.contact_card_backround1)); // break; // case 1: // contactHolder.iv_bg.setImageDrawable(mContext.getDrawable(R.drawable.contact_card_backround2)); // break; // case 2: // contactHolder.iv_bg.setImageDrawable(mContext.getDrawable(R.drawable.contact_card_backround3)); // break; // case 3: // contactHolder.iv_bg.setImageDrawable(mContext.getDrawable(R.drawable.contact_card_backround4)); // break; // case 4: // contactHolder.iv_bg.setImageDrawable(mContext.getDrawable(R.drawable.contact_card_backround5)); // break; // case 5: // contactHolder.iv_bg.setImageDrawable(mContext.getDrawable(R.drawable.contact_card_backround6)); // break; // default: // contactHolder.iv_bg.setImageDrawable(mContext.getDrawable(R.drawable.contact_card_backround1)); // } contactHolder.root.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if ("未设置".equals(contact.getName())) { Intent intent = new Intent(mContext, AddContactActivity.class); mContext.startActivity(intent); } else { Intent intent = new Intent(mContext, CallWechatActivity.class); intent.putExtra("WechatInfo", contact); mContext.startActivity(intent); } } }); contactHolder.root.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { if (mOnLongClick != null) { mOnLongClick.setOnLongClickListener(contact); } return false; } }); } private void checkAccessibility() { if (!AccessibilityUtils.isAccessibilitySettingsOn(mContext)) { Toast.makeText(mContext, "请在无障碍服务中打开 - 关爱守护快捷服务", Toast.LENGTH_LONG).show(); mContext.startActivity(new Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS)); } else { Log.e(TAG, "checkAccessibility: 无障碍服务已打开"); } } @Override public int getItemCount() { return mContactList == null ? 0 : mContactList.size(); } static class ContactHolder extends RecyclerView.ViewHolder { ConstraintLayout root; NiceImageView iv_head; TextView tv_name; TextView tv_phone; ImageView iv_bg; public ContactHolder(@NonNull View itemView) { super(itemView); root = itemView.findViewById(R.id.root); iv_head = itemView.findViewById(R.id.iv_head); tv_name = itemView.findViewById(R.id.tv_name); tv_phone = itemView.findViewById(R.id.tv_phone); iv_bg = itemView.findViewById(R.id.iv_bg); } } }