Skip to content

Commit

Permalink
Updated ConnectToServerUseCase to be ToggleServerConnectionUseCase to…
Browse files Browse the repository at this point in the history
… be able to turn on and off a tunnel to a server
  • Loading branch information
chRyNaN committed Mar 5, 2025
1 parent a19f928 commit 3354589
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,20 @@ package com.mooncloak.vpn.app.shared.api.server.usecase
import com.mooncloak.kodetools.konstruct.annotations.Inject
import com.mooncloak.vpn.api.shared.server.Server
import com.mooncloak.vpn.api.shared.vpn.VPNConnectionManager
import com.mooncloak.vpn.api.shared.vpn.connectedTo
import com.mooncloak.vpn.app.shared.di.PresentationScoped

@PresentationScoped
public class ConnectToServerUseCase @Inject public constructor(
public class ToggleServerConnectionUseCase @Inject public constructor(
private val vpnConnectionManager: VPNConnectionManager
) {

public suspend operator fun invoke(server: Server): Boolean {
vpnConnectionManager.connect(server)
if (vpnConnectionManager.connection.value.connectedTo(server)) {
vpnConnectionManager.disconnect()
} else {
vpnConnectionManager.connect(server)
}

return true
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import com.mooncloak.vpn.api.shared.location.RegionDetails
import com.mooncloak.vpn.api.shared.server.Server
import com.mooncloak.vpn.api.shared.vpn.VPNConnectionManager
import com.mooncloak.vpn.app.shared.api.server.usecase.ConnectToServerInLocationCodeUseCase
import com.mooncloak.vpn.app.shared.api.server.usecase.ConnectToServerUseCase
import com.mooncloak.vpn.app.shared.api.server.usecase.ToggleServerConnectionUseCase
import com.mooncloak.vpn.app.shared.api.service.ServiceSubscriptionFlowProvider
import com.mooncloak.vpn.app.shared.di.FeatureScoped
import com.mooncloak.vpn.app.shared.feature.country.model.CountryListLayoutStateModel
Expand All @@ -41,7 +41,7 @@ import org.jetbrains.compose.resources.getString
public class CountryListViewModel @Inject public constructor(
private val getCountryPage: GetCountryPageUseCase,
private val getServerPage: GetServerPageUseCase,
private val connectToServer: ConnectToServerUseCase,
private val connectToServer: ToggleServerConnectionUseCase,
private val connectToServerInLocationCode: ConnectToServerInLocationCodeUseCase,
private val serverConnectionManager: VPNConnectionManager,
private val getServiceSubscriptionFlow: ServiceSubscriptionFlowProvider
Expand Down

0 comments on commit 3354589

Please sign in to comment.