Fix firebase (fix actually backported from dev_group_chat branch, with modifications to handle a build without the google-services jar.)

This commit is contained in:
Simon Morlat 2018-03-23 16:24:33 +01:00
parent 3371919087
commit 133fdb350f
2 changed files with 13 additions and 5 deletions

View file

@ -803,10 +803,18 @@ public class LinphoneManager implements LinphoneCoreListener, LinphoneChatMessag
Log.i("[Push Notification] Assuming GCM jar is not provided.");
}
}else if (getString(R.string.push_type).equals("firebase")){
final String refreshedToken = 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.");
}
}
}

View file

@ -33,7 +33,7 @@ public class FirebaseIdService extends FirebaseInstanceIdService {
final String refreshedToken = FirebaseInstanceId.getInstance().getToken();
android.util.Log.i("FirebaseIdService", "[Push Notification] Refreshed token: " + refreshedToken);
LinphoneUtils.dispatchOnUIThread(new Runnable() {
UIThreadDispatcher.dispatch(new Runnable() {
@Override
public void run() {
LinphonePreferences.instance().setPushNotificationRegistrationID(refreshedToken);