From bdc2c97d0668754e12986f45c46693bc3d991289 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud@savoirfairelinux.com>
Date: Thu, 17 Jun 2021 11:13:49 -0400
Subject: [PATCH] call: fix hangup, open contact

Change-Id: I58aaa06ddc27a538517efe1f6720c5189950853d
---
 .../src/main/java/cx/ring/fragments/CallFragment.java    | 2 +-
 .../src/main/java/net/jami/call/CallPresenter.java       | 6 ++++--
 .../src/main/java/net/jami/services/CallService.java     | 9 ++++++++-
 3 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/ring-android/app/src/main/java/cx/ring/fragments/CallFragment.java b/ring-android/app/src/main/java/cx/ring/fragments/CallFragment.java
index 3092a0220..828d97ef5 100644
--- a/ring-android/app/src/main/java/cx/ring/fragments/CallFragment.java
+++ b/ring-android/app/src/main/java/cx/ring/fragments/CallFragment.java
@@ -1250,7 +1250,7 @@ public class CallFragment extends BaseSupportFragment<CallPresenter> implements
 
     @Override
     public void goToContact(String accountId, Contact contact) {
-        startActivity(new Intent(Intent.ACTION_VIEW, android.net.Uri.withAppendedPath(android.net.Uri.withAppendedPath(ContentUriHandler.CONTACT_CONTENT_URI, accountId), contact.getPrimaryNumber()))
+        startActivity(new Intent(Intent.ACTION_VIEW, ConversationPath.toUri(accountId, contact.getUri()))
                 .setClass(requireContext(), ContactDetailsActivity.class));
     }
 
diff --git a/ring-android/libringclient/src/main/java/net/jami/call/CallPresenter.java b/ring-android/libringclient/src/main/java/net/jami/call/CallPresenter.java
index ddb94f4d0..42490c998 100644
--- a/ring-android/libringclient/src/main/java/net/jami/call/CallPresenter.java
+++ b/ring-android/libringclient/src/main/java/net/jami/call/CallPresenter.java
@@ -717,9 +717,10 @@ public class CallPresenter extends RootPresenter<CallView> {
     }
 
     public void hangupParticipant(Conference.ParticipantInfo info) {
-        //mCallService.
         if (info.call != null)
             mCallService.hangUp(info.call.getDaemonIdString());
+        else
+            mCallService.hangupParticipant(mConference.getId(), info.contact.getPrimaryNumber());
     }
 
     public void muteParticipant(Conference.ParticipantInfo info, boolean mute) {
@@ -727,7 +728,8 @@ public class CallPresenter extends RootPresenter<CallView> {
     }
 
     public void openParticipantContact(Conference.ParticipantInfo info) {
-        getView().goToContact(mConference.getFirstCall().getAccount(), info.contact);
+        Call call = info.call == null ? mConference.getFirstCall() : info.call;
+        getView().goToContact(call.getAccount(), info.contact);
     }
 
     public void stopCapture() {
diff --git a/ring-android/libringclient/src/main/java/net/jami/services/CallService.java b/ring-android/libringclient/src/main/java/net/jami/services/CallService.java
index 92dd5ac04..875d0efb0 100644
--- a/ring-android/libringclient/src/main/java/net/jami/services/CallService.java
+++ b/ring-android/libringclient/src/main/java/net/jami/services/CallService.java
@@ -302,11 +302,18 @@ public class CallService {
 
     public void muteParticipant(String confId, String peerId, boolean mute) {
         mExecutor.execute(() -> {
-            Log.i(TAG, "mute() participant... " + peerId);
+            Log.i(TAG, "mute participant... " + peerId);
             JamiService.muteParticipant(confId, peerId, mute);
         });
     }
 
+    public void hangupParticipant(String confId, String peerId) {
+        mExecutor.execute(() -> {
+            Log.i(TAG, "hangup participant... " + peerId);
+            JamiService.hangupParticipant(confId, peerId);
+        });
+    }
+
     public void hold(final String callId) {
         mExecutor.execute(() -> {
             Log.i(TAG, "hold() running... " + callId);
-- 
GitLab