diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2021-04-19 20:36:34 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2021-04-23 12:46:38 +0000 |
| commit | 38cdc3c6073dd2703e1453e67969cc16d40a508b (patch) | |
| tree | 564d8718616f9c815f7162ac554ce0e5b0ea6c88 /android/src/main | |
| parent | 112b98f92ceb4fb5c0bb6d1e2b88853c62f48d23 (diff) | |
| download | mullvadvpn-38cdc3c6073dd2703e1453e67969cc16d40a508b.tar.xz mullvadvpn-38cdc3c6073dd2703e1453e67969cc16d40a508b.zip | |
Select `TVActivity` class when running on TVs
Diffstat (limited to 'android/src/main')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/VpnPermission.kt | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/VpnPermission.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/VpnPermission.kt index b92dab3f98..9602ec7a3b 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/VpnPermission.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/VpnPermission.kt @@ -1,14 +1,19 @@ package net.mullvad.mullvadvpn.service.endpoint +import android.app.UiModeManager import android.content.Context +import android.content.Context.UI_MODE_SERVICE import android.content.Intent +import android.content.res.Configuration.UI_MODE_TYPE_TELEVISION import android.net.VpnService import net.mullvad.mullvadvpn.ipc.Event import net.mullvad.mullvadvpn.ipc.Request import net.mullvad.mullvadvpn.ui.MainActivity +import net.mullvad.mullvadvpn.ui.activities.TVActivity import net.mullvad.mullvadvpn.util.Intermittent class VpnPermission(private val context: Context, private val endpoint: ServiceEndpoint) { + private val activityClass = discoverActivityClass() private val isGranted = Intermittent<Boolean>() var waitingForResponse = false @@ -27,7 +32,7 @@ class VpnPermission(private val context: Context, private val endpoint: ServiceE if (intent == null) { isGranted.update(true) } else { - val activityIntent = Intent(context, MainActivity::class.java).apply { + val activityIntent = Intent(context, activityClass).apply { addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP) } @@ -41,4 +46,14 @@ class VpnPermission(private val context: Context, private val endpoint: ServiceE return isGranted.await() } + + private fun discoverActivityClass(): Class<out MainActivity> { + val uiModeManager = context.getSystemService(UI_MODE_SERVICE) as UiModeManager + + return if (uiModeManager.currentModeType == UI_MODE_TYPE_TELEVISION) { + TVActivity::class.java + } else { + MainActivity::class.java + } + } } |
