ItemlistAdapter.java 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. package com.chinaappsremover.adapter;
  2. import android.content.Context;
  3. import android.content.Intent;
  4. import android.net.Uri;
  5. import android.view.LayoutInflater;
  6. import android.view.View;
  7. import android.view.ViewGroup;
  8. import android.widget.ImageView;
  9. import android.widget.TextView;
  10. import androidx.annotation.NonNull;
  11. import androidx.recyclerview.widget.RecyclerView;
  12. import com.chinaappsremover.R;
  13. import com.chinaappsremover.listener.OnItemClickListener;
  14. import com.chinaappsremover.wrapper.AppInfo;
  15. import java.util.List;
  16. public class ItemlistAdapter extends RecyclerView.Adapter<ItemlistAdapter.ViewHolder> {
  17. private List<AppInfo> appInfos;
  18. private Context context;
  19. private OnItemClickListener onItemClickListener;
  20. private RecyclerView.RecycledViewPool viewPool = new RecyclerView.RecycledViewPool();
  21. public ItemlistAdapter(Context ctx, List<AppInfo> appInfoList, OnItemClickListener clickListener) {
  22. context = ctx;
  23. appInfos = appInfoList;
  24. onItemClickListener = clickListener;
  25. }
  26. @NonNull
  27. public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) {
  28. return new ViewHolder(LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.adapter_item, viewGroup, false));
  29. }
  30. public void onBindViewHolder(ViewHolder viewHolder, final int position) {
  31. final AppInfo item = getItem(position);
  32. viewHolder.appsName.setText(item.appName);
  33. viewHolder.size.setText(item.size);
  34. viewHolder.img.setImageDrawable(item.icon);
  35. viewHolder.delete.setOnClickListener(new View.OnClickListener() {
  36. public void onClick(View view) {
  37. onItemClickListener.onItemClick(position);
  38. Uri packageUri = Uri.parse("package:" + item.packageName);
  39. Intent intent = new Intent(Intent.ACTION_UNINSTALL_PACKAGE);
  40. intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
  41. intent.setData(packageUri);
  42. if (intent.resolveActivity(context.getPackageManager()) != null) {
  43. context.startActivity(intent);
  44. }
  45. }
  46. });
  47. }
  48. public AppInfo getItem(int position) {
  49. return appInfos.get(position);
  50. }
  51. public int getItemCount() {
  52. return appInfos.size();
  53. }
  54. public static class ViewHolder extends RecyclerView.ViewHolder {
  55. TextView appsName;
  56. ImageView delete;
  57. ImageView img;
  58. TextView size;
  59. public ViewHolder(View view) {
  60. super(view);
  61. appsName = view.findViewById(R.id.appsName);
  62. size = view.findViewById(R.id.size);
  63. img = view.findViewById(R.id.img);
  64. delete = view.findViewById(R.id.delete);
  65. }
  66. }
  67. }