Android Dagger может помочь внедрить класс, содержащий строку, в предоставленный модифицированный экземпляр?Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Android Dagger может помочь внедрить класс, содержащий строку, в предоставленный модифицированный экземпляр?

Сообщение Anonymous »

Здесь у меня есть класс, который изначально был аннотированным внедренным классом под названием AppConfig

Код: Выделить всё

class AppConfig @Inject constructor() {

val configBaseURL1 : String = "baseURL1"
val configBaseURL2 : String = "baseURL2"
val configAppVer : String = "1.0.0"
}
Этот класс был внедрен в функцию, которая предоставила мне RetrofitService

Код: Выделить всё

@Module
class RetrofitModule {
@Provides
fun getRetrofit(appConfig: AppConfig, okHttpClient: OkHttpClient, moshiConverterFactory: MoshiConverterFactory) : MyRetrofitService {
return Retrofit.Builder()
.baseUrl(appConfig.configBaseURL1)
.client(okHttpClient)
.addConverterFactory(moshiConverterFactory)
.build()
.create(MyRetrofitService::class.java)
}
}
okHttpClient, moshiConverterFactory предоставляются в отдельных модулях.
Сначала это работало нормально, потому что я запускал варианты сборки, которые предоставляли разные строки configBaseURL, но теперь я не нужно делать этого в пользу класса appConfig, который содержит две строки URL-адреса, и мне нужно использовать любую строку на основе логического флага во время выполнения приложения. Как я могу это сделать, если RetrofitModule и связанные с ним вставленные параметры создаются во время компиляции? Я попытался инкапсулировать логическое значение в класс @AssistedInject с помощью фабрики @AssistedFactory, но получаю такие ошибки, как:

Код: Выделить всё

Dagger does not support providing @AssistedInject types.
Это я понимаю, основываясь на других сообщениях с похожими ответами. Есть какие-нибудь советы о том, как этого добиться, чтобы RetrofitService предоставлялся с помощью configBaseURL на основе логического флага во время выполнения?

Подробнее здесь: https://stackoverflow.com/questions/783 ... to-a-provi
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»