import 'dart:async'; import 'package:flutter/cupertino.dart'; import 'package:get/get.dart'; import 'package:get/get_core/src/get_main.dart'; import 'package:injectable/injectable.dart'; import 'package:location/base/base_controller.dart'; import 'package:location/data/repositories/account_repository.dart'; import 'package:location/data/repositories/friends_repository.dart'; import 'package:location/module/friend/setting/friend_setting_page.dart'; import '../../data/bean/user_info.dart'; @injectable class FriendController extends BaseController { final AccountRepository accountRepository; final FriendsRepository friendsRepository; UserInfo get mineUserInfo => accountRepository.mineUserInfo.value; UserInfo? get virtualFriendInfo => friendsRepository.virtualFriendInfo.value; RxList get friendsList => friendsRepository.friendsList; final ScrollController scrollController = ScrollController(); final RxDouble _opacity = 0.0.obs; double get opacity => _opacity.value; final double _scrollThreshold = 80; FriendController(this.accountRepository, this.friendsRepository); @override void onReady() { super.onReady(); scrollController.addListener(_handleScroll); } void _handleScroll() { final double offset = scrollController.offset; if (offset <= _scrollThreshold) { _opacity.value = 0.0; } else { double opacity = ((offset - _scrollThreshold) / 200).clamp(0.0, 1.0); _opacity.value = opacity; } } void back() { Get.back(); } void newsClick() {} @override void onClose() { super.onClose(); scrollController.dispose(); } void onEditClick(UserInfo e) { FriendSettingPage.start(e); } }