constants.dart 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import 'package:flutter/cupertino.dart';
  2. import 'package:get/get.dart';
  3. import '../../resource/assets.gen.dart';
  4. import '../../resource/string.gen.dart';
  5. enum RecordStatus {
  6. pending,
  7. recording,
  8. paused,
  9. }
  10. extension RecordStatusExtension on RecordStatus {
  11. String get desc {
  12. switch (this) {
  13. case RecordStatus.pending:
  14. return StringName.recordStatusPending.tr;
  15. case RecordStatus.recording:
  16. return StringName.recordStatusRecording.tr;
  17. case RecordStatus.paused:
  18. return StringName.recordStatusPaused.tr;
  19. }
  20. }
  21. ImageProvider get actionButtonImage {
  22. switch (this) {
  23. case RecordStatus.pending:
  24. return Assets.images.iconRecordStart.provider();
  25. case RecordStatus.recording:
  26. return Assets.images.iconRecordPause.provider();
  27. case RecordStatus.paused:
  28. return Assets.images.iconRecordResume.provider();
  29. }
  30. }
  31. ImageProvider get saveButtonImage {
  32. return this == RecordStatus.pending
  33. ? Assets.images.iconRecordSaveDisable.provider()
  34. : Assets.images.iconRecordSaveEnable.provider();
  35. }
  36. ImageProvider get cancelButtonImage {
  37. return this == RecordStatus.pending
  38. ? Assets.images.iconRecordCancelDisable.provider()
  39. : Assets.images.iconRecordCancelEnable.provider();
  40. }
  41. RecordStatus get nextStatus {
  42. switch (this) {
  43. case RecordStatus.pending:
  44. return RecordStatus.recording;
  45. case RecordStatus.recording:
  46. return RecordStatus.paused;
  47. case RecordStatus.paused:
  48. return RecordStatus.recording;
  49. }
  50. }
  51. }