<commit_before>== Android

Android layouts tend to be quite simple:

```
    android:
    config:
        spellerPackageKey: https://pahkat.uit.no/main/packages/speller-sme?platform=mobile
        spellerPath: se.bhfst
    primary:
        layers:
            default: |
                á š e r t y u i o p ŋ
                a s d f g h j k l đ ŧ
                \s{shift} ž z č c v b n m \s{backspace}
            shift: |
                Á Š E R T Y U I O P Ŋ
                A S D F G H J K L Đ Ŧ
                \s{shift} Ž Z Č C V B N M \s{backspace}
```

A longpress section is also needed for alternative keys.

The `config` section is used by Pahkat to ???.

Just two layers are standard, `default` and `shift`. Each layer is split by line,
typically to 3 lines of the keyboard. Special keys need to be preceeded by `\s`:

* `\s{shift}` - Shift
* `\s{backspace}` - Delete
* `\s{return}` - Enter<commit_msg>update android docs<commit_after>== Android

=== Target configuration
A file for the desired target has to be specified, and in this case for Android, it could look like this:
```
packageId: no.uit.giella.keyboards.Sami
keyAlias: sami_keyboard
sentryDsn: https://8f857d788e764bd2a13aaafdf0018c92@sentry.io/1341912
version: 3.2.0
build: 113

```

The fields define what follows:

* `packageId` - the id of the package
* `keyAlias` - name
* `sentryDsn` - url to sentry
* `version` - current app version
* `build` - current app build
* `key_store` - store ??
* `key_alias` - alias ??
* `play_store_account` - play store email ??
* `play_store_p12` - play store ??
* `store_password` - password ??
* `key_password` - password ??

=== Keyboard layouts
Android layouts tend to be quite simple:

```
    android:
    config:
        spellerPackageKey: https://pahkat.uit.no/main/packages/speller-sme?platform=mobile
        spellerPath: se.bhfst
    primary:
        layers:
            default: |
                á š e r t y u i o p ŋ
                a s d f g h j k l đ ŧ
                \s{shift} ž z č c v b n m \s{backspace}
            shift: |
                Á Š E R T Y U I O P Ŋ
                A S D F G H J K L Đ Ŧ
                \s{shift} Ž Z Č C V B N M \s{backspace}
```

==== Longpress
A longpress section like this is also needed for alternative keys but isn't specifically exclusive to Android but rather defined independently in the layout file and shared between Android and iOS
```
  longpress:
    A: Å Æ Ä   À Â Ã Ā Ạ
    Á: Q
    E: Ë É È Ê Ẽ Ē Ẹ Ė Ǝ
    I: Ï Í Ì Î Ĩ Ī Ị I
    ...
```

==== Config
The `config` section is used by Pahkat for spellchecking, the fields:

* `spellerPackageKey` - defines the url for the spellchecking files of the layout we want to generate
* `spellerPath` - defines which spellchecker file to use.

==== Layers
Just two layers are standard, `default` and `shift`. Each layer is split by line,
typically to 3 lines of the keyboard. Special keys need to be preceeded by `\s`:

* `\s{shift}` - Shift
* `\s{backspace}` - Delete
* `\s{return}` - Enter
{'fraction_non_alphanumeric': 0.09767441860465116, 'fraction_numerical': 0.011960132890365448, 'mean_word_length': 2.287117903930131, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 3, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 1, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 21, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4402549', 'n_tokens_mistral': 1061, 'n_tokens_neox': 1004, 'n_words': 427}