diff --git a/.gitignore b/.gitignore index 39fb081..d1a486f 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ /build /captures .externalNativeBuild +/.idea diff --git a/.idea/misc.xml b/.idea/misc.xml index 47394c9..994e7ae 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -92,7 +92,7 @@ - + diff --git a/.idea/modules.xml b/.idea/modules.xml index 1c3f8c5..0c18009 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -3,6 +3,8 @@ + + diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 6757813..5d1e55f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,12 +1,12 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 25 - buildToolsVersion "25.0.2" + compileSdkVersion 27 + buildToolsVersion "26.0.2" defaultConfig { applicationId "iammert.com.dagger_android_injection" minSdkVersion 15 - targetSdkVersion 25 + targetSdkVersion 27 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" @@ -24,12 +24,12 @@ dependencies { androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) - compile 'com.android.support:appcompat-v7:25.3.1' + compile 'com.android.support:appcompat-v7:27.0.2' testCompile 'junit:junit:4.12' compile 'com.android.support.constraint:constraint-layout:1.0.2' - compile 'com.google.dagger:dagger:2.11' - annotationProcessor 'com.google.dagger:dagger-compiler:2.11' - annotationProcessor 'com.google.dagger:dagger-android-processor:2.11' - compile 'com.google.dagger:dagger-android-support:2.11' + compile 'com.google.dagger:dagger:2.13' + annotationProcessor 'com.google.dagger:dagger-compiler:2.13' + annotationProcessor 'com.google.dagger:dagger-android-processor:2.13' + compile 'com.google.dagger:dagger-android-support:2.13' } diff --git a/app/src/main/java/iammert/com/dagger_android_injection/AndroidSampleApp.java b/app/src/main/java/iammert/com/dagger_android_injection/AndroidSampleApp.java index c3bd96e..4cb6aec 100644 --- a/app/src/main/java/iammert/com/dagger_android_injection/AndroidSampleApp.java +++ b/app/src/main/java/iammert/com/dagger_android_injection/AndroidSampleApp.java @@ -1,12 +1,7 @@ package iammert.com.dagger_android_injection; -import android.app.Activity; -import android.app.Application; - -import javax.inject.Inject; - -import dagger.android.DispatchingAndroidInjector; -import dagger.android.HasActivityInjector; +import dagger.android.AndroidInjector; +import dagger.android.DaggerApplication; import iammert.com.dagger_android_injection.di.DaggerAppComponent; @@ -14,24 +9,10 @@ * Created by mertsimsek on 25/05/2017. */ -public class AndroidSampleApp extends Application implements HasActivityInjector { - - @Inject - DispatchingAndroidInjector activityDispatchingAndroidInjector; - - @Override - public void onCreate() { - super.onCreate(); - DaggerAppComponent - .builder() - .application(this) - .build() - .inject(this); - - } +public class AndroidSampleApp extends DaggerApplication { @Override - public DispatchingAndroidInjector activityInjector() { - return activityDispatchingAndroidInjector; + protected AndroidInjector applicationInjector() { + return DaggerAppComponent.builder().create(this); } } diff --git a/app/src/main/java/iammert/com/dagger_android_injection/di/AppComponent.java b/app/src/main/java/iammert/com/dagger_android_injection/di/AppComponent.java index fdddc4d..f6b9cee 100644 --- a/app/src/main/java/iammert/com/dagger_android_injection/di/AppComponent.java +++ b/app/src/main/java/iammert/com/dagger_android_injection/di/AppComponent.java @@ -1,26 +1,19 @@ package iammert.com.dagger_android_injection.di; -import android.app.Application; - -import dagger.BindsInstance; import dagger.Component; -import dagger.android.AndroidInjectionModule; +import dagger.android.AndroidInjector; +import dagger.android.support.AndroidSupportInjectionModule; import iammert.com.dagger_android_injection.AndroidSampleApp; /** * Created by mertsimsek on 25/05/2017. */ @Component(modules = { - AndroidInjectionModule.class, + AndroidSupportInjectionModule.class, AppModule.class, ActivityBuilder.class}) -public interface AppComponent { - +public interface AppComponent extends AndroidInjector { @Component.Builder - interface Builder { - @BindsInstance Builder application(Application application); - AppComponent build(); + abstract class Builder extends AndroidInjector.Builder { } - - void inject(AndroidSampleApp app); } diff --git a/app/src/main/java/iammert/com/dagger_android_injection/ui/detail/DetailActivity.java b/app/src/main/java/iammert/com/dagger_android_injection/ui/detail/DetailActivity.java index e5bed65..33f353c 100644 --- a/app/src/main/java/iammert/com/dagger_android_injection/ui/detail/DetailActivity.java +++ b/app/src/main/java/iammert/com/dagger_android_injection/ui/detail/DetailActivity.java @@ -1,17 +1,11 @@ package iammert.com.dagger_android_injection.ui.detail; import android.os.Bundle; -import android.support.annotation.Nullable; -import android.support.v4.app.Fragment; -import android.support.v7.app.AppCompatActivity; import android.util.Log; import javax.inject.Inject; -import dagger.android.AndroidInjection; -import dagger.android.AndroidInjector; -import dagger.android.DispatchingAndroidInjector; -import dagger.android.support.HasSupportFragmentInjector; +import dagger.android.support.DaggerAppCompatActivity; import iammert.com.dagger_android_injection.R; import iammert.com.dagger_android_injection.ui.detail.fragment.DetailFragment; @@ -19,17 +13,13 @@ * Created by mertsimsek on 25/05/2017. */ -public class DetailActivity extends AppCompatActivity implements HasSupportFragmentInjector, DetailView { - - @Inject - DispatchingAndroidInjector fragmentDispatchingAndroidInjector; +public class DetailActivity extends DaggerAppCompatActivity implements DetailView { @Inject DetailPresenter detailPresenter; @Override protected void onCreate(Bundle savedInstanceState) { - AndroidInjection.inject(this); super.onCreate(savedInstanceState); setContentView(R.layout.activity_detail); detailPresenter.loadDetail(); @@ -45,9 +35,4 @@ protected void onCreate(Bundle savedInstanceState) { public void onDetailLoaded() { Log.v("TEST", "Detail is loaded"); } - - @Override - public AndroidInjector supportFragmentInjector() { - return fragmentDispatchingAndroidInjector; - } } diff --git a/app/src/main/java/iammert/com/dagger_android_injection/ui/detail/fragment/DetailFragment.java b/app/src/main/java/iammert/com/dagger_android_injection/ui/detail/fragment/DetailFragment.java index 7716663..90c9070 100644 --- a/app/src/main/java/iammert/com/dagger_android_injection/ui/detail/fragment/DetailFragment.java +++ b/app/src/main/java/iammert/com/dagger_android_injection/ui/detail/fragment/DetailFragment.java @@ -1,23 +1,18 @@ package iammert.com.dagger_android_injection.ui.detail.fragment; -import android.content.Context; import android.os.Bundle; -import android.support.annotation.Nullable; -import android.support.v4.app.Fragment; import android.util.Log; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; import javax.inject.Inject; -import dagger.android.support.AndroidSupportInjection; +import dagger.android.support.DaggerFragment; + /** * Created by mertsimsek on 02/06/2017. */ -public class DetailFragment extends Fragment implements DetailFragmentView { +public class DetailFragment extends DaggerFragment implements DetailFragmentView { @Inject DetailFragmentPresenter detailFragmentPresenter; @@ -29,18 +24,6 @@ public static DetailFragment newInstance() { return fragment; } - @Nullable - @Override - public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - return super.onCreateView(inflater, container, savedInstanceState); - } - - @Override - public void onAttach(Context context) { - AndroidSupportInjection.inject(this); - super.onAttach(context); - } - @Override public void onDetailFragmentLoaded() { Log.v("TEST", "OnDetailFragmentLoaded."); diff --git a/app/src/main/java/iammert/com/dagger_android_injection/ui/detail/fragment/DetailFragmentModule.java b/app/src/main/java/iammert/com/dagger_android_injection/ui/detail/fragment/DetailFragmentModule.java index 053de4b..3b3f2e6 100644 --- a/app/src/main/java/iammert/com/dagger_android_injection/ui/detail/fragment/DetailFragmentModule.java +++ b/app/src/main/java/iammert/com/dagger_android_injection/ui/detail/fragment/DetailFragmentModule.java @@ -1,6 +1,5 @@ package iammert.com.dagger_android_injection.ui.detail.fragment; -import dagger.Binds; import dagger.Module; import dagger.Provides; diff --git a/app/src/main/java/iammert/com/dagger_android_injection/ui/main/MainActivity.java b/app/src/main/java/iammert/com/dagger_android_injection/ui/main/MainActivity.java index 6716b91..476bcc8 100644 --- a/app/src/main/java/iammert/com/dagger_android_injection/ui/main/MainActivity.java +++ b/app/src/main/java/iammert/com/dagger_android_injection/ui/main/MainActivity.java @@ -1,25 +1,23 @@ package iammert.com.dagger_android_injection.ui.main; import android.content.Intent; -import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import javax.inject.Inject; -import dagger.android.AndroidInjection; +import dagger.android.support.DaggerAppCompatActivity; import iammert.com.dagger_android_injection.R; import iammert.com.dagger_android_injection.ui.detail.DetailActivity; -public class MainActivity extends AppCompatActivity implements MainView{ +public class MainActivity extends DaggerAppCompatActivity implements MainView{ @Inject MainPresenter mainPresenter; @Override protected void onCreate(Bundle savedInstanceState) { - AndroidInjection.inject(this); super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mainPresenter.loadMain(); diff --git a/build.gradle b/build.gradle index dfc8492..36777fc 100644 --- a/build.gradle +++ b/build.gradle @@ -7,7 +7,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:3.0.0-alpha4' + classpath 'com.android.tools.build:gradle:3.0.1' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 0c86c68..b9b3337 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Wed Jun 28 17:54:12 EEST 2017 +#Fri Dec 15 10:16:23 EET 2017 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.0-rc-1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip