gallery_type.dart 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  1. enum GalleryType {
  2. homepage,
  3. archive,
  4. uncategorized,
  5. hidden,
  6. favorite,
  7. trash,
  8. localFolder,
  9. // indicator for gallery view of collections shared with the user
  10. sharedCollection,
  11. ownedCollection,
  12. searchResults
  13. }
  14. extension GalleyTypeExtension on GalleryType {
  15. bool showAddToAlbum() {
  16. switch (this) {
  17. case GalleryType.homepage:
  18. case GalleryType.archive:
  19. case GalleryType.localFolder:
  20. case GalleryType.ownedCollection:
  21. case GalleryType.searchResults:
  22. case GalleryType.favorite:
  23. return true;
  24. case GalleryType.hidden:
  25. case GalleryType.uncategorized:
  26. case GalleryType.trash:
  27. case GalleryType.sharedCollection:
  28. return false;
  29. }
  30. }
  31. bool showMoveToAlbum() {
  32. switch (this) {
  33. case GalleryType.ownedCollection:
  34. case GalleryType.uncategorized:
  35. return true;
  36. case GalleryType.hidden:
  37. case GalleryType.favorite:
  38. case GalleryType.searchResults:
  39. case GalleryType.archive:
  40. case GalleryType.localFolder:
  41. case GalleryType.homepage:
  42. case GalleryType.trash:
  43. case GalleryType.sharedCollection:
  44. return false;
  45. }
  46. }
  47. // showDeleteTopOption indicates whether we should show
  48. // delete icon as iconButton
  49. bool showDeleteIconOption() {
  50. switch (this) {
  51. case GalleryType.ownedCollection:
  52. case GalleryType.searchResults:
  53. case GalleryType.homepage:
  54. case GalleryType.favorite:
  55. case GalleryType.localFolder:
  56. case GalleryType.uncategorized:
  57. return true;
  58. case GalleryType.trash:
  59. case GalleryType.archive:
  60. case GalleryType.hidden:
  61. case GalleryType.sharedCollection:
  62. return false;
  63. }
  64. }
  65. bool showDeleteOption() {
  66. switch (this) {
  67. case GalleryType.ownedCollection:
  68. case GalleryType.searchResults:
  69. case GalleryType.homepage:
  70. case GalleryType.favorite:
  71. case GalleryType.uncategorized:
  72. case GalleryType.archive:
  73. case GalleryType.hidden:
  74. case GalleryType.localFolder:
  75. return true;
  76. case GalleryType.trash:
  77. case GalleryType.sharedCollection:
  78. return false;
  79. }
  80. }
  81. bool showCreateLink() {
  82. switch (this) {
  83. case GalleryType.ownedCollection:
  84. case GalleryType.searchResults:
  85. case GalleryType.homepage:
  86. case GalleryType.favorite:
  87. case GalleryType.archive:
  88. case GalleryType.uncategorized:
  89. return true;
  90. case GalleryType.hidden:
  91. case GalleryType.localFolder:
  92. case GalleryType.trash:
  93. case GalleryType.sharedCollection:
  94. return false;
  95. }
  96. }
  97. bool showRemoveFromAlbum() {
  98. switch (this) {
  99. case GalleryType.ownedCollection:
  100. case GalleryType.sharedCollection:
  101. return true;
  102. case GalleryType.hidden:
  103. case GalleryType.uncategorized:
  104. case GalleryType.favorite:
  105. case GalleryType.searchResults:
  106. case GalleryType.homepage:
  107. case GalleryType.archive:
  108. case GalleryType.localFolder:
  109. case GalleryType.trash:
  110. return false;
  111. }
  112. }
  113. bool showArchiveOption() {
  114. switch (this) {
  115. case GalleryType.ownedCollection:
  116. case GalleryType.homepage:
  117. case GalleryType.uncategorized:
  118. return true;
  119. case GalleryType.hidden:
  120. case GalleryType.favorite:
  121. case GalleryType.searchResults:
  122. case GalleryType.archive:
  123. case GalleryType.localFolder:
  124. case GalleryType.trash:
  125. case GalleryType.sharedCollection:
  126. return false;
  127. }
  128. }
  129. bool showUnArchiveOption() {
  130. return this == GalleryType.archive;
  131. }
  132. bool showHideOption() {
  133. switch (this) {
  134. case GalleryType.ownedCollection:
  135. case GalleryType.homepage:
  136. case GalleryType.searchResults:
  137. case GalleryType.archive:
  138. case GalleryType.uncategorized:
  139. return true;
  140. case GalleryType.hidden:
  141. case GalleryType.localFolder:
  142. case GalleryType.trash:
  143. case GalleryType.favorite:
  144. case GalleryType.sharedCollection:
  145. return false;
  146. }
  147. }
  148. bool showUnHideOption() {
  149. return this == GalleryType.hidden;
  150. }
  151. bool showFavoriteOption() {
  152. switch (this) {
  153. case GalleryType.ownedCollection:
  154. case GalleryType.homepage:
  155. case GalleryType.searchResults:
  156. case GalleryType.uncategorized:
  157. return true;
  158. case GalleryType.hidden:
  159. case GalleryType.favorite:
  160. case GalleryType.archive:
  161. case GalleryType.localFolder:
  162. case GalleryType.trash:
  163. case GalleryType.sharedCollection:
  164. return false;
  165. }
  166. }
  167. bool showUnFavoriteOption() {
  168. return this == GalleryType.favorite;
  169. }
  170. bool showRestoreOption() {
  171. return this == GalleryType.trash;
  172. }
  173. bool showPermanentlyDeleteOption() {
  174. return this == GalleryType.trash;
  175. }
  176. }