Add working bluetooth support

This commit introduces basic bluetooth support.
If a headset is paired to the phone, audio will be correctly rerouted.
This is still experimental, due to the lack of testing devices.

Refs #41293
diff --git a/src/org/sflphone/fragments/CallFragment.java b/src/org/sflphone/fragments/CallFragment.java
index 027fb4a..03723de 100644
--- a/src/org/sflphone/fragments/CallFragment.java
+++ b/src/org/sflphone/fragments/CallFragment.java
@@ -270,7 +270,6 @@
     public void secureZrtpOn(Conference updated, String id) {
         Log.i(TAG, "secureZrtpOn");
         mCallbacks.updateDisplayedConference(updated);
-        //enableSASButton();
     }
 
     @Override
@@ -398,40 +397,37 @@
         int radiusCalls = (int) (model.width / 2 - BUBBLE_SIZE);
         for (int i = 0; i < getConference().getParticipants().size(); ++i) {
 
-            if (getConference().getParticipants().get(i) == null) {
+            SipCall partee = getConference().getParticipants().get(i);
+            if (partee == null) {
                 continue;
             }
             dX = Math.cos(Math.toRadians(angle_part * i - 90)) * radiusCalls;
             dY = Math.sin(Math.toRadians(angle_part * i - 90)) * radiusCalls;
-            getBubbleFor(getConference().getParticipants().get(i), (int) (model.width / 2 + dX), (int) (model.height / 2 + dY));
-            enableZRTP(getConference().getParticipants().get(i));
+            getBubbleFor(partee, (int) (model.width / 2 + dX), (int) (model.height / 2 + dY));
+            if (partee instanceof SecureSipCall)
+                enableZRTP((SecureSipCall) partee);
         }
-
-
         model.clearAttractors();
     }
 
-    private void enableZRTP(SipCall sipCall) {
-        if (sipCall instanceof SecureSipCall) {
-            final SecureSipCall secured = (SecureSipCall) sipCall;
-            if (!secured.isConfirmedSAS()) {
-                final Button sas = (Button) getView().findViewById(R.id.confirm_sas);
-                sas.setText("Confirm SAS: " + secured.getSAS());
-                sas.setVisibility(View.VISIBLE);
-                sas.setOnClickListener(new OnClickListener() {
-                    @Override
-                    public void onClick(View v) {
-                        try {
-                            mCallbacks.getService().confirmSAS(secured.getCallId());
-                            sas.setVisibility(View.INVISIBLE);
-                        } catch (RemoteException e) {
-                            e.printStackTrace();
-                        }
+    private void enableZRTP(final SecureSipCall secured) {
+        if (!secured.isConfirmedSAS()) {
+            final Button sas = (Button) getView().findViewById(R.id.confirm_sas);
+            sas.setText("Confirm SAS: " + secured.getSAS());
+            sas.setVisibility(View.VISIBLE);
+            sas.setOnClickListener(new OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    try {
+                        mCallbacks.getService().confirmSAS(secured.getCallId());
+                        sas.setVisibility(View.INVISIBLE);
+                    } catch (RemoteException e) {
+                        e.printStackTrace();
                     }
-                });
-            } else {
+                }
+            });
+        } else {
 
-            }
         }
     }