import 'dart:async'; import 'package:flutter/widgets.dart'; import 'package:get/get.dart'; import 'package:injectable/injectable.dart'; import 'package:keyboard/base/base_controller.dart'; import 'package:keyboard/data/api/response/keyboard_home_info_response.dart'; import 'package:keyboard/data/repository/keyboard_repository.dart'; import 'package:keyboard/module/keyboard_manage/keyboard_manage_page.dart'; import 'package:keyboard/module/store/store_page.dart'; @injectable class KeyBoardController extends BaseController { final tag = "KeyBoardController"; final KeyboardRepository keyboardRepository; KeyboardHomeInfoResponse? get homeInfo => keyboardRepository.homeInfo.value; static const int countdownTime = 10 * 60 * 100; final RxInt timeLeft = countdownTime.obs; Timer? _timer; // 各项指标数据 final moodPercentage = 20.obs; final appearancePercentage = 50.obs; final wealthPercentage = 30.obs; final cleanlinessPercentage = 50.obs; KeyBoardController(this.keyboardRepository); @override void onInit() { super.onInit(); startCountdown(); } void clickVip() { StorePage.start(); } void clickIntimacyAnalyze() { debugPrint("click intimacy analyze"); } void clickScreenshotReply() { debugPrint("click screenshot reply"); } void clickEasyReply() { debugPrint("click easy reply"); } void clickGoKeyboardManage() { KeyboardManagePage.start(); } void startCountdown() { _timer = Timer.periodic(const Duration(milliseconds: 10), (timer) { if (timeLeft.value > 0) { timeLeft.value--; } else { timer.cancel(); } }); } @override void onClose() { super.onClose(); _timer?.cancel(); } String get formattedTime { final totalMillis = timeLeft.value * 10; final duration = Duration(milliseconds: totalMillis); final minutes = duration.inMinutes.toString().padLeft(2, '0'); final seconds = (duration.inSeconds % 60).toString().padLeft(2, '0'); final milliseconds = ((duration.inMilliseconds % 1000) ~/ 10) .toString() .padLeft(2, '0'); return "$minutes:$seconds:$milliseconds"; } }