blob: 27aee1f2500913e4ae5040a4f117f079c96fce4c [file] [log] [blame]
alisione2a38e12013-04-25 14:20:20 -04001package com.savoirfairelinux.sflphone.adapters;
2
alision73424b62013-04-26 11:49:18 -04003import java.text.SimpleDateFormat;
alisione2a38e12013-04-25 14:20:20 -04004import java.util.ArrayList;
alision73424b62013-04-26 11:49:18 -04005import java.util.Calendar;
alisione2a38e12013-04-25 14:20:20 -04006import java.util.HashMap;
alision73424b62013-04-26 11:49:18 -04007import java.util.Locale;
8import java.util.TimeZone;
alisione2a38e12013-04-25 14:20:20 -04009
10import android.app.Activity;
11import android.content.Context;
alision73424b62013-04-26 11:49:18 -040012import android.util.Log;
alisione2a38e12013-04-25 14:20:20 -040013import android.view.LayoutInflater;
14import android.view.View;
15import android.view.ViewGroup;
16import android.widget.BaseAdapter;
17import android.widget.ImageView;
18import android.widget.TextView;
19
alision73424b62013-04-26 11:49:18 -040020import com.savoirfairelinux.sflphone.R;
21import com.savoirfairelinux.sflphone.service.ServiceConstants;
22
23public class HistoryAdapter extends BaseAdapter {
alisione2a38e12013-04-25 14:20:20 -040024
25 Context mContext;
26 ArrayList<HashMap<String, String>> dataset;
alision73424b62013-04-26 11:49:18 -040027 private static final String TAG = HistoryAdapter.class.getSimpleName();
alisione2a38e12013-04-25 14:20:20 -040028
29 public HistoryAdapter(Activity activity, ArrayList<HashMap<String, String>> entries) {
30 mContext = activity;
31 dataset = entries;
32 }
33
34 @Override
35 public View getView(int pos, View convertView, ViewGroup arg2) {
36 View rowView = convertView;
37 HistoryView entryView = null;
38
39 if (rowView == null) {
40 // Get a new instance of the row layout view
41 LayoutInflater inflater = LayoutInflater.from(mContext);
alision73424b62013-04-26 11:49:18 -040042 rowView = inflater.inflate(R.layout.item_history, null);
alisione2a38e12013-04-25 14:20:20 -040043
44 // Hold the view objects in an object
45 // so they don't need to be re-fetched
46 entryView = new HistoryView();
47 entryView.displayName = (TextView) rowView.findViewById(R.id.display_name);
alision73424b62013-04-26 11:49:18 -040048 entryView.duration = (TextView) rowView.findViewById(R.id.duration);
49 entryView.date = (TextView) rowView.findViewById(R.id.date_start);
alisione2a38e12013-04-25 14:20:20 -040050
51 rowView.setTag(entryView);
52 } else {
53 entryView = (HistoryView) rowView.getTag();
54 }
55
56 // Transfer the stock data from the data object
57 // to the view objects
58
59// SipCall call = (SipCall) mCallList.values().toArray()[position];
60 entryView.displayName.setText(dataset.get(pos).get(ServiceConstants.HISTORY_ACCOUNT_ID_KEY));
alision73424b62013-04-26 11:49:18 -040061
62
63 long timestampEnd = Long.parseLong(dataset.get(pos).get(ServiceConstants.HISTORY_TIMESTAMP_STOP_KEY));
64 long timestampStart = Long.parseLong(dataset.get(pos).get(ServiceConstants.HISTORY_TIMESTAMP_START_KEY));
65 entryView.date.setText(getDate(timestampStart,"yyyy-MM-dd"));
66
67 long duration = timestampEnd - timestampStart;
68 entryView.duration.setText("Duration: "+duration);
alisione2a38e12013-04-25 14:20:20 -040069
70 return rowView;
71
72 }
alision73424b62013-04-26 11:49:18 -040073
74 private String getDate(long timeStamp, String format) {
75 Calendar cal = Calendar.getInstance();
76 TimeZone tz = cal.getTimeZone();
77 SimpleDateFormat objFormatter = new SimpleDateFormat(format, Locale.CANADA);
78 objFormatter.setTimeZone(tz);
79
80 Calendar objCalendar = Calendar.getInstance(tz);
81 objCalendar.setTimeInMillis(timeStamp*1000);
82 String result = objFormatter.format(objCalendar.getTime());
83 objCalendar.clear();
84 return result;
85 }
86
alisione2a38e12013-04-25 14:20:20 -040087 /*********************
88 * ViewHolder Pattern
89 *********************/
90 public class HistoryView {
alisione2a38e12013-04-25 14:20:20 -040091 protected TextView displayName;
alision73424b62013-04-26 11:49:18 -040092 protected TextView date;
93 public TextView duration;
alisione2a38e12013-04-25 14:20:20 -040094 }
alision73424b62013-04-26 11:49:18 -040095
alisione2a38e12013-04-25 14:20:20 -040096 @Override
97 public int getCount() {
alision73424b62013-04-26 11:49:18 -040098
alisione2a38e12013-04-25 14:20:20 -040099 return dataset.size();
100 }
101
102 @Override
103 public HashMap<String, String> getItem(int pos) {
104 return dataset.get(pos);
105 }
106
107 @Override
108 public long getItemId(int arg0) {
109 return 0;
110 }
111
112 public void clear() {
alision73424b62013-04-26 11:49:18 -0400113 dataset.clear();
114
alisione2a38e12013-04-25 14:20:20 -0400115 }
116
117 public void addAll(ArrayList<HashMap<String, String>> history) {
118 dataset.addAll(history);
alision73424b62013-04-26 11:49:18 -0400119
alisione2a38e12013-04-25 14:20:20 -0400120 }
121
122}