Skip to content

Instantly share code, notes, and snippets.

View jcaiqueoliveira's full-sized avatar
🏠
Working from home

Caique Oliveira jcaiqueoliveira

🏠
Working from home
View GitHub Profile
class HistoryPresenter @Inject constructor(var paymentManager: PaymentRepository) : HistoryContract.Presenter {
lateinit var context: Context
lateinit var view: HistoryContract.View
override fun bindView(context: Context, view: HistoryContract.View) {
this.context = context
this.view = view
}
override fun loadHistory() {
@Provides
public UsuarioContrato proverUsuario() {
return new NovaImplementacaoUsuario();
}
dependencies {
compile 'com.google.dagger:dagger:2.x'
annotationProcessor 'com.google.dagger:dagger-compiler:2.x'
}
public Exemplo(UsuarioContrato usuario) {
this.usuario = usuario;
}
public interface UsuarioContrato {
public List<Pedido> listarPedidos();
}
public class MainActivity extends AppCompatActivity {
@Inject //anotação utilizada pelo dagger para injetar uma dependência
ExemploContrato exemplo;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
public class MainApplication extends android.app.Application {
private static ComponenteExemplo component;
@Override
public void onCreate() {
super.onCreate();
initDagger();
}
private void initDagger() {
@Component(modules = {ClasseModulo.class})//modulos acessíveis por esse componente
interface ComponenteExemplo {
public void inject(MainActivity activity)//quem pode utilizar esse módulos
}
@Provides
public UsuarioContrato proverUsuario() {
return new Usuario();
}
@Module
public class ClassModulo {
@Provides
public ExemploContrato proverExemplo(UsuarioContrato usuario) {
return new Exemplo(usuario);
}
}