Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,11 @@ import com.google.gson.reflect.TypeToken
import com.masterdns.vpn.App
import com.masterdns.vpn.MainActivity
import com.masterdns.vpn.R
import com.masterdns.vpn.data.local.AppDatabase
import com.masterdns.vpn.data.repository.ProfileRepository
import com.masterdns.vpn.util.ConfigGenerator
import com.masterdns.vpn.util.GlobalSettingsStore
import com.masterdns.vpn.util.VpnManager
import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.*
import java.io.File
import java.io.FileInputStream
Expand All @@ -28,8 +29,10 @@ import java.net.InetAddress
import java.net.InetSocketAddress
import java.net.ServerSocket
import java.net.Socket
import javax.inject.Inject
import kotlin.coroutines.coroutineContext

@AndroidEntryPoint
class MasterDnsVpnService : VpnService() {

companion object {
Expand Down Expand Up @@ -83,6 +86,9 @@ class MasterDnsVpnService : VpnService() {
@Volatile
private var activeLocalSocksPort: Int = DEFAULT_SOCKS_PORT

@Inject
lateinit var profileRepository: ProfileRepository

/**
* Close any ParcelFileDescriptor left from a previous session before we
* attempt establish() again. The fd must be closed AFTER the Go core
Expand Down Expand Up @@ -136,8 +142,7 @@ class MasterDnsVpnService : VpnService() {
acquireWakeLock()

// Load profile from DB
val db = AppDatabase.getInstance(this@MasterDnsVpnService)
val profile = db.profileDao().getProfileById(profileId)
val profile = profileRepository.getProfileById(profileId)
?: throw IllegalStateException("Profile not found")
val socksPort = profile.listenPort.takeIf { it in 1..65535 } ?: DEFAULT_SOCKS_PORT
activeLocalSocksPort = socksPort
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,19 +8,25 @@ import android.service.quicksettings.TileService
import androidx.annotation.RequiresApi
import com.masterdns.vpn.MainActivity
import com.masterdns.vpn.R
import com.masterdns.vpn.data.local.AppDatabase
import com.masterdns.vpn.data.repository.ProfileRepository
import com.masterdns.vpn.util.VpnManager
import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.SupervisorJob
import kotlinx.coroutines.cancel
import kotlinx.coroutines.launch
import javax.inject.Inject

@AndroidEntryPoint
@RequiresApi(Build.VERSION_CODES.N)
class VpnTileService : TileService() {

private val tileScope = CoroutineScope(SupervisorJob() + Dispatchers.Main)

@Inject
lateinit var profileRepository: ProfileRepository

override fun onStartListening() {
super.onStartListening()
updateTile()
Expand Down Expand Up @@ -50,9 +56,7 @@ class VpnTileService : TileService() {
}

tileScope.launch(Dispatchers.IO) {
val selectedProfile = AppDatabase.getInstance(this@VpnTileService)
.profileDao()
.getSelectedProfile()
val selectedProfile = profileRepository.getSelectedProfile()

launch(Dispatchers.Main) {
if (selectedProfile != null) {
Expand Down
Loading