package com.safemobile.adapters; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import android.annotation.SuppressLint; import android.app.Activity; import android.content.Context; 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.Alarm; import com.safemobile.lib.R; import com.safemobile.lib.SM; @SuppressLint("SimpleDateFormat") public class AlertGridViewAdapter extends BaseAdapter { private ArrayList listAlarms; private Activity activity; private ArrayList acknowledged = new ArrayList(); public AlertGridViewAdapter(Activity activity, ArrayList listAlarms, Context context, ArrayList acknowledged) { super(); this.activity = activity; this.listAlarms = listAlarms; this.acknowledged = acknowledged; } @Override public int getCount() { return listAlarms.size(); } @Override public Alarm getItem(int position) { return listAlarms.get(position); } @Override public long getItemId(int position) { return 0; } public static class ViewHolder { public LinearLayout layoutAlert; public ImageView imageViewAlert, imageViewRecycle; public TextView textViewUnitName, textViewType, textViewDate; } @SuppressWarnings("deprecation") @SuppressLint("SimpleDateFormat") @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder view; LayoutInflater inflator = activity.getLayoutInflater(); if(convertView==null) { view = new ViewHolder(); convertView = inflator.inflate(R.layout.row_alert, null); view.textViewUnitName = (TextView) convertView.findViewById(R.id.textViewUnitName); view.textViewType = (TextView) convertView.findViewById(R.id.textViewType); view.textViewDate = (TextView) convertView.findViewById(R.id.textViewDate); view.imageViewRecycle = (ImageView) convertView.findViewById(R.id.imageViewRecycle); view.imageViewAlert = (ImageView) convertView.findViewById(R.id.imageViewAlert); view.layoutAlert = (LinearLayout) convertView.findViewById(R.id.layoutAlert); convertView.setTag(view); } else { view = (ViewHolder) convertView.getTag(); } view.textViewUnitName.setText(listAlarms.get(position).unitName); view.textViewType.setText(listAlarms.get(position).typestr); //view.txtViewDescription.setText(listAlarms.get(position).description); SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); Date date = new Date((long)listAlarms.get(position).timeGMT * 1000); if(date.getDate() == Calendar.getInstance().get(Calendar.DAY_OF_MONTH)) sdf = new SimpleDateFormat("HH:mm:ss"); else sdf = new SimpleDateFormat("MMM-dd HH:mm"); view.textViewDate.setText(String.valueOf(sdf.format(date))); // set ack/!ack image switch(acknowledged.get(position) ? 1 : 0) { case 1: ViewGroup.LayoutParams params = convertView.getLayoutParams(); if (params != null) { params.height = 0; } view.imageViewAlert.setImageResource(R.drawable.alert_off); //view.layoutAlarm.setBackgroundColor(0xffffffff); break; case 0: view.imageViewAlert.setImageResource(R.drawable.alert); //view.layoutAlarm.setBackgroundColor(0xffcccccc); break; } return convertView; } public void changeACK(int position) { SM.Debug("ACK ON START: " + position + " | " + (acknowledged.get(position) ? "true": "false")); // change in list acknowledged.remove(position); acknowledged.add(position, true); ViewHolder view = new ViewHolder(); LayoutInflater inflator = activity.getLayoutInflater(); View convertView = null; if(convertView==null) { convertView = inflator.inflate(R.layout.row_alert, null); try { view.imageViewAlert = (ImageView) convertView.findViewById(R.id.imageViewAlert); view.imageViewAlert.setImageResource(R.drawable.alert_off); convertView.setTag(view); view = (ViewHolder) convertView.getTag(); } catch (Exception e) { } } } }