146 lines
5.4 KiB
Java
146 lines
5.4 KiB
Java
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<WechatContactAdapter.ContactHolder> {
|
|
private static final String TAG = "WechatContactAdapter";
|
|
|
|
private List<Contact> 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<Contact> 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);
|
|
}
|
|
}
|
|
}
|