* #36505: toggle speakers button added in call screen
Ringtones are routed to speakers for incoming calls
diff --git a/src/org/sflphone/adapters/ContactPictureTask.java b/src/org/sflphone/adapters/ContactPictureTask.java
index 8c5d9bb..fd4c0b6 100644
--- a/src/org/sflphone/adapters/ContactPictureTask.java
+++ b/src/org/sflphone/adapters/ContactPictureTask.java
@@ -113,8 +113,9 @@
paintLine.setDither(true);
paintLine.setStyle(Style.STROKE);
paintLine.setColor(Color.WHITE);
- internalCanvas.drawCircle(externalBMP.getWidth() / 2, externalBMP.getHeight() / 2, externalBMP.getWidth() / 2 - dpiPadding / 2, paintLine);
- internalCanvas.drawOval(new RectF(PADDING, PADDING, externalBMP.getWidth() - dpiPadding, externalBMP.getHeight() - dpiPadding), paint);
+ // internalCanvas.drawCircle(externalBMP.getWidth() / 2, externalBMP.getHeight() / 2, externalBMP.getWidth() / 2 - dpiPadding / 2, paintLine);
+ // internalCanvas.drawOval(new RectF(PADDING, PADDING, externalBMP.getWidth() - dpiPadding, externalBMP.getHeight() - dpiPadding), paint);
+ internalCanvas.drawOval(new RectF(0, 0, externalBMP.getWidth(), externalBMP.getHeight()), paint);
view.post(new Runnable() {
@Override
diff --git a/src/org/sflphone/fragments/CallFragment.java b/src/org/sflphone/fragments/CallFragment.java
index 3f68067..01f2655 100644
--- a/src/org/sflphone/fragments/CallFragment.java
+++ b/src/org/sflphone/fragments/CallFragment.java
@@ -252,7 +252,7 @@
callStatusTxt = (TextView) rootView.findViewById(R.id.call_status_txt);
call_icon = BitmapFactory.decodeResource(getResources(), R.drawable.ic_action_call);
- speakers = (ToggleButton) rootView.findViewById(R.id.toggle_speaker);
+ speakers = (ToggleButton) rootView.findViewById(R.id.speaker_toggle);
speakers.setOnCheckedChangeListener(new OnCheckedChangeListener() {
diff --git a/src/org/sflphone/receivers/IncomingReceiver.java b/src/org/sflphone/receivers/IncomingReceiver.java
index 7d41b73..f15f5b6 100644
--- a/src/org/sflphone/receivers/IncomingReceiver.java
+++ b/src/org/sflphone/receivers/IncomingReceiver.java
@@ -94,7 +94,7 @@
callback.getCurrent_calls().put(newCall.getCallId(), newCall);
callback.sendBroadcast(toSend);
- callback.mediaManager.obtainAudioFocus();
+ callback.mediaManager.obtainAudioFocus(true);
} catch (RemoteException e1) {
e1.printStackTrace();
} catch (Exception e) {
diff --git a/src/org/sflphone/service/SipService.java b/src/org/sflphone/service/SipService.java
index 107d5b4..2dc88bd 100644
--- a/src/org/sflphone/service/SipService.java
+++ b/src/org/sflphone/service/SipService.java
@@ -343,7 +343,7 @@
// watchout timestamp stored by sflphone is in seconds
call.setTimestamp_start(Long.parseLong(details.get(ServiceConstants.call.TIMESTAMP_START)));
getCurrent_calls().put(call.getCallId(), call);
- mediaManager.obtainAudioFocus();
+ mediaManager.obtainAudioFocus(false);
}
});
}
@@ -366,6 +366,7 @@
protected void doRun() throws SameThreadException {
Log.i(TAG, "SipService.accept() thread running...");
callManagerJNI.accept(callID);
+ mediaManager.RouteToInternalSpeaker();
}
});
}
diff --git a/src/org/sflphone/utils/MediaManager.java b/src/org/sflphone/utils/MediaManager.java
index 3a3489e..b1963a4 100644
--- a/src/org/sflphone/utils/MediaManager.java
+++ b/src/org/sflphone/utils/MediaManager.java
@@ -35,9 +35,12 @@
return mAudioManager;
}
- public void obtainAudioFocus() {
+ public void obtainAudioFocus(boolean requestSpeakerOn) {
mAudioManager.requestAudioFocus(this, Compatibility.getInCallStream(false), AudioManager.AUDIOFOCUS_GAIN_TRANSIENT);
mAudioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
+ if(requestSpeakerOn){
+ RouteToSpeaker();
+ }
}
@Override