Skip to content

Commit

Permalink
formatting and lint fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
NANI-SORE committed Aug 11, 2023
1 parent 9ba50b0 commit c0a52f2
Show file tree
Hide file tree
Showing 166 changed files with 4,763 additions and 4,439 deletions.
113 changes: 73 additions & 40 deletions analysis_options.yaml
Original file line number Diff line number Diff line change
@@ -1,101 +1,125 @@
# This file configures the analyzer, which statically analyzes Dart code to
# check for errors, warnings, and lints.
#
# The issues identified by the analyzer are surfaced in the UI of Dart-enabled
# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be
# invoked from the command line by running `flutter analyze`.

# The following line activates a set of recommended lints for Flutter apps,
# packages, and plugins designed to encourage good coding practices.
include: package:flutter_lints/flutter.yaml

analyzer:
# language:
# strict-casts: true
# strict-inference: true
# strict-raw-types: true

errors:
close_sinks: ignore
missing_required_param: error
missing_return: error
record_literal_one_positional_no_trailing_comma: error

exclude:
- lib/generated_plugin_registrant.dart

linter:
# The lint rules applied to this project can be customized in the
# section below to disable rules from the `package:flutter_lints/flutter.yaml`
# included above or to enable additional rules. A list of all available lints
# and their documentation is published at
# https://dart-lang.github.io/linter/lints/index.html.
#
# Instead of disabling a lint rule for the entire project in the
# section below, it can also be suppressed for a single line of code
# or a specific dart file by using the `// ignore: name_of_lint` and
# `// ignore_for_file: name_of_lint` syntax on the line or in the file
# producing the lint.
rules:
# TODO some are set to false, because right now they are not useful, but could be later
always_declare_return_types: true
always_put_control_body_on_new_line: true
always_put_required_named_parameters_first: true
always_require_non_null_named_parameters: true
always_use_package_imports: true
annotate_overrides: true
avoid_bool_literals_in_conditional_expressions: true
avoid_bool_literals_in_conditional_expressions: false
avoid_catching_errors: true
avoid_double_and_int_checks: true
avoid_empty_else: true
avoid_equals_and_hash_code_on_mutable_classes: true
avoid_escaping_inner_quotes: true
avoid_field_initializers_in_const_classes: true
avoid_final_parameters: true
avoid_function_literals_in_foreach_calls: true
avoid_init_to_null: true
avoid_js_rounded_ints: true
avoid_null_checks_in_equality_operators: true
avoid_print: false
avoid_private_typedef_functions: true
avoid_relative_lib_imports: true
avoid_renaming_method_parameters: true
avoid_return_types_on_setters: true
avoid_returning_null_for_void: true
avoid_returning_this: true
avoid_setters_without_getters: true
avoid_shadowing_type_parameters: true
avoid_single_cascade_in_expression_statements: true
avoid_slow_async_io: true
avoid_type_to_string: true
avoid_types_as_parameter_names: true
avoid_unnecessary_containers: true
avoid_unused_constructor_parameters: true
avoid_void_async: true
avoid_web_libraries_in_flutter: true
await_only_futures: true
camel_case_extensions: true
camel_case_types: true
cancel_subscriptions: true
close_sinks: true
cast_nullable_to_non_nullable: true
collection_methods_unrelated_type: true
combinators_ordering: true
comment_references: true
conditional_uri_does_not_exist: true
constant_identifier_names: true
control_flow_in_finally: true
curly_braces_in_flow_control_structures: true
dangling_library_doc_comments: true
depend_on_referenced_packages: true
deprecated_consistency: true
empty_catches: true
empty_constructor_bodies: true
empty_statements: true
eol_at_end_of_file: true
exhaustive_cases: true
file_names: true # .dart files should use 'lowercase_with_underscores' naming scheme
file_names: true
hash_and_equals: true
implicit_call_tearoffs: true
implementation_imports: true
implicit_reopen: true
invalid_case_patterns: true
iterable_contains_unrelated_type: true
join_return_with_assignment: true
leading_newlines_in_multiline_strings: true
library_annotations: true
library_names: true
library_prefixes: true
library_private_types_in_public_api: true
list_remove_unrelated_type: true
literal_only_boolean_expressions: true
missing_whitespace_between_adjacent_strings: true
no_adjacent_strings_in_list: true
no_duplicate_case_values: true
no_leading_underscores_for_library_prefixes: true
no_leading_underscores_for_local_identifiers: true
no_logic_in_create_state: true
no_runtimeType_toString: true
non_constant_identifier_names: true
noop_primitive_operations: true
null_check_on_nullable_type_parameter: true
null_closures: true
one_member_abstracts: true
only_throw_errors: true
overridden_fields: true
package_api_docs: true
package_names: true
package_prefixed_library_names: true
parameter_assignments: true
parameter_assignments: false
prefer_adjacent_string_concatenation: true
prefer_asserts_in_initializer_lists: true
prefer_asserts_with_message: true
prefer_collection_literals: true
prefer_conditional_assignment: true
prefer_const_constructors_in_immutables: true
prefer_const_constructors: true
prefer_const_constructors_in_immutables: true
prefer_const_declarations: true
prefer_const_literals_to_create_immutables: true
prefer_constructors_over_static_methods: false
prefer_contains: true
prefer_equal_for_default_values: true
prefer_final_fields: true
prefer_final_in_for_each: true
prefer_final_locals: true
prefer_for_elements_to_map_fromIterable: true
prefer_foreach: true
prefer_function_declarations_over_variables: true
prefer_generic_function_type_aliases: true
prefer_if_elements_to_conditional_expressions: true
Expand All @@ -108,7 +132,7 @@ linter:
prefer_is_not_empty: true
prefer_is_not_operator: true
prefer_iterable_whereType: true
prefer_mixin: true
prefer_null_aware_method_calls: true
prefer_null_aware_operators: true
prefer_single_quotes: true
prefer_spread_collections: true
Expand All @@ -117,48 +141,57 @@ linter:
provide_deprecation_message: true
recursive_getters: true
require_trailing_commas: true
sized_box_for_whitespace: true
sized_box_shrink_expand: true
slash_for_doc_comments: true
sort_child_properties_last: true
sort_constructors_first: true
sort_unnamed_constructors_first: true
test_types_in_equals: true
throw_in_finally: true
tighten_type_of_initializing_formals: true
type_annotate_public_apis: true
type_init_formals: true
unawaited_futures: true
unnecessary_await_in_return: true
unnecessary_breaks: true
unnecessary_brace_in_string_interps: true
unnecessary_const: true
unnecessary_constructor_name: true
unnecessary_getters_setters: true
unnecessary_lambdas: true
unnecessary_late: true
unnecessary_library_directive: true
unnecessary_new: true
unnecessary_null_aware_assignments: true
unnecessary_null_checks: true
unnecessary_null_in_if_null_operators: true
unnecessary_nullable_for_final_variable_declarations: true
unnecessary_overrides: true
unnecessary_parenthesis: true
unnecessary_raw_strings: true
unnecessary_statements: true
unnecessary_string_escapes: true
unnecessary_string_interpolations: true
unnecessary_this: true
unnecessary_to_list_in_spreads: true
unrelated_type_equality_checks: true
unsafe_html: true
use_build_context_synchronously: false
use_colored_box: true
use_enums: true
use_full_hex_values_for_flutter_colors: true
use_function_type_syntax_for_parameters: true
use_is_even_rather_than_modulo: true
use_key_in_widget_constructors: true
use_late_for_private_fields_and_variables: true
use_named_constants: true
use_raw_strings: true
use_rethrow_when_possible: true
use_string_buffers: true
use_setters_to_change_properties: true
use_string_buffers: false
use_string_in_part_of_directives: true
use_super_parameters: true
use_test_throws_matchers: true
use_to_and_as_if_applicable: true
valid_regexps: true
void_checks: true

# analyzer:
# language:
# strict-casts: true
# strict-inference: true
# strict-raw-types: true

# Additional information about this file can be found at
# https://dart.dev/guides/language/analysis-options
66 changes: 33 additions & 33 deletions lib/main.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import 'dart:async';
import 'dart:io';

import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

Expand All @@ -11,7 +12,6 @@ import 'package:dynamic_color/dynamic_color.dart';
import 'package:flutter_displaymode/flutter_displaymode.dart';
import 'package:get/get.dart';
import 'package:logger_flutter_fork/logger_flutter_fork.dart';
import 'package:sqflite/sqflite.dart';
import 'package:sqflite_common_ffi/sqflite_ffi.dart';
import 'package:statsfl/statsfl.dart';

Expand Down Expand Up @@ -90,7 +90,7 @@ void main() async {
}

class MainApp extends StatefulWidget {
const MainApp({Key? key}) : super(key: key);
const MainApp({super.key});

@override
State<MainApp> createState() => _MainAppState();
Expand Down Expand Up @@ -119,12 +119,10 @@ class _MainAppState extends State<MainApp> {
initHandlers();

if (Platform.isAndroid || Platform.isIOS) {
var window = WidgetsBinding.instance.window;
window.onPlatformBrightnessChanged = () {
// This callback is called every time the brightness changes and forces the app root to restate.
// This allows to not use darkTheme to avoid coloring bugs on AppBars
updateState();
};
final PlatformDispatcher window = WidgetsBinding.instance.platformDispatcher.views.first.platformDispatcher;
// This callback is called every time the brightness changes and forces the app root to restate.
// This allows to not use darkTheme to avoid coloring bugs on AppBars
window.onPlatformBrightnessChanged = updateState;
}

// TODO
Expand Down Expand Up @@ -159,7 +157,7 @@ class _MainAppState extends State<MainApp> {
settingsHandler.alice.setNavigatorKey(navigationHandler.navigatorKey);
}

void setMaxFPS() async {
Future<void> setMaxFPS() async {
// enable higher refresh rate
// TODO make this a setting?
// TODO make it work on ios, desktop?
Expand All @@ -169,7 +167,7 @@ class _MainAppState extends State<MainApp> {

if (Platform.isAndroid) {
await FlutterDisplayMode.setHighRefreshRate();
DisplayMode currentMode = await FlutterDisplayMode.active;
final DisplayMode currentMode = await FlutterDisplayMode.active;

if (currentMode.refreshRate > maxFps) {
maxFps = currentMode.refreshRate.round();
Expand Down Expand Up @@ -208,7 +206,7 @@ class _MainAppState extends State<MainApp> {
final bool useDynamicColor = settingsHandler.useDynamicColor.value;
final bool isAmoled = settingsHandler.isAmoled.value;

ThemeHandler themeHandler = ThemeHandler(
final ThemeHandler themeHandler = ThemeHandler(
theme: theme,
themeMode: themeMode,
useMaterial3: useMaterial3,
Expand Down Expand Up @@ -246,32 +244,34 @@ class _MainAppState extends State<MainApp> {
width: 110,
height: 80,
align: Alignment.centerLeft,
child: DynamicColorBuilder(builder: (lightDynamic, darkDynamic) {
themeHandler.setDynamicColors(
useDynamicColor ? lightDynamic : null,
useDynamicColor ? darkDynamic : null,
);

return MaterialApp(
title: 'LoliSnatcher',
debugShowCheckedModeBanner: false, // hide debug banner in the corner
showPerformanceOverlay: settingsHandler.showPerf.value,
scrollBehavior: const CustomScrollBehavior(),
theme: themeHandler.lightTheme(),
darkTheme: themeHandler.darkTheme(),
themeMode: themeMode,
navigatorKey: navigationHandler.navigatorKey,
home: const Home(),
);
}),
child: DynamicColorBuilder(
builder: (lightDynamic, darkDynamic) {
themeHandler.setDynamicColors(
useDynamicColor ? lightDynamic : null,
useDynamicColor ? darkDynamic : null,
);

return MaterialApp(
title: 'LoliSnatcher',
debugShowCheckedModeBanner: false, // hide debug banner in the corner
showPerformanceOverlay: settingsHandler.showPerf.value,
scrollBehavior: const CustomScrollBehavior(),
theme: themeHandler.lightTheme(),
darkTheme: themeHandler.darkTheme(),
themeMode: themeMode,
navigatorKey: navigationHandler.navigatorKey,
home: const Home(),
);
},
),
),
);
});
}
}

class Home extends StatefulWidget {
const Home({Key? key}) : super(key: key);
const Home({super.key});

@override
State<Home> createState() => _HomeState();
Expand Down Expand Up @@ -324,7 +324,7 @@ class _HomeState extends State<Home> with WidgetsBindingObserver {
await Future.wait([
imageWriter.clearStaleCache(),
imageWriter.clearCacheOverflow(),
]);
]);
}

Future<void> initDeepLinks() async {
Expand All @@ -334,7 +334,7 @@ class _HomeState extends State<Home> with WidgetsBindingObserver {
// check if there is a deep link on app start
final Uri? initialLink = await appLinks!.getInitialAppLink();
if (initialLink != null) {
openAppLink(initialLink.toString());
unawaited(openAppLink(initialLink.toString()));
}

// listen for deep links
Expand All @@ -349,7 +349,7 @@ class _HomeState extends State<Home> with WidgetsBindingObserver {
// FlashElements.showSnackbar(title: Text('Deep Link: $url'), duration: null);

if (url.contains('loli.snatcher')) {
Booru booru = Booru.fromLink(url);
final Booru booru = Booru.fromLink(url);
if (booru.name != null && booru.name!.isNotEmpty) {
if (settingsHandler.booruList.indexWhere((b) => b.name == booru.name) != -1) {
// Rename config if its already in the list
Expand Down
Loading

0 comments on commit c0a52f2

Please sign in to comment.