package com.uiui.zyos.adapter; import android.content.Context; import android.graphics.drawable.Drawable; 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 androidx.annotation.NonNull; import androidx.constraintlayout.widget.ConstraintLayout; import androidx.recyclerview.widget.RecyclerView; import com.uiui.zyos.R; import com.uiui.zyos.bean.DesktopIcon; import com.uiui.zyos.config.CommonConfig; import com.uiui.zyos.utils.ApkUtils; import com.uiui.zyos.utils.AppUsedTimeUtils; import com.uiui.zyos.utils.BitmapUtils; import com.uiui.zyos.utils.IconUtils; import com.uiui.zyos.utils.OpenApkUtils; import com.uiui.zyos.utils.ToastUtil; import java.util.ArrayList; import java.util.List; public class AppAdapter extends RecyclerView.Adapter { private static final String TAG = AppAdapter.class.getSimpleName(); private Context mContext; private List desktopIcons; @NonNull @Override public AppHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { mContext = parent.getContext(); return new AppHolder(LayoutInflater.from(mContext).inflate(R.layout.item_app, parent, false)); } @Override public void onBindViewHolder(@NonNull AppHolder holder, int position) { DesktopIcon desktopIcon = desktopIcons.get(position); String lable = desktopIcon.getLable(); holder.tv_appname.setText(lable); holder.iv_icon.setImageDrawable(desktopIcon.getIcon()); String pkg = desktopIcon.getPackageName(); Log.e(TAG, "getView: " + pkg); int i = IconUtils.appClassNameList.indexOf(pkg); if (i != -1) { String val = IconUtils.appIconList.get(i); int resID = mContext.getResources().getIdentifier(val, "drawable", "com.uiui.zyos"); if (resID == 0) { Log.e(TAG, "getView: not found src : " + pkg); holder.iv_icon.setImageBitmap(BitmapUtils.getIconBitmap(mContext, desktopIcon.getIcon())); } else { holder.iv_icon.setImageDrawable(mContext.getResources().getDrawable(resID)); } } else { holder.iv_icon.setImageBitmap(BitmapUtils.getIconBitmap(mContext, desktopIcon.getIcon())); } holder.root.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { int setting_other_appInstaller = Settings.Global.getInt(mContext.getContentResolver(), CommonConfig.SETTING_OTHER_APPINSTALLER_KEY, 1); if (setting_other_appInstaller == 0 && !ApkUtils.isSystemApp(mContext, desktopIcon.getPackageName() )) { ToastUtil.show("已禁止应用打开"); } else { OpenApkUtils.getInstance().openApp(desktopIcon.getPackageName(), desktopIcon.getClassName()); } } }); } @Override public int getItemCount() { return desktopIcons == null ? 0 : desktopIcons.size(); } public List getDesktopIcons() { return desktopIcons; } public void setDesktopIcons(List desktopIcons) { this.desktopIcons = desktopIcons; notifyDataSetChanged(); } class AppHolder extends RecyclerView.ViewHolder { ConstraintLayout root; TextView tv_appname; ImageView iv_icon; public AppHolder(@NonNull View itemView) { super(itemView); root = itemView.findViewById(R.id.root); tv_appname = itemView.findViewById(R.id.tv_appname); iv_icon = itemView.findViewById(R.id.iv_icon); } } }