Как выполнить этот код только при входе пользователя - PullRequest
0 голосов
/ 12 мая 2019

Я пытался добавить этот код, чтобы обновить счет игрока после окончания игры, он работает так, как я хочу, когда пользователь вошел в систему, но если пользователь не вошел в систему, игра вылетает

void game_over() {
    num_lifes = 0;
    findViewById(R.id.hero).setEnabled(false);
    findViewById(R.id.btn_play).setVisibility(View.GONE);
    show_lifes();
    Games.getLeaderboardsClient(this, GoogleSignIn.getLastSignedInAccount(this))
            .submitScore(getString(R.string.leaderboard_id), score);

    findViewById(R.id.game_over).setVisibility(View.VISIBLE);

1 Ответ

0 голосов
/ 12 мая 2019

Предполагая, что в вашем экземпляре User есть функция или удобный метод для проверки входа в систему, вы просто используете

void game_over() {
    if (isSignedIn) {
        num_lifes = 0;
        findViewById(R.id.hero).setEnabled(false);
        findViewById(R.id.btn_play).setVisibility(View.GONE);
        show_lifes();
        Games.getLeaderboardsClient(this, GoogleSignIn.getLastSignedInAccount(this))
            .submitScore(getString(R.string.leaderboard_id), score);

        findViewById(R.id.game_over).setVisibility(View.VISIBLE);
    }
}

И ваш метод isSignedIn будет выглядеть следующим образом

private boolean isSignedIn() {
  return GoogleSignIn.getLastSignedInAccount(context) != null;
}
...