package io.codetail;
import android.app.Application;
import java.util.Arrays;
import java.util.List;
import dagger.ObjectGraph;
import io.codetail.dependecy.ApplicationModule;
import io.codetail.dependecy.UiModule;
import io.codetail.dependecy.WorkerModule;
import io.codetail.dependecy.library.ContextProvider;
import io.codetail.sources.Source;
import io.codetail.watchme.BuildConfig;
import io.codetail.work.BaseJob;
import io.codetail.work.di.DependencyInjector;
public class WatchMeApplication extends Application implements DependencyInjector{
ObjectGraph mObjectGraph;
public final static String PICASSO_INSTANCE = "PicassoInstance";
private static WatchMeApplication sApplicationInstance;
private Source mSelectedSource;
@Override
public void onCreate() {
super.onCreate();
sApplicationInstance = this;
Constants.init(sApplicationInstance);
mSelectedSource = Source.getDefaultSource();
mObjectGraph = ObjectGraph.create(
new ContextProvider(this),
new ApplicationModule(),
new WorkerModule(),
new UiModule()
);
}
public static WatchMeApplication getApplication(){
return sApplicationInstance;
}
public List<Source> getSources(){
return Arrays.asList(mSelectedSource);
}
public Source getSelectedSource(){
return mSelectedSource;
}
public void inject(Object object){
mObjectGraph.inject(object);
}
@Override
public void inject(BaseJob job) {
mObjectGraph.inject(job);
}
}