* #25270 Overall improvements of transitions between calls and call actions
* #25117 Refactor and stability
diff --git a/src/com/savoirfairelinux/sflphone/service/SipService.java b/src/com/savoirfairelinux/sflphone/service/SipService.java
index 94afa54..3ab830e 100644
--- a/src/com/savoirfairelinux/sflphone/service/SipService.java
+++ b/src/com/savoirfairelinux/sflphone/service/SipService.java
@@ -114,6 +114,7 @@
callFilter.addAction(CallManagerCallBack.CONF_CREATED);
callFilter.addAction(CallManagerCallBack.CONF_REMOVED);
callFilter.addAction(CallManagerCallBack.CONF_CHANGED);
+ callFilter.addAction(CallManagerCallBack.RECORD_STATE_CHANGED);
receiver = new IncomingReceiver(this, mBinder);
LocalBroadcastManager.getInstance(this).registerReceiver(receiver, callFilter);
@@ -771,28 +772,29 @@
}
@Override
- public List getConferenceList() throws RemoteException {
- class ConfList extends SipRunnableWithReturn {
- @Override
- protected StringVect doRun() throws SameThreadException {
- Log.i(TAG, "SipService.getConferenceList() thread running...");
- return callManagerJNI.getConferenceList();
- }
- }
- ;
- ConfList runInstance = new ConfList();
- getExecutor().execute(runInstance);
- while (!runInstance.isDone()) {
- // Log.w(TAG, "Waiting for getConferenceList");
- }
- StringVect swigvect = (StringVect) runInstance.getVal();
-
- ArrayList<String> nativelist = new ArrayList<String>();
-
- for (int i = 0; i < swigvect.size(); i++)
- nativelist.add(swigvect.get(i));
-
- return nativelist;
+ public HashMap<String, Conference> getConferenceList() throws RemoteException {
+// class ConfList extends SipRunnableWithReturn {
+// @Override
+// protected StringVect doRun() throws SameThreadException {
+// Log.i(TAG, "SipService.getConferenceList() thread running...");
+// return callManagerJNI.getConferenceList();
+// }
+// }
+// ;
+// ConfList runInstance = new ConfList();
+// getExecutor().execute(runInstance);
+// while (!runInstance.isDone()) {
+// // Log.w(TAG, "Waiting for getConferenceList");
+// }
+// StringVect swigvect = (StringVect) runInstance.getVal();
+//
+// ArrayList<String> nativelist = new ArrayList<String>();
+//
+// for (int i = 0; i < swigvect.size(); i++)
+// nativelist.add(swigvect.get(i));
+//
+// return nativelist;
+ return current_confs;
}
@Override
@@ -880,6 +882,26 @@
}
@Override
+ public boolean isRecording(final String id) throws RemoteException {
+ class IsRecording extends SipRunnableWithReturn {
+
+ @Override
+ protected Boolean doRun() throws SameThreadException {
+ Log.i(TAG, "SipService.isRecording() thread running...");
+ return callManagerJNI.getIsRecording(id);
+ }
+ }
+
+ IsRecording runInstance = new IsRecording();
+ getExecutor().execute(runInstance);
+ while (!runInstance.isDone()) {
+ }
+
+ return (Boolean) runInstance.getVal();
+
+ }
+
+ @Override
public boolean startRecordedFilePlayback(final String filepath) throws RemoteException {
getExecutor().execute(new SipRunnable() {
@Override
@@ -1027,6 +1049,24 @@
nm.cancel(NOTIFICATION_ID);
}
+ @Override
+ public Conference getCurrentCall() throws RemoteException {
+ for(SipCall i : current_calls.values()){
+ if(i.isOngoing()){
+ Conference tmp = new Conference("-1");
+ tmp.getParticipants().add(i);
+ return tmp;
+ }
+ }
+
+ if(!current_confs.isEmpty()){
+ return (Conference) current_confs.values().toArray()[0];
+ }
+ return null;
+ }
+
+
+
};