alision | 4a0eb09 | 2013-05-07 13:52:03 -0400 | [diff] [blame] | 1 | package com.savoirfairelinux.sflphone.fragments; |
Adrien Béraud | 2955604 | 2013-04-26 17:35:43 +1000 | [diff] [blame] | 2 | |
Adrien Béraud | 2955604 | 2013-04-26 17:35:43 +1000 | [diff] [blame] | 3 | import android.app.Activity; |
| 4 | import android.app.Fragment; |
| 5 | import android.os.Bundle; |
| 6 | import android.view.LayoutInflater; |
| 7 | import android.view.View; |
Adrien Béraud | 2955604 | 2013-04-26 17:35:43 +1000 | [diff] [blame] | 8 | import android.view.View.OnClickListener; |
alision | 04a0018 | 2013-05-10 17:05:29 -0400 | [diff] [blame] | 9 | import android.view.ViewGroup; |
Adrien Béraud | 2955604 | 2013-04-26 17:35:43 +1000 | [diff] [blame] | 10 | import android.widget.Button; |
alision | 7f18fc8 | 2013-05-01 09:37:33 -0400 | [diff] [blame] | 11 | import android.widget.EditText; |
Adrien Béraud | 2955604 | 2013-04-26 17:35:43 +1000 | [diff] [blame] | 12 | import android.widget.TextView; |
| 13 | |
| 14 | import com.savoirfairelinux.sflphone.R; |
alision | 4a0eb09 | 2013-05-07 13:52:03 -0400 | [diff] [blame] | 15 | import com.savoirfairelinux.sflphone.client.CallActivity; |
Adrien Béraud | 2955604 | 2013-04-26 17:35:43 +1000 | [diff] [blame] | 16 | import com.savoirfairelinux.sflphone.model.SipCall; |
| 17 | |
alision | 04a0018 | 2013-05-10 17:05:29 -0400 | [diff] [blame] | 18 | public 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éraud | 2955604 | 2013-04-26 17:35:43 +1000 | [diff] [blame] | 24 | |
alision | 04a0018 | 2013-05-10 17:05:29 -0400 | [diff] [blame] | 25 | private SipCall mCall = null; |
Adrien Béraud | 71b2f81 | 2013-04-26 18:51:02 +1000 | [diff] [blame] | 26 | |
alision | 04a0018 | 2013-05-10 17:05:29 -0400 | [diff] [blame] | 27 | public void setCall(SipCall call) { |
| 28 | mCall = call; |
| 29 | if (isAdded()) |
| 30 | updateUI(); |
| 31 | } |
Adrien Béraud | 2955604 | 2013-04-26 17:35:43 +1000 | [diff] [blame] | 32 | |
alision | 04a0018 | 2013-05-10 17:05:29 -0400 | [diff] [blame] | 33 | 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 | |
alision | 7f18fc8 | 2013-05-01 09:37:33 -0400 | [diff] [blame] | 47 | @Override |
| 48 | public void onClick(View v) { |
| 49 | listener.onCalltransfered(transfer_txt.getText().toString()); |
alision | 04a0018 | 2013-05-10 17:05:29 -0400 | [diff] [blame] | 50 | |
alision | 7f18fc8 | 2013-05-01 09:37:33 -0400 | [diff] [blame] | 51 | } |
| 52 | }); |
Adrien Béraud | 71b2f81 | 2013-04-26 18:51:02 +1000 | [diff] [blame] | 53 | |
alision | 04a0018 | 2013-05-10 17:05:29 -0400 | [diff] [blame] | 54 | ((Button) v.findViewById(R.id.record_call)).setOnClickListener(new OnClickListener() { |
Adrien Béraud | 2955604 | 2013-04-26 17:35:43 +1000 | [diff] [blame] | 55 | |
alision | 04a0018 | 2013-05-10 17:05:29 -0400 | [diff] [blame] | 56 | @Override |
| 57 | public void onClick(View v) { |
| 58 | listener.onRecordCall(); |
Adrien Béraud | 1947a10 | 2013-04-26 22:05:34 +1000 | [diff] [blame] | 59 | |
alision | 04a0018 | 2013-05-10 17:05:29 -0400 | [diff] [blame] | 60 | } |
| 61 | }); |
| 62 | |
| 63 | ((Button) v.findViewById(R.id.send_msg)).setOnClickListener(new OnClickListener() { |
Adrien Béraud | 71b2f81 | 2013-04-26 18:51:02 +1000 | [diff] [blame] | 64 | |
alision | 04a0018 | 2013-05-10 17:05:29 -0400 | [diff] [blame] | 65 | @Override |
| 66 | public void onClick(View v) { |
| 67 | listener.onSendMessage(msg_txt.getText().toString()); |
Adrien Béraud | 2955604 | 2013-04-26 17:35:43 +1000 | [diff] [blame] | 68 | |
alision | 04a0018 | 2013-05-10 17:05:29 -0400 | [diff] [blame] | 69 | } |
| 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éraud | 2955604 | 2013-04-26 17:35:43 +1000 | [diff] [blame] | 119 | } |