package com.num.ui.viewgenerator; import com.num.activities.FullDisplayActivity; import com.num.activities.GraphActivity; import com.num.database.DatabasePicker; import com.num.database.datasource.ApplicationDataSource; import com.num.database.datasource.LatencyDataSource; import com.num.database.mapping.ApplicationMapping; import com.num.database.mapping.LatencyMapping; import com.num.models.Application; import com.num.models.Model; import com.num.models.Row; import com.num.utils.DeviceUtil; import com.num.R; import com.num.Values; import android.content.Context; import android.content.Intent; import android.view.LayoutInflater; import android.view.View; import android.widget.LinearLayout; import android.widget.ProgressBar; import android.widget.TextView; import android.widget.ImageView; public class ApplicationViewGenerator extends ViewGenerator{ ViewHolder holder; Application app; long totalData; public ApplicationViewGenerator(Application app,long totalData) { super(R.layout.cell_view_application); this.app = app; this.totalData = totalData; holder = new ViewHolder(); } @Override public ViewHolder fillViewHolder(View view, LayoutInflater inflater) { holder.first = (TextView) view.findViewById(R.id.key); holder.second = (TextView) view.findViewById(R.id.data); holder.progress = (ProgressBar) view.findViewById(R.id.value); holder.imageview = (ImageView) view.findViewById(R.id.icon); holder.third = (TextView) view.findViewById(R.id.percentage); holder.linear = (LinearLayout) view.findViewById(R.id.main); return holder; } @Override public void populateView(Row item,final Context context,View view) { final Values values = (Values) context.getApplicationContext(); holder.first.setText(app.getName()); holder.progress.setProgress(getValue(app.getTotal())); holder.second.setText(getOutput(app.getTotal())); holder.imageview.setImageDrawable(app.getAppIcon()); holder.third.setText(100*app.getTotal()/totalData + "%"); holder.linear.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { DatabasePicker picker = values.createPicker(new ApplicationDataSource(context)); picker.setTitle("Usage Graph"); picker.filterBy(ApplicationMapping.COLUMN_DIRECTION,"total","Type"); picker.filterBy(ApplicationMapping.COLUMN_NAME,app.getName(),"Application"); picker.setDisplayOutlier(false); Intent myIntent = new Intent(context, GraphActivity.class); context.startActivity(myIntent); } }); } private String getOutput(long val){ int total = (int) (val/1024/1024); if(total>1) return (int)Math.max(total,5) + " MB"; else return "< 1 MB"; } private int getValue(long val){ int total = (int) (val/1024/1024); return (int)Math.min(Math.max(total,5), 100); } }