slot_assignment.dart 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import 'package:flutter/foundation.dart';
  2. /// A persisted app choice for one shortcut slot.
  3. @immutable
  4. class SlotAssignment {
  5. const SlotAssignment({
  6. required this.packageName,
  7. required this.activityName,
  8. required this.label,
  9. });
  10. final String packageName;
  11. final String activityName;
  12. final String label;
  13. factory SlotAssignment.fromMap(Map<dynamic, dynamic> map) {
  14. return SlotAssignment(
  15. packageName: (map['package'] as String?) ?? '',
  16. activityName: (map['activity'] as String?) ?? '',
  17. label: (map['label'] as String?) ?? '',
  18. );
  19. }
  20. Map<String, Object?> toMap() => {
  21. 'package': packageName,
  22. 'activity': activityName,
  23. 'label': label,
  24. };
  25. @override
  26. bool operator ==(Object other) {
  27. return other is SlotAssignment &&
  28. other.packageName == packageName &&
  29. other.activityName == activityName;
  30. }
  31. @override
  32. int get hashCode => Object.hash(packageName, activityName);
  33. @override
  34. String toString() => label.isEmpty ? packageName : label;
  35. }