[AltWidget] Fixes widgets not appearing pre-iOS 17

This commit is contained in:
Riley Testut
2023-09-11 12:04:49 -05:00
committed by Magesh K
parent 5d5da9e910
commit e34f3ce201
2 changed files with 16 additions and 11 deletions

View File

@@ -18,9 +18,6 @@ struct AltWidgetBundle: WidgetBundle
IconLockScreenWidget() IconLockScreenWidget()
TextLockScreenWidget() TextLockScreenWidget()
if #available(iOS 17, *)
{
ActiveAppsWidget() ActiveAppsWidget()
} }
} }
}

View File

@@ -21,18 +21,27 @@ private extension Color
static let altGradientExtraDark = Color.init(.displayP3, red: 2.0/255.0, green: 82.0/255.0, blue: 103.0/255.0) static let altGradientExtraDark = Color.init(.displayP3, red: 2.0/255.0, green: 82.0/255.0, blue: 103.0/255.0)
} }
@available(iOS 17, *) //@available(iOS 17, *)
struct ActiveAppsWidget: Widget struct ActiveAppsWidget: Widget
{ {
private let kind: String = "ActiveApps" private let kind: String = "ActiveApps"
public var body: some WidgetConfiguration { public var body: some WidgetConfiguration {
StaticConfiguration(kind: kind, provider: AppsTimelineProvider()) { entry in if #available(iOS 17, *)
{
return StaticConfiguration(kind: kind, provider: AppsTimelineProvider()) { entry in
ActiveAppsWidgetView(entry: entry) ActiveAppsWidgetView(entry: entry)
} }
.supportedFamilies([.systemMedium]) .supportedFamilies([.systemMedium])
.configurationDisplayName("AltWidget") .configurationDisplayName("AltWidget")
.description("View remaining days until your active apps expire.") .description("View remaining days until your active apps expire. Tap any timer to refresh them in the background.")
}
else
{
// Can't mark ActiveAppsWidget as requiring iOS 17 directly without causing crash on older versions.
// So instead we just return EmptyWidgetConfiguration pre-iOS 17.
return EmptyWidgetConfiguration()
}
} }
} }
@@ -139,7 +148,6 @@ private struct ActiveAppsWidgetView: View
} }
#Preview(as: .systemMedium) { #Preview(as: .systemMedium) {
guard #available(iOS 17, *) else { fatalError() }
return ActiveAppsWidget() return ActiveAppsWidget()
} timeline: { } timeline: {
let expiredDate = Date().addingTimeInterval(1 * 60 * 60 * 24 * 7) let expiredDate = Date().addingTimeInterval(1 * 60 * 60 * 24 * 7)