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.DetailActivity;
import com.arcao.trackables.ui.fragment.detail.AbstractTrackableFragment;
import com.arcao.trackables.ui.fragment.detail.TrackableDetailFragment;
import com.arcao.trackables.ui.fragment.detail.TrackableLogsFragment;
import com.arcao.trackables.ui.fragment.detail.TrackableMapFragment;
import com.arcao.trackables.ui.fragment.detail.TrackableStatisticsFragment;
import dagger.Component;
@PerActivity
@Component(dependencies = AppComponent.class, modules = ActivityModule.class)
public interface DetailActivityComponent {
// activity
void inject(DetailActivity activity);
// fragments
void inject(AbstractTrackableFragment fragment);
void inject(TrackableDetailFragment fragment);
void inject(TrackableLogsFragment fragment);
void inject(TrackableMapFragment fragment);
void inject(TrackableStatisticsFragment fragment);
final class Initializer {
public static DetailActivityComponent init(Activity activity) {
return DaggerDetailActivityComponent.builder()
.activityModule(new ActivityModule(activity))
.appComponent(App.get(activity).component())
.build();
}
private Initializer() {} // No instances.
}
}