diff options
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( |
