| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- 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";
- }
- }
|