Я предполагаю, что вы хотите использовать алый в проекте Java.Прежде всего, версия, которую вы используете, устарела.Пожалуйста, найдите последнюю версию алой библиотеки здесь .В нем есть серьезные изменения, и вам нужно будет перенести ваш код.
Вы можете использовать алую библиотеку в Java-проекте, как есть, без зависимости от конкретных модулей kotlin, таких как scarlet-stream-adapter-coroutines
.Пример реализации EchoBotModule
в Java приведен ниже.
@Module
class EchoBotModule {
@Provides
@EchoBotScope
OkHttpClient provideOkHttpClient() {
return OkHttpClient.Builder()
.addInterceptor(HttpLoggingInterceptor()
.setLevel(HttpLoggingInterceptor.Level.BASIC))
.build();
}
@Provides
@EchoBotScope
Lifecycle provideLifecycle(Application application, LoggedInLifecycle loggedInLifecycle) {
return AndroidLifecycle.ofApplicationForeground(application)
.combineWith(loggedInLifecycle);
}
@Provides
@EchoBotScope
EchoService provideEchoService(OkHttpClient client, Lifecycle lifecycle) {
Protocol pr = new OkHttpWebSocket(client, new OkHttpWebSocket.SimpleRequestFactory(
() -> new Request.Builder().url("wss://demos.kaazing.com/echo").build(),
() -> ShutdownReason.GRACEFUL
));
List<MessageAdapter.Factory> messageAdapterFactories = Collections.singletonList(new BitmapMessageAdapter.Factory());
List<StreamAdapter.Factory> streamAdapterFactories = Collections.singletonList(new RxJava2StreamAdapterFactory());
Scarlet.Configuration configuration = new Scarlet.Configuration(lifecycle, null, streamAdapterFactories, messageAdapterFactories, false);
Scarlet scarlet = new Scarlet(pr, configuration);
return scarlet.create();
}
}