|
@@ -16,6 +16,7 @@ struct LauncherRootView: View {
|
|
|
@State private var showingManageSubscriptionSheet = false
|
|
@State private var showingManageSubscriptionSheet = false
|
|
|
@State private var showingCreateAppSheet = false
|
|
@State private var showingCreateAppSheet = false
|
|
|
@State private var previouslyPremiumUnlocked = false
|
|
@State private var previouslyPremiumUnlocked = false
|
|
|
|
|
+ @State private var startupPaywallTask: Task<Void, Never>?
|
|
|
@State private var customApps: [LauncherApp] = []
|
|
@State private var customApps: [LauncherApp] = []
|
|
|
@State private var appOrder: [UUID] = []
|
|
@State private var appOrder: [UUID] = []
|
|
|
@State private var draggedAppID: UUID?
|
|
@State private var draggedAppID: UUID?
|
|
@@ -197,6 +198,20 @@ struct LauncherRootView: View {
|
|
|
selectedAppID: id
|
|
selectedAppID: id
|
|
|
)
|
|
)
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ startupPaywallTask?.cancel()
|
|
|
|
|
+ startupPaywallTask = Task {
|
|
|
|
|
+ try? await Task.sleep(nanoseconds: 5_000_000_000)
|
|
|
|
|
+ guard !Task.isCancelled else { return }
|
|
|
|
|
+ await premiumStore.refreshEntitlements()
|
|
|
|
|
+ guard !premiumStore.isPremiumUnlocked else { return }
|
|
|
|
|
+ guard !showingPremiumScreen else { return }
|
|
|
|
|
+ showingPremiumScreen = true
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ .onDisappear {
|
|
|
|
|
+ startupPaywallTask?.cancel()
|
|
|
|
|
+ startupPaywallTask = nil
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|