diff --git a/mailbox/build.gradle b/mailbox/build.gradle index b6dfa93a093b17a78882d2010a386fc7630fc1c7..9806eb651b6c6f21b1fda02e0b464a3ebcc34b46 100644 --- a/mailbox/build.gradle +++ b/mailbox/build.gradle @@ -1,6 +1,7 @@ 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.+' diff --git a/mailbox/src/main/AndroidManifest.xml b/mailbox/src/main/AndroidManifest.xml index b60125e9d5c5a801621965f84f279a015a987cd8..50353209690467aa92a8916bf8e0dd04168319ee 100644 --- a/mailbox/src/main/AndroidManifest.xml +++ b/mailbox/src/main/AndroidManifest.xml @@ -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" diff --git a/mailbox/src/main/java/org/briarproject/mailbox/ApplicationComponent.kt b/mailbox/src/main/java/org/briarproject/mailbox/ApplicationComponent.kt new file mode 100644 index 0000000000000000000000000000000000000000..18af8862ded7dfc0afe35259a24195c02997eeaa --- /dev/null +++ b/mailbox/src/main/java/org/briarproject/mailbox/ApplicationComponent.kt @@ -0,0 +1,10 @@ +package org.briarproject.mailbox + +import dagger.Component + +@Component +interface ApplicationComponent { + + fun inject(activity: MainActivity) + +} \ No newline at end of file diff --git a/mailbox/src/main/java/org/briarproject/mailbox/MailboxApplication.kt b/mailbox/src/main/java/org/briarproject/mailbox/MailboxApplication.kt new file mode 100644 index 0000000000000000000000000000000000000000..fdd09a27045921020538d4c37a139d97b0771cf3 --- /dev/null +++ b/mailbox/src/main/java/org/briarproject/mailbox/MailboxApplication.kt @@ -0,0 +1,9 @@ +package org.briarproject.mailbox + +import android.app.Application + +class MailboxApplication : Application() { + + val appComponent = DaggerApplicationComponent.create() + +} \ No newline at end of file diff --git a/mailbox/src/main/java/org/briarproject/mailbox/MailboxViewModel.kt b/mailbox/src/main/java/org/briarproject/mailbox/MailboxViewModel.kt new file mode 100644 index 0000000000000000000000000000000000000000..be4b4fafe65bb2f7bd88cb88dc8be37a9993aba4 --- /dev/null +++ b/mailbox/src/main/java/org/briarproject/mailbox/MailboxViewModel.kt @@ -0,0 +1,9 @@ +package org.briarproject.mailbox + +import javax.inject.Inject + +class MailboxViewModel @Inject constructor() { + + val text = "Hello Mailbox"; + +} \ No newline at end of file diff --git a/mailbox/src/main/java/org/briarproject/mailbox/MainActivity.kt b/mailbox/src/main/java/org/briarproject/mailbox/MainActivity.kt index 631e5e91977b14417ddda8fc42a99b2ceea5a7c9..04d715a3820ef2abe4a4ac81b1c30507fa86c154 100644 --- a/mailbox/src/main/java/org/briarproject/mailbox/MainActivity.kt +++ b/mailbox/src/main/java/org/briarproject/mailbox/MainActivity.kt @@ -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 diff --git a/mailbox/src/main/res/layout/activity_main.xml b/mailbox/src/main/res/layout/activity_main.xml index 4fc244418b5fe524789352d1b1b52d1b22045f3a..18428a363919373000fca735f0b1cbe008c63051 100644 --- a/mailbox/src/main/res/layout/activity_main.xml +++ b/mailbox/src/main/res/layout/activity_main.xml @@ -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!"