* #33928: refactor recording callback
diff --git a/src/org/sflphone/model/BubblesView.java b/src/org/sflphone/model/BubblesView.java
index c53f18a..6c2923f 100644
--- a/src/org/sflphone/model/BubblesView.java
+++ b/src/org/sflphone/model/BubblesView.java
@@ -370,7 +370,8 @@
return true;
case Bubble.actions.RECORD:
try {
- callback.mCallbacks.getService().toggleRecordingCall(expand.getCallID());
+ boolean isRecording = callback.mCallbacks.getService().toggleRecordingCall(expand.getCallID());
+ ((BubbleUser) expand).associated_call.setRecording(isRecording);
} catch (RemoteException e1) {
e1.printStackTrace();
}
diff --git a/src/org/sflphone/model/Conference.java b/src/org/sflphone/model/Conference.java
index 9ff5570..3303d4b 100644
--- a/src/org/sflphone/model/Conference.java
+++ b/src/org/sflphone/model/Conference.java
@@ -146,7 +146,10 @@
}
public boolean isRecording() {
- return recording;
+ if(hasMultipleParticipants())
+ return recording;
+ else
+ return participants.get(0).isRecording();
}
public boolean isOnGoing() {
diff --git a/src/org/sflphone/model/SipCall.java b/src/org/sflphone/model/SipCall.java
index 63989f5..f70649b 100644
--- a/src/org/sflphone/model/SipCall.java
+++ b/src/org/sflphone/model/SipCall.java
@@ -338,7 +338,7 @@
public static SipCall buildMyselfCall(ContentResolver cr, String displayName) {
return new SipCall("default", null, SipCall.state.CALL_TYPE_UNDETERMINED, state.CALL_STATE_NONE, state.MEDIA_STATE_NONE,
- CallContact.ContactBuilder.buildUserContact(cr, displayName));
+ CallContact.ContactBuilder.buildUserContact(cr));
}
diff --git a/src/org/sflphone/receivers/IncomingReceiver.java b/src/org/sflphone/receivers/IncomingReceiver.java
index 77c96ba..077be7c 100644
--- a/src/org/sflphone/receivers/IncomingReceiver.java
+++ b/src/org/sflphone/receivers/IncomingReceiver.java
@@ -270,27 +270,27 @@
Log.i(TAG, "Received" + intent.getAction());
- try {
- if (callback.getCurrent_confs().get(intent.getStringExtra("id")) != null) {
- callback.getCurrent_confs().get(intent.getStringExtra("id")).setRecording(mBinder.isRecording(intent.getStringExtra("id")));
- } else if (callback.getCurrent_calls().get(intent.getStringExtra("id")) != null) {
- callback.getCurrent_calls().get(intent.getStringExtra("id")).setRecording(mBinder.isRecording(intent.getStringExtra("id")));
- } else {
- // A call in a conference has been put on hold
- Iterator<Conference> it = callback.getCurrent_confs().values().iterator();
- while (it.hasNext()) {
- Conference c = it.next();
- if (c.getCall(intent.getStringExtra("id")) != null)
- c.getCall(intent.getStringExtra("id")).setRecording(mBinder.isRecording(intent.getStringExtra("id")));
- }
- }
- // Re sending the same intent to the app
- callback.sendBroadcast(intent);
- ;
- } catch (RemoteException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
+// try {
+// if (callback.getCurrent_confs().get(intent.getStringExtra("id")) != null) {
+// callback.getCurrent_confs().get(intent.getStringExtra("id")).setRecording(mBinder.isRecording(intent.getStringExtra("id")));
+// } else if (callback.getCurrent_calls().get(intent.getStringExtra("id")) != null) {
+// callback.getCurrent_calls().get(intent.getStringExtra("id")).setRecording(mBinder.isRecording(intent.getStringExtra("id")));
+// } else {
+// // A call in a conference has been put on hold
+// Iterator<Conference> it = callback.getCurrent_confs().values().iterator();
+// while (it.hasNext()) {
+// Conference c = it.next();
+// if (c.getCall(intent.getStringExtra("id")) != null)
+// c.getCall(intent.getStringExtra("id")).setRecording(mBinder.isRecording(intent.getStringExtra("id")));
+// }
+// }
+// // Re sending the same intent to the app
+// callback.sendBroadcast(intent);
+// ;
+// } catch (RemoteException e) {
+// // TODO Auto-generated catch block
+// e.printStackTrace();
+// }
}
diff --git a/src/org/sflphone/service/ISipService.aidl b/src/org/sflphone/service/ISipService.aidl
index 572bf55..f93952f 100644
--- a/src/org/sflphone/service/ISipService.aidl
+++ b/src/org/sflphone/service/ISipService.aidl
@@ -41,7 +41,6 @@
boolean toggleRecordingCall(in String id);
boolean startRecordedFilePlayback(in String filepath);
void stopRecordedFilePlayback(in String filepath);
- boolean isRecording(in String id);
/* DTMF */
void playDtmf(in String key);
diff --git a/src/org/sflphone/service/SipService.java b/src/org/sflphone/service/SipService.java
index 732ee98..8f253f3 100644
--- a/src/org/sflphone/service/SipService.java
+++ b/src/org/sflphone/service/SipService.java
@@ -949,7 +949,22 @@
@Override
protected Boolean doRun() throws SameThreadException {
Log.i(TAG, "SipService.toggleRecordingCall() thread running...");
- return callManagerJNI.toggleRecording(id);
+ boolean result = callManagerJNI.toggleRecording(id);
+
+ if(getCurrent_calls().containsKey(id)){
+ getCurrent_calls().get(id).setRecording(result);
+ } else if(getCurrent_confs().containsKey(id)){
+ getCurrent_confs().get(id).setRecording(result);
+ } else {
+ // A call in a conference has been put on hold
+ Iterator<Conference> it = getCurrent_confs().values().iterator();
+ while (it.hasNext()) {
+ Conference c = it.next();
+ if (c.getCall(id) != null)
+ c.getCall(id).setRecording(result);
+ }
+ }
+ return result;
}
}
@@ -963,26 +978,6 @@
}
@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