When I try to use custom colours in Live Activities, the activity in the Lock Screen is not appear at all. In the code, I use an extension to conform Color to Codable, otherwise is not compile.
public typealias TimeTrackingStatus = ContentState
public struct ContentState: Codable, Hashable {
var elapsedTime: Int
var remainingTime: Int
var meetingDuration: Double
var mainColor: Color
}
}
extension Color: Codable {
// Full code in the link
}
And here is the Live Activity view:
struct TimeTrackingWidgetView: View {
let context: ActivityViewContext<MeetingTimerAttributes>
var body: some View {
VStack {
Text("Total Time: \(Int(context.state.meetingDuration)) minutes")
.padding(.top, 10)
.bold()
HStack {
VStack(alignment: .leading) {
Text("Minutes Elapsed")
.font(.caption)
Label("\(context.state.elapsedTime.secondsToMinutes())", systemImage: "hourglass.bottomhalf.fill")
}
Spacer()
VStack(alignment: .trailing) {
Text("Minutes Remaining")
.font(.caption)
Label("\(context.state.remainingTime.secondsToMinutes())", systemImage: "hourglass.tophalf.fill")
.labelStyle(.titleAndIcon)
}
}
.padding(.init(top: 5, leading: 15, bottom: 10, trailing: 15))
}
.background(context.state.mainColor) <---- This line
}
}
If I use .background(context.state.mainColor) the Live activity is not appear but if I use background(.red), for example, it works just fine. The color are sRGB created in the assets catalog, like this one:
Any idea?