ToneSnap_FSX_Flutter/lib/modules/sideb/initial/initial_controller.dart
fengshengxiong caded892d9 1.新增瀑布流插页广告
2.新增增埋点
2024-08-14 13:56:43 +08:00

69 lines
2.2 KiB
Dart

import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:tone_snap/firebase/firebase_analytics_manager.dart';
import 'package:tone_snap/generated/assets.dart';
import 'package:tone_snap/global/app_lifecycle_reactor.dart';
import 'package:tone_snap/global/app_tracking_transparency_manager.dart';
import 'package:tone_snap/modules/sideb/home/home_view.dart';
import 'package:tone_snap/modules/sideb/personal_music_library/personal_music_library_controller.dart';
import 'package:tone_snap/modules/sideb/personal_music_library/personal_music_library_view.dart';
import 'package:tone_snap/modules/sideb/search_music/search_music_view.dart';
class InitialController extends GetxController {
static InitialController get to => Get.find<InitialController>();
late PageController pageController;
final pages = [
PageItem([Assets.sideBBnb1Unselected, Assets.sideBBnb1Selected], const HomeView()),
PageItem([Assets.sideBBnb2Unselected, Assets.sideBBnb2Selected], const SearchMusicView()),
PageItem([Assets.sideBBnb3Unselected, Assets.sideBBnb3Selected], const PersonalMusicLibraryView()),
];
var currentIndex = 0.obs;
late AppLifecycleReactor _appLifecycleReactor;
@override
void onInit() {
super.onInit();
AppTrackingTransparencyManager().requestATT();
_appLifecycleReactor = AppLifecycleReactor();
_appLifecycleReactor.listenToAppStateChanges();
pageController = PageController(initialPage: currentIndex.value);
FirebaseAnalyticsManager.logHomeBPV();
}
@override
void onClose() {
pageController.dispose();
super.onClose();
}
Future<void> onBottomAppBarItemChanged(int index) async {
currentIndex.value = index;
pageController.jumpToPage(index);
if (index == 0) {
FirebaseAnalyticsManager.logHomeBPV();
}
if (index == 1) {
FirebaseAnalyticsManager.logSearchPV();
}
if (index == 2) {
if (Get.isRegistered<PersonalMusicLibraryController>()) {
PersonalMusicLibraryController.to.refreshLoveSongs();
PersonalMusicLibraryController.to.refreshOffline();
}
FirebaseAnalyticsManager.logMeBPV();
}
}
}
class PageItem {
late final List<String> icons;
late final StatelessWidget widget;
PageItem(this.icons, this.widget);
}