| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- 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';
- import '../../data/api/response/keyboard_love_index_response.dart';
- import '../../utils/atmob_log.dart';
- import '../profile/profile_page.dart';
- @injectable
- class KeyBoardController extends BaseController {
- final tag = "KeyBoardController";
- final KeyboardRepository keyboardRepository;
- KeyboardHomeInfoResponse? get homeInfo => keyboardRepository.homeInfo.value;
- Rxn<KeyboardLoveIndexResponse> get loveIndex =>
- keyboardRepository.homeLoveIndex;
- static const int countdownTime = 10 * 60 * 100;
- final RxInt timeLeft = countdownTime.obs;
- Timer? _timer;
- final RxBool isShowBanner = true.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 clickCloseBanner() {
- isShowBanner.value = false;
- debugPrint("click close banner");
- }
- void clickAvatar(bool isUser) {
- debugPrint("click avatar");
- if (!isUser) {
- ProfilePage.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";
- }
- }
|