1
0
Fork 0

New Settings screen

* Settings screen is now based on the Android SharedPreferences

* Added function key configuration on the Settings screen

* Added a setting for toggling the on-screen buttons

* Added a dark/light theme setting

* Improved translations

* Fixed a problem with launching the Settings screen directly from the Android settings

* Fixed ignoring keys not actually ignoring them properly
This commit is contained in:
sspanak 2022-11-08 15:13:28 +02:00 committed by Dimo Karaivanov
parent 4e59d3393c
commit b550d5d5dd
84 changed files with 1463 additions and 1205 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 314 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 350 B

View file

@ -1,31 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- taken from Sharp 007SH -->
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_window_focused="false"
android:state_enabled="true"
android:drawable="@drawable/btn_circle_normal" />
<item
android:state_window_focused="false"
android:state_enabled="false"
android:drawable="@drawable/btn_circle_disable" />
<item
android:state_enabled="false"
android:state_pressed="true"
android:drawable="@drawable/btn_circle_disable" />
<item
android:state_pressed="true"
android:drawable="@drawable/btn_circle_pressed" />
<item
android:state_focused="true"
android:state_enabled="true"
android:drawable="@drawable/btn_circle_selected" />
<item
android:state_enabled="true"
android:drawable="@drawable/btn_circle_normal" />
<item
android:state_focused="true"
android:drawable="@drawable/btn_circle_disable_focused" />
<item android:drawable="@drawable/btn_circle_disable" />
</selector>

View file

@ -1,9 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<!-- Gradient Bg for bootan -->
<gradient
android:startColor="#424542"
android:endColor="#A5A2A5"
android:startColor="#929492"
android:endColor="#E3E7E3"
android:angle="90" />
</shape>

View file

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/button_grad_press"
android:state_pressed="true" />
<item android:drawable="@drawable/button_grad"
android:state_focused="true" />
<item android:drawable="@drawable/button_grad" />
</selector>

View file

@ -1,9 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<!-- Gradient Bg for button -->
<gradient
android:startColor="#8C8E8C"
android:endColor="#636163"
android:startColor="#686C68"
android:endColor="#B8BCB8"
android:angle="90" />
</shape>

View file

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:startColor="#2E322E"
android:endColor="#878B87"
android:angle="90" />
</shape>

View file

@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- taken from Sharp 007SH -->
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_enabled="false"
android:drawable="@drawable/ic_btn_round_more_disabled" />
<item android:drawable="@drawable/ic_btn_round_more_normal" />
</selector>

View file

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<size android:width="1dip" />
<size android:width="1px" />
<solid android:color="@color/candidate_separator" />
</shape>

View file

@ -1,26 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- taken from android source -->
<!-- Copyright (C) 2006 The Android Open Source Project
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.
-->
<!-- Layout used by CheckBoxPreference for the checkbox style. This is inflated
inside android.R.layout.preference. -->
<CheckBox xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/checkbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="4dip"
android:layout_gravity="center_vertical"
android:focusable="false"
android:clickable="false" />

View file

@ -8,63 +8,61 @@
android:id="@+id/main_suggestions_list"
android:layout_width="fill_parent"
android:layout_height="@dimen/candidate_list_height"
android:fadingEdge="horizontal"
android:orientation="horizontal"
android:scrollbars="none"
android:background="@color/candidate_background" />
android:paddingTop="1px"
android:scrollbars="none" />
<LinearLayout
android:id="@+id/main_soft_keys"
android:layout_width="match_parent"
android:layout_height="@dimen/soft_key_height"
android:background="@drawable/bggradient"
android:baselineAligned="true"
android:orientation="horizontal">
<Button
android:id="@+id/main_left"
style="@android:style/Widget.Holo.Button.Borderless"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginLeft="1px"
android:layout_marginRight="1px"
android:layout_weight="3"
android:background="@drawable/button_custom"
android:clickable="true"
android:focusable="false"
android:longClickable="true"
android:text="⚙"
android:textColor="@color/button_text"
android:textSize="24sp" />
android:textSize="24sp"/>
<View
android:id="@+id/main_separator_left"
style="@style/hSeparator"
android:background="@drawable/button_separator_dark" />
<Button
android:id="@+id/main_mid"
style="@android:style/Widget.Holo.Button.Borderless"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginLeft="1px"
android:layout_marginRight="1px"
android:layout_weight="5"
android:background="@drawable/button_custom"
android:clickable="true"
android:focusable="false"
android:longClickable="true"
android:paddingLeft="2dp"
android:paddingRight="2dp"
android:text="@android:string/ok"
android:textColor="@color/button_text" />
android:text="@android:string/ok" />
<View
android:id="@+id/main_separator_right"
android:background="@drawable/button_separator_dark"
style="@style/hSeparator" />
<Button
android:id="@+id/main_right"
style="@android:style/Widget.Holo.Button.Borderless"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginLeft="1px"
android:layout_marginRight="1px"
android:layout_weight="3"
android:background="@drawable/button_custom"
android:clickable="true"
android:focusable="false"
android:longClickable="true"
android:text="⌫"
android:textColor="@color/button_text"
android:textSize="24sp" />
</LinearLayout>

View file

@ -1,10 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- taken from Sharp 007SH -->
<ImageView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_gravity="center_vertical"
android:background="@drawable/btn_circle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="4.0dip"
android:src="@drawable/ic_btn_round_more"/>

View file

@ -1,25 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/* //device/apps/common/assets/res/layout/list_content.xml
**
** Copyright 2006, The Android Open Source Project
**
** 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.
*/
-->
<ListView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:drawSelectorOnTop="false"
android:scrollbarAlwaysDrawVerticalTrack="true"
/>

View file

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/preferences_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:context=".preferences.PreferencesFragment">
</FrameLayout>

View file

@ -1,29 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Modfied from android preference.xml -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?android:attr/listPreferredItemHeight"
android:gravity="center_vertical"
android:paddingRight="?android:attr/scrollbarSize"
android:baselineAligned="false">
<RelativeLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="15dip"
android:layout_marginRight="6dip"
android:layout_marginTop="6dip"
android:layout_marginBottom="6dip"
android:layout_weight="1">
<TextView android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:textAppearance="?android:attr/textAppearanceLarge"
android:ellipsize="marquee"
android:fadingEdge="horizontal" />
</RelativeLayout>
</LinearLayout>

View file

@ -1,37 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Modfied from android preference.xml -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?android:attr/listPreferredItemHeight"
android:gravity="center_vertical"
android:paddingRight="?android:attr/scrollbarSize"
android:baselineAligned="false">
<RelativeLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="15dip"
android:layout_marginRight="6dip"
android:layout_marginTop="6dip"
android:layout_marginBottom="6dip"
android:layout_weight="1">
<TextView android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:textAppearance="?android:attr/textAppearanceLarge"
android:ellipsize="marquee"
android:fadingEdge="horizontal" />
<TextView android:id="@+id/summary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/title"
android:layout_alignLeft="@+id/title"
android:textAppearance="?android:attr/textAppearanceSmall"
android:maxLines="4" />
</RelativeLayout>
</LinearLayout>

View file

@ -1,43 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Modfied from android preference.xml -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?android:attr/listPreferredItemHeight"
android:gravity="center_vertical"
android:paddingRight="?android:attr/scrollbarSize"
android:baselineAligned="false">
<RelativeLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="15dip"
android:layout_marginRight="6dip"
android:layout_marginTop="6dip"
android:layout_marginBottom="6dip"
android:layout_weight="1">
<TextView android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:textAppearance="?android:attr/textAppearanceLarge"
android:ellipsize="marquee"
android:fadingEdge="horizontal" />
<TextView android:id="@+id/summary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/title"
android:layout_alignLeft="@+id/title"
android:textAppearance="?android:attr/textAppearanceSmall"
android:maxLines="4" />
</RelativeLayout>
<!-- Preference should place its actual preference widget here. -->
<LinearLayout android:id="@+id/widget_frame"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center_vertical"
android:orientation="vertical" />
</LinearLayout>

View file

@ -12,6 +12,5 @@
android:paddingHorizontal="@dimen/candidate_padding_horizontal"
android:paddingVertical="@dimen/candidate_padding_vertical"
android:text=""
android:textColor="@color/candidate_color"
android:textSize="@dimen/candidate_font_size" />
</LinearLayout>

View file

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
<resources>
<string name="app_settings">Настройки на Traditional T9</string>
<string name="close">Затвори</string>
<string name="completed">Завършено</string>
@ -12,21 +12,34 @@
<string name="add_word_invalid_language">За да добавите нова дума, първо изберете език.</string>
<string name="add_word_title">Добавяне на дума</string>
<string name="pref_category_about">За приложението</string>
<string name="pref_help">Помощ</string>
<string name="pref_dark_theme">Тъмен облик</string>
<string name="pref_choose_languages">Избор на езици</string>
<string name="pref_loaddict">Зареди речник</string>
<string name="pref_loaduserdict">Зареди свой речник</string>
<string name="pref_truncatedict">Изтрий речник</string>
<string name="dictionary_truncate_title">Изтрий речник</string>
<string name="pref_category_dictionaries">Речници</string>
<string name="dictionary_cancel_load">Отмени зареждането</string>
<string name="dictionary_load_bad_char">Неуспешно зареждане. Невалидна дума \"%1$s\" на ред %2$d за език \"%3$s\".</string>
<string name="dictionary_load_cancelled">Зареждането на речник е отменено.</string>
<string name="dictionary_load_error">Несупешно зареждане на речник за език \"%1$s\" (%2$s).</string>
<string name="dictionary_load_failed">Неуспешно зареждане на речник.</string>
<string name="dictionary_loaded">Зареждането на речник приключи.</string>
<string name="dictionary_loading">Зареждане на речник (%1$s)…</string>
<string name="dictionary_loading_user_dict">Зареждане на вашия речник…</string>
<string name="dictionary_load_title">Зареждане на речник</string>
<string name="dictionary_load_title">Зареди речник</string>
<string name="dictionary_not_found">Неуспешно зареждане. Липсва речник за \"%1$s\".</string>
<string name="dictionary_truncated">Речникът е изтрит успешно.</string>
<string name="pref_category_appearance">Облик</string>
<string name="pref_category_function_keys">Бутони за бърз достъп</string>
<string name="pref_show_soft_function_keys">Бутони на екрана</string>
<string name="key_back">Назад</string>
<string name="key_call">Зелена слушалка</string>
<string name="function_add_word_key">Добавяне на нова дума</string>
<string name="function_backspace_key">Триене на текст</string>
<string name="function_next_language_key">Следващ eзик</string>
<string name="function_next_mode_key">Режим на писане</string>
<string name="function_show_settings_key">Настройки</string>
<string name="function_reset_keys_title">Възстанови стандартните бутони</string>
<string name="function_reset_keys_done">Възстановени са стандартните \"бързи\" бутони.</string>
<string name="key_hold_key">(задръж)</string>
</resources>

View file

@ -10,14 +10,14 @@
<string name="add_word_exist">Das Wort \"%1$s\" ist bereits in Wörterbuch.</string>
<string name="add_word_title">Wort hinzufügen</string>
<string name="pref_help">"Hilfe anzeigen</string>
<string name="pref_choose_languages">Sprachen</string>
<string name="pref_loaddict">Wörterbuch laden</string>
<string name="pref_loaduserdict">Benutzerwörterbuch laden</string>
<string name="pref_truncatedict">Wörterbuch löschen</string>
<string name="pref_category_about">Über die Anwendung</string>
<string name="pref_help">Hilfe</string>
<string name="pref_dark_theme">Dunkles Thema</string>
<string name="pref_choose_languages">Sprachen auswählen</string>
<string name="dictionary_truncate_title">Wörterbuch löschen</string>
<string name="pref_category_dictionaries">Wörterbücher</string>
<string name="dictionary_loading">Lade Wörterbuch (%1$s)…</string>
<string name="dictionary_loading_user_dict">Lade Benutzerwörterbuch…</string>
<string name="dictionary_load_title">Wörterbuch laden</string>
<string name="dictionary_not_found">Wird nicht geladen. Wörterbuch für \"%1$s\" nicht gefunden.</string>
</resources>

View file

@ -11,18 +11,20 @@
<string name="add_word_exist">Le mot «%1$s» est déjà dans le dictionnaire.</string>
<string name="add_word_title">Ajouter un mot</string>
<string name="pref_help">"Afficher l\'aide</string>
<string name="pref_choose_languages">Choisir langues</string>
<string name="pref_loaddict">Charger le dictionnaire</string>
<string name="pref_loaduserdict">Charger le dictionnaire utilisateur</string>
<string name="pref_truncatedict">Supprimer le dictionaire</string>
<string name="pref_category_about">À propos de l\'application</string>
<string name="pref_help">Aide</string>
<string name="pref_dark_theme">Thème sombre</string>
<string name="pref_choose_languages">Choisir langues</string>
<string name="dictionary_truncate_title">Supprimer le dictionaire</string>
<string name="pref_category_dictionaries">Dictionnaires</string>
<string name="dictionary_cancel_load">Annuler le chargement</string>
<string name="dictionary_load_error">Echec du chargement de dictionnaire pour langue «%1$s» (%2$s).</string>
<string name="dictionary_load_cancelled">Chargement du dictionnaire annulée.</string>
<string name="dictionary_load_failed">Echec du chargement de dictionnaire.</string>
<string name="dictionary_loaded">Chargement du dictionnaire terminé.</string>
<string name="dictionary_loading">Chargement du dictionnaire (%1$s)…</string>
<string name="dictionary_loading_user_dict">Chargement du dictionnaire utilisateur…</string>
<string name="dictionary_load_title">Charger le dictionnaire</string>
<string name="dictionary_not_found">Echec du chargement. Dictionnaire «%1$s» introuvable.</string>
<string name="pref_category_function_keys">Raccourcis clavier</string>
</resources>

View file

@ -11,18 +11,19 @@
<string name="add_word_exist">Parola “%1$s” già nel dizionario.</string>
<string name="add_word_title">Aggiungi parola</string>
<string name="pref_help">"Mostra aiuto</string>
<string name="pref_choose_languages">Le lingue</string>
<string name="pref_loaddict">Carica dizionario</string>
<string name="pref_loaduserdict">Carica dizionario utente</string>
<string name="pref_truncatedict">Eliminare il dizionario</string>
<string name="pref_category_about">Sull\'applicazione</string>
<string name="pref_help">Aiuto</string>
<string name="pref_dark_theme">Tema scuro</string>
<string name="pref_choose_languages">Scegli le lingue</string>
<string name="dictionary_truncate_title">Eliminare il dizionario</string>
<string name="dictionary_load_cancelled">Caricamento del dizionario annullato.</string>
<string name="pref_category_dictionaries">Dizionari</string>
<string name="dictionary_cancel_load">Annullare il caricamento</string>
<string name="dictionary_load_failed">Caricamento del dizionario non riuscito.</string>
<string name="dictionary_loaded">Caricamento del dizionario terminato.</string>
<string name="dictionary_loading">Caricamento del dizionario (%1$s)…</string>
<string name="dictionary_loading_user_dict">Caricamento dizionario utente…</string>
<string name="dictionary_load_title">Caricamento del dizionario</string>
<string name="dictionary_load_title">Carica il dizionario</string>
<string name="dictionary_not_found">Impossibile caricare. Dizionario per “%1$s” non trovato.</string>
<string name="pref_category_function_keys">Scorciatoie da tastiera</string>
</resources>

View file

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
<resources>
<string name="app_settings">Traditional T9 Opties</string>
<string name="close">Sluiten</string>
<string name="error_unexpected">Er is een onverwachte fout opgetreden.</string>
@ -10,13 +10,13 @@
<string name="add_word_exist">Woord \"%1$s\" staat al in het woordenboek.</string>
<string name="add_word_invalid_language">Kan geen woord invoegen als er geen taal is geselecteerd.</string>
<string name="add_word_title">Woord toevoegen</string>
<string name="pref_help">Laat help zien</string>
<string name="pref_category_about">Over de applicatie</string>
<string name="pref_help">Helpen</string>
<string name="pref_dark_theme">Donker thema</string>
<string name="pref_choose_languages">Talen kiezen</string>
<string name="pref_loaddict">Woordenboek laden</string>
<string name="pref_loaduserdict">Gebruikerswoordenboek laden</string>
<string name="pref_truncatedict">Woordenboek wissen</string>
<string name="dictionary_truncate_title">Woordenboek wissen</string>
<string name="pref_category_dictionaries">Woordenboeken</string>
<string name="dictionary_loading">Woordenboek laden (%1$s)…</string>
<string name="dictionary_loading_user_dict">Gebruikerswoordenboek laden…</string>
<string name="dictionary_load_title">Woordenboek laden</string>
<string name="dictionary_not_found">Laden mislukt. Woordenboek voor %1$s niet gevonden.</string>
<string name="dictionary_truncated">Woordenboek succesvol gewist.</string>

View file

@ -12,18 +12,18 @@
<string name="add_word_invalid_language">Чтобы добавить новое слово, сначала выберите язык.</string>
<string name="add_word_title">Добавить слово</string>
<string name="pref_help">О программе</string>
<string name="pref_category_about">О приложении</string>
<string name="pref_help">Помощь</string>
<string name="pref_dark_theme">Темная тема</string>
<string name="pref_choose_languages">Выбор языков</string>
<string name="pref_loaddict">Загрузить словарь</string>
<string name="pref_loaduserdict">Загрузить свой словарь</string>
<string name="pref_truncatedict">Очистить словарь</string>
<string name="dictionary_truncate_title">Очистить словарь</string>
<string name="dictionary_load_cancelled">Загрузка словаря отменена.</string>
<string name="pref_category_dictionaries">Словари</string>
<string name="dictionary_cancel_load">Отменить загрузку</string>
<string name="dictionary_load_error">Ошибка загрузки словаря для языка «%1$s» (%2$s).</string>
<string name="dictionary_load_failed">Ошибка загрузки словаря.</string>
<string name="dictionary_loaded">Загрузка словаря завершена.</string>
<string name="dictionary_loading">Загрузка словаря (%1$s)…</string>
<string name="dictionary_loading_user_dict">Загрузка пользовательского словаря…</string>
<string name="dictionary_load_title">Загрузить словарь</string>
<string name="dictionary_not_found">Ошибка загрузки. Словарь «%1$s» не найден.</string>
<string name="dictionary_truncated">Словарь успешно очищен.</string>

View file

@ -11,18 +11,18 @@
<string name="add_word_exist">Слово «%1$s» вже є в словнику.</string>
<string name="add_word_title">Додати слово</string>
<string name="pref_help">Про програму</string>
<string name="pref_category_about">Про додаток</string>
<string name="pref_help">Допомога</string>
<string name="pref_dark_theme">Темна тема</string>
<string name="pref_choose_languages">Вибір мови</string>
<string name="pref_loaddict">Завантажити словник</string>
<string name="pref_loaduserdict">Завантажити свій словник</string>
<string name="pref_truncatedict">Очистити словник</string>
<string name="dictionary_truncate_title">Очистити словник</string>
<string name="dictionary_load_cancelled">Завантаження словника скасовано.</string>
<string name="pref_category_dictionaries">Словники</string>
<string name="dictionary_cancel_load">Скасувати завантаження</string>
<string name="dictionary_load_error">Помилка завантаження словника для мови «%1$s» (%2$s).</string>
<string name="dictionary_load_failed">Помилка завантаження словника.</string>
<string name="dictionary_loaded">Завантаження словника завершено.</string>
<string name="dictionary_loading">Завантаження словника (%1$s)…</string>
<string name="dictionary_loading_user_dict">Завантаження словника користувача…</string>
<string name="dictionary_load_title">Завантажити словник</string>
<string name="dictionary_not_found">Помилка завантаження. Словник «%1$s» не знайдено.</string>
</resources>

View file

@ -1,24 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="pref_lang_titles">
<item>English</item>
<item>Русский</item>
<item>Deutsch</item>
<item>Français</item>
<item>Italiano</item>
<item>Українська</item>
<item>Български</item>
<item>Nederlands</item>
</string-array>
<!--pref_lang_titles pair with pref_lang_values -->
<integer-array translatable="false" name="pref_lang_values">
<item>@integer/LANG_EN</item>
<item>@integer/LANG_RU</item>
<item>@integer/LANG_DE</item>
<item>@integer/LANG_FR</item>
<item>@integer/LANG_IT</item>
<item>@integer/LANG_UK</item>
<item>@integer/LANG_BG</item>
<item>@integer/LANG_NL</item>
</integer-array>
</resources>

View file

@ -1,8 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="button_text">#EFEBE9</color>
<color name="candidate_background">#333333</color>
<color name="candidate_color">#CCCCCC</color>
<color name="candidate_selected">#555555</color>
<!-- Light theme -->
<color name="button_text">#242424</color>
<color name="candidate_background">#CECECE</color>
<color name="candidate_color">#202020</color>
<color name="candidate_selected">#AAAAAA</color>
<color name="candidate_separator">#888888</color>
<!-- Dark theme -->
<color name="dark_button_text">#C0C0C0</color>
<color name="dark_candidate_background">#333333</color>
<color name="dark_candidate_color">#CCCCCC</color>
<color name="dark_candidate_selected">#555555</color>
</resources>

View file

@ -1,14 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- MAKE SURE THESE MATCH WITH with IDs in "languages/definitions" -->
<integer name="LANG_EN">1</integer>
<integer name="LANG_RU">2</integer>
<integer name="LANG_DE">3</integer>
<integer name="LANG_FR">4</integer>
<integer name="LANG_IT">5</integer>
<integer name="LANG_UK">6</integer>
<integer name="LANG_BG">7</integer>
<integer name="LANG_NL">8</integer>
<integer name="LANG_DEFAULT">@integer/LANG_EN</integer>
</resources>

View file

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
<resources>
<string translatable="false" name="help_url">https://github.com/sspanak/tt9/blob/master/docs/user-manual.md</string>
<string name="app_name" translatable="false">Traditional T9</string>
<string name="app_settings">Traditional T9 Settings</string>
@ -14,21 +14,45 @@
<string name="add_word_invalid_language">Cannot insert a word when no language is selected.</string>
<string name="add_word_title">Add Word</string>
<string name="pref_help">Show Help</string>
<string name="pref_choose_languages">Choose Languages</string>
<string name="pref_loaddict">Load dictionary</string>
<string name="pref_loaduserdict">Load user dictionary</string>
<string translatable="false" name="pref_loaduserdictdesc">SDcard/traditionalt9/user.lang.dict (lang: en/ru/de/fr)</string>
<string name="pref_truncatedict">Clear dictionary</string>
<string name="pref_category_about">About</string>
<string name="pref_category_appearance">Appearance</string>
<string name="pref_category_dictionaries">Dictionaries</string>
<string name="pref_category_function_keys">Select Hotkeys</string>
<string name="pref_choose_languages">Choose Languages</string>
<string name="pref_dark_theme">Dark Theme</string>
<string name="pref_show_soft_function_keys">Show on-screen keys</string>
<string name="pref_help">Help</string>
<string name="dictionary_cancel_load">Cancel loading</string>
<string name="dictionary_load_bad_char">Loading failed. Invalid word \"%1$s\" on line %2$d of language \"%3$s\".</string>
<string name="dictionary_load_cancelled">Dictionary load cancelled.</string>
<string name="dictionary_load_error">Failed loading the dictionary for language \"%1$s\" (%2$s).</string>
<string name="dictionary_load_failed">Dictionary load failed.</string>
<string name="dictionary_loaded">Dictionary load completed.</string>
<string name="dictionary_loading">Loading dictionary (%1$s)…</string>
<string name="dictionary_loading_user_dict">Loading user dictionary…</string>
<string name="dictionary_load_title">Load dictionary</string>
<string name="dictionary_not_found">Loading failed. Dictionary for \"%1$s\" not found.</string>
<string name="dictionary_truncate_title">Clear dictionary</string>
<string name="dictionary_truncated">Dictionary successfully cleared.</string>
<string name="function_add_word_key">Add Word key</string>
<string name="function_backspace_key">Backspace key</string>
<string name="function_next_language_key">Next Language key</string>
<string name="function_next_mode_key">Input Mode key</string>
<string name="function_show_settings_key">Show Settings key</string>
<string name="function_reset_keys_title">Restore Default Keys</string>
<string name="function_reset_keys_done">Default key settings restored.</string>
<string name="key_hold_key">(hold)</string>
<string name="key_none" translatable="false">--</string>
<string name="key_back">Back</string>
<string name="key_call">Call</string>
<string name="key_delete" translatable="false">Delete</string>
<string name="key_f1" translatable="false">F1</string>
<string name="key_f2" translatable="false">F2</string>
<string name="key_f3" translatable="false">F3</string>
<string name="key_f4" translatable="false">F4</string>
<string name="key_menu" translatable="false">Menu</string>
<string name="key_pound" translatable="false">#</string>
<string name="key_star" translatable="false"></string>
</resources>

View file

@ -1,24 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!--
Base application theme, dependent on API level. This theme is replaced
by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
-->
<style name="AppBaseTheme" parent="android:Theme.Light">
<!--
Theme customizations available in newer API levels can go in
res/values-vXX/styles.xml, while customizations related to
backward-compatibility can go here.
-->
<style name="hSeparator">
<item name="android:layout_height">match_parent</item>
<item name="android:layout_width">2px</item>
<item name="android:layout_marginBottom">1dp</item>
<item name="android:layout_marginTop">1dp</item>
</style>
<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
</style>
<declare-styleable name="PrefItem">
<attr name="title" format="string" />
<attr name="summary" format="string" />
</declare-styleable>
</resources>

View file

@ -22,5 +22,5 @@
<input-method
xmlns:android="http://schemas.android.com/apk/res/android"
android:settingsActivity="io.github.sspanak.tt9.ui.TraditionalT9Settings">
android:settingsActivity="io.github.sspanak.tt9.preferences.PreferencesActivity">
</input-method>

View file

@ -1,14 +1,109 @@
<?xml version="1.0" encoding="utf-8"?>
<Settings>
<Setting title="@string/pref_help" id="help" />
<SettingMultiList
id="pref_lang_support"
defaultValue="@integer/LANG_DEFAULT"
entries="@array/pref_lang_titles"
entryValues="@array/pref_lang_values"
title="@string/pref_choose_languages" />
<Setting title="@string/pref_loaddict" id="loaddict"/>
<Setting title="@string/pref_truncatedict" id="truncatedict"/>
<!-- Take care of dictionary loading in #26 -->
<!-- <Setting title="@string/pref_loaduserdict" summary="@string/pref_loaduserdictdesc" id="loaduserdict"/> -->
</Settings>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
app:orderingFromXml="true">
<Preference
app:iconSpaceReserved="false"
app:key="help"
app:summary="github.com/sspanak/tt9"
app:title="@string/pref_help">
<intent
android:action="android.intent.action.VIEW"
android:data="@string/help_url" />
</Preference>
<PreferenceCategory
android:title="@string/pref_category_appearance"
app:iconSpaceReserved="false"
app:singleLineTitle="true">
<SwitchPreferenceCompat
app:defaultValue="true"
app:iconSpaceReserved="false"
app:key="pref_dark_theme"
app:title="@string/pref_dark_theme" />
<SwitchPreferenceCompat
app:defaultValue="true"
app:iconSpaceReserved="false"
app:key="pref_show_soft_keys"
app:title="@string/pref_show_soft_function_keys" />
</PreferenceCategory>
<PreferenceCategory
android:title="@string/pref_category_dictionaries"
app:iconSpaceReserved="false"
app:singleLineTitle="true">
<MultiSelectListPreference
app:iconSpaceReserved="false"
app:key="pref_languages"
app:title="@string/pref_choose_languages" />
<Preference
app:iconSpaceReserved="false"
app:key="dictionary_load"
app:title="@string/dictionary_load_title" />
<Preference
app:iconSpaceReserved="false"
app:key="dictionary_truncate"
app:title="@string/dictionary_truncate_title" />
</PreferenceCategory>
<PreferenceCategory
android:title="@string/pref_category_function_keys"
app:iconSpaceReserved="false"
app:singleLineTitle="true">
<DropDownPreference
app:iconSpaceReserved="false"
app:key="key_add_word"
app:title="@string/function_add_word_key" />
<DropDownPreference
app:iconSpaceReserved="false"
app:key="key_backspace"
app:title="@string/function_backspace_key" />
<DropDownPreference
app:iconSpaceReserved="false"
app:key="key_next_language"
app:title="@string/function_next_language_key" />
<DropDownPreference
app:iconSpaceReserved="false"
app:key="key_next_input_mode"
app:title="@string/function_next_mode_key" />
<DropDownPreference
app:iconSpaceReserved="false"
app:key="key_show_settings"
app:title="@string/function_show_settings_key" />
<Preference
app:iconSpaceReserved="false"
app:key="reset_keys"
app:title="@string/function_reset_keys_title" />
</PreferenceCategory>
<PreferenceCategory
android:title="@string/pref_category_about"
app:iconSpaceReserved="false"
app:singleLineTitle="true">
<Preference
app:iconSpaceReserved="false"
app:key="version_info"
app:title="@string/app_name" />
</PreferenceCategory>
</PreferenceScreen>