import 'package:flutter/material.dart'; class SyncIndicatorTheme extends ThemeExtension { final Color textColor; final Color syncedBackgroundColor; final Color notSyncedIconColor; final Color notSyncedBackgroundColor; SyncIndicatorTheme( {required this.textColor, required this.syncedBackgroundColor, required this.notSyncedIconColor, required this.notSyncedBackgroundColor}); @override SyncIndicatorTheme copyWith({ Color? textColor, Color? syncedBackgroundColor, Color? notSyncedIconColor, Color? notSyncedBackgroundColor, }) => SyncIndicatorTheme( textColor: textColor ?? this.textColor, syncedBackgroundColor: syncedBackgroundColor ?? this.syncedBackgroundColor, notSyncedIconColor: notSyncedIconColor ?? this.notSyncedIconColor, notSyncedBackgroundColor: notSyncedBackgroundColor ?? this.notSyncedBackgroundColor); @override SyncIndicatorTheme lerp(ThemeExtension? other, double t) { if (other is! SyncIndicatorTheme) { return this; } return SyncIndicatorTheme( textColor: Color.lerp(textColor, other.textColor, t) ?? textColor, syncedBackgroundColor: Color.lerp(syncedBackgroundColor, other.syncedBackgroundColor, t) ?? syncedBackgroundColor, notSyncedIconColor: Color.lerp(notSyncedIconColor, other.notSyncedIconColor, t) ?? notSyncedIconColor, notSyncedBackgroundColor: Color.lerp( notSyncedBackgroundColor, other.notSyncedBackgroundColor, t) ?? notSyncedBackgroundColor); } }