Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 303579d9 authored by Guillaume Jacquart's avatar Guillaume Jacquart
Browse files

Merge branch '5651-fix_stop_orbot_on_16.6.2' into 'main'

5651: fix stop orbot service.

See merge request !10
parents 22ed268d d76e5af0
Loading
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -6,7 +6,7 @@ buildscript {

    ext.kotlin_version = "1.6.10"
    ext.orbot_version = "orbot-16.6.2"
    ext.advanced_privacy_version = "1.2.0"
    ext.advanced_privacy_version = "1.3.0"

    repositories {
        google()
+23 −5
Original line number Diff line number Diff line
@@ -32,8 +32,8 @@ import foundation.e.privacymodules.ipscramblermodule.IIpScramblerModule
import foundation.e.privacymodules.ipscramblermodule.IIpScramblerModule.Listener
import foundation.e.privacymodules.ipscramblermodule.IIpScramblerModule.Status
import java.security.InvalidParameterException
import java.util.*
import org.torproject.android.service.OrbotConstants
import org.torproject.android.service.OrbotConstants.ACTION_STOP_FOREGROUND_TASK
import org.torproject.android.service.OrbotService
import org.torproject.android.service.util.Prefs

@@ -56,6 +56,18 @@ class IpScramblerModule(private val context: Context): IIpScramblerModule {
    private val localBroadcastReceiver: BroadcastReceiver = object : BroadcastReceiver() {
        override fun onReceive(context: Context, intent: Intent) {
            val action = intent.action ?: return
            if (action == OrbotConstants.ACTION_RUNNING_SYNC) {
                try {
                    intent.getStringExtra(OrbotConstants.EXTRA_STATUS)?.let {
                        val newStatus = Status.valueOf(it)
                        currentStatus = newStatus
                    }
                } catch (e: Exception) {
                    Log.e(TAG, "Can't parse Orbot service status.")
                }
                return
            }

            val msg = messageHandler.obtainMessage()
            msg.obj = action
            msg.data = intent.extras
@@ -168,8 +180,7 @@ class IpScramblerModule(private val context: Context): IIpScramblerModule {
        ).commit()

        if (isServiceRunning()) {
            sendIntentToService(OrbotConstants.ACTION_STOP_VPN)
            sendIntentToService(OrbotConstants.ACTION_START_VPN)
            sendIntentToService(OrbotConstants.ACTION_RESTART_VPN)
        }
    }

@@ -218,12 +229,19 @@ class IpScramblerModule(private val context: Context): IIpScramblerModule {
    }

    override fun stop() {
        updateStatus(Status.STOPPING)

        Prefs.putUseVpn(false)
        Prefs.putStartOnBoot(false)

        sendIntentToService(OrbotConstants.ACTION_STOP_VPN)
        sendIntentToService(OrbotConstants.ACTION_STOP)
        context.stopService(Intent(context, OrbotService::class.java))
        sendIntentToService(
            action = OrbotConstants.ACTION_STOP,
            extra = Bundle().apply { putBoolean(ACTION_STOP_FOREGROUND_TASK, true) }
        )
        Handler(Looper.getMainLooper()).postDelayed({
            requestStatus()
        }, 1000)
    }

    override fun requestStatus() {