assets.dart 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235
  1. import 'package:nomo/config/theme/theme_extensions/theme_extension.dart';
  2. import '../../config/translations/localization_service.dart';
  3. class Assets {
  4. // 国旗
  5. static String getCountryFlagImage(String contryCode) {
  6. if (contryCode.isEmpty) {
  7. return 'assets/flags/xx.svg';
  8. } else {
  9. return 'assets/flags/${contryCode.toLowerCase()}.svg';
  10. }
  11. }
  12. // 流媒体图标
  13. static String getStreamingIcon(String code) {
  14. if (code.isEmpty) {
  15. return 'assets/flags/xx.svg';
  16. } else {
  17. return 'assets/images/streaming/${code.toLowerCase()}.png';
  18. }
  19. }
  20. // 默认国旗
  21. static const String defaultFlag = 'assets/flags/xx.svg';
  22. static const String splashLogo = 'assets/images/splash_logo.png';
  23. static const String splashCenterBg = 'assets/images/splash_center_bg.png';
  24. static const String success = 'assets/images/success.png';
  25. static const String error = 'assets/images/error.png';
  26. // 联系我们
  27. static const String discord = 'assets/vectors/social/discord.svg';
  28. static const String facebook = 'assets/vectors/social/facebook.svg';
  29. static const String instagram = 'assets/vectors/social/instagram.svg';
  30. static const String telegram = 'assets/vectors/social/telegram.svg';
  31. static const String tiktok = 'assets/vectors/social/tiktok.svg';
  32. static const String whatsapp = 'assets/vectors/social/whatsapp.svg';
  33. static const String x = 'assets/vectors/social/x.svg';
  34. static const String youtube = 'assets/vectors/social/youtube.svg';
  35. static const String settings = 'assets/vectors/boost/settings.svg';
  36. static const String switchStatusDisconnected =
  37. 'assets/images/switch_status_disconnected.png';
  38. static const String switchStatusConnected =
  39. 'assets/images/switch_status_connected.png';
  40. static const String switchStatusConnecting =
  41. 'assets/images/switch_status_connecting.png';
  42. // 协议
  43. static const String nomoLogo = 'assets/images/nomo_logo.png';
  44. static const String nomo = 'assets/images/nomo.png';
  45. static const String refersh = 'assets/vectors/boost/refersh.svg';
  46. // 错误页
  47. static const String _restrictedDark = 'assets/images/dark/restricted.png';
  48. static const String _oopsDark = 'assets/images/dark/oops.png';
  49. static const String _restrictedLight = 'assets/images/light/restricted.png';
  50. static const String _oopsLight = 'assets/images/light/oops.png';
  51. // 根据主题获取标签资源
  52. static String get restricted =>
  53. ReactiveTheme.isLightTheme ? _restrictedLight : _restrictedDark;
  54. static String get oops => ReactiveTheme.isLightTheme ? _oopsLight : _oopsDark;
  55. // 连接状态
  56. static const String disconnected = 'assets/images/disconnected.png';
  57. static const String connecting = 'assets/images/connecting.png';
  58. static const String connected = 'assets/images/connected.png';
  59. static const String connectingError = 'assets/images/vpn_error.png';
  60. static const String connectionNetworkError = 'assets/images/network.png';
  61. // 标签资源 - Dark 版本
  62. static const String _premiumDark = 'assets/images/dark/premium.png';
  63. static const String _premiumExpiredDark =
  64. 'assets/images/dark/premium_expired.png';
  65. static const String _testDark = 'assets/images/dark/test.png';
  66. static const String _freeDark = 'assets/images/dark/free.png';
  67. // 标签资源 - Light 版本
  68. static const String _premiumLight = 'assets/images/light/premium.png';
  69. static const String _premiumExpiredLight =
  70. 'assets/images/light/premium_expired.png';
  71. static const String _testLight = 'assets/images/light/test.png';
  72. static const String _freeLight = 'assets/images/light/free.png';
  73. // 标签资源 - Dark 版本 (CN)
  74. static const String _premiumDarkCn = 'assets/images/dark/premium_cn.png';
  75. static const String _premiumExpiredDarkCn =
  76. 'assets/images/dark/premium_expired_cn.png';
  77. static const String _testDarkCn = 'assets/images/dark/test_cn.png';
  78. static const String _freeDarkCn = 'assets/images/dark/free_cn.png';
  79. // 标签资源 - Light 版本 (CN)
  80. static const String _premiumLightCn = 'assets/images/light/premium_cn.png';
  81. static const String _premiumExpiredLightCn =
  82. 'assets/images/light/premium_expired_cn.png';
  83. static const String _testLightCn = 'assets/images/light/test_cn.png';
  84. static const String _freeLightCn = 'assets/images/light/free_cn.png';
  85. // 根据主题获取标签资源
  86. static String get premium => LocalizationService.isChinese()
  87. ? (ReactiveTheme.isLightTheme ? _premiumLightCn : _premiumDarkCn)
  88. : (ReactiveTheme.isLightTheme ? _premiumLight : _premiumDark);
  89. static String get premiumExpired => LocalizationService.isChinese()
  90. ? (ReactiveTheme.isLightTheme
  91. ? _premiumExpiredLightCn
  92. : _premiumExpiredDarkCn)
  93. : (ReactiveTheme.isLightTheme
  94. ? _premiumExpiredLight
  95. : _premiumExpiredDark);
  96. static String get test => LocalizationService.isChinese()
  97. ? (ReactiveTheme.isLightTheme ? _testLightCn : _testDarkCn)
  98. : (ReactiveTheme.isLightTheme ? _testLight : _testDark);
  99. static String get free => LocalizationService.isChinese()
  100. ? (ReactiveTheme.isLightTheme ? _freeLightCn : _freeDarkCn)
  101. : (ReactiveTheme.isLightTheme ? _freeLight : _freeDark);
  102. //LocalizationService.isCn()
  103. // 评价
  104. static const String poutingFace = 'assets/vectors/boost/pouting_face.svg';
  105. static const String woozyFace = 'assets/vectors/boost/woozy_face.svg';
  106. static const String yawningFace = 'assets/vectors/boost/yawning_face.svg';
  107. static const String smirkingFace = 'assets/vectors/boost/smirking_face.svg';
  108. static const String smilingFaceWithHearts =
  109. 'assets/vectors/boost/smiling_face_with_hearts.svg';
  110. // 订阅
  111. static const String subscriptionDiamond =
  112. 'assets/images/subscription_diamond.png';
  113. static const String _subscriptionWalletDark =
  114. 'assets/images/dark/subscription_wallet.png';
  115. static const String _subscriptionWalletLight =
  116. 'assets/images/light/subscription_wallet.png';
  117. static String get subscriptionWallet => ReactiveTheme.isLightTheme
  118. ? _subscriptionWalletLight
  119. : _subscriptionWalletDark;
  120. static const String subscriptionGreenShield =
  121. 'assets/images/subscription_green_shield.png';
  122. static const String subscriptionPlanChange1 =
  123. 'assets/images/subscription_plan_change_1.png';
  124. static const String subscriptionPlanChange2 =
  125. 'assets/images/subscription_plan_change_2.png';
  126. static const String subscriptionPlanChange3 =
  127. 'assets/images/subscription_plan_change_3.png';
  128. static const String preCodeEmail = 'assets/images/pre_code_email.png';
  129. static const String preCodeSaveLocal =
  130. 'assets/images/pre_code_save_local.png';
  131. static const String preCodeEmailTipBlue =
  132. 'assets/images/pre_code_email_tip_blue.png';
  133. static const String preCodeEmailTipWhite =
  134. 'assets/images/pre_code_email_tip_white.png';
  135. static const String bannerTest = 'assets/images/banner_test.png';
  136. static const String subscriptionBg = 'assets/images/subscription_bg.mp4';
  137. static const String mediaBg = 'assets/images/media_bg.jpg';
  138. static const String arrowDownCircle = 'assets/vectors/arrow_down_circle.svg';
  139. static const String arrowDownCircleDark =
  140. 'assets/vectors/arrow_down_circle_dark.svg';
  141. static const String refreshCircle = 'assets/vectors/refresh_circle.svg';
  142. static const String refreshCircleDark =
  143. 'assets/vectors/refresh_circle_dark.svg';
  144. static const String successCircle = 'assets/vectors/success_circle.svg';
  145. static const String failedCircle = 'assets/vectors/failed_circle.svg';
  146. static const String pushNotifications =
  147. 'assets/vectors/push_notifications.svg';
  148. static const String update = 'assets/vectors/update.svg';
  149. // 连接按钮中间的图片
  150. static const String darkDisconnected =
  151. 'assets/images/round/dark_disconnected.png';
  152. static const String lightDisconnected =
  153. 'assets/images/round/light_disconnected.png';
  154. static const String darkConnected = 'assets/images/round/dark_connected.png';
  155. static const String lightConnected =
  156. 'assets/images/round/light_connected.png';
  157. static const String darkConnecting =
  158. 'assets/images/round/dark_connecting.png';
  159. static const String lightConnecting =
  160. 'assets/images/round/light_connecting.png';
  161. static const String darkDisconnecting =
  162. 'assets/images/round/dark_disconnecting.png';
  163. static const String settingsTheme = 'assets/vectors/settings_theme.svg';
  164. // windows 托盘图标
  165. static const String trayIconDarkConnectedWin =
  166. 'assets/trayicon/dark/connected.ico';
  167. static const String trayIconDarkUnConnectedWin =
  168. 'assets/trayicon/dark/unconnected.ico';
  169. static const String trayIconLightConnectedWin =
  170. 'assets/trayicon/light/connected.ico';
  171. static const String trayIconLightUnConnectedWin =
  172. 'assets/trayicon/light/unconnected.ico';
  173. // 权益图标
  174. static const String _equity1Dark = 'assets/images/dark/equity1.png';
  175. static const String _equity1Light = 'assets/images/light/equity1.png';
  176. static const String _equity2Dark = 'assets/images/dark/equity2.png';
  177. static const String _equity2Light = 'assets/images/light/equity2.png';
  178. static const String _equity3Dark = 'assets/images/dark/equity3.png';
  179. static const String _equity3Light = 'assets/images/light/equity3.png';
  180. static const String _equity4Dark = 'assets/images/dark/equity4.png';
  181. static const String _equity4Light = 'assets/images/light/equity4.png';
  182. static const String _equity5Dark = 'assets/images/dark/equity5.png';
  183. static const String _equity5Light = 'assets/images/light/equity5.png';
  184. static const String _equity6Dark = 'assets/images/dark/equity6.png';
  185. static const String _equity6Light = 'assets/images/light/equity6.png';
  186. static String get equity1 =>
  187. ReactiveTheme.isLightTheme ? _equity1Light : _equity1Dark;
  188. static String get equity2 =>
  189. ReactiveTheme.isLightTheme ? _equity2Light : _equity2Dark;
  190. static String get equity3 =>
  191. ReactiveTheme.isLightTheme ? _equity3Light : _equity3Dark;
  192. static String get equity4 =>
  193. ReactiveTheme.isLightTheme ? _equity4Light : _equity4Dark;
  194. static String get equity5 =>
  195. ReactiveTheme.isLightTheme ? _equity5Light : _equity5Dark;
  196. static String get equity6 =>
  197. ReactiveTheme.isLightTheme ? _equity6Light : _equity6Dark;
  198. static const String menus = 'assets/images/menus.png';
  199. }