Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,8 @@
android:name=".settings.SettingsActivity"
android:exported="false"
android:theme="@style/Theme.Urik.NoActionBar"
android:label="@string/settings_title" />
android:label="@string/settings_title"
android:windowSoftInputMode="adjustResize" />

<activity
android:name=".settings.DictionaryAttributionActivity"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,9 +79,11 @@ class SettingsActivity : AppCompatActivity() {
val container = findViewById<View>(R.id.settings_container)

ViewCompat.setOnApplyWindowInsetsListener(rootView) { v, windowInsets ->
val insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars())
v.setPadding(insets.left, insets.top, insets.right, 0)
container.setPadding(0, 0, 0, insets.bottom)
val systemBars = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars())
val ime = windowInsets.getInsets(WindowInsetsCompat.Type.ime())

v.setPadding(systemBars.left, systemBars.top, systemBars.right, 0)
container.setPadding(0, 0, 0, maxOf(systemBars.bottom, ime.bottom))
windowInsets
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
package com.urik.keyboard.settings.autocorrection

import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.EditText
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope
Expand All @@ -28,12 +31,26 @@ class AutoCorrectionFragment : PreferenceFragmentCompat() {
private lateinit var suggestionsPref: SwitchPreferenceCompat
private lateinit var countPref: ListPreference
private lateinit var learnPref: SwitchPreferenceCompat
private var testField: EditText? = null

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
viewModel = ViewModelProvider(this)[AutoCorrectionViewModel::class.java]
}

override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?,
): View {
val preferenceView = super.onCreateView(inflater, container, savedInstanceState)
val wrapper = inflater.inflate(R.layout.preference_fragment_with_test_field, container, false)
val preferenceContainer = wrapper.findViewById<ViewGroup>(R.id.preference_container)
preferenceContainer.addView(preferenceView)
testField = wrapper.findViewById(R.id.test_field)
return wrapper
}

override fun onCreatePreferences(
savedInstanceState: Bundle?,
rootKey: String?,
Expand Down Expand Up @@ -128,4 +145,9 @@ class AutoCorrectionFragment : PreferenceFragmentCompat() {
}
}
}

override fun onDestroyView() {
super.onDestroyView()
testField = null
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
package com.urik.keyboard.settings.hapticfeedback

import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.EditText
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope
Expand All @@ -22,12 +25,26 @@ class HapticFeedbackFragment : PreferenceFragmentCompat() {

private lateinit var hapticPref: SwitchPreferenceCompat
private lateinit var vibrationPref: ListPreference
private var testField: EditText? = null

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
viewModel = ViewModelProvider(this)[HapticFeedbackViewModel::class.java]
}

override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?,
): View {
val preferenceView = super.onCreateView(inflater, container, savedInstanceState)
val wrapper = inflater.inflate(R.layout.preference_fragment_with_test_field, container, false)
val preferenceContainer = wrapper.findViewById<ViewGroup>(R.id.preference_container)
preferenceContainer.addView(preferenceView)
testField = wrapper.findViewById(R.id.test_field)
return wrapper
}

override fun onCreatePreferences(
savedInstanceState: Bundle?,
rootKey: String?,
Expand Down Expand Up @@ -92,4 +109,9 @@ class HapticFeedbackFragment : PreferenceFragmentCompat() {
}
}
}

override fun onDestroyView() {
super.onDestroyView()
testField = null
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
package com.urik.keyboard.settings.layoutinput

import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.EditText
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope
Expand All @@ -27,12 +30,26 @@ class LayoutInputFragment : PreferenceFragmentCompat() {

private lateinit var numberRowPref: SwitchPreferenceCompat
private lateinit var spaceBarPref: ListPreference
private var testField: EditText? = null

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
viewModel = ViewModelProvider(this)[LayoutInputViewModel::class.java]
}

override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?,
): View {
val preferenceView = super.onCreateView(inflater, container, savedInstanceState)
val wrapper = inflater.inflate(R.layout.preference_fragment_with_test_field, container, false)
val preferenceContainer = wrapper.findViewById<ViewGroup>(R.id.preference_container)
preferenceContainer.addView(preferenceView)
testField = wrapper.findViewById(R.id.test_field)
return wrapper
}

override fun onCreatePreferences(
savedInstanceState: Bundle?,
rootKey: String?,
Expand Down Expand Up @@ -97,4 +114,9 @@ class LayoutInputFragment : PreferenceFragmentCompat() {
}
}
}

override fun onDestroyView() {
super.onDestroyView()
testField = null
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
package com.urik.keyboard.settings.typingbehavior

import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.EditText
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope
Expand All @@ -28,12 +31,26 @@ class TypingBehaviorFragment : PreferenceFragmentCompat() {
private lateinit var doubleSpacePref: SwitchPreferenceCompat
private lateinit var swipePref: SwitchPreferenceCompat
private lateinit var longPressPref: ListPreference
private var testField: EditText? = null

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
viewModel = ViewModelProvider(this)[TypingBehaviorViewModel::class.java]
}

override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?,
): View {
val preferenceView = super.onCreateView(inflater, container, savedInstanceState)
val wrapper = inflater.inflate(R.layout.preference_fragment_with_test_field, container, false)
val preferenceContainer = wrapper.findViewById<ViewGroup>(R.id.preference_container)
preferenceContainer.addView(preferenceView)
testField = wrapper.findViewById(R.id.test_field)
return wrapper
}

override fun onCreatePreferences(
savedInstanceState: Bundle?,
rootKey: String?,
Expand Down Expand Up @@ -113,4 +130,9 @@ class TypingBehaviorFragment : PreferenceFragmentCompat() {
}
}
}

override fun onDestroyView() {
super.onDestroyView()
testField = null
}
}
13 changes: 13 additions & 0 deletions app/src/main/res/drawable/test_field_background.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="?attr/colorSurfaceVariant" />
</shape>
</item>
<item android:top="0dp" android:bottom="1dp" android:left="1dp" android:right="1dp">
<shape android:shape="rectangle">
<solid android:color="?attr/colorSurface" />
</shape>
</item>
</layer-list>
26 changes: 26 additions & 0 deletions app/src/main/res/layout/preference_fragment_with_test_field.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<FrameLayout
android:id="@+id/preference_container"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />

<EditText
android:id="@+id/test_field"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:layout_marginBottom="16dp"
android:background="@drawable/test_field_background"
android:hint="@string/test_field_hint"
android:importantForAutofill="no"
android:inputType="textMultiLine|textCapSentences"
android:padding="12dp" />

</LinearLayout>
1 change: 1 addition & 0 deletions app/src/main/res/values-cs/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
<string name="dictionary_attribution_title">Data slovníku</string>
<string name="theme_picker_title">Téma klávesnice</string>
<string name="dictionary_attribution_summary">Licence a atribuce FrequencyWords</string>
<string name="test_field_hint">Otestovat změny</string>

<!-- Settings Enums -->
<!-- Key Size -->
Expand Down
1 change: 1 addition & 0 deletions app/src/main/res/values-de/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
<string name="dictionary_attribution_title">Wörterbuch</string>
<string name="theme_picker_title">Thema</string>
<string name="dictionary_attribution_summary">FrequencyWords Lizenz</string>
<string name="test_field_hint">Änderungen testen</string>

<!-- Settings Enums -->
<!-- Key Size -->
Expand Down
1 change: 1 addition & 0 deletions app/src/main/res/values-es/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
<string name="dictionary_attribution_title">Datos del diccionario</string>
<string name="theme_picker_title">Tema</string>
<string name="dictionary_attribution_summary">Licencia y atribución de FrequencyWords</string>
<string name="test_field_hint">Probar cambios</string>

<!-- Settings Enums -->
<!-- Key Size -->
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/res/values-pl/strings.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
<resources>
<string name="app_name" translatable="false">Urik</string>
<string name="ime_name">Klawiatura Urik</string>
<string name="ime_label">Klawiatura Urik</string>
<string name="ime_description">Pisanie gestami, sprawdzanie pisowni i obsługa wielu języków bez naruszania prywatności. Bez telemetrii. Bez gromadzenia danych. Wszystko pozostaje na twoim urządzeniu.</string>
Expand Down Expand Up @@ -33,6 +32,7 @@

<!-- Settings Enums -->
<!-- Key Size -->
<string name="test_field_hint">Zmiany testowe</string>
<string name="key_size_small">Małe</string>
<string name="key_size_medium">Średnie</string>
<string name="key_size_large">Duże</string>
Expand Down
1 change: 1 addition & 0 deletions app/src/main/res/values-pt/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
<string name="dictionary_attribution_title">Dados do dicionário</string>
<string name="theme_picker_title">Tema</string>
<string name="dictionary_attribution_summary">Licença e atribuição do FrequencyWords</string>
<string name="test_field_hint">Testar alterações</string>

<!-- Settings Enums -->
<!-- Key Size -->
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/res/values-ru/strings.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
<resources>
<string name="app_name" translatable="false">Urik</string>
<string name="ime_name">Клавиатура Urik</string>
<string name="ime_label">Клавиатура Urik</string>
<string name="ime_description">Непрерывный ввод, проверка орфографии и поддержка нескольких языков без вреда для вашей конфиденциальности. Без телеметрии. Без сбора данных. Всё остается на вашем устройстве.</string>
Expand Down Expand Up @@ -33,6 +32,7 @@

<!-- Settings Enums -->
<!-- Key Size -->
<string name="test_field_hint">Тестовые изменения</string>
<string name="key_size_small">Маленький</string>
<string name="key_size_medium">Средний</string>
<string name="key_size_large">Большой</string>
Expand Down
1 change: 1 addition & 0 deletions app/src/main/res/values-sv/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,7 @@
<string name="licenses_title">Öppen källkodslicenser</string>
<string name="licenses_description">Visa tredjepartsbibliotekslicenser</string>
<string name="dictionary_attribution_title">Ordboksdata</string>
<string name="test_field_hint">Testa ändringar</string>
<string name="tip_1_title">Lärande ord</string>
<string name="tip_1_description">Tryck mellanslag efter ett markerat stavfel för att lägga till ordet i din ordbok.</string>
<string name="tip_2_title">Interpunktion</string>
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/res/values-uk/strings.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
<resources>
<string name="app_name" translatable="false">Urik</string>
<string name="ime_name">Клавіатура Urik</string>
<string name="ime_label">Клавіатура Urik</string>
<string name="ime_description">Безперервний ввід, перевірка орфографії та багатомовна підтримка без шкоди для вашої конфіденційності. Без телеметрії. Без збору даних. Усе залишається на вашому пристрої.</string>
Expand Down Expand Up @@ -33,6 +32,7 @@

<!-- Settings Enums -->
<!-- Key Size -->
<string name="test_field_hint">Зміни в тестах</string>
<string name="key_size_small">Малий</string>
<string name="key_size_medium">Середній</string>
<string name="key_size_large">Великий</string>
Expand Down
1 change: 1 addition & 0 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
<string name="dictionary_attribution_title">Dictionary Data</string>
<string name="theme_picker_title">Keyboard Theme</string>
<string name="dictionary_attribution_summary">FrequencyWords license and attribution</string>
<string name="test_field_hint">Test changes</string>

<!-- Settings Enums -->
<!-- Key Size -->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,9 +78,13 @@ class SwipeInputIntegrationTest {
val mockAssets = mock<AssetManager>()
whenever(mockAssets.open(any())).thenAnswer {
when {
it.getArgument<String>(0).contains("_symspell.txt") ->
it.getArgument<String>(0).contains("_symspell.txt") -> {
ByteArrayInputStream(testDictionary.toByteArray())
else -> throw java.io.FileNotFoundException()
}

else -> {
throw java.io.FileNotFoundException()
}
}
}
val mockContext = spy(context)
Expand Down