summaryrefslogtreecommitdiffhomepage
path: root/android/src
diff options
context:
space:
mode:
Diffstat (limited to 'android/src')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/applist/AppListAdapter.kt6
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/applist/AppListItemHolder.kt10
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadVpnService.kt4
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/service/ServiceInstance.kt2
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/service/SplitTunneling.kt (renamed from android/src/main/kotlin/net/mullvad/mullvadvpn/service/SplitTunnelling.kt)6
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AdvancedFragment.kt4
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ServiceConnection.kt2
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ServiceDependentFragment.kt6
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/SplitTunnelingFragment.kt (renamed from android/src/main/kotlin/net/mullvad/mullvadvpn/ui/SplitTunnellingFragment.kt)22
-rw-r--r--android/src/main/res/layout/advanced.xml4
-rw-r--r--android/src/main/res/layout/split_tunneling.xml (renamed from android/src/main/res/layout/split_tunnelling.xml)4
-rw-r--r--android/src/main/res/layout/split_tunneling_header.xml (renamed from android/src/main/res/layout/split_tunnelling_header.xml)4
-rw-r--r--android/src/main/res/values/strings.xml4
13 files changed, 41 insertions, 37 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/applist/AppListAdapter.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/applist/AppListAdapter.kt
index 0fb1d94d47..ad987dfe8a 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/applist/AppListAdapter.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/applist/AppListAdapter.kt
@@ -6,12 +6,12 @@ import android.view.LayoutInflater
import android.view.ViewGroup
import kotlin.properties.Delegates.observable
import net.mullvad.mullvadvpn.R
-import net.mullvad.mullvadvpn.service.SplitTunnelling
+import net.mullvad.mullvadvpn.service.SplitTunneling
import net.mullvad.mullvadvpn.util.JobTracker
class AppListAdapter(
context: Context,
- private val splitTunnelling: SplitTunnelling
+ private val splitTunneling: SplitTunneling
) : Adapter<AppListItemHolder>() {
private val appList = ArrayList<AppInfo>()
private val jobTracker = JobTracker()
@@ -45,7 +45,7 @@ class AppListAdapter(
val inflater = LayoutInflater.from(parentView.context)
val view = inflater.inflate(R.layout.app_list_item, parentView, false)
- return AppListItemHolder(splitTunnelling, packageManager, jobTracker, view)
+ return AppListItemHolder(splitTunneling, packageManager, jobTracker, view)
}
override fun onBindViewHolder(holder: AppListItemHolder, position: Int) {
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/applist/AppListItemHolder.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/applist/AppListItemHolder.kt
index b623721000..ad9fcc3318 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/applist/AppListItemHolder.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/applist/AppListItemHolder.kt
@@ -8,12 +8,12 @@ import android.widget.ImageView
import android.widget.TextView
import kotlin.properties.Delegates.observable
import net.mullvad.mullvadvpn.R
-import net.mullvad.mullvadvpn.service.SplitTunnelling
+import net.mullvad.mullvadvpn.service.SplitTunneling
import net.mullvad.mullvadvpn.ui.widget.CellSwitch
import net.mullvad.mullvadvpn.util.JobTracker
class AppListItemHolder(
- private val splitTunnelling: SplitTunnelling,
+ private val splitTunneling: SplitTunneling,
private val packageManager: PackageManager,
private val jobTracker: JobTracker,
view: View
@@ -36,7 +36,7 @@ class AppListItemHolder(
loadIcon(info)
}
- if (splitTunnelling.isAppExcluded(info.info.packageName)) {
+ if (splitTunneling.isAppExcluded(info.info.packageName)) {
excluded.forcefullySetState(CellSwitch.State.ON)
} else {
excluded.forcefullySetState(CellSwitch.State.OFF)
@@ -55,8 +55,8 @@ class AppListItemHolder(
excluded.listener = { state ->
appInfo?.info?.packageName?.let { app ->
when (state) {
- CellSwitch.State.ON -> splitTunnelling.excludeApp(app)
- CellSwitch.State.OFF -> splitTunnelling.includeApp(app)
+ CellSwitch.State.ON -> splitTunneling.excludeApp(app)
+ CellSwitch.State.OFF -> splitTunneling.includeApp(app)
}
}
}
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadVpnService.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadVpnService.kt
index 6ba1a42c1e..6c50b7a563 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadVpnService.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadVpnService.kt
@@ -238,7 +238,7 @@ class MullvadVpnService : TalpidVpnService() {
pendingAction = null
}
- val splitTunnelling = SplitTunnelling(this).apply {
+ val splitTunneling = SplitTunneling(this).apply {
onChange = { excludedApps ->
disallowedApps = excludedApps
markTunAsStale()
@@ -251,7 +251,7 @@ class MullvadVpnService : TalpidVpnService() {
connectionProxy,
connectivityListener,
settingsListener,
- splitTunnelling
+ splitTunneling
)
}
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/ServiceInstance.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/ServiceInstance.kt
index ecca6b12f0..5ef94a4f5c 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/ServiceInstance.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/ServiceInstance.kt
@@ -7,7 +7,7 @@ class ServiceInstance(
val connectionProxy: ConnectionProxy,
val connectivityListener: ConnectivityListener,
val settingsListener: SettingsListener,
- val splitTunnelling: SplitTunnelling
+ val splitTunneling: SplitTunneling
) {
val accountCache = AccountCache(daemon, settingsListener)
val keyStatusListener = KeyStatusListener(daemon)
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/SplitTunnelling.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/SplitTunneling.kt
index 13f6b242f1..7f0a678baa 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/SplitTunnelling.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/SplitTunneling.kt
@@ -4,10 +4,14 @@ import android.content.Context
import java.io.File
import kotlin.properties.Delegates.observable
+// The spelling of the shared preferences location can't be changed to American English without
+// either having users lose their preferences on update or implementing some migration code.
private const val SHARED_PREFERENCES = "split_tunnelling"
private const val KEY_ENABLED = "enabled"
-class SplitTunnelling(context: Context) {
+class SplitTunneling(context: Context) {
+ // The spelling of the app list file name can't be changed to American English without either
+ // having users lose their preferences on update or implementing some migration code.
private val appListFile = File(context.filesDir, "split-tunnelling.txt")
private val excludedApps = HashSet<String>()
private val preferences = context.getSharedPreferences(SHARED_PREFERENCES, Context.MODE_PRIVATE)
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AdvancedFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AdvancedFragment.kt
index 826ebfceea..2e31639676 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AdvancedFragment.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AdvancedFragment.kt
@@ -36,8 +36,8 @@ class AdvancedFragment : ServiceDependentFragment(OnNoService.GoBack) {
targetFragment = WireguardKeyFragment::class
}
- view.findViewById<NavigateCell>(R.id.split_tunnelling).apply {
- targetFragment = SplitTunnellingFragment::class
+ view.findViewById<NavigateCell>(R.id.split_tunneling).apply {
+ targetFragment = SplitTunnelingFragment::class
}
settingsListener.subscribe(this) { settings ->
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ServiceConnection.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ServiceConnection.kt
index 43ecb29ae2..88de95d04a 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ServiceConnection.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ServiceConnection.kt
@@ -12,7 +12,7 @@ class ServiceConnection(private val service: ServiceInstance, val mainActivity:
val keyStatusListener = service.keyStatusListener
val locationInfoCache = service.locationInfoCache
val settingsListener = service.settingsListener
- val splitTunnelling = service.splitTunnelling
+ val splitTunneling = service.splitTunneling
val appVersionInfoCache = AppVersionInfoCache(mainActivity, daemon, settingsListener)
var relayListListener = RelayListListener(daemon, settingsListener)
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ServiceDependentFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ServiceDependentFragment.kt
index 29577058b8..efcdfdec05 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ServiceDependentFragment.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ServiceDependentFragment.kt
@@ -13,7 +13,7 @@ import net.mullvad.mullvadvpn.service.KeyStatusListener
import net.mullvad.mullvadvpn.service.LocationInfoCache
import net.mullvad.mullvadvpn.service.MullvadDaemon
import net.mullvad.mullvadvpn.service.SettingsListener
-import net.mullvad.mullvadvpn.service.SplitTunnelling
+import net.mullvad.mullvadvpn.service.SplitTunneling
import net.mullvad.talpid.ConnectivityListener
abstract class ServiceDependentFragment(val onNoService: OnNoService) : ServiceAwareFragment() {
@@ -59,7 +59,7 @@ abstract class ServiceDependentFragment(val onNoService: OnNoService) : ServiceA
lateinit var settingsListener: SettingsListener
private set
- lateinit var splitTunnelling: SplitTunnelling
+ lateinit var splitTunneling: SplitTunneling
override fun onNewServiceConnection(serviceConnection: ServiceConnection) {
// This method is always either called first or after an `onNoServiceConnection`, so the
@@ -73,7 +73,7 @@ abstract class ServiceDependentFragment(val onNoService: OnNoService) : ServiceA
locationInfoCache = serviceConnection.locationInfoCache
relayListListener = serviceConnection.relayListListener
settingsListener = serviceConnection.settingsListener
- splitTunnelling = serviceConnection.splitTunnelling
+ splitTunneling = serviceConnection.splitTunneling
synchronized(this) {
when (state) {
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/SplitTunnellingFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/SplitTunnelingFragment.kt
index ac0cb8631b..5d2fa1cae5 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/SplitTunnellingFragment.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/SplitTunnelingFragment.kt
@@ -16,7 +16,7 @@ import net.mullvad.mullvadvpn.ui.widget.CustomRecyclerView
import net.mullvad.mullvadvpn.ui.widget.ToggleCell
import net.mullvad.mullvadvpn.util.AdapterWithHeader
-class SplitTunnellingFragment : ServiceDependentFragment(OnNoService.GoToLaunchScreen) {
+class SplitTunnelingFragment : ServiceDependentFragment(OnNoService.GoToLaunchScreen) {
private val excludeApplicationsFadeOutListener = object : AnimatorListener {
override fun onAnimationCancel(animation: Animator) {}
override fun onAnimationRepeat(animation: Animator) {}
@@ -54,7 +54,7 @@ class SplitTunnellingFragment : ServiceDependentFragment(OnNoService.GoToLaunchS
override fun onAttach(context: Context) {
super.onAttach(context)
- appListAdapter = AppListAdapter(context, splitTunnelling)
+ appListAdapter = AppListAdapter(context, splitTunneling)
}
override fun onSafelyCreateView(
@@ -62,7 +62,7 @@ class SplitTunnellingFragment : ServiceDependentFragment(OnNoService.GoToLaunchS
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
- val view = inflater.inflate(R.layout.split_tunnelling, container, false)
+ val view = inflater.inflate(R.layout.split_tunneling, container, false)
view.findViewById<View>(R.id.back).setOnClickListener {
activity?.onBackPressed()
@@ -73,7 +73,7 @@ class SplitTunnellingFragment : ServiceDependentFragment(OnNoService.GoToLaunchS
view.findViewById<CustomRecyclerView>(R.id.app_list).apply {
layoutManager = LinearLayoutManager(parentActivity)
- adapter = AdapterWithHeader(appListAdapter, R.layout.split_tunnelling_header).apply {
+ adapter = AdapterWithHeader(appListAdapter, R.layout.split_tunneling_header).apply {
onHeaderAvailable = { headerView ->
configureHeader(headerView)
titleController.expandedTitleView = headerView.findViewById(R.id.expanded_title)
@@ -88,7 +88,7 @@ class SplitTunnellingFragment : ServiceDependentFragment(OnNoService.GoToLaunchS
override fun onSafelyPause() {
jobTracker.newBackgroundJob("persistExcludedApps") {
- splitTunnelling.persist()
+ splitTunneling.persist()
}
}
@@ -119,14 +119,14 @@ class SplitTunnellingFragment : ServiceDependentFragment(OnNoService.GoToLaunchS
}
}
- if (splitTunnelling.enabled) {
+ if (splitTunneling.enabled) {
jobTracker.newUiJob("showExcludedApplications") {
excludeApplications.visibility = View.VISIBLE
}
}
enabledToggle = header.findViewById<ToggleCell>(R.id.enabled).apply {
- if (splitTunnelling.enabled) {
+ if (splitTunneling.enabled) {
forcefullySetState(CellSwitch.State.ON)
} else {
forcefullySetState(CellSwitch.State.OFF)
@@ -146,20 +146,20 @@ class SplitTunnellingFragment : ServiceDependentFragment(OnNoService.GoToLaunchS
}
private fun enable() {
- splitTunnelling.enabled = true
+ splitTunneling.enabled = true
appListAdapter.enabled = configureSpinner()
excludeApplications.visibility = View.VISIBLE
excludeApplicationsFadeOut.reverse()
}
private fun disable() {
- splitTunnelling.enabled = false
+ splitTunneling.enabled = false
appListAdapter.enabled = false
excludeApplicationsFadeOut.start()
}
private fun configureSpinner(): Boolean {
- if (splitTunnelling.enabled && !appListAdapter.isListReady) {
+ if (splitTunneling.enabled && !appListAdapter.isListReady) {
showLoadingSpinner()
appListAdapter.onListReady = {
@@ -168,7 +168,7 @@ class SplitTunnellingFragment : ServiceDependentFragment(OnNoService.GoToLaunchS
return false
} else {
- return splitTunnelling.enabled
+ return splitTunneling.enabled
}
}
diff --git a/android/src/main/res/layout/advanced.xml b/android/src/main/res/layout/advanced.xml
index ecd6a27620..29175969d0 100644
--- a/android/src/main/res/layout/advanced.xml
+++ b/android/src/main/res/layout/advanced.xml
@@ -52,11 +52,11 @@
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/vertical_space"
mullvad:text="@string/wireguard_key" />
- <net.mullvad.mullvadvpn.ui.widget.NavigateCell android:id="@+id/split_tunnelling"
+ <net.mullvad.mullvadvpn.ui.widget.NavigateCell android:id="@+id/split_tunneling"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/vertical_space"
- mullvad:text="@string/split_tunnelling" />
+ mullvad:text="@string/split_tunneling" />
</LinearLayout>
</net.mullvad.mullvadvpn.ui.widget.ListenableScrollView>
</LinearLayout>
diff --git a/android/src/main/res/layout/split_tunnelling.xml b/android/src/main/res/layout/split_tunneling.xml
index aabc764c95..7d080be09c 100644
--- a/android/src/main/res/layout/split_tunnelling.xml
+++ b/android/src/main/res/layout/split_tunneling.xml
@@ -8,7 +8,7 @@
<TextView android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:text="@string/split_tunnelling"
+ android:text="@string/split_tunneling"
style="@style/SettingsCollapsedHeader" />
<LinearLayout android:layout_width="match_parent"
android:layout_height="match_parent"
@@ -24,7 +24,7 @@
android:layout_height="wrap_content"
android:layout_marginHorizontal="4dp"
android:layout_gravity="center"
- android:text="@string/split_tunnelling"
+ android:text="@string/split_tunneling"
style="@style/SettingsCollapsedHeader" />
</FrameLayout>
<net.mullvad.mullvadvpn.ui.widget.CustomRecyclerView android:id="@+id/app_list"
diff --git a/android/src/main/res/layout/split_tunnelling_header.xml b/android/src/main/res/layout/split_tunneling_header.xml
index e68dfa4f30..12fb12c4f3 100644
--- a/android/src/main/res/layout/split_tunnelling_header.xml
+++ b/android/src/main/res/layout/split_tunneling_header.xml
@@ -11,13 +11,13 @@
android:layout_marginLeft="@dimen/side_margin"
android:layout_marginTop="2dp"
android:layout_marginBottom="12dp"
- android:text="@string/split_tunnelling"
+ android:text="@string/split_tunneling"
style="@style/SettingsExpandedHeader" />
<TextView android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="8dp"
android:paddingHorizontal="@dimen/side_margin"
- android:text="@string/split_tunnelling_description"
+ android:text="@string/split_tunneling_description"
android:textColor="@color/white60"
android:textSize="@dimen/text_small" />
<net.mullvad.mullvadvpn.ui.widget.ToggleCell android:id="@+id/enabled"
diff --git a/android/src/main/res/values/strings.xml b/android/src/main/res/values/strings.xml
index 4d4bd398db..a52aa8ac73 100644
--- a/android/src/main/res/values/strings.xml
+++ b/android/src/main/res/values/strings.xml
@@ -159,8 +159,8 @@
<string name="wireguard_key_verification_failure">Key verification failed</string>
<string name="wireguard_public_key">WireGuard public key</string>
<string name="copied_wireguard_public_key">Copied WireGuard public key to clipboard</string>
- <string name="split_tunnelling">Split tunnelling</string>
- <string name="split_tunnelling_description">Split tunnelling makes it possible to select which
+ <string name="split_tunneling">Split tunneling</string>
+ <string name="split_tunneling_description">Split tunneling makes it possible to select which
applications should not be routed through the VPN tunnel.</string>
<string name="enabled">Enabled</string>
<string name="exclude_applications">Exclude applications</string>