Skip to content
Snippets Groups Projects
Commit f65bee15 authored by Aleksandras Kostarevas's avatar Aleksandras Kostarevas
Browse files

Maintain existing row height when number row enabled by input field

parent 05e11745
No related branches found
No related tags found
No related merge requests found
......@@ -130,6 +130,8 @@ public final class Settings implements SharedPreferences.OnSharedPreferenceChang
public static final int SPACES_MODE_SUGGESTIONS = 1; // Use antiphantom for suggestion, none for punctuation
public static final int SPACES_MODE_ALL = 2; // Use antiphantom for all
public static final int DEFAULT_ALT_SPACES_MODE = SPACES_MODE_ALL;
// Emoji
public static final String PREF_EMOJI_RECENT_KEYS = "emoji_recent_keys";
public static final String PREF_EMOJI_CATEGORY_LAST_TYPED_ID = "emoji_category_last_typed_id";
......
......@@ -92,6 +92,7 @@ public class SettingsValues {
public final boolean mEnableMetricsLogging;
public final boolean mShouldShowLxxSuggestionUi;
public final boolean mIsNumberRowEnabled;
public final boolean mIsNumberRowEnabledByUser;
public final boolean mIsArrowRowEnabled;
public final int mScreenMetrics;
......@@ -156,8 +157,8 @@ public class SettingsValues {
RegistryKt.getDefaultActionKey()
));
mShowsActionKey = mActionKeyId != -1;
mIsNumberRowEnabled = prefs.getBoolean(Settings.PREF_ENABLE_NUMBER_ROW, false)
|| inputAttributes.mIsPasswordField;
mIsNumberRowEnabledByUser = prefs.getBoolean(Settings.PREF_ENABLE_NUMBER_ROW, false);
mIsNumberRowEnabled = mIsNumberRowEnabledByUser || inputAttributes.mIsPasswordField;
mIsArrowRowEnabled = prefs.getBoolean(Settings.PREF_ENABLE_ARROW_ROW, false);
mUseContactsDict = prefs.getBoolean(Settings.PREF_KEY_USE_CONTACTS_DICT, true);
mUsePersonalizedDicts = prefs.getBoolean(Settings.PREF_KEY_USE_PERSONALIZED_DICTS, true);
......@@ -178,7 +179,7 @@ public class SettingsValues {
mSpacebarMode = prefs.getInt(Settings.PREF_SPACEBAR_MODE, Settings.SPACEBAR_MODE_SWIPE_CURSOR);
mBackspaceMode = prefs.getInt(Settings.PREF_BACKSPACE_MODE, Settings.BACKSPACE_MODE_CHARACTERS);
mAltSpacesMode = prefs.getInt(Settings.PREF_ALT_SPACES_MODE, Settings.SPACES_MODE_ALL);
mAltSpacesMode = prefs.getInt(Settings.PREF_ALT_SPACES_MODE, Settings.DEFAULT_ALT_SPACES_MODE);
mShouldShowLxxSuggestionUi = Settings.SHOULD_SHOW_LXX_SUGGESTION_UI
&& prefs.getBoolean(DebugSettings.PREF_SHOULD_SHOW_LXX_SUGGESTION_UI, true);
......
......@@ -420,7 +420,7 @@ fun LongPressScreen(navController: NavHostController = rememberNavController())
@Composable
private fun AutoSpacesSetting() {
val altSpacesMode = useSharedPrefsInt(Settings.PREF_ALT_SPACES_MODE, Settings.SPACES_MODE_ALL)
val altSpacesMode = useSharedPrefsInt(Settings.PREF_ALT_SPACES_MODE, Settings.DEFAULT_ALT_SPACES_MODE)
val autoSpaceModes = mapOf(
Settings.SPACES_MODE_ALL to "Automatically insert spaces after punctuation or after inserting suggestions",
Settings.SPACES_MODE_SUGGESTIONS to "Automatically insert spaces only after inserting suggestions",
......
......@@ -397,8 +397,22 @@ class KeyboardSizingCalculator(val context: Context, val uixManager: UixManager)
val numRows = 4.0 +
((effectiveRowCount - 5) / 2.0).coerceAtLeast(0.0) +
if(settings.mIsNumberRowEnabled) { 0.5 } else { 0.0 } +
if(settings.mIsArrowRowEnabled) { 0.8 } else { 0.0 }
when { // Number row height
// If it's enabled but not explicitly by user, it means it's enabled due to
// the input field (e.g. password field). In this case, the full height of the
// number row needs to be added to keep the existing keys consistently positioned
settings.mIsNumberRowEnabled && !settings.mIsNumberRowEnabledByUser ->
layout.effectiveRows.first { it.isNumberRow }.rowHeight
// If it's enabled by user, add only 0.5 to make the keyboard slightly less tall
settings.mIsNumberRowEnabled -> 0.5
else -> 0.0
} +
when { // Arrow row height
settings.mIsArrowRowEnabled -> 0.8
else -> 0.0
}
val recommendedHeight = numRows * singularRowHeight + padding.bottom
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment