From 349b56b2e22d9eb91ceb7fc6d4f608b4aea68c01 Mon Sep 17 00:00:00 2001 From: Zane Schepke Date: Wed, 29 Oct 2025 15:20:08 -0400 Subject: [PATCH] fix: prevent backup restore issues by resetting active tuns storage --- .../com/zaneschepke/wireguardautotunnel/MainActivity.kt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/zaneschepke/wireguardautotunnel/MainActivity.kt b/app/src/main/java/com/zaneschepke/wireguardautotunnel/MainActivity.kt index 0e939dec..36add5a9 100644 --- a/app/src/main/java/com/zaneschepke/wireguardautotunnel/MainActivity.kt +++ b/app/src/main/java/com/zaneschepke/wireguardautotunnel/MainActivity.kt @@ -37,6 +37,7 @@ import com.zaneschepke.wireguardautotunnel.data.AppDatabase import com.zaneschepke.wireguardautotunnel.data.model.AppMode import com.zaneschepke.wireguardautotunnel.domain.model.TunnelConfig import com.zaneschepke.wireguardautotunnel.domain.repository.AppStateRepository +import com.zaneschepke.wireguardautotunnel.domain.repository.TunnelRepository import com.zaneschepke.wireguardautotunnel.domain.sideeffect.GlobalSideEffect import com.zaneschepke.wireguardautotunnel.ui.LocalIsAndroidTV import com.zaneschepke.wireguardautotunnel.ui.LocalNavController @@ -87,16 +88,17 @@ import com.zaneschepke.wireguardautotunnel.viewmodel.SplitTunnelViewModel import com.zaneschepke.wireguardautotunnel.viewmodel.TunnelViewModel import dagger.hilt.android.AndroidEntryPoint import de.raphaelebner.roomdatabasebackup.core.RoomBackup -import java.util.* -import javax.inject.Inject import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.launch import xyz.teamgravity.pin_lock_compose.PinManager +import java.util.* +import javax.inject.Inject @AndroidEntryPoint class MainActivity : AppCompatActivity() { @Inject lateinit var appStateRepository: AppStateRepository + @Inject lateinit var tunnelRepository: TunnelRepository @Inject lateinit var appDatabase: AppDatabase private lateinit var roomBackup: RoomBackup @@ -447,6 +449,8 @@ class MainActivity : AppCompatActivity() { fun performBackup() = lifecycleScope.launch { + // reset active tuns before backup to prevent trying to start them without permission on restore + tunnelRepository.resetActiveTunnels() roomBackup .database(appDatabase) .backupLocation(RoomBackup.BACKUP_FILE_LOCATION_CUSTOM_DIALOG)