1st version that works
This commit is contained in:
@ -0,0 +1,231 @@
|
||||
package com.safemobile.adapters;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Hashtable;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.graphics.ColorMatrix;
|
||||
import android.graphics.ColorMatrixColorFilter;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.BaseAdapter;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.safemobile.lib.R;
|
||||
import com.safemobile.lib.SM;
|
||||
import com.safemobile.lib.Vehicle;
|
||||
|
||||
public class LiveGridViewAdapter extends BaseAdapter
|
||||
{
|
||||
private ArrayList<Vehicle> listVehicle;
|
||||
private ArrayList<Boolean> displayedVehicles;
|
||||
public ArrayList<Boolean> disabledVehicles;
|
||||
private Activity activity;
|
||||
//public String time;
|
||||
//private int[] colors = new int[] { Color.parseColor("#FFFFFF"), Color.parseColor("#D2E4FC") };
|
||||
private Hashtable<Integer, View> hash = new Hashtable<Integer, View>();
|
||||
|
||||
public LiveGridViewAdapter(Activity activity, ArrayList<Vehicle> listVehicle, Context context, ArrayList<Boolean> displayedVehicles, ArrayList<Boolean> disabledVehicles)
|
||||
{
|
||||
super();
|
||||
this.activity = activity;
|
||||
this.listVehicle = listVehicle;
|
||||
//this.time = time;
|
||||
this.displayedVehicles = displayedVehicles;
|
||||
this.disabledVehicles = disabledVehicles;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCount() {
|
||||
return listVehicle.size();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Vehicle getItem(int position) {
|
||||
return listVehicle.get(position);
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getItemId(int position) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public static class ViewHolder
|
||||
{
|
||||
public ImageView imgViewIcon, imgViewChecked;
|
||||
public TextView txtViewName;
|
||||
public LinearLayout layoutVehicle;
|
||||
}
|
||||
|
||||
@Override
|
||||
public View getView(final int position, View convertView, ViewGroup parent) {
|
||||
final ViewHolder view;
|
||||
LayoutInflater inflator = activity.getLayoutInflater();
|
||||
if(convertView==null)
|
||||
{
|
||||
view = new ViewHolder();
|
||||
convertView = inflator.inflate(R.layout.row_vehicle, null);
|
||||
|
||||
view.imgViewIcon = (ImageView) convertView.findViewById(R.id.imageViewIcon);
|
||||
view.txtViewName = (TextView) convertView.findViewById(R.id.textViewName);
|
||||
view.imgViewChecked = (ImageView) convertView.findViewById(R.id.imageViewChecked);
|
||||
|
||||
//view.linearLayoutChecked = (LinearLayout) convertView.findViewById(R.id.linearLayoutChecked);
|
||||
view.layoutVehicle = (LinearLayout) convertView.findViewById(R.id.layoutVehicle);
|
||||
convertView.setTag(view);
|
||||
}
|
||||
else
|
||||
{
|
||||
view = (ViewHolder) convertView.getTag();
|
||||
}
|
||||
|
||||
hash.put(position, convertView);
|
||||
|
||||
view.imgViewIcon.setImageResource(listVehicle.get(position).getSmallIcon());
|
||||
view.txtViewName.setText(listVehicle.get(position).name);
|
||||
// set color
|
||||
//int colorPos = position % colors.length;
|
||||
//view.layoutVehicle.setBackgroundColor(colors[colorPos]);
|
||||
switch(displayedVehicles.get(position) ? 1 : 0)
|
||||
{
|
||||
case 1:
|
||||
view.imgViewChecked.setImageResource(R.drawable.checked);
|
||||
break;
|
||||
case 0:
|
||||
view.imgViewChecked.setImageResource(R.drawable.unchecked);
|
||||
break;
|
||||
}
|
||||
|
||||
switch(disabledVehicles.get(position) ? 1 : 0)
|
||||
{
|
||||
case 1:
|
||||
view.layoutVehicle.setBackgroundColor(0xffcccccc);
|
||||
//view.imgViewIcon.setImageDrawable(convertToGrayscale(activity.getResources().getDrawable(listVehicle.get(position).getSmallIcon())));
|
||||
break;
|
||||
case 0:
|
||||
view.layoutVehicle.setBackgroundColor(0xffFFFFFF);
|
||||
//view.imgViewIcon.setImageResource(listVehicle.get(position).getSmallIcon());
|
||||
break;
|
||||
}
|
||||
|
||||
return convertView;
|
||||
}
|
||||
|
||||
public void changeDisplayed(int position, int status)
|
||||
{
|
||||
SM.Debug("DISABLE ON START: " + position + " | " + (disabledVehicles.get(position) ? "true": "false"));
|
||||
SM.Debug("DISPLAY ON START: " + position + " | " + (displayedVehicles.get(position) ? "true": "false"));
|
||||
// if vehicle is enable
|
||||
if(status == 1)
|
||||
{
|
||||
// change icon
|
||||
//view.imgViewChecked.setImageResource(R.drawable.unchecked);
|
||||
// change in list
|
||||
disabledVehicles.remove(position);
|
||||
disabledVehicles.add(position, false);
|
||||
}
|
||||
else if(status == 0)
|
||||
{
|
||||
// change icon
|
||||
//view.imgViewChecked.setImageResource(R.drawable.checked);
|
||||
// change in list
|
||||
disabledVehicles.remove(position);
|
||||
disabledVehicles.add(position, true);
|
||||
}
|
||||
// change displayed
|
||||
else if (status == -1)
|
||||
{
|
||||
// check selected position
|
||||
displayedVehicles.remove(position);
|
||||
displayedVehicles.add(position, true);
|
||||
}
|
||||
|
||||
ViewHolder view = new ViewHolder();
|
||||
LayoutInflater inflator = activity.getLayoutInflater();
|
||||
View convertView = null;
|
||||
if(convertView==null)
|
||||
{
|
||||
convertView = inflator.inflate(R.layout.row_vehicle, null);
|
||||
try
|
||||
{
|
||||
view.layoutVehicle = (LinearLayout) convertView.findViewById(R.id.layoutVehicle);
|
||||
view.imgViewIcon = (ImageView) convertView.findViewById(R.id.imageViewIcon);
|
||||
view.imgViewChecked = (ImageView) convertView.findViewById(R.id.imageViewChecked);
|
||||
convertView.setTag(view);
|
||||
|
||||
view = (ViewHolder) convertView.getTag();
|
||||
}
|
||||
catch (Exception e) {
|
||||
}
|
||||
}
|
||||
|
||||
SM.Debug("DISABLE AFTER: " + position + " | " + (disabledVehicles.get(position) ? "true": "false"));
|
||||
SM.Debug("DISPLAY AFTER: " + position + " | " + (displayedVehicles.get(position) ? "true": "false"));
|
||||
switch(disabledVehicles.get(position) ? 1 : 0)
|
||||
{
|
||||
case 1:
|
||||
view.layoutVehicle.setBackgroundColor(0xffcccccc);
|
||||
//view.imgViewIcon.setImageDrawable(convertToGrayscale(activity.getResources().getDrawable(listVehicle.get(position).getSmallIcon())));
|
||||
break;
|
||||
case 0:
|
||||
view.layoutVehicle.setBackgroundColor(0xffFFFFFF);
|
||||
//view.imgViewIcon.setImageResource(listVehicle.get(position).getSmallIcon());
|
||||
break;
|
||||
}
|
||||
|
||||
switch(displayedVehicles.get(position) ? 1 : 0)
|
||||
{
|
||||
case 1:
|
||||
view.imgViewChecked.setImageResource(R.drawable.checked);
|
||||
break;
|
||||
case 0:
|
||||
view.imgViewChecked.setImageResource(R.drawable.unchecked);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public void changeView(int position)
|
||||
{
|
||||
View con = hash.get(position);
|
||||
ViewHolder view = (ViewHolder) con.getTag();
|
||||
switch(disabledVehicles.get(position) ? 1 : 0)
|
||||
{
|
||||
case 1:
|
||||
view.layoutVehicle.setBackgroundColor(0xffcccccc);
|
||||
//view.imgViewIcon.setImageDrawable(convertToGrayscale(activity.getResources().getDrawable(listVehicle.get(position).getSmallIcon())));
|
||||
break;
|
||||
case 0:
|
||||
view.layoutVehicle.setBackgroundColor(0xffFFFFFF);
|
||||
//view.imgViewIcon.setImageResource(listVehicle.get(position).getSmallIcon());
|
||||
break;
|
||||
}
|
||||
|
||||
switch(displayedVehicles.get(position) ? 1 : 0)
|
||||
{
|
||||
case 1:
|
||||
view.imgViewChecked.setImageResource(R.drawable.checked);
|
||||
break;
|
||||
case 0:
|
||||
view.imgViewChecked.setImageResource(R.drawable.unchecked);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
protected Drawable convertToGrayscale(Drawable drawable)
|
||||
{
|
||||
ColorMatrix matrix = new ColorMatrix();
|
||||
matrix.setSaturation(0);
|
||||
|
||||
ColorMatrixColorFilter filter = new ColorMatrixColorFilter(matrix);
|
||||
|
||||
drawable.setColorFilter(filter);
|
||||
|
||||
return drawable;
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user