├── Dagger2Demo ├── app │ ├── .gitignore │ ├── src │ │ ├── main │ │ │ ├── res │ │ │ │ ├── values │ │ │ │ │ ├── strings.xml │ │ │ │ │ ├── colors.xml │ │ │ │ │ ├── dimens.xml │ │ │ │ │ └── styles.xml │ │ │ │ ├── mipmap-hdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-mdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xhdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ ├── values-w820dp │ │ │ │ │ └── dimens.xml │ │ │ │ └── layout │ │ │ │ │ ├── activity_main.xml │ │ │ │ │ ├── activity_a.xml │ │ │ │ │ ├── activity_b.xml │ │ │ │ │ ├── activity_c.xml │ │ │ │ │ └── activity_login.xml │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── iiseeuu │ │ │ │ │ └── dagger2demo │ │ │ │ │ ├── scope │ │ │ │ │ ├── b │ │ │ │ │ │ ├── BModule.java │ │ │ │ │ │ ├── BComponent.java │ │ │ │ │ │ └── BActivity.java │ │ │ │ │ ├── c │ │ │ │ │ │ ├── CModule.java │ │ │ │ │ │ ├── CComponent.java │ │ │ │ │ │ └── CActivity.java │ │ │ │ │ ├── a │ │ │ │ │ │ ├── AModule.java │ │ │ │ │ │ ├── AComponent.java │ │ │ │ │ │ └── AActivity.java │ │ │ │ │ ├── AppComponent.java │ │ │ │ │ ├── UserScope.java │ │ │ │ │ ├── UserNamed.java │ │ │ │ │ ├── User.java │ │ │ │ │ ├── AppModule.java │ │ │ │ │ ├── UserModule.java │ │ │ │ │ ├── UserComponent.java │ │ │ │ │ └── App.java │ │ │ │ │ ├── AComponent.java │ │ │ │ │ ├── AModule.java │ │ │ │ │ ├── GsonModule.java │ │ │ │ │ ├── A.java │ │ │ │ │ ├── MainActivity2.java │ │ │ │ │ └── MainActivity.java │ │ │ └── AndroidManifest.xml │ │ ├── test │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── iiseeuu │ │ │ │ └── dagger2demo │ │ │ │ └── ExampleUnitTest.java │ │ └── androidTest │ │ │ └── java │ │ │ └── com │ │ │ └── iiseeuu │ │ │ └── dagger2demo │ │ │ └── ExampleInstrumentationTest.java │ ├── proguard-rules.pro │ └── build.gradle ├── settings.gradle ├── .gitignore └── build.gradle ├── untitled.jpg ├── device-2016-06-23-144101.png ├── device-2016-06-23-144137.png ├── device-2016-06-23-144149.png └── README.md /Dagger2Demo/app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /Dagger2Demo/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /untitled.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wlj32011/dagger2demo/HEAD/untitled.jpg -------------------------------------------------------------------------------- /device-2016-06-23-144101.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wlj32011/dagger2demo/HEAD/device-2016-06-23-144101.png -------------------------------------------------------------------------------- /device-2016-06-23-144137.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wlj32011/dagger2demo/HEAD/device-2016-06-23-144137.png -------------------------------------------------------------------------------- /device-2016-06-23-144149.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wlj32011/dagger2demo/HEAD/device-2016-06-23-144149.png -------------------------------------------------------------------------------- /Dagger2Demo/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | Dagger2Demo 3 | 4 | -------------------------------------------------------------------------------- /Dagger2Demo/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wlj32011/dagger2demo/HEAD/Dagger2Demo/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /Dagger2Demo/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wlj32011/dagger2demo/HEAD/Dagger2Demo/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /Dagger2Demo/.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/workspace.xml 5 | /.idea/libraries 6 | .DS_Store 7 | /build 8 | /captures 9 | /.idea 10 | -------------------------------------------------------------------------------- /Dagger2Demo/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wlj32011/dagger2demo/HEAD/Dagger2Demo/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /Dagger2Demo/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wlj32011/dagger2demo/HEAD/Dagger2Demo/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /Dagger2Demo/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wlj32011/dagger2demo/HEAD/Dagger2Demo/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /Dagger2Demo/app/src/main/java/com/iiseeuu/dagger2demo/scope/b/BModule.java: -------------------------------------------------------------------------------- 1 | package com.iiseeuu.dagger2demo.scope.b; 2 | 3 | import dagger.Module; 4 | 5 | /** 6 | * Created by wanglj on 16/6/22. 7 | */ 8 | @Module 9 | public class BModule { 10 | } 11 | -------------------------------------------------------------------------------- /Dagger2Demo/app/src/main/java/com/iiseeuu/dagger2demo/scope/c/CModule.java: -------------------------------------------------------------------------------- 1 | package com.iiseeuu.dagger2demo.scope.c; 2 | 3 | import dagger.Module; 4 | 5 | /** 6 | * Created by wanglj on 16/6/22. 7 | */ 8 | @Module 9 | public class CModule { 10 | } 11 | -------------------------------------------------------------------------------- /Dagger2Demo/app/src/main/java/com/iiseeuu/dagger2demo/scope/a/AModule.java: -------------------------------------------------------------------------------- 1 | package com.iiseeuu.dagger2demo.scope.a; 2 | 3 | import dagger.Module; 4 | 5 | /** 6 | * Created by wanglj on 16/6/22. 7 | */ 8 | @Module 9 | public class AModule { 10 | 11 | } 12 | -------------------------------------------------------------------------------- /Dagger2Demo/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #3F51B5 4 | #303F9F 5 | #FF4081 6 | 7 | -------------------------------------------------------------------------------- /Dagger2Demo/app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 6 | -------------------------------------------------------------------------------- /Dagger2Demo/app/src/main/java/com/iiseeuu/dagger2demo/scope/a/AComponent.java: -------------------------------------------------------------------------------- 1 | package com.iiseeuu.dagger2demo.scope.a; 2 | 3 | import dagger.Subcomponent; 4 | 5 | /** 6 | * Created by wanglj on 16/6/22. 7 | */ 8 | @Subcomponent(modules = AModule.class) 9 | public interface AComponent { 10 | void inject(AActivity aActivity); 11 | } 12 | -------------------------------------------------------------------------------- /Dagger2Demo/app/src/main/java/com/iiseeuu/dagger2demo/scope/c/CComponent.java: -------------------------------------------------------------------------------- 1 | package com.iiseeuu.dagger2demo.scope.c; 2 | 3 | 4 | import dagger.Subcomponent; 5 | 6 | /** 7 | * Created by wanglj on 16/6/22. 8 | */ 9 | @Subcomponent(modules = CModule.class) 10 | public interface CComponent { 11 | void inject(CActivity cActivity); 12 | } 13 | -------------------------------------------------------------------------------- /Dagger2Demo/app/src/main/java/com/iiseeuu/dagger2demo/scope/b/BComponent.java: -------------------------------------------------------------------------------- 1 | package com.iiseeuu.dagger2demo.scope.b; 2 | 3 | import com.iiseeuu.dagger2demo.scope.UserScope; 4 | 5 | import dagger.Subcomponent; 6 | 7 | /** 8 | * Created by wanglj on 16/6/22. 9 | */ 10 | @Subcomponent(modules = BModule.class) 11 | public interface BComponent { 12 | void inject(BActivity bActivity); 13 | } 14 | -------------------------------------------------------------------------------- /Dagger2Demo/app/src/main/java/com/iiseeuu/dagger2demo/AComponent.java: -------------------------------------------------------------------------------- 1 | package com.iiseeuu.dagger2demo; 2 | 3 | import dagger.Component; 4 | 5 | /** 6 | * Created by wanglj on 16/6/22. 7 | */ 8 | @Component(modules = {AModule.class,GsonModule.class}) 9 | public interface AComponent { 10 | void inject(MainActivity mainActivity); 11 | void inject(MainActivity2 mainActivity2); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /Dagger2Demo/app/src/main/java/com/iiseeuu/dagger2demo/scope/AppComponent.java: -------------------------------------------------------------------------------- 1 | package com.iiseeuu.dagger2demo.scope; 2 | 3 | import javax.inject.Singleton; 4 | 5 | import dagger.Component; 6 | 7 | /** 8 | * Created by wanglj on 16/6/22. 9 | */ 10 | @Singleton 11 | @Component(modules = AppModule.class) 12 | public interface AppComponent { 13 | UserComponent plus(UserModule userModule); 14 | } 15 | -------------------------------------------------------------------------------- /Dagger2Demo/app/src/main/java/com/iiseeuu/dagger2demo/AModule.java: -------------------------------------------------------------------------------- 1 | package com.iiseeuu.dagger2demo; 2 | 3 | import javax.inject.Singleton; 4 | 5 | import dagger.Module; 6 | import dagger.Provides; 7 | 8 | /** 9 | * Created by wanglj on 16/6/22. 10 | */ 11 | @Module 12 | public class AModule { 13 | 14 | @Provides 15 | public A provideA(){ 16 | return new A(); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /Dagger2Demo/app/src/main/java/com/iiseeuu/dagger2demo/scope/UserScope.java: -------------------------------------------------------------------------------- 1 | package com.iiseeuu.dagger2demo.scope; 2 | 3 | import java.lang.annotation.Retention; 4 | import java.lang.annotation.RetentionPolicy; 5 | 6 | import javax.inject.Scope; 7 | 8 | /** 9 | * Created by wanglj on 16/6/22. 10 | */ 11 | @Scope 12 | @Retention(RetentionPolicy.RUNTIME) 13 | public @interface UserScope { 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Dagger2Demo/app/src/main/java/com/iiseeuu/dagger2demo/GsonModule.java: -------------------------------------------------------------------------------- 1 | package com.iiseeuu.dagger2demo; 2 | 3 | import com.google.gson.Gson; 4 | 5 | import dagger.Module; 6 | import dagger.Provides; 7 | 8 | /** 9 | * Created by wanglj on 16/6/22. 10 | */ 11 | @Module 12 | public class GsonModule { 13 | 14 | @Provides 15 | public Gson provideGson(){ 16 | return new Gson(); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Dagger2Demo/app/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /Dagger2Demo/app/src/main/java/com/iiseeuu/dagger2demo/A.java: -------------------------------------------------------------------------------- 1 | package com.iiseeuu.dagger2demo; 2 | 3 | import android.util.Log; 4 | 5 | import javax.inject.Inject; 6 | 7 | /** 8 | * Created by wanglj on 16/6/22. 9 | */ 10 | 11 | public class A { 12 | public String field; 13 | 14 | 15 | @Inject 16 | public A(){ 17 | 18 | } 19 | 20 | 21 | public void doSomething(){ 22 | Log.e("A", "do something"+field); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Dagger2Demo/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /Dagger2Demo/app/src/main/java/com/iiseeuu/dagger2demo/scope/UserNamed.java: -------------------------------------------------------------------------------- 1 | package com.iiseeuu.dagger2demo.scope; 2 | 3 | import java.lang.annotation.Retention; 4 | import java.lang.annotation.RetentionPolicy; 5 | 6 | import javax.inject.Named; 7 | import javax.inject.Qualifier; 8 | 9 | /** 10 | * Created by wanglj on 16/6/23. 11 | */ 12 | @Qualifier 13 | @Retention(RetentionPolicy.RUNTIME) 14 | public @interface UserNamed { 15 | String value() default ""; 16 | } 17 | -------------------------------------------------------------------------------- /Dagger2Demo/app/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 |