Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[#266] [BF] Incorrect Focus scrollTo #271

Merged
merged 3 commits into from
Sep 15, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 8 additions & 7 deletions lib/_classes/controller/focus_controller.dart
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,14 @@ class FocusController {
static int _idx = DEFAULT;
static int focus = DEFAULT;
static final Map<Type, ScrollController?> _controller = {};
static List<double> _shift = [];
static final Map<int, double> _shift = {};
static Type? _activeClass;
static final DelayedCall _delay = DelayedCall(600);

static void init() {
focus = DEFAULT;
values = values.map((e) => null).cast<dynamic>().toList();
_shift = [];
_shift.clear();
_idx = DEFAULT;
}

Expand All @@ -38,10 +38,10 @@ class FocusController {
return _controller[_activeClass]?.hasClients ?? false;
}

static void recordPosition(BuildContext context) {
RenderObject? firstNode = context.findRenderObject();
if (firstNode is RenderBox && _isControllerActive()) {
_shift.add(_controller[_activeClass]!.offset + firstNode.localToGlobal(Offset.zero).dy);
static void recordPosition(BuildContext context, int position) {
RenderObject? obj = context.findRenderObject();
if (obj is RenderBox && _isControllerActive()) {
_shift[position] = _controller[_activeClass]!.offset + obj.localToGlobal(Offset.zero).dy;
}
}

Expand Down Expand Up @@ -76,8 +76,9 @@ class FocusController {
return;
}
if (_shift.isNotEmpty) {
double lowest = _shift.values.reduce((current, next) => current < next ? current : next);
_controller[_activeClass]?.animateTo(
_shift[idx] - _shift.first,
_shift[idx]! - lowest,
duration: const Duration(milliseconds: 300),
curve: Curves.easeInOut,
);
Expand Down
2 changes: 1 addition & 1 deletion lib/_classes/storage/file_parser.dart
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import 'package:app_finance/_classes/structure/currency/currency_provider.dart';
import 'package:app_finance/_classes/structure/interface_app_data.dart';
import 'package:app_finance/_classes/structure/invoice_app_data.dart';
import 'package:app_finance/_configs/account_type.dart';
import 'package:app_finance/widgets/_forms/list_selector.dart';
import 'package:app_finance/widgets/form/list_selector.dart';
import 'package:currency_picker/currency_picker.dart';
import 'package:intl/intl.dart';

Expand Down
2 changes: 1 addition & 1 deletion lib/_configs/account_type.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
// Use of this source code is governed by a CC BY-NC-ND 4.0 license that can be found in the LICENSE file.

import 'package:app_finance/_classes/herald/app_locale.dart';
import 'package:app_finance/widgets/_forms/list_selector.dart';
import 'package:app_finance/widgets/form/list_selector.dart';

enum AppAccountType {
account,
Expand Down
2 changes: 1 addition & 1 deletion lib/charts/bar_race_chart.dart
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import 'package:app_finance/_classes/structure/interface_app_data.dart';
import 'package:app_finance/charts/interface/chart_data.dart';
import 'package:app_finance/charts/painter/bar_chart_painter.dart';
import 'package:app_finance/charts/painter/foreground_chart_painter.dart';
import 'package:app_finance/widgets/_generic/empty_widget.dart';
import 'package:app_finance/widgets/generic/empty_widget.dart';
import 'package:flutter/material.dart';
import 'package:intl/intl.dart';

Expand Down
2 changes: 1 addition & 1 deletion lib/charts/column_chart.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import 'package:app_finance/_classes/herald/app_locale.dart';
import 'package:app_finance/charts/interface/chart_data.dart';
import 'package:app_finance/charts/painter/column_chart_painter.dart';
import 'package:app_finance/charts/painter/foreground_chart_painter.dart';
import 'package:app_finance/widgets/_generic/empty_widget.dart';
import 'package:app_finance/widgets/generic/empty_widget.dart';
import 'package:flutter/material.dart';
import 'package:intl/intl.dart';

Expand Down
2 changes: 1 addition & 1 deletion lib/charts/forecast_chart.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import 'package:app_finance/charts/interface/chart_data.dart';
import 'package:app_finance/charts/painter/forecast_chart_painter.dart';
import 'package:app_finance/charts/painter/foreground_chart_painter.dart';
import 'package:app_finance/widgets/_generic/empty_widget.dart';
import 'package:app_finance/widgets/generic/empty_widget.dart';
import 'package:flutter/material.dart';

class ForecastChart extends StatelessWidget {
Expand Down
2 changes: 1 addition & 1 deletion lib/charts/ohlc_chart.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import 'package:app_finance/_classes/herald/app_locale.dart';
import 'package:app_finance/charts/interface/ohlc_data.dart';
import 'package:app_finance/charts/painter/foreground_chart_painter.dart';
import 'package:app_finance/charts/painter/ohlc_chart_painter.dart';
import 'package:app_finance/widgets/_generic/empty_widget.dart';
import 'package:app_finance/widgets/generic/empty_widget.dart';
import 'package:flutter/material.dart';
import 'package:intl/intl.dart';

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@
import 'package:app_finance/_configs/theme_helper.dart';
import 'package:flutter/material.dart';

abstract class ComponentInterface {
abstract class InterfaceComponent {
String get componentName;

static Widget get form => ThemeHelper.emptyBox;

factory ComponentInterface.fromJson(Map<String, dynamic> json) {
factory InterfaceComponent.fromJson(Map<String, dynamic> json) {
throw Exception('Implement by extending');
}

Expand Down
48 changes: 24 additions & 24 deletions lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -10,30 +10,30 @@ import 'package:app_finance/_configs/custom_text_theme.dart';
import 'package:app_finance/_classes/storage/app_data.dart';
import 'package:app_finance/_classes/structure/navigation/app_route.dart';
import 'package:app_finance/_configs/firebase_options.dart';
import 'package:app_finance/routes/about_page.dart';
import 'package:app_finance/routes/account_add_page.dart';
import 'package:app_finance/routes/account_edit_page.dart';
import 'package:app_finance/routes/account_view_page.dart';
import 'package:app_finance/routes/account_page.dart';
import 'package:app_finance/routes/automation_page.dart';
import 'package:app_finance/routes/bill_add_page.dart';
import 'package:app_finance/routes/bill_edit_page.dart';
import 'package:app_finance/routes/bill_page.dart';
import 'package:app_finance/routes/bill_view_page.dart';
import 'package:app_finance/routes/budget_page.dart';
import 'package:app_finance/routes/budget_add_page.dart';
import 'package:app_finance/routes/budget_edit_page.dart';
import 'package:app_finance/routes/budget_view_page.dart';
import 'package:app_finance/routes/currency_page.dart';
import 'package:app_finance/routes/goal_add_page.dart';
import 'package:app_finance/routes/goal_edit_page.dart';
import 'package:app_finance/routes/goal_page.dart';
import 'package:app_finance/routes/goal_view_page.dart';
import 'package:app_finance/routes/home_page.dart';
import 'package:app_finance/routes/metrics_page.dart';
import 'package:app_finance/routes/settings_page.dart';
import 'package:app_finance/routes/start_page.dart';
import 'package:app_finance/routes/subscription_page.dart';
import 'package:app_finance/pages/about_page.dart';
import 'package:app_finance/pages/account/account_add_page.dart';
import 'package:app_finance/pages/account/account_edit_page.dart';
import 'package:app_finance/pages/account/account_view_page.dart';
import 'package:app_finance/pages/account/account_page.dart';
import 'package:app_finance/pages/automation/automation_page.dart';
import 'package:app_finance/pages/bill/bill_add_page.dart';
import 'package:app_finance/pages/bill/bill_edit_page.dart';
import 'package:app_finance/pages/bill/bill_page.dart';
import 'package:app_finance/pages/bill/bill_view_page.dart';
import 'package:app_finance/pages/budget/budget_page.dart';
import 'package:app_finance/pages/budget/budget_add_page.dart';
import 'package:app_finance/pages/budget/budget_edit_page.dart';
import 'package:app_finance/pages/budget/budget_view_page.dart';
import 'package:app_finance/pages/currency_page.dart';
import 'package:app_finance/pages/goal/goal_add_page.dart';
import 'package:app_finance/pages/goal/goal_edit_page.dart';
import 'package:app_finance/pages/goal/goal_page.dart';
import 'package:app_finance/pages/goal/goal_view_page.dart';
import 'package:app_finance/pages/home/home_page.dart';
import 'package:app_finance/pages/metrics/metrics_page.dart';
import 'package:app_finance/pages/settings/settings_page.dart';
import 'package:app_finance/pages/start/start_page.dart';
import 'package:app_finance/pages/subscription/subscription_page.dart';
import 'package:firebase_analytics/firebase_analytics.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/foundation.dart';
Expand Down
4 changes: 2 additions & 2 deletions lib/routes/about_page.dart → lib/pages/about_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
import 'package:app_finance/_classes/herald/app_locale.dart';
import 'package:app_finance/_configs/theme_helper.dart';
import 'package:app_finance/_mixins/launcher_mixin.dart';
import 'package:app_finance/routes/abstract_page_state.dart';
import 'package:app_finance/widgets/_wrappers/row_widget.dart';
import 'package:app_finance/pages/abstract_page_state.dart';
import 'package:app_finance/widgets/wrapper/row_widget.dart';
import 'package:flutter/material.dart';
import 'package:flutter_markdown/flutter_markdown.dart';
import 'package:package_info_plus/package_info_plus.dart';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Copyright 2023 The terCAD team. All rights reserved.
// Use of this source code is governed by a CC BY-NC-ND 4.0 license that can be found in the LICENSE file.

import 'package:app_finance/routes/abstract_page_state.dart';
import 'package:app_finance/pages/abstract_page_state.dart';
import 'package:flutter/material.dart';

abstract class AbstractAddPage<T> extends StatefulWidget {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@ import 'package:app_finance/_classes/storage/app_data.dart';
import 'package:app_finance/_classes/controller/focus_controller.dart';
import 'package:app_finance/_configs/responsive_matrix.dart';
import 'package:app_finance/_configs/theme_helper.dart';
import 'package:app_finance/widgets/_generic/menu_widget.dart';
import 'package:app_finance/widgets/_wrappers/input_controller_wrapper.dart';
import 'package:app_finance/widgets/_wrappers/row_widget.dart';
import 'package:app_finance/widgets/_wrappers/text_wrapper.dart';
import 'package:app_finance/widgets/_wrappers/toolbar_button_widget.dart';
import 'package:app_finance/widgets/generic/menu_widget.dart';
import 'package:app_finance/widgets/wrapper/input_controller_wrapper.dart';
import 'package:app_finance/widgets/wrapper/row_widget.dart';
import 'package:app_finance/widgets/wrapper/text_wrapper.dart';
import 'package:app_finance/widgets/wrapper/toolbar_button_widget.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,17 @@ import 'package:app_finance/_configs/account_type.dart';
import 'package:app_finance/_classes/controller/focus_controller.dart';
import 'package:app_finance/_classes/storage/app_preferences.dart';
import 'package:app_finance/_configs/theme_helper.dart';
import 'package:app_finance/routes/abstract_add_page.dart';
import 'package:app_finance/widgets/_forms/color_selector.dart';
import 'package:app_finance/widgets/_forms/currency_selector.dart';
import 'package:app_finance/widgets/_forms/date_time_input.dart';
import 'package:app_finance/widgets/_wrappers/full_sized_button_widget.dart';
import 'package:app_finance/widgets/_forms/icon_selector.dart';
import 'package:app_finance/widgets/_forms/list_selector.dart';
import 'package:app_finance/widgets/_forms/month_year_input.dart';
import 'package:app_finance/widgets/_forms/simple_input.dart';
import 'package:app_finance/widgets/_wrappers/required_widget.dart';
import 'package:app_finance/widgets/_wrappers/row_widget.dart';
import 'package:app_finance/pages/abstract_add_page.dart';
import 'package:app_finance/widgets/form/color_selector.dart';
import 'package:app_finance/widgets/form/currency_selector.dart';
import 'package:app_finance/widgets/form/date_time_input.dart';
import 'package:app_finance/widgets/wrapper/full_sized_button_widget.dart';
import 'package:app_finance/widgets/form/icon_selector.dart';
import 'package:app_finance/widgets/form/list_selector.dart';
import 'package:app_finance/widgets/form/month_year_input.dart';
import 'package:app_finance/widgets/form/simple_input.dart';
import 'package:app_finance/widgets/wrapper/required_widget.dart';
import 'package:app_finance/widgets/wrapper/row_widget.dart';
import 'package:currency_picker/currency_picker.dart';
import 'package:flutter/material.dart';

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import 'package:app_finance/_classes/herald/app_locale.dart';
import 'package:app_finance/_classes/structure/account_app_data.dart';
import 'package:app_finance/_configs/account_type.dart';
import 'package:app_finance/routes/account_add_page.dart';
import 'package:app_finance/pages/account/account_add_page.dart';
import 'package:flutter/material.dart';

class AccountEditPage extends AccountAddPage {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ import 'package:app_finance/_classes/herald/app_locale.dart';
import 'package:app_finance/_classes/structure/currency/exchange.dart';
import 'package:app_finance/_configs/theme_helper.dart';
import 'package:app_finance/_classes/structure/navigation/app_route.dart';
import 'package:app_finance/routes/abstract_page_state.dart';
import 'package:app_finance/widgets/home/account_widget.dart';
import 'package:app_finance/pages/abstract_page_state.dart';
import 'package:app_finance/pages/home/widgets/account_widget.dart';
import 'package:flutter/material.dart';

class AccountPage extends StatefulWidget {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@ import 'package:app_finance/_classes/structure/bill_app_data.dart';
import 'package:app_finance/_classes/structure/navigation/app_menu.dart';
import 'package:app_finance/_configs/theme_helper.dart';
import 'package:app_finance/_classes/structure/navigation/app_route.dart';
import 'package:app_finance/routes/abstract_page_state.dart';
import 'package:app_finance/widgets/_generic/base_line_widget.dart';
import 'package:app_finance/widgets/_generic/base_list_infinite_widget.dart';
import 'package:app_finance/widgets/_wrappers/confirmation_wrapper.dart';
import 'package:app_finance/pages/abstract_page_state.dart';
import 'package:app_finance/widgets/generic/base_line_widget.dart';
import 'package:app_finance/widgets/generic/base_list_infinite_widget.dart';
import 'package:app_finance/widgets/wrapper/confirmation_wrapper.dart';
import 'package:flutter/material.dart';

class AccountViewPage extends StatefulWidget {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@

import 'package:app_finance/_classes/herald/app_locale.dart';
import 'package:app_finance/_configs/theme_helper.dart';
import 'package:app_finance/routes/abstract_page_state.dart';
import 'package:app_finance/widgets/automation/sync_tab.dart';
//import 'package:app_finance/widgets/automation/notification_tab.dart';
import 'package:app_finance/pages/abstract_page_state.dart';
import 'package:app_finance/pages/automation/widgets/sync_tab.dart';
//import 'package:app_finance/pages/automation/widgets/notification_tab.dart';
import 'package:flutter/material.dart';

class AutomationPage extends StatefulWidget {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@ import 'package:app_finance/_classes/herald/app_locale.dart';
import 'package:app_finance/_classes/herald/app_sync.dart';
import 'package:app_finance/_classes/storage/app_data.dart';
import 'package:app_finance/_configs/theme_helper.dart';
import 'package:app_finance/widgets/_forms/simple_input.dart';
import 'package:app_finance/widgets/_wrappers/row_widget.dart';
import 'package:app_finance/widgets/_wrappers/table_widget.dart';
import 'package:app_finance/widgets/_wrappers/text_wrapper.dart';
import 'package:app_finance/widgets/init/loading_widget.dart';
import 'package:app_finance/widgets/form/simple_input.dart';
import 'package:app_finance/widgets/wrapper/row_widget.dart';
import 'package:app_finance/widgets/wrapper/table_widget.dart';
import 'package:app_finance/widgets/wrapper/text_wrapper.dart';
import 'package:app_finance/widgets/generic/loading_widget.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ import 'package:app_finance/_classes/herald/app_locale.dart';
import 'package:app_finance/_classes/controller/focus_controller.dart';
import 'package:app_finance/_classes/storage/app_data.dart';
import 'package:app_finance/_configs/theme_helper.dart';
import 'package:app_finance/widgets/bill/expenses_tab.dart';
import 'package:app_finance/widgets/bill/income_tab.dart';
import 'package:app_finance/widgets/bill/transfer_tab.dart';
import 'package:app_finance/pages/bill/widgets/expenses_tab.dart';
import 'package:app_finance/pages/bill/widgets/income_tab.dart';
import 'package:app_finance/pages/bill/widgets/transfer_tab.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

import 'package:app_finance/_classes/storage/app_data.dart';
import 'package:app_finance/_classes/structure/bill_app_data.dart';
import 'package:app_finance/widgets/bill/expenses_edit_tab.dart';
import 'package:app_finance/pages/bill/widgets/expenses_edit_tab.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';

Expand Down
4 changes: 2 additions & 2 deletions lib/routes/bill_page.dart → lib/pages/bill/bill_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ import 'package:app_finance/_classes/storage/app_data.dart';
import 'package:app_finance/_classes/herald/app_locale.dart';
import 'package:app_finance/_configs/theme_helper.dart';
import 'package:app_finance/_classes/structure/navigation/app_route.dart';
import 'package:app_finance/routes/abstract_page_state.dart';
import 'package:app_finance/widgets/home/bill_widget.dart';
import 'package:app_finance/pages/abstract_page_state.dart';
import 'package:app_finance/pages/home/widgets/bill_widget.dart';
import 'package:flutter/material.dart';

class BillPage extends StatefulWidget {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ import 'package:app_finance/_classes/structure/navigation/app_menu.dart';
import 'package:app_finance/_classes/structure/bill_app_data.dart';
import 'package:app_finance/_configs/theme_helper.dart';
import 'package:app_finance/_classes/structure/navigation/app_route.dart';
import 'package:app_finance/routes/abstract_page_state.dart';
import 'package:app_finance/widgets/_generic/base_line_widget.dart';
import 'package:app_finance/widgets/_wrappers/confirmation_wrapper.dart';
import 'package:app_finance/pages/abstract_page_state.dart';
import 'package:app_finance/widgets/generic/base_line_widget.dart';
import 'package:app_finance/widgets/wrapper/confirmation_wrapper.dart';
import 'package:flutter/material.dart';

class BillViewPage extends StatefulWidget {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

import 'package:app_finance/_classes/herald/app_locale.dart';
import 'package:app_finance/_classes/structure/bill_app_data.dart';
import 'package:app_finance/widgets/bill/expenses_tab.dart';
import 'package:app_finance/pages/bill/widgets/expenses_tab.dart';
import 'package:currency_picker/currency_picker.dart';

class ExpensesEditTab extends ExpensesTab {
Expand Down
Loading