From 55dd33d04c8af6eb7e23ba7e12ecbf6f58475a16 Mon Sep 17 00:00:00 2001 From: Sergey <63193749+Hlebushek2020@users.noreply.github.com> Date: Fri, 3 Jan 2025 12:40:55 +0300 Subject: [PATCH 1/4] 03/01/2025/12/40 --- app/build.gradle | 2 +- build.gradle | 9 ++++----- gradle/wrapper/gradle-wrapper.properties | 8 +++++--- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 9d34ec5..2550bc1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -4,6 +4,7 @@ plugins { android { compileSdk 32 + namespace 'com.sergeygovorunov.imagecollection' defaultConfig { applicationId "com.sergeygovorunov.imagecollection" @@ -11,7 +12,6 @@ android { targetSdk 32 versionCode 1 versionName "0.1" - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } diff --git a/build.gradle b/build.gradle index 7cbb664..0f26153 100644 --- a/build.gradle +++ b/build.gradle @@ -1,14 +1,13 @@ -// Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { + ext { + agp_version = '8.6.1' + } repositories { google() mavenCentral() } dependencies { - classpath "com.android.tools.build:gradle:7.0.3" - - // NOTE: Do not place your application dependencies here; they belong - // in the individual module build.gradle files + classpath "com.android.tools.build:gradle:$agp_version" } } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index fea00e4..4aab208 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,8 @@ -#Sun Sep 18 17:23:38 MSK 2022 +#Sun Nov 10 20:02:18 MSK 2024 distributionBase=GRADLE_USER_HOME -distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-bin.zip distributionPath=wrapper/dists -zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip +networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists \ No newline at end of file From 2a7713c113dc57f13e483dcf19f1cd781e9ae72b Mon Sep 17 00:00:00 2001 From: Sergey <63193749+Hlebushek2020@users.noreply.github.com> Date: Fri, 3 Jan 2025 12:56:13 +0300 Subject: [PATCH 2/4] 03/01/2025/12/56 --- .editorconfig | 995 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 995 insertions(+) create mode 100644 .editorconfig diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..04621f8 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,995 @@ +[*] +charset = utf-8 +end_of_line = crlf +indent_size = 4 +indent_style = space +insert_final_newline = false +max_line_length = 100 +tab_width = 4 +ij_continuation_indent_size = 8 +ij_formatter_off_tag = @formatter:off +ij_formatter_on_tag = @formatter:on +ij_formatter_tags_enabled = true +ij_smart_tabs = false +ij_visual_guides = +ij_wrap_on_typing = false + +[*.dcl] +ij_declarative_keep_indents_on_empty_lines = false + +[*.java] +ij_java_align_consecutive_assignments = false +ij_java_align_consecutive_variable_declarations = false +ij_java_align_group_field_declarations = false +ij_java_align_multiline_annotation_parameters = false +ij_java_align_multiline_array_initializer_expression = false +ij_java_align_multiline_assignment = false +ij_java_align_multiline_binary_operation = false +ij_java_align_multiline_chained_methods = false +ij_java_align_multiline_deconstruction_list_components = true +ij_java_align_multiline_extends_list = false +ij_java_align_multiline_for = true +ij_java_align_multiline_method_parentheses = false +ij_java_align_multiline_parameters = true +ij_java_align_multiline_parameters_in_calls = false +ij_java_align_multiline_parenthesized_expression = false +ij_java_align_multiline_records = true +ij_java_align_multiline_resources = true +ij_java_align_multiline_ternary_operation = false +ij_java_align_multiline_text_blocks = false +ij_java_align_multiline_throws_list = false +ij_java_align_subsequent_simple_methods = false +ij_java_align_throws_keyword = false +ij_java_align_types_in_multi_catch = true +ij_java_annotation_parameter_wrap = off +ij_java_array_initializer_new_line_after_left_brace = false +ij_java_array_initializer_right_brace_on_new_line = false +ij_java_array_initializer_wrap = off +ij_java_assert_statement_colon_on_next_line = false +ij_java_assert_statement_wrap = off +ij_java_assignment_wrap = off +ij_java_binary_operation_sign_on_next_line = false +ij_java_binary_operation_wrap = off +ij_java_blank_lines_after_anonymous_class_header = 0 +ij_java_blank_lines_after_class_header = 0 +ij_java_blank_lines_after_imports = 1 +ij_java_blank_lines_after_package = 1 +ij_java_blank_lines_around_class = 1 +ij_java_blank_lines_around_field = 0 +ij_java_blank_lines_around_field_in_interface = 0 +ij_java_blank_lines_around_initializer = 1 +ij_java_blank_lines_around_method = 1 +ij_java_blank_lines_around_method_in_interface = 1 +ij_java_blank_lines_before_class_end = 0 +ij_java_blank_lines_before_imports = 1 +ij_java_blank_lines_before_method_body = 0 +ij_java_blank_lines_before_package = 0 +ij_java_block_brace_style = end_of_line +ij_java_block_comment_add_space = false +ij_java_block_comment_at_first_column = true +ij_java_builder_methods = +ij_java_call_parameters_new_line_after_left_paren = false +ij_java_call_parameters_right_paren_on_new_line = false +ij_java_call_parameters_wrap = off +ij_java_case_statement_on_separate_line = true +ij_java_catch_on_new_line = false +ij_java_class_annotation_wrap = split_into_lines +ij_java_class_brace_style = end_of_line +ij_java_class_count_to_use_import_on_demand = 99 +ij_java_class_names_in_javadoc = 1 +ij_java_deconstruction_list_wrap = normal +ij_java_do_not_indent_top_level_class_members = false +ij_java_do_not_wrap_after_single_annotation = false +ij_java_do_not_wrap_after_single_annotation_in_parameter = false +ij_java_do_while_brace_force = never +ij_java_doc_add_blank_line_after_description = true +ij_java_doc_add_blank_line_after_param_comments = false +ij_java_doc_add_blank_line_after_return = false +ij_java_doc_add_p_tag_on_empty_lines = true +ij_java_doc_align_exception_comments = true +ij_java_doc_align_param_comments = true +ij_java_doc_do_not_wrap_if_one_line = false +ij_java_doc_enable_formatting = true +ij_java_doc_enable_leading_asterisks = true +ij_java_doc_indent_on_continuation = false +ij_java_doc_keep_empty_lines = true +ij_java_doc_keep_empty_parameter_tag = true +ij_java_doc_keep_empty_return_tag = true +ij_java_doc_keep_empty_throws_tag = true +ij_java_doc_keep_invalid_tags = true +ij_java_doc_param_description_on_new_line = false +ij_java_doc_preserve_line_breaks = false +ij_java_doc_use_throws_not_exception_tag = true +ij_java_else_on_new_line = false +ij_java_enum_constants_wrap = off +ij_java_enum_field_annotation_wrap = off +ij_java_extends_keyword_wrap = off +ij_java_extends_list_wrap = off +ij_java_field_annotation_wrap = split_into_lines +ij_java_field_name_prefix = +ij_java_field_name_suffix = +ij_java_finally_on_new_line = false +ij_java_for_brace_force = never +ij_java_for_statement_new_line_after_left_paren = false +ij_java_for_statement_right_paren_on_new_line = false +ij_java_for_statement_wrap = off +ij_java_generate_final_locals = false +ij_java_generate_final_parameters = false +ij_java_generate_use_type_annotation_before_type = true +ij_java_if_brace_force = never +ij_java_imports_layout = $android.**, $androidx.**, $com.**, $junit.**, $net.**, $org.**, $java.**, $javax.**, $*, |, android.**, |, androidx.**, |, com.**, |, junit.**, |, net.**, |, org.**, |, java.**, |, javax.**, |, *, | +ij_java_indent_case_from_switch = true +ij_java_insert_inner_class_imports = false +ij_java_insert_override_annotation = true +ij_java_keep_blank_lines_before_right_brace = 2 +ij_java_keep_blank_lines_between_package_declaration_and_header = 2 +ij_java_keep_blank_lines_in_code = 2 +ij_java_keep_blank_lines_in_declarations = 2 +ij_java_keep_builder_methods_indents = false +ij_java_keep_control_statement_in_one_line = true +ij_java_keep_first_column_comment = true +ij_java_keep_indents_on_empty_lines = false +ij_java_keep_line_breaks = true +ij_java_keep_multiple_expressions_in_one_line = false +ij_java_keep_simple_blocks_in_one_line = false +ij_java_keep_simple_classes_in_one_line = false +ij_java_keep_simple_lambdas_in_one_line = false +ij_java_keep_simple_methods_in_one_line = false +ij_java_label_indent_absolute = false +ij_java_label_indent_size = 0 +ij_java_lambda_brace_style = end_of_line +ij_java_layout_static_imports_separately = true +ij_java_line_comment_add_space = false +ij_java_line_comment_add_space_on_reformat = false +ij_java_line_comment_at_first_column = true +ij_java_local_variable_name_prefix = +ij_java_local_variable_name_suffix = +ij_java_method_annotation_wrap = split_into_lines +ij_java_method_brace_style = end_of_line +ij_java_method_call_chain_wrap = off +ij_java_method_parameters_new_line_after_left_paren = false +ij_java_method_parameters_right_paren_on_new_line = false +ij_java_method_parameters_wrap = off +ij_java_modifier_list_wrap = false +ij_java_multi_catch_types_wrap = normal +ij_java_names_count_to_use_import_on_demand = 99 +ij_java_new_line_after_lparen_in_annotation = false +ij_java_new_line_after_lparen_in_deconstruction_pattern = true +ij_java_new_line_after_lparen_in_record_header = false +ij_java_new_line_when_body_is_presented = false +ij_java_packages_to_use_import_on_demand = +ij_java_parameter_annotation_wrap = off +ij_java_parameter_name_prefix = +ij_java_parameter_name_suffix = +ij_java_parentheses_expression_new_line_after_left_paren = false +ij_java_parentheses_expression_right_paren_on_new_line = false +ij_java_place_assignment_sign_on_next_line = false +ij_java_prefer_longer_names = true +ij_java_prefer_parameters_wrap = false +ij_java_record_components_wrap = normal +ij_java_repeat_annotations = +ij_java_repeat_synchronized = true +ij_java_replace_instanceof_and_cast = false +ij_java_replace_null_check = true +ij_java_replace_sum_lambda_with_method_ref = true +ij_java_resource_list_new_line_after_left_paren = false +ij_java_resource_list_right_paren_on_new_line = false +ij_java_resource_list_wrap = off +ij_java_rparen_on_new_line_in_annotation = false +ij_java_rparen_on_new_line_in_deconstruction_pattern = true +ij_java_rparen_on_new_line_in_record_header = false +ij_java_space_after_closing_angle_bracket_in_type_argument = false +ij_java_space_after_colon = true +ij_java_space_after_comma = true +ij_java_space_after_comma_in_type_arguments = true +ij_java_space_after_for_semicolon = true +ij_java_space_after_quest = true +ij_java_space_after_type_cast = true +ij_java_space_before_annotation_array_initializer_left_brace = false +ij_java_space_before_annotation_parameter_list = false +ij_java_space_before_array_initializer_left_brace = false +ij_java_space_before_catch_keyword = true +ij_java_space_before_catch_left_brace = true +ij_java_space_before_catch_parentheses = true +ij_java_space_before_class_left_brace = true +ij_java_space_before_colon = true +ij_java_space_before_colon_in_foreach = true +ij_java_space_before_comma = false +ij_java_space_before_deconstruction_list = false +ij_java_space_before_do_left_brace = true +ij_java_space_before_else_keyword = true +ij_java_space_before_else_left_brace = true +ij_java_space_before_finally_keyword = true +ij_java_space_before_finally_left_brace = true +ij_java_space_before_for_left_brace = true +ij_java_space_before_for_parentheses = true +ij_java_space_before_for_semicolon = false +ij_java_space_before_if_left_brace = true +ij_java_space_before_if_parentheses = true +ij_java_space_before_method_call_parentheses = false +ij_java_space_before_method_left_brace = true +ij_java_space_before_method_parentheses = false +ij_java_space_before_opening_angle_bracket_in_type_parameter = false +ij_java_space_before_quest = true +ij_java_space_before_switch_left_brace = true +ij_java_space_before_switch_parentheses = true +ij_java_space_before_synchronized_left_brace = true +ij_java_space_before_synchronized_parentheses = true +ij_java_space_before_try_left_brace = true +ij_java_space_before_try_parentheses = true +ij_java_space_before_type_parameter_list = false +ij_java_space_before_while_keyword = true +ij_java_space_before_while_left_brace = true +ij_java_space_before_while_parentheses = true +ij_java_space_inside_one_line_enum_braces = false +ij_java_space_within_empty_array_initializer_braces = false +ij_java_space_within_empty_method_call_parentheses = false +ij_java_space_within_empty_method_parentheses = false +ij_java_spaces_around_additive_operators = true +ij_java_spaces_around_annotation_eq = true +ij_java_spaces_around_assignment_operators = true +ij_java_spaces_around_bitwise_operators = true +ij_java_spaces_around_equality_operators = true +ij_java_spaces_around_lambda_arrow = true +ij_java_spaces_around_logical_operators = true +ij_java_spaces_around_method_ref_dbl_colon = false +ij_java_spaces_around_multiplicative_operators = true +ij_java_spaces_around_relational_operators = true +ij_java_spaces_around_shift_operators = true +ij_java_spaces_around_type_bounds_in_type_parameters = true +ij_java_spaces_around_unary_operator = false +ij_java_spaces_inside_block_braces_when_body_is_present = false +ij_java_spaces_within_angle_brackets = false +ij_java_spaces_within_annotation_parentheses = false +ij_java_spaces_within_array_initializer_braces = false +ij_java_spaces_within_braces = false +ij_java_spaces_within_brackets = false +ij_java_spaces_within_cast_parentheses = false +ij_java_spaces_within_catch_parentheses = false +ij_java_spaces_within_deconstruction_list = false +ij_java_spaces_within_for_parentheses = false +ij_java_spaces_within_if_parentheses = false +ij_java_spaces_within_method_call_parentheses = false +ij_java_spaces_within_method_parentheses = false +ij_java_spaces_within_parentheses = false +ij_java_spaces_within_record_header = false +ij_java_spaces_within_switch_parentheses = false +ij_java_spaces_within_synchronized_parentheses = false +ij_java_spaces_within_try_parentheses = false +ij_java_spaces_within_while_parentheses = false +ij_java_special_else_if_treatment = true +ij_java_static_field_name_prefix = +ij_java_static_field_name_suffix = +ij_java_subclass_name_prefix = +ij_java_subclass_name_suffix = Impl +ij_java_switch_expressions_wrap = normal +ij_java_ternary_operation_signs_on_next_line = false +ij_java_ternary_operation_wrap = off +ij_java_test_name_prefix = +ij_java_test_name_suffix = Test +ij_java_throws_keyword_wrap = off +ij_java_throws_list_wrap = off +ij_java_use_external_annotations = false +ij_java_use_fq_class_names = false +ij_java_use_relative_indents = false +ij_java_use_single_class_imports = true +ij_java_variable_annotation_wrap = off +ij_java_visibility = public +ij_java_while_brace_force = never +ij_java_while_on_new_line = false +ij_java_wrap_comments = false +ij_java_wrap_first_method_in_call_chain = false +ij_java_wrap_long_lines = false +ij_java_wrap_semicolon_after_call_chain = false + +[*.properties] +ij_properties_align_group_field_declarations = false +ij_properties_keep_blank_lines = false +ij_properties_key_value_delimiter = equals +ij_properties_spaces_around_key_value_delimiter = false + +[.editorconfig] +ij_editorconfig_align_group_field_declarations = false +ij_editorconfig_space_after_colon = false +ij_editorconfig_space_after_comma = true +ij_editorconfig_space_before_colon = false +ij_editorconfig_space_before_comma = false +ij_editorconfig_spaces_around_assignment_operators = true + +[{*.ant,*.fxml,*.jhm,*.jnlp,*.jrxml,*.rng,*.tld,*.wsdl,*.xml,*.xsd,*.xsl,*.xslt,*.xul}] +ij_continuation_indent_size = 4 +ij_xml_align_attributes = false +ij_xml_align_text = false +ij_xml_attribute_wrap = normal +ij_xml_block_comment_add_space = false +ij_xml_block_comment_at_first_column = true +ij_xml_keep_blank_lines = 2 +ij_xml_keep_indents_on_empty_lines = false +ij_xml_keep_line_breaks = false +ij_xml_keep_line_breaks_in_text = true +ij_xml_keep_whitespaces = false +ij_xml_keep_whitespaces_around_cdata = preserve +ij_xml_keep_whitespaces_inside_cdata = false +ij_xml_line_comment_at_first_column = true +ij_xml_space_after_tag_name = false +ij_xml_space_around_equals_in_attribute = false +ij_xml_space_inside_empty_tag = true +ij_xml_text_wrap = normal +ij_xml_use_custom_settings = true + +[{*.apinotes,*.yaml,*.yml,.clang-format,.clang-tidy,_clang-format}] +indent_size = 2 +ij_yaml_align_values_properties = do_not_align +ij_yaml_autoinsert_sequence_marker = true +ij_yaml_block_mapping_on_new_line = false +ij_yaml_indent_sequence_value = true +ij_yaml_keep_indents_on_empty_lines = false +ij_yaml_keep_line_breaks = true +ij_yaml_line_comment_add_space = false +ij_yaml_line_comment_add_space_on_reformat = false +ij_yaml_line_comment_at_first_column = true +ij_yaml_sequence_on_new_line = false +ij_yaml_space_before_colon = false +ij_yaml_spaces_within_braces = true +ij_yaml_spaces_within_brackets = true + +[{*.bash,*.sh,*.zsh}] +indent_size = 2 +tab_width = 2 +ij_shell_binary_ops_start_line = false +ij_shell_keep_column_alignment_padding = false +ij_shell_minify_program = false +ij_shell_redirect_followed_by_space = false +ij_shell_switch_cases_indented = false +ij_shell_use_unix_line_separator = true + +[{*.c,*.c++,*.c++m,*.cc,*.ccm,*.cp,*.cpp,*.cppm,*.cu,*.cuh,*.cxx,*.cxxm,*.h,*.h++,*.hh,*.hp,*.hpp,*.hxx,*.i,*.icc,*.ii,*.inl,*.ino,*.ipp,*.ixx,*.m,*.mm,*.mxx,*.pch,*.tcc,*.tpp}] +ij_c_add_brief_tag = false +ij_c_add_getter_prefix = true +ij_c_add_setter_prefix = true +ij_c_align_dictionary_pair_values = false +ij_c_align_group_field_declarations = false +ij_c_align_init_list_in_columns = true +ij_c_align_multiline_array_initializer_expression = true +ij_c_align_multiline_assignment = true +ij_c_align_multiline_binary_operation = true +ij_c_align_multiline_chained_methods = false +ij_c_align_multiline_for = true +ij_c_align_multiline_ternary_operation = true +ij_c_array_initializer_comma_on_next_line = false +ij_c_array_initializer_new_line_after_left_brace = false +ij_c_array_initializer_right_brace_on_new_line = false +ij_c_array_initializer_wrap = normal +ij_c_assignment_wrap = off +ij_c_binary_operation_sign_on_next_line = false +ij_c_binary_operation_wrap = normal +ij_c_blank_lines_after_class_header = 0 +ij_c_blank_lines_after_imports = 1 +ij_c_blank_lines_around_class = 1 +ij_c_blank_lines_around_field = 0 +ij_c_blank_lines_around_field_in_interface = 0 +ij_c_blank_lines_around_method = 1 +ij_c_blank_lines_around_method_in_interface = 1 +ij_c_blank_lines_around_namespace = 0 +ij_c_blank_lines_around_properties_in_declaration = 0 +ij_c_blank_lines_around_properties_in_interface = 0 +ij_c_blank_lines_before_imports = 1 +ij_c_blank_lines_before_method_body = 0 +ij_c_block_brace_placement = end_of_line +ij_c_block_brace_style = end_of_line +ij_c_block_comment_at_first_column = true +ij_c_catch_on_new_line = false +ij_c_class_brace_style = end_of_line +ij_c_class_constructor_init_list_align_multiline = true +ij_c_class_constructor_init_list_comma_on_next_line = false +ij_c_class_constructor_init_list_new_line_after_colon = never +ij_c_class_constructor_init_list_new_line_before_colon = if_long +ij_c_class_constructor_init_list_wrap = normal +ij_c_copy_is_deep = false +ij_c_create_interface_for_categories = true +ij_c_declare_generated_methods = true +ij_c_description_include_member_names = true +ij_c_discharged_short_ternary_operator = false +ij_c_do_not_add_breaks = false +ij_c_do_while_brace_force = never +ij_c_else_on_new_line = false +ij_c_enum_constants_comma_on_next_line = false +ij_c_enum_constants_wrap = on_every_item +ij_c_for_brace_force = never +ij_c_for_statement_new_line_after_left_paren = false +ij_c_for_statement_right_paren_on_new_line = false +ij_c_for_statement_wrap = off +ij_c_function_brace_placement = end_of_line +ij_c_function_call_arguments_align_multiline = true +ij_c_function_call_arguments_align_multiline_pars = false +ij_c_function_call_arguments_comma_on_next_line = false +ij_c_function_call_arguments_new_line_after_lpar = false +ij_c_function_call_arguments_new_line_before_rpar = false +ij_c_function_call_arguments_wrap = normal +ij_c_function_non_top_after_return_type_wrap = normal +ij_c_function_parameters_align_multiline = true +ij_c_function_parameters_align_multiline_pars = false +ij_c_function_parameters_comma_on_next_line = false +ij_c_function_parameters_new_line_after_lpar = false +ij_c_function_parameters_new_line_before_rpar = false +ij_c_function_parameters_wrap = normal +ij_c_function_top_after_return_type_wrap = normal +ij_c_generate_additional_eq_operators = true +ij_c_generate_additional_rel_operators = true +ij_c_generate_class_constructor = true +ij_c_generate_comparison_operators_use_std_tie = false +ij_c_generate_instance_variables_for_properties = ask +ij_c_generate_operators_as_members = true +ij_c_header_guard_style_pattern = ${PROJECT_NAME}_${FILE_NAME}_${EXT} +ij_c_if_brace_force = never +ij_c_in_line_short_ternary_operator = true +ij_c_indent_block_comment = true +ij_c_indent_c_struct_members = 4 +ij_c_indent_case_from_switch = true +ij_c_indent_class_members = 4 +ij_c_indent_directive_as_code = false +ij_c_indent_implementation_members = 0 +ij_c_indent_inside_code_block = 4 +ij_c_indent_interface_members = 0 +ij_c_indent_interface_members_except_ivars_block = false +ij_c_indent_namespace_members = 4 +ij_c_indent_preprocessor_directive = 0 +ij_c_indent_visibility_keywords = 0 +ij_c_insert_override = true +ij_c_insert_virtual_with_override = false +ij_c_introduce_auto_consts = false +ij_c_introduce_auto_vars = false +ij_c_introduce_const_params = false +ij_c_introduce_const_vars = false +ij_c_introduce_constexpr_consts = false +ij_c_introduce_generate_property = false +ij_c_introduce_generate_synthesize = true +ij_c_introduce_globals_to_header = true +ij_c_introduce_prop_to_private_category = false +ij_c_introduce_static_consts = true +ij_c_introduce_use_ns_types = false +ij_c_ivars_prefix = _ +ij_c_ivars_suffix = +ij_c_keep_blank_lines_before_end = 2 +ij_c_keep_blank_lines_before_right_brace = 2 +ij_c_keep_blank_lines_in_code = 2 +ij_c_keep_blank_lines_in_declarations = 2 +ij_c_keep_case_expressions_in_one_line = false +ij_c_keep_control_statement_in_one_line = true +ij_c_keep_directive_at_first_column = true +ij_c_keep_first_column_comment = true +ij_c_keep_line_breaks = true +ij_c_keep_nested_namespaces_in_one_line = false +ij_c_keep_simple_blocks_in_one_line = true +ij_c_keep_simple_methods_in_one_line = true +ij_c_keep_structures_in_one_line = false +ij_c_lambda_capture_list_align_multiline = false +ij_c_lambda_capture_list_align_multiline_bracket = false +ij_c_lambda_capture_list_comma_on_next_line = false +ij_c_lambda_capture_list_new_line_after_lbracket = false +ij_c_lambda_capture_list_new_line_before_rbracket = false +ij_c_lambda_capture_list_wrap = off +ij_c_line_comment_add_space = false +ij_c_line_comment_at_first_column = true +ij_c_method_brace_placement = end_of_line +ij_c_method_call_arguments_align_by_colons = true +ij_c_method_call_arguments_align_multiline = false +ij_c_method_call_arguments_special_dictionary_pairs_treatment = true +ij_c_method_call_arguments_wrap = off +ij_c_method_call_chain_wrap = off +ij_c_method_parameters_align_by_colons = true +ij_c_method_parameters_align_multiline = false +ij_c_method_parameters_wrap = off +ij_c_namespace_brace_placement = end_of_line +ij_c_parentheses_expression_new_line_after_left_paren = false +ij_c_parentheses_expression_right_paren_on_new_line = false +ij_c_place_assignment_sign_on_next_line = false +ij_c_property_nonatomic = true +ij_c_put_ivars_to_implementation = true +ij_c_refactor_compatibility_aliases_and_classes = true +ij_c_refactor_properties_and_ivars = true +ij_c_release_style = ivar +ij_c_retain_object_parameters_in_constructor = true +ij_c_semicolon_after_method_signature = false +ij_c_shift_operation_align_multiline = true +ij_c_shift_operation_wrap = normal +ij_c_show_non_virtual_functions = false +ij_c_space_after_colon = true +ij_c_space_after_colon_in_foreach = true +ij_c_space_after_colon_in_selector = false +ij_c_space_after_comma = true +ij_c_space_after_cup_in_blocks = false +ij_c_space_after_dictionary_literal_colon = true +ij_c_space_after_for_semicolon = true +ij_c_space_after_init_list_colon = true +ij_c_space_after_method_parameter_type_parentheses = false +ij_c_space_after_method_return_type_parentheses = false +ij_c_space_after_pointer_in_declaration = false +ij_c_space_after_quest = true +ij_c_space_after_reference_in_declaration = false +ij_c_space_after_reference_in_rvalue = false +ij_c_space_after_structures_rbrace = true +ij_c_space_after_superclass_colon = true +ij_c_space_after_type_cast = true +ij_c_space_after_visibility_sign_in_method_declaration = true +ij_c_space_before_autorelease_pool_lbrace = true +ij_c_space_before_catch_keyword = true +ij_c_space_before_catch_left_brace = true +ij_c_space_before_catch_parentheses = true +ij_c_space_before_category_parentheses = true +ij_c_space_before_chained_send_message = true +ij_c_space_before_class_left_brace = true +ij_c_space_before_colon = true +ij_c_space_before_colon_in_foreach = false +ij_c_space_before_comma = false +ij_c_space_before_dictionary_literal_colon = false +ij_c_space_before_do_left_brace = true +ij_c_space_before_else_keyword = true +ij_c_space_before_else_left_brace = true +ij_c_space_before_export_lbrace = true +ij_c_space_before_for_left_brace = true +ij_c_space_before_for_parentheses = true +ij_c_space_before_for_semicolon = false +ij_c_space_before_if_left_brace = true +ij_c_space_before_if_parentheses = true +ij_c_space_before_init_list = false +ij_c_space_before_init_list_colon = true +ij_c_space_before_method_call_parentheses = false +ij_c_space_before_method_left_brace = true +ij_c_space_before_method_parentheses = false +ij_c_space_before_namespace_lbrace = true +ij_c_space_before_pointer_in_declaration = true +ij_c_space_before_property_attributes_parentheses = false +ij_c_space_before_protocols_brackets = true +ij_c_space_before_quest = true +ij_c_space_before_reference_in_declaration = true +ij_c_space_before_superclass_colon = true +ij_c_space_before_switch_left_brace = true +ij_c_space_before_switch_parentheses = true +ij_c_space_before_template_call_lt = false +ij_c_space_before_template_declaration_lt = false +ij_c_space_before_try_left_brace = true +ij_c_space_before_while_keyword = true +ij_c_space_before_while_left_brace = true +ij_c_space_before_while_parentheses = true +ij_c_space_between_adjacent_brackets = false +ij_c_space_between_operator_and_punctuator = false +ij_c_space_within_empty_array_initializer_braces = false +ij_c_spaces_around_additive_operators = true +ij_c_spaces_around_assignment_operators = true +ij_c_spaces_around_bitwise_operators = true +ij_c_spaces_around_equality_operators = true +ij_c_spaces_around_lambda_arrow = true +ij_c_spaces_around_logical_operators = true +ij_c_spaces_around_multiplicative_operators = true +ij_c_spaces_around_pm_operators = false +ij_c_spaces_around_relational_operators = true +ij_c_spaces_around_shift_operators = true +ij_c_spaces_around_unary_operator = false +ij_c_spaces_within_array_initializer_braces = false +ij_c_spaces_within_braces = true +ij_c_spaces_within_brackets = false +ij_c_spaces_within_cast_parentheses = false +ij_c_spaces_within_catch_parentheses = false +ij_c_spaces_within_category_parentheses = false +ij_c_spaces_within_empty_braces = false +ij_c_spaces_within_empty_function_call_parentheses = false +ij_c_spaces_within_empty_function_declaration_parentheses = false +ij_c_spaces_within_empty_lambda_capture_list_bracket = false +ij_c_spaces_within_empty_template_call_ltgt = false +ij_c_spaces_within_empty_template_declaration_ltgt = false +ij_c_spaces_within_for_parentheses = false +ij_c_spaces_within_function_call_parentheses = false +ij_c_spaces_within_function_declaration_parentheses = false +ij_c_spaces_within_if_parentheses = false +ij_c_spaces_within_lambda_capture_list_bracket = false +ij_c_spaces_within_method_parameter_type_parentheses = false +ij_c_spaces_within_method_return_type_parentheses = false +ij_c_spaces_within_parentheses = false +ij_c_spaces_within_property_attributes_parentheses = false +ij_c_spaces_within_protocols_brackets = false +ij_c_spaces_within_send_message_brackets = false +ij_c_spaces_within_structured_binding_list_bracket = false +ij_c_spaces_within_switch_parentheses = false +ij_c_spaces_within_template_call_ltgt = false +ij_c_spaces_within_template_declaration_ltgt = false +ij_c_spaces_within_template_double_gt = true +ij_c_spaces_within_while_parentheses = false +ij_c_special_else_if_treatment = true +ij_c_structured_binding_list_align_multiline = false +ij_c_structured_binding_list_align_multiline_bracket = false +ij_c_structured_binding_list_comma_on_next_line = false +ij_c_structured_binding_list_new_line_after_lbracket = false +ij_c_structured_binding_list_new_line_before_rbracket = false +ij_c_structured_binding_list_wrap = off +ij_c_superclass_list_after_colon = never +ij_c_superclass_list_align_multiline = true +ij_c_superclass_list_before_colon = if_long +ij_c_superclass_list_comma_on_next_line = false +ij_c_superclass_list_wrap = on_every_item +ij_c_tag_prefix_of_block_comment = at +ij_c_tag_prefix_of_line_comment = back_slash +ij_c_template_call_arguments_align_multiline = false +ij_c_template_call_arguments_align_multiline_pars = false +ij_c_template_call_arguments_comma_on_next_line = false +ij_c_template_call_arguments_new_line_after_lt = false +ij_c_template_call_arguments_new_line_before_gt = false +ij_c_template_call_arguments_wrap = off +ij_c_template_declaration_function_body_indent = false +ij_c_template_declaration_function_wrap = split_into_lines +ij_c_template_declaration_struct_body_indent = false +ij_c_template_declaration_struct_wrap = split_into_lines +ij_c_template_parameters_align_multiline = false +ij_c_template_parameters_align_multiline_pars = false +ij_c_template_parameters_comma_on_next_line = false +ij_c_template_parameters_new_line_after_lt = false +ij_c_template_parameters_new_line_before_gt = false +ij_c_template_parameters_wrap = off +ij_c_ternary_operation_signs_on_next_line = true +ij_c_ternary_operation_wrap = normal +ij_c_type_qualifiers_placement = before +ij_c_use_modern_casts = true +ij_c_use_setters_in_constructor = true +ij_c_while_brace_force = never +ij_c_while_on_new_line = false +ij_c_wrap_property_declaration = off + +[{*.cmake,CMakeLists.txt}] +ij_cmake_align_command_call_r_par = false +ij_cmake_align_control_flow_r_par = false +ij_cmake_align_multiline_parameters_in_calls = false +ij_cmake_force_commands_case = 2 +ij_cmake_keep_blank_lines_in_code = 2 +ij_cmake_space_before_for_parentheses = true +ij_cmake_space_before_if_parentheses = true +ij_cmake_space_before_method_call_parentheses = false +ij_cmake_space_before_method_parentheses = false +ij_cmake_space_before_while_parentheses = true +ij_cmake_spaces_within_for_parentheses = false +ij_cmake_spaces_within_if_parentheses = false +ij_cmake_spaces_within_method_call_parentheses = false +ij_cmake_spaces_within_method_parentheses = false +ij_cmake_spaces_within_while_parentheses = false + +[{*.gant,*.groovy,*.gy}] +ij_groovy_align_group_field_declarations = false +ij_groovy_align_multiline_array_initializer_expression = false +ij_groovy_align_multiline_assignment = false +ij_groovy_align_multiline_binary_operation = false +ij_groovy_align_multiline_chained_methods = false +ij_groovy_align_multiline_extends_list = false +ij_groovy_align_multiline_for = true +ij_groovy_align_multiline_list_or_map = true +ij_groovy_align_multiline_method_parentheses = false +ij_groovy_align_multiline_parameters = true +ij_groovy_align_multiline_parameters_in_calls = false +ij_groovy_align_multiline_resources = true +ij_groovy_align_multiline_ternary_operation = false +ij_groovy_align_multiline_throws_list = false +ij_groovy_align_named_args_in_map = true +ij_groovy_align_throws_keyword = false +ij_groovy_array_initializer_new_line_after_left_brace = false +ij_groovy_array_initializer_right_brace_on_new_line = false +ij_groovy_array_initializer_wrap = off +ij_groovy_assert_statement_wrap = off +ij_groovy_assignment_wrap = off +ij_groovy_binary_operation_wrap = off +ij_groovy_blank_lines_after_class_header = 0 +ij_groovy_blank_lines_after_imports = 1 +ij_groovy_blank_lines_after_package = 1 +ij_groovy_blank_lines_around_class = 1 +ij_groovy_blank_lines_around_field = 0 +ij_groovy_blank_lines_around_field_in_interface = 0 +ij_groovy_blank_lines_around_method = 1 +ij_groovy_blank_lines_around_method_in_interface = 1 +ij_groovy_blank_lines_before_imports = 1 +ij_groovy_blank_lines_before_method_body = 0 +ij_groovy_blank_lines_before_package = 0 +ij_groovy_block_brace_style = end_of_line +ij_groovy_block_comment_add_space = false +ij_groovy_block_comment_at_first_column = true +ij_groovy_call_parameters_new_line_after_left_paren = false +ij_groovy_call_parameters_right_paren_on_new_line = false +ij_groovy_call_parameters_wrap = off +ij_groovy_catch_on_new_line = false +ij_groovy_class_annotation_wrap = split_into_lines +ij_groovy_class_brace_style = end_of_line +ij_groovy_class_count_to_use_import_on_demand = 5 +ij_groovy_do_while_brace_force = never +ij_groovy_else_on_new_line = false +ij_groovy_enable_groovydoc_formatting = true +ij_groovy_enum_constants_wrap = off +ij_groovy_extends_keyword_wrap = off +ij_groovy_extends_list_wrap = off +ij_groovy_field_annotation_wrap = split_into_lines +ij_groovy_finally_on_new_line = false +ij_groovy_for_brace_force = never +ij_groovy_for_statement_new_line_after_left_paren = false +ij_groovy_for_statement_right_paren_on_new_line = false +ij_groovy_for_statement_wrap = off +ij_groovy_ginq_general_clause_wrap_policy = 2 +ij_groovy_ginq_having_wrap_policy = 1 +ij_groovy_ginq_indent_having_clause = true +ij_groovy_ginq_indent_on_clause = true +ij_groovy_ginq_on_wrap_policy = 1 +ij_groovy_ginq_space_after_keyword = true +ij_groovy_if_brace_force = never +ij_groovy_import_annotation_wrap = 2 +ij_groovy_imports_layout = *, |, javax.**, java.**, |, $* +ij_groovy_indent_case_from_switch = true +ij_groovy_indent_label_blocks = true +ij_groovy_insert_inner_class_imports = false +ij_groovy_keep_blank_lines_before_right_brace = 2 +ij_groovy_keep_blank_lines_in_code = 2 +ij_groovy_keep_blank_lines_in_declarations = 2 +ij_groovy_keep_control_statement_in_one_line = true +ij_groovy_keep_first_column_comment = true +ij_groovy_keep_indents_on_empty_lines = false +ij_groovy_keep_line_breaks = true +ij_groovy_keep_multiple_expressions_in_one_line = false +ij_groovy_keep_simple_blocks_in_one_line = false +ij_groovy_keep_simple_classes_in_one_line = true +ij_groovy_keep_simple_lambdas_in_one_line = true +ij_groovy_keep_simple_methods_in_one_line = true +ij_groovy_label_indent_absolute = false +ij_groovy_label_indent_size = 0 +ij_groovy_lambda_brace_style = end_of_line +ij_groovy_layout_static_imports_separately = true +ij_groovy_line_comment_add_space = false +ij_groovy_line_comment_add_space_on_reformat = false +ij_groovy_line_comment_at_first_column = true +ij_groovy_method_annotation_wrap = split_into_lines +ij_groovy_method_brace_style = end_of_line +ij_groovy_method_call_chain_wrap = off +ij_groovy_method_parameters_new_line_after_left_paren = false +ij_groovy_method_parameters_right_paren_on_new_line = false +ij_groovy_method_parameters_wrap = off +ij_groovy_modifier_list_wrap = false +ij_groovy_names_count_to_use_import_on_demand = 3 +ij_groovy_packages_to_use_import_on_demand = java.awt.*, javax.swing.* +ij_groovy_parameter_annotation_wrap = off +ij_groovy_parentheses_expression_new_line_after_left_paren = false +ij_groovy_parentheses_expression_right_paren_on_new_line = false +ij_groovy_prefer_parameters_wrap = false +ij_groovy_resource_list_new_line_after_left_paren = false +ij_groovy_resource_list_right_paren_on_new_line = false +ij_groovy_resource_list_wrap = off +ij_groovy_space_after_assert_separator = true +ij_groovy_space_after_colon = true +ij_groovy_space_after_comma = true +ij_groovy_space_after_comma_in_type_arguments = true +ij_groovy_space_after_for_semicolon = true +ij_groovy_space_after_quest = true +ij_groovy_space_after_type_cast = true +ij_groovy_space_before_annotation_parameter_list = false +ij_groovy_space_before_array_initializer_left_brace = false +ij_groovy_space_before_assert_separator = false +ij_groovy_space_before_catch_keyword = true +ij_groovy_space_before_catch_left_brace = true +ij_groovy_space_before_catch_parentheses = true +ij_groovy_space_before_class_left_brace = true +ij_groovy_space_before_closure_left_brace = true +ij_groovy_space_before_colon = true +ij_groovy_space_before_comma = false +ij_groovy_space_before_do_left_brace = true +ij_groovy_space_before_else_keyword = true +ij_groovy_space_before_else_left_brace = true +ij_groovy_space_before_finally_keyword = true +ij_groovy_space_before_finally_left_brace = true +ij_groovy_space_before_for_left_brace = true +ij_groovy_space_before_for_parentheses = true +ij_groovy_space_before_for_semicolon = false +ij_groovy_space_before_if_left_brace = true +ij_groovy_space_before_if_parentheses = true +ij_groovy_space_before_method_call_parentheses = false +ij_groovy_space_before_method_left_brace = true +ij_groovy_space_before_method_parentheses = false +ij_groovy_space_before_quest = true +ij_groovy_space_before_record_parentheses = false +ij_groovy_space_before_switch_left_brace = true +ij_groovy_space_before_switch_parentheses = true +ij_groovy_space_before_synchronized_left_brace = true +ij_groovy_space_before_synchronized_parentheses = true +ij_groovy_space_before_try_left_brace = true +ij_groovy_space_before_try_parentheses = true +ij_groovy_space_before_while_keyword = true +ij_groovy_space_before_while_left_brace = true +ij_groovy_space_before_while_parentheses = true +ij_groovy_space_in_named_argument = true +ij_groovy_space_in_named_argument_before_colon = false +ij_groovy_space_within_empty_array_initializer_braces = false +ij_groovy_space_within_empty_method_call_parentheses = false +ij_groovy_spaces_around_additive_operators = true +ij_groovy_spaces_around_assignment_operators = true +ij_groovy_spaces_around_bitwise_operators = true +ij_groovy_spaces_around_equality_operators = true +ij_groovy_spaces_around_lambda_arrow = true +ij_groovy_spaces_around_logical_operators = true +ij_groovy_spaces_around_multiplicative_operators = true +ij_groovy_spaces_around_regex_operators = true +ij_groovy_spaces_around_relational_operators = true +ij_groovy_spaces_around_shift_operators = true +ij_groovy_spaces_within_annotation_parentheses = false +ij_groovy_spaces_within_array_initializer_braces = false +ij_groovy_spaces_within_braces = true +ij_groovy_spaces_within_brackets = false +ij_groovy_spaces_within_cast_parentheses = false +ij_groovy_spaces_within_catch_parentheses = false +ij_groovy_spaces_within_for_parentheses = false +ij_groovy_spaces_within_gstring_injection_braces = false +ij_groovy_spaces_within_if_parentheses = false +ij_groovy_spaces_within_list_or_map = false +ij_groovy_spaces_within_method_call_parentheses = false +ij_groovy_spaces_within_method_parentheses = false +ij_groovy_spaces_within_parentheses = false +ij_groovy_spaces_within_switch_parentheses = false +ij_groovy_spaces_within_synchronized_parentheses = false +ij_groovy_spaces_within_try_parentheses = false +ij_groovy_spaces_within_tuple_expression = false +ij_groovy_spaces_within_while_parentheses = false +ij_groovy_special_else_if_treatment = true +ij_groovy_ternary_operation_wrap = off +ij_groovy_throws_keyword_wrap = off +ij_groovy_throws_list_wrap = off +ij_groovy_use_flying_geese_braces = false +ij_groovy_use_fq_class_names = false +ij_groovy_use_fq_class_names_in_javadoc = true +ij_groovy_use_relative_indents = false +ij_groovy_use_single_class_imports = true +ij_groovy_variable_annotation_wrap = off +ij_groovy_while_brace_force = never +ij_groovy_while_on_new_line = false +ij_groovy_wrap_chain_calls_after_dot = false +ij_groovy_wrap_long_lines = false + +[{*.har,*.json,*.jsonc}] +indent_size = 2 +ij_json_array_wrapping = split_into_lines +ij_json_keep_blank_lines_in_code = 0 +ij_json_keep_indents_on_empty_lines = false +ij_json_keep_line_breaks = true +ij_json_keep_trailing_comma = false +ij_json_object_wrapping = split_into_lines +ij_json_property_alignment = do_not_align +ij_json_space_after_colon = true +ij_json_space_after_comma = true +ij_json_space_before_colon = false +ij_json_space_before_comma = false +ij_json_spaces_within_braces = false +ij_json_spaces_within_brackets = false +ij_json_wrap_long_lines = false + +[{*.htm,*.html,*.sht,*.shtm,*.shtml}] +ij_html_add_new_line_before_tags = body, div, p, form, h1, h2, h3 +ij_html_align_attributes = true +ij_html_align_text = false +ij_html_attribute_wrap = normal +ij_html_block_comment_add_space = false +ij_html_block_comment_at_first_column = true +ij_html_do_not_align_children_of_min_lines = 0 +ij_html_do_not_break_if_inline_tags = title, h1, h2, h3, h4, h5, h6, p +ij_html_do_not_indent_children_of_tags = html, body, thead, tbody, tfoot +ij_html_enforce_quotes = false +ij_html_inline_tags = a, abbr, acronym, b, basefont, bdo, big, br, cite, cite, code, dfn, em, font, i, img, input, kbd, label, q, s, samp, select, small, span, strike, strong, sub, sup, textarea, tt, u, var +ij_html_keep_blank_lines = 2 +ij_html_keep_indents_on_empty_lines = false +ij_html_keep_line_breaks = true +ij_html_keep_line_breaks_in_text = true +ij_html_keep_whitespaces = false +ij_html_keep_whitespaces_inside = span, pre, textarea +ij_html_line_comment_at_first_column = true +ij_html_new_line_after_last_attribute = never +ij_html_new_line_before_first_attribute = never +ij_html_quote_style = double +ij_html_remove_new_line_before_tags = br +ij_html_space_after_tag_name = false +ij_html_space_around_equality_in_attribute = false +ij_html_space_inside_empty_tag = false +ij_html_text_wrap = normal + +[{*.kt,*.kts}] +ij_kotlin_align_in_columns_case_branch = false +ij_kotlin_align_multiline_binary_operation = false +ij_kotlin_align_multiline_extends_list = false +ij_kotlin_align_multiline_method_parentheses = false +ij_kotlin_align_multiline_parameters = true +ij_kotlin_align_multiline_parameters_in_calls = false +ij_kotlin_allow_trailing_comma = false +ij_kotlin_allow_trailing_comma_on_call_site = false +ij_kotlin_assignment_wrap = normal +ij_kotlin_blank_lines_after_class_header = 0 +ij_kotlin_blank_lines_around_block_when_branches = 0 +ij_kotlin_blank_lines_before_declaration_with_comment_or_annotation_on_separate_line = 1 +ij_kotlin_block_comment_add_space = false +ij_kotlin_block_comment_at_first_column = true +ij_kotlin_call_parameters_new_line_after_left_paren = true +ij_kotlin_call_parameters_right_paren_on_new_line = true +ij_kotlin_call_parameters_wrap = on_every_item +ij_kotlin_catch_on_new_line = false +ij_kotlin_class_annotation_wrap = split_into_lines +ij_kotlin_continuation_indent_for_chained_calls = false +ij_kotlin_continuation_indent_for_expression_bodies = false +ij_kotlin_continuation_indent_in_argument_lists = false +ij_kotlin_continuation_indent_in_elvis = false +ij_kotlin_continuation_indent_in_if_conditions = false +ij_kotlin_continuation_indent_in_parameter_lists = false +ij_kotlin_continuation_indent_in_supertype_lists = false +ij_kotlin_else_on_new_line = false +ij_kotlin_enum_constants_wrap = off +ij_kotlin_extends_list_wrap = normal +ij_kotlin_field_annotation_wrap = split_into_lines +ij_kotlin_finally_on_new_line = false +ij_kotlin_if_rparen_on_new_line = true +ij_kotlin_import_nested_classes = false +ij_kotlin_imports_layout = *, java.**, javax.**, kotlin.**, ^ +ij_kotlin_indent_before_arrow_on_new_line = true +ij_kotlin_insert_whitespaces_in_simple_one_line_method = true +ij_kotlin_keep_blank_lines_before_right_brace = 2 +ij_kotlin_keep_blank_lines_in_code = 2 +ij_kotlin_keep_blank_lines_in_declarations = 2 +ij_kotlin_keep_first_column_comment = true +ij_kotlin_keep_indents_on_empty_lines = false +ij_kotlin_keep_line_breaks = true +ij_kotlin_lbrace_on_next_line = false +ij_kotlin_line_break_after_multiline_when_entry = true +ij_kotlin_line_comment_add_space = false +ij_kotlin_line_comment_add_space_on_reformat = false +ij_kotlin_line_comment_at_first_column = true +ij_kotlin_method_annotation_wrap = split_into_lines +ij_kotlin_method_call_chain_wrap = normal +ij_kotlin_method_parameters_new_line_after_left_paren = true +ij_kotlin_method_parameters_right_paren_on_new_line = true +ij_kotlin_method_parameters_wrap = on_every_item +ij_kotlin_name_count_to_use_star_import = 2147483647 +ij_kotlin_name_count_to_use_star_import_for_members = 2147483647 +ij_kotlin_packages_to_use_import_on_demand = +ij_kotlin_parameter_annotation_wrap = off +ij_kotlin_space_after_comma = true +ij_kotlin_space_after_extend_colon = true +ij_kotlin_space_after_type_colon = true +ij_kotlin_space_before_catch_parentheses = true +ij_kotlin_space_before_comma = false +ij_kotlin_space_before_extend_colon = true +ij_kotlin_space_before_for_parentheses = true +ij_kotlin_space_before_if_parentheses = true +ij_kotlin_space_before_lambda_arrow = true +ij_kotlin_space_before_type_colon = false +ij_kotlin_space_before_when_parentheses = true +ij_kotlin_space_before_while_parentheses = true +ij_kotlin_spaces_around_additive_operators = true +ij_kotlin_spaces_around_assignment_operators = true +ij_kotlin_spaces_around_equality_operators = true +ij_kotlin_spaces_around_function_type_arrow = true +ij_kotlin_spaces_around_logical_operators = true +ij_kotlin_spaces_around_multiplicative_operators = true +ij_kotlin_spaces_around_range = false +ij_kotlin_spaces_around_relational_operators = true +ij_kotlin_spaces_around_unary_operator = false +ij_kotlin_spaces_around_when_arrow = true +ij_kotlin_use_custom_formatting_for_modifiers = true +ij_kotlin_variable_annotation_wrap = off +ij_kotlin_while_on_new_line = false +ij_kotlin_wrap_elvis_expressions = 1 +ij_kotlin_wrap_expression_body_functions = 1 +ij_kotlin_wrap_first_method_in_call_chain = false + +[{*.markdown,*.md}] +ij_markdown_force_one_space_after_blockquote_symbol = true +ij_markdown_force_one_space_after_header_symbol = true +ij_markdown_force_one_space_after_list_bullet = true +ij_markdown_force_one_space_between_words = true +ij_markdown_format_tables = true +ij_markdown_insert_quote_arrows_on_wrap = true +ij_markdown_keep_indents_on_empty_lines = false +ij_markdown_keep_line_breaks_inside_text_blocks = true +ij_markdown_max_lines_around_block_elements = 1 +ij_markdown_max_lines_around_header = 1 +ij_markdown_max_lines_between_paragraphs = 1 +ij_markdown_min_lines_around_block_elements = 1 +ij_markdown_min_lines_around_header = 1 +ij_markdown_min_lines_between_paragraphs = 1 +ij_markdown_wrap_text_if_long = true +ij_markdown_wrap_text_inside_blockquotes = true + +[{*.toml,Cargo.lock,Cargo.toml.orig,Gopkg.lock,Pipfile,poetry.lock}] +ij_toml_keep_indents_on_empty_lines = false From 04f34943642a2445ba81edc28b45b1d53ffb9d28 Mon Sep 17 00:00:00 2001 From: Sergey <63193749+Hlebushek2020@users.noreply.github.com> Date: Fri, 3 Jan 2025 18:04:16 +0300 Subject: [PATCH 3/4] 03/01/2025/18/04 --- .editorconfig | 157 +++++++++++++++++++++++++++----------------------- 1 file changed, 85 insertions(+), 72 deletions(-) diff --git a/.editorconfig b/.editorconfig index 04621f8..be5b1cb 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,20 +1,23 @@ [*] charset = utf-8 end_of_line = crlf -indent_size = 4 +indent_size = 2 indent_style = space insert_final_newline = false max_line_length = 100 -tab_width = 4 -ij_continuation_indent_size = 8 +tab_width = 2 +ij_continuation_indent_size = 4 ij_formatter_off_tag = @formatter:off ij_formatter_on_tag = @formatter:on ij_formatter_tags_enabled = true ij_smart_tabs = false -ij_visual_guides = +ij_visual_guides = ij_wrap_on_typing = false [*.dcl] +indent_size = 4 +tab_width = 4 +ij_continuation_indent_size = 8 ij_declarative_keep_indents_on_empty_lines = false [*.java] @@ -28,13 +31,13 @@ ij_java_align_multiline_binary_operation = false ij_java_align_multiline_chained_methods = false ij_java_align_multiline_deconstruction_list_components = true ij_java_align_multiline_extends_list = false -ij_java_align_multiline_for = true +ij_java_align_multiline_for = false ij_java_align_multiline_method_parentheses = false -ij_java_align_multiline_parameters = true +ij_java_align_multiline_parameters = false ij_java_align_multiline_parameters_in_calls = false ij_java_align_multiline_parenthesized_expression = false ij_java_align_multiline_records = true -ij_java_align_multiline_resources = true +ij_java_align_multiline_resources = false ij_java_align_multiline_ternary_operation = false ij_java_align_multiline_text_blocks = false ij_java_align_multiline_throws_list = false @@ -44,12 +47,12 @@ ij_java_align_types_in_multi_catch = true ij_java_annotation_parameter_wrap = off ij_java_array_initializer_new_line_after_left_brace = false ij_java_array_initializer_right_brace_on_new_line = false -ij_java_array_initializer_wrap = off +ij_java_array_initializer_wrap = normal ij_java_assert_statement_colon_on_next_line = false ij_java_assert_statement_wrap = off ij_java_assignment_wrap = off -ij_java_binary_operation_sign_on_next_line = false -ij_java_binary_operation_wrap = off +ij_java_binary_operation_sign_on_next_line = true +ij_java_binary_operation_wrap = normal ij_java_blank_lines_after_anonymous_class_header = 0 ij_java_blank_lines_after_class_header = 0 ij_java_blank_lines_after_imports = 1 @@ -59,7 +62,7 @@ ij_java_blank_lines_around_field = 0 ij_java_blank_lines_around_field_in_interface = 0 ij_java_blank_lines_around_initializer = 1 ij_java_blank_lines_around_method = 1 -ij_java_blank_lines_around_method_in_interface = 1 +ij_java_blank_lines_around_method_in_interface = 0 ij_java_blank_lines_before_class_end = 0 ij_java_blank_lines_before_imports = 1 ij_java_blank_lines_before_method_body = 0 @@ -67,21 +70,21 @@ ij_java_blank_lines_before_package = 0 ij_java_block_brace_style = end_of_line ij_java_block_comment_add_space = false ij_java_block_comment_at_first_column = true -ij_java_builder_methods = +ij_java_builder_methods = ij_java_call_parameters_new_line_after_left_paren = false ij_java_call_parameters_right_paren_on_new_line = false -ij_java_call_parameters_wrap = off +ij_java_call_parameters_wrap = normal ij_java_case_statement_on_separate_line = true ij_java_catch_on_new_line = false ij_java_class_annotation_wrap = split_into_lines ij_java_class_brace_style = end_of_line -ij_java_class_count_to_use_import_on_demand = 99 +ij_java_class_count_to_use_import_on_demand = 999 ij_java_class_names_in_javadoc = 1 ij_java_deconstruction_list_wrap = normal ij_java_do_not_indent_top_level_class_members = false ij_java_do_not_wrap_after_single_annotation = false ij_java_do_not_wrap_after_single_annotation_in_parameter = false -ij_java_do_while_brace_force = never +ij_java_do_while_brace_force = always ij_java_doc_add_blank_line_after_description = true ij_java_doc_add_blank_line_after_param_comments = false ij_java_doc_add_blank_line_after_return = false @@ -104,32 +107,32 @@ ij_java_else_on_new_line = false ij_java_enum_constants_wrap = off ij_java_enum_field_annotation_wrap = off ij_java_extends_keyword_wrap = off -ij_java_extends_list_wrap = off +ij_java_extends_list_wrap = normal ij_java_field_annotation_wrap = split_into_lines ij_java_field_name_prefix = -ij_java_field_name_suffix = +ij_java_field_name_suffix = ij_java_finally_on_new_line = false -ij_java_for_brace_force = never +ij_java_for_brace_force = always ij_java_for_statement_new_line_after_left_paren = false ij_java_for_statement_right_paren_on_new_line = false -ij_java_for_statement_wrap = off +ij_java_for_statement_wrap = normal ij_java_generate_final_locals = false ij_java_generate_final_parameters = false ij_java_generate_use_type_annotation_before_type = true -ij_java_if_brace_force = never -ij_java_imports_layout = $android.**, $androidx.**, $com.**, $junit.**, $net.**, $org.**, $java.**, $javax.**, $*, |, android.**, |, androidx.**, |, com.**, |, junit.**, |, net.**, |, org.**, |, java.**, |, javax.**, |, *, | +ij_java_if_brace_force = always +ij_java_imports_layout = $*, |, * ij_java_indent_case_from_switch = true -ij_java_insert_inner_class_imports = false +ij_java_insert_inner_class_imports = true ij_java_insert_override_annotation = true -ij_java_keep_blank_lines_before_right_brace = 2 -ij_java_keep_blank_lines_between_package_declaration_and_header = 2 -ij_java_keep_blank_lines_in_code = 2 -ij_java_keep_blank_lines_in_declarations = 2 +ij_java_keep_blank_lines_before_right_brace = 1 +ij_java_keep_blank_lines_between_package_declaration_and_header = 1 +ij_java_keep_blank_lines_in_code = 1 +ij_java_keep_blank_lines_in_declarations = 1 ij_java_keep_builder_methods_indents = false -ij_java_keep_control_statement_in_one_line = true -ij_java_keep_first_column_comment = true +ij_java_keep_control_statement_in_one_line = false +ij_java_keep_first_column_comment = false ij_java_keep_indents_on_empty_lines = false -ij_java_keep_line_breaks = true +ij_java_keep_line_breaks = false ij_java_keep_multiple_expressions_in_one_line = false ij_java_keep_simple_blocks_in_one_line = false ij_java_keep_simple_classes_in_one_line = false @@ -143,31 +146,31 @@ ij_java_line_comment_add_space = false ij_java_line_comment_add_space_on_reformat = false ij_java_line_comment_at_first_column = true ij_java_local_variable_name_prefix = -ij_java_local_variable_name_suffix = +ij_java_local_variable_name_suffix = ij_java_method_annotation_wrap = split_into_lines ij_java_method_brace_style = end_of_line -ij_java_method_call_chain_wrap = off +ij_java_method_call_chain_wrap = normal ij_java_method_parameters_new_line_after_left_paren = false ij_java_method_parameters_right_paren_on_new_line = false -ij_java_method_parameters_wrap = off +ij_java_method_parameters_wrap = normal ij_java_modifier_list_wrap = false ij_java_multi_catch_types_wrap = normal -ij_java_names_count_to_use_import_on_demand = 99 +ij_java_names_count_to_use_import_on_demand = 999 ij_java_new_line_after_lparen_in_annotation = false ij_java_new_line_after_lparen_in_deconstruction_pattern = true ij_java_new_line_after_lparen_in_record_header = false ij_java_new_line_when_body_is_presented = false -ij_java_packages_to_use_import_on_demand = +ij_java_packages_to_use_import_on_demand = ij_java_parameter_annotation_wrap = off ij_java_parameter_name_prefix = -ij_java_parameter_name_suffix = +ij_java_parameter_name_suffix = ij_java_parentheses_expression_new_line_after_left_paren = false ij_java_parentheses_expression_right_paren_on_new_line = false ij_java_place_assignment_sign_on_next_line = false ij_java_prefer_longer_names = true ij_java_prefer_parameters_wrap = false ij_java_record_components_wrap = normal -ij_java_repeat_annotations = +ij_java_repeat_annotations = ij_java_repeat_synchronized = true ij_java_replace_instanceof_and_cast = false ij_java_replace_null_check = true @@ -260,14 +263,14 @@ ij_java_spaces_within_while_parentheses = false ij_java_special_else_if_treatment = true ij_java_static_field_name_prefix = ij_java_static_field_name_suffix = -ij_java_subclass_name_prefix = +ij_java_subclass_name_prefix = ij_java_subclass_name_suffix = Impl ij_java_switch_expressions_wrap = normal -ij_java_ternary_operation_signs_on_next_line = false -ij_java_ternary_operation_wrap = off -ij_java_test_name_prefix = +ij_java_ternary_operation_signs_on_next_line = true +ij_java_ternary_operation_wrap = normal +ij_java_test_name_prefix = ij_java_test_name_suffix = Test -ij_java_throws_keyword_wrap = off +ij_java_throws_keyword_wrap = normal ij_java_throws_list_wrap = off ij_java_use_external_annotations = false ij_java_use_fq_class_names = false @@ -275,9 +278,9 @@ ij_java_use_relative_indents = false ij_java_use_single_class_imports = true ij_java_variable_annotation_wrap = off ij_java_visibility = public -ij_java_while_brace_force = never +ij_java_while_brace_force = always ij_java_while_on_new_line = false -ij_java_wrap_comments = false +ij_java_wrap_comments = true ij_java_wrap_first_method_in_call_chain = false ij_java_wrap_long_lines = false ij_java_wrap_semicolon_after_call_chain = false @@ -297,7 +300,7 @@ ij_editorconfig_space_before_comma = false ij_editorconfig_spaces_around_assignment_operators = true [{*.ant,*.fxml,*.jhm,*.jnlp,*.jrxml,*.rng,*.tld,*.wsdl,*.xml,*.xsd,*.xsl,*.xslt,*.xul}] -ij_continuation_indent_size = 4 +ij_continuation_indent_size = 2 ij_xml_align_attributes = false ij_xml_align_text = false ij_xml_attribute_wrap = normal @@ -318,7 +321,6 @@ ij_xml_text_wrap = normal ij_xml_use_custom_settings = true [{*.apinotes,*.yaml,*.yml,.clang-format,.clang-tidy,_clang-format}] -indent_size = 2 ij_yaml_align_values_properties = do_not_align ij_yaml_autoinsert_sequence_marker = true ij_yaml_block_mapping_on_new_line = false @@ -334,8 +336,6 @@ ij_yaml_spaces_within_braces = true ij_yaml_spaces_within_brackets = true [{*.bash,*.sh,*.zsh}] -indent_size = 2 -tab_width = 2 ij_shell_binary_ops_start_line = false ij_shell_keep_column_alignment_padding = false ij_shell_minify_program = false @@ -344,15 +344,16 @@ ij_shell_switch_cases_indented = false ij_shell_use_unix_line_separator = true [{*.c,*.c++,*.c++m,*.cc,*.ccm,*.cp,*.cpp,*.cppm,*.cu,*.cuh,*.cxx,*.cxxm,*.h,*.h++,*.hh,*.hp,*.hpp,*.hxx,*.i,*.icc,*.ii,*.inl,*.ino,*.ipp,*.ixx,*.m,*.mm,*.mxx,*.pch,*.tcc,*.tpp}] +max_line_length = 80 ij_c_add_brief_tag = false ij_c_add_getter_prefix = true ij_c_add_setter_prefix = true ij_c_align_dictionary_pair_values = false ij_c_align_group_field_declarations = false -ij_c_align_init_list_in_columns = true +ij_c_align_init_list_in_columns = false ij_c_align_multiline_array_initializer_expression = true ij_c_align_multiline_assignment = true -ij_c_align_multiline_binary_operation = true +ij_c_align_multiline_binary_operation = false ij_c_align_multiline_chained_methods = false ij_c_align_multiline_for = true ij_c_align_multiline_ternary_operation = true @@ -360,20 +361,20 @@ ij_c_array_initializer_comma_on_next_line = false ij_c_array_initializer_new_line_after_left_brace = false ij_c_array_initializer_right_brace_on_new_line = false ij_c_array_initializer_wrap = normal -ij_c_assignment_wrap = off -ij_c_binary_operation_sign_on_next_line = false +ij_c_assignment_wrap = normal +ij_c_binary_operation_sign_on_next_line = true ij_c_binary_operation_wrap = normal ij_c_blank_lines_after_class_header = 0 -ij_c_blank_lines_after_imports = 1 -ij_c_blank_lines_around_class = 1 +ij_c_blank_lines_after_imports = 0 +ij_c_blank_lines_around_class = 0 ij_c_blank_lines_around_field = 0 ij_c_blank_lines_around_field_in_interface = 0 -ij_c_blank_lines_around_method = 1 -ij_c_blank_lines_around_method_in_interface = 1 +ij_c_blank_lines_around_method = 0 +ij_c_blank_lines_around_method_in_interface = 0 ij_c_blank_lines_around_namespace = 0 ij_c_blank_lines_around_properties_in_declaration = 0 ij_c_blank_lines_around_properties_in_interface = 0 -ij_c_blank_lines_before_imports = 1 +ij_c_blank_lines_before_imports = 0 ij_c_blank_lines_before_method_body = 0 ij_c_block_brace_placement = end_of_line ij_c_block_brace_style = end_of_line @@ -398,21 +399,21 @@ ij_c_enum_constants_wrap = on_every_item ij_c_for_brace_force = never ij_c_for_statement_new_line_after_left_paren = false ij_c_for_statement_right_paren_on_new_line = false -ij_c_for_statement_wrap = off +ij_c_for_statement_wrap = normal ij_c_function_brace_placement = end_of_line ij_c_function_call_arguments_align_multiline = true ij_c_function_call_arguments_align_multiline_pars = false ij_c_function_call_arguments_comma_on_next_line = false ij_c_function_call_arguments_new_line_after_lpar = false ij_c_function_call_arguments_new_line_before_rpar = false -ij_c_function_call_arguments_wrap = normal +ij_c_function_call_arguments_wrap = on_every_item ij_c_function_non_top_after_return_type_wrap = normal ij_c_function_parameters_align_multiline = true ij_c_function_parameters_align_multiline_pars = false ij_c_function_parameters_comma_on_next_line = false ij_c_function_parameters_new_line_after_lpar = false ij_c_function_parameters_new_line_before_rpar = false -ij_c_function_parameters_wrap = normal +ij_c_function_parameters_wrap = on_every_item ij_c_function_top_after_return_type_wrap = normal ij_c_generate_additional_eq_operators = true ij_c_generate_additional_rel_operators = true @@ -424,17 +425,17 @@ ij_c_header_guard_style_pattern = ${PROJECT_NAME}_${FILE_NAME}_${EXT} ij_c_if_brace_force = never ij_c_in_line_short_ternary_operator = true ij_c_indent_block_comment = true -ij_c_indent_c_struct_members = 4 +ij_c_indent_c_struct_members = 2 ij_c_indent_case_from_switch = true -ij_c_indent_class_members = 4 +ij_c_indent_class_members = 2 ij_c_indent_directive_as_code = false ij_c_indent_implementation_members = 0 -ij_c_indent_inside_code_block = 4 +ij_c_indent_inside_code_block = 2 ij_c_indent_interface_members = 0 ij_c_indent_interface_members_except_ivars_block = false -ij_c_indent_namespace_members = 4 +ij_c_indent_namespace_members = 0 ij_c_indent_preprocessor_directive = 0 -ij_c_indent_visibility_keywords = 0 +ij_c_indent_visibility_keywords = 1 ij_c_insert_override = true ij_c_insert_virtual_with_override = false ij_c_introduce_auto_consts = false @@ -449,9 +450,9 @@ ij_c_introduce_prop_to_private_category = false ij_c_introduce_static_consts = true ij_c_introduce_use_ns_types = false ij_c_ivars_prefix = _ -ij_c_ivars_suffix = +ij_c_ivars_suffix = ij_c_keep_blank_lines_before_end = 2 -ij_c_keep_blank_lines_before_right_brace = 2 +ij_c_keep_blank_lines_before_right_brace = 1 ij_c_keep_blank_lines_in_code = 2 ij_c_keep_blank_lines_in_declarations = 2 ij_c_keep_case_expressions_in_one_line = false @@ -462,7 +463,7 @@ ij_c_keep_line_breaks = true ij_c_keep_nested_namespaces_in_one_line = false ij_c_keep_simple_blocks_in_one_line = true ij_c_keep_simple_methods_in_one_line = true -ij_c_keep_structures_in_one_line = false +ij_c_keep_structures_in_one_line = true ij_c_lambda_capture_list_align_multiline = false ij_c_lambda_capture_list_align_multiline_bracket = false ij_c_lambda_capture_list_comma_on_next_line = false @@ -543,7 +544,7 @@ ij_c_space_before_property_attributes_parentheses = false ij_c_space_before_protocols_brackets = true ij_c_space_before_quest = true ij_c_space_before_reference_in_declaration = true -ij_c_space_before_superclass_colon = true +ij_c_space_before_superclass_colon = false ij_c_space_before_switch_left_brace = true ij_c_space_before_switch_parentheses = true ij_c_space_before_template_call_lt = false @@ -609,12 +610,12 @@ ij_c_superclass_list_comma_on_next_line = false ij_c_superclass_list_wrap = on_every_item ij_c_tag_prefix_of_block_comment = at ij_c_tag_prefix_of_line_comment = back_slash -ij_c_template_call_arguments_align_multiline = false +ij_c_template_call_arguments_align_multiline = true ij_c_template_call_arguments_align_multiline_pars = false ij_c_template_call_arguments_comma_on_next_line = false ij_c_template_call_arguments_new_line_after_lt = false ij_c_template_call_arguments_new_line_before_gt = false -ij_c_template_call_arguments_wrap = off +ij_c_template_call_arguments_wrap = on_every_item ij_c_template_declaration_function_body_indent = false ij_c_template_declaration_function_wrap = split_into_lines ij_c_template_declaration_struct_body_indent = false @@ -635,6 +636,7 @@ ij_c_while_on_new_line = false ij_c_wrap_property_declaration = off [{*.cmake,CMakeLists.txt}] +indent_size = 4 ij_cmake_align_command_call_r_par = false ij_cmake_align_control_flow_r_par = false ij_cmake_align_multiline_parameters_in_calls = false @@ -652,6 +654,9 @@ ij_cmake_spaces_within_method_parentheses = false ij_cmake_spaces_within_while_parentheses = false [{*.gant,*.groovy,*.gy}] +indent_size = 4 +tab_width = 4 +ij_continuation_indent_size = 8 ij_groovy_align_group_field_declarations = false ij_groovy_align_multiline_array_initializer_expression = false ij_groovy_align_multiline_assignment = false @@ -843,7 +848,6 @@ ij_groovy_wrap_chain_calls_after_dot = false ij_groovy_wrap_long_lines = false [{*.har,*.json,*.jsonc}] -indent_size = 2 ij_json_array_wrapping = split_into_lines ij_json_keep_blank_lines_in_code = 0 ij_json_keep_indents_on_empty_lines = false @@ -888,6 +892,9 @@ ij_html_space_inside_empty_tag = false ij_html_text_wrap = normal [{*.kt,*.kts}] +indent_size = 4 +tab_width = 4 +ij_continuation_indent_size = 8 ij_kotlin_align_in_columns_case_branch = false ij_kotlin_align_multiline_binary_operation = false ij_kotlin_align_multiline_extends_list = false @@ -942,7 +949,7 @@ ij_kotlin_method_parameters_right_paren_on_new_line = true ij_kotlin_method_parameters_wrap = on_every_item ij_kotlin_name_count_to_use_star_import = 2147483647 ij_kotlin_name_count_to_use_star_import_for_members = 2147483647 -ij_kotlin_packages_to_use_import_on_demand = +ij_kotlin_packages_to_use_import_on_demand = ij_kotlin_parameter_annotation_wrap = off ij_kotlin_space_after_comma = true ij_kotlin_space_after_extend_colon = true @@ -974,6 +981,9 @@ ij_kotlin_wrap_expression_body_functions = 1 ij_kotlin_wrap_first_method_in_call_chain = false [{*.markdown,*.md}] +indent_size = 4 +tab_width = 4 +ij_continuation_indent_size = 8 ij_markdown_force_one_space_after_blockquote_symbol = true ij_markdown_force_one_space_after_header_symbol = true ij_markdown_force_one_space_after_list_bullet = true @@ -992,4 +1002,7 @@ ij_markdown_wrap_text_if_long = true ij_markdown_wrap_text_inside_blockquotes = true [{*.toml,Cargo.lock,Cargo.toml.orig,Gopkg.lock,Pipfile,poetry.lock}] +indent_size = 4 +tab_width = 4 +ij_continuation_indent_size = 8 ij_toml_keep_indents_on_empty_lines = false From f4a5f87f7d700d0caf02e08cc66841b29c59a268 Mon Sep 17 00:00:00 2001 From: Sergey <63193749+Hlebushek2020@users.noreply.github.com> Date: Mon, 6 Jan 2025 00:23:57 +0300 Subject: [PATCH 4/4] 06/01/2025/00/23 --- .editorconfig | 16 +- app/build.gradle | 2 +- app/src/main/AndroidManifest.xml | 1 - .../DirectoryChooserActivity.java | 71 +- .../imagecollection/MainActivity.java | 689 +++++++++--------- build.gradle | 2 +- 6 files changed, 390 insertions(+), 391 deletions(-) diff --git a/.editorconfig b/.editorconfig index be5b1cb..56d6dcb 100644 --- a/.editorconfig +++ b/.editorconfig @@ -109,7 +109,7 @@ ij_java_enum_field_annotation_wrap = off ij_java_extends_keyword_wrap = off ij_java_extends_list_wrap = normal ij_java_field_annotation_wrap = split_into_lines -ij_java_field_name_prefix = +ij_java_field_name_prefix = ij_java_field_name_suffix = ij_java_finally_on_new_line = false ij_java_for_brace_force = always @@ -137,7 +137,7 @@ ij_java_keep_multiple_expressions_in_one_line = false ij_java_keep_simple_blocks_in_one_line = false ij_java_keep_simple_classes_in_one_line = false ij_java_keep_simple_lambdas_in_one_line = false -ij_java_keep_simple_methods_in_one_line = false +ij_java_keep_simple_methods_in_one_line = true ij_java_label_indent_absolute = false ij_java_label_indent_size = 0 ij_java_lambda_brace_style = end_of_line @@ -145,7 +145,7 @@ ij_java_layout_static_imports_separately = true ij_java_line_comment_add_space = false ij_java_line_comment_add_space_on_reformat = false ij_java_line_comment_at_first_column = true -ij_java_local_variable_name_prefix = +ij_java_local_variable_name_prefix = ij_java_local_variable_name_suffix = ij_java_method_annotation_wrap = split_into_lines ij_java_method_brace_style = end_of_line @@ -162,7 +162,7 @@ ij_java_new_line_after_lparen_in_record_header = false ij_java_new_line_when_body_is_presented = false ij_java_packages_to_use_import_on_demand = ij_java_parameter_annotation_wrap = off -ij_java_parameter_name_prefix = +ij_java_parameter_name_prefix = ij_java_parameter_name_suffix = ij_java_parentheses_expression_new_line_after_left_paren = false ij_java_parentheses_expression_right_paren_on_new_line = false @@ -190,7 +190,7 @@ ij_java_space_after_quest = true ij_java_space_after_type_cast = true ij_java_space_before_annotation_array_initializer_left_brace = false ij_java_space_before_annotation_parameter_list = false -ij_java_space_before_array_initializer_left_brace = false +ij_java_space_before_array_initializer_left_brace = true ij_java_space_before_catch_keyword = true ij_java_space_before_catch_left_brace = true ij_java_space_before_catch_parentheses = true @@ -244,8 +244,8 @@ ij_java_spaces_around_unary_operator = false ij_java_spaces_inside_block_braces_when_body_is_present = false ij_java_spaces_within_angle_brackets = false ij_java_spaces_within_annotation_parentheses = false -ij_java_spaces_within_array_initializer_braces = false -ij_java_spaces_within_braces = false +ij_java_spaces_within_array_initializer_braces = true +ij_java_spaces_within_braces = true ij_java_spaces_within_brackets = false ij_java_spaces_within_cast_parentheses = false ij_java_spaces_within_catch_parentheses = false @@ -262,7 +262,7 @@ ij_java_spaces_within_try_parentheses = false ij_java_spaces_within_while_parentheses = false ij_java_special_else_if_treatment = true ij_java_static_field_name_prefix = -ij_java_static_field_name_suffix = +ij_java_static_field_name_suffix = ij_java_subclass_name_prefix = ij_java_subclass_name_suffix = Impl ij_java_switch_expressions_wrap = normal diff --git a/app/build.gradle b/app/build.gradle index 2550bc1..c81e2ad 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -8,7 +8,7 @@ android { defaultConfig { applicationId "com.sergeygovorunov.imagecollection" - minSdk 29 + minSdk 30 targetSdk 32 versionCode 1 versionName "0.1" diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 9ff0483..a312a7c 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -25,7 +25,6 @@ android:exported="true"> - diff --git a/app/src/main/java/com/sergeygovorunov/imagecollection/DirectoryChooserActivity.java b/app/src/main/java/com/sergeygovorunov/imagecollection/DirectoryChooserActivity.java index 413aeb9..5c34cae 100644 --- a/app/src/main/java/com/sergeygovorunov/imagecollection/DirectoryChooserActivity.java +++ b/app/src/main/java/com/sergeygovorunov/imagecollection/DirectoryChooserActivity.java @@ -1,47 +1,54 @@ package com.sergeygovorunov.imagecollection; -import androidx.appcompat.app.AppCompatActivity; -import androidx.recyclerview.widget.RecyclerView; - import android.content.Intent; +import android.net.Uri; import android.os.Bundle; import android.os.Environment; +import android.provider.Settings; import android.widget.Button; - +import androidx.appcompat.app.AppCompatActivity; +import androidx.recyclerview.widget.RecyclerView; import com.sergeygovorunov.imagecollection.adapters.DirectoryChooserViewAdapter; - import java.io.File; public class DirectoryChooserActivity extends AppCompatActivity { - public static final String KEY_SELECTED_FILE = "selectedFile"; - - private DirectoryChooserViewAdapter directoryChooserViewAdapter; - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_directory_chooser); - RecyclerView recyclerView_directories = findViewById(R.id.folder_list); - File current = Environment.getExternalStorageDirectory(); - directoryChooserViewAdapter = new DirectoryChooserViewAdapter(this, current); - recyclerView_directories.setAdapter(directoryChooserViewAdapter); - Button button_ok = findViewById(R.id.ok); - button_ok.setOnClickListener(view -> { - Intent data = new Intent(); - data.putExtra(KEY_SELECTED_FILE, directoryChooserViewAdapter.getCurrent()); - setResult(RESULT_OK, data); - finish(); - }); + public static final String KEY_SELECTED_FILE = "selectedFile"; + + private DirectoryChooserViewAdapter directoryChooserViewAdapter; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_directory_chooser); + RecyclerView recyclerView_directories = findViewById(R.id.folder_list); + + if (!Environment.isExternalStorageManager()) { + Intent intent = new Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION); + Uri uri = Uri.fromParts("package", getPackageName(), null); + intent.setData(uri); + startActivity(intent); } - @Override - public void onBackPressed() { - File current = directoryChooserViewAdapter.getCurrent(); - if (Environment.getExternalStorageDirectory().equals(current)) { - super.onBackPressed(); - } else { - directoryChooserViewAdapter.previous(); - } + File current = Environment.getExternalStorageDirectory(); + directoryChooserViewAdapter = new DirectoryChooserViewAdapter(this, current); + recyclerView_directories.setAdapter(directoryChooserViewAdapter); + Button button_ok = findViewById(R.id.ok); + button_ok.setOnClickListener(view -> { + Intent data = new Intent(); + data.putExtra(KEY_SELECTED_FILE, directoryChooserViewAdapter.getCurrent()); + setResult(RESULT_OK, data); + finish(); + }); + } + + @Override + public void onBackPressed() { + File current = directoryChooserViewAdapter.getCurrent(); + if (Environment.getExternalStorageDirectory().equals(current)) { + super.onBackPressed(); + } else { + directoryChooserViewAdapter.previous(); } + } } \ No newline at end of file diff --git a/app/src/main/java/com/sergeygovorunov/imagecollection/MainActivity.java b/app/src/main/java/com/sergeygovorunov/imagecollection/MainActivity.java index 6a00eb4..dea02be 100644 --- a/app/src/main/java/com/sergeygovorunov/imagecollection/MainActivity.java +++ b/app/src/main/java/com/sergeygovorunov/imagecollection/MainActivity.java @@ -20,7 +20,6 @@ import android.widget.ImageSwitcher; import android.widget.ImageView; import android.widget.LinearLayout; - import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; import androidx.annotation.NonNull; @@ -28,11 +27,9 @@ import androidx.core.view.GestureDetectorCompat; import androidx.drawerlayout.widget.DrawerLayout; import androidx.recyclerview.widget.RecyclerView; - import com.sergeygovorunov.imagecollection.adapters.CollectionListViewAdapter; import com.sergeygovorunov.imagecollection.adapters.FileListViewAdapter; import com.sergeygovorunov.imagecollection.dialogs.InputAlertDialog; - import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; @@ -45,378 +42,374 @@ public class MainActivity extends AppCompatActivity { - private static final String SESSION_FILE_NAME = "session.txt"; - private static final Pattern CHECK_SPECIAL_PATH_SYMBOLS = Pattern.compile("[<>:\"/\\\\|?*]"); + private static final String SESSION_FILE_NAME = "session.txt"; + private static final Pattern CHECK_SPECIAL_PATH_SYMBOLS = Pattern.compile("[<>:\"/\\\\|?*]"); - private ActivityResultLauncher arl_directoryChooser; - private ActivityResultLauncher arl_selectToCollection; - private Intent intent_selectToCollection; - private GestureDetectorCompat gestureDetector; + private ActivityResultLauncher arl_directoryChooser; + private ActivityResultLauncher arl_selectToCollection; + private Intent intent_selectToCollection; + private GestureDetectorCompat gestureDetector; - private DrawerLayout drawerLayout_main; - private ImageSwitcher imageSwitcher; - private Menu menu_options; + private DrawerLayout drawerLayout_main; + private ImageSwitcher imageSwitcher; + private Menu menu_options; - private CollectionListViewAdapter collectionListViewAdapter; - private FileListViewAdapter fileListViewAdapter; + private CollectionListViewAdapter collectionListViewAdapter; + private FileListViewAdapter fileListViewAdapter; - private Animation anim_imageSwitcher_lin; - private Animation anim_imageSwitcher_lout; - private Animation anim_imageSwitcher_rin; - private Animation anim_imageSwitcher_rout; - private Animation anim_imageSwitcher_down; - private Animation anim_imageSwitcher_up; + private Animation anim_imageSwitcher_lin; + private Animation anim_imageSwitcher_lout; + private Animation anim_imageSwitcher_rin; + private Animation anim_imageSwitcher_rout; + private Animation anim_imageSwitcher_down; + private Animation anim_imageSwitcher_up; - private int drawerState; + private int drawerState; - private AlertDialog.Builder adb_deleteFile; + private AlertDialog.Builder adb_deleteFile; - @SuppressLint("ClickableViewAccessibility") - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_main); - // - imageSwitcher = findViewById(R.id.image_switcher); - RecyclerView rv_fileList = findViewById(R.id.file_list); - drawerLayout_main = findViewById(R.id.main_drawer_layout); - RecyclerView rv_collectionList = findViewById(R.id.collection_list); - // - fileListViewAdapter = new FileListViewAdapter(this); - fileListViewAdapter.setOnItemClickListener((item, action) -> { - // anim - switch (action) { - case NEXT: - imageSwitcher.setInAnimation(anim_imageSwitcher_rin); - imageSwitcher.setOutAnimation(anim_imageSwitcher_rout); - break; - case MOVE_GET_NEXT: - imageSwitcher.setInAnimation(anim_imageSwitcher_rin); - imageSwitcher.setOutAnimation(anim_imageSwitcher_down); - break; - case REMOVE_GET_NEXT: - imageSwitcher.setInAnimation(anim_imageSwitcher_rin); - imageSwitcher.setOutAnimation(anim_imageSwitcher_up); - break; - case PREVIOUS: - imageSwitcher.setInAnimation(anim_imageSwitcher_lin); - imageSwitcher.setOutAnimation(anim_imageSwitcher_lout); - break; - case MOVE_GET_PREVIOUS: - imageSwitcher.setInAnimation(anim_imageSwitcher_lin); - imageSwitcher.setOutAnimation(anim_imageSwitcher_down); - break; - case REMOVE_GET_PREVIOUS: - imageSwitcher.setInAnimation(anim_imageSwitcher_lin); - imageSwitcher.setOutAnimation(anim_imageSwitcher_up); - break; - } - // image - Drawable drawable = null; - if (item != null) { - Bitmap bitmapOrig = BitmapFactory.decodeFile(item.getPath()); - double w = bitmapOrig.getWidth(); - double h = bitmapOrig.getHeight(); - DisplayMetrics displayMetrics = new DisplayMetrics(); - getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); - double nw = displayMetrics.widthPixels; - double nh = displayMetrics.heightPixels; - if (w > h) { - nh = nw / (w / h); - } else { - nw = nh / (h / w); - } - Bitmap bitmap = Bitmap.createScaledBitmap(bitmapOrig, (int) nw, (int) nh, false); - drawable = new BitmapDrawable(null, bitmap); - } - imageSwitcher.setImageDrawable(drawable); - drawerLayout_main.closeDrawers(); + @SuppressLint("ClickableViewAccessibility") + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + // + imageSwitcher = findViewById(R.id.image_switcher); + RecyclerView rv_fileList = findViewById(R.id.file_list); + drawerLayout_main = findViewById(R.id.main_drawer_layout); + RecyclerView rv_collectionList = findViewById(R.id.collection_list); + // + fileListViewAdapter = new FileListViewAdapter(this); + fileListViewAdapter.setOnItemClickListener((item, action) -> { + // anim + switch (action) { + case NEXT: + imageSwitcher.setInAnimation(anim_imageSwitcher_rin); + imageSwitcher.setOutAnimation(anim_imageSwitcher_rout); + break; + case MOVE_GET_NEXT: + imageSwitcher.setInAnimation(anim_imageSwitcher_rin); + imageSwitcher.setOutAnimation(anim_imageSwitcher_down); + break; + case REMOVE_GET_NEXT: + imageSwitcher.setInAnimation(anim_imageSwitcher_rin); + imageSwitcher.setOutAnimation(anim_imageSwitcher_up); + break; + case PREVIOUS: + imageSwitcher.setInAnimation(anim_imageSwitcher_lin); + imageSwitcher.setOutAnimation(anim_imageSwitcher_lout); + break; + case MOVE_GET_PREVIOUS: + imageSwitcher.setInAnimation(anim_imageSwitcher_lin); + imageSwitcher.setOutAnimation(anim_imageSwitcher_down); + break; + case REMOVE_GET_PREVIOUS: + imageSwitcher.setInAnimation(anim_imageSwitcher_lin); + imageSwitcher.setOutAnimation(anim_imageSwitcher_up); + break; + } + // image + Drawable drawable = null; + if (item != null) { + Bitmap bitmapOrig = BitmapFactory.decodeFile(item.getPath()); + double w = bitmapOrig.getWidth(); + double h = bitmapOrig.getHeight(); + DisplayMetrics displayMetrics = new DisplayMetrics(); + getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); + double nw = displayMetrics.widthPixels; + double nh = displayMetrics.heightPixels; + if (w > h) { + nh = nw / (w / h); + } else { + nw = nh / (h / w); + } + Bitmap bitmap = Bitmap.createScaledBitmap(bitmapOrig, (int) nw, (int) nh, false); + drawable = new BitmapDrawable(null, bitmap); + } + imageSwitcher.setImageDrawable(drawable); + drawerLayout_main.closeDrawers(); + }); + rv_fileList.setAdapter(fileListViewAdapter); + // + collectionListViewAdapter = new CollectionListViewAdapter(this); + collectionListViewAdapter.setOnCollectionChangedListener((collection, item) -> { + fileListViewAdapter.setCollection(collection, item); + setTitle(collection.getName()); + drawerLayout_main.closeDrawers(); + if (!collection.equals(collectionListViewAdapter.getBaseDirectory())) { + menu_options.findItem(R.id.delete_collection).setEnabled(true); + menu_options.findItem(R.id.rename_collection).setEnabled(true); + } else { + menu_options.findItem(R.id.delete_collection).setEnabled(false); + menu_options.findItem(R.id.rename_collection).setEnabled(false); + } + }); + rv_collectionList.setAdapter(collectionListViewAdapter); + // + anim_imageSwitcher_lin = AnimationUtils.loadAnimation(this, R.anim.image_switcher_lin); + anim_imageSwitcher_lout = AnimationUtils.loadAnimation(this, R.anim.image_switcher_lout); + anim_imageSwitcher_rin = AnimationUtils.loadAnimation(this, R.anim.image_switcher_rin); + anim_imageSwitcher_rout = AnimationUtils.loadAnimation(this, R.anim.image_switcher_rout); + anim_imageSwitcher_down = AnimationUtils.loadAnimation(this, R.anim.image_switcher_down); + anim_imageSwitcher_up = AnimationUtils.loadAnimation(this, R.anim.image_switcher_up); + // + imageSwitcher.setFactory(() -> { + ImageView imageView = new ImageView(this); + imageView.setScaleType(ImageView.ScaleType.FIT_CENTER); + imageView.setLayoutParams( + new ImageSwitcher.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, + LinearLayout.LayoutParams.MATCH_PARENT)); + imageView.setBackgroundColor(0xFFFFFFFF); + return imageView; + }); + // + intent_selectToCollection = new Intent(this, SelectCollectionActivity.class); + // + arl_directoryChooser = registerForActivityResult( + new ActivityResultContracts.StartActivityForResult(), result -> { + if (result.getResultCode() == Activity.RESULT_OK) { + Bundle bundle = result.getData().getExtras(); + File baseDirectory = (File) bundle.get(DirectoryChooserActivity.KEY_SELECTED_FILE); + collectionListViewAdapter.setBaseDirectory(baseDirectory); + menu_options.findItem(R.id.create_collection).setEnabled(true); + menu_options.findItem(R.id.delete_collection).setEnabled(false); + menu_options.findItem(R.id.rename_collection).setEnabled(false); + } }); - rv_fileList.setAdapter(fileListViewAdapter); - // - collectionListViewAdapter = new CollectionListViewAdapter(this); - collectionListViewAdapter.setOnCollectionChangedListener((collection, item) -> { - fileListViewAdapter.setCollection(collection, item); - setTitle(collection.getName()); - drawerLayout_main.closeDrawers(); - if (!collection.equals(collectionListViewAdapter.getBaseDirectory())) { - menu_options.findItem(R.id.delete_collection).setEnabled(true); - menu_options.findItem(R.id.rename_collection).setEnabled(true); - } else { - menu_options.findItem(R.id.delete_collection).setEnabled(false); - menu_options.findItem(R.id.rename_collection).setEnabled(false); + // + arl_selectToCollection = registerForActivityResult( + new ActivityResultContracts.StartActivityForResult(), result -> { + if (result.getResultCode() == Activity.RESULT_OK) { + Bundle bundle = result.getData().getExtras(); + File toCollection = (File) bundle.get(SelectCollectionActivity.KEY_SELECTED_COLLECTION); + File selectedItem = fileListViewAdapter.getCurrentItem(); + File toFile = new File( + toCollection.getPath() + File.separatorChar + selectedItem.getName()); + int counter = 0; + while (toFile.exists()) { + toFile = new File(toCollection.getPath() + File.separatorChar + counter + '_' + + selectedItem.getName()); + counter++; } - }); - rv_collectionList.setAdapter(collectionListViewAdapter); - // - anim_imageSwitcher_lin = AnimationUtils.loadAnimation(this, R.anim.image_switcher_lin); - anim_imageSwitcher_lout = AnimationUtils.loadAnimation(this, R.anim.image_switcher_lout); - anim_imageSwitcher_rin = AnimationUtils.loadAnimation(this, R.anim.image_switcher_rin); - anim_imageSwitcher_rout = AnimationUtils.loadAnimation(this, R.anim.image_switcher_rout); - anim_imageSwitcher_down = AnimationUtils.loadAnimation(this, R.anim.image_switcher_down); - anim_imageSwitcher_up = AnimationUtils.loadAnimation(this, R.anim.image_switcher_up); - // - imageSwitcher.setFactory(() -> { - ImageView imageView = new ImageView(this); - imageView.setScaleType(ImageView.ScaleType.FIT_CENTER); - imageView.setLayoutParams(new ImageSwitcher.LayoutParams( - LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT)); - imageView.setBackgroundColor(0xFFFFFFFF); - return imageView; - }); - // - intent_selectToCollection = new Intent(this, SelectCollectionActivity.class); - // - arl_directoryChooser = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> { - if (result.getResultCode() == Activity.RESULT_OK) { - Bundle bundle = result.getData().getExtras(); - File baseDirectory = (File) bundle.get(DirectoryChooserActivity.KEY_SELECTED_FILE); - collectionListViewAdapter.setBaseDirectory(baseDirectory); - menu_options.findItem(R.id.create_collection).setEnabled(true); - menu_options.findItem(R.id.delete_collection).setEnabled(false); - menu_options.findItem(R.id.rename_collection).setEnabled(false); + if (selectedItem.renameTo(toFile)) { + fileListViewAdapter.removeCurrentItem(false); } + } }); - // - arl_selectToCollection = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> { - if (result.getResultCode() == Activity.RESULT_OK) { - Bundle bundle = result.getData().getExtras(); - File toCollection = (File) bundle.get(SelectCollectionActivity.KEY_SELECTED_COLLECTION); - File selectedItem = fileListViewAdapter.getCurrentItem(); - File toFile = new File(toCollection.getPath() + File.separatorChar + selectedItem.getName()); - int counter = 0; - while (toFile.exists()) { - toFile = new File(toCollection.getPath() + File.separatorChar + counter + '_' + selectedItem.getName()); - counter++; - } - if (selectedItem.renameTo(toFile)) { - fileListViewAdapter.removeCurrentItem(false); - } - } - }); - // - gestureDetector = new GestureDetectorCompat(this, new SimpleGestureListener()); - drawerLayout_main.setOnTouchListener((view, motionEvent) -> { - //synchronized (drawerStateSync) { - if (drawerState == DrawerLayout.STATE_IDLE) { - gestureDetector.onTouchEvent(motionEvent); - } - //} - return false; - }); - drawerLayout_main.addDrawerListener(new DrawerLayout.DrawerListener() { - @Override - public void onDrawerSlide(@NonNull View drawerView, float slideOffset) { - - } - - @Override - public void onDrawerOpened(@NonNull View drawerView) { + // + gestureDetector = new GestureDetectorCompat(this, new SimpleGestureListener()); + drawerLayout_main.setOnTouchListener((view, motionEvent) -> { + //synchronized (drawerStateSync) { + if (drawerState == DrawerLayout.STATE_IDLE) { + gestureDetector.onTouchEvent(motionEvent); + } + //} + return false; + }); + drawerLayout_main.addDrawerListener(new DrawerLayout.DrawerListener() { + @Override + public void onDrawerSlide(@NonNull View drawerView, float slideOffset) { } - } - - @Override - public void onDrawerClosed(@NonNull View drawerView) { + @Override + public void onDrawerOpened(@NonNull View drawerView) { } - } + @Override + public void onDrawerClosed(@NonNull View drawerView) { } - @Override - public void onDrawerStateChanged(int newState) { - //synchronized (drawerStateSync) { - drawerState = newState; - //} - } - }); - // - adb_deleteFile = new AlertDialog.Builder(this); - // - File session = new File(getExternalFilesDir(null).getPath() - + File.separatorChar + SESSION_FILE_NAME); - if (session.exists()) { - try (BufferedReader bw = new BufferedReader(new InputStreamReader( - new FileInputStream(session), StandardCharsets.UTF_8))) { - String baseDirectory = bw.readLine(); - String collectionName = bw.readLine(); - String fileName = bw.readLine(); - File baseFile = new File(baseDirectory); - if (baseFile.exists()) { - File collectionFile = new File(baseFile.getName().equalsIgnoreCase(collectionName) ? - baseDirectory : baseDirectory + File.separatorChar + collectionName); - if (!collectionFile.exists()) { - collectionFile = null; - } - File itemFile = new File(collectionFile.getPath() + File.separatorChar + fileName); - if (!itemFile.exists()) { - itemFile = null; - } - collectionListViewAdapter.init(baseFile, collectionFile, itemFile); - } - } catch (Exception e) { - e.printStackTrace(); - } + @Override + public void onDrawerStateChanged(int newState) { + //synchronized (drawerStateSync) { + drawerState = newState; + //} + } + }); + // + adb_deleteFile = new AlertDialog.Builder(this); + // + String sessionFilePath = getFilesDir().getPath() + File.separatorChar + SESSION_FILE_NAME; + File sessionFile = new File(sessionFilePath); + if (sessionFile.exists()) { + try (BufferedReader bw = new BufferedReader( + new InputStreamReader(new FileInputStream(sessionFile), StandardCharsets.UTF_8))) { + String baseDirectory = bw.readLine(); + String collectionName = bw.readLine(); + String fileName = bw.readLine(); + File baseFile = new File(baseDirectory); + if (baseFile.exists()) { + File collectionFile = new File( + baseFile.getName().equalsIgnoreCase(collectionName) ? baseDirectory + : baseDirectory + File.separatorChar + collectionName); + if (!collectionFile.exists()) { + collectionFile = null; + } + File itemFile = new File(collectionFile.getPath() + File.separatorChar + fileName); + if (!itemFile.exists()) { + itemFile = null; + } + collectionListViewAdapter.init(baseFile, collectionFile, itemFile); } + } catch (Exception e) { + e.printStackTrace(System.out); + } } + } - @Override - public boolean onCreateOptionsMenu(Menu menu) { - getMenuInflater().inflate(R.menu.main_menu, menu); - menu_options = menu; - if (collectionListViewAdapter.getItemCount() > 0) { - menu.findItem(R.id.create_collection).setEnabled(true); - if (!collectionListViewAdapter.getCurrentCollection().equals( - collectionListViewAdapter.getBaseDirectory())) { - menu.findItem(R.id.delete_collection).setEnabled(true); - menu.findItem(R.id.rename_collection).setEnabled(true); - } - } - return true; + @Override + public boolean onCreateOptionsMenu(Menu menu) { + getMenuInflater().inflate(R.menu.main_menu, menu); + menu_options = menu; + if (collectionListViewAdapter.getItemCount() > 0) { + menu.findItem(R.id.create_collection).setEnabled(true); + if (!collectionListViewAdapter.getCurrentCollection() + .equals(collectionListViewAdapter.getBaseDirectory())) { + menu.findItem(R.id.delete_collection).setEnabled(true); + menu.findItem(R.id.rename_collection).setEnabled(true); + } } + return true; + } - @SuppressLint("NonConstantResourceId") - @Override - public boolean onOptionsItemSelected(@NonNull MenuItem item) { - switch (item.getItemId()) { - case R.id.open_folder: - Intent chooseFile = new Intent(this, DirectoryChooserActivity.class); - arl_directoryChooser.launch(chooseFile); - break; - case R.id.create_collection: - if (collectionListViewAdapter.getItemCount() > 0) { - InputAlertDialog inputAlertDialog = new InputAlertDialog(this); - inputAlertDialog.setTitle(R.string.create_collection_dialog_title); - inputAlertDialog.setInputAlertDialogActions(new InputAlertDialog.InputAlertDialogActions() { - @Override - public String OnValidation(String text) { - if ("".equals(text)) { - return getString(R.string.edit_collection_validation_empty_name); - } - if (CHECK_SPECIAL_PATH_SYMBOLS.matcher(text).matches()) { - return getString(R.string.edit_collection_validation_forbidden_symbols); - } - String basePath = collectionListViewAdapter.getBaseDirectory().getPath(); - File checkDirectory = new File(basePath + File.separatorChar + text); - if (checkDirectory.exists()) { - return getString(R.string.edit_collection_validation_exist); - } - return null; - } - - @Override - public void OnSuccess(String text) { - String basePath = collectionListViewAdapter.getBaseDirectory().getPath(); - File collection = new File(basePath + File.separatorChar + text); - if (collection.mkdir()) { - collectionListViewAdapter.add(collection); - } - } - }); - inputAlertDialog.show(); - break; - } - case R.id.delete_collection: - AlertDialog.Builder confirmDeleteColl = new AlertDialog.Builder(this) - .setMessage(getString(R.string.delete_collection_confirm, - collectionListViewAdapter.getCurrentCollection().getName())) - .setPositiveButton(R.string.confirm_yes, (dialogInterface, id) -> { - collectionListViewAdapter.deleteCurrent(this); - dialogInterface.dismiss(); - }) - .setNegativeButton(R.string.confirm_no, (dialogInterface, id) -> { - dialogInterface.dismiss(); - }); - confirmDeleteColl.show(); - break; - case R.id.rename_collection: - Activity _this = this; - InputAlertDialog renameCollection = new InputAlertDialog(this); - renameCollection.setInputAlertDialogActions(new InputAlertDialog.InputAlertDialogActions() { - @Override - public String OnValidation(String text) { - if ("".equals(text)) { - return getString(R.string.edit_collection_validation_empty_name); - } - if (CHECK_SPECIAL_PATH_SYMBOLS.matcher(text).matches()) { - return getString(R.string.edit_collection_validation_forbidden_symbols); - } - String basePath = collectionListViewAdapter.getBaseDirectory().getPath(); - File checkDirectory = new File(basePath + File.separatorChar + text); - if (checkDirectory.exists()) { - return getString(R.string.edit_collection_validation_exist); - } - return null; - } + @SuppressLint("NonConstantResourceId") + @Override + public boolean onOptionsItemSelected(@NonNull MenuItem item) { + int optionItemId = item.getItemId(); + if (R.id.open_folder == optionItemId) { + Intent chooseFile = new Intent(this, DirectoryChooserActivity.class); + arl_directoryChooser.launch(chooseFile); + } else if (R.id.create_collection == optionItemId) { + if (collectionListViewAdapter.getItemCount() <= 0) { + return true; + } + InputAlertDialog inputAlertDialog = new InputAlertDialog(this); + inputAlertDialog.setTitle(R.string.create_collection_dialog_title); + inputAlertDialog.setInputAlertDialogActions(new InputAlertDialog.InputAlertDialogActions() { + @Override + public String OnValidation(String text) { + if ("".equals(text)) { + return getString(R.string.edit_collection_validation_empty_name); + } + if (CHECK_SPECIAL_PATH_SYMBOLS.matcher(text).matches()) { + return getString(R.string.edit_collection_validation_forbidden_symbols); + } + String basePath = collectionListViewAdapter.getBaseDirectory().getPath(); + File checkDirectory = new File(basePath + File.separatorChar + text); + if (checkDirectory.exists()) { + return getString(R.string.edit_collection_validation_exist); + } + return null; + } - @Override - public void OnSuccess(String text) { - if (collectionListViewAdapter.renameCurrent(text)) { - _this.setTitle(text); - } - } - }); - renameCollection.show(); - break; + @Override + public void OnSuccess(String text) { + String basePath = collectionListViewAdapter.getBaseDirectory().getPath(); + File collection = new File(basePath + File.separatorChar + text); + if (collection.mkdir()) { + collectionListViewAdapter.add(collection); + } + } + }); + inputAlertDialog.show(); + } else if (R.id.delete_collection == optionItemId) { + AlertDialog.Builder confirmDeleteColl = new AlertDialog.Builder(this).setMessage( + getString(R.string.delete_collection_confirm, + collectionListViewAdapter.getCurrentCollection().getName())) + .setPositiveButton(R.string.confirm_yes, (dialogInterface, id) -> { + collectionListViewAdapter.deleteCurrent(this); + dialogInterface.dismiss(); + }).setNegativeButton(R.string.confirm_no, (dialogInterface, id) -> { + dialogInterface.dismiss(); + }); + confirmDeleteColl.show(); + } else if (R.id.rename_collection == optionItemId) { + Activity parentThis = this; + InputAlertDialog renameCollection = new InputAlertDialog(this); + renameCollection.setInputAlertDialogActions(new InputAlertDialog.InputAlertDialogActions() { + @Override + public String OnValidation(String text) { + if ("".equals(text)) { + return getString(R.string.edit_collection_validation_empty_name); + } + if (CHECK_SPECIAL_PATH_SYMBOLS.matcher(text).matches()) { + return getString(R.string.edit_collection_validation_forbidden_symbols); + } + String basePath = collectionListViewAdapter.getBaseDirectory().getPath(); + File checkDirectory = new File(basePath + File.separatorChar + text); + if (checkDirectory.exists()) { + return getString(R.string.edit_collection_validation_exist); + } + return null; } - return true; - } - class SimpleGestureListener extends GestureDetector.SimpleOnGestureListener { @Override - public boolean onFling(MotionEvent motionEvent, MotionEvent motionEvent1, float v, float v1) { - float sizeX = Math.abs(motionEvent.getX() - motionEvent1.getX()); - float sizeY = Math.abs(motionEvent.getY() - motionEvent1.getY()); - if (sizeX > sizeY && sizeX > 50.0d) { - if (motionEvent.getX() > motionEvent1.getX()) { - //image_switcher.setInAnimation(image_switcher_rin); - //image_switcher.setOutAnimation(image_switcher_rout); - fileListViewAdapter.next(); - } else { - //image_switcher.setInAnimation(image_switcher_lin); - //image_switcher.setOutAnimation(image_switcher_lout); - fileListViewAdapter.previous(); - } - } else if (sizeY > 50.0d && fileListViewAdapter.getItemCount() > 0) { - if (motionEvent.getY() < motionEvent1.getY()) { - intent_selectToCollection.putExtra(SelectCollectionActivity.KEY_BASE_DIRECTORY, - collectionListViewAdapter.getBaseDirectory()); - intent_selectToCollection.putExtra(SelectCollectionActivity.KEY_SELECTED_COLLECTION, - collectionListViewAdapter.getCurrentCollection()); - arl_selectToCollection.launch(intent_selectToCollection); - } else { - File currentItem = fileListViewAdapter.getCurrentItem(); - adb_deleteFile.setMessage(getString(R.string.delete_collection_item_confirm, - currentItem.getName())) - .setPositiveButton(R.string.confirm_yes, (dialogInterface, id) -> { - if (currentItem.delete()) { - fileListViewAdapter.removeCurrentItem(true); - } - dialogInterface.dismiss(); - }) - .setNegativeButton(R.string.confirm_no, (dialogInterface, id) -> { - dialogInterface.dismiss(); - }); - adb_deleteFile.show(); - } - } - return true; + public void OnSuccess(String text) { + if (collectionListViewAdapter.renameCurrent(text)) { + parentThis.setTitle(text); + } } + }); + renameCollection.show(); } + return true; + } + class SimpleGestureListener extends GestureDetector.SimpleOnGestureListener { @Override - protected void onStop() { - if (collectionListViewAdapter.getItemCount() > 0) { - File session = new File(getExternalFilesDir(null).getPath() - + File.separatorChar + SESSION_FILE_NAME); - try (BufferedWriter bw = new BufferedWriter(new OutputStreamWriter( - new FileOutputStream(session, false), StandardCharsets.UTF_8))) { - bw.write(collectionListViewAdapter.getBaseDirectory().getPath()); - bw.newLine(); - bw.write(collectionListViewAdapter.getCurrentCollection().getName()); - bw.newLine(); - bw.write(fileListViewAdapter.getCurrentItem().getName()); - } catch (Exception e) { - e.printStackTrace(); - } + public boolean onFling(MotionEvent motionEvent, MotionEvent motionEvent1, float v, float v1) { + float sizeX = Math.abs(motionEvent.getX() - motionEvent1.getX()); + float sizeY = Math.abs(motionEvent.getY() - motionEvent1.getY()); + if (sizeX > sizeY && sizeX > 50.0d) { + if (motionEvent.getX() > motionEvent1.getX()) { + //image_switcher.setInAnimation(image_switcher_rin); + //image_switcher.setOutAnimation(image_switcher_rout); + fileListViewAdapter.next(); + } else { + //image_switcher.setInAnimation(image_switcher_lin); + //image_switcher.setOutAnimation(image_switcher_lout); + fileListViewAdapter.previous(); + } + } else if (sizeY > 50.0d && fileListViewAdapter.getItemCount() > 0) { + if (motionEvent.getY() < motionEvent1.getY()) { + intent_selectToCollection.putExtra(SelectCollectionActivity.KEY_BASE_DIRECTORY, + collectionListViewAdapter.getBaseDirectory()); + intent_selectToCollection.putExtra(SelectCollectionActivity.KEY_SELECTED_COLLECTION, + collectionListViewAdapter.getCurrentCollection()); + arl_selectToCollection.launch(intent_selectToCollection); + } else { + File currentItem = fileListViewAdapter.getCurrentItem(); + adb_deleteFile.setMessage( + getString(R.string.delete_collection_item_confirm, currentItem.getName())) + .setPositiveButton(R.string.confirm_yes, (dialogInterface, id) -> { + if (currentItem.delete()) { + fileListViewAdapter.removeCurrentItem(true); + } + dialogInterface.dismiss(); + }).setNegativeButton(R.string.confirm_no, (dialogInterface, id) -> { + dialogInterface.dismiss(); + }); + adb_deleteFile.show(); } - super.onStop(); + } + return true; + } + } + + @Override + protected void onStop() { + if (collectionListViewAdapter.getItemCount() > 0) { + String sessionFilePath = getFilesDir().getPath() + File.separatorChar + SESSION_FILE_NAME; + File sessionFile = new File(sessionFilePath); + try (BufferedWriter bw = new BufferedWriter( + new OutputStreamWriter(new FileOutputStream(sessionFile, false), + StandardCharsets.UTF_8))) { + bw.write(collectionListViewAdapter.getBaseDirectory().getPath()); + bw.newLine(); + bw.write(collectionListViewAdapter.getCurrentCollection().getName()); + bw.newLine(); + bw.write(fileListViewAdapter.getCurrentItem().getName()); + } catch (Exception e) { + e.printStackTrace(System.out); + } } + super.onStop(); + } } \ No newline at end of file diff --git a/build.gradle b/build.gradle index 0f26153..8412920 100644 --- a/build.gradle +++ b/build.gradle @@ -1,6 +1,6 @@ buildscript { ext { - agp_version = '8.6.1' + agp_version = '8.7.3' } repositories { google()