From 14b0751e7cff87fbff432ef838262a8b53a09c17 Mon Sep 17 00:00:00 2001
From: Kolya Opahle <k.opahle@sap.com>
Date: Mon, 7 Dec 2020 15:22:36 +0100
Subject: [PATCH] Added main activity and nav graph for contact diary

Signed-off-by: Kolya Opahle <k.opahle@sap.com>
---
 .../contactdiary/ui/ContactDiaryActivity.kt   | 45 ++++++++++++++++++-
 .../res/layout/contact_diary_activity.xml     | 17 +++++++
 .../navigation/contact_diary_nav_graph.xml    |  3 ++
 3 files changed, 64 insertions(+), 1 deletion(-)
 create mode 100644 Corona-Warn-App/src/main/res/layout/contact_diary_activity.xml
 create mode 100644 Corona-Warn-App/src/main/res/navigation/contact_diary_nav_graph.xml

diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/contactdiary/ui/ContactDiaryActivity.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/contactdiary/ui/ContactDiaryActivity.kt
index 4ca6c6066..e0a8f63cc 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/contactdiary/ui/ContactDiaryActivity.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/contactdiary/ui/ContactDiaryActivity.kt
@@ -1,3 +1,46 @@
 package de.rki.coronawarnapp.contactdiary.ui
 
-class ContactDiaryActivity
+import android.content.Context
+import android.content.Intent
+import android.os.Bundle
+import androidx.appcompat.app.AppCompatActivity
+import androidx.fragment.app.Fragment
+import androidx.fragment.app.FragmentManager
+import dagger.android.AndroidInjector
+import dagger.android.DispatchingAndroidInjector
+import dagger.android.HasAndroidInjector
+import de.rki.coronawarnapp.R
+import de.rki.coronawarnapp.util.di.AppInjector
+import javax.inject.Inject
+
+/**
+ * This activity holds all the contact diary fragments
+ */
+class ContactDiaryActivity : AppCompatActivity(), HasAndroidInjector {
+    companion object {
+        fun start(context: Context) {
+            context.startActivity(Intent(context, ContactDiaryActivity::class.java))
+        }
+    }
+
+    @Inject lateinit var dispatchingAndroidInjector: DispatchingAndroidInjector<Any>
+    override fun androidInjector(): AndroidInjector<Any> = dispatchingAndroidInjector
+
+    private val FragmentManager.currentNavigationFragment: Fragment?
+        get() = primaryNavigationFragment?.childFragmentManager?.fragments?.first()
+
+    override fun onCreate(savedInstanceState: Bundle?) {
+        AppInjector.setup(this)
+        super.onCreate(savedInstanceState)
+        setContentView(R.layout.contact_diary_activity)
+    }
+
+    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
+        super.onActivityResult(requestCode, resultCode, data)
+        supportFragmentManager.currentNavigationFragment?.onActivityResult(
+            requestCode,
+            resultCode,
+            data
+        )
+    }
+}
diff --git a/Corona-Warn-App/src/main/res/layout/contact_diary_activity.xml b/Corona-Warn-App/src/main/res/layout/contact_diary_activity.xml
new file mode 100644
index 000000000..cff3bed3f
--- /dev/null
+++ b/Corona-Warn-App/src/main/res/layout/contact_diary_activity.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    tools:context="de.rki.coronawarnapp.contactdiary.ui.ContactDiaryActivity">
+
+    <androidx.fragment.app.FragmentContainerView
+        android:id="@+id/contact_diary_fragment_container"
+        android:name="androidx.navigation.fragment.NavHostFragment"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        app:defaultNavHost="true"
+        app:navGraph="@navigation/contact_diary_nav_graph" />
+
+</androidx.coordinatorlayout.widget.CoordinatorLayout>
\ No newline at end of file
diff --git a/Corona-Warn-App/src/main/res/navigation/contact_diary_nav_graph.xml b/Corona-Warn-App/src/main/res/navigation/contact_diary_nav_graph.xml
new file mode 100644
index 000000000..639ccd7ec
--- /dev/null
+++ b/Corona-Warn-App/src/main/res/navigation/contact_diary_nav_graph.xml
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="utf-8"?>
+<navigation xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/contact_diary_nav_graph"></navigation>
-- 
GitLab