Pusher Chatkit Connect Callback в Java - PullRequest
0 голосов
/ 14 февраля 2019

Я пытаюсь реализовать Pusher ChatKit с сайта SDK: https://docs.pusher.com/chatkit. Я предпочитаю полностью хранить мой код на Java.

В примерах есть этот блок кода:

chatManager.connect { result ->
  when (result) {
    is Result.Success -> {
      // We have connected!
      currentUser = result.value // CurrentUser
    }

    is Result.Failure -> {
      // Failure
      handleConnectionError(result.error)
    }
  }
}

Однако приведенный выше код написан на Kotlin.В моем собственном коде mCurrentUser равно нулю даже после запуска метода chatManager.connect.

Я обновил свою Android Studio до версии Java 8 и пытаюсь использовать следующий код:

                chatManager.connect(result -> {
                    if (result instanceof Result.Success) {
                        mCurrentUser = ((Result.Success<CurrentUser, Error>) result).getValue();
                    }
                    if (result instanceof Result.Failure) {
                        System.out.print(result);
                    }
                    return Unit.INSTANCE;
                });

Когда я перехожу через отладчик, весь блок пропускается.Методы подключения регистрируют успешное соединение, но result всегда равно null.Может кто-нибудь показать мне, как написать тот же обратный вызов с использованием слушателя?Или, покажите мне проблему с моими лямбда-выражениями.

Кстати, chatManager.connect принимает в качестве параметра Function1<? super Result<CurrentUser, Error> Unit> callback.Заранее спасибо.Я застрял на этом в течение 2 дней.

...