Total engine refactoring (#44)
* totally refactored the Languages, the Database and the IME module. New and more clear folder/package structure * CharMap and LangHelper are no more * removed many unused icons, translations and other resources * deleted the old keymap samples * Update user-manual.md * Preferences are stored in Preferences, not in the database. * removed some unclear and unused settings from the Preferences screen and the code. * fixed issues with displaying the UI * removed all non-English words and words with foreign spelling from the English dictionary * 0 now works as it should in all modes. * a more clear newline character in suggestions view * last used input mode is now preserved and restored the next time * removed the smiley and symbol dialogs * capsMode -> textCase * language names are no longer translated * updated build instructions * better use of threads for DB operations * current text candidate is as long as the sequence, to make it more intuitive * single characters are added to the end of the suggestion, when there are no more in the database * Added ѝ to Bulgarian character map * disabled adding words in a user-friendly manner * when adding a new word is not possible, a toast message appears, for better user experience * an error is logged when there are duplicate language IDs * settings -> settings_legacy * custom Logger class for easier debugging and no logcat flood in the Release version * removed unnecessary single letters and invalid words from the dictionaries * more translations cleanup; also corrected some weird translations * upgraded gradle
3
.gitignore
vendored
|
|
@ -12,9 +12,10 @@
|
||||||
bin/
|
bin/
|
||||||
gen/
|
gen/
|
||||||
|
|
||||||
# Gradle files
|
# Gradle/build files
|
||||||
.gradle/
|
.gradle/
|
||||||
build/
|
build/
|
||||||
|
release/
|
||||||
|
|
||||||
# Local configuration file (sdk path, etc)
|
# Local configuration file (sdk path, etc)
|
||||||
local.properties
|
local.properties
|
||||||
|
|
|
||||||
|
|
@ -1,53 +1,38 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
<manifest
|
||||||
|
android:versionCode="5"
|
||||||
|
android:versionName="git"
|
||||||
package="io.github.sspanak.tt9"
|
package="io.github.sspanak.tt9"
|
||||||
android:versionCode="4"
|
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
android:versionName="git" >
|
|
||||||
|
|
||||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
|
||||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
||||||
<uses-configuration
|
<uses-configuration android:reqFiveWayNav="true" android:reqHardKeyboard="true" android:reqKeyboardType="qwerty"/>
|
||||||
android:reqFiveWayNav="true"
|
<uses-configuration android:reqFiveWayNav="true" android:reqHardKeyboard="true" android:reqKeyboardType="twelvekey"/>
|
||||||
android:reqHardKeyboard="true"
|
|
||||||
android:reqKeyboardType="qwerty"
|
|
||||||
/>
|
|
||||||
<uses-configuration
|
|
||||||
android:reqFiveWayNav="true"
|
|
||||||
android:reqKeyboardType="twelvekey"
|
|
||||||
android:reqHardKeyboard="true"
|
|
||||||
/>
|
|
||||||
<application
|
<application
|
||||||
android:allowBackup="false"
|
android:allowBackup="false"
|
||||||
android:icon="@drawable/ic_launcher"
|
android:icon="@drawable/ic_launcher"
|
||||||
android:label="@string/ime_name"
|
android:label="@string/app_name"
|
||||||
android:theme="@style/AppTheme" >
|
android:theme="@style/AppTheme">
|
||||||
<service
|
|
||||||
android:name="io.github.sspanak.tt9.TraditionalT9"
|
|
||||||
android:permission="android.permission.BIND_INPUT_METHOD" >
|
|
||||||
<intent-filter>
|
|
||||||
<action android:name="android.view.InputMethod" />
|
|
||||||
</intent-filter>
|
|
||||||
|
|
||||||
<meta-data
|
<service android:name="io.github.sspanak.tt9.ime.TraditionalT9" android:permission="android.permission.BIND_INPUT_METHOD">
|
||||||
android:name="android.view.im"
|
<intent-filter>
|
||||||
android:resource="@xml/method" />
|
<action android:name="android.view.InputMethod"/>
|
||||||
|
</intent-filter>
|
||||||
|
<meta-data android:name="android.view.im" android:resource="@xml/method"/>
|
||||||
</service>
|
</service>
|
||||||
|
|
||||||
<service android:name=".DBUpdateService" />
|
<activity android:label="@string/app_settings" android:name="io.github.sspanak.tt9.ui.TraditionalT9Settings">
|
||||||
|
|
||||||
<activity
|
|
||||||
android:name="io.github.sspanak.tt9.TraditionalT9Settings"
|
|
||||||
android:label="@string/traditionalt9_settings" >
|
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.MAIN" />
|
<action android:name="android.intent.action.MAIN"/>
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
</activity>
|
</activity>
|
||||||
<activity
|
|
||||||
android:theme="@android:style/Theme.Dialog"
|
|
||||||
android:name="io.github.sspanak.tt9.AddWordAct"
|
|
||||||
android:label="@string/title_activity_add_word"
|
|
||||||
android:excludeFromRecents="true" >
|
|
||||||
</activity>
|
|
||||||
</application>
|
|
||||||
|
|
||||||
|
<activity
|
||||||
|
android:excludeFromRecents="true"
|
||||||
|
android:label="@string/add_word_title"
|
||||||
|
android:name="io.github.sspanak.tt9.ui.AddWordAct"
|
||||||
|
android:theme="@android:style/Theme.Dialog"/>
|
||||||
|
</application>
|
||||||
</manifest>
|
</manifest>
|
||||||
|
|
|
||||||
45
README.md
|
|
@ -21,34 +21,37 @@ That's it! Now you should be able to deploy and debug the app on your device.
|
||||||
You can find more info in this [Github issue](https://github.com/android/input-samples/issues/18).
|
You can find more info in this [Github issue](https://github.com/android/input-samples/issues/18).
|
||||||
|
|
||||||
### Building a Release .apk
|
### Building a Release .apk
|
||||||
The project is configured to build an unsigned release variant by default. You just need to select the "release" variant from Android Studio options, then `Build -> Rebuild Project`. After that, just ignore all warnings until you get to the end of the process. You will find the `.apk` in the generated 'build/' folder.
|
The project is configured to build an unsigned release variant by default.
|
||||||
|
|
||||||
|
- Select the "release" variant from Android Studio options (`Build` -> `Select Build Variant...`)
|
||||||
|
- `Build` -> `Rebuild Project`. After that, just ignore all warnings until you get to the end of the process.
|
||||||
|
- Find the `.apk` in the generated 'build/' folder.
|
||||||
|
|
||||||
|
_Note that it may not be possible to install an unsigned `.apk` on newer versions of Android. You must either manually sign it or build a signed one instead._
|
||||||
|
|
||||||
### Building a Signed .apk
|
### Building a Signed .apk
|
||||||
- Make sure you have a signing key. If you don't have one, follow the [official manual](https://developer.android.com/studio/publish/app-signing#sign-apk).
|
Make sure you have a signing key. If you don't have one, follow the [official manual](https://developer.android.com/studio/publish/app-signing#sign-apk).
|
||||||
- In `build.gradle` find the `signingConfigs` and `buildTypes` sections and uncomment them.
|
|
||||||
- Set properly the environment variables listed in `signingConfigs.release` _(You may need to restart Android Studio after that)_. Alternatively, you may simply type the actual key path, alias and passwords there. **Just make sure not to commit them!**
|
- Select `Build` -> `Generate Signed Bundle / APK...`.
|
||||||
- Build the project normally. Android Studio should show you where it has generated the signed `.apk` file. If not, look for it in the `build/` folder.
|
- Select `APK` and proceed to the next screen.
|
||||||
|
- Enter your key details (or create a new one) and continue to the next screen.
|
||||||
|
- Choose the "Release" variant, then click `Finish` to start building.
|
||||||
|
- Android Studio will tell you where the `.apk` is, but if it does not, try looking for it in the `release/` folder.
|
||||||
|
|
||||||
## Adding a new language
|
## Adding a new language
|
||||||
To support a new language one needs to:
|
To support a new language one needs to:
|
||||||
|
|
||||||
- Modify CharMap.java
|
|
||||||
- New Map needs to be created with the characters to be encountered in addWord or in the user dictionary when loaded.
|
|
||||||
- New character array needs to be added for characters that are to cycle on each number press.
|
|
||||||
- New array needs to be made to tell where the capital letters start in that array.
|
|
||||||
- modify LangHelper.java
|
|
||||||
- Add status icons
|
- Add status icons
|
||||||
- Create proper icons for each mode (e.g. "Ab", "En", "12") and each screen size. The font must be Roboto Lt at an adequate size to fit the icon square with minimum padding. Text must be white and the background must be transparent as per the [official Android guide](https://android-doc.github.io/guide/practices/ui_guidelines/icon_design_status_bar.html). To simplify the process, you could use Android Studio. It has a built-in icon generator accessible by right-cicking on "drawable" folder -> New -> Image Asset. Then choose "Icon Type": "Notification Icons", "Asset Type": Text, "Trim": No, "Padding": 0%.
|
- Create a proper icon for each screen size. The icon needs to contain the abbreviation of the language. (e.g. "En" for "English").
|
||||||
- Add new entry in ICONMAP
|
- The font must be Roboto Lt at an adequate size to fit the icon square with minimum padding.
|
||||||
- Add new LANGUAGE enum entry e.g. FR(3,5) (index, id) Where index is index in arrays like LOCALES, and id is the identifier used in the database and such. The latter should never change unless database update is done.
|
- The text must be white and the background must be transparent as per the [official Android guide](https://android-doc.github.io/guide/practices/ui_guidelines/icon_design_status_bar.html).
|
||||||
- Make sure new id matches const.xml
|
- To simplify the process, you could use Android Studio. It has a built-in icon generator accessible by right-cicking on "drawable" folder -> New -> Image Asset. Then choose "Icon Type": "Notification Icons", "Asset Type": Text, "Trim": No, "Padding": 0%.
|
||||||
- Add the LOCALE of the language in the LOCALES Locale array
|
- Find a suitable dictionary and add it to `assets` folder.
|
||||||
- Add translations for arrays.xml and strings.xml in to new files in the appropriate locale folder (e.g. res/values-de/arrays.xml.) AndroidStudio has a cute/nice Translation Editor which might be handy.
|
- Create a new language class in `languages/definitions/`. Make sure to set all properties. The ID must be the next available one. Currently, the range is limited between 1 and 31, so there can be 31 languages in total.
|
||||||
- Edit the base arrays.xml file to add the new language. (pref_lang_titles, pref_lang_values)
|
- Add the new language to the list in `LanguageCollection.java`. You only need to add it in one place, in the constructor. Please, be nice and maintain the alphabetical order.
|
||||||
- Exclude translatable="false" items from the new locale arrays.xml file.
|
- Add a new entry in `res/values/const.xml`. Make sure the new ID matches the one in the language class.
|
||||||
- Find a suitable dictionary and add it to assets
|
- Add new entries in `res/values/arrays.xml`.
|
||||||
|
- Add translations in `res/values/strings-your-lang`. The Android Studio translation editor is very handy.
|
||||||
That should be it? I hope.
|
|
||||||
|
|
||||||
## Using the app
|
## Using the app
|
||||||
See the [user manual](docs/user-manual.md).
|
See the [user manual](docs/user-manual.md).
|
||||||
|
|
|
||||||
|
|
@ -5954,7 +5954,6 @@ Andorra
|
||||||
Andrang
|
Andrang
|
||||||
Andranges
|
Andranges
|
||||||
andre
|
andre
|
||||||
André
|
|
||||||
Andrea
|
Andrea
|
||||||
Andreas
|
Andreas
|
||||||
andrehen
|
andrehen
|
||||||
|
|
@ -10441,8 +10440,6 @@ Atomzeitalter
|
||||||
Atomzertrümmerung
|
Atomzertrümmerung
|
||||||
ATP
|
ATP
|
||||||
ATS
|
ATS
|
||||||
Attaché
|
|
||||||
Attachés
|
|
||||||
Attacke
|
Attacke
|
||||||
Attacken
|
Attacken
|
||||||
attackieren
|
attackieren
|
||||||
|
|
@ -24205,7 +24202,7 @@ Bogenmaßes
|
||||||
Bogens
|
Bogens
|
||||||
Bogenstück
|
Bogenstück
|
||||||
Bogenstücke
|
Bogenstücke
|
||||||
Bogotá
|
Bogota
|
||||||
bogst
|
bogst
|
||||||
Bohle
|
Bohle
|
||||||
Bohlen
|
Bohlen
|
||||||
|
|
@ -25901,7 +25898,6 @@ Cabaret
|
||||||
Cabrio
|
Cabrio
|
||||||
Cabriolet
|
Cabriolet
|
||||||
CAD
|
CAD
|
||||||
Café
|
|
||||||
Cafeteria
|
Cafeteria
|
||||||
Calamares
|
Calamares
|
||||||
Callgirl
|
Callgirl
|
||||||
|
|
@ -26094,7 +26090,7 @@ chartern
|
||||||
charterten
|
charterten
|
||||||
Charts
|
Charts
|
||||||
Chassis
|
Chassis
|
||||||
Château
|
Chateau
|
||||||
Chauffeur
|
Chauffeur
|
||||||
Chauffeure
|
Chauffeure
|
||||||
Chauffeuren
|
Chauffeuren
|
||||||
|
|
@ -26267,7 +26263,6 @@ Cineast
|
||||||
cineastisch
|
cineastisch
|
||||||
circa
|
circa
|
||||||
City
|
City
|
||||||
Cività
|
|
||||||
Clan
|
Clan
|
||||||
Claude
|
Claude
|
||||||
Claudia
|
Claudia
|
||||||
|
|
@ -26340,7 +26335,6 @@ Computerstimme
|
||||||
Computertechnik
|
Computertechnik
|
||||||
Computerviren
|
Computerviren
|
||||||
Concorde
|
Concorde
|
||||||
Conférencier
|
|
||||||
const
|
const
|
||||||
Container
|
Container
|
||||||
cool
|
cool
|
||||||
|
|
@ -26360,7 +26354,6 @@ Couleur
|
||||||
Count-down
|
Count-down
|
||||||
Coup
|
Coup
|
||||||
Coupe
|
Coupe
|
||||||
Coupé
|
|
||||||
Coupon
|
Coupon
|
||||||
Coupons
|
Coupons
|
||||||
Coups
|
Coups
|
||||||
|
|
@ -77418,7 +77411,7 @@ Militärarzt
|
||||||
Militärärzte
|
Militärärzte
|
||||||
Militärärzten
|
Militärärzten
|
||||||
Militärarztes
|
Militärarztes
|
||||||
Militärattachés
|
Militärattaches
|
||||||
Militärbündnis
|
Militärbündnis
|
||||||
Militärdienstes
|
Militärdienstes
|
||||||
Militärdiktatur
|
Militärdiktatur
|
||||||
|
|
@ -80903,7 +80896,6 @@ negierter
|
||||||
negiertes
|
negiertes
|
||||||
negiertest
|
negiertest
|
||||||
negiertet
|
negiertet
|
||||||
Negligé
|
|
||||||
Negligee
|
Negligee
|
||||||
nehme
|
nehme
|
||||||
nehmen
|
nehmen
|
||||||
|
|
@ -101437,7 +101429,6 @@ Sortimentsbuchhändlern
|
||||||
SOS
|
SOS
|
||||||
Soße
|
Soße
|
||||||
Soßen
|
Soßen
|
||||||
Soufflé
|
|
||||||
Soufflee
|
Soufflee
|
||||||
Souffleur
|
Souffleur
|
||||||
Souffleuren
|
Souffleuren
|
||||||
|
|
@ -121119,12 +121110,8 @@ Variationsbreite
|
||||||
Variationsrechnung
|
Variationsrechnung
|
||||||
Varietät
|
Varietät
|
||||||
Varietäten
|
Varietäten
|
||||||
Varieté
|
|
||||||
Varietee
|
Varietee
|
||||||
Varietees
|
Varietees
|
||||||
Varietés
|
|
||||||
Varietétheatern
|
|
||||||
Varietétheaters
|
|
||||||
variierbare
|
variierbare
|
||||||
variiere
|
variiere
|
||||||
variieren
|
variieren
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,3 @@
|
||||||
a
|
|
||||||
à
|
|
||||||
abaissa
|
abaissa
|
||||||
abaissable
|
abaissable
|
||||||
abaissables
|
abaissables
|
||||||
|
|
@ -193253,7 +193251,6 @@ landaulet
|
||||||
landaulets
|
landaulets
|
||||||
landaus
|
landaus
|
||||||
lande
|
lande
|
||||||
Länder
|
|
||||||
landes
|
landes
|
||||||
landgrave
|
landgrave
|
||||||
landgraves
|
landgraves
|
||||||
|
|
@ -200002,8 +199999,6 @@ madrigalistes
|
||||||
madrigaux
|
madrigaux
|
||||||
madrilène
|
madrilène
|
||||||
madrilènes
|
madrilènes
|
||||||
maelström
|
|
||||||
maelströms
|
|
||||||
maestoso
|
maestoso
|
||||||
maestria
|
maestria
|
||||||
maestro
|
maestro
|
||||||
|
|
@ -335641,7 +335636,6 @@ xylophone
|
||||||
xylophones
|
xylophones
|
||||||
xyste
|
xyste
|
||||||
xystes
|
xystes
|
||||||
y
|
|
||||||
yacht
|
yacht
|
||||||
yacht-club
|
yacht-club
|
||||||
yacht-clubs
|
yacht-clubs
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ buildscript {
|
||||||
google()
|
google()
|
||||||
}
|
}
|
||||||
dependencies {
|
dependencies {
|
||||||
classpath 'com.android.tools.build:gradle:7.2.1'
|
classpath 'com.android.tools.build:gradle:7.3.0'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
apply plugin: 'com.android.application'
|
apply plugin: 'com.android.application'
|
||||||
|
|
@ -12,6 +12,8 @@ apply plugin: 'com.android.application'
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation "androidx.core:core:1.6.0"
|
implementation "androidx.core:core:1.6.0"
|
||||||
implementation 'androidx.preference:preference:1.1.1'
|
implementation 'androidx.preference:preference:1.1.1'
|
||||||
|
implementation "androidx.room:room-runtime:2.1.0"
|
||||||
|
annotationProcessor "androidx.room:room-compiler:2.1.0"
|
||||||
}
|
}
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
|
|
|
||||||
|
|
@ -4,42 +4,68 @@ TT9 is an IME (Input Method Editor) for Android devices with hardware keypad. It
|
||||||
Source code and documentation are available on Github: [https://github.com/sspanak/tt9](https://github.com/sspanak/tt9).
|
Source code and documentation are available on Github: [https://github.com/sspanak/tt9](https://github.com/sspanak/tt9).
|
||||||
|
|
||||||
## Initial Setup
|
## Initial Setup
|
||||||
TODO: Initial config, loading a dictionary...
|
In order to use Traditional T9, you need to enable it as an Android keyboard. To do so:
|
||||||
|
|
||||||
|
- Go to Android Settings → System → Languages → Keyboards.
|
||||||
|
- Add Traditional T9 IME.
|
||||||
|
|
||||||
|
_The actual menu names may vary depending on your Android version and phone._
|
||||||
|
|
||||||
|
### Enabling Predictive Mode
|
||||||
|
With the default settings, it is only possible to type in 123 and ABC modes. In order to enable the Predictive mode, there are additional steps:
|
||||||
|
|
||||||
|
- Open the [TT9 Configuration screen](#configuration-options).
|
||||||
|
- Select the desired languages.
|
||||||
|
- Load the dictionaries.
|
||||||
|
|
||||||
|
_If you don't do the above, nothing will happen when you try to type in Predictive mode._
|
||||||
|
|
||||||
## Hotkeys
|
## Hotkeys
|
||||||
#### D-pad Up (↑):
|
#### D-pad Up (↑):
|
||||||
Select previous word suggestion
|
Select previous word suggestion.
|
||||||
|
|
||||||
#### D-pad Down (↓):
|
#### D-pad Down (↓):
|
||||||
Select next word suggestion
|
Select next word suggestion.
|
||||||
|
|
||||||
#### Left Soft Key:
|
#### Left Soft Key:
|
||||||
Insert symbol or Add word depending on state and context. Add word only available in Predictive input mode.
|
Open Traditional T9 Configuration screen.
|
||||||
|
|
||||||
#### Right Soft Key:
|
#### Right Soft Key:
|
||||||
- **Short press:** Cycle input modes (Predictive → Abc → 123)
|
Backspace.
|
||||||
- **Long press:** Bring up the TT9 preference screen
|
|
||||||
|
|
||||||
#### Star (\*):
|
#### 0 key
|
||||||
- **Short press:** Change case
|
- In 123 mode: type "0" or hold it to type "+".
|
||||||
- **Long press:**
|
- In ABC mode: type secondary punctuation or hold to type "0".
|
||||||
- When multiple languages are enabled: Change language
|
- In Predictive mode: type space or hold to type "0".
|
||||||
- When single language is enabled: Bring up smiley insert dialog
|
|
||||||
- Numeric mode: Insert a star
|
|
||||||
|
|
||||||
#### Hash/Pound (#):
|
#### 1 to 9 keys
|
||||||
- **Short press:** Space
|
- In 123 mode: type the respective number.
|
||||||
- **Long press:**
|
- In ABC and Predictive mode: type a letter/punctuation character or hold to type the respective number.
|
||||||
- New line
|
|
||||||
- Numeric mode: Insert hash/pound (#)
|
|
||||||
|
|
||||||
#### Back (↩):
|
#### Text Mode Key (Hash/Pound/#):
|
||||||
- **Short Press when there is text:** Usually, "backspace". However, some applications, most notably Firefox and Spotify, forbid this action in their search fields. This is due to the fact Android allows applications to take over control of the physical keypad and redefine what buttons do. Unfortunately, nothing can be done in such cases, "Back" will function as the application authors intended, instead of as backspace.
|
- **Short press:** Cycle input modes (abc → ABC → Predictive → 123)
|
||||||
- **Short Press when there is no text:** System default, no special action (usually, go back)
|
- **Short press while typing:** Change between UPPERCASE and lowercase.
|
||||||
- **Long Press:** System default, no special action
|
- **Long press:** Select the next language.
|
||||||
|
- **Number-only fields:** Type a "#". Changing the mode is not possible in such fields.
|
||||||
|
|
||||||
|
#### Other Actions Key (Star/✱):
|
||||||
|
- **Short press:** Add a word to the dictionary.
|
||||||
|
- **Long press:** Open Traditional T9 Preferences screen.
|
||||||
|
|
||||||
|
#### Backspace Key (Back/↩):
|
||||||
|
- Just deletes text.
|
||||||
|
|
||||||
|
**Note:** "Back" key plays a somewhat special role in Android. This role needs to be preserved for your phone to remain usable. Have in mind the notes below:
|
||||||
|
- **Short Press when there is no text**: Go back to the previous screen (the system default action).
|
||||||
|
- **Short Press when there is text:** Some applications, most notably Firefox and Spotify, take full control of the "Back" key. This means, it may function as the application authors intended, instead of as backspace. In such cases, you could use the on-screen backspace instead. Unfortunately, nothing else could be done, because this is a restriction posed by Android.
|
||||||
|
- **Long Press**: Whatever the system default action is (i.e. show running applications list).
|
||||||
|
|
||||||
## Configuration Options
|
## Configuration Options
|
||||||
TODO...
|
On the Configuration screen, you can choose your preferred languages, load a dictionary for Predictive mode or view this manual.
|
||||||
|
|
||||||
|
To access it:
|
||||||
|
- Start typing in a text field to wake up TT9.
|
||||||
|
- Use the on-screen gear button or hold Other Actions Key.
|
||||||
|
|
||||||
## License
|
## License
|
||||||
- The source code, the logo image and the icons are licensed under [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0).
|
- The source code, the logo image and the icons are licensed under [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0).
|
||||||
|
|
|
||||||
2
gradle/wrapper/gradle-wrapper.properties
vendored
|
|
@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
zipStorePath=wrapper/dists
|
zipStorePath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-all.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip
|
||||||
|
|
|
||||||
|
|
@ -1,15 +0,0 @@
|
||||||
# Keycodes useful for emulator
|
|
||||||
# softleft = [ softright = ]
|
|
||||||
# star = ; pound = '
|
|
||||||
DPAD_CENTER 23
|
|
||||||
DPAD_DOWN 20
|
|
||||||
DPAD_UP 19
|
|
||||||
DPAD_LEFT 21
|
|
||||||
DPAD_RIGHT 22
|
|
||||||
SOFT_RIGHT 72
|
|
||||||
SOFT_LEFT 71
|
|
||||||
DEL 67
|
|
||||||
BACK 4
|
|
||||||
ENTER 66
|
|
||||||
POUND 75
|
|
||||||
STAR 74
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
# Remap left to right, and right to left
|
|
||||||
# lines that begin with a hash are ignored
|
|
||||||
# [keycode of original key](space)[keycode of new key]
|
|
||||||
#DPAD_LEFT
|
|
||||||
21 22
|
|
||||||
#DPAD_RIGHT
|
|
||||||
22 21
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:width="24dp"
|
|
||||||
android:height="24dp"
|
|
||||||
android:viewportWidth="24"
|
|
||||||
android:viewportHeight="24"
|
|
||||||
android:tint="#FFFFFF">
|
|
||||||
<group android:scaleX="0.13084444"
|
|
||||||
android:scaleY="0.13084444"
|
|
||||||
android:translateX="2.840889"
|
|
||||||
android:translateY="0.96">
|
|
||||||
<group android:translateY="133.59375">
|
|
||||||
<path android:pathData="M42.96875,-78.796875Q58.15625,-78.796875,66.90625,-67.8125Q75.65625,-56.84375,75.65625,-39.640625L75.65625,-38.15625Q75.65625,-20.875,66.34375,-9.9375Q57.03125,1,40.78125,1Q24.40625,1,15.078125,-9.90625Q5.765625,-20.8125,5.765625,-38.03125L5.765625,-39.515625Q5.765625,-40.015625,5.765625,-40.359375Q5.765625,-40.71875,5.84375,-41.140625L5.84375,-57.4375Q5.84375,-80.328125,14.453125,-90.734375Q23.0625,-101.15625,40.578125,-101.15625Q49.921875,-101.15625,54.84375,-103.3125Q59.765625,-105.46875,59.765625,-110.5L72.84375,-110.5L72.984375,-110.0625Q73.34375,-97.125,65.46875,-92.0625Q57.59375,-87,41.984375,-87Q31.5,-87,25.65625,-82.15625Q19.828125,-77.3125,20.046875,-68.53125L20.25,-68.1875Q24.265625,-72.84375,30.234375,-75.8125Q36.21875,-78.796875,42.96875,-78.796875ZM40.640625,-65Q31.640625,-65,27.25,-57.84375Q22.859375,-50.6875,22.859375,-39.640625L22.859375,-38.15625Q22.859375,-26.828125,27.25,-19.78125Q31.640625,-12.734375,40.78125,-12.734375Q49.71875,-12.734375,54.140625,-19.8125Q58.578125,-26.890625,58.578125,-38.15625L58.578125,-39.640625Q58.578125,-50.6875,54.109375,-57.84375Q49.640625,-65,40.640625,-65Z"
|
|
||||||
android:fillColor="#000000"/>
|
|
||||||
<path android:pathData="M138.92188,-63L105.953125,-63L105.953125,-0.5L88.859375,-0.5L88.859375,-76.859375L138.92188,-76.859375L138.92188,-63Z"
|
|
||||||
android:fillColor="#000000"/>
|
|
||||||
</group>
|
|
||||||
</group>
|
|
||||||
</vector>
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:width="24dp"
|
|
||||||
android:height="24dp"
|
|
||||||
android:viewportWidth="24"
|
|
||||||
android:viewportHeight="24"
|
|
||||||
android:tint="#FFFFFF">
|
|
||||||
<group android:scaleX="0.12988235"
|
|
||||||
android:scaleY="0.12988235"
|
|
||||||
android:translateX="0.96"
|
|
||||||
android:translateY="1.0411764">
|
|
||||||
<group android:translateY="133.59375">
|
|
||||||
<path android:pathData="M75.09375,-89.1875L27.5,-89.1875L27.5,-64.796875L49.15625,-64.796875Q66.171875,-64.796875,75.875,-55.921875Q85.578125,-47.046875,85.578125,-32.609375Q85.578125,-18.109375,75.828125,-9.046875Q66.09375,-0,49.15625,-0L10.40625,-0L10.40625,-103L75.09375,-103L75.09375,-89.1875ZM27.5,-51L27.5,-13.734375L49.15625,-13.734375Q58.640625,-13.734375,63.5625,-19.234375Q68.484375,-24.75,68.484375,-32.75Q68.484375,-40.46875,63.5625,-45.734375Q58.640625,-51,49.15625,-51L27.5,-51Z"
|
|
||||||
android:fillColor="#000000"/>
|
|
||||||
<path android:pathData="M166.09375,-89L118.5,-89L118.5,0L101.40625,0L101.40625,-102.8125L166.09375,-102.8125L166.09375,-89Z"
|
|
||||||
android:fillColor="#000000"/>
|
|
||||||
</group>
|
|
||||||
</group>
|
|
||||||
</vector>
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:width="24dp"
|
|
||||||
android:height="24dp"
|
|
||||||
android:viewportWidth="24"
|
|
||||||
android:viewportHeight="24"
|
|
||||||
android:tint="#FFFFFF">
|
|
||||||
<group android:scaleX="0.12912281"
|
|
||||||
android:scaleY="0.12912281"
|
|
||||||
android:translateX="0.96"
|
|
||||||
android:translateY="1.1052631">
|
|
||||||
<group android:translateY="133.59375">
|
|
||||||
<path android:pathData="M64.0625,-24L27.78125,-24L19.90625,-0L2.25,-0L37.96875,-103L54.21875,-103L89.515625,-0L71.859375,-0L64.0625,-24ZM32.484375,-38.375L59.421875,-38.375L46.265625,-79L45.84375,-79L32.484375,-38.375Z"
|
|
||||||
android:fillColor="#000000"/>
|
|
||||||
<path android:pathData="M133.96875,-78.796875Q149.15625,-78.796875,157.90625,-67.8125Q166.65625,-56.84375,166.65625,-39.640625L166.65625,-38.15625Q166.65625,-20.875,157.34375,-9.9375Q148.03125,1,131.78125,1Q115.40625,1,106.078125,-9.90625Q96.765625,-20.8125,96.765625,-38.03125L96.765625,-39.515625Q96.765625,-40.015625,96.765625,-40.359375Q96.765625,-40.71875,96.84375,-41.140625L96.84375,-57.4375Q96.84375,-80.328125,105.453125,-90.734375Q114.0625,-101.15625,131.57812,-101.15625Q140.92188,-101.15625,145.84375,-103.3125Q150.76562,-105.46875,150.76562,-110.5L163.84375,-110.5L163.98438,-110.0625Q164.34375,-97.125,156.46875,-92.0625Q148.59375,-87,132.98438,-87Q122.5,-87,116.65625,-82.15625Q110.828125,-77.3125,111.046875,-68.53125L111.25,-68.1875Q115.265625,-72.84375,121.234375,-75.8125Q127.21875,-78.796875,133.96875,-78.796875ZM131.64062,-65Q122.640625,-65,118.25,-57.84375Q113.859375,-50.6875,113.859375,-39.640625L113.859375,-38.15625Q113.859375,-26.828125,118.25,-19.78125Q122.640625,-12.734375,131.78125,-12.734375Q140.71875,-12.734375,145.14062,-19.8125Q149.57812,-26.890625,149.57812,-38.15625L149.57812,-39.640625Q149.57812,-50.6875,145.10938,-57.84375Q140.64062,-65,131.64062,-65Z"
|
|
||||||
android:fillColor="#000000"/>
|
|
||||||
</group>
|
|
||||||
</group>
|
|
||||||
</vector>
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:width="24dp"
|
|
||||||
android:height="24dp"
|
|
||||||
android:viewportWidth="24"
|
|
||||||
android:viewportHeight="24"
|
|
||||||
android:tint="#FFFFFF">
|
|
||||||
<group android:scaleX="0.13084444"
|
|
||||||
android:scaleY="0.13084444"
|
|
||||||
android:translateX="1.7287111"
|
|
||||||
android:translateY="0.96">
|
|
||||||
<group android:translateY="133.59375">
|
|
||||||
<path android:pathData="M5.84375,-37.515625Q5.84375,-55.75,13.640625,-66.90625Q21.453125,-78.078125,35.578125,-78.078125Q41.765625,-78.078125,46.65625,-75.5625Q51.546875,-73.0625,55.125,-68.390625L55.125,-111L72.21875,-111L72.21875,-0.578125L58.359375,-0.578125L56.328125,-10.203125Q52.671875,-4.75,47.46875,-1.875Q42.265625,1,35.4375,1Q21.453125,1,13.640625,-9.203125Q5.84375,-19.421875,5.84375,-36.046875L5.84375,-37.515625ZM22.921875,-36.046875Q22.921875,-25.515625,26.96875,-19.265625Q31.015625,-13.015625,39.796875,-13.015625Q45.21875,-13.015625,48.96875,-15.328125Q52.734375,-17.65625,55.125,-21.9375L55.125,-55.078125Q52.734375,-59.296875,48.9375,-61.640625Q45.140625,-64,39.9375,-64Q31.21875,-64,27.0625,-56.65625Q22.921875,-49.3125,22.921875,-37.53125L22.921875,-36.046875Z"
|
|
||||||
android:fillColor="#000000"/>
|
|
||||||
<path android:pathData="M123.28125,1Q106.609375,1,97.21875,-9.609375Q87.84375,-20.21875,87.84375,-37.109375L87.84375,-39.96875Q87.84375,-56.859375,97.21875,-67.828125Q106.609375,-78.796875,121.453125,-78.796875Q136.78125,-78.796875,144.65625,-69.203125Q152.53125,-59.625,152.53125,-43.59375L152.53125,-34.265625L105.484375,-34.265625L105.34375,-33.90625Q105.625,-24.5,110.265625,-18.609375Q114.90625,-12.734375,124.265625,-12.734375Q131.21875,-12.734375,136.3125,-14.4375Q141.42188,-16.140625,145.78125,-19.328125L151.32812,-8.0625Q146.96875,-4.234375,139.79688,-1.609375Q132.625,1,123.28125,1ZM121.453125,-65Q114.765625,-65,110.75,-60Q106.75,-55.015625,105.765625,-47L105.90625,-47L135.65625,-47L135.65625,-48.359375Q135.65625,-55.78125,132.23438,-60.390625Q128.82812,-65,121.453125,-65Z"
|
|
||||||
android:fillColor="#000000"/>
|
|
||||||
</group>
|
|
||||||
</group>
|
|
||||||
</vector>
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:width="24dp"
|
|
||||||
android:height="24dp"
|
|
||||||
android:viewportWidth="24"
|
|
||||||
android:viewportHeight="24"
|
|
||||||
android:tint="#FFFFFF">
|
|
||||||
<group android:scaleX="0.12545455"
|
|
||||||
android:scaleY="0.12545455"
|
|
||||||
android:translateX="0.96"
|
|
||||||
android:translateY="1.4147727">
|
|
||||||
<group android:translateY="133.59375">
|
|
||||||
<path android:pathData="M10.765625,-0L10.765625,-103L44.578125,-103Q64.0625,-103,76.25,-90.75Q88.453125,-78.515625,88.453125,-59.28125L88.453125,-43.640625Q88.453125,-24.328125,76.25,-12.15625Q64.0625,-0,44.578125,-0L10.765625,-0ZM27.84375,-89.1875L27.84375,-13.734375L44.578125,-13.734375Q56.890625,-13.734375,64.125,-22.109375Q71.375,-30.484375,71.375,-43.640625L71.375,-59.421875Q71.375,-72.4375,64.125,-80.8125Q56.890625,-89.1875,44.578125,-89.1875L27.84375,-89.1875Z"
|
|
||||||
android:fillColor="#000000"/>
|
|
||||||
<path android:pathData="M163.92188,-46.203125L123.84375,-46.203125L123.84375,-13.734375L171.09375,-13.734375L171.09375,0L106.765625,0L106.765625,-103L170.60938,-103L170.60938,-89.1875L123.84375,-89.1875L123.84375,-60L163.92188,-60L163.92188,-46.203125Z"
|
|
||||||
android:fillColor="#000000"/>
|
|
||||||
</group>
|
|
||||||
</group>
|
|
||||||
</vector>
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:width="24dp"
|
|
||||||
android:height="24dp"
|
|
||||||
android:viewportWidth="24"
|
|
||||||
android:viewportHeight="24"
|
|
||||||
android:tint="#FFFFFF">
|
|
||||||
<group android:scaleX="0.13084444"
|
|
||||||
android:scaleY="0.13084444"
|
|
||||||
android:translateX="1.7287111"
|
|
||||||
android:translateY="0.96">
|
|
||||||
<group android:translateY="133.59375">
|
|
||||||
<path android:pathData="M41.28125,1Q24.609375,1,15.21875,-9.609375Q5.84375,-20.21875,5.84375,-37.109375L5.84375,-39.96875Q5.84375,-56.859375,15.21875,-67.828125Q24.609375,-78.796875,39.453125,-78.796875Q54.78125,-78.796875,62.65625,-69.203125Q70.53125,-59.625,70.53125,-43.59375L70.53125,-34.265625L23.484375,-34.265625L23.34375,-33.90625Q23.625,-24.5,28.265625,-18.609375Q32.90625,-12.734375,42.265625,-12.734375Q49.21875,-12.734375,54.3125,-14.4375Q59.421875,-16.140625,63.78125,-19.328125L69.328125,-8.0625Q64.96875,-4.234375,57.796875,-1.609375Q50.625,1,41.28125,1ZM39.453125,-65Q32.765625,-65,28.75,-60Q24.75,-55.015625,23.765625,-47L23.90625,-47L53.65625,-47L53.65625,-48.359375Q53.65625,-55.78125,50.234375,-60.390625Q46.828125,-65,39.453125,-65Z"
|
|
||||||
android:fillColor="#000000"/>
|
|
||||||
<path android:pathData="M99.46875,-76.578125L100.453125,-65.546875Q104.1875,-71.421875,109.84375,-74.703125Q115.5,-78,122.609375,-78Q134.48438,-78,141.125,-70.640625Q147.78125,-63.28125,147.78125,-47.640625L147.78125,0L130.6875,0L130.6875,-47.5Q130.6875,-56.40625,127.234375,-60.15625Q123.796875,-63.921875,116.84375,-63.921875Q111.359375,-63.921875,107.34375,-61.828125Q103.34375,-59.734375,100.953125,-56.0625L100.953125,0L83.859375,0L83.859375,-76.578125L99.46875,-76.578125Z"
|
|
||||||
android:fillColor="#000000"/>
|
|
||||||
</group>
|
|
||||||
</group>
|
|
||||||
</vector>
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:width="24dp"
|
|
||||||
android:height="24dp"
|
|
||||||
android:viewportWidth="24"
|
|
||||||
android:viewportHeight="24"
|
|
||||||
android:tint="#FFFFFF">
|
|
||||||
<group android:scaleX="0.12198895"
|
|
||||||
android:scaleY="0.12198895"
|
|
||||||
android:translateX="0.96"
|
|
||||||
android:translateY="1.7071823">
|
|
||||||
<group android:translateY="133.59375">
|
|
||||||
<path android:pathData="M67.921875,-46.203125L27.84375,-46.203125L27.84375,-13.734375L75.09375,-13.734375L75.09375,-0L10.765625,-0L10.765625,-103L74.609375,-103L74.609375,-89.1875L27.84375,-89.1875L27.84375,-60L67.921875,-60L67.921875,-46.203125Z"
|
|
||||||
android:fillColor="#000000"/>
|
|
||||||
<path android:pathData="M170.70312,0L153.625,0L108.265625,-74.25L107.84375,-74.109375L107.84375,0L90.765625,0L90.765625,-103.0625L107.84375,-103.0625L153.20312,-28.8125L153.625,-28.953125L153.625,-103.0625L170.70312,-103.0625L170.70312,0Z"
|
|
||||||
android:fillColor="#000000"/>
|
|
||||||
</group>
|
|
||||||
</group>
|
|
||||||
</vector>
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:width="24dp"
|
|
||||||
android:height="24dp"
|
|
||||||
android:viewportWidth="24"
|
|
||||||
android:viewportHeight="24"
|
|
||||||
android:tint="#FFFFFF">
|
|
||||||
<group android:scaleX="0.13084444"
|
|
||||||
android:scaleY="0.13084444"
|
|
||||||
android:translateX="5.457778"
|
|
||||||
android:translateY="0.96">
|
|
||||||
<group android:translateY="133.59375">
|
|
||||||
<path android:pathData="M14.5625,-0L14.5625,-64L2.953125,-64L2.953125,-76.734375L14.5625,-76.734375L14.5625,-85.671875Q14.5625,-98.34375,21.40625,-105.21875Q28.265625,-112.09375,40.640625,-112.09375Q43.109375,-112.09375,45.640625,-111.703125Q48.171875,-111.3125,51.328125,-110.609375L49.578125,-97.296875Q48.171875,-97.578125,46.4375,-97.78125Q44.71875,-98,42.75,-98Q37.203125,-98,34.421875,-94.8125Q31.640625,-91.625,31.640625,-85.671875L31.640625,-76.734375L45.78125,-76.734375L45.78125,-64L31.640625,-64L31.640625,-0L14.5625,-0Z"
|
|
||||||
android:fillColor="#000000"/>
|
|
||||||
<path android:pathData="M95.90625,-61.21875L88.59375,-61.21875Q83.59375,-61.21875,80.25,-59.125Q76.921875,-57.046875,75.09375,-53.21875L75.09375,0L58,0L58,-76.578125L73.609375,-76.578125L74.734375,-65.46875Q77.625,-71.34375,82.15625,-74.671875Q86.6875,-78,92.59375,-78Q94.140625,-78,95.46875,-77.734375Q96.8125,-77.484375,97.9375,-77.140625L95.90625,-61.21875Z"
|
|
||||||
android:fillColor="#000000"/>
|
|
||||||
</group>
|
|
||||||
</group>
|
|
||||||
</vector>
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:width="24dp"
|
|
||||||
android:height="24dp"
|
|
||||||
android:viewportWidth="24"
|
|
||||||
android:viewportHeight="24"
|
|
||||||
android:tint="#FFFFFF">
|
|
||||||
<group android:scaleX="0.12837209"
|
|
||||||
android:scaleY="0.12837209"
|
|
||||||
android:translateX="0.96"
|
|
||||||
android:translateY="1.1686046">
|
|
||||||
<group android:translateY="133.59375">
|
|
||||||
<path android:pathData="M69.125,-44L27.84375,-44L27.84375,-0L10.765625,-0L10.765625,-103L76.296875,-103L76.296875,-89.1875L27.84375,-89.1875L27.84375,-57.796875L69.125,-57.796875L69.125,-44Z"
|
|
||||||
android:fillColor="#000000"/>
|
|
||||||
<path android:pathData="M107.84375,-43L107.84375,-0.5L90.765625,-0.5L90.765625,-103L125.984375,-103Q143.07812,-103,152.42188,-95.25Q161.78125,-87.515625,161.78125,-73.15625Q161.78125,-65.203125,157.65625,-59.46875Q153.54688,-53.734375,145.67188,-50.28125Q154.32812,-47.53125,158.15625,-41.328125Q161.98438,-35.140625,161.98438,-26L161.98438,-17.484375Q161.98438,-12.96875,163.10938,-8.671875Q164.23438,-4.375,166.84375,-2.125L166.84375,-0.5L149.26562,-0.5Q146.45312,-2.8125,145.67188,-7.734375Q144.90625,-12.671875,144.90625,-17.609375L144.90625,-25.828125Q144.90625,-33.71875,140.35938,-38.359375Q135.82812,-43,128.03125,-43L107.84375,-43ZM107.84375,-56.796875L125.078125,-56.796875Q135.34375,-56.796875,140.04688,-60.71875Q144.76562,-64.65625,144.76562,-72.71875Q144.76562,-80.421875,140.125,-84.796875Q135.48438,-89.1875,125.984375,-89.1875L107.84375,-89.1875L107.84375,-56.796875Z"
|
|
||||||
android:fillColor="#000000"/>
|
|
||||||
</group>
|
|
||||||
</group>
|
|
||||||
</vector>
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:width="24dp"
|
|
||||||
android:height="24dp"
|
|
||||||
android:viewportWidth="24"
|
|
||||||
android:viewportHeight="24"
|
|
||||||
android:tint="#FFFFFF">
|
|
||||||
<group android:scaleX="0.13084444"
|
|
||||||
android:scaleY="0.13084444"
|
|
||||||
android:translateX="6.3736887"
|
|
||||||
android:translateY="0.96">
|
|
||||||
<group android:translateY="133.59375">
|
|
||||||
<path android:pathData="M27.21875,-0L10.125,-0L10.125,-76.578125L27.21875,-76.578125L27.21875,-0ZM27.21875,-95L10.125,-95L10.125,-110.078125L27.21875,-110.078125L27.21875,-95Z"
|
|
||||||
android:fillColor="#000000"/>
|
|
||||||
<path android:pathData="M67.875,-95.5L67.875,-77L81.515625,-77L81.515625,-64.265625L67.875,-64.265625L67.875,-21.984375Q67.875,-17.265625,69.90625,-15.234375Q71.953125,-13.21875,75.328125,-13.21875Q76.734375,-13.21875,78.0625,-13.46875Q79.40625,-13.71875,80.59375,-14.140625L82.421875,-1.546875Q80.25,-0.34375,77.25,0.328125Q74.265625,1,71.03125,1Q61.609375,1,56.234375,-4.546875Q50.859375,-10.09375,50.859375,-21.984375L50.859375,-64.265625L39.25,-64.265625L39.25,-77L50.859375,-77L50.859375,-95.5L67.875,-95.5Z"
|
|
||||||
android:fillColor="#000000"/>
|
|
||||||
</group>
|
|
||||||
</group>
|
|
||||||
</vector>
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:width="24dp"
|
|
||||||
android:height="24dp"
|
|
||||||
android:viewportWidth="24"
|
|
||||||
android:viewportHeight="24"
|
|
||||||
android:tint="#FFFFFF">
|
|
||||||
<group android:scaleX="0.13084444"
|
|
||||||
android:scaleY="0.13084444"
|
|
||||||
android:translateX="3.7568"
|
|
||||||
android:translateY="0.96">
|
|
||||||
<group android:translateY="133.59375">
|
|
||||||
<path android:pathData="M29.25,-0L12.171875,-0L12.171875,-103.0625L29.25,-103.0625L29.25,-0Z"
|
|
||||||
android:fillColor="#000000"/>
|
|
||||||
<path android:pathData="M123.265625,-89L91.625,-89L91.625,0L74.546875,0L74.546875,-89L43.390625,-89L43.390625,-102.8125L123.265625,-102.8125L123.265625,-89Z"
|
|
||||||
android:fillColor="#000000"/>
|
|
||||||
</group>
|
|
||||||
</group>
|
|
||||||
</vector>
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:width="24dp"
|
|
||||||
android:height="24dp"
|
|
||||||
android:viewportWidth="24"
|
|
||||||
android:viewportHeight="24"
|
|
||||||
android:tint="#FFFFFF">
|
|
||||||
<group android:scaleX="0.12763005"
|
|
||||||
android:scaleY="0.12763005"
|
|
||||||
android:translateX="0.96"
|
|
||||||
android:translateY="1.2312139">
|
|
||||||
<group android:translateY="133.59375">
|
|
||||||
<path android:pathData="M64.0625,-24L27.78125,-24L19.90625,-0L2.25,-0L37.96875,-103L54.21875,-103L89.515625,-0L71.859375,-0L64.0625,-24ZM32.484375,-38.375L59.421875,-38.375L46.265625,-79L45.84375,-79L32.484375,-38.375Z"
|
|
||||||
android:fillColor="#000000"/>
|
|
||||||
<path android:pathData="M166.79688,-36.046875Q166.79688,-19.34375,159.03125,-9.171875Q151.26562,1,137.125,1Q129.95312,1,124.671875,-1.96875Q119.40625,-4.953125,115.890625,-10.625L113.859375,-0.578125L100,-0.578125L100,-111L117.09375,-111L117.09375,-67.96875Q120.609375,-72.859375,125.53125,-75.46875Q130.45312,-78.078125,136.98438,-78.078125Q151.26562,-78.078125,159.03125,-66.953125Q166.79688,-55.828125,166.79688,-37.515625L166.79688,-36.046875ZM149.71875,-37.53125Q149.71875,-49.375,145.64062,-56.6875Q141.5625,-64,132.70312,-64Q127,-64,123.171875,-61.46875Q119.34375,-58.9375,117.09375,-54.453125L117.09375,-22.5625Q119.265625,-17.984375,123.125,-15.5Q127,-13.015625,132.84375,-13.015625Q141.70312,-13.015625,145.70312,-19.234375Q149.71875,-25.453125,149.71875,-36.046875L149.71875,-37.53125Z"
|
|
||||||
android:fillColor="#000000"/>
|
|
||||||
</group>
|
|
||||||
</group>
|
|
||||||
</vector>
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:width="24dp"
|
|
||||||
android:height="24dp"
|
|
||||||
android:viewportWidth="24"
|
|
||||||
android:viewportHeight="24"
|
|
||||||
android:tint="#FFFFFF">
|
|
||||||
<group android:scaleX="0.13084444"
|
|
||||||
android:scaleY="0.13084444"
|
|
||||||
android:translateX="1.8595556"
|
|
||||||
android:translateY="0.96">
|
|
||||||
<group android:translateY="133.59375">
|
|
||||||
<path android:pathData="M75.65625,-36.046875Q75.65625,-19.421875,67.84375,-9.203125Q60.046875,1,46.125,1Q39.65625,1,34.65625,-1.328125Q29.671875,-3.671875,26.09375,-8.203125L26.09375,29L9,29L9,-77.015625L23.421875,-77.015625L25.109375,-67.125Q28.765625,-72.46875,33.921875,-75.265625Q39.09375,-78.078125,45.921875,-78.078125Q59.984375,-78.078125,67.8125,-66.90625Q75.65625,-55.75,75.65625,-37.515625L75.65625,-36.046875ZM58.640625,-37.515625Q58.640625,-49.1875,54.25,-56.59375Q49.859375,-64,41.140625,-64Q35.796875,-64,32.0625,-61.71875Q28.34375,-59.4375,26.09375,-55.359375L26.09375,-21.015625Q28.34375,-17.015625,32.0625,-14.875Q35.796875,-12.734375,41.28125,-12.734375Q50,-12.734375,54.3125,-19.15625Q58.640625,-25.578125,58.640625,-36.046875L58.640625,-37.515625Z"
|
|
||||||
android:fillColor="#000000"/>
|
|
||||||
<path android:pathData="M116.25,-30.640625L117.9375,-23L118.359375,-23L135.01562,-76.5L153.71875,-76.5L122.21875,11.671875Q119.203125,19.671875,113.71875,25.328125Q108.234375,31,98.171875,31Q96.0625,31,93.640625,30.5625Q91.21875,30.140625,88.96875,29.578125L90.859375,16.265625Q91.78125,16.34375,93.46875,16.484375Q95.15625,16.625,96,16.625Q100.640625,16.625,103.40625,13.4375Q106.1875,10.25,107.953125,6.078125L110.765625,-0.859375L83.125,-76.5L101.765625,-76.5L116.25,-30.640625Z"
|
|
||||||
android:fillColor="#000000"/>
|
|
||||||
</group>
|
|
||||||
</group>
|
|
||||||
</vector>
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:width="24dp"
|
|
||||||
android:height="24dp"
|
|
||||||
android:viewportWidth="24"
|
|
||||||
android:viewportHeight="24"
|
|
||||||
android:tint="#FFFFFF">
|
|
||||||
<group android:scaleX="0.12"
|
|
||||||
android:scaleY="0.12"
|
|
||||||
android:translateX="0.96"
|
|
||||||
android:translateY="1.875">
|
|
||||||
<group android:translateY="133.59375">
|
|
||||||
<path android:pathData="M27.84375,-39L27.84375,-0L10.765625,-0L10.765625,-103L50,-103Q66.9375,-103,76.53125,-94.1875Q86.140625,-85.375,86.140625,-70.984375Q86.140625,-56.46875,76.53125,-47.734375Q66.9375,-39,50,-39L27.84375,-39ZM27.84375,-52.796875L50,-52.796875Q59.484375,-52.796875,64.265625,-57.890625Q69.046875,-62.984375,69.046875,-70.84375Q69.046875,-78.71875,64.265625,-83.953125Q59.484375,-89.1875,50,-89.1875L27.84375,-89.1875L27.84375,-52.796875Z"
|
|
||||||
android:fillColor="#000000"/>
|
|
||||||
<path android:pathData="M134.1875,-56.953125L137.78125,-46.484375L138.20312,-46.484375L161.1875,-103.5L180.03125,-103.5L142.84375,-18.734375Q138.6875,-9.328125,132.75,-4.15625Q126.8125,1,115.765625,1Q111.34375,1,107.6875,0.25Q104.03125,-0.484375,100.859375,-1.765625L102.828125,-14.578125Q105.640625,-13.8125,108.515625,-13.265625Q111.40625,-12.734375,113.875,-12.734375Q119.640625,-12.734375,122.9375,-15.453125Q126.25,-18.171875,128.14062,-22.921875L130.25,-27.734375L95.3125,-103.5L114.015625,-103.5L134.1875,-56.953125Z"
|
|
||||||
android:fillColor="#000000"/>
|
|
||||||
</group>
|
|
||||||
</group>
|
|
||||||
</vector>
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:width="24dp"
|
|
||||||
android:height="24dp"
|
|
||||||
android:viewportWidth="24"
|
|
||||||
android:viewportHeight="24"
|
|
||||||
android:tint="#FFFFFF">
|
|
||||||
<group android:scaleX="0.13084444"
|
|
||||||
android:scaleY="0.13084444"
|
|
||||||
android:translateX="1.9904"
|
|
||||||
android:translateY="0.96">
|
|
||||||
<group android:translateY="133.59375">
|
|
||||||
<path android:pathData="M34.25,-30.640625L35.9375,-23L36.359375,-23L53.015625,-76.5L71.71875,-76.5L40.21875,11.671875Q37.203125,19.671875,31.71875,25.328125Q26.234375,31,16.171875,31Q14.0625,31,11.640625,30.5625Q9.21875,30.140625,6.96875,29.578125L8.859375,16.265625Q9.78125,16.34375,11.46875,16.484375Q13.15625,16.625,14,16.625Q18.640625,16.625,21.40625,13.4375Q24.1875,10.25,25.953125,6.078125L28.765625,-0.859375L1.125,-76.5L19.765625,-76.5L34.25,-30.640625Z"
|
|
||||||
android:fillColor="#000000"/>
|
|
||||||
<path android:pathData="M107.734375,-30.296875L100,-30.296875L100,0L82.984375,0L82.984375,-76.578125L100,-76.578125L100,-46L105.984375,-46L128.54688,-76.578125L149.71875,-76.578125L121.03125,-40.0625L152.03125,0L129.8125,0L107.734375,-30.296875Z"
|
|
||||||
android:fillColor="#000000"/>
|
|
||||||
</group>
|
|
||||||
</group>
|
|
||||||
</vector>
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:width="24dp"
|
|
||||||
android:height="24dp"
|
|
||||||
android:viewportWidth="24"
|
|
||||||
android:viewportHeight="24"
|
|
||||||
android:tint="#FFFFFF">
|
|
||||||
<group android:scaleX="0.12"
|
|
||||||
android:scaleY="0.12"
|
|
||||||
android:translateX="0.96"
|
|
||||||
android:translateY="1.875">
|
|
||||||
<group android:translateY="133.59375">
|
|
||||||
<path android:pathData="M42.1875,-56.953125L45.78125,-46.484375L46.203125,-46.484375L69.1875,-103.5L88.03125,-103.5L50.84375,-18.734375Q46.6875,-9.328125,40.75,-4.15625Q34.8125,1,23.765625,1Q19.34375,1,15.6875,0.25Q12.03125,-0.484375,8.859375,-1.765625L10.828125,-14.578125Q13.640625,-13.8125,16.515625,-13.265625Q19.40625,-12.734375,21.875,-12.734375Q27.640625,-12.734375,30.9375,-15.453125Q34.25,-18.171875,36.140625,-22.921875L38.25,-27.734375L3.3125,-103.5L22.015625,-103.5L42.1875,-56.953125Z"
|
|
||||||
android:fillColor="#000000"/>
|
|
||||||
<path android:pathData="M128.21875,-44.203125L119.84375,-44.203125L119.84375,0L102.765625,0L102.765625,-103.0625L119.84375,-103.0625L119.84375,-59L126.53125,-59L159.78125,-103.0625L179.82812,-103.0625L180.03125,-102.703125L141.64062,-53.90625L183.20312,0L161.60938,0L128.21875,-44.203125Z"
|
|
||||||
android:fillColor="#000000"/>
|
|
||||||
</group>
|
|
||||||
</group>
|
|
||||||
</vector>
|
|
||||||
|
Before Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 328 B After Width: | Height: | Size: 328 B |
|
Before Width: | Height: | Size: 439 B |
|
Before Width: | Height: | Size: 403 B |
|
Before Width: | Height: | Size: 549 B |
|
Before Width: | Height: | Size: 491 B After Width: | Height: | Size: 491 B |
|
Before Width: | Height: | Size: 474 B |
|
Before Width: | Height: | Size: 378 B |
|
Before Width: | Height: | Size: 323 B After Width: | Height: | Size: 323 B |
|
Before Width: | Height: | Size: 420 B |
|
Before Width: | Height: | Size: 360 B |
|
Before Width: | Height: | Size: 285 B After Width: | Height: | Size: 285 B |
|
Before Width: | Height: | Size: 291 B |
|
Before Width: | Height: | Size: 373 B |
|
Before Width: | Height: | Size: 244 B After Width: | Height: | Size: 244 B |
|
Before Width: | Height: | Size: 248 B |
|
Before Width: | Height: | Size: 209 B |
|
Before Width: | Height: | Size: 523 B |
|
Before Width: | Height: | Size: 496 B After Width: | Height: | Size: 496 B |
|
Before Width: | Height: | Size: 511 B |
|
Before Width: | Height: | Size: 462 B |
|
Before Width: | Height: | Size: 500 B After Width: | Height: | Size: 500 B |
|
Before Width: | Height: | Size: 494 B |
|
Before Width: | Height: | Size: 506 B |
|
Before Width: | Height: | Size: 4 KiB |
|
Before Width: | Height: | Size: 3.4 KiB |
|
Before Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 4.5 KiB |
|
Before Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 4.1 KiB |
|
Before Width: | Height: | Size: 4.3 KiB |
|
Before Width: | Height: | Size: 3 KiB |
|
Before Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 3.9 KiB |
|
Before Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 275 B After Width: | Height: | Size: 275 B |
|
Before Width: | Height: | Size: 316 B |
|
Before Width: | Height: | Size: 264 B |
|
Before Width: | Height: | Size: 399 B |
|
Before Width: | Height: | Size: 325 B After Width: | Height: | Size: 325 B |
|
Before Width: | Height: | Size: 317 B |
|
Before Width: | Height: | Size: 283 B |
|
Before Width: | Height: | Size: 245 B After Width: | Height: | Size: 245 B |
|
Before Width: | Height: | Size: 285 B |
|
Before Width: | Height: | Size: 276 B |
|
Before Width: | Height: | Size: 200 B After Width: | Height: | Size: 200 B |
|
Before Width: | Height: | Size: 217 B |
|
Before Width: | Height: | Size: 259 B |
|
Before Width: | Height: | Size: 194 B After Width: | Height: | Size: 194 B |
|
Before Width: | Height: | Size: 183 B |
|
Before Width: | Height: | Size: 166 B |
|
Before Width: | Height: | Size: 354 B |
|
Before Width: | Height: | Size: 348 B After Width: | Height: | Size: 348 B |
|
Before Width: | Height: | Size: 364 B |
|
Before Width: | Height: | Size: 322 B |
|
Before Width: | Height: | Size: 353 B After Width: | Height: | Size: 353 B |
|
Before Width: | Height: | Size: 337 B |
|
Before Width: | Height: | Size: 348 B |
|
Before Width: | Height: | Size: 395 B After Width: | Height: | Size: 395 B |
|
Before Width: | Height: | Size: 562 B |
|
Before Width: | Height: | Size: 385 B |
|
Before Width: | Height: | Size: 733 B |
|
Before Width: | Height: | Size: 592 B After Width: | Height: | Size: 592 B |
|
Before Width: | Height: | Size: 659 B |