From e1a94be9c388932c8baff62ab9b880b59480eac6 Mon Sep 17 00:00:00 2001 From: Hee Tatt Ooi <hee.tatt.ooi@sap.com> Date: Tue, 2 Jun 2020 22:31:33 +0200 Subject: [PATCH] Prevent screenshot of the app for all activities (#108) * Prevent screenshot of the app for all activities * fix ktlint * code smell fix Co-authored-by: harambasicluka <64483219+harambasicluka@users.noreply.github.com> --- .../coronawarnapp/CoronaWarnApplication.kt | 39 ++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) 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 668dd8864..c615cc64d 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 @@ -1,15 +1,19 @@ package de.rki.coronawarnapp +import android.app.Activity import android.app.Application import android.content.Context +import android.os.Bundle import android.util.Log +import android.view.WindowManager import androidx.lifecycle.Lifecycle import androidx.lifecycle.LifecycleObserver import androidx.lifecycle.OnLifecycleEvent import androidx.lifecycle.ProcessLifecycleOwner import de.rki.coronawarnapp.notification.NotificationHelper -class CoronaWarnApplication : Application(), LifecycleObserver { +class CoronaWarnApplication : Application(), LifecycleObserver, + Application.ActivityLifecycleCallbacks { companion object { val TAG: String? = CoronaWarnApplication::class.simpleName @@ -31,6 +35,7 @@ class CoronaWarnApplication : Application(), LifecycleObserver { NotificationHelper.createNotificationChannel() super.onCreate() ProcessLifecycleOwner.get().lifecycle.addObserver(this) + registerActivityLifecycleCallbacks(this) } /** @@ -50,4 +55,36 @@ class CoronaWarnApplication : Application(), LifecycleObserver { isAppInForeground = true Log.v(TAG, "App foregrounded") } + + override fun onActivityPaused(activity: Activity) { + // does not override function. Empty on intention + } + + override fun onActivityStarted(activity: Activity) { + // does not override function. Empty on intention + } + + override fun onActivityDestroyed(activity: Activity) { + // does not override function. Empty on intention + } + + override fun onActivitySaveInstanceState(activity: Activity, outState: Bundle) { + // does not override function. Empty on intention + } + + override fun onActivityStopped(activity: Activity) { + // does not override function. Empty on intention + } + + override fun onActivityCreated(activity: Activity, savedInstanceState: Bundle?) { + // prevents screenshot of the app for all activities + activity.window.setFlags( + WindowManager.LayoutParams.FLAG_SECURE, + WindowManager.LayoutParams.FLAG_SECURE + ) + } + + override fun onActivityResumed(activity: Activity) { + // does not override function. Empty on intention + } } -- GitLab