securesipcall: Store secure state and refresh ui adequately.

Refs #40939
diff --git a/src/org/sflphone/fragments/CallFragment.java b/src/org/sflphone/fragments/CallFragment.java
index 150ea49..b1dce9d 100644
--- a/src/org/sflphone/fragments/CallFragment.java
+++ b/src/org/sflphone/fragments/CallFragment.java
@@ -283,10 +283,9 @@
     public void displaySAS(Conference updated, final String securedCallID) {
         Log.i(TAG, "displaySAS");
         mCallbacks.updateDisplayedConference(updated);
-        SipCall call = getConference().getCallById(securedCallID);
+        SecureSipCall display = (SecureSipCall) getConference().getCallById(securedCallID);
 
-        if (call != null && call instanceof SecureSipCall) {
-            SecureSipCall display = (SecureSipCall) call;
+        if (display != null) {
             if (!display.isConfirmedSAS()) {
                 final Button sas = (Button) getView().findViewById(R.id.confirm_sas);
                 sas.setText("Confirm SAS: " + display.getSAS());
@@ -405,11 +404,35 @@
             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));
         }
 
+
         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 initIncomingCallDisplay() {
         Log.i(TAG, "Start incoming display");
 
diff --git a/src/org/sflphone/fragments/CallListFragment.java b/src/org/sflphone/fragments/CallListFragment.java
index 9934401..1c6de5b 100644
--- a/src/org/sflphone/fragments/CallListFragment.java
+++ b/src/org/sflphone/fragments/CallListFragment.java
@@ -283,7 +283,7 @@
             if (call.getParticipants().size() == 1) {
                 ((TextView) convertView.findViewById(R.id.call_title)).setText(call.getParticipants().get(0).getmContact().getmDisplayName());
 
-                long duration = System.currentTimeMillis() / 1000 - (call.getParticipants().get(0).getTimestampStart_());
+                long duration = (System.currentTimeMillis() - (call.getParticipants().get(0).getTimestampStart_())) / 1000;
 
                 ((TextView) convertView.findViewById(R.id.call_time)).setText(String.format("%d:%02d:%02d", duration / 3600, (duration % 3600) / 60,
                         (duration % 60)));
diff --git a/src/org/sflphone/model/SecureSipCall.java b/src/org/sflphone/model/SecureSipCall.java
index 3845f1a..1a44bd0 100644
--- a/src/org/sflphone/model/SecureSipCall.java
+++ b/src/org/sflphone/model/SecureSipCall.java
@@ -97,7 +97,7 @@
     }
 
     public boolean isConfirmedSAS() {
-        return confirmedSAS;
+        return false;
     }
 
     public void setConfirmedSAS(boolean confirmedSAS) {