Skip to content

Commit 0d5d8ba

Browse files
reduce scope of limited login binding
1 parent 2923384 commit 0d5d8ba

File tree

1 file changed

+15
-13
lines changed

1 file changed

+15
-13
lines changed

FirebaseSwiftUI/FirebaseFacebookSwiftUI/Sources/Views/FacebookButtonView.swift

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,34 +10,36 @@ public struct FacebookButtonView {
1010
@Environment(AuthService.self) private var authService
1111
@State private var errorMessage = ""
1212
@State private var showCanceledAlert = false
13-
@State private var showUserTrackingAlert = false
1413
@State private var limitedLogin = true
14+
@State private var showUserTrackingAlert = false
15+
@State private var trackingAuthorizationStatus: ATTrackingManager
16+
.AuthorizationStatus = .notDetermined
1517

16-
public init() {}
18+
public init() {
19+
_trackingAuthorizationStatus = State(initialValue: ATTrackingManager
20+
.trackingAuthorizationStatus)
21+
}
1722

1823
private var limitedLoginBinding: Binding<Bool> {
1924
Binding(
2025
get: { self.limitedLogin },
2126
set: { newValue in
22-
let trackingStatus = ATTrackingManager.trackingAuthorizationStatus
23-
if newValue == true, trackingStatus != .authorized {
24-
self.showUserTrackingAlert = true
25-
} else {
27+
if trackingAuthorizationStatus == .authorized {
2628
self.limitedLogin = newValue
29+
} else {
30+
self.limitedLogin = false
2731
}
2832
}
2933
)
3034
}
3135

3236
func requestTrackingPermission() {
3337
ATTrackingManager.requestTrackingAuthorization { status in
34-
switch status {
35-
case .authorized:
36-
print("Tracking authorized")
37-
case .denied, .restricted, .notDetermined:
38-
print("Tracking not authorized")
39-
@unknown default:
40-
print("Unknown status")
38+
Task { @MainActor in
39+
trackingAuthorizationStatus = status
40+
if status != .authorized {
41+
showUserTrackingAlert = true
42+
}
4143
}
4244
}
4345
}

0 commit comments

Comments
 (0)