* #25117 Better call management
diff --git a/src/com/savoirfairelinux/sflphone/client/CallActivity.java b/src/com/savoirfairelinux/sflphone/client/CallActivity.java
index 785a436..e8d87de 100644
--- a/src/com/savoirfairelinux/sflphone/client/CallActivity.java
+++ b/src/com/savoirfairelinux/sflphone/client/CallActivity.java
@@ -33,6 +33,7 @@
package com.savoirfairelinux.sflphone.client;
+import java.util.HashMap;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
@@ -71,6 +72,8 @@
private ExecutorService infos_fetcher = Executors.newCachedThreadPool();
CallReceiver receiver;
+
+ SlidingPaneLayout slidingPaneLayout;
CallListFragment mCallsFragment;
CallFragment mCurrentCallFragment;
@@ -99,7 +102,7 @@
getFragmentManager().beginTransaction().replace(R.id.calllist_pane, mCallsFragment).commit();
- final SlidingPaneLayout slidingPaneLayout = (SlidingPaneLayout) findViewById(R.id.slidingpanelayout);
+ slidingPaneLayout = (SlidingPaneLayout) findViewById(R.id.slidingpanelayout);
slidingPaneLayout.setPanelSlideListener(new SlidingPaneLayout.PanelSlideListener() {
@Override
@@ -215,6 +218,20 @@
// CallFragment fr = mCurrentCallFragment;
mCallsFragment.update();
+
+ mCurrentCallFragment.changeCallState(callID, newState);
+
+ HashMap<String, SipCall> map;
+ try {
+ map = (HashMap<String, SipCall>) service.getCallList();
+ if(map.size() == 0){
+ finish();
+ }
+ } catch (RemoteException e) {
+ Log.e(TAG, e.toString());
+ }
+
+
// if (newState.equals("INCOMING")) {
// fr.changeCallState(SipCall.state.CALL_STATE_INCOMING);
@@ -278,6 +295,8 @@
b.putParcelable("CallInfo", call);
mCurrentCallFragment.setArguments(b);
getFragmentManager().beginTransaction().replace(R.id.ongoingcall_pane, mCurrentCallFragment).commit();
+
+ slidingPaneLayout.openPane();
}