diff --git a/gradle/android-dagger/app/build.gradle b/gradle/android-dagger/app/build.gradle index b49fbeff7b..f9d5daa092 100644 --- a/gradle/android-dagger/app/build.gradle +++ b/gradle/android-dagger/app/build.gradle @@ -1,10 +1,8 @@ buildscript { - ext.kotlin_version = '0.1-SNAPSHOT' + ext.kotlin_version = '1.0.0-beta-1038' + repositories { jcenter() - maven { - url 'http://oss.sonatype.org/content/repositories/snapshots' - } } dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" @@ -16,13 +14,13 @@ apply plugin: 'com.android.application' apply plugin: 'kotlin-android' android { - compileSdkVersion 22 - buildToolsVersion "22.0.1" + compileSdkVersion 23 + buildToolsVersion "23.0.1" defaultConfig { applicationId "com.example.dagger.kotlin" - minSdkVersion 15 - targetSdkVersion 22 + minSdkVersion 14 + targetSdkVersion 23 versionCode 1 versionName "1.0" } @@ -39,7 +37,7 @@ android { dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) - compile 'com.android.support:appcompat-v7:22.1.1' + compile 'com.android.support:appcompat-v7:23.1.0' compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" compile 'com.google.dagger:dagger:2.0.1' @@ -47,9 +45,6 @@ dependencies { provided 'org.glassfish:javax.annotation:10.0-b28' } -repositories { - jcenter() - maven { - url 'http://oss.sonatype.org/content/repositories/snapshots' - } +kapt { + generateStubs = true } \ No newline at end of file diff --git a/gradle/android-dagger/app/src/main/java/com/example/dagger/kotlin/BaseApplication.java b/gradle/android-dagger/app/src/main/java/com/example/dagger/kotlin/BaseApplication.kt similarity index 66% rename from gradle/android-dagger/app/src/main/java/com/example/dagger/kotlin/BaseApplication.java rename to gradle/android-dagger/app/src/main/java/com/example/dagger/kotlin/BaseApplication.kt index 217fa26079..8e14f206dc 100755 --- a/gradle/android-dagger/app/src/main/java/com/example/dagger/kotlin/BaseApplication.java +++ b/gradle/android-dagger/app/src/main/java/com/example/dagger/kotlin/BaseApplication.kt @@ -13,16 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.example.dagger.kotlin; +package com.example.dagger.kotlin -import android.app.Application; +import android.app.Application -public abstract class BaseApplication extends Application { +public abstract class BaseApplication : Application() { - protected ApplicationComponent initDaggerComponent() { - return DaggerApplicationComponent.builder() - .androidModule(new AndroidModule(this)) - .build(); - } + protected fun initDaggerComponent(): ApplicationComponent { + return DaggerApplicationComponent.builder().androidModule(AndroidModule(this)).build() + } } diff --git a/gradle/android-dagger/app/src/main/java/com/example/dagger/kotlin/DemoActivity.kt b/gradle/android-dagger/app/src/main/java/com/example/dagger/kotlin/DemoActivity.kt index 329267833d..a6d7549f67 100755 --- a/gradle/android-dagger/app/src/main/java/com/example/dagger/kotlin/DemoActivity.kt +++ b/gradle/android-dagger/app/src/main/java/com/example/dagger/kotlin/DemoActivity.kt @@ -22,6 +22,6 @@ public abstract class DemoActivity : Activity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) // Perform injection so that when this call returns all dependencies will be available for use. - (application as DemoApplication).component().inject(this) + (application as DemoApplication).component.inject(this) } } diff --git a/gradle/android-dagger/app/src/main/java/com/example/dagger/kotlin/DemoApplication.kt b/gradle/android-dagger/app/src/main/java/com/example/dagger/kotlin/DemoApplication.kt index 7664ed8f45..4a8bd4c80e 100644 --- a/gradle/android-dagger/app/src/main/java/com/example/dagger/kotlin/DemoApplication.kt +++ b/gradle/android-dagger/app/src/main/java/com/example/dagger/kotlin/DemoApplication.kt @@ -1,15 +1,14 @@ package com.example.dagger.kotlin public class DemoApplication : BaseApplication() { - - private lateinit var component: ApplicationComponent + lateinit var component: ApplicationComponent + protected set override fun onCreate() { super.onCreate() - component = initDaggerComponent() - component().inject(this) // As of now, LocationManager should be injected into this. + val component = initDaggerComponent() + component.inject(this) // As of now, LocationManager should be injected into this. + this.component = component } - public fun component(): ApplicationComponent = component - } \ No newline at end of file diff --git a/gradle/android-dagger/app/src/main/java/com/example/dagger/kotlin/ForApplication.kt b/gradle/android-dagger/app/src/main/java/com/example/dagger/kotlin/ForApplication.kt index 431262003e..4701924457 100755 --- a/gradle/android-dagger/app/src/main/java/com/example/dagger/kotlin/ForApplication.kt +++ b/gradle/android-dagger/app/src/main/java/com/example/dagger/kotlin/ForApplication.kt @@ -18,5 +18,4 @@ package com.example.dagger.kotlin import javax.inject.Qualifier @Qualifier -@Retention(AnnotationRetention.RUNTIME) annotation public class ForApplication diff --git a/gradle/android-dagger/app/src/main/java/com/example/dagger/kotlin/ui/HomeActivity.kt b/gradle/android-dagger/app/src/main/java/com/example/dagger/kotlin/ui/HomeActivity.kt index 0fe0868472..472e9c91aa 100755 --- a/gradle/android-dagger/app/src/main/java/com/example/dagger/kotlin/ui/HomeActivity.kt +++ b/gradle/android-dagger/app/src/main/java/com/example/dagger/kotlin/ui/HomeActivity.kt @@ -24,12 +24,13 @@ import kotlinx.android.synthetic.activity_main.locationInfo import javax.inject.Inject public class HomeActivity : DemoActivity() { - @Inject lateinit var locationManager: LocationManager + @Inject + lateinit var locationManager: LocationManager override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) - (application as DemoApplication).component().inject(this) + (application as DemoApplication).component.inject(this) // TODO do something with the injected dependencies here! locationInfo.text = "Injected LocationManager:\n$locationManager" diff --git a/gradle/android-dagger/build.gradle b/gradle/android-dagger/build.gradle index 9405f3fd18..1b7886d148 100644 --- a/gradle/android-dagger/build.gradle +++ b/gradle/android-dagger/build.gradle @@ -5,7 +5,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:1.2.3' + classpath 'com.android.tools.build:gradle:1.3.0' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files