Skip to content

Commit

Permalink
chore(firebase_app_check, android): update deprecated Tasks.call()
Browse files Browse the repository at this point in the history
…to `TaskCompletionSource` API (#9404)
  • Loading branch information
russellwheatley committed Aug 24, 2022
1 parent 43b3b06 commit 5aa9f66
Showing 1 changed file with 87 additions and 32 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.google.android.gms.tasks.Task;
import com.google.android.gms.tasks.TaskCompletionSource;
import com.google.android.gms.tasks.Tasks;
import com.google.firebase.FirebaseApp;
import com.google.firebase.appcheck.AppCheckTokenResult;
Expand Down Expand Up @@ -71,53 +72,85 @@ private Map<String, Object> tokenResultToMap(AppCheckTokenResult result) {
}

private Task<Void> activate(Map<String, Object> arguments) {
return Tasks.call(
cachedThreadPool,
TaskCompletionSource<Void> taskCompletionSource = new TaskCompletionSource<>();

cachedThreadPool.execute(
() -> {
FirebaseAppCheck firebaseAppCheck = getAppCheck(arguments);
firebaseAppCheck.installAppCheckProviderFactory(
SafetyNetAppCheckProviderFactory.getInstance());
return null;
try {
FirebaseAppCheck firebaseAppCheck = getAppCheck(arguments);
firebaseAppCheck.installAppCheckProviderFactory(
SafetyNetAppCheckProviderFactory.getInstance());
taskCompletionSource.setResult(null);
} catch (Exception e) {
taskCompletionSource.setException(e);
}
});

return taskCompletionSource.getTask();
}

private Task<Map<String, Object>> getToken(Map<String, Object> arguments) {
return Tasks.call(
cachedThreadPool,
TaskCompletionSource<Map<String, Object>> taskCompletionSource = new TaskCompletionSource<>();

cachedThreadPool.execute(
() -> {
FirebaseAppCheck firebaseAppCheck = getAppCheck(arguments);
Boolean forceRefresh = (Boolean) Objects.requireNonNull(arguments.get("forceRefresh"));
AppCheckTokenResult tokenResult = Tasks.await(firebaseAppCheck.getToken(forceRefresh));
return tokenResultToMap(tokenResult);
try {
FirebaseAppCheck firebaseAppCheck = getAppCheck(arguments);
Boolean forceRefresh = (Boolean) Objects.requireNonNull(arguments.get("forceRefresh"));
AppCheckTokenResult tokenResult = Tasks.await(firebaseAppCheck.getToken(forceRefresh));

taskCompletionSource.setResult(tokenResultToMap(tokenResult));
} catch (Exception e) {
taskCompletionSource.setException(e);
}
});

return taskCompletionSource.getTask();
}

private Task<Void> setTokenAutoRefreshEnabled(Map<String, Object> arguments) {
return Tasks.call(
cachedThreadPool,
TaskCompletionSource<Void> taskCompletionSource = new TaskCompletionSource<>();

cachedThreadPool.execute(
() -> {
FirebaseAppCheck firebaseAppCheck = getAppCheck(arguments);
Boolean isTokenAutoRefreshEnabled =
(Boolean) Objects.requireNonNull(arguments.get("isTokenAutoRefreshEnabled"));
firebaseAppCheck.setTokenAutoRefreshEnabled(isTokenAutoRefreshEnabled);
return null;
try {
FirebaseAppCheck firebaseAppCheck = getAppCheck(arguments);
Boolean isTokenAutoRefreshEnabled =
(Boolean) Objects.requireNonNull(arguments.get("isTokenAutoRefreshEnabled"));
firebaseAppCheck.setTokenAutoRefreshEnabled(isTokenAutoRefreshEnabled);

taskCompletionSource.setResult(null);
} catch (Exception e) {
taskCompletionSource.setException(e);
}
});

return taskCompletionSource.getTask();
}

private Task<String> registerTokenListener(Map<String, Object> arguments) {
return Tasks.call(
cachedThreadPool,
TaskCompletionSource<String> taskCompletionSource = new TaskCompletionSource<>();

cachedThreadPool.execute(
() -> {
String appName = (String) Objects.requireNonNull(arguments.get("appName"));
FirebaseAppCheck firebaseAppCheck = getAppCheck(arguments);

final TokenChannelStreamHandler handler = new TokenChannelStreamHandler(firebaseAppCheck);
final String name = METHOD_CHANNEL_NAME + "/token/" + appName;
final EventChannel channel = new EventChannel(messenger, name);
channel.setStreamHandler(handler);
streamHandlers.put(channel, handler);
return name;
try {
String appName = (String) Objects.requireNonNull(arguments.get("appName"));
FirebaseAppCheck firebaseAppCheck = getAppCheck(arguments);

final TokenChannelStreamHandler handler =
new TokenChannelStreamHandler(firebaseAppCheck);
final String name = METHOD_CHANNEL_NAME + "/token/" + appName;
final EventChannel channel = new EventChannel(messenger, name);
channel.setStreamHandler(handler);
streamHandlers.put(channel, handler);

taskCompletionSource.setResult(name);
} catch (Exception e) {
taskCompletionSource.setException(e);
}
});

return taskCompletionSource.getTask();
}

@Override
Expand Down Expand Up @@ -169,12 +202,34 @@ private Map<String, Object> getExceptionDetails(@Nullable Exception exception) {

@Override
public Task<Map<String, Object>> getPluginConstantsForFirebaseApp(FirebaseApp firebaseApp) {
return Tasks.call(() -> null);
TaskCompletionSource<Map<String, Object>> taskCompletionSource = new TaskCompletionSource<>();

cachedThreadPool.execute(
() -> {
try {
taskCompletionSource.setResult(null);
} catch (Exception e) {
taskCompletionSource.setException(e);
}
});

return taskCompletionSource.getTask();
}

@Override
public Task<Void> didReinitializeFirebaseCore() {
return Tasks.call(() -> null);
TaskCompletionSource<Void> taskCompletionSource = new TaskCompletionSource<>();

cachedThreadPool.execute(
() -> {
try {
taskCompletionSource.setResult(null);
} catch (Exception e) {
taskCompletionSource.setException(e);
}
});

return taskCompletionSource.getTask();
}

private void removeEventListeners() {
Expand Down

0 comments on commit 5aa9f66

Please sign in to comment.