blob: e0fd151b157f3f80133179014f6364c0e4331d6c [file] [log] [blame]
alisiond9e29442013-04-17 16:10:18 -04001package com.savoirfairelinux.sflphone.fragments;
2
alisione2a38e12013-04-25 14:20:20 -04003import java.util.ArrayList;
4import java.util.HashMap;
5
6import android.app.Activity;
7import android.app.ListFragment;
alisiond9e29442013-04-17 16:10:18 -04008import android.os.Bundle;
alisione2a38e12013-04-25 14:20:20 -04009import android.os.RemoteException;
10import android.util.Log;
alisiond9e29442013-04-17 16:10:18 -040011import android.view.LayoutInflater;
12import android.view.View;
13import android.view.ViewGroup;
alisiond9e29442013-04-17 16:10:18 -040014
alisione2a38e12013-04-25 14:20:20 -040015import com.savoirfairelinux.sflphone.R;
16import com.savoirfairelinux.sflphone.adapters.HistoryAdapter;
17import com.savoirfairelinux.sflphone.model.SipCall;
18import com.savoirfairelinux.sflphone.service.ISipService;
alisiond9e29442013-04-17 16:10:18 -040019
alisione2a38e12013-04-25 14:20:20 -040020public class HistoryFragment extends ListFragment {
21
22 private static final String TAG = HistoryFragment.class.getSimpleName();
alisiond9e29442013-04-17 16:10:18 -040023 public static final String ARG_SECTION_NUMBER = "section_number";
alisione2a38e12013-04-25 14:20:20 -040024 private boolean isReady;
25 private ISipService service;
26 HistoryAdapter mAdapter;
27 private Callbacks mCallbacks = sDummyCallbacks;
28 /**
29 * A dummy implementation of the {@link Callbacks} interface that does nothing. Used only when this fragment is not attached to an activity.
30 */
31 private static Callbacks sDummyCallbacks = new Callbacks() {
32 @Override
33 public void onCallSelected(SipCall c) {
34 }
35
36 @Override
37 public ISipService getService() {
38 Log.i(TAG, "Dummy");
39 return null;
40 }
41
42 };
43
44 public interface Callbacks {
45 public void onCallSelected(SipCall c);
46
47 public ISipService getService();
48
49 }
50
51 @Override
52 public void onAttach(Activity activity) {
53 super.onAttach(activity);
54 isReady = false;
55 if (!(activity instanceof Callbacks)) {
56 throw new IllegalStateException("Activity must implement fragment's callbacks.");
57 }
58
59 mCallbacks = (Callbacks) activity;
60 }
61
62 @Override
63 public void onDetach() {
64 super.onDetach();
65 mCallbacks = sDummyCallbacks;
66 }
67
68 @Override
69 public void onCreate(Bundle savedInstanceState) {
70 super.onCreate(savedInstanceState);
71 // mAdapter = new HistoryAdapter(getActivity(),new ArrayList<HashMap<String, String>>());
72 }
alisiond9e29442013-04-17 16:10:18 -040073
74 @Override
75 public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) {
alisione2a38e12013-04-25 14:20:20 -040076 View inflatedView = inflater.inflate(R.layout.frag_history, parent, false);
77 isReady = true;
78 if (isReady) {
79 Log.i(TAG, "C PRET");
80 }
81 return inflatedView;
82 }
83
84 @Override
85 public void onStart() {
86 super.onStart();
87 Log.w(TAG, "onStart");
88 if (mCallbacks.getService() != null) {
89
90 Log.i(TAG, "oncreateview");
91 onServiceSipBinded(mCallbacks.getService());
92 }
93 }
94
95 /**
96 * Called by activity to pass a reference to sipservice to Fragment.
97 *
98 * @param isip
99 */
100 public void onServiceSipBinded(ISipService isip) {
101 Log.w(TAG, "onServiceSipBinded");
102 if (isReady) {
103 service = isip;
104 ArrayList<HashMap<String, String>> history;
105 try {
106 history = (ArrayList<HashMap<String, String>>) mCallbacks.getService().getHistory();
107 Log.i(TAG, "history size:" + history.size());
108 mAdapter = new HistoryAdapter(getActivity(), history);
109 getListView().setAdapter(mAdapter);
110 mAdapter.notifyDataSetChanged();
111
112 } catch (RemoteException e) {
113 Log.i(TAG, e.toString());
114 }
115 } else {
116 Log.w(TAG, "nor Ready");
117 }
118
alisiond9e29442013-04-17 16:10:18 -0400119 }
120}