in sdk/communication/azure-communication-chat/src/main/java/com/azure/android/communication/chat/implementation/notifications/signaling/CommunicationSignalingClient.java [106:148]
public void start(Context context, Consumer<Throwable> errorHandler) {
ISkypetokenProvider skypetokenProvider = new ISkypetokenProvider() {
@Override
public String getSkypetoken(boolean forceRefresh) {
if (forceRefresh) {
tokenFetchRetries += 1;
if (tokenFetchRetries > NotificationUtils.MAX_TOKEN_FETCH_RETRY_COUNT) {
stop();
Throwable throwable =
new Throwable("Access token is expired and failed to fetch a valid one after "
+ NotificationUtils.MAX_TOKEN_FETCH_RETRY_COUNT + " retries.");
logger.logThrowableAsError(throwable);
errorHandler.accept(throwable);
return null;
}
} else {
tokenFetchRetries = 0;
}
String skypeUserToken = null;
try {
skypeUserToken = communicationTokenCredential.getToken().get().getToken();
} catch (InterruptedException | ExecutionException e) {
logger.error("Get skype user token failed for realtime notification: " + e.getMessage());
// Return a empty but not null skype user token to trigger retry
skypeUserToken = "";
}
return skypeUserToken;
}
};
String skypeUserToken = null;
try {
skypeUserToken = communicationTokenCredential.getToken().get().getToken();
} catch (InterruptedException | ExecutionException e) {
logger.error("Get skype user token failed for realtime notification: " + e.getMessage());
errorHandler.accept(e);
return;
}
start(context, skypetokenProvider, skypeUserToken);
}