package com.betomaluje.android.miband.example.adapters; import android.content.Context; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import com.betomaluje.android.miband.example.R; import com.betomaluje.android.miband.example.models.App; import java.util.List; /** * Created by betomaluje on 7/6/15. */ public class ApplicationsAdapter extends RecyclerView.Adapter<ApplicationsAdapter.SimpleViewHolder> { private List<App> apps; private Context context; private LayoutInflater inflater; private final PackageManager pm; private View.OnClickListener clickListener; public ApplicationsAdapter(Context context, List<App> s, View.OnClickListener clickListener) { this.apps = s; this.context = context; this.clickListener = clickListener; pm = context.getPackageManager(); this.inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); } public class SimpleViewHolder extends RecyclerView.ViewHolder { public TextView textView_appName; public ImageView imageView_appIcon; public View view_appColor; public SimpleViewHolder(View v) { super(v); textView_appName = (TextView) v.findViewById(R.id.textView_appName); imageView_appIcon = (ImageView) v.findViewById(R.id.imageView_appIcon); view_appColor = v.findViewById(R.id.view_appColor); v.setOnClickListener(clickListener); } } @Override public ApplicationsAdapter.SimpleViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View v = inflater.inflate(R.layout.apps_item_row, parent, false); return new SimpleViewHolder(v); } @Override public void onBindViewHolder(ApplicationsAdapter.SimpleViewHolder holder, int position) { try { final App app = apps.get(position); ApplicationInfo applicationInfo = pm.getApplicationInfo(app.getSource(), PackageManager.GET_META_DATA); holder.textView_appName.setText(pm.getApplicationLabel(applicationInfo).toString()); holder.imageView_appIcon.setImageDrawable(pm.getApplicationIcon(applicationInfo)); if (app.isNotify()) { holder.view_appColor.setBackgroundColor(app.getColorForView()); holder.view_appColor.setVisibility(View.VISIBLE); } else { holder.view_appColor.setVisibility(View.INVISIBLE); } } catch (PackageManager.NameNotFoundException e) { } } @Override public int getItemCount() { return apps.size(); } }