blob: 90eae4d99d1a8ca9000adff67e1de8e09706f9e1 [file] [log] [blame]
alision4a0eb092013-05-07 13:52:03 -04001package com.savoirfairelinux.sflphone.fragments;
Adrien Béraud29556042013-04-26 17:35:43 +10002
Adrien Béraud29556042013-04-26 17:35:43 +10003import android.app.Activity;
4import android.app.Fragment;
5import android.os.Bundle;
6import android.view.LayoutInflater;
7import android.view.View;
Adrien Béraud29556042013-04-26 17:35:43 +10008import android.view.View.OnClickListener;
alision04a00182013-05-10 17:05:29 -04009import android.view.ViewGroup;
Adrien Béraud29556042013-04-26 17:35:43 +100010import android.widget.Button;
alision7f18fc82013-05-01 09:37:33 -040011import android.widget.EditText;
Adrien Béraud29556042013-04-26 17:35:43 +100012import android.widget.TextView;
13
14import com.savoirfairelinux.sflphone.R;
alision4a0eb092013-05-07 13:52:03 -040015import com.savoirfairelinux.sflphone.client.CallActivity;
Adrien Béraud29556042013-04-26 17:35:43 +100016import com.savoirfairelinux.sflphone.model.SipCall;
17
alision04a00182013-05-10 17:05:29 -040018public class OngoingCallFragment extends Fragment implements CallActivity.CallFragment, OnClickListener {
19 private CallActivity listener;
20 private Button end_btn, suspend_btn;
21 private TextView callstatus_txt;
22 private TextView calllength_txt;
23 private TextView contact_name_txt;
Adrien Béraud29556042013-04-26 17:35:43 +100024
alision04a00182013-05-10 17:05:29 -040025 private SipCall mCall = null;
Adrien Béraud71b2f812013-04-26 18:51:02 +100026
alision04a00182013-05-10 17:05:29 -040027 public void setCall(SipCall call) {
28 mCall = call;
29 if (isAdded())
30 updateUI();
31 }
Adrien Béraud29556042013-04-26 17:35:43 +100032
alision04a00182013-05-10 17:05:29 -040033 EditText transfer_txt, msg_txt;
34
35 @Override
36 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
37 ViewGroup v = (ViewGroup) inflater.inflate(R.layout.frag_call_ongoing, container, false);
38
39 transfer_txt = (EditText) v.findViewById(R.id.text_transfer);
40 msg_txt = (EditText) v.findViewById(R.id.text_message);
41 contact_name_txt = (TextView) v.findViewById(R.id.contact_name_txt);
42 end_btn = (Button) v.findViewById(R.id.end_btn);
43 suspend_btn = (Button) v.findViewById(R.id.suspend_btn);
44
45 ((Button) v.findViewById(R.id.transfer)).setOnClickListener(new OnClickListener() {
46
alision7f18fc82013-05-01 09:37:33 -040047 @Override
48 public void onClick(View v) {
49 listener.onCalltransfered(transfer_txt.getText().toString());
alision04a00182013-05-10 17:05:29 -040050
alision7f18fc82013-05-01 09:37:33 -040051 }
52 });
Adrien Béraud71b2f812013-04-26 18:51:02 +100053
alision04a00182013-05-10 17:05:29 -040054 ((Button) v.findViewById(R.id.record_call)).setOnClickListener(new OnClickListener() {
Adrien Béraud29556042013-04-26 17:35:43 +100055
alision04a00182013-05-10 17:05:29 -040056 @Override
57 public void onClick(View v) {
58 listener.onRecordCall();
Adrien Béraud1947a102013-04-26 22:05:34 +100059
alision04a00182013-05-10 17:05:29 -040060 }
61 });
62
63 ((Button) v.findViewById(R.id.send_msg)).setOnClickListener(new OnClickListener() {
Adrien Béraud71b2f812013-04-26 18:51:02 +100064
alision04a00182013-05-10 17:05:29 -040065 @Override
66 public void onClick(View v) {
67 listener.onSendMessage(msg_txt.getText().toString());
Adrien Béraud29556042013-04-26 17:35:43 +100068
alision04a00182013-05-10 17:05:29 -040069 }
70 });
71
72 callstatus_txt = (TextView) v.findViewById(R.id.callstatus_txt);
73 calllength_txt = (TextView) v.findViewById(R.id.calllength_txt);
74
75 end_btn.setOnClickListener(this);
76 suspend_btn.setOnClickListener(this);
77
78 updateUI();
79 return v;
80 }
81
82 private void updateUI() {
83 if (mCall == null)
84 return;
85 contact_name_txt.setText(mCall.getDisplayName());
86 callstatus_txt.setText(mCall.getCallStateString());
87
88 int state = mCall.getCallStateInt();
89 if (state == SipCall.CALL_STATE_HOLD) {
90 suspend_btn.setText("Resume");
91 } else {
92 suspend_btn.setText("Suspend");
93 }
94 /*
95 * switch(mCall.getCallStateInt()) { case SipCall.CALL_STATE_HOLD: suspend_btn.setText("Resume"); break; case SipCall.CALL_STATE_HOLD:
96 * suspend_btn.setText("Resume"); break;
97 *
98 * }
99 */
100 }
101
102 @Override
103 public void onAttach(Activity activity) {
104 super.onAttach(activity);
105 listener = (CallActivity) activity;
106 }
107
108 @Override
109 public void onClick(View v) {
110 if (v == end_btn) {
111 listener.onCallEnded();
112 } else if (v == suspend_btn) {
113 if (mCall.getCallStateInt() == SipCall.CALL_STATE_HOLD)
114 listener.onCallResumed();
115 else
116 listener.onCallSuspended();
117 }
118 }
Adrien Béraud29556042013-04-26 17:35:43 +1000119}