From 227e92e91346b62867dd3e45b155f9a3d9c9dcc9 Mon Sep 17 00:00:00 2001
From: Ralf Gehrer <ralfgehrer@users.noreply.github.com>
Date: Mon, 26 Oct 2020 08:11:23 +0100
Subject: [PATCH] Hide app content in app launcher (EXPOSUREAPP-2612) (#1390)

---
 .../de/rki/coronawarnapp/CoronaWarnApplication.kt | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/CoronaWarnApplication.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/CoronaWarnApplication.kt
index df08fb1f6..922c0ab30 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/CoronaWarnApplication.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/CoronaWarnApplication.kt
@@ -5,6 +5,7 @@ import android.app.Application
 import android.content.Context
 import android.content.IntentFilter
 import android.os.Bundle
+import android.view.WindowManager
 import androidx.localbroadcastmanager.content.LocalBroadcastManager
 import androidx.work.Configuration
 import androidx.work.WorkManager
@@ -82,10 +83,11 @@ class CoronaWarnApplication : Application(), HasAndroidInjector {
                 localBM.unregisterReceiver(it)
                 errorReceiver = null
             }
+            disableAppLauncherPreviewAndScreenshots(activity)
         }
 
         override fun onActivityStarted(activity: Activity) {
-            // NOOP
+            enableAppLauncherPreviewAndScreenshots(activity)
         }
 
         override fun onActivityDestroyed(activity: Activity) {
@@ -97,7 +99,7 @@ class CoronaWarnApplication : Application(), HasAndroidInjector {
         }
 
         override fun onActivityStopped(activity: Activity) {
-            // NOOP
+            disableAppLauncherPreviewAndScreenshots(activity)
         }
 
         override fun onActivityCreated(activity: Activity, savedInstanceState: Bundle?) {
@@ -113,9 +115,18 @@ class CoronaWarnApplication : Application(), HasAndroidInjector {
             errorReceiver = ErrorReportReceiver(activity).also {
                 localBM.registerReceiver(it, IntentFilter(ERROR_REPORT_LOCAL_BROADCAST_CHANNEL))
             }
+            enableAppLauncherPreviewAndScreenshots(activity)
         }
     }
 
+    private fun enableAppLauncherPreviewAndScreenshots(activity: Activity) {
+        activity.window.clearFlags(WindowManager.LayoutParams.FLAG_SECURE)
+    }
+
+    private fun disableAppLauncherPreviewAndScreenshots(activity: Activity) {
+        activity.window.addFlags(WindowManager.LayoutParams.FLAG_SECURE)
+    }
+
     companion object {
         private lateinit var instance: CoronaWarnApplication
 
-- 
GitLab