diff --git a/.editorconfig b/.editorconfig
index 60d4fd6cae..140cc085c5 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -1,901 +1,901 @@
-[*]
-charset = utf-8
-end_of_line = crlf
-indent_size = 4
-indent_style = space
-insert_final_newline = true
-max_line_length = 160
-tab_width = 4
-ij_continuation_indent_size = 8
-ij_formatter_off_tag = @formatter:off
-ij_formatter_on_tag = @formatter:on
-ij_formatter_tags_enabled = false
-ij_smart_tabs = false
-ij_visual_guides = none
-ij_wrap_on_typing = 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_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_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_at_first_column = true
-ij_java_builder_methods = none
-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_do_not_indent_top_level_class_members = false
-ij_java_do_not_wrap_after_single_annotation = 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_extends_keyword_wrap = off
-ij_java_extends_list_wrap = off
-ij_java_field_annotation_wrap = split_into_lines
-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_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_at_first_column = true
-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_names_count_to_use_import_on_demand = 99
-ij_java_new_line_after_lparen_in_record_header = false
-ij_java_parameter_annotation_wrap = off
-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_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_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_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_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_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_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_subclass_name_suffix = Impl
-ij_java_ternary_operation_signs_on_next_line = false
-ij_java_ternary_operation_wrap = off
-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
-
-[*.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_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
-
-[{*.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++,*.cc,*.cp,*.cpp,*.cu,*.cuh,*.cxx,*.h,*.h++,*.hh,*.hp,*.hpp,*.hxx,*.i,*.icc,*.ii,*.inl,*.ino,*.ipp,*.m,*.mm,*.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_vars = false
-ij_c_introduce_const_params = false
-ij_c_introduce_const_vars = 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_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_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_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_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_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_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_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,*.gradle,*.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_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_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_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_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_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_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_long_lines = false
-
-[{*.gradle.kts,*.kt,*.kts,*.main.kts}]
-ij_kotlin_align_in_columns_case_branch = true
-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 = off
-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_at_first_column = true
-ij_kotlin_call_parameters_new_line_after_left_paren = false
-ij_kotlin_call_parameters_right_paren_on_new_line = false
-ij_kotlin_call_parameters_wrap = off
-ij_kotlin_catch_on_new_line = false
-ij_kotlin_class_annotation_wrap = off
-ij_kotlin_code_style_defaults = KOTLIN_OFFICIAL
-ij_kotlin_continuation_indent_for_chained_calls = true
-ij_kotlin_continuation_indent_for_expression_bodies = true
-ij_kotlin_continuation_indent_in_argument_lists = true
-ij_kotlin_continuation_indent_in_elvis = true
-ij_kotlin_continuation_indent_in_if_conditions = true
-ij_kotlin_continuation_indent_in_parameter_lists = true
-ij_kotlin_continuation_indent_in_supertype_lists = true
-ij_kotlin_else_on_new_line = false
-ij_kotlin_enum_constants_wrap = off
-ij_kotlin_extends_list_wrap = off
-ij_kotlin_field_annotation_wrap = normal
-ij_kotlin_finally_on_new_line = false
-ij_kotlin_if_rparen_on_new_line = false
-ij_kotlin_import_nested_classes = false
-ij_kotlin_imports_layout = *,java.**,javax.**,kotlin.**,^
-ij_kotlin_insert_whitespaces_in_simple_one_line_method = true
-ij_kotlin_keep_blank_lines_before_right_brace = 0
-ij_kotlin_keep_blank_lines_in_code = 1
-ij_kotlin_keep_blank_lines_in_declarations = 1
-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_comment_add_space = false
-ij_kotlin_line_comment_at_first_column = true
-ij_kotlin_method_annotation_wrap = split_into_lines
-ij_kotlin_method_call_chain_wrap = off
-ij_kotlin_method_parameters_new_line_after_left_paren = false
-ij_kotlin_method_parameters_right_paren_on_new_line = false
-ij_kotlin_method_parameters_wrap = off
-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 = kotlinx.android.synthetic.**
-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 = 0
-ij_kotlin_wrap_first_method_in_call_chain = false
-
-[{*.har,*.json}]
-indent_size = 2
-ij_json_keep_blank_lines_in_code = 0
-ij_json_keep_indents_on_empty_lines = false
-ij_json_keep_line_breaks = true
-ij_json_space_after_colon = true
-ij_json_space_after_comma = true
-ij_json_space_before_colon = true
-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_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
-ij_html_uniform_ident = false
-
-[{*.yaml,*.yml}]
-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_sequence_on_new_line = false
-ij_yaml_space_before_colon = false
-ij_yaml_spaces_within_braces = true
-ij_yaml_spaces_within_brackets = true
+[*]
+charset = utf-8
+end_of_line = lf
+indent_size = 4
+indent_style = space
+insert_final_newline = true
+max_line_length = 160
+tab_width = 4
+ij_continuation_indent_size = 8
+ij_formatter_off_tag = @formatter:off
+ij_formatter_on_tag = @formatter:on
+ij_formatter_tags_enabled = false
+ij_smart_tabs = false
+ij_visual_guides = none
+ij_wrap_on_typing = 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_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_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_at_first_column = true
+ij_java_builder_methods = none
+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_do_not_indent_top_level_class_members = false
+ij_java_do_not_wrap_after_single_annotation = 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_extends_keyword_wrap = off
+ij_java_extends_list_wrap = off
+ij_java_field_annotation_wrap = split_into_lines
+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_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_at_first_column = true
+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_names_count_to_use_import_on_demand = 99
+ij_java_new_line_after_lparen_in_record_header = false
+ij_java_parameter_annotation_wrap = off
+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_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_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_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_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_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_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_subclass_name_suffix = Impl
+ij_java_ternary_operation_signs_on_next_line = false
+ij_java_ternary_operation_wrap = off
+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
+
+[*.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_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
+
+[{*.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++,*.cc,*.cp,*.cpp,*.cu,*.cuh,*.cxx,*.h,*.h++,*.hh,*.hp,*.hpp,*.hxx,*.i,*.icc,*.ii,*.inl,*.ino,*.ipp,*.m,*.mm,*.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_vars = false
+ij_c_introduce_const_params = false
+ij_c_introduce_const_vars = 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_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_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_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_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_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_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_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,*.gradle,*.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_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_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_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_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_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_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_long_lines = false
+
+[{*.gradle.kts,*.kt,*.kts,*.main.kts}]
+ij_kotlin_align_in_columns_case_branch = true
+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 = off
+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_at_first_column = true
+ij_kotlin_call_parameters_new_line_after_left_paren = false
+ij_kotlin_call_parameters_right_paren_on_new_line = false
+ij_kotlin_call_parameters_wrap = off
+ij_kotlin_catch_on_new_line = false
+ij_kotlin_class_annotation_wrap = off
+ij_kotlin_code_style_defaults = KOTLIN_OFFICIAL
+ij_kotlin_continuation_indent_for_chained_calls = true
+ij_kotlin_continuation_indent_for_expression_bodies = true
+ij_kotlin_continuation_indent_in_argument_lists = true
+ij_kotlin_continuation_indent_in_elvis = true
+ij_kotlin_continuation_indent_in_if_conditions = true
+ij_kotlin_continuation_indent_in_parameter_lists = true
+ij_kotlin_continuation_indent_in_supertype_lists = true
+ij_kotlin_else_on_new_line = false
+ij_kotlin_enum_constants_wrap = off
+ij_kotlin_extends_list_wrap = off
+ij_kotlin_field_annotation_wrap = normal
+ij_kotlin_finally_on_new_line = false
+ij_kotlin_if_rparen_on_new_line = false
+ij_kotlin_import_nested_classes = false
+ij_kotlin_imports_layout = *,java.**,javax.**,kotlin.**,^
+ij_kotlin_insert_whitespaces_in_simple_one_line_method = true
+ij_kotlin_keep_blank_lines_before_right_brace = 0
+ij_kotlin_keep_blank_lines_in_code = 1
+ij_kotlin_keep_blank_lines_in_declarations = 1
+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_comment_add_space = false
+ij_kotlin_line_comment_at_first_column = true
+ij_kotlin_method_annotation_wrap = split_into_lines
+ij_kotlin_method_call_chain_wrap = off
+ij_kotlin_method_parameters_new_line_after_left_paren = false
+ij_kotlin_method_parameters_right_paren_on_new_line = false
+ij_kotlin_method_parameters_wrap = off
+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 = kotlinx.android.synthetic.**
+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 = 0
+ij_kotlin_wrap_first_method_in_call_chain = false
+
+[{*.har,*.json}]
+indent_size = 2
+ij_json_keep_blank_lines_in_code = 0
+ij_json_keep_indents_on_empty_lines = false
+ij_json_keep_line_breaks = true
+ij_json_space_after_colon = true
+ij_json_space_after_comma = true
+ij_json_space_before_colon = true
+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_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
+ij_html_uniform_ident = false
+
+[{*.yaml,*.yml}]
+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_sequence_on_new_line = false
+ij_yaml_space_before_colon = false
+ij_yaml_spaces_within_braces = true
+ij_yaml_spaces_within_brackets = true
diff --git a/.github/ISSUE_TEMPLATE/release.yml b/.github/ISSUE_TEMPLATE/release.yml
index c22b00e2e9..7cb47fa952 100644
--- a/.github/ISSUE_TEMPLATE/release.yml
+++ b/.github/ISSUE_TEMPLATE/release.yml
@@ -23,7 +23,8 @@ body:
### Do the release
- - [ ] Create release with gitflow, branch name `release/1.2.3`
+ - [ ] Make sure `develop` and `main` are up to date (git pull)
+ - [ ] Checkout develop and create a release with gitflow, branch name `release/1.2.3`
- [ ] Check the crashes from the PlayStore
- [ ] Check the rageshake with the current dev version: https://github.com/matrix-org/element-android-rageshakes/labels/1.2.3-dev
- [ ] Run the integration test, and especially `UiAllScreensSanityTest.allScreensTest()`
@@ -106,7 +107,7 @@ body:
https://github.com/matrix-org/matrix-android-sdk2-sample
- - [ ] Update the dependency to the new version of the SDK2. It can take some time for MavenCentral to make the librarie available. You can check status on https://repo1.maven.org/maven2/org/matrix/android/matrix-android-sdk2/
+ - [ ] Update the dependency to the new version of the SDK2. It can take a few minutes for MavenCentral to make the library available. You can check status on https://repo1.maven.org/maven2/org/matrix/android/matrix-android-sdk2/
- [ ] Build and run the sample, you may have to fix some API break
- [ ] Commit and push directly on `main`
validations:
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index 0573461e7a..b6746c77d3 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -10,6 +10,8 @@ updates:
directory: "/"
schedule:
interval: "weekly"
+ reviewers:
+ - "vector-im/element-android-reviewers"
ignore:
- dependency-name: "*github-script*"
# Updates for Gradle dependencies used in the app
@@ -19,6 +21,6 @@ updates:
interval: "daily"
open-pull-requests-limit: 200
reviewers:
- - "bmarty"
+ - "vector-im/element-android-reviewers"
ignore:
- dependency-name: com.google.zxing:core
diff --git a/.github/workflows/nightly.yml b/.github/workflows/post-pr.yml
similarity index 83%
rename from .github/workflows/nightly.yml
rename to .github/workflows/post-pr.yml
index 84122095c6..553146acc1 100644
--- a/.github/workflows/nightly.yml
+++ b/.github/workflows/post-pr.yml
@@ -1,28 +1,43 @@
-name: Nightly Tests
+name: Integration Tests
+
+# This runs for all closed pull requests against main, including those closed without merge.
+# Further filtering occurs in 'should-i-run'
on:
- push:
- branches: [ release/* ]
- schedule:
- # At 20:00 every day UTC
- - cron: '0 20 * * *'
- workflow_dispatch:
+ pull_request:
+ types: [closed]
+ branches: [develop]
# Enrich gradle.properties for CI/CD
env:
CI_GRADLE_ARG_PROPERTIES: >
-Porg.gradle.jvmargs=-Xmx4g
-Porg.gradle.parallel=false
+
jobs:
+
+ # More info on should-i-run:
+ # If this fails to run (the IF doesn't complete) then the needs will not be satisfied for any of the
+ # other jobs below, so none will run.
+ # except for the notification job at the bottom which will run all the time, unless should-i-run isn't
+ # successful, or all the other jobs have succeeded
+
+ should-i-run:
+ name: Check if PR is suitable for analysis
+ runs-on: ubuntu-latest
+ if: github.event.pull_request.merged # Additionally require PR to have been completely merged.
+ steps:
+ - run: echo "Run those tests!" # no-op success
+
# Run Android Tests
integration-tests:
name: Matrix SDK - Running Integration Tests
+ needs: should-i-run
runs-on: macos-latest
strategy:
fail-fast: false
matrix:
api-level: [ 28 ]
- # No concurrency required, runs every time on a schedule.
steps:
- uses: actions/checkout@v3
- uses: gradle/wrapper-validation-action@v1
@@ -43,11 +58,12 @@ jobs:
restore-keys: |
${{ runner.os }}-gradle-
- name: Start synapse server
- uses: michaelkaye/setup-matrix-synapse@v1.0.1
+ uses: michaelkaye/setup-matrix-synapse@v1.0.3
with:
uploadLogs: true
httpPort: 8080
disableRateLimiting: true
+ public_baseurl: "http://10.0.2.2:8080/"
# package: org.matrix.android.sdk.session
- name: Run integration tests for Matrix SDK [org.matrix.android.sdk.session] API[${{ matrix.api-level }}]
uses: reactivecircus/android-emulator-runner@v2
@@ -209,6 +225,7 @@ jobs:
ui-tests:
name: UI Tests (Synapse)
+ needs: should-i-run
runs-on: macos-latest
strategy:
fail-fast: false
@@ -230,11 +247,12 @@ jobs:
restore-keys: |
${{ runner.os }}-gradle-
- name: Start synapse server
- uses: michaelkaye/setup-matrix-synapse@v1.0.1
+ uses: michaelkaye/setup-matrix-synapse@v1.0.3
with:
uploadLogs: true
httpPort: 8080
disableRateLimiting: true
+ public_baseurl: "http://10.0.2.2:8080/"
- uses: actions/setup-java@v3
with:
distribution: 'adopt'
@@ -266,6 +284,7 @@ jobs:
codecov-units:
name: Unit tests with code coverage
+ needs: should-i-run
runs-on: macos-latest
steps:
- uses: actions/checkout@v3
@@ -290,50 +309,21 @@ jobs:
path: |
build/reports/jacoco/allCodeCoverageReport/allCodeCoverageReport.xml
- sonarqube:
- name: Sonarqube upload
- runs-on: macos-latest
- if: always() && github.event_name == 'schedule'
- needs:
- - codecov-units
- steps:
- - uses: actions/checkout@v3
- - uses: actions/setup-java@v3
- with:
- distribution: 'adopt'
- java-version: '11'
- - uses: actions/cache@v3
- with:
- path: |
- ~/.gradle/caches
- ~/.gradle/wrapper
- key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
- restore-keys: |
- ${{ runner.os }}-gradle-
- - uses: actions/download-artifact@v3
- with:
- name: codecov-xml # will restore to allCodeCoverageReport.xml by default; we restore to the same location in following tasks
- - run: mkdir -p build/reports/jacoco/allCodeCoverageReport/
- - run: mv allCodeCoverageReport.xml build/reports/jacoco/allCodeCoverageReport/
- - run: ./gradlew sonarqube $CI_GRADLE_ARG_PROPERTIES
- env:
- ORG_GRADLE_PROJECT_SONAR_LOGIN: ${{ secrets.SONAR_TOKEN }}
-
-# Notify the channel about scheduled runs, or pushes to the release branches, do not notify for manually triggered runs
+# Notify the channel about delayed failures
notify:
name: Notify matrix
runs-on: ubuntu-latest
needs:
+ - should-i-run
- integration-tests
- ui-tests
- - sonarqube
- if: always() && github.event_name != 'workflow_dispatch'
+ - codecov-units
+ if: always() && (needs.should-i-run.status == 'success' ) && ((needs.codecov-units.status != 'success' ) || (needs.ui-tests.status != 'success') || (needs.integration-tests.status != 'success'))
# No concurrency required, runs every time on a schedule.
steps:
- - uses: michaelkaye/matrix-hookshot-action@v0.3.0
+ - uses: michaelkaye/matrix-hookshot-action@v1.0.0
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
- matrix_access_token: ${{ secrets.ELEMENT_ANDROID_NOTIFICATION_ACCESS_TOKEN }}
- matrix_room_id: ${{ secrets.ELEMENT_ANDROID_INTERNAL_ROOM_ID }}
- text_template: "{{#if '${{ github.event_name }}' == 'schedule' }}Nightly test run{{else}}Test run (on ${{ github.ref }}){{/if }}: {{#each job_statuses }}{{#with this }}{{#if completed }} {{name}} {{conclusion}} at {{completed_at}}, {{/if}}{{/with}}{{/each}}"
- html_template: "{{#if '${{ github.event_name }}' == 'schedule' }}Nightly test run{{else}}Test run (on ${{ github.ref }}){{/if }}: {{#each job_statuses }}{{#with this }}{{#if completed }}
{{icon conclusion}} {{name}} {{conclusion}} at {{completed_at}} [details]{{/if}}{{/with}}{{/each}}"
+ hookshot_url: ${{ secrets.ELEMENT_ANDROID_HOOKSHOT_URL }}
+ text_template: "Post-merge validation of ${{ github.head_ref }} into ${{ github.base_ref }} by ${{ github.event.merged_by }} failed: {{#each job_statuses }}{{#with this }}{{#if completed }} {{name}} {{conclusion}} at {{completed_at}}, {{/if}}{{/with}}{{/each}}"
+ html_template: "Post-merge validation of ${{ github.head_ref }} into ${{ github.base_ref }} by ${{ github.event.merged_by }} failed: {{#each job_statuses }}{{#with this }}{{#if completed }}
{{icon conclusion}} {{name}} {{conclusion}} at {{completed_at}} [details]{{/if}}{{/with}}{{/each}}"
diff --git a/.github/workflows/sonarqube.yml b/.github/workflows/sonarqube.yml
new file mode 100644
index 0000000000..ea4c3d594b
--- /dev/null
+++ b/.github/workflows/sonarqube.yml
@@ -0,0 +1,81 @@
+name: Sonarqube nightly
+
+on:
+ schedule:
+ - cron: '0 20 * * *'
+
+# Enrich gradle.properties for CI/CD
+env:
+ CI_GRADLE_ARG_PROPERTIES: >
+ -Porg.gradle.jvmargs=-Xmx4g
+ -Porg.gradle.parallel=false
+jobs:
+ codecov-units:
+ name: Unit tests with code coverage
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v3
+ - uses: actions/setup-java@v3
+ with:
+ distribution: 'adopt'
+ java-version: '11'
+ - uses: actions/cache@v3
+ with:
+ path: |
+ ~/.gradle/caches
+ ~/.gradle/wrapper
+ key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
+ restore-keys: |
+ ${{ runner.os }}-gradle-
+ - run: ./gradlew allCodeCoverageReport $CI_GRADLE_ARG_PROPERTIES
+ - name: Upload Codecov data
+ uses: actions/upload-artifact@v3
+ if: always()
+ with:
+ name: codecov-xml
+ path: |
+ build/reports/jacoco/allCodeCoverageReport/allCodeCoverageReport.xml
+
+ sonarqube:
+ name: Sonarqube upload
+ runs-on: ubuntu-latest
+ needs:
+ - codecov-units
+ steps:
+ - uses: actions/checkout@v3
+ - uses: actions/setup-java@v3
+ with:
+ distribution: 'adopt'
+ java-version: '11'
+ - uses: actions/cache@v3
+ with:
+ path: |
+ ~/.gradle/caches
+ ~/.gradle/wrapper
+ key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
+ restore-keys: |
+ ${{ runner.os }}-gradle-
+ - uses: actions/download-artifact@v3
+ with:
+ name: codecov-xml # will restore to allCodeCoverageReport.xml by default; we restore to the same location in following tasks
+ - run: mkdir -p build/reports/jacoco/allCodeCoverageReport/
+ - run: mv allCodeCoverageReport.xml build/reports/jacoco/allCodeCoverageReport/
+ - run: ./gradlew sonarqube $CI_GRADLE_ARG_PROPERTIES
+ env:
+ ORG_GRADLE_PROJECT_SONAR_LOGIN: ${{ secrets.SONAR_TOKEN }}
+
+# Notify the channel about sonarqube failures
+ notify:
+ name: Notify matrix
+ runs-on: ubuntu-latest
+ needs:
+ - sonarqube
+ - codecov-units
+ if: always() && (needs.sonarqube.result != "success" || needs.codecov-units.result != "success")
+ steps:
+ - uses: michaelkaye/matrix-hookshot-action@v1.0.0
+ with:
+ github_token: ${{ secrets.GITHUB_TOKEN }}
+ hookshot_url: ${{ secrets.ELEMENT_ANDROID_HOOKSHOT_URL }}
+ text_template: "Sonarqube run (on ${{ github.ref }}): {{#each job_statuses }}{{#with this }}{{#if completed }} {{name}} {{conclusion}} at {{completed_at}}, {{/if}}{{/with}}{{/each}}"
+ html_template: "Sonarqube run (on ${{ github.ref }}): {{#each job_statuses }}{{#with this }}{{#if completed }}
{{icon conclusion}} {{name}} {{conclusion}} at {{completed_at}} [details]{{/if}}{{/with}}{{/each}}"
diff --git a/.github/workflows/triage-labelled.yml b/.github/workflows/triage-labelled.yml
index eeddf2e785..82d5931ce7 100644
--- a/.github/workflows/triage-labelled.yml
+++ b/.github/workflows/triage-labelled.yml
@@ -11,7 +11,6 @@ jobs:
if: >
contains(github.event.issue.labels.*.name, 'A-Maths') ||
contains(github.event.issue.labels.*.name, 'A-Message-Pinning') ||
- contains(github.event.issue.labels.*.name, 'A-Threads') ||
contains(github.event.issue.labels.*.name, 'A-Polls') ||
contains(github.event.issue.labels.*.name, 'A-Location-Sharing') ||
contains(github.event.issue.labels.*.name, 'A-Message-Bubbles') ||
@@ -252,3 +251,30 @@ jobs:
env:
PROJECT_ID: "PN_kwDOAM0swc4AArk0"
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
+
+ move_element_x_issues:
+ name: ElementX issues to ElementX project board
+ runs-on: ubuntu-latest
+ # Skip in forks
+ if: >
+ github.repository == 'vector-im/element-android' &&
+ (contains(github.event.issue.labels.*.name, 'Z-ElementX-Alpha') ||
+ contains(github.event.issue.labels.*.name, 'Z-ElementX-Beta') ||
+ contains(github.event.issue.labels.*.name, 'Z-ElementX'))
+ steps:
+ - uses: octokit/graphql-action@v2.x
+ with:
+ headers: '{"GraphQL-Features": "projects_next_graphql"}'
+ query: |
+ mutation add_to_project($projectid:ID!,$contentid:ID!) {
+ addProjectNextItem(input:{projectId:$projectid contentId:$contentid}) {
+ projectNextItem {
+ id
+ }
+ }
+ }
+ projectid: ${{ env.PROJECT_ID }}
+ contentid: ${{ github.event.issue.node_id }}
+ env:
+ PROJECT_ID: "PN_kwDOAM0swc4ABTXY"
+ GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
diff --git a/.github/workflows/triage-move-review-requests.yml b/.github/workflows/triage-move-review-requests.yml
index 75738a53a9..61f1f114dd 100644
--- a/.github/workflows/triage-move-review-requests.yml
+++ b/.github/workflows/triage-move-review-requests.yml
@@ -7,6 +7,8 @@ jobs:
add_design_pr_to_project:
name: Move PRs asking for design review to the design board
runs-on: ubuntu-latest
+ # Skip in forks
+ if: github.repository == 'vector-im/element-android'
steps:
- uses: octokit/graphql-action@v2.x
id: find_team_members
@@ -74,6 +76,8 @@ jobs:
add_product_pr_to_project:
name: Move PRs asking for product review to the product board
runs-on: ubuntu-latest
+ # Skip in forks
+ if: github.repository == 'vector-im/element-android'
steps:
- uses: octokit/graphql-action@v2.x
id: find_team_members
diff --git a/.github/workflows/update-gradle-wrapper.yml b/.github/workflows/update-gradle-wrapper.yml
index 1cbf29cc8d..63aaae15a5 100644
--- a/.github/workflows/update-gradle-wrapper.yml
+++ b/.github/workflows/update-gradle-wrapper.yml
@@ -13,6 +13,8 @@ jobs:
- name: Update Gradle Wrapper
uses: gradle-update/update-gradle-wrapper-action@v1
+ # Skip in forks
+ if: github.repository == 'vector-im/element-android'
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
target-branch: develop
diff --git a/CHANGES.md b/CHANGES.md
index 47b8c57041..8e42149545 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,3 +1,128 @@
+Changes in Element v1.4.14 (2022-05-05)
+=======================================
+
+Features ✨
+----------
+ - Improve management of ignored users ([#5772](https://github.com/vector-im/element-android/issues/5772))
+ - VoIP Screen Sharing Permission ([#5811](https://github.com/vector-im/element-android/issues/5811))
+ - Live location sharing: updating beacon state event content structure ([#5814](https://github.com/vector-im/element-android/issues/5814))
+
+Bugfixes 🐛
+----------
+ - Fixes crash when accepting or receiving VOIP calls ([#5421](https://github.com/vector-im/element-android/issues/5421))
+ - Improve/fix crashes on messages decryption ([#5592](https://github.com/vector-im/element-android/issues/5592))
+ - Tentative fix of images crashing when being sent or shared from gallery ([#5652](https://github.com/vector-im/element-android/issues/5652))
+ - Improving deactivation experience along with a crash fix ([#5721](https://github.com/vector-im/element-android/issues/5721))
+ - Adds missing suggested tag for rooms in Explore Space ([#5826](https://github.com/vector-im/element-android/issues/5826))
+ - Fixes missing call icons when threads are enabled ([#5847](https://github.com/vector-im/element-android/issues/5847))
+ - Fix UX freezing when creating secure backup ([#5871](https://github.com/vector-im/element-android/issues/5871))
+ - Fixes sign in via other requiring homeserver registration to be enabled ([#5874](https://github.com/vector-im/element-android/issues/5874))
+ - Don't pause timer when call is held. ([#5885](https://github.com/vector-im/element-android/issues/5885))
+ - Fix UISIDetector grace period bug ([#5886](https://github.com/vector-im/element-android/issues/5886))
+ - Fix a crash with space invitations in the space list, and do not display space invitation twice. ([#5924](https://github.com/vector-im/element-android/issues/5924))
+ - Fixes crash on android api 21/22 devices when opening messages due to Konfetti library ([#5925](https://github.com/vector-im/element-android/issues/5925))
+
+In development 🚧
+----------------
+ - Reorders the registration steps to prioritise email, then terms for the FTUE onboarding ([#5783](https://github.com/vector-im/element-android/issues/5783))
+ - [Live location sharing] Improve aggregation process of events ([#5862](https://github.com/vector-im/element-android/issues/5862))
+
+Improved Documentation 📚
+------------------------
+ - Update the PR process doc with 2 reviewers and a new reviewer team. ([#5836](https://github.com/vector-im/element-android/issues/5836))
+ - Improve documentation of the project and of the SDK ([#5854](https://github.com/vector-im/element-android/issues/5854))
+
+SDK API changes ⚠️
+------------------
+ - Added registrationCustom into RegistrationWizard to send custom auth params for sign up
+ - Moved terms converter into api package to make it accessible in sdk ([#5575](https://github.com/vector-im/element-android/issues/5575))
+ - Move package `org.matrix.android.sdk.api.pushrules` to `org.matrix.android.sdk.api.session.pushrules` ([#5812](https://github.com/vector-im/element-android/issues/5812))
+ - Some `Session` apis are now available by requesting the service first. For instance `Session.updateAvatar(...)` is now `Session.profileService().updateAvatar(...)`
+ - The shortcut `Room.search()` has been removed, you have to use `Session.searchService().search()` ([#5816](https://github.com/vector-im/element-android/issues/5816))
+ - Add return type to RoomApi.sendStateEvent() to retrieve the created event id ([#5855](https://github.com/vector-im/element-android/issues/5855))
+ - `Room` apis are now available by requesting the service first. For instance `Room.updateAvatar(...)` is now `Room.stateService().updateAvatar(...)` ([#5858](https://github.com/vector-im/element-android/issues/5858))
+ - Remove unecessary field `eventId` from `EventAnnotationsSummary` and `ReferencesAggregatedSummary` ([#5890](https://github.com/vector-im/element-android/issues/5890))
+ - Replace usage of `System.currentTimeMillis()` by a `Clock` interface ([#5907](https://github.com/vector-im/element-android/issues/5907))
+
+Other changes
+-------------
+ - Move "Ignored users" setting section into "Security & Privacy" ([#5773](https://github.com/vector-im/element-android/issues/5773))
+ - Add a picto for ignored users in the room member list screen ([#5774](https://github.com/vector-im/element-android/issues/5774))
+ - Autoformats entire project ([#5805](https://github.com/vector-im/element-android/issues/5805))
+ - Add a GH workflow to push ElementX issues to the global board. ([#5832](https://github.com/vector-im/element-android/issues/5832))
+ - Faster Olm decrypt when there is a lot of existing sessions ([#5872](https://github.com/vector-im/element-android/issues/5872))
+
+
+Changes in Element 1.4.13 (2022-04-26)
+======================================
+
+Bugfixes 🐛
+----------
+ - Fix UI freeze observed after each incremental sync ([#5835](https://github.com/vector-im/element-android/issues/5835))
+
+
+Changes in Element v1.4.12 (2022-04-20)
+=======================================
+
+Features ✨
+----------
+ - Add a setting to be able to always appear offline ([#5582](https://github.com/vector-im/element-android/issues/5582))
+ - Adds the ability for audio attachments to be played in the timeline ([#5586](https://github.com/vector-im/element-android/issues/5586))
+ - Do not cancel the current incremental sync request and treatment when the app goes to background ([#5719](https://github.com/vector-im/element-android/issues/5719))
+ - Improve user experience when home servers do not yet support threads ([#5761](https://github.com/vector-im/element-android/issues/5761))
+
+Bugfixes 🐛
+----------
+ - Added text next to spinner when loading information after user is clicked on space members screen ([#4305](https://github.com/vector-im/element-android/issues/4305))
+ - The string `ftue_auth_carousel_workplace_body` was declared not translatable by mistake ([#5262](https://github.com/vector-im/element-android/issues/5262))
+ - Fix some cases where the read marker line would not show up ([#5475](https://github.com/vector-im/element-android/issues/5475))
+ - Fix sometimes read marker not properly updating ([#5481](https://github.com/vector-im/element-android/issues/5481))
+ - Fix sometimes endless loading timeline ([#5554](https://github.com/vector-im/element-android/issues/5554))
+ - Use member name instead of room name in DM creation item ([#5570](https://github.com/vector-im/element-android/issues/5570))
+ - Align auto-reporting of decryption errors implementation with web client. ([#5596](https://github.com/vector-im/element-android/issues/5596))
+ - Choosing "leave all rooms and spaces" while leaving Space won't cause leaving DMs in this Space anymore ([#5609](https://github.com/vector-im/element-android/issues/5609))
+ - Fixes display name being changed when using /myroomnick ([#5618](https://github.com/vector-im/element-android/issues/5618))
+ - Fix endless loading if the event from a permalink is not found ([#5659](https://github.com/vector-im/element-android/issues/5659))
+ - Redacted events are no longer visible. ([#5707](https://github.com/vector-im/element-android/issues/5707))
+ - Don't wrongly show non-space invites in the space panel. ([#5731](https://github.com/vector-im/element-android/issues/5731))
+ - Fixes the onboarding confetti rendering behind the content instead of in-front ([#5735](https://github.com/vector-im/element-android/issues/5735))
+ - Fixes crash when navigating the app whilst processing new room keys ([#5746](https://github.com/vector-im/element-android/issues/5746))
+ - Fix sorting of uploads in encrypted rooms ([#5757](https://github.com/vector-im/element-android/issues/5757))
+ - Fixing setting transfer title in call transfer. ([#5765](https://github.com/vector-im/element-android/issues/5765))
+ - Changes destination after joining a space to Explore Space Rooms screen ([#5766](https://github.com/vector-im/element-android/issues/5766))
+ - Unignoring a user will perform an initial sync ([#5767](https://github.com/vector-im/element-android/issues/5767))
+ - Open a room by link: use the actual roomId instead of the alias ([#5786](https://github.com/vector-im/element-android/issues/5786))
+
+In development 🚧
+----------------
+ - FTUE - Adds a new homeserver selection screen when creating an account ([#2396](https://github.com/vector-im/element-android/issues/2396))
+ - FTUE - Updates the Captcha and T&Cs registration screens UI style ([#5279](https://github.com/vector-im/element-android/issues/5279))
+ - FTUE - Adds error handling within the server selection screen ([#5749](https://github.com/vector-im/element-android/issues/5749))
+ - Live Location Sharing - Send location data ([#5697](https://github.com/vector-im/element-android/issues/5697))
+ - Live Location Sharing - Show message on start of a live ([#5710](https://github.com/vector-im/element-android/issues/5710))
+ - Live Location Sharing - Attach location data to beacon info state event ([#5711](https://github.com/vector-im/element-android/issues/5711))
+ - Live Location Sharing - Update beacon info state event when sharing is ended ([#5758](https://github.com/vector-im/element-android/issues/5758))
+
+
+SDK API changes ⚠️
+------------------
+ - Include original event in live decryption listeners and update sync status naming to InitialSyncProgressing for clarity. ([#5639](https://github.com/vector-im/element-android/issues/5639))
+ - KeysBackupService.getCurrentVersion takes a new type `KeysBackupLastVersionResult` in the callback. ([#5703](https://github.com/vector-im/element-android/issues/5703))
+ - A lot of classes which were exposed to the clients and were located in the package `org.matrix.android.sdk.internal` have been moved to the package `org.matrix.android.sdk.api`.
+ All the classes which are in the package `org.matrix.android.sdk.internal` should now be declared `internal`.
+ Some unused code and classes have been removed. ([#5744](https://github.com/vector-im/element-android/issues/5744))
+ - Some data classes are now immutable, using `val` instead of `var` ([#5762](https://github.com/vector-im/element-android/issues/5762))
+
+Other changes
+-------------
+ - Upgrade konfetti lib from 1.3.2 to 2.0.2 ([#5079](https://github.com/vector-im/element-android/issues/5079))
+ - Spaces feedback section is removed from left panel ([#5486](https://github.com/vector-im/element-android/issues/5486))
+ - Reduce error logs ([#5703](https://github.com/vector-im/element-android/issues/5703))
+ - Adds a complete editor config file for our current code style ([#5727](https://github.com/vector-im/element-android/issues/5727))
+ - Updates the posthog dev environment url and api key ([#5732](https://github.com/vector-im/element-android/issues/5732))
+ - Setup Dokka to be able to generate documentation of the SDK module. Run `./gradlew matrix-sdk-android:dokkaHtml` to do it. ([#5744](https://github.com/vector-im/element-android/issues/5744))
+
+
Changes in Element v1.4.11 (2022-04-07)
=======================================
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 053931cac5..52ccf47e6a 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -124,7 +124,9 @@ As a general rule, please never edit or add or remove translations to the projec
#### Adding new string
-When adding new string resources, please only add new entries in file `value/strings.xml`. Translations will be added later by the community of translators using Weblate.
+When adding new string resources, please only add new entries in the file `value/strings.xml`. Translations will be added later by the community of translators using Weblate.
+
+The file `value/strings.xml` must only contain American English (U. S. English) values, as this is the default language of the Android operating system. So for instance, please use "color" instead of "colour". Element Android will still use the language set on the system by the user, like any other Android applications which provide translations. The system language can be any other English language variants, or any other languages. Note that this is also possible to override the system language using the Element Android in-app language settings.
New strings can be added anywhere in the file `value/strings.xml`, not necessarily at the end of the file. Generally, it's even better to add the new strings in some dedicated section per feature, and not at the end of the file, to avoid merge conflict between 2 PR adding strings at the end of the same file.
diff --git a/README.md b/README.md
index 8306fd8593..54dfb7b288 100644
--- a/README.md
+++ b/README.md
@@ -14,7 +14,7 @@ It is a total rewrite of [Riot-Android](https://github.com/vector-im/riot-androi
[](https://play.google.com/store/apps/details?id=im.vector.app)
[](https://f-droid.org/app/im.vector.app)
-Nightly build: [![Buildkite](https://badge.buildkite.com/ad0065c1b70f557cd3b1d3d68f9c2154010f83c4d6f71706a9.svg?branch=develop)](https://buildkite.com/matrix-dot-org/element-android/builds?branch=develop) Nighly test status: [![allScreensTest](https://github.com/vector-im/element-android/actions/workflows/nightly.yml/badge.svg)](https://github.com/vector-im/element-android/actions/workflows/nightly.yml)
+Nightly build: [![Buildkite](https://badge.buildkite.com/ad0065c1b70f557cd3b1d3d68f9c2154010f83c4d6f71706a9.svg?branch=develop)](https://buildkite.com/matrix-dot-org/element-android/builds?branch=develop) Nightly test status: [![allScreensTest](https://github.com/vector-im/element-android/actions/workflows/nightly.yml/badge.svg)](https://github.com/vector-im/element-android/actions/workflows/nightly.yml)
# New Android SDK
@@ -53,3 +53,4 @@ Come chat with the community in the dedicated Matrix [room](https://matrix.to/#/
Issues are triaged by community members and the Android App Team, following the [triage process](https://github.com/vector-im/element-meta/wiki/Triage-process).
We use [issue labels](https://github.com/vector-im/element-meta/wiki/Issue-labelling) to sort all incoming issues.
+
diff --git a/build.gradle b/build.gradle
index 6cbc11351e..b34efc8222 100644
--- a/build.gradle
+++ b/build.gradle
@@ -5,10 +5,17 @@ buildscript {
apply from: 'dependencies_groups.gradle'
repositories {
- google()
+ // Do not use `google()`, it prevents Dependabot from working properly
+ maven {
+ url 'https://maven.google.com'
+ }
maven {
url "https://plugins.gradle.org/m2/"
}
+ // Do not use `mavenCentral()`, it prevents Dependabot from working properly
+ maven {
+ url 'https://repo1.maven.org/maven2'
+ }
}
dependencies {
@@ -21,8 +28,8 @@ buildscript {
classpath 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:3.3'
classpath 'com.google.android.gms:oss-licenses-plugin:0.10.5'
classpath "com.likethesalad.android:stem-plugin:2.0.0"
- classpath 'org.owasp:dependency-check-gradle:7.0.4.1'
- classpath "org.jetbrains.dokka:dokka-gradle-plugin:1.6.20"
+ classpath 'org.owasp:dependency-check-gradle:7.1.0.1'
+ classpath "org.jetbrains.dokka:dokka-gradle-plugin:1.6.21"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
@@ -30,7 +37,7 @@ buildscript {
// ktlint Plugin
plugins {
- id "org.jlleitschuh.gradle.ktlint" version "10.2.1"
+ id "org.jlleitschuh.gradle.ktlint" version "10.3.0"
id 'com.autonomousapps.dependency-analysis' version "1.0.0"
}
@@ -48,7 +55,9 @@ allprojects {
apply plugin: "org.jlleitschuh.gradle.ktlint"
repositories {
- mavenCentral {
+ // Do not use `mavenCentral()`, it prevents Dependabot from working properly
+ maven {
+ url 'https://repo1.maven.org/maven2'
content {
groups.mavenCentral.regex.each { includeGroupByRegex it }
groups.mavenCentral.group.each { includeGroup it }
@@ -71,14 +80,18 @@ allprojects {
groups.jitsi.group.each { includeGroup it }
}
}
- google {
+ // Do not use `google()`, it prevents Dependabot from working properly
+ maven {
+ url 'https://maven.google.com'
content {
groups.google.regex.each { includeGroupByRegex it }
groups.google.group.each { includeGroup it }
}
}
//noinspection JcenterRepositoryObsolete
- jcenter {
+ // Do not use `jcenter`, it prevents Dependabot from working properly
+ maven {
+ url 'https://jcenter.bintray.com'
content {
groups.jcenter.regex.each { includeGroupByRegex it }
groups.jcenter.group.each { includeGroup it }
diff --git a/changelog.d/2396.wip b/changelog.d/2396.wip
deleted file mode 100644
index 9af8fa16c0..0000000000
--- a/changelog.d/2396.wip
+++ /dev/null
@@ -1 +0,0 @@
-Adds a new homeserver selection screen when creating an account
\ No newline at end of file
diff --git a/changelog.d/4305.bugfix b/changelog.d/4305.bugfix
deleted file mode 100644
index 95e4a966fc..0000000000
--- a/changelog.d/4305.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Added text next to spinner when loading information after user is clicked on space members screen
\ No newline at end of file
diff --git a/changelog.d/46312.misc b/changelog.d/46312.misc
new file mode 100644
index 0000000000..5e0112372f
--- /dev/null
+++ b/changelog.d/46312.misc
@@ -0,0 +1 @@
+Notify the user for each new message
diff --git a/changelog.d/5079.misc b/changelog.d/5079.misc
deleted file mode 100644
index c38bf043ea..0000000000
--- a/changelog.d/5079.misc
+++ /dev/null
@@ -1 +0,0 @@
-Upgrade konfetti lib from 1.3.2 to 2.0.2
\ No newline at end of file
diff --git a/changelog.d/5151.misc b/changelog.d/5151.misc
new file mode 100644
index 0000000000..b785c4229c
--- /dev/null
+++ b/changelog.d/5151.misc
@@ -0,0 +1 @@
+Improve threads rendering in the main timeline
diff --git a/changelog.d/5262.bugfix b/changelog.d/5262.bugfix
deleted file mode 100644
index 389c1ed8fa..0000000000
--- a/changelog.d/5262.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-The string `ftue_auth_carousel_workplace_body` was declared not translatable by mistake
\ No newline at end of file
diff --git a/changelog.d/5279.wip b/changelog.d/5279.wip
deleted file mode 100644
index 0c08081cf9..0000000000
--- a/changelog.d/5279.wip
+++ /dev/null
@@ -1 +0,0 @@
-Updates the Captcha and T&Cs registration screens in the FTUE flow to match the updated UI style
\ No newline at end of file
diff --git a/changelog.d/5475.bugfix b/changelog.d/5475.bugfix
deleted file mode 100644
index 03364f6a73..0000000000
--- a/changelog.d/5475.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Fix some cases where the read marker line would not show up
diff --git a/changelog.d/5481.bugfix b/changelog.d/5481.bugfix
deleted file mode 100644
index 64891b503c..0000000000
--- a/changelog.d/5481.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Fix sometimes read marker not properly updating
diff --git a/changelog.d/5554.bugfix b/changelog.d/5554.bugfix
deleted file mode 100644
index ee69f0dbfe..0000000000
--- a/changelog.d/5554.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Fix sometimes endless loading timeline
diff --git a/changelog.d/5570.bugfix b/changelog.d/5570.bugfix
deleted file mode 100644
index c3743d252f..0000000000
--- a/changelog.d/5570.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Use member name instead of room name in DM creation item
\ No newline at end of file
diff --git a/changelog.d/5582.feature b/changelog.d/5582.feature
deleted file mode 100644
index e6e72c8e9d..0000000000
--- a/changelog.d/5582.feature
+++ /dev/null
@@ -1 +0,0 @@
-Add a setting to be able to always appear offline
diff --git a/changelog.d/5586.feature b/changelog.d/5586.feature
deleted file mode 100644
index 17d7bfce86..0000000000
--- a/changelog.d/5586.feature
+++ /dev/null
@@ -1 +0,0 @@
-Adds the ability for audio attachments to be played in the timeline
diff --git a/changelog.d/5596.bugfix b/changelog.d/5596.bugfix
deleted file mode 100644
index f51794c352..0000000000
--- a/changelog.d/5596.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Align auto-reporting of decryption errors implementation with web client.
\ No newline at end of file
diff --git a/changelog.d/5609.bugfix b/changelog.d/5609.bugfix
deleted file mode 100644
index 001b4bf400..0000000000
--- a/changelog.d/5609.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Choosing "leave all rooms and spaces" while leaving Space won't cause leaving DMs in this Space anymore
\ No newline at end of file
diff --git a/changelog.d/5618.bugfix b/changelog.d/5618.bugfix
deleted file mode 100644
index 8a839a2b4e..0000000000
--- a/changelog.d/5618.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Fixes display name being changed when using /myroomnick
diff --git a/changelog.d/5639.sdk b/changelog.d/5639.sdk
deleted file mode 100644
index 66167273f9..0000000000
--- a/changelog.d/5639.sdk
+++ /dev/null
@@ -1 +0,0 @@
-Include original event in live decryption listeners and update sync status naming to InitialSyncProgressing for clarity.
\ No newline at end of file
diff --git a/changelog.d/5659.bugfix b/changelog.d/5659.bugfix
deleted file mode 100644
index eec39a7738..0000000000
--- a/changelog.d/5659.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Fix endless loading if the event from a permalink is not found
diff --git a/changelog.d/5697.feature b/changelog.d/5697.feature
deleted file mode 100644
index 47504084f4..0000000000
--- a/changelog.d/5697.feature
+++ /dev/null
@@ -1 +0,0 @@
-Live Location Sharing - Send location data
\ No newline at end of file
diff --git a/changelog.d/5703.misc b/changelog.d/5703.misc
deleted file mode 100644
index 05e5080410..0000000000
--- a/changelog.d/5703.misc
+++ /dev/null
@@ -1 +0,0 @@
-Reduce error logs
\ No newline at end of file
diff --git a/changelog.d/5703.sdk b/changelog.d/5703.sdk
deleted file mode 100644
index ece1fec8e8..0000000000
--- a/changelog.d/5703.sdk
+++ /dev/null
@@ -1 +0,0 @@
-KeysBackupService.getCurrentVersion takes a new type `KeysBackupLastVersionResult` in the callback.
\ No newline at end of file
diff --git a/changelog.d/5707.bugfix b/changelog.d/5707.bugfix
deleted file mode 100644
index 66bd8f30b6..0000000000
--- a/changelog.d/5707.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Redacted events are no longer visible.
\ No newline at end of file
diff --git a/changelog.d/5710.feature b/changelog.d/5710.feature
deleted file mode 100644
index d9b043bc32..0000000000
--- a/changelog.d/5710.feature
+++ /dev/null
@@ -1 +0,0 @@
-Live Location Sharing - Show message on start of a live
\ No newline at end of file
diff --git a/changelog.d/5711.feature b/changelog.d/5711.feature
deleted file mode 100644
index 76c6b23b69..0000000000
--- a/changelog.d/5711.feature
+++ /dev/null
@@ -1 +0,0 @@
-Live Location Sharing - Attach location data to beacon info state event
\ No newline at end of file
diff --git a/changelog.d/5719.feature b/changelog.d/5719.feature
deleted file mode 100644
index 7561dfd82f..0000000000
--- a/changelog.d/5719.feature
+++ /dev/null
@@ -1 +0,0 @@
-Do not cancel the current incremental sync request and treatment when the app goes to background
\ No newline at end of file
diff --git a/changelog.d/5727.misc b/changelog.d/5727.misc
deleted file mode 100644
index fd90a08b17..0000000000
--- a/changelog.d/5727.misc
+++ /dev/null
@@ -1 +0,0 @@
-Adds a complete editor config file for our current code style
diff --git a/changelog.d/5731.bugfix b/changelog.d/5731.bugfix
deleted file mode 100644
index 5fb639b3ef..0000000000
--- a/changelog.d/5731.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Don't wrongly show non-space invites in the space panel.
diff --git a/changelog.d/5732.misc b/changelog.d/5732.misc
deleted file mode 100644
index 1b0f89e0c0..0000000000
--- a/changelog.d/5732.misc
+++ /dev/null
@@ -1 +0,0 @@
-Updates the posthog dev environment url and api key
\ No newline at end of file
diff --git a/changelog.d/5735.bugfix b/changelog.d/5735.bugfix
deleted file mode 100644
index 99012f9254..0000000000
--- a/changelog.d/5735.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Fixes the onboarding confetti rendering behind the content instead of in-front
\ No newline at end of file
diff --git a/changelog.d/5744.misc b/changelog.d/5744.misc
deleted file mode 100644
index 0953eccd95..0000000000
--- a/changelog.d/5744.misc
+++ /dev/null
@@ -1 +0,0 @@
-Setup Dokka to be able to generate documentation of the SDK module. Run `./gradlew matrix-sdk-android:dokkaHtml` to do it.
\ No newline at end of file
diff --git a/changelog.d/5744.sdk b/changelog.d/5744.sdk
deleted file mode 100644
index aced939e55..0000000000
--- a/changelog.d/5744.sdk
+++ /dev/null
@@ -1,3 +0,0 @@
-A lot of classes which were exposed to the clients and were located in the package `org.matrix.android.sdk.internal` have been moved to the package `org.matrix.android.sdk.api`.
-All the classes which are in the package `org.matrix.android.sdk.internal` should now be declared `internal`.
-Some unused code and classes have been removed.
\ No newline at end of file
diff --git a/changelog.d/5746.bugfix b/changelog.d/5746.bugfix
deleted file mode 100644
index 975a75f70a..0000000000
--- a/changelog.d/5746.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Fixes crash when navigating the app whilst processing new room keys
\ No newline at end of file
diff --git a/changelog.d/5749.wip b/changelog.d/5749.wip
deleted file mode 100644
index a933f55cf5..0000000000
--- a/changelog.d/5749.wip
+++ /dev/null
@@ -1 +0,0 @@
-Adds error handling within the new FTUE server selection screen
\ No newline at end of file
diff --git a/changelog.d/5757.bugfix b/changelog.d/5757.bugfix
deleted file mode 100644
index 089cc23b4c..0000000000
--- a/changelog.d/5757.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Fix sorting of uploads in encrypted rooms
\ No newline at end of file
diff --git a/changelog.d/5758.feature b/changelog.d/5758.feature
deleted file mode 100644
index 512b5c3868..0000000000
--- a/changelog.d/5758.feature
+++ /dev/null
@@ -1 +0,0 @@
-Live Location Sharing - Update beacon info state event when sharing is ended
\ No newline at end of file
diff --git a/changelog.d/5762.sdk b/changelog.d/5762.sdk
deleted file mode 100644
index 0bb89d4f2f..0000000000
--- a/changelog.d/5762.sdk
+++ /dev/null
@@ -1 +0,0 @@
-Some data classes are now immutable, using `val` instead of `var`
\ No newline at end of file
diff --git a/changelog.d/5765.bugfix b/changelog.d/5765.bugfix
deleted file mode 100644
index ccf8c1b2c2..0000000000
--- a/changelog.d/5765.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Fixing setting transfer title in call transfer.
diff --git a/changelog.d/5766.bugfix b/changelog.d/5766.bugfix
deleted file mode 100644
index d3290decab..0000000000
--- a/changelog.d/5766.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Changes destination after joining a space to Explore Space Rooms screen
diff --git a/changelog.d/5767.bugfix b/changelog.d/5767.bugfix
deleted file mode 100644
index 2a34fbf4b3..0000000000
--- a/changelog.d/5767.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Unignoring a user will perform an initial sync
\ No newline at end of file
diff --git a/changelog.d/5825.bugfix b/changelog.d/5825.bugfix
new file mode 100644
index 0000000000..77560027ba
--- /dev/null
+++ b/changelog.d/5825.bugfix
@@ -0,0 +1 @@
+Changed copy and list order in member profile screen.
\ No newline at end of file
diff --git a/changelog.d/5911.feature b/changelog.d/5911.feature
new file mode 100644
index 0000000000..368a3b4056
--- /dev/null
+++ b/changelog.d/5911.feature
@@ -0,0 +1 @@
+Screen sharing over WebRTC
diff --git a/changelog.d/5941.bugfix b/changelog.d/5941.bugfix
new file mode 100644
index 0000000000..0ea17668c6
--- /dev/null
+++ b/changelog.d/5941.bugfix
@@ -0,0 +1 @@
+If animations are disable on the System, chat effects and confetti will be disabled too
diff --git a/changelog.d/5953.misc b/changelog.d/5953.misc
new file mode 100644
index 0000000000..a3ad5dae93
--- /dev/null
+++ b/changelog.d/5953.misc
@@ -0,0 +1 @@
+Reformatted project code
diff --git a/changelog.d/5965.sdk b/changelog.d/5965.sdk
new file mode 100644
index 0000000000..5bb6c3aac4
--- /dev/null
+++ b/changelog.d/5965.sdk
@@ -0,0 +1 @@
+Including SSL/TLS error handing when doing WellKnown lookups without a custom HomeServerConnectionConfig
diff --git a/dependencies.gradle b/dependencies.gradle
index ec27184d5c..6d198e482b 100644
--- a/dependencies.gradle
+++ b/dependencies.gradle
@@ -7,26 +7,26 @@ ext.versions = [
'targetCompat' : JavaVersion.VERSION_11,
]
-def gradle = "7.0.4"
+def gradle = "7.2.0"
// Ref: https://kotlinlang.org/releases.html
def kotlin = "1.6.0"
def kotlinCoroutines = "1.6.0"
-def dagger = "2.40.5"
+def dagger = "2.42"
def retrofit = "2.9.0"
def arrow = "0.8.2"
def markwon = "4.6.2"
def moshi = "1.13.0"
-def lifecycle = "2.4.0"
+def lifecycle = "2.4.1"
def flowBinding = "1.2.0"
def epoxy = "4.6.2"
-def mavericks = "2.5.0"
-def glide = "4.12.0"
+def mavericks = "2.6.1"
+def glide = "4.13.2"
def bigImageViewer = "1.8.1"
-def jjwt = "0.11.2"
-def vanniktechEmoji = "0.8.0"
+def jjwt = "0.11.5"
+def vanniktechEmoji = "0.9.0"
// Testing
-def mockk = "1.12.1"
+def mockk = "1.12.3"
def espresso = "3.4.0"
def androidxTest = "1.4.0"
def androidxOrchestrator = "1.4.1"
@@ -46,12 +46,12 @@ ext.libs = [
],
androidx : [
'activity' : "androidx.activity:activity:1.2.4",
- 'appCompat' : "androidx.appcompat:appcompat:1.4.0",
+ 'appCompat' : "androidx.appcompat:appcompat:1.4.1",
'core' : "androidx.core:core-ktx:1.7.0",
'recyclerview' : "androidx.recyclerview:recyclerview:1.2.1",
'exifinterface' : "androidx.exifinterface:exifinterface:1.3.3",
- 'fragmentKtx' : "androidx.fragment:fragment-ktx:1.4.0",
- 'constraintLayout' : "androidx.constraintlayout:constraintlayout:2.1.2",
+ 'fragmentKtx' : "androidx.fragment:fragment-ktx:1.4.1",
+ 'constraintLayout' : "androidx.constraintlayout:constraintlayout:2.1.3",
'work' : "androidx.work:work-runtime-ktx:2.7.1",
'autoFill' : "androidx.autofill:autofill:1.1.0",
'preferenceKtx' : "androidx.preference:preference-ktx:1.1.1",
@@ -75,7 +75,7 @@ ext.libs = [
'transition' : "androidx.transition:transition:1.2.0",
],
google : [
- 'material' : "com.google.android.material:material:1.5.0"
+ 'material' : "com.google.android.material:material:1.6.0"
],
dagger : [
'dagger' : "com.google.dagger:dagger:$dagger",
diff --git a/dependencies_groups.gradle b/dependencies_groups.gradle
index 2c3f6a0219..8422e05930 100644
--- a/dependencies_groups.gradle
+++ b/dependencies_groups.gradle
@@ -164,6 +164,7 @@ ext.groups = [
'org.codehaus.woodstox',
'org.eclipse.ee4j',
'org.ec4j.core',
+ 'org.freemarker',
'org.glassfish.jaxb',
'org.hamcrest',
'org.jacoco',
diff --git a/docs/pull_request.md b/docs/pull_request.md
index b4dd0bd209..4775f292ee 100644
--- a/docs/pull_request.md
+++ b/docs/pull_request.md
@@ -32,14 +32,15 @@ Also, draft PR should not stay indefinitely in this state. It may be removed if
##### PR Review Assignment
-We use automatic assignment for PR reviews. A PR is automatically routed by GitHub to a team member using the round robin algorithm. The process is the following:
+We use automatic assignment for PR reviews. A PR is automatically routed by GitHub to 2 team members using the round robin algorithm. The process is the following:
-- The PR creator assigns the [element-android](https://github.com/orgs/vector-im/teams/element-android) team as a reviewer. They can skip this process and assign directly a specific member if they think they should take a look at it.
-- GitHub automatically assigns one reviewer. If the chosen reviewer is not available (holiday, etc.), remove them and set again the team, GitHub will select another reviewer.
-- The reviewer gets a notification to make the review: they review the code following the good practice (see the rest of this document).
+- The PR creator can assign specific people if they have another Android developer in their team or they think a specific reviewer should take a look at the PR.
+- If there are missing reviewers, the PR creator assigns the [element-android-reviewers](https://github.com/orgs/vector-im/teams/element-android-reviewers) team as a reviewer.
+- GitHub automatically assigns other reviewers. If one of the chosen reviewers is not available (holiday, etc.), remove them and set again the team, GitHub will select another reviewer.
+- Reviewers get a notification to make the review: they review the code following the good practice (see the rest of this document).
- After making their own review, if they feel not confident enough, they can ask another person for a full review, or they can tag someone within a PR comment to check specific lines.
-For PRs coming from the community, the issue wrangler can assign either the team [element-android](https://github.com/orgs/vector-im/teams/element-android) or any member directly.
+For PRs coming from the community, the issue wrangler can assign either the team [element-android-reviewers](https://github.com/orgs/vector-im/teams/element-android-reviewers) or any members directly.
##### PR review time
diff --git a/docs/ui-tests.md b/docs/ui-tests.md
index 05eb50f525..667a6ed7fb 100644
--- a/docs/ui-tests.md
+++ b/docs/ui-tests.md
@@ -176,4 +176,4 @@ class SettingsAdvancedRobot {
clickOn(R.string.settings_developer_mode_summary)
}
}
-```
\ No newline at end of file
+```
diff --git a/fastlane/metadata/android/cs-CZ/changelogs/40104060.txt b/fastlane/metadata/android/cs-CZ/changelogs/40104060.txt
new file mode 100644
index 0000000000..3eda022464
--- /dev/null
+++ b/fastlane/metadata/android/cs-CZ/changelogs/40104060.txt
@@ -0,0 +1,2 @@
+Hlavní změny v této verzi: Časová osa vláken je nyní živá a rychlejší. Opravy různých chyb a vylepšení stability.
+Úplný seznam změn: https://github.com/vector-im/element-android/releases/tag/v1.4.6
diff --git a/fastlane/metadata/android/cs-CZ/changelogs/40104070.txt b/fastlane/metadata/android/cs-CZ/changelogs/40104070.txt
new file mode 100644
index 0000000000..cba2012c1c
--- /dev/null
+++ b/fastlane/metadata/android/cs-CZ/changelogs/40104070.txt
@@ -0,0 +1,2 @@
+Hlavní změny v této verzi: Opravy různých chyb a vylepšení stability.
+Úplný seznam změn: https://github.com/vector-im/element-android/releases/tag/v1.4.7
diff --git a/fastlane/metadata/android/cs-CZ/changelogs/40104080.txt b/fastlane/metadata/android/cs-CZ/changelogs/40104080.txt
new file mode 100644
index 0000000000..61e7fd7940
--- /dev/null
+++ b/fastlane/metadata/android/cs-CZ/changelogs/40104080.txt
@@ -0,0 +1,2 @@
+Hlavní změny v této verzi: Časová osa vlákna je nyní živá a rychlejší. Opravy různých chyb a vylepšení stability.
+Úplný seznam změn: https://github.com/vector-im/element-android/releases
diff --git a/fastlane/metadata/android/cs-CZ/changelogs/40104100.txt b/fastlane/metadata/android/cs-CZ/changelogs/40104100.txt
new file mode 100644
index 0000000000..46a75b77a7
--- /dev/null
+++ b/fastlane/metadata/android/cs-CZ/changelogs/40104100.txt
@@ -0,0 +1,2 @@
+Hlavní změny v této verzi: Posun přehrávání v hlasových zprávách. Opravy různých chyb a vylepšení stability.
+Úplný seznam změn: https://github.com/vector-im/element-android/releases
diff --git a/fastlane/metadata/android/cs-CZ/changelogs/40104110.txt b/fastlane/metadata/android/cs-CZ/changelogs/40104110.txt
new file mode 100644
index 0000000000..578549ce6c
--- /dev/null
+++ b/fastlane/metadata/android/cs-CZ/changelogs/40104110.txt
@@ -0,0 +1,2 @@
+Hlavní změny v této verzi: Opravy různých chyb a vylepšení stability.
+Úplný seznam změn: https://github.com/vector-im/element-android/releases
diff --git a/fastlane/metadata/android/en-US/changelogs/40104120.txt b/fastlane/metadata/android/en-US/changelogs/40104120.txt
new file mode 100644
index 0000000000..ea188c101c
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/40104120.txt
@@ -0,0 +1,2 @@
+Main changes in this version: Allows users to appear offline and adds an audio player for audio attachments
+Full changelog: https://github.com/vector-im/element-android/releases
diff --git a/fastlane/metadata/android/en-US/changelogs/40104130.txt b/fastlane/metadata/android/en-US/changelogs/40104130.txt
new file mode 100644
index 0000000000..ea188c101c
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/40104130.txt
@@ -0,0 +1,2 @@
+Main changes in this version: Allows users to appear offline and adds an audio player for audio attachments
+Full changelog: https://github.com/vector-im/element-android/releases
diff --git a/fastlane/metadata/android/en-US/changelogs/40104140.txt b/fastlane/metadata/android/en-US/changelogs/40104140.txt
new file mode 100644
index 0000000000..5cbd25f4d3
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/40104140.txt
@@ -0,0 +1,2 @@
+Main changes in this version: Improve management of ignored users. Various bug fixes and stability improvements.
+Full changelog: https://github.com/vector-im/element-android/releases
diff --git a/fastlane/metadata/android/es-ES/changelogs/40103030.txt b/fastlane/metadata/android/es-ES/changelogs/40103030.txt
new file mode 100644
index 0000000000..36f59a2308
--- /dev/null
+++ b/fastlane/metadata/android/es-ES/changelogs/40103030.txt
@@ -0,0 +1,2 @@
+Cambios principales en esta versión: Hacer la política de servidores de indentidad visible en los ajusted. Temporalmente quitar soporte para Android Auto.
+Registro de cambios: https://github.com/vector-im/element-android/releases/tag/v1.3.3
diff --git a/fastlane/metadata/android/es-ES/changelogs/40104110.txt b/fastlane/metadata/android/es-ES/changelogs/40104110.txt
new file mode 100644
index 0000000000..281df19388
--- /dev/null
+++ b/fastlane/metadata/android/es-ES/changelogs/40104110.txt
@@ -0,0 +1,2 @@
+Cambios principales en esta versión: Varias correciones de bugs y mejoras en la estabilidad
+Registro de cambios: https://github.com/vector-im/element-android/releases
diff --git a/fastlane/metadata/android/es-ES/full_description.txt b/fastlane/metadata/android/es-ES/full_description.txt
index fdba15e90e..0e484158d9 100644
--- a/fastlane/metadata/android/es-ES/full_description.txt
+++ b/fastlane/metadata/android/es-ES/full_description.txt
@@ -37,3 +37,6 @@ Mensajería, llamadas de voz y video, uso compartido de archivos, uso compartido
Continúa donde lo dejaste
Manténgase en contacto donde quiera que esté con el historial de mensajes totalmente sincronizado en todos sus dispositivos y en la web en https://app.element.io
+
+Código abierto
+Element Android es un proyecto de código abierto, alojado en GitHub. Porfavor, reporta bugs y problemas en esta dirección: https://github.com/vector-im/element-android
diff --git a/fastlane/metadata/android/et/changelogs/40104060.txt b/fastlane/metadata/android/et/changelogs/40104060.txt
new file mode 100644
index 0000000000..f506b617ed
--- /dev/null
+++ b/fastlane/metadata/android/et/changelogs/40104060.txt
@@ -0,0 +1,2 @@
+Põhilised muutused selles versioonis: jutulõngad on nüüd kasutatavad ja toimivad kiiremini, lisaks pisiparandused ja stabiilsust parandavad kohendused.
+Kogu ingliskeelne muudatuste logi: https://github.com/vector-im/element-android/releases/tag/v1.4.6
diff --git a/fastlane/metadata/android/et/changelogs/40104070.txt b/fastlane/metadata/android/et/changelogs/40104070.txt
new file mode 100644
index 0000000000..ea3582678d
--- /dev/null
+++ b/fastlane/metadata/android/et/changelogs/40104070.txt
@@ -0,0 +1,2 @@
+Põhilised muutused selles versioonis: pisiparandused ja stabiilsust parandavad kohendused.
+Kogu ingliskeelne muudatuste logi: https://github.com/vector-im/element-android/releases/tag/v1.4.7
diff --git a/fastlane/metadata/android/et/changelogs/40104080.txt b/fastlane/metadata/android/et/changelogs/40104080.txt
new file mode 100644
index 0000000000..a35fded9b6
--- /dev/null
+++ b/fastlane/metadata/android/et/changelogs/40104080.txt
@@ -0,0 +1,2 @@
+Põhilised muutused selles versioonis: jutulõngad on nüüd kasutatavad ja toimivad kiiremini, lisaks pisiparandused ja stabiilsust parandavad kohendused.
+Kogu ingliskeelne muudatuste logi: https://github.com/vector-im/element-android/releases
diff --git a/fastlane/metadata/android/et/changelogs/40104100.txt b/fastlane/metadata/android/et/changelogs/40104100.txt
new file mode 100644
index 0000000000..b164935ba4
--- /dev/null
+++ b/fastlane/metadata/android/et/changelogs/40104100.txt
@@ -0,0 +1,2 @@
+Põhilised muutused selles versioonis: kerimine häälsõnumites ning erinevate vigade parandused ja stabiilsust edendavad kohendused.
+Kogu ingliskeelne muudatuste logi: https://github.com/vector-im/element-android/releases
diff --git a/fastlane/metadata/android/et/changelogs/40104110.txt b/fastlane/metadata/android/et/changelogs/40104110.txt
new file mode 100644
index 0000000000..1df5ac4176
--- /dev/null
+++ b/fastlane/metadata/android/et/changelogs/40104110.txt
@@ -0,0 +1,2 @@
+Põhilised muutused selles versioonis: erinevate vigade parandused ja stabiilsust edendavad kohendused.
+Kogu ingliskeelne muudatuste logi: https://github.com/vector-im/element-android/releases
diff --git a/fastlane/metadata/android/fa/changelogs/40104060.txt b/fastlane/metadata/android/fa/changelogs/40104060.txt
new file mode 100644
index 0000000000..5a1188b370
--- /dev/null
+++ b/fastlane/metadata/android/fa/changelogs/40104060.txt
@@ -0,0 +1,2 @@
+تغییرات عمده در این نگارش: خط زمانی رشتهها اکنون زنده و سریعتر است. چندین رفع اشکال و بهبود پایداری.
+گزارش دگرگونی کامل: https://github.com/vector-im/element-android/releases/tag/v1.4.6
diff --git a/fastlane/metadata/android/fa/changelogs/40104070.txt b/fastlane/metadata/android/fa/changelogs/40104070.txt
new file mode 100644
index 0000000000..d35ded337b
--- /dev/null
+++ b/fastlane/metadata/android/fa/changelogs/40104070.txt
@@ -0,0 +1,2 @@
+تغییرات عمده در این نگارش: چندین رفع اشکال و بهبود پایداری.
+گزارش دگرگونی کامل: https://github.com/vector-im/element-android/releases/tag/v1.4.7
diff --git a/fastlane/metadata/android/fa/changelogs/40104080.txt b/fastlane/metadata/android/fa/changelogs/40104080.txt
new file mode 100644
index 0000000000..673a46a10d
--- /dev/null
+++ b/fastlane/metadata/android/fa/changelogs/40104080.txt
@@ -0,0 +1,2 @@
+تغییرات عمده در این نگارش: خط زمانی رشتهها اکنون زنده و سریعتر است. چندین رفع اشکال و بهبود پایداری.
+گزارش دگرگونی کامل: https://github.com/vector-im/element-android/releases
diff --git a/fastlane/metadata/android/fa/changelogs/40104100.txt b/fastlane/metadata/android/fa/changelogs/40104100.txt
new file mode 100644
index 0000000000..e7cdca6641
--- /dev/null
+++ b/fastlane/metadata/android/fa/changelogs/40104100.txt
@@ -0,0 +1,2 @@
+تغییرات عمده در این نگارش: لغزش در پیامهای صوتی. رفع اشکالهای مختلف و بهبودهای امنیتی.
+گزارش دگرگونی کامل: https://github.com/vector-im/element-android/releases
diff --git a/fastlane/metadata/android/fa/changelogs/40104110.txt b/fastlane/metadata/android/fa/changelogs/40104110.txt
new file mode 100644
index 0000000000..29efb95925
--- /dev/null
+++ b/fastlane/metadata/android/fa/changelogs/40104110.txt
@@ -0,0 +1,2 @@
+تغییرات عمده در این نگارش: رفع اشکالهای مختلف و بهبودهای پایداری.
+گزارش دگرگونی کامل: https://github.com/vector-im/element-android/releases
diff --git a/fastlane/metadata/android/fr-FR/changelogs/40104040.txt b/fastlane/metadata/android/fr-FR/changelogs/40104040.txt
new file mode 100644
index 0000000000..af2d7bb086
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/40104040.txt
@@ -0,0 +1,2 @@
+Principaux changements pour cette version : Mise-à-jour de l’interface de notification de rédaction en cours. Plusieurs corrections de bogues et d’améliorations de stabilité.
+Intégralité des changements : https://github.com/vector-im/element-android/releases/tag/v1.4.4
diff --git a/fastlane/metadata/android/fr-FR/changelogs/40104060.txt b/fastlane/metadata/android/fr-FR/changelogs/40104060.txt
new file mode 100644
index 0000000000..24e0fde3f3
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/40104060.txt
@@ -0,0 +1,2 @@
+Principaux changements pour cette version : Les fils de discussion sont officiellement disponibles, et plus rapides. Plusieurs corrections de bogues et d’améliorations de stabilité.
+Intégralité des changements : https://github.com/vector-im/element-android/releases/tag/v1.4.6
diff --git a/fastlane/metadata/android/fr-FR/changelogs/40104070.txt b/fastlane/metadata/android/fr-FR/changelogs/40104070.txt
new file mode 100644
index 0000000000..3f9879d917
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/40104070.txt
@@ -0,0 +1,2 @@
+Principaux changements pour cette version : Plusieurs corrections de bogues et d’améliorations de stabilité.
+Intégralité des changements : https://github.com/vector-im/element-android/releases/tag/v1.4.7
diff --git a/fastlane/metadata/android/fr-FR/changelogs/40104080.txt b/fastlane/metadata/android/fr-FR/changelogs/40104080.txt
new file mode 100644
index 0000000000..84f92c18e2
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/40104080.txt
@@ -0,0 +1,2 @@
+Principaux changements pour cette version : Les fils de discussion sont officiellement disponibles, et plus rapides. Plusieurs corrections de bogues et d’améliorations de stabilité.
+Intégralité des changements : https://github.com/vector-im/element-android/releases
diff --git a/fastlane/metadata/android/hu-HU/changelogs/40104040.txt b/fastlane/metadata/android/hu-HU/changelogs/40104040.txt
new file mode 100644
index 0000000000..60ec5256aa
--- /dev/null
+++ b/fastlane/metadata/android/hu-HU/changelogs/40104040.txt
@@ -0,0 +1,2 @@
+Fő változás ebben a verzióban: Gépelés visszajelzési frissítések a felületen. További hibajavítások egy stabilitást növelő fejlesztések.
+Teljes változásnapló: https://github.com/vector-im/element-android/releases/tag/v1.4.4
diff --git a/fastlane/metadata/android/hu-HU/changelogs/40104060.txt b/fastlane/metadata/android/hu-HU/changelogs/40104060.txt
new file mode 100644
index 0000000000..a3f4b89d92
--- /dev/null
+++ b/fastlane/metadata/android/hu-HU/changelogs/40104060.txt
@@ -0,0 +1,2 @@
+Fő változás ebben a verzióban: Megjelentek az üzenetszálak az idővonalon és gyorsak. További hibajavítások és stabilitási fejlesztések.
+Teljes változásnapló: https://github.com/vector-im/element-android/releases/tag/v1.4.6
diff --git a/fastlane/metadata/android/hu-HU/changelogs/40104070.txt b/fastlane/metadata/android/hu-HU/changelogs/40104070.txt
new file mode 100644
index 0000000000..0f969fb577
--- /dev/null
+++ b/fastlane/metadata/android/hu-HU/changelogs/40104070.txt
@@ -0,0 +1,2 @@
+Fő változás ebben a verzióban: Hibajavítások és stabilizációs fejlesztések.
+Teljes változásnapló: https://github.com/vector-im/element-android/releases/tag/v1.4.7
diff --git a/fastlane/metadata/android/hu-HU/changelogs/40104080.txt b/fastlane/metadata/android/hu-HU/changelogs/40104080.txt
new file mode 100644
index 0000000000..c29b20c216
--- /dev/null
+++ b/fastlane/metadata/android/hu-HU/changelogs/40104080.txt
@@ -0,0 +1,2 @@
+Fő változás ebben a verzióban: Megjelentek az üzenetszálak az idővonalon és gyorsak. További hibajavítások és stabilitási fejlesztések.
+Teljes változásnapló: https://github.com/vector-im/element-android/releases
diff --git a/fastlane/metadata/android/id/changelogs/40104060.txt b/fastlane/metadata/android/id/changelogs/40104060.txt
new file mode 100644
index 0000000000..3b4ce82497
--- /dev/null
+++ b/fastlane/metadata/android/id/changelogs/40104060.txt
@@ -0,0 +1,2 @@
+Perubahan utama dalam versi ini: Linimasa utasan sekarang langsung dan lebih cepat. Banyak perbaikan kutu dan perbaikan stabilitas.
+Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.4.6
diff --git a/fastlane/metadata/android/id/changelogs/40104070.txt b/fastlane/metadata/android/id/changelogs/40104070.txt
new file mode 100644
index 0000000000..39daf31eb6
--- /dev/null
+++ b/fastlane/metadata/android/id/changelogs/40104070.txt
@@ -0,0 +1,2 @@
+Perubahan utama dalam versi ini: Banyak perbaikan kutu dan perbaikan stabilitas.
+Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.4.7
diff --git a/fastlane/metadata/android/id/changelogs/40104080.txt b/fastlane/metadata/android/id/changelogs/40104080.txt
new file mode 100644
index 0000000000..0a5ae82096
--- /dev/null
+++ b/fastlane/metadata/android/id/changelogs/40104080.txt
@@ -0,0 +1,2 @@
+Perubahan utama dalam versi ini: Linimasa utasan sekarang langsung dan lebih cepat. Banyak perbaikan kutu dan perbaikan stabilitas.
+Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases
diff --git a/fastlane/metadata/android/id/changelogs/40104100.txt b/fastlane/metadata/android/id/changelogs/40104100.txt
new file mode 100644
index 0000000000..3cda40aecc
--- /dev/null
+++ b/fastlane/metadata/android/id/changelogs/40104100.txt
@@ -0,0 +1,2 @@
+Perubahan utama dalam versi ini: Gulir di pesan suara. Banyak perbaikan kutu dan perbaikan stabilitas.
+Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases
diff --git a/fastlane/metadata/android/id/changelogs/40104110.txt b/fastlane/metadata/android/id/changelogs/40104110.txt
new file mode 100644
index 0000000000..1017951d47
--- /dev/null
+++ b/fastlane/metadata/android/id/changelogs/40104110.txt
@@ -0,0 +1,2 @@
+Perubahan utama dalam versi ini: Banyak perbaikan kutu dan perbaikan stabilitas.
+Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases
diff --git a/fastlane/metadata/android/it-IT/changelogs/40104060.txt b/fastlane/metadata/android/it-IT/changelogs/40104060.txt
new file mode 100644
index 0000000000..c9ea8af2cc
--- /dev/null
+++ b/fastlane/metadata/android/it-IT/changelogs/40104060.txt
@@ -0,0 +1,2 @@
+Modifiche principali in questa versione: la linea temporale per argomenti è ora attiva e più veloce. Varie correzioni e miglioramenti.
+Cronologia completa: https://github.com/vector-im/element-android/releases/tag/v1.4.6
diff --git a/fastlane/metadata/android/it-IT/changelogs/40104070.txt b/fastlane/metadata/android/it-IT/changelogs/40104070.txt
new file mode 100644
index 0000000000..2dfd415920
--- /dev/null
+++ b/fastlane/metadata/android/it-IT/changelogs/40104070.txt
@@ -0,0 +1,2 @@
+Modifiche principali in questa versione: varie correzioni di errori e miglioramenti della stabilità.
+Cronologia completa: https://github.com/vector-im/element-android/releases/tag/v1.4.7
diff --git a/fastlane/metadata/android/it-IT/changelogs/40104080.txt b/fastlane/metadata/android/it-IT/changelogs/40104080.txt
new file mode 100644
index 0000000000..8427e3d3fe
--- /dev/null
+++ b/fastlane/metadata/android/it-IT/changelogs/40104080.txt
@@ -0,0 +1,2 @@
+Modifiche principali in questa versione: la linea temporale per argomenti è ora attiva e più veloce. Varie correzioni e miglioramenti.
+Cronologia completa: https://github.com/vector-im/element-android/releases
diff --git a/fastlane/metadata/android/it-IT/changelogs/40104100.txt b/fastlane/metadata/android/it-IT/changelogs/40104100.txt
new file mode 100644
index 0000000000..6376e6c45a
--- /dev/null
+++ b/fastlane/metadata/android/it-IT/changelogs/40104100.txt
@@ -0,0 +1,2 @@
+Modifiche principali in questa versione: scorrimento nei vocali. Varie correzioni e miglioramenti della stabilità.
+Cronologia completa: https://github.com/vector-im/element-android/releases
diff --git a/fastlane/metadata/android/it-IT/changelogs/40104110.txt b/fastlane/metadata/android/it-IT/changelogs/40104110.txt
new file mode 100644
index 0000000000..556a6fc7ea
--- /dev/null
+++ b/fastlane/metadata/android/it-IT/changelogs/40104110.txt
@@ -0,0 +1,2 @@
+Modifiche principali in questa versione: varie correzioni di errori e miglioramenti della stabilità.
+Cronologia completa: https://github.com/vector-im/element-android/releases
diff --git a/fastlane/metadata/android/lo/changelogs/40100100.txt b/fastlane/metadata/android/lo/changelogs/40100100.txt
new file mode 100644
index 0000000000..fe0ee08327
--- /dev/null
+++ b/fastlane/metadata/android/lo/changelogs/40100100.txt
@@ -0,0 +1,2 @@
+ສະບັບໃຫມ່ນີ້ສ່ວນໃຫຍ່ແມ່ນມີການແກ້ໄຂແລະການປັບປຸງ bug. ຕອນນີ້ການສົ່ງຂໍ້ຄວາມແມ່ນໄວຂຶ້ນຫຼາຍ.
+ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.0.10
diff --git a/fastlane/metadata/android/lo/changelogs/40100110.txt b/fastlane/metadata/android/lo/changelogs/40100110.txt
new file mode 100644
index 0000000000..69139783ad
--- /dev/null
+++ b/fastlane/metadata/android/lo/changelogs/40100110.txt
@@ -0,0 +1,2 @@
+ຮຸ່ນໃຫມ່ນີ້ສ່ວນໃຫຍ່ແມ່ນປະກອບດ້ວຍໜ້າຕາແອັບແລະການປັບປຸງປະສົບການຂອງຜູ້ໃຊ້. ດຽວນີ້ທ່ານສາມາດເຊີນໝູ່, ແລະສ້າງການສົນທະນາກົງໄດ້ໄວຂຶ້ນໂດຍການສະແກນລະຫັດ QR.
+ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.0.11
diff --git a/fastlane/metadata/android/lo/changelogs/40100120.txt b/fastlane/metadata/android/lo/changelogs/40100120.txt
new file mode 100644
index 0000000000..256cd1a437
--- /dev/null
+++ b/fastlane/metadata/android/lo/changelogs/40100120.txt
@@ -0,0 +1,2 @@
+ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ຕົວຢ່າງ URL, ແປ້ນພິມ Emoji ໃໝ່, ຄວາມສາມາດໃນການຕັ້ງຄ່າຫ້ອງໃໝ່, ແລະຫິມະສຳລັບວັນຄຣິດສະມາດ!
+ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.0.12
diff --git a/fastlane/metadata/android/lo/changelogs/40100130.txt b/fastlane/metadata/android/lo/changelogs/40100130.txt
new file mode 100644
index 0000000000..c4878ea5f6
--- /dev/null
+++ b/fastlane/metadata/android/lo/changelogs/40100130.txt
@@ -0,0 +1,2 @@
+ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ຕົວຢ່າງ URL, ແປ້ນພິມ Emoji ໃໝ່, ຄວາມສາມາດໃນການຕັ້ງຄ່າຫ້ອງໃໝ່, ແລະຫິມະສຳລັບວັນຄຣິດສະມາດ!
+ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.0.13
diff --git a/fastlane/metadata/android/lo/changelogs/40100140.txt b/fastlane/metadata/android/lo/changelogs/40100140.txt
new file mode 100644
index 0000000000..591b9b94b3
--- /dev/null
+++ b/fastlane/metadata/android/lo/changelogs/40100140.txt
@@ -0,0 +1,2 @@
+ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ແກ້ໄຂການອະນຸຍາດຫ້ອງ, ຮູບແບບ ແຈ້ງ / ມືດອັດຕະໂນມັດ, ແລະການແກ້ໄຂບັນຫາຈຳນວນໜຶ່ງ.
+ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.0.14
diff --git a/fastlane/metadata/android/lo/changelogs/40100150.txt b/fastlane/metadata/android/lo/changelogs/40100150.txt
new file mode 100644
index 0000000000..98577742c7
--- /dev/null
+++ b/fastlane/metadata/android/lo/changelogs/40100150.txt
@@ -0,0 +1,2 @@
+ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ຮັບຮອງການເຂົ້າລະບົບດ້ວຍສື່ສັງຄົມອອນລາຍ.
+ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.0.15
diff --git a/fastlane/metadata/android/lo/changelogs/40100160.txt b/fastlane/metadata/android/lo/changelogs/40100160.txt
new file mode 100644
index 0000000000..c369fc88d3
--- /dev/null
+++ b/fastlane/metadata/android/lo/changelogs/40100160.txt
@@ -0,0 +1,2 @@
+ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ຮັບຮອງການເຂົ້າລະບົບດ້ວຍສື່ສັງຄົມອອນລາຍ.
+ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.0.15 and https://github.com/vector-im/element-android/releases/tag/v1.0.16
diff --git a/fastlane/metadata/android/lo/changelogs/40100170.txt b/fastlane/metadata/android/lo/changelogs/40100170.txt
new file mode 100644
index 0000000000..776e1b6082
--- /dev/null
+++ b/fastlane/metadata/android/lo/changelogs/40100170.txt
@@ -0,0 +1,2 @@
+ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ແກ້ໄຂຂໍ້ຜິດພາດ!
+ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.0.17
diff --git a/fastlane/metadata/android/lo/changelogs/40101000.txt b/fastlane/metadata/android/lo/changelogs/40101000.txt
new file mode 100644
index 0000000000..f7d621404a
--- /dev/null
+++ b/fastlane/metadata/android/lo/changelogs/40101000.txt
@@ -0,0 +1,2 @@
+ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ປັບປຸງປະສິດທິພາບຂອງ VoIP (ໂທສຽງ ແລະໂທວີດີໂອໃນການສົນທະນາກົງ) ແລະແກ້ໄຂຂໍ້ຜິດພາດ!
+ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.1.0
diff --git a/fastlane/metadata/android/lo/changelogs/40101010.txt b/fastlane/metadata/android/lo/changelogs/40101010.txt
new file mode 100644
index 0000000000..e2e1778b7a
--- /dev/null
+++ b/fastlane/metadata/android/lo/changelogs/40101010.txt
@@ -0,0 +1,2 @@
+ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ປັບປຸງປະສິດທິພາບ ແລະແກ້ໄຂຂໍ້ຜິດພາດ!
+ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.1.1
diff --git a/fastlane/metadata/android/lo/changelogs/40101020.txt b/fastlane/metadata/android/lo/changelogs/40101020.txt
new file mode 100644
index 0000000000..581db95e90
--- /dev/null
+++ b/fastlane/metadata/android/lo/changelogs/40101020.txt
@@ -0,0 +1,2 @@
+ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ປັບປຸງປະສິດທິພາບ ແລະແກ້ໄຂຂໍ້ຜິດພາດ!
+ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.1.2
diff --git a/fastlane/metadata/android/lo/changelogs/40101030.txt b/fastlane/metadata/android/lo/changelogs/40101030.txt
new file mode 100644
index 0000000000..46d861995f
--- /dev/null
+++ b/fastlane/metadata/android/lo/changelogs/40101030.txt
@@ -0,0 +1,2 @@
+ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ປັບປຸງປະສິດທິພາບ ແລະແກ້ໄຂຂໍ້ຜິດພາດ!
+ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.1.3
diff --git a/fastlane/metadata/android/lo/changelogs/40101040.txt b/fastlane/metadata/android/lo/changelogs/40101040.txt
new file mode 100644
index 0000000000..8ea7cac4f4
--- /dev/null
+++ b/fastlane/metadata/android/lo/changelogs/40101040.txt
@@ -0,0 +1,2 @@
+ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ປັບປຸງປະສິດທິພາບ ແລະແກ້ໄຂຂໍ້ຜິດພາດ!
+ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.1.4
diff --git a/fastlane/metadata/android/lo/changelogs/40101050.txt b/fastlane/metadata/android/lo/changelogs/40101050.txt
new file mode 100644
index 0000000000..2823c04b06
--- /dev/null
+++ b/fastlane/metadata/android/lo/changelogs/40101050.txt
@@ -0,0 +1,2 @@
+ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ການແກ້ບັນຫາດ່ວນສໍາລັບ 1.1.4
+ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.1.5
diff --git a/fastlane/metadata/android/lo/changelogs/40101060.txt b/fastlane/metadata/android/lo/changelogs/40101060.txt
new file mode 100644
index 0000000000..0cdea9e2c7
--- /dev/null
+++ b/fastlane/metadata/android/lo/changelogs/40101060.txt
@@ -0,0 +1,2 @@
+ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ການແກ້ບັນຫາດ່ວນສໍາລັບ 1.1.5
+ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.1.6
diff --git a/fastlane/metadata/android/lo/changelogs/40101070.txt b/fastlane/metadata/android/lo/changelogs/40101070.txt
new file mode 100644
index 0000000000..08926229f9
--- /dev/null
+++ b/fastlane/metadata/android/lo/changelogs/40101070.txt
@@ -0,0 +1,2 @@
+ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ຮອງຮັບເບຕ້າສຳລັບ Spaces. ບີບອັດວິດີໂອກ່ອນທີ່ຈະສົ່ງ.
+ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.1.7
diff --git a/fastlane/metadata/android/lo/changelogs/40101080.txt b/fastlane/metadata/android/lo/changelogs/40101080.txt
new file mode 100644
index 0000000000..f2947aae63
--- /dev/null
+++ b/fastlane/metadata/android/lo/changelogs/40101080.txt
@@ -0,0 +1,2 @@
+ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ການປັບປຸງສໍາລັບ Spaces.
+ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.1.8
diff --git a/fastlane/metadata/android/lo/changelogs/40101090.txt b/fastlane/metadata/android/lo/changelogs/40101090.txt
new file mode 100644
index 0000000000..129f86c562
--- /dev/null
+++ b/fastlane/metadata/android/lo/changelogs/40101090.txt
@@ -0,0 +1,2 @@
+ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ເພີ່ມການຮັບຮອງສໍາລັບເຄືອຂ່າຍ gitter.im.
+ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.1.9
diff --git a/fastlane/metadata/android/lo/changelogs/40101100.txt b/fastlane/metadata/android/lo/changelogs/40101100.txt
new file mode 100644
index 0000000000..337137d3bc
--- /dev/null
+++ b/fastlane/metadata/android/lo/changelogs/40101100.txt
@@ -0,0 +1,2 @@
+ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ອັບເດດຮູບແບບສີສັນ ແລະຮູບແບບສີສັນ ແລະຄຸນສົມບັດໃໝ່ສຳລັບຊ່ອງຫວ່າງ.
+ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.1.10
diff --git a/fastlane/metadata/android/lo/changelogs/40101110.txt b/fastlane/metadata/android/lo/changelogs/40101110.txt
new file mode 100644
index 0000000000..f95972eaa9
--- /dev/null
+++ b/fastlane/metadata/android/lo/changelogs/40101110.txt
@@ -0,0 +1,2 @@
+ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ອັບເດດຮູບແບບສີສັນ ແລະຮູບແບບສີສັນ ແລະຄຸນສົມບັດໃໝ່ສຳລັບຊ່ອງຫວ່າງ (bugfix ສຳລັບ 1.1.10)
+ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.1.11
diff --git a/fastlane/metadata/android/lo/changelogs/40101120.txt b/fastlane/metadata/android/lo/changelogs/40101120.txt
new file mode 100644
index 0000000000..a613e176aa
--- /dev/null
+++ b/fastlane/metadata/android/lo/changelogs/40101120.txt
@@ -0,0 +1,2 @@
+ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ອັບເດດຮູບແບບສີສັນ ແລະຮູບແບບ ແລະແກ້ໄຂການຂັດຂ້ອງຫຼັງຈາກການໂທວິດີໂອ
+ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.1.12
diff --git a/fastlane/metadata/android/lo/changelogs/40101130.txt b/fastlane/metadata/android/lo/changelogs/40101130.txt
new file mode 100644
index 0000000000..3cc85bc6f8
--- /dev/null
+++ b/fastlane/metadata/android/lo/changelogs/40101130.txt
@@ -0,0 +1,2 @@
+ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ແກ້ໄຂບັນຫາກ່ຽວຄວາມສະຖຽນ.
+ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.1.13
diff --git a/fastlane/metadata/android/lo/changelogs/40101140.txt b/fastlane/metadata/android/lo/changelogs/40101140.txt
new file mode 100644
index 0000000000..11a5df1059
--- /dev/null
+++ b/fastlane/metadata/android/lo/changelogs/40101140.txt
@@ -0,0 +1,2 @@
+ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ແກ້ໄຂບັນຫາກ່ຽວກັບຂໍ້ຄວາມທີ່ຖືກເຂົ້າລະຫັດ.
+ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.1.14
diff --git a/fastlane/metadata/android/lo/changelogs/40101150.txt b/fastlane/metadata/android/lo/changelogs/40101150.txt
new file mode 100644
index 0000000000..8751496a49
--- /dev/null
+++ b/fastlane/metadata/android/lo/changelogs/40101150.txt
@@ -0,0 +1,2 @@
+ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ການປະຕິບັດຂໍ້ຄວາມສຽງພາຍໃຕ້ການຕັ້ງຄ່າຫ້ອງທົດລອງ.
+ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.1.15
diff --git a/fastlane/metadata/android/lo/changelogs/40101160.txt b/fastlane/metadata/android/lo/changelogs/40101160.txt
new file mode 100644
index 0000000000..c102140102
--- /dev/null
+++ b/fastlane/metadata/android/lo/changelogs/40101160.txt
@@ -0,0 +1,2 @@
+ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ແກ້ໄຂຂໍ້ຜິດພາດໃນເວລາສົ່ງຂໍ້ຄວາມເຂົ້າລະຫັດຖ້າມີຄົນຢູ່ໃນຫ້ອງອອກຈາກລະບົບ.
+ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.1.16
diff --git a/fastlane/metadata/android/lo/changelogs/40102000.txt b/fastlane/metadata/android/lo/changelogs/40102000.txt
new file mode 100644
index 0000000000..69f1667b93
--- /dev/null
+++ b/fastlane/metadata/android/lo/changelogs/40102000.txt
@@ -0,0 +1,2 @@
+ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ການສົນທະນາດ້ວຍສຽງເປີດໄວ້ໂດຍມາດຕະຖານ.
+ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.2.0
diff --git a/fastlane/metadata/android/lo/changelogs/40102010.txt b/fastlane/metadata/android/lo/changelogs/40102010.txt
new file mode 100644
index 0000000000..237b48ba3b
--- /dev/null
+++ b/fastlane/metadata/android/lo/changelogs/40102010.txt
@@ -0,0 +1,2 @@
+ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ການປັບປຸງຫຼາຍຢ່າງກ່ຽວກັບ VoIP ແລະ Spaces (ຍັງຢູ່ໃນເບຕ້າ).
+ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.2.1
diff --git a/fastlane/metadata/android/lo/changelogs/40103000.txt b/fastlane/metadata/android/lo/changelogs/40103000.txt
new file mode 100644
index 0000000000..8e386df4a7
--- /dev/null
+++ b/fastlane/metadata/android/lo/changelogs/40103000.txt
@@ -0,0 +1,2 @@
+ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ຈັດລະບຽບຫ້ອງຂອງທ່ານໂດຍໃຊ້ Spaces!
+ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.3.0
diff --git a/fastlane/metadata/android/lo/changelogs/40103010.txt b/fastlane/metadata/android/lo/changelogs/40103010.txt
new file mode 100644
index 0000000000..0a6a6461fd
--- /dev/null
+++ b/fastlane/metadata/android/lo/changelogs/40103010.txt
@@ -0,0 +1,2 @@
+ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ຈັດລະບຽບຫ້ອງຂອງທ່ານໂດຍໃຊ້ Spaces! v1.3.1 ກຳລັງແກ້ໄຂບັນແອັບໃຊ້ບໍ່ໄດ້ທີ່ສາມາດເກີດຂຶ້ນໃນ v1.3.0.
+ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.3.1
diff --git a/fastlane/metadata/android/lo/changelogs/40103020.txt b/fastlane/metadata/android/lo/changelogs/40103020.txt
new file mode 100644
index 0000000000..8b9ed12a3a
--- /dev/null
+++ b/fastlane/metadata/android/lo/changelogs/40103020.txt
@@ -0,0 +1,2 @@
+ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ເພີ່ມການຮອງຮັບ Android Auto. ການແກ້ໄຂຍັກຫຼາຍອັນ!
+ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.3.2
diff --git a/fastlane/metadata/android/lo/changelogs/40103030.txt b/fastlane/metadata/android/lo/changelogs/40103030.txt
new file mode 100644
index 0000000000..6374f4fdf5
--- /dev/null
+++ b/fastlane/metadata/android/lo/changelogs/40103030.txt
@@ -0,0 +1,2 @@
+ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ເຮັດໃຫ້ນະໂຍບາຍຂອງເຄື່ອງແມ່ຂ່າຍຢັ້ງຢືນຕົວຕົນ (ຫຼາຍໜ່ວຍ) ໃຫ້ເຫັນຢູ່ໃນການຕັ້ງຄ່າ. ລຶບການຮອງຮັບ Android Auto ອອກຊົ່ວຄາວ.
+ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.3.3
diff --git a/fastlane/metadata/android/lo/changelogs/40103040.txt b/fastlane/metadata/android/lo/changelogs/40103040.txt
new file mode 100644
index 0000000000..896d9190ce
--- /dev/null
+++ b/fastlane/metadata/android/lo/changelogs/40103040.txt
@@ -0,0 +1,2 @@
+ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ເພີ່ມການຮອງຮັບການມີຢູ່, ສໍາລັບຫ້ອງຂໍ້ຄວາມໂດຍກົງ (ໝາຍເຫດ: ການມີຢູ່ຖືກປິດການໃຊ້ງານຢູ່ໃນ matrix.org). ເພີ່ມການຮອງຮັບ Android Auto ອີກຄັ້ງ.
+ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.3.4
diff --git a/fastlane/metadata/android/lo/changelogs/40103050.txt b/fastlane/metadata/android/lo/changelogs/40103050.txt
new file mode 100644
index 0000000000..b76db1a80c
--- /dev/null
+++ b/fastlane/metadata/android/lo/changelogs/40103050.txt
@@ -0,0 +1,2 @@
+ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ເພີ່ມການຮອງຮັບການມີຢູ່, ສໍາລັບຫ້ອງຂໍ້ຄວາມໂດຍກົງ (ໝາຍເຫດ: ການມີຢູ່ຖືກປິດການໃຊ້ງານຢູ່ໃນ matrix.org). ເພີ່ມການຮອງຮັບ Android Auto ອີກຄັ້ງ.
+ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.3.5
diff --git a/fastlane/metadata/android/lo/changelogs/40103060.txt b/fastlane/metadata/android/lo/changelogs/40103060.txt
new file mode 100644
index 0000000000..2e97183a56
--- /dev/null
+++ b/fastlane/metadata/android/lo/changelogs/40103060.txt
@@ -0,0 +1,2 @@
+ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ເພີ່ມການຮອງຮັບການມີຢູ່, ສໍາລັບຫ້ອງຂໍ້ຄວາມໂດຍກົງ (ໝາຍເຫດ: ການມີຢູ່ຖືກປິດການໃຊ້ງານຢູ່ໃນ matrix.org). ເພີ່ມການຮອງຮັບ Android Auto ອີກຄັ້ງ.
+ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.3.6
diff --git a/fastlane/metadata/android/lo/changelogs/40103070.txt b/fastlane/metadata/android/lo/changelogs/40103070.txt
new file mode 100644
index 0000000000..47eb6c7b4d
--- /dev/null
+++ b/fastlane/metadata/android/lo/changelogs/40103070.txt
@@ -0,0 +1,2 @@
+ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ແກ້ໄຂບັກສ່ວນໃຫຍ່ກ່ຽວກັບການແຈ້ງເຕືອນ.
+ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.3.7-RC2
diff --git a/fastlane/metadata/android/lo/changelogs/40103080.txt b/fastlane/metadata/android/lo/changelogs/40103080.txt
new file mode 100644
index 0000000000..a12d374d20
--- /dev/null
+++ b/fastlane/metadata/android/lo/changelogs/40103080.txt
@@ -0,0 +1,2 @@
+ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ແກ້ໄຂບັກ!
+ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.3.8
diff --git a/fastlane/metadata/android/lo/changelogs/40103090.txt b/fastlane/metadata/android/lo/changelogs/40103090.txt
new file mode 100644
index 0000000000..ee93ca0a96
--- /dev/null
+++ b/fastlane/metadata/android/lo/changelogs/40103090.txt
@@ -0,0 +1,2 @@
+ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ເພີ່ມການຮອງຮັບສະບັບຮ່າງການສົນທະນາດ້ວຍສຽງ. ແກ້ໄຂບັກຫຼາຍໆອັນ!
+ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.3.09
diff --git a/fastlane/metadata/android/lo/changelogs/40103100.txt b/fastlane/metadata/android/lo/changelogs/40103100.txt
new file mode 100644
index 0000000000..b8b65387ef
--- /dev/null
+++ b/fastlane/metadata/android/lo/changelogs/40103100.txt
@@ -0,0 +1,2 @@
+ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ເພີ່ມການຮອງຮັບແບບສໍາຫຼວດ (ໃນຫ້ອງທົດລອງ). ການອອກແບບຕົວຢ່າງ URL ໃໝ່.
+ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.3.10
diff --git a/fastlane/metadata/android/lo/changelogs/40103110.txt b/fastlane/metadata/android/lo/changelogs/40103110.txt
new file mode 100644
index 0000000000..f64ee3b469
--- /dev/null
+++ b/fastlane/metadata/android/lo/changelogs/40103110.txt
@@ -0,0 +1,2 @@
+ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ແກ້ໄຂບັກ!
+ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.3.11
diff --git a/fastlane/metadata/android/lo/changelogs/40103120.txt b/fastlane/metadata/android/lo/changelogs/40103120.txt
new file mode 100644
index 0000000000..a7b8412cfb
--- /dev/null
+++ b/fastlane/metadata/android/lo/changelogs/40103120.txt
@@ -0,0 +1,2 @@
+ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ແກ້ໄຂບັກ!.
+ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.3.12
diff --git a/fastlane/metadata/android/lo/changelogs/40103130.txt b/fastlane/metadata/android/lo/changelogs/40103130.txt
new file mode 100644
index 0000000000..cb725ee68c
--- /dev/null
+++ b/fastlane/metadata/android/lo/changelogs/40103130.txt
@@ -0,0 +1,2 @@
+ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ການປ່ຽນແປງຄັ້ງທໍາອິດໃນຫນ້າຈໍເລີ່ມຕົ້ນ, ລວມທັງການວິເຄາະເລືອກເຂົ້າຮ່ວມ. ຮອງຮັບເຫດການທີ່ມີຄະນິດສາດເພີ່ມຢູ່ໃນຫ້ອງທົດລອງ.
+ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.3.13
diff --git a/fastlane/metadata/android/lo/changelogs/40103140.txt b/fastlane/metadata/android/lo/changelogs/40103140.txt
new file mode 100644
index 0000000000..1f72757cf1
--- /dev/null
+++ b/fastlane/metadata/android/lo/changelogs/40103140.txt
@@ -0,0 +1,2 @@
+ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ການປ່ຽນແປງຄັ້ງທໍາອິດໃນຫນ້າຈໍເລີ່ມຕົ້ນ, ລວມທັງການວິເຄາະເລືອກເຂົ້າຮ່ວມ. ຮອງຮັບເຫດການທີ່ມີຄະນິດສາດເພີ່ມຢູ່ໃນຫ້ອງທົດລອງ.
+ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.3.14
diff --git a/fastlane/metadata/android/lo/changelogs/40103150.txt b/fastlane/metadata/android/lo/changelogs/40103150.txt
new file mode 100644
index 0000000000..c11acd15d6
--- /dev/null
+++ b/fastlane/metadata/android/lo/changelogs/40103150.txt
@@ -0,0 +1,2 @@
+ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ການປ່ຽນແປງຄັ້ງທໍາອິດໃນຫນ້າຈໍເລີ່ມຕົ້ນ, ລວມທັງການວິເຄາະເລືອກເຂົ້າຮ່ວມ. ຮອງຮັບເຫດການທີ່ມີຄະນິດສາດເພີ່ມຢູ່ໃນຫ້ອງທົດລອງ.
+ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.3.15
diff --git a/fastlane/metadata/android/lo/changelogs/40103160.txt b/fastlane/metadata/android/lo/changelogs/40103160.txt
new file mode 100644
index 0000000000..a17f218463
--- /dev/null
+++ b/fastlane/metadata/android/lo/changelogs/40103160.txt
@@ -0,0 +1,2 @@
+ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ສົ່ງສະຖານທີ່ຂອງທ່ານໄປຫາຫ້ອງໃດກໍໄດ້. ແກ້ໄຂແບບສຳຫຼວດ.
+ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.3.16
diff --git a/fastlane/metadata/android/lo/changelogs/40103170.txt b/fastlane/metadata/android/lo/changelogs/40103170.txt
new file mode 100644
index 0000000000..b8337a19cc
--- /dev/null
+++ b/fastlane/metadata/android/lo/changelogs/40103170.txt
@@ -0,0 +1,2 @@
+ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ສົ່ງສະຖານທີ່ຂອງທ່ານໄປຫາຫ້ອງໃດກໍໄດ້. ແກ້ໄຂແບບສຳຫຼວດ.
+ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.3.17
diff --git a/fastlane/metadata/android/lo/changelogs/40103180.txt b/fastlane/metadata/android/lo/changelogs/40103180.txt
new file mode 100644
index 0000000000..e6b65ff812
--- /dev/null
+++ b/fastlane/metadata/android/lo/changelogs/40103180.txt
@@ -0,0 +1,2 @@
+ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ສົ່ງສະຖານທີ່ຂອງທ່ານໄປຫາຫ້ອງໃດກໍໄດ້. ແກ້ໄຂແບບສຳຫຼວດ.
+ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.3.18
diff --git a/fastlane/metadata/android/lo/changelogs/40104000.txt b/fastlane/metadata/android/lo/changelogs/40104000.txt
new file mode 100644
index 0000000000..9d849da5b7
--- /dev/null
+++ b/fastlane/metadata/android/lo/changelogs/40104000.txt
@@ -0,0 +1,2 @@
+ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ການປະຕິບັດເບື້ອງຕົ້ນຂອງຂໍ້ຄວາມແບບກະທູ້. ຂໍ້ຄວາມຮູບແບບປຸມເປົ້າ.
+ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.4.0
diff --git a/fastlane/metadata/android/lo/changelogs/40104020.txt b/fastlane/metadata/android/lo/changelogs/40104020.txt
new file mode 100644
index 0000000000..358ca7fd39
--- /dev/null
+++ b/fastlane/metadata/android/lo/changelogs/40104020.txt
@@ -0,0 +1,2 @@
+ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ເພີ່ມການສະຫນັບສະຫນູນກັບ @room ແລະແບບສໍາຫຼວດທີ່ບໍ່ເປີດເຜີຍໃນບັນດາການປ່ຽນແປງເລັກນ້ອຍອື່ນໆ.
+ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.4.2
diff --git a/fastlane/metadata/android/lo/changelogs/40104040.txt b/fastlane/metadata/android/lo/changelogs/40104040.txt
new file mode 100644
index 0000000000..7bfaf76bf2
--- /dev/null
+++ b/fastlane/metadata/android/lo/changelogs/40104040.txt
@@ -0,0 +1,2 @@
+ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ຕົວສະແດງການພິມ ແລະປັບປັງ IU. ແກ້ໄຂບັກຫຼາຍບ່ອນ ແລະ ປັບປຸງຄວາມສະຖຽນ.
+ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.4.4
diff --git a/fastlane/metadata/android/lo/changelogs/40104060.txt b/fastlane/metadata/android/lo/changelogs/40104060.txt
new file mode 100644
index 0000000000..10ae599698
--- /dev/null
+++ b/fastlane/metadata/android/lo/changelogs/40104060.txt
@@ -0,0 +1,2 @@
+ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ທາມລາຍກະທູ້ ປະຈຸບັນເປັນແບບຖ່າຍທອດສົດ ແລະໄວຂຶ້ນ. ແກ້ໄຂບັກຫຼາຍບ່ອນ ແລະ ປັບປຸງຄວາມສະຖຽນ.
+ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.4.6
diff --git a/fastlane/metadata/android/lo/changelogs/40104070.txt b/fastlane/metadata/android/lo/changelogs/40104070.txt
new file mode 100644
index 0000000000..4ede801350
--- /dev/null
+++ b/fastlane/metadata/android/lo/changelogs/40104070.txt
@@ -0,0 +1,2 @@
+ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ແກ້ໄຂບັກຫຼາຍບ່ອນ ແລະ ປັບປຸງຄວາມສະຖຽນ.
+ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.4.7
diff --git a/fastlane/metadata/android/lo/changelogs/40104080.txt b/fastlane/metadata/android/lo/changelogs/40104080.txt
new file mode 100644
index 0000000000..5d7de22065
--- /dev/null
+++ b/fastlane/metadata/android/lo/changelogs/40104080.txt
@@ -0,0 +1,2 @@
+ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ເລື່ອນໃນຂໍ້ຄວາມສຽງ. ແກ້ໄຂບັກຫຼາຍບ່ອນ ແລະ ປັບປຸງຄວາມສະຖຽນ.
+ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases
diff --git a/fastlane/metadata/android/lo/changelogs/40104100.txt b/fastlane/metadata/android/lo/changelogs/40104100.txt
new file mode 100644
index 0000000000..5d7de22065
--- /dev/null
+++ b/fastlane/metadata/android/lo/changelogs/40104100.txt
@@ -0,0 +1,2 @@
+ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ເລື່ອນໃນຂໍ້ຄວາມສຽງ. ແກ້ໄຂບັກຫຼາຍບ່ອນ ແລະ ປັບປຸງຄວາມສະຖຽນ.
+ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases
diff --git a/fastlane/metadata/android/lo/changelogs/40104110.txt b/fastlane/metadata/android/lo/changelogs/40104110.txt
new file mode 100644
index 0000000000..edc025cb39
--- /dev/null
+++ b/fastlane/metadata/android/lo/changelogs/40104110.txt
@@ -0,0 +1,2 @@
+ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ການແກ້ໄຂ bug ຕ່າງໆແລະການປັບປຸງຄວາມສະຖຽນ.
+ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases
diff --git a/fastlane/metadata/android/lo/full_description.txt b/fastlane/metadata/android/lo/full_description.txt
new file mode 100644
index 0000000000..094c1b57f5
--- /dev/null
+++ b/fastlane/metadata/android/lo/full_description.txt
@@ -0,0 +1,42 @@
+ລະບົບແຊັດນີ້ ມີຄວາມປອດໄພ ແລະເປັນແອັບທີ່ເຮັດຊ່ວຍສົ່ງເສີ່ມການເຮັດວຽກຮ່ວມກັນຢ່າງມີປະສິດທິຜົນໝາະສົມສຳລັບການສົນທະນາກຸ່ມໃນຂະນະທີ່ເຮັດວຽກທາງໄກ. ແອັບສົນທະນານີ້ໃຊ້ການເຂົ້າລະຫັດແບບຕົ້ນທາງຈົນຈົບເພື່ອໃຫ້ການປະຊຸມວິດີໂອທີ່ມີປະສິດທິພາບ, ການແບ່ງປັນໄຟລ໌ ແລະການໂທແບບສຽງ.
+
+ຄຸນສົມບັດຂອງລະບົບລວມມີ:
+- ເຄື່ອງມືການສື່ສານອອນໄລນ໌ແບບລຳ້ໜ້າ
+- ຂໍ້ຄວາມມີການເຂົ້າລະຫັດຢ່າງເຕັມສ່ວນເພື່ອໃຫ້ການສື່ສານຂອງອົງກອນມີຄວາມປອດໄພ, ເຖິງແມ່ນວ່າຈະເຮັດວຽກຈາກທາງໄກ
+- ລະບົບແຊັດແບບແບ່ງກະຈາຍການຄຸ້ມຄອງໂດຍນຳໃຊ້ນະວັດຕະກຳເປີດຂອງລະບົບ Matrix
+- ການແບ່ງປັນໄຟລ໌ຢ່າງປອດໄພກັບຂໍ້ມູນທີ່ເຂົ້າລະຫັດໄວ້ໃນຂະນະທີ່ຈັດການໂຄງການ
+- ວິດີໂອສົນທະນາກັບ Voice over IP ແລະການແບ່ງປັນຫນ້າຈໍ
+- ການເຊື່ອມໂຍງງ່າຍດາຍກັບເຄື່ອງມືການຮ່ວມມືອອນໄລນ໌ຂອງທ່ານ, ເຄື່ອງມືການຄຸ້ມຄອງໂຄງການ, ການບໍລິການ VoIP ແລະຂໍ້ຄວາມອື່ນໆຂອງທີມ
+
+ລະບົບນີ້ແມ່ນແຕກຕ່າງກັນຢ່າງສິ້ນເຊີງຈາກແອັບຯສົ່ງຂໍ້ຄວາມ ແລະແອັບສົ່ງເສີມການຮ່ວມມືອື່ນໆ. ມັນດໍາເນີນການຢູ່ໃນ Matrix, ເຄືອຂ່າຍເປີດສໍາລັບການສົ່ງຂໍ້ຄວາມທີ່ປອດໄພແລະການສື່ສານແບບກະຈາຍການຄຸ້ມຄອງ. ທ່ານສາມາດຕັ້ງສະຖານີດ້ວຍຕົນເອງເພື່ອໃຫ້ຜູ້ໃຊ້ເປັນເຈົ້າຂອງສູງສຸດແລະຄຸ້ມຄອງຂໍ້ມູນແລະຂໍ້ຄວາມຂອງຕົນເອງ.
+
+ຄວາມເປັນສ່ວນຕົວ ແລະຂໍ້ຄວາມເຂົ້າລະຫັດ
+ລະບົບຈະປົກປ້ອງທ່ານຈາກການໂຄສະນາທີ່ບໍ່ຕ້ອງການ, ການຂຸດຄົ້ນຂໍ້ມູນແລະການສ້າງເງື່ອນໄຂປິດລ້ອມ. ລະບົບຍັງຮັບປະກັນຂໍ້ມູນທັງຫມົດຂອງທ່ານ, ການໂທວິດີໂອແບບຫນຶ່ງຕໍ່ຫນຶ່ງແລະການສື່ສານສຽງໂດຍຜ່ານການເຂົ້າລະຫັດແບບຕົ້ນທາງຫາປາຍທາງ ແລະການກວດສອບອຸປະກອນກ່ອນເຊື່ອມຕໍ່.
+
+ລະບົບເຮົາໃຫ້ທ່ານຄວບຄຸມຄວາມເປັນສ່ວນຕົວຂອງທ່ານໃນຂະນະທີ່ອະນຸຍາດໃຫ້ທ່ານຕິດຕໍ່ສື່ສານຢ່າງປອດໄພກັບທຸກຄົນໃນເຄືອຂ່າຍ Matrix, ຫຼືເຄື່ອງມືທີ່ທ່ານຄຸ້ນເຄີຍເຊັ່ນ Whatsapp, Slack, Facebook.
+
+ທ່ານສາມາດສ້າງສະຖານີຂອງຕົນເອງ
+ເພື່ອໃຫ້ສາມາດຄວບຄຸມຂໍ້ມູນແລະການສົນທະນາທີ່ລະອຽດອ່ອນຂອງທ່ານຫຼາຍຂຶ້ນ, ທ່ານສາມາດຕິດຕັ້ງສະຖານີສື່ສານຂອງຕົນເອງຫຼືທ່ານສາມາດເລືອກຕິດຕັ້ງໄວ້ກັບເຄືອຂ່າຍ Matrix - ມາດຕະຖານສໍາລັບລະບົບເປີດ, ການສື່ສານແບບກະຈາຍການຄຸ້ມຄອງ. ລະບົບພວກເຮົາໃຫ້ທ່ານມີຄວາມເປັນສ່ວນຕົວ, ໄດ້ຕາມມາດຕະຖານຄວາມປອດໄພແລະມີຄວາມຍືດຫຍຸ່ນໃນການເຊື່ອມໂຍງ.
+
+ເປັນເຈົ້າຂອງຂໍ້ມູນຂອງທ່ານເອງ
+ທ່ານສາມາດເລືອກໄດ້ວ່າຈະເກັບຂໍ້ມູນ ແລະຂໍ້ຄວາມຂອງທ່ານຢູ່ໃສ. ໂດຍບໍ່ມີຄວາມສ່ຽງຕໍ່ການຂຸດຄົ້ນຂໍ້ມູນຫຼືການເຂົ້າເຖິງຈາກພາກສ່ວນທີສາມ.
+
+ລະບົບພວກເຮົາເຮັດໃຫ້ທ່ານສາມາດຄວບຄຸມດ້ວຍວິທີຕ່າງໆ:
+1. ຮັບບັນຊີຟຣີໃນເຊີບເວີສາທາລະນະ matrix.org ທີ່ໂຮສໂດຍຜູ້ພັດທະນາ Matrix, ຫຼືເລືອກຈາກເຄື່ອງແມ່ຂ່າຍສາທາລະນະຫຼາຍພັນເຊີບເວີທີ່ໂຮສໂດຍອາສາສະໝັກ.
+2. ຈັດການບັນຊີຂອງທ່ານເອງໂດຍການແລ່ນເຊີບເວີໃນໂຄງລ່າງພື້ນຖານ IT ຂອງທ່ານເອງ
+3. ລົງທະບຽນສໍາລັບບັນຊີຢູ່ໃນເຄື່ອງແມ່ຂ່າຍທີ່ກໍາຫນົດເອງໂດຍພຽງແຕ່ສະຫມັກກັບ Element Matrix Services hosting platform
+
+ສົ່ງຂໍ້ຄວາມ ແລະການຮ່ວມມືກັບລະບົບອື່ນໆທີ່ທ່ານຄຸ້ນເຄີຍ
+ທ່ານສາມາດສົນທະນາກັບທຸກຄົນໃນເຄືອຂ່າຍ Matrix, ບໍ່ວ່າເຂົາເຈົ້າກໍາລັງໃຊ້ Element, ແອັບ Matrix ອື່ນ ຫຼືເຖິງແມ່ນວ່າເຂົາເຈົ້າກຳລັງໃຊ້ແອັບສົ່ງຂໍ້ຄວາມອື່ນຢູ່.
+
+ປອດໄພທີ່ສຸດ
+ການເຂົ້າລະຫັດຈາກຕົ້ນທາງຫາປາຍທາງ (ມີພຽງແຕ່ຜູ້ທີ່ຢູ່ໃນການສົນທະນາສາມາດຖອດລະຫັດຂໍ້ຄວາມໄດ້), ແລະການຢັ້ງຢືນອຸປະກອນໂດຍການລົງນາມຂ້າມອຸປະກອນ.
+
+ການສື່ສານແລະການເຊື່ອມໂຍງທີ່ຄົບຖ້ວນສົມບູນ
+ການສົ່ງຂໍ້ຄວາມ, ການໂທສຽງ ແລະວິດີໂອ, ການແບ່ງປັນໄຟລ໌, ການແບ່ງປັນໜ້າຈໍ ແລະການເຊື່ອມໂຍງທັງໝົດ, ບັອດ ແລະວິດເຈັດ. ສ້າງຫ້ອງ, ຊຸມຊົນ, ຕິດຕໍ່ພົວພັນແລະເຮັດສິ່ງຕ່າງໆ.
+
+ສືບຕໍ່ຈາກການສົນທະນາລ້າສຸດ
+ທ່ານສາມາດຕິດຕໍ່ພົວພັນໄດ້ທຸກບ່ອນທີ່ຕ້ອງການ ເຊິ່ງປະຫວັດການສົນທະນາຈະຖືກອັບເດດໄປຫາບັນດາອຸປະກອນຕ່າງໆຂອງທ່ານ ລວມເຖິງໃນເວັບໄຊຕ໌ທີ່ https://app.element.io
+
+ເຕັກໂນໂລຊີໂອເພິນຊອດ
+Element ເປັນໂຄງການເຕັກໂນໂລຊີໂອເພິນຊອດ, ເປັນເຈົ້າພາບໂດຍ GitHub. ກະລຸນາລາຍງານຂໍ້ບົກພ່ອງ ແລະ/ຫຼື ປະກອບສ່ວນເຂົ້າໃນການພັດທະນາຂອງລະບົບຢູ່ https://github.com/vector-im/element-android
diff --git a/fastlane/metadata/android/lo/short_description.txt b/fastlane/metadata/android/lo/short_description.txt
new file mode 100644
index 0000000000..625b078915
--- /dev/null
+++ b/fastlane/metadata/android/lo/short_description.txt
@@ -0,0 +1 @@
+ສົ່ງຂໍ້ຄວາມກຸ່ມ - ສົ່ງຂໍ້ຄວາມທີ່ເຂົ້າລະຫັດ, ສົນທະນາກຸ່ມ ແລະໂທວິດີໂອ
diff --git a/fastlane/metadata/android/lo/title.txt b/fastlane/metadata/android/lo/title.txt
new file mode 100644
index 0000000000..a9054d803b
--- /dev/null
+++ b/fastlane/metadata/android/lo/title.txt
@@ -0,0 +1 @@
+ລະບົບສື່ສານທີ່ມີຄວາມປອດໄພສູງ
diff --git a/fastlane/metadata/android/pl-PL/changelogs/40103060.txt b/fastlane/metadata/android/pl-PL/changelogs/40103060.txt
new file mode 100644
index 0000000000..9dc1e9e297
--- /dev/null
+++ b/fastlane/metadata/android/pl-PL/changelogs/40103060.txt
@@ -0,0 +1,2 @@
+Główne zmiany w tej wersji: Dodanie obsługi obecności, dla pokoju wiadomości bezpośrednich (uwaga: obecność jest wyłączona na matrix.org). Dodano ponownie obsługę Android Auto.
+Pełna lista zmian: https://github.com/vector-im/element-android/releases/tag/v1.3.6
diff --git a/fastlane/metadata/android/pl-PL/changelogs/40103070.txt b/fastlane/metadata/android/pl-PL/changelogs/40103070.txt
index 2cb20a9570..08d9d2193e 100644
--- a/fastlane/metadata/android/pl-PL/changelogs/40103070.txt
+++ b/fastlane/metadata/android/pl-PL/changelogs/40103070.txt
@@ -1,2 +1,2 @@
-Główne zmiany w tej wersji: Poprawki błędów dotyczące głównie powiadomień
-Pełny changelog: https://github.com/vector-im/element-android/releases/tag/v1.3.7
+Główne zmiany w tej wersji: Poprawki błędów dotyczące głównie powiadomień.
+Pełna lista zmian: https://github.com/vector-im/element-android/releases/tag/v1.3.7-RC2
diff --git a/fastlane/metadata/android/pl-PL/changelogs/40103080.txt b/fastlane/metadata/android/pl-PL/changelogs/40103080.txt
new file mode 100644
index 0000000000..c850479f59
--- /dev/null
+++ b/fastlane/metadata/android/pl-PL/changelogs/40103080.txt
@@ -0,0 +1,2 @@
+Główne zmiany w tej wersji: Poprawki błędów!
+Pełna lista zmian: https://github.com/vector-im/element-android/releases/tag/v1.3.8
diff --git a/fastlane/metadata/android/pl-PL/changelogs/40103090.txt b/fastlane/metadata/android/pl-PL/changelogs/40103090.txt
new file mode 100644
index 0000000000..13e1aed51e
--- /dev/null
+++ b/fastlane/metadata/android/pl-PL/changelogs/40103090.txt
@@ -0,0 +1,2 @@
+Główne zmiany w tej wersji: Dodano obsługę wersji roboczej wiadomości głosowych. Wiele poprawek!
+Pełna lista zmian: https://github.com/vector-im/element-android/releases/tag/v1.3.9
diff --git a/fastlane/metadata/android/pl-PL/changelogs/40103100.txt b/fastlane/metadata/android/pl-PL/changelogs/40103100.txt
new file mode 100644
index 0000000000..406f07f70f
--- /dev/null
+++ b/fastlane/metadata/android/pl-PL/changelogs/40103100.txt
@@ -0,0 +1,2 @@
+Główne zmiany w tej wersji: Dodano obsługę ankiet (w laboratoriach). Nowy projekt podglądu adresu URL.
+Pełna lista zmian: https://github.com/vector-im/element-android/releases/tag/v1.3.10
diff --git a/fastlane/metadata/android/pl-PL/changelogs/40103110.txt b/fastlane/metadata/android/pl-PL/changelogs/40103110.txt
new file mode 100644
index 0000000000..f9b38673c7
--- /dev/null
+++ b/fastlane/metadata/android/pl-PL/changelogs/40103110.txt
@@ -0,0 +1,2 @@
+Główne zmiany w tej wersji: Poprawki błędów!
+Pełna lista zmian: https://github.com/vector-im/element-android/releases/tag/v1.3.11
diff --git a/fastlane/metadata/android/pl-PL/changelogs/40103120.txt b/fastlane/metadata/android/pl-PL/changelogs/40103120.txt
new file mode 100644
index 0000000000..db6c1c86bd
--- /dev/null
+++ b/fastlane/metadata/android/pl-PL/changelogs/40103120.txt
@@ -0,0 +1,2 @@
+Główne zmiany w tej wersji: Poprawki błędów!
+Pełna lista zmian: https://github.com/vector-im/element-android/releases/tag/v1.3.12
diff --git a/fastlane/metadata/android/pl-PL/changelogs/40103130.txt b/fastlane/metadata/android/pl-PL/changelogs/40103130.txt
new file mode 100644
index 0000000000..affd085177
--- /dev/null
+++ b/fastlane/metadata/android/pl-PL/changelogs/40103130.txt
@@ -0,0 +1,2 @@
+Główne zmiany w tej wersji: Pierwsza zmiana na ekranach rejestracji, w tym możliwość włączenia Analytics. Dodano obsługę dla wydarzeń z dodatkiem matematyki w laboratoriach.
+Pełna lista zmian: https://github.com/vector-im/element-android/releases/tag/v1.3.13
diff --git a/fastlane/metadata/android/pl-PL/changelogs/40103140.txt b/fastlane/metadata/android/pl-PL/changelogs/40103140.txt
new file mode 100644
index 0000000000..0727d3b4ff
--- /dev/null
+++ b/fastlane/metadata/android/pl-PL/changelogs/40103140.txt
@@ -0,0 +1,2 @@
+Główne zmiany w tej wersji: Pierwsza zmiana na ekranach rejestracji, w tym możliwość włączenia Analytics. Dodano obsługę dla wydarzeń z dodatkiem matematyki w laboratoriach.
+Pełna lista zmian: https://github.com/vector-im/element-android/releases/tag/v1.3.14
diff --git a/fastlane/metadata/android/pl-PL/changelogs/40103150.txt b/fastlane/metadata/android/pl-PL/changelogs/40103150.txt
new file mode 100644
index 0000000000..48d6d0feb3
--- /dev/null
+++ b/fastlane/metadata/android/pl-PL/changelogs/40103150.txt
@@ -0,0 +1,2 @@
+Główne zmiany w tej wersji: Pierwsza zmiana na ekranach rejestracji, w tym możliwość włączenia Analytics. Dodano obsługę dla wydarzeń z dodatkiem matematyki w laboratoriach.
+Pełna lista zmian: https://github.com/vector-im/element-android/releases/tag/v1.3.15
diff --git a/fastlane/metadata/android/pl-PL/changelogs/40103160.txt b/fastlane/metadata/android/pl-PL/changelogs/40103160.txt
new file mode 100644
index 0000000000..df66e3042a
--- /dev/null
+++ b/fastlane/metadata/android/pl-PL/changelogs/40103160.txt
@@ -0,0 +1,2 @@
+Główne zmiany w tej wersji: wyślij swoją lokalizację do dowolnego pokoju. Edytuj ankietę.
+Pełna lista zmian: https://github.com/vector-im/element-android/releases/tag/v1.3.16
diff --git a/fastlane/metadata/android/pl-PL/changelogs/40103170.txt b/fastlane/metadata/android/pl-PL/changelogs/40103170.txt
new file mode 100644
index 0000000000..77d40898a6
--- /dev/null
+++ b/fastlane/metadata/android/pl-PL/changelogs/40103170.txt
@@ -0,0 +1,2 @@
+Główne zmiany w tej wersji: wyślij swoją lokalizację do dowolnego pokoju. Edytuj ankietę.
+Pełna lista zmian: https://github.com/vector-im/element-android/releases/tag/v1.3.17
diff --git a/fastlane/metadata/android/pl-PL/changelogs/40103180.txt b/fastlane/metadata/android/pl-PL/changelogs/40103180.txt
new file mode 100644
index 0000000000..c0f671a58e
--- /dev/null
+++ b/fastlane/metadata/android/pl-PL/changelogs/40103180.txt
@@ -0,0 +1,2 @@
+Główne zmiany w tej wersji: wyślij swoją lokalizację do dowolnego pokoju. Edytuj ankietę.
+Pełna lista zmian: https://github.com/vector-im/element-android/releases/tag/v1.3.18
diff --git a/fastlane/metadata/android/pl-PL/changelogs/40104000.txt b/fastlane/metadata/android/pl-PL/changelogs/40104000.txt
new file mode 100644
index 0000000000..f9f4c80cf9
--- /dev/null
+++ b/fastlane/metadata/android/pl-PL/changelogs/40104000.txt
@@ -0,0 +1,2 @@
+Główne zmiany w tej wersji: Wstępna implementacja komunikatów wątków. Bąbelki wiadomości.
+Pełna lista zmian: https://github.com/vector-im/element-android/releases/tag/v1.4.0
diff --git a/fastlane/metadata/android/pl-PL/changelogs/40104020.txt b/fastlane/metadata/android/pl-PL/changelogs/40104020.txt
new file mode 100644
index 0000000000..190427d548
--- /dev/null
+++ b/fastlane/metadata/android/pl-PL/changelogs/40104020.txt
@@ -0,0 +1,2 @@
+Główne zmiany w tej wersji: dodanie obsługi @room i nieujawnionych ankiet, i wiele innych drobnych zmian.
+Pełna lista zmian: https://github.com/vector-im/element-android/releases/tag/v1.4.2
diff --git a/fastlane/metadata/android/pl-PL/changelogs/40104040.txt b/fastlane/metadata/android/pl-PL/changelogs/40104040.txt
new file mode 100644
index 0000000000..9894e54c03
--- /dev/null
+++ b/fastlane/metadata/android/pl-PL/changelogs/40104040.txt
@@ -0,0 +1,2 @@
+Główne zmiany w tej wersji: aktualizacje interfejsu użytkownika wskaźnika pisania. Różne poprawki błędów i ulepszenia stabilności.
+Pełna lista zmian: https://github.com/vector-im/element-android/releases/tag/v1.4.4
diff --git a/fastlane/metadata/android/pl-PL/changelogs/40104060.txt b/fastlane/metadata/android/pl-PL/changelogs/40104060.txt
new file mode 100644
index 0000000000..216842ada0
--- /dev/null
+++ b/fastlane/metadata/android/pl-PL/changelogs/40104060.txt
@@ -0,0 +1,2 @@
+Główne zmiany w tej wersji: Oś czasu wątku jest teraz aktywna i szybsza. Różne poprawki błędów i ulepszenia stabilności.
+Pełna lista zmian: https://github.com/vector-im/element-android/releases/tag/v1.4.6
diff --git a/fastlane/metadata/android/pl-PL/changelogs/40104070.txt b/fastlane/metadata/android/pl-PL/changelogs/40104070.txt
new file mode 100644
index 0000000000..91c13d3d79
--- /dev/null
+++ b/fastlane/metadata/android/pl-PL/changelogs/40104070.txt
@@ -0,0 +1,2 @@
+Główne zmiany w tej wersji: Różne poprawki błędów i ulepszenia stabilności.
+Pełna lista zmian: https://github.com/vector-im/element-android/releases/tag/v1.4.7
diff --git a/fastlane/metadata/android/pl-PL/changelogs/40104080.txt b/fastlane/metadata/android/pl-PL/changelogs/40104080.txt
new file mode 100644
index 0000000000..5286f40de5
--- /dev/null
+++ b/fastlane/metadata/android/pl-PL/changelogs/40104080.txt
@@ -0,0 +1,2 @@
+Główne zmiany w tej wersji: Oś czasu wątku jest teraz aktywna i szybsza. Różne poprawki błędów i ulepszenia stabilności.
+Pełna lista zmian: https://github.com/vector-im/element-android/releases
diff --git a/fastlane/metadata/android/pt-BR/changelogs/40104060.txt b/fastlane/metadata/android/pt-BR/changelogs/40104060.txt
new file mode 100644
index 0000000000..17d8225c0d
--- /dev/null
+++ b/fastlane/metadata/android/pt-BR/changelogs/40104060.txt
@@ -0,0 +1,2 @@
+Principais mudanças nesta versão: Timeline de Thread estão agora ao vivo e mais rápidas. Vários consertos de bugs e melhorias de estabilidade.
+Changelog completo: https://github.com/vector-im/element-android/releases/tag/v1.4.6
diff --git a/fastlane/metadata/android/pt-BR/changelogs/40104070.txt b/fastlane/metadata/android/pt-BR/changelogs/40104070.txt
new file mode 100644
index 0000000000..fad9bfe739
--- /dev/null
+++ b/fastlane/metadata/android/pt-BR/changelogs/40104070.txt
@@ -0,0 +1,2 @@
+Principais mudanças nesta versão: Vários consertos de bugs e melhorias de estabilidade.
+Changelog completo: https://github.com/vector-im/element-android/releases/tag/v1.4.7
diff --git a/fastlane/metadata/android/pt-BR/changelogs/40104080.txt b/fastlane/metadata/android/pt-BR/changelogs/40104080.txt
new file mode 100644
index 0000000000..ca2b54f2f2
--- /dev/null
+++ b/fastlane/metadata/android/pt-BR/changelogs/40104080.txt
@@ -0,0 +1,2 @@
+Principais mudanças nesta versão: Timeline de Thread estão agora ao vivo e mais rápidas. Vários consertos de bugs e melhorias de estabilidade.
+Changelog completo: https://github.com/vector-im/element-android/releases
diff --git a/fastlane/metadata/android/pt-BR/changelogs/40104100.txt b/fastlane/metadata/android/pt-BR/changelogs/40104100.txt
new file mode 100644
index 0000000000..eb746aca2b
--- /dev/null
+++ b/fastlane/metadata/android/pt-BR/changelogs/40104100.txt
@@ -0,0 +1,2 @@
+Principais mudanças nesta versão: Rolar em mensagem de voz. Vários consertos de bugs e melhorias de estabilidade.
+Changelog completo: https://github.com/vector-im/element-android/releases
diff --git a/fastlane/metadata/android/pt-BR/changelogs/40104110.txt b/fastlane/metadata/android/pt-BR/changelogs/40104110.txt
new file mode 100644
index 0000000000..6e11e92579
--- /dev/null
+++ b/fastlane/metadata/android/pt-BR/changelogs/40104110.txt
@@ -0,0 +1,2 @@
+Principais mudanças nesta versão: Vários consertos de bugs e melhorias de estabilidade.
+Changelog completo: https://github.com/vector-im/element-android/releases
diff --git a/fastlane/metadata/android/sk/changelogs/40104060.txt b/fastlane/metadata/android/sk/changelogs/40104060.txt
new file mode 100644
index 0000000000..53e192fe7c
--- /dev/null
+++ b/fastlane/metadata/android/sk/changelogs/40104060.txt
@@ -0,0 +1,2 @@
+Hlavné zmeny v tejto verzii: Vlákna na časovej osi sú teraz živé a rýchlejšie. Rôzne opravy chýb a vylepšenia stability.
+Úplný zoznam zmien: https://github.com/vector-im/element-android/releases/tag/v1.4.6
diff --git a/fastlane/metadata/android/sk/changelogs/40104070.txt b/fastlane/metadata/android/sk/changelogs/40104070.txt
new file mode 100644
index 0000000000..1e056cf32f
--- /dev/null
+++ b/fastlane/metadata/android/sk/changelogs/40104070.txt
@@ -0,0 +1,2 @@
+Hlavné zmeny v tejto verzii: Rôzne opravy chýb a vylepšenia stability.
+Úplný zoznam zmien: https://github.com/vector-im/element-android/releases/tag/v1.4.7
diff --git a/fastlane/metadata/android/sk/changelogs/40104080.txt b/fastlane/metadata/android/sk/changelogs/40104080.txt
new file mode 100644
index 0000000000..7f42250fb9
--- /dev/null
+++ b/fastlane/metadata/android/sk/changelogs/40104080.txt
@@ -0,0 +1,2 @@
+Hlavné zmeny v tejto verzii: Vlákna na časovej osi sú teraz živé a rýchlejšie. Rôzne opravy chýb a vylepšenia stability.
+Úplný zoznam zmien: https://github.com/vector-im/element-android/releases
diff --git a/fastlane/metadata/android/sk/changelogs/40104100.txt b/fastlane/metadata/android/sk/changelogs/40104100.txt
new file mode 100644
index 0000000000..b96a539364
--- /dev/null
+++ b/fastlane/metadata/android/sk/changelogs/40104100.txt
@@ -0,0 +1,2 @@
+Hlavné zmeny v tejto verzii: Posúvanie v hlasovej správe. Rôzne opravy chýb a vylepšenia stability.
+Úplný zoznam zmien: https://github.com/vector-im/element-android/releases
diff --git a/fastlane/metadata/android/sk/changelogs/40104110.txt b/fastlane/metadata/android/sk/changelogs/40104110.txt
new file mode 100644
index 0000000000..50670f18c2
--- /dev/null
+++ b/fastlane/metadata/android/sk/changelogs/40104110.txt
@@ -0,0 +1,2 @@
+Hlavné zmeny v tejto verzii: Rôzne opravy chýb a vylepšenia stability.
+Úplný zoznam zmien: https://github.com/vector-im/element-android/releases
diff --git a/fastlane/metadata/android/sq/changelogs/40104060.txt b/fastlane/metadata/android/sq/changelogs/40104060.txt
new file mode 100644
index 0000000000..48cbd2150c
--- /dev/null
+++ b/fastlane/metadata/android/sq/changelogs/40104060.txt
@@ -0,0 +1,2 @@
+Ndryshimet kryesore në këtë version: Vijat kohore të rrjedhave tani janë në punë dhe më të shpejta. Ndreqje të metash të ndryshme dhe përmirësime qëndrueshmërie.
+Regjistër i plotë ndryshimesh: https://github.com/vector-im/element-android/releases/tag/v1.4.6
diff --git a/fastlane/metadata/android/sq/changelogs/40104070.txt b/fastlane/metadata/android/sq/changelogs/40104070.txt
new file mode 100644
index 0000000000..ad487c57ee
--- /dev/null
+++ b/fastlane/metadata/android/sq/changelogs/40104070.txt
@@ -0,0 +1,2 @@
+Ndryshimet kryesore në këtë version: Ndreqje të metash të ndryshme dhe përmirësime qëndrueshmërie.
+Regjistër i plotë ndryshimesh: https://github.com/vector-im/element-android/releases/tag/v1.4.7
diff --git a/fastlane/metadata/android/sq/changelogs/40104080.txt b/fastlane/metadata/android/sq/changelogs/40104080.txt
new file mode 100644
index 0000000000..49156d0c96
--- /dev/null
+++ b/fastlane/metadata/android/sq/changelogs/40104080.txt
@@ -0,0 +1,2 @@
+Ndryshimet kryesore në këtë version: Vijat kohore të rrjedhave tani janë në punë dhe më të shpejta. Ndreqje të metash të ndryshme dhe përmirësime qëndrueshmërie.
+Regjistër i plotë ndryshimesh: https://github.com/vector-im/element-android/releases
diff --git a/fastlane/metadata/android/sq/changelogs/40104100.txt b/fastlane/metadata/android/sq/changelogs/40104100.txt
new file mode 100644
index 0000000000..c45c2b9a33
--- /dev/null
+++ b/fastlane/metadata/android/sq/changelogs/40104100.txt
@@ -0,0 +1,2 @@
+Ndryshimet kryesore në këtë version: Rrëshqitje në mesazh zanor. Ndreqje të metash të ndryshme dhe përmirësime qëndrueshmërie.
+Regjistër i plotë ndryshimesh: https://github.com/vector-im/element-android/releases
diff --git a/fastlane/metadata/android/sq/changelogs/40104110.txt b/fastlane/metadata/android/sq/changelogs/40104110.txt
new file mode 100644
index 0000000000..df9b377adb
--- /dev/null
+++ b/fastlane/metadata/android/sq/changelogs/40104110.txt
@@ -0,0 +1,2 @@
+Ndryshimet kryesore në këtë version: Ndreqje të metash të ndryshme dhe përmirësime qëndrueshmërie.
+Regjistër i plotë ndryshimesh: https://github.com/vector-im/element-android/releases
diff --git a/fastlane/metadata/android/sv-SE/changelogs/40104060.txt b/fastlane/metadata/android/sv-SE/changelogs/40104060.txt
new file mode 100644
index 0000000000..16a49fa3bc
--- /dev/null
+++ b/fastlane/metadata/android/sv-SE/changelogs/40104060.txt
@@ -0,0 +1,2 @@
+Huvudsakliga ändringar i den här versionen: Trådtidslinje är nu live och snabbare. Diverse buggfixar och stabilitetsförbättringar.
+Full ändringslogg: https://github.com/vector-im/element-android/releases/tag/v1.4.6
diff --git a/fastlane/metadata/android/sv-SE/changelogs/40104070.txt b/fastlane/metadata/android/sv-SE/changelogs/40104070.txt
new file mode 100644
index 0000000000..01f79e85d6
--- /dev/null
+++ b/fastlane/metadata/android/sv-SE/changelogs/40104070.txt
@@ -0,0 +1,2 @@
+Huvudsakliga ändringar i den här versionen: Diverse buggfixar och stabilitetsförbättringar.
+Full ändringslogg: https://github.com/vector-im/element-android/releases/tag/v1.4.7
diff --git a/fastlane/metadata/android/sv-SE/changelogs/40104080.txt b/fastlane/metadata/android/sv-SE/changelogs/40104080.txt
new file mode 100644
index 0000000000..2ac7df2cda
--- /dev/null
+++ b/fastlane/metadata/android/sv-SE/changelogs/40104080.txt
@@ -0,0 +1,2 @@
+Huvudsakliga ändringar i den här versionen: Trådtidslinje är nu live och snabbare. Diverse buggfixar och stabilitetsförbättringar.
+Full ändringslogg: https://github.com/vector-im/element-android/releases/tag/v1.4.8
diff --git a/fastlane/metadata/android/sv-SE/changelogs/40104100.txt b/fastlane/metadata/android/sv-SE/changelogs/40104100.txt
new file mode 100644
index 0000000000..a1585aacf5
--- /dev/null
+++ b/fastlane/metadata/android/sv-SE/changelogs/40104100.txt
@@ -0,0 +1,2 @@
+Huvudsakliga ändringar i denna version: Scrolla i röstmeddelanden. Diverse buggfixar och förbättrad stabilitet.
+Fullständig lista över ändringar: https://github.com/vector-im/element-android/releases
diff --git a/fastlane/metadata/android/sv-SE/changelogs/40104110.txt b/fastlane/metadata/android/sv-SE/changelogs/40104110.txt
new file mode 100644
index 0000000000..92cce13669
--- /dev/null
+++ b/fastlane/metadata/android/sv-SE/changelogs/40104110.txt
@@ -0,0 +1,2 @@
+Huvudsakliga ändringar i denna version: Diverse buggfixar och förbättrad stabilitet.
+Fullständig lista över ändringar: https://github.com/vector-im/element-android/releases
diff --git a/fastlane/metadata/android/uk/changelogs/40104060.txt b/fastlane/metadata/android/uk/changelogs/40104060.txt
new file mode 100644
index 0000000000..28f051724a
--- /dev/null
+++ b/fastlane/metadata/android/uk/changelogs/40104060.txt
@@ -0,0 +1,2 @@
+Основні зміни в цій версії: Хронологія тредів працює наживо і швидше. Усунуто різні вади й поліпшено стабільність.
+Вичерпний перелік змін: https://github.com/vector-im/element-android/releases/tag/v1.4.6
diff --git a/fastlane/metadata/android/uk/changelogs/40104070.txt b/fastlane/metadata/android/uk/changelogs/40104070.txt
new file mode 100644
index 0000000000..dff28b7825
--- /dev/null
+++ b/fastlane/metadata/android/uk/changelogs/40104070.txt
@@ -0,0 +1,2 @@
+Основні зміни в цій версії: Усунуто різні вади й поліпшено стабільність.
+Вичерпний перелік змін: https://github.com/vector-im/element-android/releases/tag/v1.4.7
diff --git a/fastlane/metadata/android/uk/changelogs/40104080.txt b/fastlane/metadata/android/uk/changelogs/40104080.txt
new file mode 100644
index 0000000000..e5f7e7b271
--- /dev/null
+++ b/fastlane/metadata/android/uk/changelogs/40104080.txt
@@ -0,0 +1,2 @@
+Основні зміни в цій версії: Хронологія тредів працює наживо і швидше. Усунуто різні вади й поліпшено стабільність.
+Вичерпний перелік змін: https://github.com/vector-im/element-android/releases
diff --git a/fastlane/metadata/android/uk/changelogs/40104100.txt b/fastlane/metadata/android/uk/changelogs/40104100.txt
new file mode 100644
index 0000000000..93c9fe4b70
--- /dev/null
+++ b/fastlane/metadata/android/uk/changelogs/40104100.txt
@@ -0,0 +1,2 @@
+Основні зміни в цій версії: Прокручування в голосових повідомленнях. Усунуто різні вади й поліпшено стабільність.
+Вичерпний перелік змін: https://github.com/vector-im/element-android/releases
diff --git a/fastlane/metadata/android/uk/changelogs/40104110.txt b/fastlane/metadata/android/uk/changelogs/40104110.txt
new file mode 100644
index 0000000000..252a57c9d9
--- /dev/null
+++ b/fastlane/metadata/android/uk/changelogs/40104110.txt
@@ -0,0 +1,2 @@
+Основні зміни в цій версії: Усунуто різні вади й поліпшено стабільність.
+Вичерпний перелік змін: https://github.com/vector-im/element-android/releases
diff --git a/fastlane/metadata/android/zh-TW/changelogs/40104060.txt b/fastlane/metadata/android/zh-TW/changelogs/40104060.txt
new file mode 100644
index 0000000000..316fad3363
--- /dev/null
+++ b/fastlane/metadata/android/zh-TW/changelogs/40104060.txt
@@ -0,0 +1,2 @@
+此版本中的主要變動:討論串時間軸現已更新,而且更快了。多個臭蟲修復與穩定性改善。
+完整的變更紀錄:https://github.com/vector-im/element-android/releases/tag/v1.4.6
diff --git a/fastlane/metadata/android/zh-TW/changelogs/40104070.txt b/fastlane/metadata/android/zh-TW/changelogs/40104070.txt
new file mode 100644
index 0000000000..2cd9da666e
--- /dev/null
+++ b/fastlane/metadata/android/zh-TW/changelogs/40104070.txt
@@ -0,0 +1,2 @@
+此版本中的主要變動:多個臭蟲修復與穩定性改善。
+完整的變更紀錄:https://github.com/vector-im/element-android/releases/tag/v1.4.7
diff --git a/fastlane/metadata/android/zh-TW/changelogs/40104080.txt b/fastlane/metadata/android/zh-TW/changelogs/40104080.txt
new file mode 100644
index 0000000000..c036aa7d56
--- /dev/null
+++ b/fastlane/metadata/android/zh-TW/changelogs/40104080.txt
@@ -0,0 +1,2 @@
+此版本中的主要變動:討論串時間軸現已更新,而且更快了。多個臭蟲修復與穩定性改善。
+完整的變更紀錄:https://github.com/vector-im/element-android/releases
diff --git a/fastlane/metadata/android/zh-TW/changelogs/40104100.txt b/fastlane/metadata/android/zh-TW/changelogs/40104100.txt
new file mode 100644
index 0000000000..c78ed7dd2d
--- /dev/null
+++ b/fastlane/metadata/android/zh-TW/changelogs/40104100.txt
@@ -0,0 +1,2 @@
+此版本中的主要變動:捲動音訊訊息。多個臭蟲修復與穩定性改善。
+完整的變更紀錄:https://github.com/vector-im/element-android/releases
diff --git a/fastlane/metadata/android/zh-TW/changelogs/40104110.txt b/fastlane/metadata/android/zh-TW/changelogs/40104110.txt
new file mode 100644
index 0000000000..4bcca9a0b8
--- /dev/null
+++ b/fastlane/metadata/android/zh-TW/changelogs/40104110.txt
@@ -0,0 +1,2 @@
+此版本中的主要變動:多個臭蟲修復與穩定性改善。
+完整的變更紀錄:https://github.com/vector-im/element-android/releases
diff --git a/library/attachment-viewer/src/main/java/im/vector/lib/attachmentviewer/ImageLoaderTarget.kt b/library/attachment-viewer/src/main/java/im/vector/lib/attachmentviewer/ImageLoaderTarget.kt
index 99686eaabb..7b54438a52 100644
--- a/library/attachment-viewer/src/main/java/im/vector/lib/attachmentviewer/ImageLoaderTarget.kt
+++ b/library/attachment-viewer/src/main/java/im/vector/lib/attachmentviewer/ImageLoaderTarget.kt
@@ -37,7 +37,7 @@ interface ImageLoaderTarget {
}
internal class DefaultImageLoaderTarget(val holder: AnimatedImageViewHolder, private val contextView: ImageView) :
- ImageLoaderTarget {
+ ImageLoaderTarget {
override fun contextView(): ImageView {
return contextView
}
diff --git a/library/jsonviewer/build.gradle b/library/jsonviewer/build.gradle
index 0cad8ac171..2110747feb 100644
--- a/library/jsonviewer/build.gradle
+++ b/library/jsonviewer/build.gradle
@@ -6,8 +6,14 @@ apply plugin: 'com.jakewharton.butterknife'
buildscript {
repositories {
- google()
- mavenCentral()
+ // Do not use `google()`, it prevents Dependabot from working properly
+ maven {
+ url 'https://maven.google.com'
+ }
+ // Do not use `mavenCentral()`, it prevents Dependabot from working properly
+ maven {
+ url 'https://repo1.maven.org/maven2'
+ }
}
dependencies {
classpath 'com.jakewharton:butterknife-gradle-plugin:10.2.3'
diff --git a/library/jsonviewer/src/main/java/org/billcarsonfr/jsonviewer/JSonViewerDialog.kt b/library/jsonviewer/src/main/java/org/billcarsonfr/jsonviewer/JSonViewerDialog.kt
index a8d9cac849..0ebf539d4d 100644
--- a/library/jsonviewer/src/main/java/org/billcarsonfr/jsonviewer/JSonViewerDialog.kt
+++ b/library/jsonviewer/src/main/java/org/billcarsonfr/jsonviewer/JSonViewerDialog.kt
@@ -27,9 +27,9 @@ import com.airbnb.mvrx.Mavericks
class JSonViewerDialog : DialogFragment() {
override fun onCreateView(
- inflater: LayoutInflater,
- container: ViewGroup?,
- savedInstanceState: Bundle?
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?
): View? {
return inflater.inflate(R.layout.fragment_dialog_jv, container, false)
}
@@ -39,15 +39,15 @@ class JSonViewerDialog : DialogFragment() {
val args: JSonViewerFragmentArgs = arguments?.getParcelable(Mavericks.KEY_ARG) ?: return
if (savedInstanceState == null) {
childFragmentManager.beginTransaction()
- .replace(
- R.id.fragmentContainer, JSonViewerFragment.newInstance(
- args.jsonString,
- args.defaultOpenDepth,
- true,
- args.styleProvider
+ .replace(
+ R.id.fragmentContainer, JSonViewerFragment.newInstance(
+ args.jsonString,
+ args.defaultOpenDepth,
+ true,
+ args.styleProvider
)
- )
- .commitNow()
+ )
+ .commitNow()
}
}
@@ -63,13 +63,13 @@ class JSonViewerDialog : DialogFragment() {
companion object {
fun newInstance(
- jsonString: String,
- initialOpenDepth: Int = -1,
- styleProvider: JSonViewerStyleProvider? = null
+ jsonString: String,
+ initialOpenDepth: Int = -1,
+ styleProvider: JSonViewerStyleProvider? = null
): JSonViewerDialog {
val args = Bundle()
val parcelableArgs =
- JSonViewerFragmentArgs(jsonString, initialOpenDepth, false, styleProvider)
+ JSonViewerFragmentArgs(jsonString, initialOpenDepth, false, styleProvider)
args.putParcelable(Mavericks.KEY_ARG, parcelableArgs)
return JSonViewerDialog().apply { arguments = args }
}
diff --git a/library/jsonviewer/src/main/java/org/billcarsonfr/jsonviewer/JSonViewerFragment.kt b/library/jsonviewer/src/main/java/org/billcarsonfr/jsonviewer/JSonViewerFragment.kt
index 51e2797958..fbf6f88bc3 100644
--- a/library/jsonviewer/src/main/java/org/billcarsonfr/jsonviewer/JSonViewerFragment.kt
+++ b/library/jsonviewer/src/main/java/org/billcarsonfr/jsonviewer/JSonViewerFragment.kt
@@ -32,10 +32,10 @@ import kotlinx.parcelize.Parcelize
@Parcelize
internal data class JSonViewerFragmentArgs(
- val jsonString: String,
- val defaultOpenDepth: Int,
- val wrap: Boolean,
- val styleProvider: JSonViewerStyleProvider?
+ val jsonString: String,
+ val defaultOpenDepth: Int,
+ val wrap: Boolean,
+ val styleProvider: JSonViewerStyleProvider?
) : Parcelable
class JSonViewerFragment : Fragment(), MavericksView {
@@ -49,20 +49,20 @@ class JSonViewerFragment : Fragment(), MavericksView {
private lateinit var recyclerView: EpoxyRecyclerView
override fun onCreateView(
- inflater: LayoutInflater,
- container: ViewGroup?,
- savedInstanceState: Bundle?
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?
): View? {
val args: JSonViewerFragmentArgs? = arguments?.getParcelable(Mavericks.KEY_ARG)
val inflate =
- if (args?.wrap == true) {
- inflater.inflate(R.layout.fragment_jv_recycler_view_wrap, container, false)
- } else {
- inflater.inflate(R.layout.fragment_jv_recycler_view, container, false)
- }
+ if (args?.wrap == true) {
+ inflater.inflate(R.layout.fragment_jv_recycler_view_wrap, container, false)
+ } else {
+ inflater.inflate(R.layout.fragment_jv_recycler_view, container, false)
+ }
recyclerView = inflate.findViewById(R.id.jvRecyclerView)
recyclerView.layoutManager =
- LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false)
+ LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false)
recyclerView.setController(epoxyController)
epoxyController.setStyle(args?.styleProvider)
registerForContextMenu(recyclerView)
@@ -79,21 +79,21 @@ class JSonViewerFragment : Fragment(), MavericksView {
companion object {
fun newInstance(
- jsonString: String,
- initialOpenDepth: Int = -1,
- wrap: Boolean = false,
- styleProvider: JSonViewerStyleProvider? = null
+ jsonString: String,
+ initialOpenDepth: Int = -1,
+ wrap: Boolean = false,
+ styleProvider: JSonViewerStyleProvider? = null
): JSonViewerFragment {
return JSonViewerFragment().apply {
arguments = Bundle().apply {
putParcelable(
- Mavericks.KEY_ARG,
- JSonViewerFragmentArgs(
- jsonString,
- initialOpenDepth,
- wrap,
- styleProvider
- )
+ Mavericks.KEY_ARG,
+ JSonViewerFragmentArgs(
+ jsonString,
+ initialOpenDepth,
+ wrap,
+ styleProvider
+ )
)
}
}
diff --git a/library/jsonviewer/src/main/java/org/billcarsonfr/jsonviewer/JSonViewerModel.kt b/library/jsonviewer/src/main/java/org/billcarsonfr/jsonviewer/JSonViewerModel.kt
index 3d1f8dd3e2..6940e79e3f 100644
--- a/library/jsonviewer/src/main/java/org/billcarsonfr/jsonviewer/JSonViewerModel.kt
+++ b/library/jsonviewer/src/main/java/org/billcarsonfr/jsonviewer/JSonViewerModel.kt
@@ -30,8 +30,8 @@ internal interface Composed {
}
internal class JSonViewerObject(key: String?, index: Int?, jObject: JSONObject) :
- JSonViewerModel(key, index, jObject),
- Composed {
+ JSonViewerModel(key, index, jObject),
+ Composed {
var keys = LinkedHashMap()
@@ -41,7 +41,7 @@ internal class JSonViewerObject(key: String?, index: Int?, jObject: JSONObject)
}
internal class JSonViewerArray(key: String?, index: Int?, jObject: JSONArray) :
- JSonViewerModel(key, index, jObject), Composed {
+ JSonViewerModel(key, index, jObject), Composed {
var items = ArrayList()
override fun addChild(model: JSonViewerModel) {
@@ -50,7 +50,7 @@ internal class JSonViewerArray(key: String?, index: Int?, jObject: JSONArray) :
}
internal class JSonViewerLeaf(key: String?, index: Int?, val stringRes: String, val type: JSONType) :
- JSonViewerModel(key, index, stringRes)
+ JSonViewerModel(key, index, stringRes)
internal enum class JSONType {
STRING,
@@ -75,41 +75,41 @@ internal object ModelParser {
when (obj) {
is JSONObject -> {
val objectComposed = JSonViewerObject(key, index, obj)
- .apply { isExpanded = initialOpenDepth == -1 || depth <= initialOpenDepth }
+ .apply { isExpanded = initialOpenDepth == -1 || depth <= initialOpenDepth }
objectComposed.depth = depth
obj.keys().forEach {
eval(objectComposed, it, null, obj.get(it), depth + 1, initialOpenDepth)
}
parent.addChild(objectComposed)
}
- is JSONArray -> {
+ is JSONArray -> {
val objectComposed = JSonViewerArray(key, index, obj)
- .apply { isExpanded = initialOpenDepth == -1 || depth <= initialOpenDepth }
+ .apply { isExpanded = initialOpenDepth == -1 || depth <= initialOpenDepth }
objectComposed.depth = depth
for (i in 0 until obj.length()) {
eval(objectComposed, null, i, obj[i], depth + 1, initialOpenDepth)
}
parent.addChild(objectComposed)
}
- is String -> {
- JSonViewerLeaf(key, index, obj, JSONType.STRING).let {
+ is String -> {
+ JSonViewerLeaf(key, index, obj, JSONType.STRING).let {
it.depth = depth
parent.addChild(it)
}
}
- is Number -> {
+ is Number -> {
JSonViewerLeaf(key, index, obj.toString(), JSONType.NUMBER).let {
it.depth = depth
parent.addChild(it)
}
}
- is Boolean -> {
+ is Boolean -> {
JSonViewerLeaf(key, index, obj.toString(), JSONType.BOOLEAN).let {
it.depth = depth
parent.addChild(it)
}
}
- else -> {
+ else -> {
if (obj == JSONObject.NULL) {
JSonViewerLeaf(key, index, "null", JSONType.NULL).let {
it.depth = depth
diff --git a/library/jsonviewer/src/main/java/org/billcarsonfr/jsonviewer/JSonViewerStyleProvider.kt b/library/jsonviewer/src/main/java/org/billcarsonfr/jsonviewer/JSonViewerStyleProvider.kt
index 4fc04c91e4..17d8034f2d 100644
--- a/library/jsonviewer/src/main/java/org/billcarsonfr/jsonviewer/JSonViewerStyleProvider.kt
+++ b/library/jsonviewer/src/main/java/org/billcarsonfr/jsonviewer/JSonViewerStyleProvider.kt
@@ -24,22 +24,22 @@ import kotlinx.parcelize.Parcelize
@Parcelize
data class JSonViewerStyleProvider(
- @ColorInt val keyColor: Int,
- @ColorInt val stringColor: Int,
- @ColorInt val booleanColor: Int,
- @ColorInt val numberColor: Int,
- @ColorInt val baseColor: Int,
- @ColorInt val secondaryColor: Int
+ @ColorInt val keyColor: Int,
+ @ColorInt val stringColor: Int,
+ @ColorInt val booleanColor: Int,
+ @ColorInt val numberColor: Int,
+ @ColorInt val baseColor: Int,
+ @ColorInt val secondaryColor: Int
) : Parcelable {
companion object {
fun default(context: Context) = JSonViewerStyleProvider(
- keyColor = ContextCompat.getColor(context, R.color.key_color),
- stringColor = ContextCompat.getColor(context, R.color.string_color),
- booleanColor = ContextCompat.getColor(context, R.color.bool_color),
- numberColor = ContextCompat.getColor(context, R.color.number_color),
- baseColor = ContextCompat.getColor(context, R.color.base_color),
- secondaryColor = ContextCompat.getColor(context, R.color.secondary_color)
+ keyColor = ContextCompat.getColor(context, R.color.key_color),
+ stringColor = ContextCompat.getColor(context, R.color.string_color),
+ booleanColor = ContextCompat.getColor(context, R.color.bool_color),
+ numberColor = ContextCompat.getColor(context, R.color.number_color),
+ baseColor = ContextCompat.getColor(context, R.color.base_color),
+ secondaryColor = ContextCompat.getColor(context, R.color.secondary_color)
)
}
}
diff --git a/library/jsonviewer/src/main/java/org/billcarsonfr/jsonviewer/JSonViewerViewModel.kt b/library/jsonviewer/src/main/java/org/billcarsonfr/jsonviewer/JSonViewerViewModel.kt
index bc3f022cfa..d4e8f42604 100644
--- a/library/jsonviewer/src/main/java/org/billcarsonfr/jsonviewer/JSonViewerViewModel.kt
+++ b/library/jsonviewer/src/main/java/org/billcarsonfr/jsonviewer/JSonViewerViewModel.kt
@@ -28,11 +28,11 @@ import com.airbnb.mvrx.ViewModelContext
import kotlinx.coroutines.launch
internal data class JSonViewerState(
- val root: Async = Uninitialized
+ val root: Async = Uninitialized
) : MavericksState
internal class JSonViewerViewModel(initialState: JSonViewerState) :
- MavericksViewModel(initialState) {
+ MavericksViewModel(initialState) {
fun setJsonSource(json: String, initialOpenDepth: Int) {
setState {
@@ -43,14 +43,14 @@ internal class JSonViewerViewModel(initialState: JSonViewerState) :
ModelParser.fromJsonString(json, initialOpenDepth).let {
setState {
copy(
- root = Success(it)
+ root = Success(it)
)
}
}
} catch (error: Throwable) {
setState {
copy(
- root = Fail(error)
+ root = Fail(error)
)
}
}
@@ -64,7 +64,7 @@ internal class JSonViewerViewModel(initialState: JSonViewerState) :
val arg: JSonViewerFragmentArgs = viewModelContext.args()
return try {
JSonViewerState(
- Success(ModelParser.fromJsonString(arg.jsonString, arg.defaultOpenDepth))
+ Success(ModelParser.fromJsonString(arg.jsonString, arg.defaultOpenDepth))
)
} catch (failure: Throwable) {
JSonViewerState(Fail(failure))
diff --git a/library/jsonviewer/src/main/java/org/billcarsonfr/jsonviewer/Utils.kt b/library/jsonviewer/src/main/java/org/billcarsonfr/jsonviewer/Utils.kt
index efb2bfd855..0ac1cfe5f6 100644
--- a/library/jsonviewer/src/main/java/org/billcarsonfr/jsonviewer/Utils.kt
+++ b/library/jsonviewer/src/main/java/org/billcarsonfr/jsonviewer/Utils.kt
@@ -22,9 +22,9 @@ import android.util.TypedValue
internal object Utils {
fun dpToPx(dp: Int, context: Context): Int {
return TypedValue.applyDimension(
- TypedValue.COMPLEX_UNIT_DIP,
- dp.toFloat(),
- context.resources.displayMetrics
+ TypedValue.COMPLEX_UNIT_DIP,
+ dp.toFloat(),
+ context.resources.displayMetrics
).toInt()
}
}
diff --git a/library/jsonviewer/src/main/java/org/billcarsonfr/jsonviewer/ValueItem.kt b/library/jsonviewer/src/main/java/org/billcarsonfr/jsonviewer/ValueItem.kt
index 00d66645e6..fac7099b37 100644
--- a/library/jsonviewer/src/main/java/org/billcarsonfr/jsonviewer/ValueItem.kt
+++ b/library/jsonviewer/src/main/java/org/billcarsonfr/jsonviewer/ValueItem.kt
@@ -71,14 +71,14 @@ internal abstract class ValueItem : EpoxyModelWithHolder() {
}
override fun onCreateContextMenu(
- menu: ContextMenu?,
- v: View?,
- menuInfo: ContextMenu.ContextMenuInfo?
+ menu: ContextMenu?,
+ v: View?,
+ menuInfo: ContextMenu.ContextMenuInfo?
) {
if (copyValue != null) {
val menuItem = menu?.add(R.string.copy_value)
val clipService =
- v?.context?.getSystemService(Context.CLIPBOARD_SERVICE) as? ClipboardManager
+ v?.context?.getSystemService(Context.CLIPBOARD_SERVICE) as? ClipboardManager
menuItem?.setOnMenuItemClickListener {
clipService?.setPrimaryClip(ClipData.newPlainText("", copyValue))
true
diff --git a/library/multipicker/src/main/java/im/vector/lib/multipicker/CameraPicker.kt b/library/multipicker/src/main/java/im/vector/lib/multipicker/CameraPicker.kt
index b1442a56e1..785b9fae43 100644
--- a/library/multipicker/src/main/java/im/vector/lib/multipicker/CameraPicker.kt
+++ b/library/multipicker/src/main/java/im/vector/lib/multipicker/CameraPicker.kt
@@ -23,11 +23,9 @@ import android.provider.MediaStore
import androidx.activity.result.ActivityResultLauncher
import androidx.core.content.FileProvider
import im.vector.lib.multipicker.entity.MultiPickerImageType
+import im.vector.lib.multipicker.utils.MediaType
+import im.vector.lib.multipicker.utils.createTemporaryMediaFile
import im.vector.lib.multipicker.utils.toMultiPickerImageType
-import java.io.File
-import java.text.SimpleDateFormat
-import java.util.Date
-import java.util.Locale
/**
* Implementation of taking a photo with Camera
@@ -38,7 +36,7 @@ class CameraPicker {
* Start camera by using a ActivityResultLauncher
* @return Uri of taken photo or null if the operation is cancelled.
*/
- fun startWithExpectingFile(context: Context, activityResultLauncher: ActivityResultLauncher): Uri? {
+ fun startWithExpectingFile(context: Context, activityResultLauncher: ActivityResultLauncher): Uri {
val photoUri = createPhotoUri(context)
val intent = createIntent().apply {
putExtra(MediaStore.EXTRA_OUTPUT, photoUri)
@@ -63,19 +61,9 @@ class CameraPicker {
companion object {
fun createPhotoUri(context: Context): Uri {
- val file = createImageFile(context)
+ val file = createTemporaryMediaFile(context, MediaType.IMAGE)
val authority = context.packageName + ".multipicker.fileprovider"
return FileProvider.getUriForFile(context, authority, file)
}
-
- private fun createImageFile(context: Context): File {
- val timeStamp: String = SimpleDateFormat("yyyyMMdd_HHmmss", Locale.getDefault()).format(Date())
- val storageDir: File = context.filesDir
- return File.createTempFile(
- "${timeStamp}_", /* prefix */
- ".jpg", /* suffix */
- storageDir /* directory */
- )
- }
}
}
diff --git a/library/multipicker/src/main/java/im/vector/lib/multipicker/CameraVideoPicker.kt b/library/multipicker/src/main/java/im/vector/lib/multipicker/CameraVideoPicker.kt
index 76342b6e2e..59601b30d9 100644
--- a/library/multipicker/src/main/java/im/vector/lib/multipicker/CameraVideoPicker.kt
+++ b/library/multipicker/src/main/java/im/vector/lib/multipicker/CameraVideoPicker.kt
@@ -23,11 +23,9 @@ import android.provider.MediaStore
import androidx.activity.result.ActivityResultLauncher
import androidx.core.content.FileProvider
import im.vector.lib.multipicker.entity.MultiPickerVideoType
+import im.vector.lib.multipicker.utils.MediaType
+import im.vector.lib.multipicker.utils.createTemporaryMediaFile
import im.vector.lib.multipicker.utils.toMultiPickerVideoType
-import java.io.File
-import java.text.SimpleDateFormat
-import java.util.Date
-import java.util.Locale
/**
* Implementation of taking a video with Camera
@@ -38,7 +36,7 @@ class CameraVideoPicker {
* Start camera by using a ActivityResultLauncher
* @return Uri of taken photo or null if the operation is cancelled.
*/
- fun startWithExpectingFile(context: Context, activityResultLauncher: ActivityResultLauncher): Uri? {
+ fun startWithExpectingFile(context: Context, activityResultLauncher: ActivityResultLauncher): Uri {
val videoUri = createVideoUri(context)
val intent = createIntent().apply {
putExtra(MediaStore.EXTRA_OUTPUT, videoUri)
@@ -63,19 +61,9 @@ class CameraVideoPicker {
companion object {
fun createVideoUri(context: Context): Uri {
- val file = createVideoFile(context)
+ val file = createTemporaryMediaFile(context, MediaType.VIDEO)
val authority = context.packageName + ".multipicker.fileprovider"
return FileProvider.getUriForFile(context, authority, file)
}
-
- private fun createVideoFile(context: Context): File {
- val timeStamp: String = SimpleDateFormat("yyyyMMdd_HHmmss", Locale.getDefault()).format(Date())
- val storageDir: File = context.filesDir
- return File.createTempFile(
- "${timeStamp}_", /* prefix */
- ".mp4", /* suffix */
- storageDir /* directory */
- )
- }
}
}
diff --git a/library/multipicker/src/main/java/im/vector/lib/multipicker/MultiPicker.kt b/library/multipicker/src/main/java/im/vector/lib/multipicker/MultiPicker.kt
index 6ce50f622a..821c2f0d4c 100644
--- a/library/multipicker/src/main/java/im/vector/lib/multipicker/MultiPicker.kt
+++ b/library/multipicker/src/main/java/im/vector/lib/multipicker/MultiPicker.kt
@@ -31,15 +31,15 @@ class MultiPicker {
@Suppress("UNCHECKED_CAST")
fun get(type: MultiPicker): T {
return when (type) {
- IMAGE -> ImagePicker() as T
- VIDEO -> VideoPicker() as T
- MEDIA -> MediaPicker() as T
- FILE -> FilePicker() as T
- AUDIO -> AudioPicker() as T
- CONTACT -> ContactPicker() as T
- CAMERA -> CameraPicker() as T
- CAMERA_VIDEO -> CameraVideoPicker() as T
- else -> throw IllegalArgumentException("Unsupported type $type")
+ IMAGE -> ImagePicker() as T
+ VIDEO -> VideoPicker() as T
+ MEDIA -> MediaPicker() as T
+ FILE -> FilePicker() as T
+ AUDIO -> AudioPicker() as T
+ CONTACT -> ContactPicker() as T
+ CAMERA -> CameraPicker() as T
+ CAMERA_VIDEO -> CameraVideoPicker() as T
+ else -> throw IllegalArgumentException("Unsupported type $type")
}
}
}
diff --git a/library/multipicker/src/main/java/im/vector/lib/multipicker/utils/MediaFileUtils.kt b/library/multipicker/src/main/java/im/vector/lib/multipicker/utils/MediaFileUtils.kt
new file mode 100644
index 0000000000..a029d5e6b1
--- /dev/null
+++ b/library/multipicker/src/main/java/im/vector/lib/multipicker/utils/MediaFileUtils.kt
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2022 New Vector Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package im.vector.lib.multipicker.utils
+
+import android.content.Context
+import java.io.File
+import java.text.SimpleDateFormat
+import java.util.Date
+import java.util.Locale
+
+internal fun createTemporaryMediaFile(context: Context, mediaType: MediaType): File {
+ val timeStamp: String = SimpleDateFormat("yyyyMMdd_HHmmss", Locale.getDefault()).format(Date())
+ val storageDir: File = context.filesDir.also { it.mkdirs() }
+ val fileSuffix = when (mediaType) {
+ MediaType.IMAGE -> ".jpg"
+ MediaType.VIDEO -> ".mp4"
+ }
+
+ return File.createTempFile(
+ "${timeStamp}_",
+ fileSuffix,
+ storageDir
+ )
+}
+
+internal enum class MediaType {
+ IMAGE, VIDEO
+}
diff --git a/matrix-sdk-android-flow/src/main/java/org/matrix/android/sdk/flow/FlowRoom.kt b/matrix-sdk-android-flow/src/main/java/org/matrix/android/sdk/flow/FlowRoom.kt
index d737715306..90546756b8 100644
--- a/matrix-sdk-android-flow/src/main/java/org/matrix/android/sdk/flow/FlowRoom.kt
+++ b/matrix-sdk-android-flow/src/main/java/org/matrix/android/sdk/flow/FlowRoom.kt
@@ -21,6 +21,8 @@ import kotlinx.coroutines.flow.Flow
import org.matrix.android.sdk.api.query.QueryStringValue
import org.matrix.android.sdk.api.session.events.model.Event
import org.matrix.android.sdk.api.session.room.Room
+import org.matrix.android.sdk.api.session.room.getStateEvent
+import org.matrix.android.sdk.api.session.room.getTimelineEvent
import org.matrix.android.sdk.api.session.room.members.RoomMemberQueryParams
import org.matrix.android.sdk.api.session.room.model.EventAnnotationsSummary
import org.matrix.android.sdk.api.session.room.model.ReadReceipt
@@ -45,79 +47,81 @@ class FlowRoom(private val room: Room) {
}
fun liveRoomMembers(queryParams: RoomMemberQueryParams): Flow> {
- return room.getRoomMembersLive(queryParams).asFlow()
+ return room.membershipService().getRoomMembersLive(queryParams).asFlow()
.startWith(room.coroutineDispatchers.io) {
- room.getRoomMembers(queryParams)
+ room.membershipService().getRoomMembers(queryParams)
}
}
fun liveAnnotationSummary(eventId: String): Flow> {
- return room.getEventAnnotationsSummaryLive(eventId).asFlow()
+ return room.relationService().getEventAnnotationsSummaryLive(eventId).asFlow()
.startWith(room.coroutineDispatchers.io) {
- room.getEventAnnotationsSummary(eventId).toOptional()
+ room.relationService().getEventAnnotationsSummary(eventId).toOptional()
}
}
fun liveTimelineEvent(eventId: String): Flow> {
- return room.getTimelineEventLive(eventId).asFlow()
+ return room.timelineService().getTimelineEventLive(eventId).asFlow()
.startWith(room.coroutineDispatchers.io) {
room.getTimelineEvent(eventId).toOptional()
}
}
fun liveStateEvent(eventType: String, stateKey: QueryStringValue): Flow> {
- return room.getStateEventLive(eventType, stateKey).asFlow()
+ return room.stateService().getStateEventLive(eventType, stateKey).asFlow()
.startWith(room.coroutineDispatchers.io) {
room.getStateEvent(eventType, stateKey).toOptional()
}
}
fun liveStateEvents(eventTypes: Set): Flow> {
- return room.getStateEventsLive(eventTypes).asFlow()
+ return room.stateService().getStateEventsLive(eventTypes).asFlow()
.startWith(room.coroutineDispatchers.io) {
- room.getStateEvents(eventTypes)
+ room.stateService().getStateEvents(eventTypes)
}
}
fun liveReadMarker(): Flow> {
- return room.getReadMarkerLive().asFlow()
+ return room.readService().getReadMarkerLive().asFlow()
}
fun liveReadReceipt(): Flow> {
- return room.getMyReadReceiptLive().asFlow()
+ return room.readService().getMyReadReceiptLive().asFlow()
}
fun liveEventReadReceipts(eventId: String): Flow> {
- return room.getEventReadReceiptsLive(eventId).asFlow()
+ return room.readService().getEventReadReceiptsLive(eventId).asFlow()
}
fun liveDraft(): Flow> {
- return room.getDraftLive().asFlow()
+ return room.draftService().getDraftLive().asFlow()
.startWith(room.coroutineDispatchers.io) {
- room.getDraft().toOptional()
+ room.draftService().getDraft().toOptional()
}
}
fun liveNotificationState(): Flow {
- return room.getLiveRoomNotificationState().asFlow()
+ return room.roomPushRuleService().getLiveRoomNotificationState().asFlow()
}
fun liveThreadSummaries(): Flow> {
- return room.getAllThreadSummariesLive().asFlow()
+ return room.threadsService().getAllThreadSummariesLive().asFlow()
.startWith(room.coroutineDispatchers.io) {
- room.getAllThreadSummaries()
+ room.threadsService().getAllThreadSummaries()
}
}
+
fun liveThreadList(): Flow> {
- return room.getAllThreadsLive().asFlow()
+ return room.threadsLocalService().getAllThreadsLive().asFlow()
.startWith(room.coroutineDispatchers.io) {
- room.getAllThreads()
+ room.threadsLocalService().getAllThreads()
}
}
+
fun liveLocalUnreadThreadList(): Flow> {
- return room.getMarkedThreadNotificationsLive().asFlow()
+ return room.threadsLocalService().getMarkedThreadNotificationsLive().asFlow()
.startWith(room.coroutineDispatchers.io) {
- room.getMarkedThreadNotifications()
+ room.threadsLocalService().getMarkedThreadNotifications()
}
}
}
diff --git a/matrix-sdk-android-flow/src/main/java/org/matrix/android/sdk/flow/FlowSession.kt b/matrix-sdk-android-flow/src/main/java/org/matrix/android/sdk/flow/FlowSession.kt
index 18753f0705..9f260858f6 100644
--- a/matrix-sdk-android-flow/src/main/java/org/matrix/android/sdk/flow/FlowSession.kt
+++ b/matrix-sdk-android-flow/src/main/java/org/matrix/android/sdk/flow/FlowSession.kt
@@ -46,16 +46,16 @@ import org.matrix.android.sdk.api.util.toOptional
class FlowSession(private val session: Session) {
fun liveRoomSummaries(queryParams: RoomSummaryQueryParams, sortOrder: RoomSortOrder = RoomSortOrder.NONE): Flow> {
- return session.getRoomSummariesLive(queryParams, sortOrder).asFlow()
+ return session.roomService().getRoomSummariesLive(queryParams, sortOrder).asFlow()
.startWith(session.coroutineDispatchers.io) {
- session.getRoomSummaries(queryParams, sortOrder)
+ session.roomService().getRoomSummaries(queryParams, sortOrder)
}
}
fun liveGroupSummaries(queryParams: GroupSummaryQueryParams): Flow> {
- return session.getGroupSummariesLive(queryParams).asFlow()
+ return session.groupService().getGroupSummariesLive(queryParams).asFlow()
.startWith(session.coroutineDispatchers.io) {
- session.getGroupSummaries(queryParams)
+ session.groupService().getGroupSummaries(queryParams)
}
}
@@ -67,9 +67,9 @@ class FlowSession(private val session: Session) {
}
fun liveBreadcrumbs(queryParams: RoomSummaryQueryParams): Flow> {
- return session.getBreadcrumbsLive(queryParams).asFlow()
+ return session.roomService().getBreadcrumbsLive(queryParams).asFlow()
.startWith(session.coroutineDispatchers.io) {
- session.getBreadcrumbs(queryParams)
+ session.roomService().getBreadcrumbs(queryParams)
}
}
@@ -85,43 +85,47 @@ class FlowSession(private val session: Session) {
}
fun livePushers(): Flow> {
- return session.getPushersLive().asFlow()
+ return session.pushersService().getPushersLive().asFlow()
}
fun liveUser(userId: String): Flow> {
- return session.getUserLive(userId).asFlow()
+ return session.userService().getUserLive(userId).asFlow()
.startWith(session.coroutineDispatchers.io) {
- session.getUser(userId).toOptional()
+ session.userService().getUser(userId).toOptional()
}
}
fun liveRoomMember(userId: String, roomId: String): Flow> {
- return session.getRoomMemberLive(userId, roomId).asFlow()
+ return session.roomService().getRoomMemberLive(userId, roomId).asFlow()
.startWith(session.coroutineDispatchers.io) {
- session.getRoomMember(userId, roomId).toOptional()
+ session.roomService().getRoomMember(userId, roomId).toOptional()
}
}
fun liveUsers(): Flow> {
- return session.getUsersLive().asFlow()
+ return session.userService().getUsersLive().asFlow()
}
fun liveIgnoredUsers(): Flow> {
- return session.getIgnoredUsersLive().asFlow()
+ return session.userService().getIgnoredUsersLive().asFlow()
}
fun livePagedUsers(filter: String? = null, excludedUserIds: Set? = null): Flow> {
- return session.getPagedUsersLive(filter, excludedUserIds).asFlow()
+ return session.userService().getPagedUsersLive(filter, excludedUserIds).asFlow()
}
fun liveThreePIds(refreshData: Boolean): Flow> {
- return session.getThreePidsLive(refreshData).asFlow()
- .startWith(session.coroutineDispatchers.io) { session.getThreePids() }
+ return session.profileService().getThreePidsLive(refreshData).asFlow()
+ .startWith(session.coroutineDispatchers.io) {
+ session.profileService().getThreePids()
+ }
}
fun livePendingThreePIds(): Flow> {
- return session.getPendingThreePidsLive().asFlow()
- .startWith(session.coroutineDispatchers.io) { session.getPendingThreePids() }
+ return session.profileService().getPendingThreePidsLive().asFlow()
+ .startWith(session.coroutineDispatchers.io) {
+ session.profileService().getPendingThreePids()
+ }
}
fun liveUserCryptoDevices(userId: String): Flow> {
@@ -179,7 +183,7 @@ class FlowSession(private val session: Session) {
}
fun liveRoomChangeMembershipState(): Flow