summaryrefslogtreecommitdiffhomepage
path: root/android/src/main
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2021-04-19 20:36:34 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2021-04-23 12:46:38 +0000
commit38cdc3c6073dd2703e1453e67969cc16d40a508b (patch)
tree564d8718616f9c815f7162ac554ce0e5b0ea6c88 /android/src/main
parent112b98f92ceb4fb5c0bb6d1e2b88853c62f48d23 (diff)
downloadmullvadvpn-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.kt17
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
+ }
+ }
}