package com.xxpatx.os.adapter; import android.content.Context; 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 androidx.annotation.NonNull; import androidx.constraintlayout.widget.ConstraintLayout; import androidx.recyclerview.widget.RecyclerView; import com.hjq.toast.Toaster; import com.tencent.mmkv.MMKV; import com.xxpatx.os.R; import com.xxpatx.os.activity.quickapp.QuickAppActivity; import com.xxpatx.os.bean.AppSelectBean; import com.xxpatx.os.config.CommonConfig; import java.util.ArrayList; import java.util.List; public class AppSelectedAdapter extends RecyclerView.Adapter { private static final String TAG = "AppSelectedAdapter"; private MMKV mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE); private Context mContext; private List mAppSelectBeans; // private int unselectedStatus = -1; // private int selecedPosition = unselectedStatus; private List mPkgList = new ArrayList<>(); public void setPkgList(List pkgList) { this.mPkgList = pkgList; Log.e(TAG, "setPkgList: " + mPkgList); } public void setAppSelectBeans(List appSelectBeanList) { this.mAppSelectBeans = appSelectBeanList; notifyDataSetChanged(); } @NonNull @Override public Holder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { mContext = parent.getContext(); return new Holder(LayoutInflater.from(mContext).inflate(R.layout.item_app_select, parent, false)); } @Override public void onBindViewHolder(@NonNull Holder holder, int position) { AppSelectBean appSelectBean = mAppSelectBeans.get(position); holder.iv_icon.setImageDrawable(appSelectBean.getIcon()); holder.tv_name.setText(appSelectBean.getAppName()); if (mPkgList.contains(appSelectBean.getPackageName())) { holder.iv_select.setImageDrawable(mContext.getDrawable(R.drawable.icon_selected)); holder.root.setBackground(mContext.getDrawable(R.drawable.app_select_background)); } else { holder.iv_select.setImageDrawable(mContext.getDrawable(R.drawable.icon_unselected)); holder.root.setBackground(mContext.getDrawable(R.drawable.app_unselect_background)); } holder.iv_select.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Log.e(TAG, "setQuickApp: " + appSelectBean.getPackageName()); if (!mPkgList.contains(appSelectBean.getPackageName())) { if (mPkgList.size() >= 4) { Toaster.show("最多选择4个"); } else { mPkgList.add(appSelectBean.getPackageName()); holder.iv_select.setImageDrawable(mContext.getDrawable(R.drawable.icon_selected)); holder.root.setBackground(mContext.getDrawable(R.drawable.app_select_background)); } } else { mPkgList.remove(appSelectBean.getPackageName()); holder.iv_select.setImageDrawable(mContext.getDrawable(R.drawable.icon_unselected)); holder.root.setBackground(mContext.getDrawable(R.drawable.app_unselect_background)); } if (mPkgList.size() == 0) { mMMKV.encode(QuickAppActivity.QUICK_APP_KEY, ""); } else { mMMKV.encode(QuickAppActivity.QUICK_APP_KEY, String.join(",", mPkgList)); } notifyDataSetChanged(); } }); holder.root.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Log.e(TAG, "setQuickApp: " + appSelectBean.getPackageName()); if (!mPkgList.contains(appSelectBean.getPackageName())) { if (mPkgList.size() >= 4) { Toaster.show("最多选择4个"); } else { mPkgList.add(appSelectBean.getPackageName()); holder.iv_select.setImageDrawable(mContext.getDrawable(R.drawable.icon_selected)); } } else { mPkgList.remove(appSelectBean.getPackageName()); holder.iv_select.setImageDrawable(mContext.getDrawable(R.drawable.icon_unselected)); } if (mPkgList.size() == 0) { mMMKV.encode(QuickAppActivity.QUICK_APP_KEY, ""); } else { mMMKV.encode(QuickAppActivity.QUICK_APP_KEY, String.join(",", mPkgList)); } notifyDataSetChanged(); } }); } @Override public int getItemCount() { return mAppSelectBeans == null ? 0 : mAppSelectBeans.size(); } static class Holder extends RecyclerView.ViewHolder { ImageView iv_select, iv_icon; TextView tv_name; ConstraintLayout root; Holder(@NonNull View itemView) { super(itemView); root = itemView.findViewById(R.id.root); iv_select = itemView.findViewById(R.id.iv_select); iv_icon = itemView.findViewById(R.id.iv_icon); tv_name = itemView.findViewById(R.id.tv_name); } } }