diff --git a/build.gradle b/build.gradle index d3d6df5..c73191e 100644 --- a/build.gradle +++ b/build.gradle @@ -7,6 +7,7 @@ buildscript { dependencies { classpath 'com.android.tools.build:gradle:2.0.0-beta6' classpath 'me.tatarka:gradle-retrolambda:3.3.0-beta3' + classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' } } diff --git a/sample/build.gradle b/sample/build.gradle index a827b88..655f524 100644 --- a/sample/build.gradle +++ b/sample/build.gradle @@ -1,4 +1,5 @@ apply plugin: 'com.android.application' +apply plugin: 'com.neenbedankt.android-apt' android { compileSdkVersion 23 @@ -31,4 +32,8 @@ dependencies { testCompile 'junit:junit:4.12' compile project(':library') compile 'com.android.support:appcompat-v7:23.1.1' + + compile 'com.google.dagger:dagger:2.0.2' + apt 'com.google.dagger:dagger-compiler:2.0.2' + provided 'javax.annotation:jsr250-api:1.0' } diff --git a/sample/src/main/AndroidManifest.xml b/sample/src/main/AndroidManifest.xml index f294e7e..c9f2cab 100644 --- a/sample/src/main/AndroidManifest.xml +++ b/sample/src/main/AndroidManifest.xml @@ -10,7 +10,8 @@ android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" - android:theme="@style/AppTheme"> + android:theme="@style/AppTheme" + android:name=".di.App"> diff --git a/sample/src/main/java/cz/kinst/jakub/sample/viewmodelbinding/di/App.java b/sample/src/main/java/cz/kinst/jakub/sample/viewmodelbinding/di/App.java new file mode 100644 index 0000000..a35d48f --- /dev/null +++ b/sample/src/main/java/cz/kinst/jakub/sample/viewmodelbinding/di/App.java @@ -0,0 +1,14 @@ +package cz.kinst.jakub.sample.viewmodelbinding.di; + +import android.app.Application; + +public class App extends Application { + public static MainComponent mainComponent; + + @Override + public void onCreate() { + super.onCreate(); + + mainComponent = DaggerMainComponent.builder().appModule(new AppModule(this)).build(); + } +} diff --git a/sample/src/main/java/cz/kinst/jakub/sample/viewmodelbinding/di/AppModule.java b/sample/src/main/java/cz/kinst/jakub/sample/viewmodelbinding/di/AppModule.java new file mode 100644 index 0000000..46d9755 --- /dev/null +++ b/sample/src/main/java/cz/kinst/jakub/sample/viewmodelbinding/di/AppModule.java @@ -0,0 +1,23 @@ +package cz.kinst.jakub.sample.viewmodelbinding.di; + +import javax.inject.Singleton; + +import dagger.Module; +import dagger.Provides; + +@Module +public class AppModule { + + private App app; + + + public AppModule(App app) { + this.app = app; + } + + @Provides + @Singleton + public App provideApp() { + return app; + } +} diff --git a/sample/src/main/java/cz/kinst/jakub/sample/viewmodelbinding/di/MainComponent.java b/sample/src/main/java/cz/kinst/jakub/sample/viewmodelbinding/di/MainComponent.java new file mode 100644 index 0000000..fa72d7e --- /dev/null +++ b/sample/src/main/java/cz/kinst/jakub/sample/viewmodelbinding/di/MainComponent.java @@ -0,0 +1,16 @@ +package cz.kinst.jakub.sample.viewmodelbinding.di; + +import javax.inject.Singleton; + +import cz.kinst.jakub.sample.viewmodelbinding.MainViewModel; +import dagger.Component; + +@Singleton +@Component( + modules = { + AppModule.class + } +) +public interface MainComponent { + void inject(MainViewModel obj); +} diff --git a/settings.gradle b/settings.gradle index 3f88b25..1e2d977 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1 +1 @@ -include ':sample', ':library', ':library-extensions' +include ':sample', ':library'/*, ':library-extensions'*/