Adaga 2 - como evitar a repetição de código para injetar dependências que exigem contexto de atividade

O projeto no qual estou trabalhando tem várias classes de utilitários que requerem contexto de atividade.

Não quero declarar um novo método @Provides para cada atividade que usa a dependência. ou seja, não quero isso:

@Provides
static Navigator providesNavigator(ActivityOne activity) {
    returns new Navigator(activity);
}

// ...and in another module

@Provides
static Navigator providesNavigator(ActivityTwo activity) {
   returns new Navigator(activity);
}

Em vez disso, declaro esses utilitários em um único ActivityUtilitiesModule e passo nossa BaseActivity que todas as outras atividades estendem. Agora não preciso declarar minha dependência do Navegador x número de vezes.

@Provides
static Navigator(BaseActivity activity) {
    return new Navigator(activity);
}

No entanto, Dagger não sabe como satisfazer a dependência de BaseActivity. Isso significa que para cada atividade que eu preciso criar um método fornece que satisfaça a dependência de BaseActivity com a atividade específica que está sendo usada. por exemplo.:

@Provides
static BaseActivity providesBaseActivity(ActivityOne activity) {
    return activity;
}

Isso é melhor - eu só preciso repetir esse provedor por atividade, em vez de repetir um provedor para cada classe de utilitário por atividade, mas ainda parece um passo adicional indesejável na configuração do Dagger, e outra coisa que dificulta o código Compreendo.

Existe um padrão que me permita evitar precisar fornecer esse provedor BaseActivity por atividade?

questionAnswers(1)

yourAnswerToTheQuestion