Установите динамический базовый URL, используя Retrofit 2.0 и Dagger 2

Я пытаюсь выполнить действие входа в систему с помощью Retrofit 2.0 с помощью Dagger 2

Вот как я могу установить зависимость Retrofit

@Provides
@Singleton
Retrofit provideRetrofit(Gson gson, OkHttpClient client) {
    Retrofit retrofit = new Retrofit.Builder()
                            .addConverterFactory(GsonConverterFactory.create(gson)
                            .client(client)
                            .baseUrl(application.getUrl())
                            .build();
    return retrofit;     
}

Вот интерфейс API.

interface LoginAPI {
   @GET(relative_path)
   Call<Boolean> logMe();
}

У меня есть три разных базовых URL-адреса, в которые могут войти пользователи. Поэтому я не могу установить статический URL при настройке зависимости Retrofit. Я создал методы setUrl () и getUrl () для класса Application. При входе пользователя в систему я устанавливаю URL-адрес приложения, прежде чем вызывать вызов API.

Я использую ленивую инъекцию для модернизации, как это

Lazy<Retrofit> retrofit

Таким образом, Dagger вводит зависимость только тогда, когда я могу вызвать

retrofit.get()

Эта часть работает хорошо. Я получил URL для установки зависимости. Однако проблема возникает, когда пользователь вводит неправильный базовый URL-адрес (скажем, mywifi.domain.com), понимает, что это неправильный URL-адрес, и изменяет его (например, mydata.domain.com). Поскольку Dagger уже создал зависимость для модернизации, он больше не будет работать. Поэтому я должен снова открыть приложение и ввести правильный URL-адрес.

Я читаю разные посты по настройке динамических ссылок на Retrofit с помощью Dagger. В моем случае ничего не получилось. Я что-то пропустил?