@@ -227,34 +227,36 @@ extension ShapeStyle where Self == EllipticalGradient {
227227}
228228
229229@frozen public struct AngularGradient : ShapeStyle , Sendable {
230- @available ( * , unavailable)
231- public init ( gradient: Gradient , center: UnitPoint , startAngle: Angle = . zero, endAngle: Angle = . zero) {
232- fatalError ( )
230+ let gradient : Gradient
231+ let center : UnitPoint
232+ let startAngle : Angle
233+ let endAngle : Angle
234+
235+ public init ( gradient: Gradient , center: UnitPoint , startAngle: Angle = . zero, endAngle: Angle = . degrees( 360 ) ) {
236+ self . gradient = gradient
237+ self . center = center
238+ self . startAngle = startAngle
239+ self . endAngle = endAngle
233240 }
234241
235- @available ( * , unavailable)
236242 public init ( colors: [ Color ] , center: UnitPoint , startAngle: Angle , endAngle: Angle ) {
237- fatalError ( )
243+ self . init ( gradient : Gradient ( colors : colors ) , center : center , startAngle : startAngle , endAngle : endAngle )
238244 }
239245
240- @available ( * , unavailable)
241246 public init ( stops: [ Gradient . Stop ] , center: UnitPoint , startAngle: Angle , endAngle: Angle ) {
242- fatalError ( )
247+ self . init ( gradient : Gradient ( stops : stops ) , center : center , startAngle : startAngle , endAngle : endAngle )
243248 }
244249
245- @available ( * , unavailable)
246250 public init ( gradient: Gradient , center: UnitPoint , angle: Angle = . zero) {
247- fatalError ( )
251+ self . init ( gradient : gradient , center : center , startAngle : angle , endAngle : Angle ( radians : angle . radians + 2.0 * Double . pi ) )
248252 }
249253
250- @available ( * , unavailable)
251254 public init ( colors: [ Color ] , center: UnitPoint , angle: Angle = . zero) {
252- fatalError ( )
255+ self . init ( gradient : Gradient ( colors : colors ) , center : center , angle : angle )
253256 }
254257
255- @available ( * , unavailable)
256258 public init ( stops: [ Gradient . Stop ] , center: UnitPoint , angle: Angle = . zero) {
257- fatalError ( )
259+ self . init ( gradient : Gradient ( stops : stops ) , center : center , angle : angle )
258260 }
259261
260262// public typealias Resolved = Never
@@ -266,55 +268,46 @@ extension AngularGradient : View {
266268
267269extension AngularGradient : SkipUIBridging {
268270 public var Java_view : any SkipUI . View {
269- fatalError ( )
271+ let colors = gradient. stops. map { Color . Java_color ( for: $0. color. spec) }
272+ let locations = gradient. stops. map ( \. location)
273+ return SkipUI . AngularGradient ( colors: colors, locations: locations, centerX: center. x, centerY: center. y, startAngle: startAngle. radians, endAngle: endAngle. radians)
270274 }
271275}
272276
273- @available ( * , unavailable)
274277extension ShapeStyle where Self == AngularGradient {
275- @available ( * , unavailable)
276278 public static func angularGradient( _ gradient: Gradient , center: UnitPoint , startAngle: Angle , endAngle: Angle ) -> AngularGradient {
277- fatalError ( )
279+ return AngularGradient ( gradient : gradient , center : center , startAngle : startAngle , endAngle : endAngle )
278280 }
279281
280- @available ( * , unavailable)
281282 public static func angularGradient( colors: [ Color ] , center: UnitPoint , startAngle: Angle , endAngle: Angle ) -> AngularGradient {
282- fatalError ( )
283+ return AngularGradient ( colors : colors , center : center , startAngle : startAngle , endAngle : endAngle )
283284 }
284285
285- @available ( * , unavailable)
286286 public static func angularGradient( stops: [ Gradient . Stop ] , center: UnitPoint , startAngle: Angle , endAngle: Angle ) -> AngularGradient {
287- fatalError ( )
287+ return AngularGradient ( stops : stops , center : center , startAngle : startAngle , endAngle : endAngle )
288288 }
289289}
290290
291- @available ( * , unavailable)
292291extension ShapeStyle where Self == AngularGradient {
293- @available ( * , unavailable)
294292 public static func conicGradient( _ gradient: Gradient , center: UnitPoint , angle: Angle = . zero) -> AngularGradient {
295- fatalError ( )
293+ return AngularGradient ( gradient : gradient , center : center , angle : angle )
296294 }
297295
298- @available ( * , unavailable)
299296 public static func conicGradient( colors: [ Color ] , center: UnitPoint , angle: Angle = . zero) -> AngularGradient {
300- fatalError ( )
297+ return AngularGradient ( colors : colors , center : center , angle : angle )
301298 }
302299
303- @available ( * , unavailable)
304300 public static func conicGradient( stops: [ Gradient . Stop ] , center: UnitPoint , angle: Angle = . zero) -> AngularGradient {
305- fatalError ( )
301+ return AngularGradient ( stops : stops , center : center , angle : angle )
306302 }
307303}
308304
309- @available ( * , unavailable)
310305extension ShapeStyle where Self == AngularGradient {
311- @available ( * , unavailable)
312306 public static func angularGradient( _ gradient: AnyGradient , center: UnitPoint = . center, startAngle: Angle , endAngle: Angle ) -> some ShapeStyle {
313- stubShapeStyle ( )
307+ return AngularGradient ( gradient : gradient . gradient , center : center , startAngle : startAngle , endAngle : endAngle )
314308 }
315309
316- @available ( * , unavailable)
317310 public static func conicGradient( _ gradient: AnyGradient , center: UnitPoint = . center, angle: Angle = . zero) -> some ShapeStyle {
318- stubShapeStyle ( )
311+ return AngularGradient ( gradient : gradient . gradient , center : center , angle : angle )
319312 }
320313}
0 commit comments