Skip to content
Closed
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
8 changes: 1 addition & 7 deletions NetBird/Source/App/ViewModels/MainViewModel.swift
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ class ViewModel: ObservableObject {
UserDefaults.standard.synchronize()
}
}
@Published var forceRelayConnection = true
@Published var forceRelayConnection = false
@Published var showForceRelayAlert = false
@Published var connectOnDemand = false
@Published var showOnDemandAlert = false
Expand Down Expand Up @@ -616,14 +616,8 @@ class ViewModel: ObservableObject {

func getForcedRelayConnectionEnabled() -> Bool {
let userDefaults = UserDefaults(suiteName: GlobalConstants.userPreferencesSuiteName)
#if os(iOS)
userDefaults?.register(defaults: [GlobalConstants.keyForceRelayConnection: true])
return userDefaults?.bool(forKey: GlobalConstants.keyForceRelayConnection) ?? true
#else
// forced relay battery optimization not need on Apple Tv
userDefaults?.register(defaults: [GlobalConstants.keyForceRelayConnection: false])
return userDefaults?.bool(forKey: GlobalConstants.keyForceRelayConnection) ?? false
#endif
}

func setConnectOnDemand(isEnabled: Bool) {
Expand Down
6 changes: 3 additions & 3 deletions NetBirdTests/SharedUserDefaultsTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -51,11 +51,11 @@ final class SharedUserDefaultsTests: XCTestCase {
XCTAssertFalse(value, "Login required flag should be false after clearing")
}

func testForceRelayConnectionDefaultsToTrue() throws {
func testForceRelayConnectionDefaultsToFalse() throws {
let defaults = try XCTUnwrap(userDefaults)
defaults.removeObject(forKey: GlobalConstants.keyForceRelayConnection)
defaults.register(defaults: [GlobalConstants.keyForceRelayConnection: true])
defaults.register(defaults: [GlobalConstants.keyForceRelayConnection: false])
let value = defaults.bool(forKey: GlobalConstants.keyForceRelayConnection)
XCTAssertTrue(value, "Force relay connection should default to true")
XCTAssertFalse(value, "Force relay connection should default to false")
}
}
8 changes: 3 additions & 5 deletions NetbirdKit/EnvVarPackager.swift
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,10 @@ class EnvVarPackager {
return nil
}

#if os(iOS)
let defaultForceRelay = true
#else
// Forced relay battery optimization not needed on Apple TV
// P2P connections are more efficient than relay for both performance
// and battery life. The previous default of true was a workaround for
// ICE stability issues that have since been fixed upstream.
let defaultForceRelay = false
#endif

defaults.register(defaults: [GlobalConstants.keyForceRelayConnection: defaultForceRelay])
let forceRelayConnection = defaults.bool(forKey: GlobalConstants.keyForceRelayConnection)
Expand Down