assets.dart 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  1. import 'package:nomo/config/theme/theme_extensions/theme_extension.dart';
  2. class Assets {
  3. // 国旗
  4. static String getCountryFlagImage(String contryCode) {
  5. if (contryCode.isEmpty) {
  6. return 'assets/flags/xx.svg';
  7. } else {
  8. return 'assets/flags/${contryCode.toLowerCase()}.svg';
  9. }
  10. }
  11. // 流媒体图标
  12. static String getStreamingIcon(String code) {
  13. if (code.isEmpty) {
  14. return 'assets/flags/xx.svg';
  15. } else {
  16. return 'assets/images/streaming/${code.toLowerCase()}.png';
  17. }
  18. }
  19. // 默认国旗
  20. static const String defaultFlag = 'assets/flags/xx.svg';
  21. static const String splashLogo = 'assets/images/splash_logo.png';
  22. static const String splashCenterBg = 'assets/images/splash_center_bg.png';
  23. static const String success = 'assets/images/success.png';
  24. static const String error = 'assets/images/error.png';
  25. // 联系我们
  26. static const String discord = 'assets/vectors/social/discord.svg';
  27. static const String facebook = 'assets/vectors/social/facebook.svg';
  28. static const String instagram = 'assets/vectors/social/instagram.svg';
  29. static const String telegram = 'assets/vectors/social/telegram.svg';
  30. static const String tiktok = 'assets/vectors/social/tiktok.svg';
  31. static const String whatsapp = 'assets/vectors/social/whatsapp.svg';
  32. static const String x = 'assets/vectors/social/x.svg';
  33. static const String youtube = 'assets/vectors/social/youtube.svg';
  34. static const String settings = 'assets/vectors/boost/settings.svg';
  35. static const String switchStatusDisconnected =
  36. 'assets/images/switch_status_disconnected.png';
  37. static const String switchStatusConnected =
  38. 'assets/images/switch_status_connected.png';
  39. static const String switchStatusConnecting =
  40. 'assets/images/switch_status_connecting.png';
  41. // 协议
  42. static const String nomoLogo = 'assets/images/nomo_logo.png';
  43. static const String nomo = 'assets/images/nomo.png';
  44. static const String refersh = 'assets/vectors/boost/refersh.svg';
  45. // 错误页
  46. static const String _restrictedDark = 'assets/images/dark/restricted.png';
  47. static const String _oopsDark = 'assets/images/dark/oops.png';
  48. static const String _restrictedLight = 'assets/images/light/restricted.png';
  49. static const String _oopsLight = 'assets/images/light/oops.png';
  50. // 根据主题获取标签资源
  51. static String get restricted =>
  52. ReactiveTheme.isLightTheme ? _restrictedLight : _restrictedDark;
  53. static String get oops => ReactiveTheme.isLightTheme ? _oopsLight : _oopsDark;
  54. // 连接状态
  55. static const String disconnected = 'assets/images/disconnected.png';
  56. static const String connecting = 'assets/images/connecting.png';
  57. static const String connected = 'assets/images/connected.png';
  58. static const String connectingError = 'assets/images/vpn_error.png';
  59. static const String connectionNetworkError = 'assets/images/network.png';
  60. // 标签资源 - Dark 版本
  61. static const String _premiumDark = 'assets/images/dark/premium.png';
  62. static const String _premiumExpiredDark =
  63. 'assets/images/dark/premium_expired.png';
  64. static const String _testDark = 'assets/images/dark/test.png';
  65. static const String _freeDark = 'assets/images/dark/free.png';
  66. // 标签资源 - Light 版本
  67. static const String _premiumLight = 'assets/images/light/premium.png';
  68. static const String _premiumExpiredLight =
  69. 'assets/images/light/premium_expired.png';
  70. static const String _testLight = 'assets/images/light/test.png';
  71. static const String _freeLight = 'assets/images/light/free.png';
  72. // 根据主题获取标签资源
  73. static String get premium =>
  74. ReactiveTheme.isLightTheme ? _premiumLight : _premiumDark;
  75. static String get premiumExpired =>
  76. ReactiveTheme.isLightTheme ? _premiumExpiredLight : _premiumExpiredDark;
  77. static String get test => ReactiveTheme.isLightTheme ? _testLight : _testDark;
  78. static String get free => ReactiveTheme.isLightTheme ? _freeLight : _freeDark;
  79. // 评价
  80. static const String poutingFace = 'assets/vectors/boost/pouting_face.svg';
  81. static const String woozyFace = 'assets/vectors/boost/woozy_face.svg';
  82. static const String yawningFace = 'assets/vectors/boost/yawning_face.svg';
  83. static const String smirkingFace = 'assets/vectors/boost/smirking_face.svg';
  84. static const String smilingFaceWithHearts =
  85. 'assets/vectors/boost/smiling_face_with_hearts.svg';
  86. // 订阅
  87. static const String subscriptionDiamond =
  88. 'assets/images/subscription_diamond.png';
  89. static const String _subscriptionWalletDark =
  90. 'assets/images/dark/subscription_wallet.png';
  91. static const String _subscriptionWalletLight =
  92. 'assets/images/light/subscription_wallet.png';
  93. static String get subscriptionWallet => ReactiveTheme.isLightTheme
  94. ? _subscriptionWalletLight
  95. : _subscriptionWalletDark;
  96. static const String subscriptionGreenShield =
  97. 'assets/images/subscription_green_shield.png';
  98. static const String subscriptionPlanChange1 =
  99. 'assets/images/subscription_plan_change_1.png';
  100. static const String subscriptionPlanChange2 =
  101. 'assets/images/subscription_plan_change_2.png';
  102. static const String subscriptionPlanChange3 =
  103. 'assets/images/subscription_plan_change_3.png';
  104. static const String preCodeEmail = 'assets/images/pre_code_email.png';
  105. static const String preCodeSaveLocal =
  106. 'assets/images/pre_code_save_local.png';
  107. static const String preCodeEmailTipBlue =
  108. 'assets/images/pre_code_email_tip_blue.png';
  109. static const String preCodeEmailTipWhite =
  110. 'assets/images/pre_code_email_tip_white.png';
  111. static const String bannerTest = 'assets/images/banner_test.png';
  112. static const String subscriptionBg = 'assets/images/subscription_bg.mp4';
  113. static const String mediaBg = 'assets/images/media_bg.jpg';
  114. static const String arrowDownCircle = 'assets/vectors/arrow_down_circle.svg';
  115. static const String refreshCircle = 'assets/vectors/refresh_circle.svg';
  116. static const String successCircle = 'assets/vectors/success_circle.svg';
  117. static const String failedCircle = 'assets/vectors/failed_circle.svg';
  118. static const String pushNotifications =
  119. 'assets/vectors/push_notifications.svg';
  120. static const String update = 'assets/vectors/update.svg';
  121. // 连接按钮中间的图片
  122. static const String darkDisconnected =
  123. 'assets/images/round/dark_disconnected.png';
  124. static const String lightDisconnected =
  125. 'assets/images/round/light_disconnected.png';
  126. static const String darkConnected = 'assets/images/round/dark_connected.png';
  127. static const String lightConnected =
  128. 'assets/images/round/light_connected.png';
  129. static const String darkConnecting =
  130. 'assets/images/round/dark_connecting.png';
  131. static const String lightConnecting =
  132. 'assets/images/round/light_connecting.png';
  133. static const String darkDisconnecting =
  134. 'assets/images/round/dark_disconnecting.png';
  135. static const String settingsTheme = 'assets/vectors/settings_theme.svg';
  136. // windows 托盘图标
  137. static const String trayIconDarkConnectedWin =
  138. 'assets/trayicon/dark/connected.ico';
  139. static const String trayIconDarkUnConnectedWin =
  140. 'assets/trayicon/dark/unconnected.ico';
  141. static const String trayIconLightConnectedWin =
  142. 'assets/trayicon/light/connected.ico';
  143. static const String trayIconLightUnConnectedWin =
  144. 'assets/trayicon/light/unconnected.ico';
  145. }