From eba5d1247101d59e6a34c2464257153bc585b9e3 Mon Sep 17 00:00:00 2001
From: Tobias Preuss <tobias.preuss@googlemail.com>
Date: Wed, 24 Jun 2020 12:35:03 +0200
Subject: [PATCH] Encapsulate how Activities are started, reduce repetition.
 (#676)

+ How Activities are started is an implementation detail which should be
  hidden from the call site.
+ Encapsulating the start routines in the Activities allows for code re-use.

Co-authored-by: harambasicluka <64483219+harambasicluka@users.noreply.github.com>
---
 .../main/java/de/rki/coronawarnapp/ui/LauncherActivity.kt | 7 ++-----
 .../java/de/rki/coronawarnapp/ui/main/MainActivity.kt     | 5 +++++
 .../rki/coronawarnapp/ui/onboarding/OnboardingActivity.kt | 8 +++++++-
 .../coronawarnapp/ui/settings/SettingsResetFragment.kt    | 3 +--
 4 files changed, 15 insertions(+), 8 deletions(-)

diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/LauncherActivity.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/LauncherActivity.kt
index 2c4daee38..9e4820952 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/LauncherActivity.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/LauncherActivity.kt
@@ -1,6 +1,5 @@
 package de.rki.coronawarnapp.ui
 
-import android.content.Intent
 import androidx.appcompat.app.AppCompatActivity
 import androidx.lifecycle.lifecycleScope
 import de.rki.coronawarnapp.storage.LocalData
@@ -34,15 +33,13 @@ class LauncherActivity : AppCompatActivity() {
     }
 
     private fun startOnboardingActivity() {
-        val onboardingActivity = Intent(this, OnboardingActivity::class.java)
-        startActivity(onboardingActivity)
+        OnboardingActivity.start(this)
         this.overridePendingTransition(0, 0)
         finish()
     }
 
     private fun startMainActivity() {
-        val mainActivityIntent = Intent(this, MainActivity::class.java)
-        startActivity(mainActivityIntent)
+        MainActivity.start(this)
         this.overridePendingTransition(0, 0)
         finish()
     }
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/MainActivity.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/MainActivity.kt
index 7f2204ac8..0abb83ed3 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/MainActivity.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/MainActivity.kt
@@ -1,5 +1,6 @@
 package de.rki.coronawarnapp.ui.main
 
+import android.content.Context
 import android.content.Intent
 import android.os.Bundle
 import androidx.appcompat.app.AppCompatActivity
@@ -22,6 +23,10 @@ import de.rki.coronawarnapp.worker.BackgroundWorkScheduler
 class MainActivity : AppCompatActivity() {
     companion object {
         private val TAG: String? = MainActivity::class.simpleName
+
+        fun start(context: Context) {
+            context.startActivity(Intent(context, MainActivity::class.java))
+        }
     }
 
     private val FragmentManager.currentNavigationFragment: Fragment?
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/onboarding/OnboardingActivity.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/onboarding/OnboardingActivity.kt
index 8624ff94d..4da93c88d 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/onboarding/OnboardingActivity.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/onboarding/OnboardingActivity.kt
@@ -1,5 +1,6 @@
 package de.rki.coronawarnapp.ui.onboarding
 
+import android.content.Context
 import android.content.Intent
 import android.os.Bundle
 import androidx.appcompat.app.AppCompatActivity
@@ -18,6 +19,11 @@ import de.rki.coronawarnapp.ui.main.MainActivity
 class OnboardingActivity : AppCompatActivity(), LifecycleObserver {
     companion object {
         private val TAG: String? = OnboardingActivity::class.simpleName
+
+        fun start(context: Context) {
+            val intent = Intent(context, OnboardingActivity::class.java)
+            context.startActivity(intent)
+        }
     }
 
     private val FragmentManager.currentNavigationFragment: Fragment?
@@ -43,7 +49,7 @@ class OnboardingActivity : AppCompatActivity(), LifecycleObserver {
     fun completeOnboarding() {
         LocalData.isOnboarded(true)
         LocalData.onboardingCompletedTimestamp(System.currentTimeMillis())
-        startActivity(Intent(this, MainActivity::class.java))
+        MainActivity.start(this)
         finish()
     }
 
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/settings/SettingsResetFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/settings/SettingsResetFragment.kt
index 38fb5df78..77b704344 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/settings/SettingsResetFragment.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/settings/SettingsResetFragment.kt
@@ -1,7 +1,6 @@
 package de.rki.coronawarnapp.ui.settings
 
 import android.app.AlertDialog
-import android.content.Intent
 import android.os.Bundle
 import android.view.LayoutInflater
 import android.view.View
@@ -91,7 +90,7 @@ class SettingsResetFragment : Fragment() {
     }
 
     private fun navigateToOnboarding() {
-        startActivity(Intent(activity, OnboardingActivity::class.java))
+        OnboardingActivity.start(requireContext())
         activity?.finish()
     }
 
-- 
GitLab