Как перейти к стороннему компоненту с помощью Android Jetpack Navigation? - PullRequest
0 голосов
/ 29 мая 2018

Я просмотрел примеры Google для Android Jetpack Navigation , и это действительно значительно упрощает навигацию между компонентами приложения.

Однако я не смог найти ни одного примера того, как реализоватьпереход к компоненту, предоставленному сторонней библиотекой, например, действие, которое должно быть начато с намерения, созданного с помощью предоставленного построителя, и которое должно вернуть результат.

Пример - в моей основной деятельности у меня естьперенаправить на страницу входа Firebase AuthUi , если пользователь не аутентифицирован:

@Override
public void onCreate(...){
  // call super, set contet view, etc.

  if(!isUserAuthenticated()){
    startActivityForResult(
        AuthUI.getInstance()
            .createSignInIntentBuilder()
            .setAvailableProviders(providers)
            .build(),
        RC_SIGN_IN);
  }
}

И

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == RC_SIGN_IN) {
        IdpResponse response = IdpResponse.fromResultIntent(data);

        if (resultCode == RESULT_OK) {
            // Successfully signed in
            FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
            // ...
        } else {
            // Sign in failed. If response is null the user canceled the
            // sign-in flow using the back button. Otherwise check
            // response.getError().getErrorCode() and handle the error.
            // ...
        }
    }
 }

Как я могу это сделать, используя NavController вместо прямого вызова startActivityForResult ?

...