[
  {
    "path": "README.md",
    "content": "# Android Code Style\n\nCode formatting rules for Android Studio\n\n## Features\n- Based on googles java code style (https://git.io/v5XuB)\n- [Hungarian Notation (m-Prefix)](https://github.com/grandcentrix/AndroidCodeStyle/issues/4)\n- [No star imports](https://github.com/grandcentrix/AndroidCodeStyle/issues/5) except for testing libraries\n- Increase the line length to 118 (default 100)\n- `android:id` after `xmlns` declaration in XML layouts\n- [Keep lifecycle methods together](https://github.com/grandcentrix/AndroidCodeStyle/issues/3)\n- [Keep getters and setters together](https://github.com/grandcentrix/AndroidCodeStyle/issues/7)\n- Advanced code Arrangement rules for Java (Sort methods alphabetically (a-z) and by visibility (`public`-`private`))\n  - Inner classes (classes, interfaces, enums)\n  - Fields (grouped by visibility, a-z)\n  - [public static methods](https://github.com/grandcentrix/AndroidCodeStyle/issues/8) (a-z)\n  - Constructors\n  - [Android Lifecycle methods](https://github.com/grandcentrix/AndroidCodeStyle/issues/3) in correct order\n  - Methods ([grouped by visibility, a-z](https://github.com/grandcentrix/AndroidCodeStyle/issues/6))\n  - static methods (grouped by visibility (except public), a-z)\n - Official [Kotlin Code Style](https://kotlinlang.org/docs/reference/coding-conventions.html)\n\n## Installation on your local machine\n\n### Automatically (the easiest way)\nJust run the [`install`](install.sh) script.\nIt will automatically copy the latest Code Style to each existing `AndroidStudio` and `AndroidStudioPreview` version you have installed.\n\n### Manually (the hard way)\n1. Copy the [`grandcentrix.xml`](styles/grandcentrix.xml) into (MacOS) ``~/Library/Preferences/AndroidStudio{VERSION}/codestyles/`` or (Linux) ``~/.AndroidStudio{VERSION}/config/codestyles/``\n2. Restart AndroidStudio\n3. Select the codestyle scheme via `Preferences --> Editor --> Code Style`.\n\nThe codestyle will be enabled/used for **all projects** that are used with AndroidStudio!\n\n## Enabling project specific code styles for a project\nIf the codestyle is added to the git repository and IntelliJ is configured accordingly each project can have it's own style.\n\n1. Install the [`grandcentrix.xml`](styles/grandcentrix.xml) locally (see above)\n2. Restart AndroidStudio\n3. In AndroidStudio, go to `Preferences --> Editor --> Code style`\n4. Open the scheme list by clicking on the `Scheme:` drop down\n5. From the `Stored in the IDE` section select `grandcentrix`\n6. Click the cogwheel just on the right and select `Copy to project`\n7. Confirm overwriting project settings with the new scheme\n\nFinally add the code style to the git repository:\n```\ngit add -f .idea/codestyles/Project.xml .idea/codestyles/codeStyleConfig.xml\n```\n\n## Contributing\nTo contribute just change the code style locally to your needs.\nThen you can create a PR to this repository.\n\nThe PR should always contain:\n* Some information what have changed.\n* A updated [`grandcentrix.xml`](styles/grandcentrix.xml).\n\n## License\n[CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)\n"
  },
  {
    "path": "install.sh",
    "content": "#!/bin/bash\n# Installs GCX AndroidStudio Code Style into your AndroidStudio codestyles folder.\n# You can optional put a path (to your Android project) as argument.\n# Then the codestyle will be only added there.\n#\n# Inspired by https://git.io/v7jmC\n\necho \"Installing GCX AndroidStudio code style...\"\necho \"\"\n\nLATEST_CODE_STYLE=\"$( cd \"$( dirname \"${BASH_SOURCE[0]}\" )\" && pwd )/styles/grandcentrix.xml\"\nif [ \"$1\" != \"\" ]; then\n  lastChar=${1: -1}\n  if [[ $lastChar == '/' ]]; then\n    TARGET_DIR=(\"$1.idea\")\n  else\n    TARGET_DIR=(\"$1/.idea\")\n  fi\nelse\n  TARGET_DIR=(\"$HOME/Library/Preferences/AndroidStudio*\" \"$HOME/Library/Preferences/AndroidStudioPreview*\" \\\n                \"~/.AndroidStudio*/config\" \"~/.AndroidStudioPreview*/config\")\nfi\n\nfor target in $TARGET_DIR\ndo\n  # create codestyles dir and ...\n  mkdir -p ${target}/codestyles\n  # ... copy to latest style to ${TARGET_DIR}\n  echo \"Copying...\"\n  cp -frv ${LATEST_CODE_STYLE} ${target}/codestyles/\n  if [ \"$1\" != \"\" ]; then\n    echo \"Renaming grandcentrix.xml to Project.xml\"\n    mv ${target}/codestyles/grandcentrix.xml ${target}/codestyles/Project.xml\n  fi\ndone\n\necho \"\"\necho \"Done.\"\necho \"Restart AndroidStudio. Go to Preferences->Editor->Code Style and apply Scheme 'grandcentrix'.\"\n"
  },
  {
    "path": "styles/grandcentrix.xml",
    "content": "<code_scheme name=\"grandcentrix\">\n  <option name=\"FIELD_NAME_PREFIX\" value=\"m\" />\n  <option name=\"STATIC_FIELD_NAME_PREFIX\" value=\"m\" />\n  <option name=\"GENERATE_FINAL_LOCALS\" value=\"true\" />\n  <option name=\"GENERATE_FINAL_PARAMETERS\" value=\"true\" />\n  <option name=\"INSERT_INNER_CLASS_IMPORTS\" value=\"true\" />\n  <option name=\"CLASS_COUNT_TO_USE_IMPORT_ON_DEMAND\" value=\"999\" />\n  <option name=\"NAMES_COUNT_TO_USE_IMPORT_ON_DEMAND\" value=\"999\" />\n  <option name=\"PACKAGES_TO_USE_IMPORT_ON_DEMAND\">\n    <value>\n      <package name=\"org.mockito\" withSubpackages=\"true\" static=\"true\" />\n      <package name=\"org.junit\" withSubpackages=\"true\" static=\"false\" />\n      <package name=\"org.hamcrest\" withSubpackages=\"true\" static=\"true\" />\n      <package name=\"org.assertj.core.api.Java6Assertions\" withSubpackages=\"false\" static=\"true\" />\n      <package name=\"org.assertj.core.api.Assertions\" withSubpackages=\"false\" static=\"true\" />\n    </value>\n  </option>\n  <option name=\"IMPORT_LAYOUT_TABLE\">\n    <value>\n      <package name=\"\" withSubpackages=\"true\" static=\"true\" />\n      <emptyLine />\n      <package name=\"\" withSubpackages=\"true\" static=\"false\" />\n    </value>\n  </option>\n  <option name=\"RIGHT_MARGIN\" value=\"118\" />\n  <option name=\"JD_P_AT_EMPTY_LINES\" value=\"false\" />\n  <option name=\"JD_KEEP_EMPTY_PARAMETER\" value=\"false\" />\n  <option name=\"JD_KEEP_EMPTY_EXCEPTION\" value=\"false\" />\n  <option name=\"JD_KEEP_EMPTY_RETURN\" value=\"false\" />\n  <option name=\"JD_PRESERVE_LINE_FEEDS\" value=\"true\" />\n  <option name=\"HTML_SPACE_INSIDE_EMPTY_TAG\" value=\"true\" />\n  <option name=\"KEEP_CONTROL_STATEMENT_IN_ONE_LINE\" value=\"false\" />\n  <option name=\"KEEP_BLANK_LINES_IN_CODE\" value=\"1\" />\n  <option name=\"BLANK_LINES_AROUND_FIELD\" value=\"1\" />\n  <option name=\"BLANK_LINES_AFTER_CLASS_HEADER\" value=\"1\" />\n  <option name=\"ALIGN_MULTILINE_PARAMETERS\" value=\"false\" />\n  <option name=\"ALIGN_MULTILINE_FOR\" value=\"false\" />\n  <option name=\"CALL_PARAMETERS_WRAP\" value=\"1\" />\n  <option name=\"METHOD_PARAMETERS_WRAP\" value=\"1\" />\n  <option name=\"EXTENDS_LIST_WRAP\" value=\"1\" />\n  <option name=\"THROWS_LIST_WRAP\" value=\"1\" />\n  <option name=\"EXTENDS_KEYWORD_WRAP\" value=\"1\" />\n  <option name=\"THROWS_KEYWORD_WRAP\" value=\"1\" />\n  <option name=\"METHOD_CALL_CHAIN_WRAP\" value=\"1\" />\n  <option name=\"BINARY_OPERATION_WRAP\" value=\"1\" />\n  <option name=\"BINARY_OPERATION_SIGN_ON_NEXT_LINE\" value=\"true\" />\n  <option name=\"TERNARY_OPERATION_WRAP\" value=\"1\" />\n  <option name=\"TERNARY_OPERATION_SIGNS_ON_NEXT_LINE\" value=\"true\" />\n  <option name=\"FOR_STATEMENT_WRAP\" value=\"1\" />\n  <option name=\"ARRAY_INITIALIZER_WRAP\" value=\"1\" />\n  <option name=\"ASSIGNMENT_WRAP\" value=\"1\" />\n  <option name=\"PLACE_ASSIGNMENT_SIGN_ON_NEXT_LINE\" value=\"true\" />\n  <option name=\"WRAP_COMMENTS\" value=\"true\" />\n  <option name=\"IF_BRACE_FORCE\" value=\"3\" />\n  <option name=\"DOWHILE_BRACE_FORCE\" value=\"3\" />\n  <option name=\"WHILE_BRACE_FORCE\" value=\"3\" />\n  <option name=\"FOR_BRACE_FORCE\" value=\"3\" />\n  <HTMLCodeStyleSettings>\n    <option name=\"HTML_SPACE_INSIDE_EMPTY_TAG\" value=\"true\" />\n  </HTMLCodeStyleSettings>\n  <JavaCodeStyleSettings>\n    <option name=\"FIELD_NAME_PREFIX\" value=\"m\" />\n    <option name=\"STATIC_FIELD_NAME_PREFIX\" value=\"m\" />\n    <option name=\"GENERATE_FINAL_LOCALS\" value=\"true\" />\n    <option name=\"GENERATE_FINAL_PARAMETERS\" value=\"true\" />\n    <option name=\"INSERT_INNER_CLASS_IMPORTS\" value=\"true\" />\n    <option name=\"CLASS_COUNT_TO_USE_IMPORT_ON_DEMAND\" value=\"999\" />\n    <option name=\"NAMES_COUNT_TO_USE_IMPORT_ON_DEMAND\" value=\"999\" />\n    <option name=\"PACKAGES_TO_USE_IMPORT_ON_DEMAND\">\n      <value>\n        <package name=\"org.mockito\" withSubpackages=\"true\" static=\"true\" />\n        <package name=\"org.junit\" withSubpackages=\"true\" static=\"false\" />\n        <package name=\"org.hamcrest\" withSubpackages=\"true\" static=\"true\" />\n        <package name=\"org.assertj.core.api.Java6Assertions\" withSubpackages=\"false\" static=\"true\" />\n        <package name=\"org.assertj.core.api.Assertions\" withSubpackages=\"false\" static=\"true\" />\n      </value>\n    </option>\n    <option name=\"IMPORT_LAYOUT_TABLE\">\n      <value>\n        <package name=\"\" withSubpackages=\"true\" static=\"true\" />\n        <emptyLine />\n        <package name=\"\" withSubpackages=\"true\" static=\"false\" />\n      </value>\n    </option>\n    <option name=\"JD_P_AT_EMPTY_LINES\" value=\"false\" />\n    <option name=\"JD_KEEP_EMPTY_PARAMETER\" value=\"false\" />\n    <option name=\"JD_KEEP_EMPTY_EXCEPTION\" value=\"false\" />\n    <option name=\"JD_KEEP_EMPTY_RETURN\" value=\"false\" />\n    <option name=\"JD_PRESERVE_LINE_FEEDS\" value=\"true\" />\n  </JavaCodeStyleSettings>\n  <JetCodeStyleSettings>\n    <option name=\"PACKAGES_TO_USE_STAR_IMPORTS\">\n      <value>\n        <package name=\"com.nhaarman.mockito_kotlin\" withSubpackages=\"false\" static=\"false\" />\n        <package name=\"io.mockk\" withSubpackages=\"true\" static=\"false\" />\n        <package name=\"org.junit\" withSubpackages=\"true\" static=\"false\" />\n        <package name=\"org.mockito\" withSubpackages=\"true\" static=\"false\" />\n        <package name=\"org.hamcrest\" withSubpackages=\"true\" static=\"false\" />\n        <package name=\"org.assertj.core.api.Assertions\" withSubpackages=\"false\" static=\"false\" />\n      </value>\n    </option>\n    <option name=\"NAME_COUNT_TO_USE_STAR_IMPORT\" value=\"2147483647\" />\n    <option name=\"NAME_COUNT_TO_USE_STAR_IMPORT_FOR_MEMBERS\" value=\"2147483647\" />\n    <option name=\"IMPORT_NESTED_CLASSES\" value=\"true\" />\n    <option name=\"CODE_STYLE_DEFAULTS\" value=\"KOTLIN_OFFICIAL\" />\n  </JetCodeStyleSettings>\n  <Objective-C>\n    <option name=\"INDENT_NAMESPACE_MEMBERS\" value=\"0\" />\n    <option name=\"INDENT_C_STRUCT_MEMBERS\" value=\"2\" />\n    <option name=\"INDENT_CLASS_MEMBERS\" value=\"2\" />\n    <option name=\"INDENT_VISIBILITY_KEYWORDS\" value=\"1\" />\n    <option name=\"INDENT_INSIDE_CODE_BLOCK\" value=\"2\" />\n    <option name=\"KEEP_STRUCTURES_IN_ONE_LINE\" value=\"true\" />\n    <option name=\"FUNCTION_PARAMETERS_WRAP\" value=\"5\" />\n    <option name=\"FUNCTION_CALL_ARGUMENTS_WRAP\" value=\"5\" />\n    <option name=\"TEMPLATE_CALL_ARGUMENTS_WRAP\" value=\"5\" />\n    <option name=\"TEMPLATE_CALL_ARGUMENTS_ALIGN_MULTILINE\" value=\"true\" />\n    <option name=\"ALIGN_INIT_LIST_IN_COLUMNS\" value=\"false\" />\n    <option name=\"SPACE_BEFORE_SUPERCLASS_COLON\" value=\"false\" />\n  </Objective-C>\n  <Objective-C-extensions>\n    <extensions>\n      <pair source=\"cpp\" header=\"h\" fileNamingConvention=\"NONE\" />\n      <pair source=\"cc\" header=\"h\" fileNamingConvention=\"NONE\" />\n      <pair source=\"c\" header=\"h\" fileNamingConvention=\"NONE\" />\n    </extensions>\n  </Objective-C-extensions>\n  <XML>\n    <option name=\"XML_LEGACY_SETTINGS_IMPORTED\" value=\"true\" />\n  </XML>\n  <codeStyleSettings language=\"Groovy\">\n    <option name=\"KEEP_CONTROL_STATEMENT_IN_ONE_LINE\" value=\"false\" />\n    <option name=\"KEEP_BLANK_LINES_IN_CODE\" value=\"1\" />\n    <option name=\"BLANK_LINES_AROUND_FIELD\" value=\"1\" />\n    <option name=\"BLANK_LINES_AFTER_CLASS_HEADER\" value=\"1\" />\n    <option name=\"ALIGN_MULTILINE_PARAMETERS\" value=\"false\" />\n    <option name=\"ALIGN_MULTILINE_FOR\" value=\"false\" />\n    <option name=\"CALL_PARAMETERS_WRAP\" value=\"1\" />\n    <option name=\"METHOD_PARAMETERS_WRAP\" value=\"1\" />\n    <option name=\"EXTENDS_LIST_WRAP\" value=\"1\" />\n    <option name=\"THROWS_LIST_WRAP\" value=\"1\" />\n    <option name=\"EXTENDS_KEYWORD_WRAP\" value=\"1\" />\n    <option name=\"THROWS_KEYWORD_WRAP\" value=\"1\" />\n    <option name=\"METHOD_CALL_CHAIN_WRAP\" value=\"1\" />\n    <option name=\"BINARY_OPERATION_WRAP\" value=\"1\" />\n    <option name=\"TERNARY_OPERATION_WRAP\" value=\"1\" />\n    <option name=\"FOR_STATEMENT_WRAP\" value=\"1\" />\n    <option name=\"ASSIGNMENT_WRAP\" value=\"1\" />\n    <option name=\"IF_BRACE_FORCE\" value=\"3\" />\n    <option name=\"WHILE_BRACE_FORCE\" value=\"3\" />\n    <option name=\"FOR_BRACE_FORCE\" value=\"3\" />\n  </codeStyleSettings>\n  <codeStyleSettings language=\"JAVA\">\n    <option name=\"KEEP_CONTROL_STATEMENT_IN_ONE_LINE\" value=\"false\" />\n    <option name=\"KEEP_BLANK_LINES_IN_CODE\" value=\"1\" />\n    <option name=\"BLANK_LINES_AROUND_FIELD\" value=\"1\" />\n    <option name=\"BLANK_LINES_AFTER_CLASS_HEADER\" value=\"1\" />\n    <option name=\"ALIGN_MULTILINE_PARAMETERS\" value=\"false\" />\n    <option name=\"ALIGN_MULTILINE_FOR\" value=\"false\" />\n    <option name=\"CALL_PARAMETERS_WRAP\" value=\"1\" />\n    <option name=\"METHOD_PARAMETERS_WRAP\" value=\"1\" />\n    <option name=\"EXTENDS_LIST_WRAP\" value=\"1\" />\n    <option name=\"THROWS_LIST_WRAP\" value=\"1\" />\n    <option name=\"EXTENDS_KEYWORD_WRAP\" value=\"1\" />\n    <option name=\"THROWS_KEYWORD_WRAP\" value=\"1\" />\n    <option name=\"METHOD_CALL_CHAIN_WRAP\" value=\"1\" />\n    <option name=\"BINARY_OPERATION_WRAP\" value=\"1\" />\n    <option name=\"BINARY_OPERATION_SIGN_ON_NEXT_LINE\" value=\"true\" />\n    <option name=\"TERNARY_OPERATION_WRAP\" value=\"1\" />\n    <option name=\"TERNARY_OPERATION_SIGNS_ON_NEXT_LINE\" value=\"true\" />\n    <option name=\"FOR_STATEMENT_WRAP\" value=\"1\" />\n    <option name=\"ARRAY_INITIALIZER_WRAP\" value=\"1\" />\n    <option name=\"ASSIGNMENT_WRAP\" value=\"1\" />\n    <option name=\"PLACE_ASSIGNMENT_SIGN_ON_NEXT_LINE\" value=\"true\" />\n    <option name=\"WRAP_COMMENTS\" value=\"true\" />\n    <option name=\"IF_BRACE_FORCE\" value=\"3\" />\n    <option name=\"DOWHILE_BRACE_FORCE\" value=\"3\" />\n    <option name=\"WHILE_BRACE_FORCE\" value=\"3\" />\n    <option name=\"FOR_BRACE_FORCE\" value=\"3\" />\n    <arrangement>\n      <groups>\n        <group>\n          <type>GETTERS_AND_SETTERS</type>\n          <order>KEEP</order>\n        </group>\n        <group>\n          <type>OVERRIDDEN_METHODS</type>\n          <order></order>\n        </group>\n        <group>\n          <type>DEPENDENT_METHODS</type>\n          <order></order>\n        </group>\n      </groups>\n      <rules>\n        <section>\n          <rule>\n            <match>\n              <AND>\n                <CLASS>true</CLASS>\n                <STATIC>true</STATIC>\n                <visibility />\n              </AND>\n            </match>\n          </rule>\n        </section>\n        <section>\n          <rule>\n            <match>\n              <AND>\n                <CLASS>true</CLASS>\n                <visibility />\n              </AND>\n            </match>\n          </rule>\n        </section>\n        <section>\n          <rule>\n            <match>\n              <AND>\n                <INTERFACE>true</INTERFACE>\n                <visibility />\n              </AND>\n            </match>\n          </rule>\n        </section>\n        <section>\n          <rule>\n            <match>\n              <AND>\n                <ENUM>true</ENUM>\n                <visibility />\n              </AND>\n            </match>\n          </rule>\n        </section>\n        <section>\n          <rule>\n            <match>\n              <AND>\n                <FIELD>true</FIELD>\n                <STATIC>true</STATIC>\n              </AND>\n            </match>\n          </rule>\n        </section>\n        <section>\n          <rule>\n            <match>\n              <AND>\n                <FIELD>true</FIELD>\n                <PUBLIC>true</PUBLIC>\n              </AND>\n            </match>\n            <order>BY_NAME</order>\n          </rule>\n        </section>\n        <section>\n          <rule>\n            <match>\n              <AND>\n                <FIELD>true</FIELD>\n                <PROTECTED>true</PROTECTED>\n              </AND>\n            </match>\n            <order>BY_NAME</order>\n          </rule>\n        </section>\n        <section>\n          <rule>\n            <match>\n              <AND>\n                <FIELD>true</FIELD>\n                <PACKAGE_PRIVATE>true</PACKAGE_PRIVATE>\n              </AND>\n            </match>\n            <order>BY_NAME</order>\n          </rule>\n        </section>\n        <section>\n          <rule>\n            <match>\n              <AND>\n                <FIELD>true</FIELD>\n                <PRIVATE>true</PRIVATE>\n              </AND>\n            </match>\n            <order>BY_NAME</order>\n          </rule>\n        </section>\n        <section>\n          <rule>\n            <match>\n              <AND>\n                <METHOD>true</METHOD>\n                <PUBLIC>true</PUBLIC>\n                <STATIC>true</STATIC>\n              </AND>\n            </match>\n            <order>BY_NAME</order>\n          </rule>\n        </section>\n        <section>\n          <rule>\n            <match>\n              <CONSTRUCTOR>true</CONSTRUCTOR>\n            </match>\n          </rule>\n        </section>\n        <section>\n          <rule>\n            <match>\n              <AND>\n                <NAME>onAttach</NAME>\n                <OVERRIDDEN />\n              </AND>\n            </match>\n          </rule>\n        </section>\n        <section>\n          <rule>\n            <match>\n              <AND>\n                <NAME>onCreate</NAME>\n                <OVERRIDDEN />\n              </AND>\n            </match>\n          </rule>\n        </section>\n        <section>\n          <rule>\n            <match>\n              <AND>\n                <NAME>onCreateView</NAME>\n                <OVERRIDDEN />\n              </AND>\n            </match>\n          </rule>\n        </section>\n        <section>\n          <rule>\n            <match>\n              <AND>\n                <NAME>onViewCreated</NAME>\n                <OVERRIDDEN />\n              </AND>\n            </match>\n          </rule>\n        </section>\n        <section>\n          <rule>\n            <match>\n              <AND>\n                <NAME>onActivityCreated</NAME>\n                <OVERRIDDEN />\n              </AND>\n            </match>\n          </rule>\n        </section>\n        <section>\n          <rule>\n            <match>\n              <AND>\n                <NAME>onViewStateRestored</NAME>\n                <OVERRIDDEN />\n              </AND>\n            </match>\n          </rule>\n        </section>\n        <section>\n          <rule>\n            <match>\n              <AND>\n                <NAME>onStart</NAME>\n                <OVERRIDDEN />\n              </AND>\n            </match>\n          </rule>\n        </section>\n        <section>\n          <rule>\n            <match>\n              <AND>\n                <NAME>onActivityResult</NAME>\n                <OVERRIDDEN />\n              </AND>\n            </match>\n          </rule>\n        </section>\n        <section>\n          <rule>\n            <match>\n              <AND>\n                <NAME>onRestoreInstanceState</NAME>\n                <OVERRIDDEN />\n              </AND>\n            </match>\n          </rule>\n        </section>\n        <section>\n          <rule>\n            <match>\n              <AND>\n                <NAME>onPostCreate</NAME>\n                <OVERRIDDEN />\n              </AND>\n            </match>\n          </rule>\n        </section>\n        <section>\n          <rule>\n            <match>\n              <AND>\n                <NAME>onRestart</NAME>\n                <OVERRIDDEN />\n              </AND>\n            </match>\n          </rule>\n        </section>\n        <section>\n          <rule>\n            <match>\n              <AND>\n                <NAME>onResume</NAME>\n                <OVERRIDDEN />\n              </AND>\n            </match>\n          </rule>\n        </section>\n        <section>\n          <rule>\n            <match>\n              <AND>\n                <NAME>onPostResume</NAME>\n                <OVERRIDDEN />\n              </AND>\n            </match>\n          </rule>\n        </section>\n        <section>\n          <rule>\n            <match>\n              <AND>\n                <NAME>onNewIntent</NAME>\n                <OVERRIDDEN />\n              </AND>\n            </match>\n          </rule>\n        </section>\n        <section>\n          <rule>\n            <match>\n              <AND>\n                <NAME>onPause</NAME>\n                <OVERRIDDEN />\n              </AND>\n            </match>\n          </rule>\n        </section>\n        <section>\n          <rule>\n            <match>\n              <AND>\n                <NAME>onStop</NAME>\n                <OVERRIDDEN />\n              </AND>\n            </match>\n          </rule>\n        </section>\n        <section>\n          <rule>\n            <match>\n              <AND>\n                <NAME>onSaveInstanceState</NAME>\n                <OVERRIDDEN />\n              </AND>\n            </match>\n          </rule>\n        </section>\n        <section>\n          <rule>\n            <match>\n              <AND>\n                <NAME>onRetainNonConfigurationInstance</NAME>\n                <OVERRIDDEN />\n              </AND>\n            </match>\n          </rule>\n        </section>\n        <section>\n          <rule>\n            <match>\n              <AND>\n                <NAME>onDestroyView</NAME>\n                <OVERRIDDEN />\n              </AND>\n            </match>\n          </rule>\n        </section>\n        <section>\n          <rule>\n            <match>\n              <AND>\n                <NAME>onDestroy</NAME>\n                <OVERRIDDEN />\n              </AND>\n            </match>\n          </rule>\n        </section>\n        <section>\n          <rule>\n            <match>\n              <AND>\n                <NAME>onDetach</NAME>\n                <OVERRIDDEN />\n              </AND>\n            </match>\n          </rule>\n        </section>\n        <section>\n          <rule>\n            <match>\n              <AND>\n                <NAME>onRequestPermissionsResult</NAME>\n                <OVERRIDDEN />\n              </AND>\n            </match>\n          </rule>\n        </section>\n        <section>\n          <rule>\n            <match>\n              <AND>\n                <METHOD>true</METHOD>\n                <PUBLIC>true</PUBLIC>\n              </AND>\n            </match>\n            <order>BY_NAME</order>\n          </rule>\n        </section>\n        <section>\n          <rule>\n            <match>\n              <AND>\n                <METHOD>true</METHOD>\n                <PROTECTED>true</PROTECTED>\n              </AND>\n            </match>\n            <order>BY_NAME</order>\n          </rule>\n        </section>\n        <section>\n          <rule>\n            <match>\n              <AND>\n                <METHOD>true</METHOD>\n                <PACKAGE_PRIVATE>true</PACKAGE_PRIVATE>\n              </AND>\n            </match>\n            <order>BY_NAME</order>\n          </rule>\n        </section>\n        <section>\n          <rule>\n            <match>\n              <AND>\n                <METHOD>true</METHOD>\n                <PRIVATE>true</PRIVATE>\n              </AND>\n            </match>\n            <order>BY_NAME</order>\n          </rule>\n        </section>\n        <section>\n          <rule>\n            <match>\n              <AND>\n                <METHOD>true</METHOD>\n                <PROTECTED>true</PROTECTED>\n                <STATIC>true</STATIC>\n              </AND>\n            </match>\n            <order>BY_NAME</order>\n          </rule>\n        </section>\n        <section>\n          <rule>\n            <match>\n              <AND>\n                <METHOD>true</METHOD>\n                <PACKAGE_PRIVATE>true</PACKAGE_PRIVATE>\n                <STATIC>true</STATIC>\n              </AND>\n            </match>\n            <order>BY_NAME</order>\n          </rule>\n        </section>\n        <section>\n          <rule>\n            <match>\n              <AND>\n                <METHOD>true</METHOD>\n                <PRIVATE>true</PRIVATE>\n                <STATIC>true</STATIC>\n              </AND>\n            </match>\n            <order>BY_NAME</order>\n          </rule>\n        </section>\n      </rules>\n    </arrangement>\n  </codeStyleSettings>\n  <codeStyleSettings language=\"JSON\">\n    <option name=\"KEEP_BLANK_LINES_IN_CODE\" value=\"1\" />\n  </codeStyleSettings>\n  <codeStyleSettings language=\"ObjectiveC\">\n    <option name=\"KEEP_BLANK_LINES_BEFORE_RBRACE\" value=\"1\" />\n    <option name=\"BLANK_LINES_BEFORE_IMPORTS\" value=\"0\" />\n    <option name=\"BLANK_LINES_AFTER_IMPORTS\" value=\"0\" />\n    <option name=\"BLANK_LINES_AROUND_CLASS\" value=\"0\" />\n    <option name=\"BLANK_LINES_AROUND_METHOD\" value=\"0\" />\n    <option name=\"BLANK_LINES_AROUND_METHOD_IN_INTERFACE\" value=\"0\" />\n    <option name=\"ALIGN_MULTILINE_BINARY_OPERATION\" value=\"false\" />\n    <option name=\"BINARY_OPERATION_SIGN_ON_NEXT_LINE\" value=\"true\" />\n    <option name=\"FOR_STATEMENT_WRAP\" value=\"1\" />\n    <option name=\"ASSIGNMENT_WRAP\" value=\"1\" />\n    <indentOptions>\n      <option name=\"INDENT_SIZE\" value=\"2\" />\n      <option name=\"CONTINUATION_INDENT_SIZE\" value=\"4\" />\n    </indentOptions>\n  </codeStyleSettings>\n  <codeStyleSettings language=\"XML\">\n    <indentOptions>\n      <option name=\"CONTINUATION_INDENT_SIZE\" value=\"4\" />\n    </indentOptions>\n    <arrangement>\n      <rules>\n        <section>\n          <rule>\n            <match>\n              <AND>\n                <NAME>xmlns:android</NAME>\n                <XML_ATTRIBUTE />\n              </AND>\n            </match>\n          </rule>\n        </section>\n        <section>\n          <rule>\n            <match>\n              <AND>\n                <NAME>xmlns:.*</NAME>\n                <XML_ATTRIBUTE />\n              </AND>\n            </match>\n            <order>BY_NAME</order>\n          </rule>\n        </section>\n        <section>\n          <rule>\n            <match>\n              <AND>\n                <NAME>.*:id</NAME>\n                <XML_ATTRIBUTE />\n                <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>\n              </AND>\n            </match>\n          </rule>\n        </section>\n        <section>\n          <rule>\n            <match>\n              <AND>\n                <NAME>.*:name</NAME>\n                <XML_ATTRIBUTE />\n                <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>\n              </AND>\n            </match>\n          </rule>\n        </section>\n        <section>\n          <rule>\n            <match>\n              <AND>\n                <NAME>name</NAME>\n                <XML_ATTRIBUTE />\n                <XML_NAMESPACE>^$</XML_NAMESPACE>\n              </AND>\n            </match>\n          </rule>\n        </section>\n        <section>\n          <rule>\n            <match>\n              <AND>\n                <NAME>style</NAME>\n                <XML_ATTRIBUTE />\n                <XML_NAMESPACE>^$</XML_NAMESPACE>\n              </AND>\n            </match>\n          </rule>\n        </section>\n        <section>\n          <rule>\n            <match>\n              <AND>\n                <NAME>.*</NAME>\n                <XML_ATTRIBUTE />\n                <XML_NAMESPACE>^$</XML_NAMESPACE>\n              </AND>\n            </match>\n            <order>BY_NAME</order>\n          </rule>\n        </section>\n        <section>\n          <rule>\n            <match>\n              <AND>\n                <NAME>.*:layout_width</NAME>\n                <XML_ATTRIBUTE />\n                <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>\n              </AND>\n            </match>\n          </rule>\n        </section>\n        <section>\n          <rule>\n            <match>\n              <AND>\n                <NAME>.*:layout_height</NAME>\n                <XML_ATTRIBUTE />\n                <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>\n              </AND>\n            </match>\n          </rule>\n        </section>\n        <section>\n          <rule>\n            <match>\n              <AND>\n                <NAME>.*:layout_.*</NAME>\n                <XML_ATTRIBUTE />\n                <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>\n              </AND>\n            </match>\n            <order>BY_NAME</order>\n          </rule>\n        </section>\n        <section>\n          <rule>\n            <match>\n              <AND>\n                <NAME>.*:width</NAME>\n                <XML_ATTRIBUTE />\n                <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>\n              </AND>\n            </match>\n            <order>BY_NAME</order>\n          </rule>\n        </section>\n        <section>\n          <rule>\n            <match>\n              <AND>\n                <NAME>.*:height</NAME>\n                <XML_ATTRIBUTE />\n                <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>\n              </AND>\n            </match>\n            <order>BY_NAME</order>\n          </rule>\n        </section>\n        <section>\n          <rule>\n            <match>\n              <AND>\n                <NAME>.*</NAME>\n                <XML_ATTRIBUTE />\n                <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>\n              </AND>\n            </match>\n            <order>BY_NAME</order>\n          </rule>\n        </section>\n        <section>\n          <rule>\n            <match>\n              <AND>\n                <NAME>.*</NAME>\n                <XML_ATTRIBUTE />\n                <XML_NAMESPACE>.*</XML_NAMESPACE>\n              </AND>\n            </match>\n            <order>BY_NAME</order>\n          </rule>\n        </section>\n      </rules>\n    </arrangement>\n  </codeStyleSettings>\n  <codeStyleSettings language=\"kotlin\">\n    <option name=\"CODE_STYLE_DEFAULTS\" value=\"KOTLIN_OFFICIAL\" />\n    <option name=\"KEEP_BLANK_LINES_IN_DECLARATIONS\" value=\"1\" />\n    <option name=\"KEEP_BLANK_LINES_IN_CODE\" value=\"1\" />\n    <option name=\"KEEP_BLANK_LINES_BEFORE_RBRACE\" value=\"0\" />\n    <option name=\"BLANK_LINES_AFTER_CLASS_HEADER\" value=\"1\" />\n    <option name=\"ALIGN_MULTILINE_PARAMETERS\" value=\"false\" />\n  </codeStyleSettings>\n</code_scheme>\n"
  }
]