diff options
Diffstat (limited to 'android/src')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt | 20 |
1 files changed, 13 insertions, 7 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 b55df1f19c..9b8fffd867 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt @@ -27,6 +27,7 @@ class MainActivity : FragmentActivity() { val problemReport = MullvadProblemReport() val serviceNotifier = EventNotifier<ServiceConnection?>(null) + private var quitting = false private var service: MullvadVpnService.LocalBinder? = null private var serviceConnection: ServiceConnection? = null private var shouldConnect = false @@ -67,6 +68,8 @@ class MainActivity : FragmentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + quitting = false + problemReport.logDirectory.complete(filesDir) setContentView(R.layout.main) @@ -85,15 +88,17 @@ class MainActivity : FragmentActivity() { android.util.Log.d("mullvad", "Starting main activity") super.onStart() - val intent = Intent(this, MullvadVpnService::class.java) + if (!quitting) { + val intent = Intent(this, MullvadVpnService::class.java) - if (Build.VERSION.SDK_INT >= 26) { - startForegroundService(intent) - } else { - startService(intent) - } + if (Build.VERSION.SDK_INT >= 26) { + startForegroundService(intent) + } else { + startService(intent) + } - bindService(intent, serviceConnectionManager, 0) + bindService(intent, serviceConnectionManager, 0) + } } override fun onActivityResult(requestCode: Int, resultCode: Int, resultData: Intent?) { @@ -164,6 +169,7 @@ class MainActivity : FragmentActivity() { } fun quit() { + quitting = true service?.stop() finishAndRemoveTask() } |
