mirror of https://github.com/tasks/tasks
Inject injectors
parent
5c7c4fa6f9
commit
26731a1c3b
@ -0,0 +1,11 @@
|
||||
package org.tasks.injection;
|
||||
|
||||
import dagger.ObjectGraph;
|
||||
|
||||
public interface Injector {
|
||||
|
||||
public void inject(Object caller);
|
||||
|
||||
public ObjectGraph getObjectGraph();
|
||||
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
package org.tasks.injection;
|
||||
|
||||
import java.lang.annotation.Documented;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
import javax.inject.Qualifier;
|
||||
|
||||
import static java.lang.annotation.ElementType.FIELD;
|
||||
import static java.lang.annotation.ElementType.METHOD;
|
||||
import static java.lang.annotation.ElementType.PARAMETER;
|
||||
import static java.lang.annotation.RetentionPolicy.RUNTIME;
|
||||
|
||||
@Qualifier
|
||||
@Target({FIELD, PARAMETER, METHOD})
|
||||
@Documented
|
||||
@Retention(RUNTIME)
|
||||
public @interface ForApplication {
|
||||
}
|
@ -1,7 +0,0 @@
|
||||
package org.tasks.injection;
|
||||
|
||||
public interface Injector {
|
||||
|
||||
public void inject(Object caller, Object... modules);
|
||||
|
||||
}
|
@ -1,60 +0,0 @@
|
||||
package org.tasks.injection;
|
||||
|
||||
import android.app.Application;
|
||||
import android.content.Context;
|
||||
|
||||
import com.todoroo.astrid.core.CustomFilterExposer;
|
||||
import com.todoroo.astrid.gtasks.GtasksFilterExposer;
|
||||
import com.todoroo.astrid.tags.TagFilterExposer;
|
||||
import com.todoroo.astrid.timers.TimerFilterExposer;
|
||||
import com.todoroo.astrid.ui.QuickAddBar;
|
||||
|
||||
import java.lang.annotation.Documented;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
import javax.inject.Qualifier;
|
||||
import javax.inject.Singleton;
|
||||
|
||||
import dagger.Module;
|
||||
import dagger.Provides;
|
||||
|
||||
import static java.lang.annotation.ElementType.FIELD;
|
||||
import static java.lang.annotation.ElementType.METHOD;
|
||||
import static java.lang.annotation.ElementType.PARAMETER;
|
||||
import static java.lang.annotation.RetentionPolicy.RUNTIME;
|
||||
|
||||
@Module(injects = {
|
||||
QuickAddBar.class,
|
||||
TimerFilterExposer.class,
|
||||
CustomFilterExposer.class,
|
||||
GtasksFilterExposer.class,
|
||||
TagFilterExposer.class
|
||||
}
|
||||
)
|
||||
public class TasksModule {
|
||||
|
||||
private final Context context;
|
||||
|
||||
public static TasksModule newTasksModule(Application application) {
|
||||
return new TasksModule(application.getApplicationContext());
|
||||
}
|
||||
|
||||
TasksModule(Context context) {
|
||||
this.context = context;
|
||||
}
|
||||
|
||||
@Singleton
|
||||
@Provides
|
||||
@ForApplication
|
||||
public Context getContext() {
|
||||
return context;
|
||||
}
|
||||
|
||||
@Qualifier
|
||||
@Target({FIELD, PARAMETER, METHOD})
|
||||
@Documented
|
||||
@Retention(RUNTIME)
|
||||
public @interface ForApplication {
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue