package com.arcao.trackables.internal.di.component;
import android.app.Activity;
import com.arcao.trackables.App;
import com.arcao.trackables.internal.di.PerActivity;
import com.arcao.trackables.internal.di.module.ActivityModule;
import com.arcao.trackables.ui.MainActivity;
import com.arcao.trackables.ui.adapter.TrackableListAdapter;
import com.arcao.trackables.ui.fragment.TrackableListFragment;
import dagger.Component;
@PerActivity
@Component(dependencies = AppComponent.class, modules = ActivityModule.class)
public interface MainActivityComponent {
// activity
void inject(MainActivity activity);
// fragment
void inject(TrackableListFragment fragment);
// adapter
void inject(TrackableListAdapter adapter);
void inject(TrackableListAdapter.ViewHolder holder);
final class Initializer {
public static MainActivityComponent init(Activity activity) {
return DaggerMainActivityComponent.builder()
.activityModule(new ActivityModule(activity))
.appComponent(App.get(activity).component())
.build();
}
private Initializer() {} // No instances.
}
}