import 'package:aman_kassa_flutter/core/base/base_view_model.dart'; import 'package:aman_kassa_flutter/core/entity/Category.dart'; import 'package:aman_kassa_flutter/core/locator.dart'; import 'package:aman_kassa_flutter/core/models/Choice.dart'; import 'package:aman_kassa_flutter/core/models/user.dart'; import 'package:aman_kassa_flutter/core/route_names.dart'; import 'package:aman_kassa_flutter/core/services/DataService.dart'; import 'package:aman_kassa_flutter/core/services/authentication_service.dart'; import 'package:aman_kassa_flutter/core/services/dialog_service.dart'; import 'package:aman_kassa_flutter/core/services/navigator_service.dart'; import 'package:flutter/material.dart'; class HomeViewModel extends BaseViewModel { NavigatorService _navigationService; AuthenticationService _authenticationService; DataService _dataService; final DialogService _dialogService = locator(); HomeViewModel({ @required AuthenticationService authenticationService, @required NavigatorService navigationService, @required DataService dataService, }) : _authenticationService = authenticationService, _dataService = dataService, _navigationService = navigationService; User _currentUser; User get currentUser => _currentUser; int _tabIndex = 0; int get tabIndex => this._tabIndex; set tabIndex(int index) { this._tabIndex = index; notifyListeners(); } void onSelected(Choice choice) async { log.i(choice.command); if(choice.command == 'exit') { bool result = await _authenticationService.logout(_currentUser.token); if (result) { _navigationService.replace(LoginViewRoute); } } else if (choice.command == 'update') { log.i(_authenticationService.currentUser.token); bool result = await _dataService.getDataFromServer(_authenticationService.currentUser.token); log.i(result); } } PageController get pageController => this._pageController; PageController _pageController; set pageController(PageController pageController) { this._pageController = pageController; } List _bottomSheetElements = []; List get bottomSheetElements => this._bottomSheetElements; int _parentId; void selectBottomElement(int parentId) async { // log.i('parentId=$parentId'); // _parentId = parentId; // _bottomSheetElements.clear(); // List categories = await _dataService.getCategoriesByParentId(parentId: parentId); // List goods = await _dataService.getGoodsByCategoryId(categoryId: parentId); // _bottomSheetElements.addAll(categories); // _bottomSheetElements.addAll(goods); // notifyListeners(); } String _text; get text => this._text; set text(String text) => this._text = text; void initialize() { _currentUser = _authenticationService.currentUser; } @override void dispose() { super.dispose(); _pageController.dispose(); } }