diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-06-04 16:55:04 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-06-05 15:06:02 +0000 |
| commit | 656b3b3ab1799a53a928b7f711f193a75006896c (patch) | |
| tree | c0a1011727d6d631fb050963e213ee8071080d16 /android/src | |
| parent | 284a08c528ac520c9e4dfef33254e7b511bf8679 (diff) | |
| download | mullvadvpn-656b3b3ab1799a53a928b7f711f193a75006896c.tar.xz mullvadvpn-656b3b3ab1799a53a928b7f711f193a75006896c.zip | |
Block screenshots when entering a secure screen
Diffstat (limited to 'android/src')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt index 10e886f73e..0ec9581fc4 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt @@ -6,8 +6,10 @@ import android.content.Intent import android.os.Build import android.os.Bundle import android.os.IBinder +import android.support.v4.app.Fragment import android.support.v4.app.FragmentActivity import android.support.v4.app.FragmentManager +import android.view.WindowManager import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.launch @@ -27,6 +29,7 @@ class MainActivity : FragmentActivity() { private var service: MullvadVpnService.LocalBinder? = null private var serviceConnection: ServiceConnection? = null private var shouldConnect = false + private var visibleSecureScreens = HashSet<Fragment>() private val serviceConnectionManager = object : android.content.ServiceConnection { override fun onServiceConnected(className: ComponentName, binder: IBinder) { @@ -105,6 +108,23 @@ class MainActivity : FragmentActivity() { super.onDestroy() } + fun enterSecureScreen(screen: Fragment) { + synchronized(this) { + visibleSecureScreens.add(screen) + window?.addFlags(WindowManager.LayoutParams.FLAG_SECURE) + } + } + + fun leaveSecureScreen(screen: Fragment) { + synchronized(this) { + visibleSecureScreens.remove(screen) + + if (visibleSecureScreens.isEmpty()) { + window?.clearFlags(WindowManager.LayoutParams.FLAG_SECURE) + } + } + } + fun openSettings() { supportFragmentManager?.beginTransaction()?.apply { setCustomAnimations( |
