blob: b018bbfb9b46cf54f666d3c0af4883058b98323b [file] [log] [blame]
Alexandre Savard14323be2012-10-24 10:02:13 -04001/*
alisionb1763882013-06-18 17:30:51 -04002 * Copyright (C) 2004-2013 Savoir-Faire Linux Inc.
Alexandre Savard14323be2012-10-24 10:02:13 -04003 *
4 * Author: Alexandre Savard <alexandre.savard@savoirfairelinux.com>
Adrien Béraud71b2f812013-04-26 18:51:02 +10005 * Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
alisionfde875f2013-05-28 17:01:54 -04006 * Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
Alexandre Savard14323be2012-10-24 10:02:13 -04007 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 3 of the License, or
11 * (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to the Free Software
20 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
21 *
22 * Additional permission under GNU GPL version 3 section 7:
23 *
24 * If you modify this program, or any covered work, by linking or
25 * combining it with the OpenSSL project's OpenSSL library (or a
26 * modified version of that library), containing parts covered by the
27 * terms of the OpenSSL or SSLeay licenses, Savoir-Faire Linux Inc.
28 * grants you additional permission to convey the resulting work.
29 * Corresponding Source for a non-source form of such a combination
30 * shall include the source code for the parts of OpenSSL used as well
31 * as that of the covered work.
32 */
33
Alexandre Lision064e1e02013-10-01 16:18:42 -040034package org.sflphone.client;
Alexandre Savard14323be2012-10-24 10:02:13 -040035
alision85704182013-05-29 15:23:03 -040036import java.util.HashMap;
Adrien Béraud33268882013-05-18 03:41:15 +100037
Alexandre Lision064e1e02013-10-01 16:18:42 -040038import org.sflphone.R;
39import org.sflphone.fragments.CallFragment;
Alexandre Lision064e1e02013-10-01 16:18:42 -040040import org.sflphone.interfaces.CallInterface;
Alexandre Lisiond588bff2013-10-08 12:43:01 -040041import org.sflphone.model.Account;
Alexandre Lision064e1e02013-10-01 16:18:42 -040042import org.sflphone.model.CallContact;
43import org.sflphone.model.Conference;
44import org.sflphone.model.SipCall;
Alexandre Lision064e1e02013-10-01 16:18:42 -040045import org.sflphone.receivers.CallReceiver;
46import org.sflphone.service.CallManagerCallBack;
47import org.sflphone.service.ISipService;
48import org.sflphone.service.SipService;
49import org.sflphone.views.CallPaneLayout;
50
Alexandre Savard14323be2012-10-24 10:02:13 -040051import android.app.Activity;
Alexandre Savard6d54bbc2012-10-24 11:04:23 -040052import android.content.ComponentName;
alision17052d42013-04-22 10:39:38 -040053import android.content.Context;
Alexandre Savard6d54bbc2012-10-24 11:04:23 -040054import android.content.Intent;
alision84813a12013-05-27 17:40:39 -040055import android.content.IntentFilter;
Alexandre Savard6d54bbc2012-10-24 11:04:23 -040056import android.content.ServiceConnection;
Alexandre Lision0edf18c2013-09-23 17:35:50 -040057import android.graphics.PixelFormat;
alision55c36cb2013-06-14 14:57:38 -040058import android.net.Uri;
Alexandre Savard14323be2012-10-24 10:02:13 -040059import android.os.Bundle;
Alexandre Lision0c384512013-09-17 17:15:57 -040060import android.os.Handler;
Alexandre Savard6d54bbc2012-10-24 11:04:23 -040061import android.os.IBinder;
alision85992112013-05-29 12:18:08 -040062import android.os.RemoteException;
Alexandre Lision0c384512013-09-17 17:15:57 -040063import android.os.SystemClock;
alisionfde875f2013-05-28 17:01:54 -040064import android.support.v4.widget.SlidingPaneLayout;
Alexandre Savard6d54bbc2012-10-24 11:04:23 -040065import android.util.Log;
Alexandre Lision64dc8c02013-09-25 15:32:25 -040066import android.view.KeyEvent;
alisionfde875f2013-05-28 17:01:54 -040067import android.view.View;
Alexandre Lision0edf18c2013-09-23 17:35:50 -040068import android.view.Window;
Adrien Béraud33268882013-05-18 03:41:15 +100069import android.widget.Toast;
Alexandre Savard14323be2012-10-24 10:02:13 -040070
Alexandre Lision68855472013-10-10 16:20:46 -040071public class CallActivity extends Activity implements CallInterface, CallFragment.Callbacks{
alision55c36cb2013-06-14 14:57:38 -040072 static final String TAG = "CallActivity";
73 private ISipService service;
alision84813a12013-05-27 17:40:39 -040074
alision55c36cb2013-06-14 14:57:38 -040075 CallReceiver receiver;
alision85992112013-05-29 12:18:08 -040076
alision55c36cb2013-06-14 14:57:38 -040077 CallPaneLayout slidingPaneLayout;
Adrien Béraud33268882013-05-18 03:41:15 +100078
Alexandre Lision0edf18c2013-09-23 17:35:50 -040079 // CallListFragment mCallsFragment;
alision55c36cb2013-06-14 14:57:38 -040080 CallFragment mCurrentCallFragment;
Alexandre Lision0edf18c2013-09-23 17:35:50 -040081 // private boolean fragIsChanging;
Alexandre Lision1a9e3b12013-09-16 11:06:07 -040082
Alexandre Lisionf1850c02013-09-23 14:19:34 -040083 /* result code sent in case of call failure */
Alexandre Lisionc51ccb12013-09-11 16:00:30 -040084 public static int RESULT_FAILURE = -10;
Alexandre Savard4f42ade2012-10-24 18:03:31 -040085
alision55c36cb2013-06-14 14:57:38 -040086 @Override
87 protected void onCreate(Bundle savedInstanceState) {
88 super.onCreate(savedInstanceState);
89 setContentView(R.layout.activity_call_layout);
Alexandre Savard4f42ade2012-10-24 18:03:31 -040090
alision55c36cb2013-06-14 14:57:38 -040091 receiver = new CallReceiver(this);
Adrien Béraud33268882013-05-18 03:41:15 +100092
Alexandre Lision0edf18c2013-09-23 17:35:50 -040093 // mCallsFragment = new CallListFragment();
Adrien Béraud33268882013-05-18 03:41:15 +100094
Alexandre Lision0edf18c2013-09-23 17:35:50 -040095 // getFragmentManager().beginTransaction().replace(R.id.calllist_pane, mCallsFragment).commit();
alision85992112013-05-29 12:18:08 -040096
alision55c36cb2013-06-14 14:57:38 -040097 slidingPaneLayout = (CallPaneLayout) findViewById(R.id.slidingpanelayout);
alisiondf1dac92013-06-27 17:35:53 -040098
alision55c36cb2013-06-14 14:57:38 -040099 slidingPaneLayout.setPanelSlideListener(new SlidingPaneLayout.PanelSlideListener() {
alision84813a12013-05-27 17:40:39 -0400100
alision55c36cb2013-06-14 14:57:38 -0400101 @Override
102 public void onPanelSlide(View view, float offSet) {
103 }
alisionfde875f2013-05-28 17:01:54 -0400104
alision55c36cb2013-06-14 14:57:38 -0400105 @Override
106 public void onPanelOpened(View view) {
alisionfde875f2013-05-28 17:01:54 -0400107
alision55c36cb2013-06-14 14:57:38 -0400108 switch (view.getId()) {
109 case R.id.calllist_pane:
110 // getFragmentManager().findFragmentById(R.id.calllist_pane).setHasOptionsMenu(true);
111 // getFragmentManager().findFragmentById(R.id.ongoingcall_pane).setHasOptionsMenu(false);
112 break;
113 default:
114 break;
115 }
116 }
alisionfde875f2013-05-28 17:01:54 -0400117
alision55c36cb2013-06-14 14:57:38 -0400118 @Override
119 public void onPanelClosed(View view) {
alisionfde875f2013-05-28 17:01:54 -0400120
alision55c36cb2013-06-14 14:57:38 -0400121 }
122 });
alisionfde875f2013-05-28 17:01:54 -0400123
alision55c36cb2013-06-14 14:57:38 -0400124 Intent intent = new Intent(this, SipService.class);
125 bindService(intent, mConnection, Context.BIND_AUTO_CREATE);
alision55c36cb2013-06-14 14:57:38 -0400126 }
alisiond45da712013-05-30 09:18:49 -0400127
alision55c36cb2013-06-14 14:57:38 -0400128 /* activity gets back to the foreground and user input */
129 @Override
130 protected void onResume() {
131 Log.i(TAG, "onResume");
132 IntentFilter intentFilter = new IntentFilter();
133 intentFilter.addAction(CallManagerCallBack.INCOMING_CALL);
134 intentFilter.addAction(CallManagerCallBack.INCOMING_TEXT);
135 intentFilter.addAction(CallManagerCallBack.CALL_STATE_CHANGED);
alisiondf1dac92013-06-27 17:35:53 -0400136 intentFilter.addAction(CallManagerCallBack.CONF_CREATED);
137 intentFilter.addAction(CallManagerCallBack.CONF_REMOVED);
138 intentFilter.addAction(CallManagerCallBack.CONF_CHANGED);
139 intentFilter.addAction(CallManagerCallBack.RECORD_STATE_CHANGED);
alision55c36cb2013-06-14 14:57:38 -0400140 registerReceiver(receiver, intentFilter);
Alexandre Lision0c384512013-09-17 17:15:57 -0400141
alision55c36cb2013-06-14 14:57:38 -0400142 super.onResume();
143 }
alisiond45da712013-05-30 09:18:49 -0400144
Alexandre Lision0edf18c2013-09-23 17:35:50 -0400145 @Override
146 public void onAttachedToWindow() {
147 super.onAttachedToWindow();
148 Window window = getWindow();
149 window.setFormat(PixelFormat.RGBA_8888);
150 }
151
Alexandre Lision0c384512013-09-17 17:15:57 -0400152 private Handler mHandler = new Handler();
153 private Runnable mUpdateTimeTask = new Runnable() {
Adrien Béraud9360f242013-09-19 11:07:42 +1000154 @Override
Alexandre Lision0c384512013-09-17 17:15:57 -0400155 public void run() {
Alexandre Lision0edf18c2013-09-23 17:35:50 -0400156 if (mCurrentCallFragment != null)
Alexandre Lisionfd7a88f2013-09-18 10:03:17 -0400157 mCurrentCallFragment.updateTime();
Alexandre Lision0edf18c2013-09-23 17:35:50 -0400158 // mCallsFragment.update();
Alexandre Lision0c384512013-09-17 17:15:57 -0400159
Adrien Béraud9360f242013-09-19 11:07:42 +1000160 mHandler.postAtTime(this, SystemClock.uptimeMillis() + 1000);
Alexandre Lision0c384512013-09-17 17:15:57 -0400161 }
162 };
163
alision55c36cb2013-06-14 14:57:38 -0400164 /* activity no more in foreground */
165 @Override
166 protected void onPause() {
167 super.onPause();
Alexandre Lision0c384512013-09-17 17:15:57 -0400168 mHandler.removeCallbacks(mUpdateTimeTask);
alision55c36cb2013-06-14 14:57:38 -0400169 }
Alexandre Lision40954dc2013-10-09 15:24:03 -0400170
Alexandre Lision64dc8c02013-09-25 15:32:25 -0400171 @Override
172 public boolean onKeyUp(int keyCode, KeyEvent event) {
Alexandre Lision40954dc2013-10-09 15:24:03 -0400173
174 if (keyCode == KeyEvent.KEYCODE_BACK) {
Alexandre Lision31f46fc2013-09-26 11:19:54 -0400175 return super.onKeyUp(keyCode, event);
176 }
Alexandre Lision64dc8c02013-09-25 15:32:25 -0400177 mCurrentCallFragment.onKeyUp(keyCode, event);
178 return true;
179 }
Alexandre Savard6d54bbc2012-10-24 11:04:23 -0400180
alision55c36cb2013-06-14 14:57:38 -0400181 @Override
182 protected void onDestroy() {
alision55c36cb2013-06-14 14:57:38 -0400183 unregisterReceiver(receiver);
alision55c36cb2013-06-14 14:57:38 -0400184 unbindService(mConnection);
alision55c36cb2013-06-14 14:57:38 -0400185 super.onDestroy();
186 }
Adrien Béraud33268882013-05-18 03:41:15 +1000187
alision55c36cb2013-06-14 14:57:38 -0400188 /** Defines callbacks for service binding, passed to bindService() */
189 private ServiceConnection mConnection = new ServiceConnection() {
190 @Override
191 public void onServiceConnected(ComponentName className, IBinder binder) {
192 service = ISipService.Stub.asInterface(binder);
alisiondf1dac92013-06-27 17:35:53 -0400193
alision55c36cb2013-06-14 14:57:38 -0400194 mCurrentCallFragment = new CallFragment();
Adrien Béraud9360f242013-09-19 11:07:42 +1000195
alision55c36cb2013-06-14 14:57:38 -0400196 Uri u = getIntent().getData();
197 if (u != null) {
198 CallContact c = CallContact.ContactBuilder.buildUnknownContact(u.getSchemeSpecificPart());
199 try {
200 service.destroyNotification();
Alexandre Lisionee2494d2013-10-09 17:14:00 -0400201
202 String accountID = (String)service.getAccountList().get(1);
203 Account acc= new Account(accountID, (HashMap<String, String>) service.getAccountDetails(accountID));
204
alision907bde72013-06-20 14:40:37 -0400205 SipCall call = SipCall.SipCallBuilder.getInstance().startCallCreation().setContact(c)
Alexandre Lisionee2494d2013-10-09 17:14:00 -0400206 .setAccount(acc).setCallType(SipCall.state.CALL_TYPE_OUTGOING).build();
alisiondf1dac92013-06-27 17:35:53 -0400207 Conference tmp = new Conference("-1");
208 tmp.getParticipants().add(call);
alision55c36cb2013-06-14 14:57:38 -0400209 Bundle b = new Bundle();
alisiondf1dac92013-06-27 17:35:53 -0400210 b.putParcelable("conference", tmp);
alision1005ba12013-06-19 13:52:44 -0400211 Log.i(TAG, "Arguments set");
alision55c36cb2013-06-14 14:57:38 -0400212 mCurrentCallFragment.setArguments(b);
213 } catch (RemoteException e) {
alision55c36cb2013-06-14 14:57:38 -0400214 e.printStackTrace();
215 } catch (Exception e) {
alision55c36cb2013-06-14 14:57:38 -0400216 e.printStackTrace();
217 }
alision55c36cb2013-06-14 14:57:38 -0400218 } else {
alisiondf1dac92013-06-27 17:35:53 -0400219 if (getIntent().getBooleanExtra("resuming", false)) {
220
221 Bundle b = new Bundle();
Adrien Béraud9360f242013-09-19 11:07:42 +1000222 b.putParcelable("conference", getIntent().getParcelableExtra("conference"));
Alexandre Lision1a9e3b12013-09-16 11:06:07 -0400223 mCurrentCallFragment.setArguments(b);
224
alisiondf1dac92013-06-27 17:35:53 -0400225 } else {
226 mCurrentCallFragment.setArguments(getIntent().getExtras());
227 }
228
alision55c36cb2013-06-14 14:57:38 -0400229 }
Alexandre Savard6d54bbc2012-10-24 11:04:23 -0400230
Alexandre Lision0edf18c2013-09-23 17:35:50 -0400231 // slidingPaneLayout.setCurFragment(mCurrentCallFragment);
alision55c36cb2013-06-14 14:57:38 -0400232 getIntent().getExtras();
Alexandre Lision0edf18c2013-09-23 17:35:50 -0400233 // mCallsFragment.update();
alision55c36cb2013-06-14 14:57:38 -0400234 getFragmentManager().beginTransaction().replace(R.id.ongoingcall_pane, mCurrentCallFragment).commit();
alisiond8c83882013-05-17 17:00:42 -0400235
alision55c36cb2013-06-14 14:57:38 -0400236 }
Adrien Béraud6bbce912013-05-24 00:48:13 +1000237
alision55c36cb2013-06-14 14:57:38 -0400238 @Override
239 public void onServiceDisconnected(ComponentName arg0) {
240 }
241 };
Adrien Béraud6bbce912013-05-24 00:48:13 +1000242
alision55c36cb2013-06-14 14:57:38 -0400243 @Override
244 public void incomingCall(Intent call) {
Alexandre Savarde41f5212012-10-26 14:23:50 -0400245
Alexandre Lision0edf18c2013-09-23 17:35:50 -0400246 // mCallsFragment.update();
Alexandre Savarddf544262012-10-25 14:24:08 -0400247
alision55c36cb2013-06-14 14:57:38 -0400248 }
alision84813a12013-05-27 17:40:39 -0400249
alision55c36cb2013-06-14 14:57:38 -0400250 @Override
251 public void callStateChanged(Intent callState) {
alision84813a12013-05-27 17:40:39 -0400252
alision55c36cb2013-06-14 14:57:38 -0400253 Bundle b = callState.getBundleExtra("com.savoirfairelinux.sflphone.service.newstate");
254 processCallStateChangedSignal(b.getString("CallID"), b.getString("State"));
alision84813a12013-05-27 17:40:39 -0400255
alision55c36cb2013-06-14 14:57:38 -0400256 }
alision84813a12013-05-27 17:40:39 -0400257
Alexandre Lision0edf18c2013-09-23 17:35:50 -0400258 @SuppressWarnings("unchecked")
259 // No proper solution with HashMap runtime cast
alision55c36cb2013-06-14 14:57:38 -0400260 public void processCallStateChangedSignal(String callID, String newState) {
261 /*
262 * Bundle bundle = intent.getBundleExtra("com.savoirfairelinux.sflphone.service.newstate"); String callID = bundle.getString("CallID"); String
263 * newState = bundle.getString("State");
264 */
265 // CallFragment fr = mCurrentCallFragment;
Alexandre Lision1a9e3b12013-09-16 11:06:07 -0400266
Alexandre Lision0edf18c2013-09-23 17:35:50 -0400267 // mCallsFragment.update();
alision84813a12013-05-27 17:40:39 -0400268
Alexandre Lision4fb22622013-10-21 16:26:33 -0400269 if (mCurrentCallFragment != null) {
Alexandre Lisiona764c682013-09-09 10:02:07 -0400270 mCurrentCallFragment.changeCallState(callID, newState);
Alexandre Lision4fb22622013-10-21 16:26:33 -0400271
272 }
Adrien Béraud29556042013-04-26 17:35:43 +1000273
alision55c36cb2013-06-14 14:57:38 -0400274 try {
alisiondf1dac92013-06-27 17:35:53 -0400275 HashMap<String, SipCall> callMap = (HashMap<String, SipCall>) service.getCallList();
276 HashMap<String, Conference> confMap = (HashMap<String, Conference>) service.getConferenceList();
Alexandre Lision3c6b7102013-09-16 16:56:46 -0400277
Alexandre Lision5ed2c972013-10-11 15:36:33 -0400278// Log.i(TAG, "call size"+callMap.size());
279// Log.i(TAG, "call size"+confMap.size());
280// if (callMap.size() == 0 && confMap.size() == 0) {
281// finish();
282// }
283//
284// if (callMap.size() > 0) {
285// // ArrayList<SipCall> calls = new ArrayList<SipCall>(callMap.values());
286// // HashMap<String, String> details = (HashMap<String, String>) service.getCallDetails(calls.get(0).getCallId());
287//
288// }
alision55c36cb2013-06-14 14:57:38 -0400289 } catch (RemoteException e) {
Alexandre Lision3c6b7102013-09-16 16:56:46 -0400290
alision55c36cb2013-06-14 14:57:38 -0400291 Log.e(TAG, e.toString());
292 }
Adrien Béraud29556042013-04-26 17:35:43 +1000293
alision55c36cb2013-06-14 14:57:38 -0400294 Log.w(TAG, "processCallStateChangedSignal " + newState);
Adrien Béraud71b2f812013-04-26 18:51:02 +1000295
alision55c36cb2013-06-14 14:57:38 -0400296 }
297
298 @Override
299 public void incomingText(Intent msg) {
300 Bundle b = msg.getBundleExtra("com.savoirfairelinux.sflphone.service.newtext");
301
alisiona2a2da12013-06-05 15:58:39 -0400302 Toast.makeText(this, b.getString("From") + " : " + b.getString("Msg"), Toast.LENGTH_LONG).show();
Adrien Béraud71b2f812013-04-26 18:51:02 +1000303
alision55c36cb2013-06-14 14:57:38 -0400304 }
alision7f18fc82013-05-01 09:37:33 -0400305
alision55c36cb2013-06-14 14:57:38 -0400306 @Override
307 public ISipService getService() {
308 return service;
309 }
alision04a00182013-05-10 17:05:29 -0400310
Alexandre Lision68855472013-10-10 16:20:46 -0400311// @Override
312// public void {
313//
314// if (mCurrentCallFragment == null || mCurrentCallFragment.getBubbleView() == null) {
315// return;
316// }
317// mHandler.removeCallbacks(mUpdateTimeTask);
318// mCurrentCallFragment.getBubbleView().stopThread();
319// mCurrentCallFragment = new CallFragment();
320// Bundle b = new Bundle();
321//
322// b.putParcelable("conference", conf);
323// mCurrentCallFragment.setArguments(b);
324//
325// // if (calls.size() == 1) {
326// // onCallResumed(calls.get(0));
327// // }
328//
329// // slidingPaneLayout.setCurFragment(mCurrentCallFragment);
330// slidingPaneLayout.closePane();
331// // fragIsChanging = true;
332//
333// }
alision85992112013-05-29 12:18:08 -0400334
alision34673e62013-06-25 14:40:07 -0400335
alision85992112013-05-29 12:18:08 -0400336
alisiondf1dac92013-06-27 17:35:53 -0400337
alision85992112013-05-29 12:18:08 -0400338
alision85992112013-05-29 12:18:08 -0400339
alision55c36cb2013-06-14 14:57:38 -0400340 @Override
341 public void onBackPressed() {
342 super.onBackPressed();
343 Intent launchHome = new Intent(this, SFLPhoneHomeActivity.class);
344 launchHome.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
Alexandre Lision5ed2c972013-10-11 15:36:33 -0400345 launchHome.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
alision55c36cb2013-06-14 14:57:38 -0400346 startActivity(launchHome);
347 }
alision85992112013-05-29 12:18:08 -0400348
alisiond45da712013-05-30 09:18:49 -0400349
alision806e18e2013-06-21 15:30:17 -0400350 @Override
351 public void confCreated(Intent intent) {
Alexandre Lision0edf18c2013-09-23 17:35:50 -0400352 // mCallsFragment.update();
alision34673e62013-06-25 14:40:07 -0400353
alision806e18e2013-06-21 15:30:17 -0400354 }
355
356 @Override
357 public void confRemoved(Intent intent) {
Alexandre Lision0edf18c2013-09-23 17:35:50 -0400358 // mCallsFragment.update();
alision806e18e2013-06-21 15:30:17 -0400359 }
360
361 @Override
362 public void confChanged(Intent intent) {
Alexandre Lision0edf18c2013-09-23 17:35:50 -0400363 // mCallsFragment.update();
alision806e18e2013-06-21 15:30:17 -0400364 }
365
alisiondf1dac92013-06-27 17:35:53 -0400366 @Override
367 public void recordingChanged(Intent intent) {
Alexandre Lision0edf18c2013-09-23 17:35:50 -0400368 // mCallsFragment.update();
alisiondf1dac92013-06-27 17:35:53 -0400369 }
370
Alexandre Lisionccf0c932013-10-10 16:24:41 -0400371 @Override
372 public void replaceCurrentCallDisplayed() {
373 mHandler.removeCallbacks(mUpdateTimeTask);
374 mCurrentCallFragment.getBubbleView().stopThread();
375 getFragmentManager().beginTransaction().remove(mCurrentCallFragment).commit();
376 mCurrentCallFragment = null;
Alexandre Lision5ed2c972013-10-11 15:36:33 -0400377 finish();
Alexandre Lisionccf0c932013-10-10 16:24:41 -0400378
379 }
alision806e18e2013-06-21 15:30:17 -0400380
Alexandre Lision0c384512013-09-17 17:15:57 -0400381 @Override
382 public void startTimer() {
383 mHandler.postDelayed(mUpdateTimeTask, 0);
384 }
385
Alexandre Lision40954dc2013-10-09 15:24:03 -0400386 public void onCallSuspended() {
387 try {
388 if (mCurrentCallFragment.getConference().hasMultipleParticipants()) {
389 service.holdConference(mCurrentCallFragment.getConference().getId());
390 } else {
391 service.hold(mCurrentCallFragment.getConference().getParticipants().get(0).getCallId());
392 }
393 } catch (RemoteException e) {
Alexandre Lision40954dc2013-10-09 15:24:03 -0400394 e.printStackTrace();
395 }
396 }
Alexandre Lision68855472013-10-10 16:20:46 -0400397
398 @Override
399 public void slideChatScreen() {
400 slidingPaneLayout.openPane();
401 }
Alexandre Savard14323be2012-10-24 10:02:13 -0400402}