medialocation_controller.dart 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. import 'package:get/get.dart';
  2. import '../../../../config/translations/strings_enum.dart';
  3. /// 流媒体服务数据模型
  4. class StreamingService {
  5. final String name;
  6. final String description;
  7. final String logoUrl;
  8. StreamingService({
  9. required this.name,
  10. required this.description,
  11. required this.logoUrl,
  12. });
  13. }
  14. class MedialocationController extends GetxController {
  15. // VPN连接状态
  16. final isConnected = false.obs;
  17. final isConnecting = false.obs;
  18. // 流媒体服务列表
  19. List<StreamingService> get streamingServices => [
  20. StreamingService(
  21. name: Strings.netflix.tr,
  22. description: Strings.niftyStreaming.tr,
  23. logoUrl: 'assets/images/netflix_logo.png',
  24. ),
  25. StreamingService(
  26. name: Strings.youtube.tr,
  27. description: Strings.youtubeStreaming.tr,
  28. logoUrl: 'assets/images/youtube_logo.png',
  29. ),
  30. StreamingService(
  31. name: Strings.hulu.tr,
  32. description: Strings.huluStreaming.tr,
  33. logoUrl: 'assets/images/hulu_logo.png',
  34. ),
  35. StreamingService(
  36. name: Strings.amazon.tr,
  37. description: Strings.amazonStreaming.tr,
  38. logoUrl: 'assets/images/amazon_logo.png',
  39. ),
  40. ];
  41. @override
  42. void onInit() {
  43. super.onInit();
  44. }
  45. @override
  46. void onReady() {
  47. super.onReady();
  48. }
  49. @override
  50. void onClose() {
  51. super.onClose();
  52. }
  53. /// 打开流媒体服务
  54. void openStreamingService(StreamingService service) {
  55. Get.snackbar(
  56. Strings.opening.tr,
  57. '${service.name} ${Strings.willOpenSoon.tr}',
  58. );
  59. }
  60. /// 连接VPN
  61. void connect() {
  62. if (isConnecting.value) return;
  63. isConnecting.value = true;
  64. // 模拟连接过程
  65. Future.delayed(const Duration(seconds: 2), () {
  66. isConnecting.value = false;
  67. isConnected.value = true;
  68. Get.snackbar(
  69. Strings.success.tr,
  70. Strings.connectedSuccessfully.tr,
  71. );
  72. });
  73. }
  74. /// 断开VPN
  75. void disconnect() {
  76. isConnected.value = false;
  77. isConnecting.value = false;
  78. }
  79. }