package cn.edu.buaa.act.sdp.malwaredetector.adapter; import android.app.ActivityManager; import android.content.Context; import android.content.pm.PackageManager; import android.graphics.drawable.Drawable; import android.os.SystemClock; 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 java.io.IOException; import java.util.List; import cn.edu.buaa.act.sdp.malwaredetector.R; import cn.edu.buaa.act.sdp.malwaredetector.util.AppManager; /** * Created by yaodh on 2014/11/20. */ public class ServiceAdapter extends RecyclerView.Adapter<ServiceAdapter.ViewHolder> { private Context context; private List<ActivityManager.RunningServiceInfo> list; public ServiceAdapter(Context context, List<ActivityManager.RunningServiceInfo> list) { this.context = context; this.list = list; } @Override public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) { View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.applist_item, viewGroup, false); ViewHolder viewHolder = new ViewHolder(view); return viewHolder; } @Override public void onBindViewHolder(ServiceAdapter.ViewHolder viewHolder, int i) { final ActivityManager.RunningServiceInfo entity = list.get(i); PackageManager pm = context.getPackageManager(); try { Drawable icon = pm.getApplicationIcon(entity.process); viewHolder.ivAppIcon.setImageDrawable(icon); } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); viewHolder.ivAppIcon.setImageDrawable(context.getResources().getDrawable(R.drawable.ic_launcher)); } viewHolder.tvAppName.setText(entity.process); try { long time = SystemClock.elapsedRealtime() - AppManager.getStartTime(entity.pid); viewHolder.tvAppDate.setText("" + time / 3600); } catch (IOException e) { e.printStackTrace(); } viewHolder.tvAppVersion.setText("" + entity.pid); } @Override public int getItemCount() { return list.size(); } public class ViewHolder extends RecyclerView.ViewHolder { public ImageView ivAppIcon; public TextView tvAppName; public TextView tvAppDate; public TextView tvAppVersion; public TextView tvAppSize; public View itemView; public ViewHolder(View itemView) { super(itemView); this.itemView = itemView; ivAppIcon = (ImageView) itemView.findViewById(R.id.app_icon); tvAppName = (TextView) itemView.findViewById(R.id.app_name); tvAppDate = (TextView) itemView.findViewById(R.id.app_date); tvAppVersion = (TextView) itemView.findViewById(R.id.app_version); tvAppSize = (TextView) itemView.findViewById(R.id.app_size); } } }