From a8558d5f29a9f81ba00ddf80d8ea097571a006e2 Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Fri, 23 Mar 2018 16:24:33 +0100 Subject: [PATCH] Fix firebase (fix actually backported from dev_group_chat branch, with modifications to handle a build without the google-services jar.) --- src/android/org/linphone/LinphoneManager.java | 16 ++++++++++++---- .../org/linphone/firebase/FirebaseIdService.java | 1 + submodules/linphone | 2 +- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/android/org/linphone/LinphoneManager.java b/src/android/org/linphone/LinphoneManager.java index 5e8a901e0..53ecacdaa 100644 --- a/src/android/org/linphone/LinphoneManager.java +++ b/src/android/org/linphone/LinphoneManager.java @@ -691,10 +691,18 @@ public class LinphoneManager implements CoreListener, SensorEventListener, Accou Log.i("[Push Notification] Assuming GCM jar is not provided."); } }else if (getString(R.string.push_type).equals("firebase")){ - final String refreshedToken = com.google.firebase.iid.FirebaseInstanceId.getInstance().getToken(); - if (refreshedToken != null) { - Log.i("[Push Notification] current token is: " + refreshedToken); - LinphonePreferences.instance().setPushNotificationRegistrationID(refreshedToken); + try{ + Class firebaseClass = Class.forName("com.google.firebase.iid.FirebaseInstanceId"); + Object firebaseInstance = firebaseClass.getMethod("getInstance").invoke(null); + final String refreshedToken = (String)firebaseClass.getMethod("getToken").invoke(firebaseInstance); + + //final String refreshedToken = com.google.firebase.iid.FirebaseInstanceId.getInstance().getToken(); + if (refreshedToken != null) { + Log.i("[Push Notification] current token is: " + refreshedToken); + LinphonePreferences.instance().setPushNotificationRegistrationID(refreshedToken); + } + }catch(Exception e){ + Log.i("[Push Notification] firebase not available."); } } } diff --git a/src/android/org/linphone/firebase/FirebaseIdService.java b/src/android/org/linphone/firebase/FirebaseIdService.java index efff496e3..37f23983a 100644 --- a/src/android/org/linphone/firebase/FirebaseIdService.java +++ b/src/android/org/linphone/firebase/FirebaseIdService.java @@ -32,6 +32,7 @@ public class FirebaseIdService extends FirebaseInstanceIdService { // Get updated InstanceID token. final String refreshedToken = FirebaseInstanceId.getInstance().getToken(); android.util.Log.i("FirebaseIdService", "[Push Notification] Refreshed token: " + refreshedToken); + LinphoneUtils.dispatchOnUIThread(new Runnable() { @Override public void run() { diff --git a/submodules/linphone b/submodules/linphone index 88a552178..701685a9f 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit 88a55217832dfd0ca3f8be98a656646e2136190f +Subproject commit 701685a9fca6b420861d1917cbadffae6daee71e