Коммит 8e21a35b создал по автору d.girenko's avatar d.girenko
Просмотр файлов

Create plugin

владелец e5c00d7a
# Miscellaneous
*.class
*.log
*.pyc
*.swp
.DS_Store
.atom/
.buildlog/
.history
.svn/
migrate_working_dir/
# IntelliJ related
*.iml
*.ipr
*.iws
.idea/
.vscode/
# Flutter/Dart/Pub related
**/doc/api/
**/ios/Flutter/.last_build_id
.dart_tool/
.flutter-plugins
.flutter-plugins-dependencies
.pub-cache/
.pub/
/build/
/pubspec.lock
# Symbolication related
app.*.symbols
# Obfuscation related
app.*.map.json
# Aurora generated
/aurora/flutter
/example/aurora/flutter
# Authors
* Daniil Girenko, <a.fedchenko@omp.ru>
* Developer, 2024
* Maintainer, 2024
* Alexander Syrykh
* Developer, 2024
* Nikita Krasavin, <n.krasavin@omp.ru>
* Product owner, 2024
* Maintainer, 2024
* Reviewer, 2024
* Vitaly Zarubin, <v.zarubin@omp.ru>
* Reviewer, 2024
* Egor Popov, <e.popov@omp.ru>
* Reviewer, 2024
* Oksana Torosyan, <o.torosyan@omp.ru>
* Designer, 2024
# file_selector_aurora
The Aurora implementation of [`file_selector`](https://pub.dev/packages/file_selector).
## Usage
This package is not an _endorsed_ implementation of `file_selector`.
Therefore, you have to include `file_selector_aurora` alongside `file_selector` as dependencies in your `pubspec.yaml` file.
**pubspec.yaml**
```yaml
dependencies:
file_selector: ^1.0.3
file_selector_aurora:
git:
url: https://gitlab.com/omprussia/flutter/flutter-plugins.git
ref: file_selector_aurora-0.0.1
path: packages/file_selector/file_selector_aurora
```
***.dart**
```dart
Because file_selector_aurora works through Navigator, the plugin needs context to work.
Use FileSelectorAuroraKeyContainer.navigatorKey to set the key and put it to MaterialApp
import 'package:file_selector_aurora/file_selector_aurora.dart';
final navigatorKey = GlobalKey<NavigatorState>();
void main() {
// Set FileSelectorAuroraKeyContainer.navigatorKey
FileSelectorAuroraKeyContainer.navigatorKey = navigatorKey;
runApp(const MyApp());
}
...
Widget build(BuildContext context) {
// Put navigatorKey to MaterialApp
return MaterialApp(
navigatorKey: navigatorKey,
);
}
...
import 'package:file_selector/file_selector.dart';
Future<void> _openImageFile(BuildContext context) async {
const XTypeGroup typeGroup = XTypeGroup(
extensions: <String>['jpg', 'png'],
);
final XFile? file = await openFile(acceptedTypeGroups: <XTypeGroup>[typeGroup]);
print(file?.name);
}
# SPDX-FileCopyrightText: Copyright 2024 Open Mobile Platform LLC <community@omp.ru>
# SPDX-License-Identifier: BSD-3-Clause
analyzer:
exclude:
- "build/**"
- "file_manager/**"
errors:
body_might_complete_normally_nullable: ignore
invalid_annotation_target: ignore
invalid_use_of_protected_member: error
language:
# strict-casts: true
# strict-inference: true
# strict-raw-types: true
linter:
rules:
# False positive for custom enum-like classes (such as Flutter's "Colors")
avoid_classes_with_only_static_members: false
# False positive when the future is returned by the function
discarded_futures: false
# Low value and lacks a quick fix
combinators_ordering: false
# Low value and high cost to change on all files
eol_at_end_of_file: false
# Conflicts with unused variables
# no_leading_underscores_for_local_identifiers: false
# false positive
one_member_abstracts: false
# too verbose
prefer_final_parameters: false
# Too verbose with little value, and this is taken care of by the Flutter devtool anyway.
diagnostic_describe_all_properties: false
# Personal preference. I prefer "if (bool) return;" over having it in multiple lines
always_put_control_body_on_new_line: false
# Personal preference. I don't find it more readable
cascade_invocations: false
# Conflicts with `prefer_single_quotes`
# Single quotes are easier to type and don't compromise on readability.
prefer_double_quotes: false
# Conflicts with `omit_local_variable_types` and other rules.
# As per Dart guidelines, we want to avoid unnecessary types to make the code
# more readable.
# See https://dart.dev/guides/language/effective-dart/design#avoid-type-annotating-initialized-local-variables
always_specify_types: false
# Incompatible with `prefer_final_locals`
# Having immutable local variables makes larger functions more predictable
# so we will use `prefer_final_locals` instead.
unnecessary_final: false
# Not quite suitable for Flutter, which may have a `build` method with a single
# return, but that return is still complex enough that a "body" is worth it.
prefer_expression_function_bodies: false
# Conflicts with the convention used by flutter, which puts `Key key`
# and `@required Widget child` last.
always_put_required_named_parameters_first: false
# This project doesn't use Flutter-style todos
flutter_style_todos: false
# There are situations where we voluntarily want to catch everything,
# especially as a library.
avoid_catches_without_on_clauses: false
# Boring as it sometimes force a line of 81 characters to be split in two.
# As long as we try to respect that 80 characters limit, going slightly
# above is fine.
lines_longer_than_80_chars: false
# Conflicts with disabling `implicit-dynamic`
avoid_annotating_with_dynamic: false
# conflicts with `prefer_relative_imports`
always_use_package_imports: false
# Disabled for now until we have NNBD as it otherwise conflicts with `missing_return`
no_default_cases: false
# Personal preference
sort_pub_dependencies: false
# Not relevant for common projects
package_api_docs: false
public_member_api_docs: false
# Not support in Dart < 3.2
annotate_redeclares: true
# ------------------------------
# All lint rules:
# ------------------------------
always_declare_return_types: true
# always_put_control_body_on_new_line: true
# always_put_required_named_parameters_first: true
# always_specify_types: true
# always_use_package_imports: true
annotate_overrides: true
# annotate_redeclares: true
# avoid_annotating_with_dynamic: true
avoid_bool_literals_in_conditional_expressions: true
# avoid_catches_without_on_clauses: true
avoid_catching_errors: true
# avoid_classes_with_only_static_members: true
avoid_double_and_int_checks: true
avoid_dynamic_calls: 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_implementing_value_types: true
avoid_init_to_null: true
avoid_js_rounded_ints: true
avoid_multiple_declarations_per_line: true
avoid_null_checks_in_equality_operators: true
# avoid_positional_boolean_parameters: true
avoid_print: true
avoid_private_typedef_functions: true
avoid_redundant_argument_values: 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_types_on_closure_parameters: true
avoid_unnecessary_containers: true
# avoid_unstable_final_fields: 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
# cascade_invocations: true
cast_nullable_to_non_nullable: true
close_sinks: 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
deprecated_member_use_from_same_package: true
# diagnostic_describe_all_properties: true
directives_ordering: true
# discarded_futures: true
do_not_use_environment: true
empty_catches: true
empty_constructor_bodies: true
empty_statements: true
# eol_at_end_of_file: true
exhaustive_cases: true
file_names: true
# flutter_style_todos: true
hash_and_equals: true
implementation_imports: true
implicit_call_tearoffs: true
implicit_reopen: true
invalid_case_patterns: 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
# lines_longer_than_80_chars: true
literal_only_boolean_expressions: true
matching_super_parameters: true
missing_whitespace_between_adjacent_strings: true
no_adjacent_strings_in_list: true
# no_default_cases: true
no_duplicate_case_values: true
no_leading_underscores_for_library_prefixes: true
no_leading_underscores_for_local_identifiers: true
no_literal_bool_comparisons: true
no_logic_in_create_state: true
no_runtimeType_toString: true
no_self_assignments: true
no_wildcard_variable_uses: true
non_constant_identifier_names: true
noop_primitive_operations: true
null_check_on_nullable_type_parameter: true
null_closures: true
omit_local_variable_types: 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
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: true
prefer_const_constructors_in_immutables: true
prefer_const_declarations: true
prefer_const_literals_to_create_immutables: true
prefer_constructors_over_static_methods: true
prefer_contains: true
# prefer_double_quotes: true
# prefer_expression_function_bodies: true
prefer_final_fields: true
prefer_final_in_for_each: true
prefer_final_locals: true
# prefer_final_parameters: 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
prefer_if_null_operators: true
prefer_initializing_formals: true
prefer_inlined_adds: true
prefer_int_literals: true
prefer_interpolation_to_compose_strings: true
prefer_is_empty: true
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_relative_imports: true
prefer_single_quotes: true
prefer_spread_collections: true
prefer_typing_uninitialized_variables: true
prefer_void_to_null: true
provide_deprecation_message: true
# public_member_api_docs: true
recursive_getters: true
require_trailing_commas: true
secure_pubspec_urls: 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_pub_dependencies: 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
type_literal_in_constant_pattern: true
unawaited_futures: true
unnecessary_await_in_return: true
unnecessary_brace_in_string_interps: true
unnecessary_breaks: true
unnecessary_const: true
unnecessary_constructor_name: true
# unnecessary_final: 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_aware_operator_on_extension_on_nullable: 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
unreachable_from_main: true
unrelated_type_equality_checks: true
unsafe_html: true
use_build_context_synchronously: true
use_colored_box: true
use_decorated_box: true
use_enums: true
use_full_hex_values_for_flutter_colors: true
use_function_type_syntax_for_parameters: true
use_if_null_to_convert_nulls_to_bools: 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_setters_to_change_properties: true
use_string_buffers: true
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
Поддерживает Markdown
0% или .
You are about to add 0 people to the discussion. Proceed with caution.
Сначала завершите редактирование этого сообщения!
Пожалуйста, зарегистрируйтесь или чтобы прокомментировать