Skip to content
Snippets Groups Projects
Commit 44e587fd authored by Sebastian's avatar Sebastian
Browse files

Add dagger, a simple component and view model

parent 628c3ee8
No related branches found
No related tags found
1 merge request!1Basic project setup
plugins {
id 'com.android.application'
id 'kotlin-android'
id 'kotlin-kapt'
}
android {
......@@ -33,8 +34,9 @@ android {
}
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
implementation 'com.google.dagger:dagger:2.37'
kapt 'com.google.dagger:dagger-compiler:2.37'
implementation 'androidx.appcompat:appcompat:1.0.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
testImplementation 'junit:junit:4.+'
......
......@@ -3,6 +3,7 @@
package="org.briarproject.mailbox">
<application
android:name=".MailboxApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
......
package org.briarproject.mailbox
import dagger.Component
@Component
interface ApplicationComponent {
fun inject(activity: MainActivity)
}
\ No newline at end of file
package org.briarproject.mailbox
import android.app.Application
class MailboxApplication : Application() {
val appComponent = DaggerApplicationComponent.create()
}
\ No newline at end of file
package org.briarproject.mailbox
import javax.inject.Inject
class MailboxViewModel @Inject constructor() {
val text = "Hello Mailbox";
}
\ No newline at end of file
......@@ -2,10 +2,22 @@ package org.briarproject.mailbox
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.TextView
import javax.inject.Inject
class MainActivity : AppCompatActivity() {
lateinit var applicationComponent: ApplicationComponent
@Inject
lateinit var mailboxViewModel: MailboxViewModel
override fun onCreate(savedInstanceState: Bundle?) {
(applicationContext as MailboxApplication).appComponent.inject(this)
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val textView = findViewById<TextView>(R.id.text)
textView.setText(mailboxViewModel.text)
}
}
\ No newline at end of file
......@@ -7,6 +7,7 @@
tools:context=".MainActivity">
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment