mirror of
https://github.com/Helium314/HeliBoard.git
synced 2025-04-22 23:29:10 +00:00
add option for narrower key gap
This commit is contained in:
parent
77baaff462
commit
ffa9a01a2b
17 changed files with 80 additions and 21 deletions
|
@ -6,6 +6,7 @@ import android.widget.FrameLayout
|
|||
import android.widget.LinearLayout
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import org.dslul.openboard.inputmethod.latin.R
|
||||
import org.dslul.openboard.inputmethod.latin.settings.Settings
|
||||
import org.dslul.openboard.inputmethod.latin.utils.ResourceUtils
|
||||
|
||||
class ClipboardLayoutParams(res: Resources) {
|
||||
|
@ -26,14 +27,21 @@ class ClipboardLayoutParams(res: Resources) {
|
|||
val suggestionStripHeight = res.getDimensionPixelSize(R.dimen.config_suggestions_strip_height)
|
||||
val defaultKeyboardWidth = ResourceUtils.getDefaultKeyboardWidth(res)
|
||||
|
||||
if (Settings.getInstance().current.mNarrowKeyGaps) {
|
||||
keyVerticalGap = res.getFraction(R.fraction.config_key_vertical_gap_holo_narrow,
|
||||
defaultKeyboardHeight, defaultKeyboardHeight).toInt()
|
||||
keyHorizontalGap = res.getFraction(R.fraction.config_key_horizontal_gap_holo_narrow,
|
||||
defaultKeyboardWidth, defaultKeyboardWidth).toInt()
|
||||
} else {
|
||||
keyVerticalGap = res.getFraction(R.fraction.config_key_vertical_gap_holo,
|
||||
defaultKeyboardHeight, defaultKeyboardHeight).toInt()
|
||||
keyHorizontalGap = res.getFraction(R.fraction.config_key_horizontal_gap_holo,
|
||||
defaultKeyboardWidth, defaultKeyboardWidth).toInt()
|
||||
}
|
||||
bottomPadding = res.getFraction(R.fraction.config_keyboard_bottom_padding_holo,
|
||||
defaultKeyboardHeight, defaultKeyboardHeight).toInt()
|
||||
topPadding = res.getFraction(R.fraction.config_keyboard_top_padding_holo,
|
||||
defaultKeyboardHeight, defaultKeyboardHeight).toInt()
|
||||
keyHorizontalGap = res.getFraction(R.fraction.config_key_horizontal_gap_holo,
|
||||
defaultKeyboardWidth, defaultKeyboardWidth).toInt()
|
||||
|
||||
actionBarHeight = (defaultKeyboardHeight - bottomPadding - topPadding) / DEFAULT_KEYBOARD_ROWS - keyVerticalGap / 2
|
||||
listHeight = defaultKeyboardHeight + suggestionStripHeight - actionBarHeight - bottomPadding
|
||||
|
|
|
@ -22,7 +22,7 @@ import android.widget.LinearLayout;
|
|||
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import org.dslul.openboard.inputmethod.latin.R;
|
||||
import org.dslul.openboard.inputmethod.latin.settings.SettingsValues;
|
||||
import org.dslul.openboard.inputmethod.latin.settings.Settings;
|
||||
import org.dslul.openboard.inputmethod.latin.utils.ResourceUtils;
|
||||
|
||||
final class EmojiLayoutParams {
|
||||
|
@ -41,14 +41,21 @@ final class EmojiLayoutParams {
|
|||
public EmojiLayoutParams(final Resources res) {
|
||||
final int defaultKeyboardHeight = ResourceUtils.getDefaultKeyboardHeight(res);
|
||||
final int defaultKeyboardWidth = ResourceUtils.getDefaultKeyboardWidth(res);
|
||||
if (Settings.getInstance().getCurrent().mNarrowKeyGaps) {
|
||||
mKeyVerticalGap = (int) res.getFraction(R.fraction.config_key_vertical_gap_holo_narrow,
|
||||
defaultKeyboardHeight, defaultKeyboardHeight);
|
||||
mKeyHorizontalGap = (int) (res.getFraction(R.fraction.config_key_horizontal_gap_holo_narrow,
|
||||
defaultKeyboardWidth, defaultKeyboardWidth));
|
||||
} else {
|
||||
mKeyVerticalGap = (int) res.getFraction(R.fraction.config_key_vertical_gap_holo,
|
||||
defaultKeyboardHeight, defaultKeyboardHeight);
|
||||
mKeyHorizontalGap = (int) (res.getFraction(R.fraction.config_key_horizontal_gap_holo,
|
||||
defaultKeyboardWidth, defaultKeyboardWidth));
|
||||
}
|
||||
mBottomPadding = (int) res.getFraction(R.fraction.config_keyboard_bottom_padding_holo,
|
||||
defaultKeyboardHeight, defaultKeyboardHeight);
|
||||
mTopPadding = (int) res.getFraction(R.fraction.config_keyboard_top_padding_holo,
|
||||
defaultKeyboardHeight, defaultKeyboardHeight);
|
||||
mKeyHorizontalGap = (int) (res.getFraction(R.fraction.config_key_horizontal_gap_holo,
|
||||
defaultKeyboardWidth, defaultKeyboardWidth));
|
||||
mEmojiCategoryPageIdViewHeight =
|
||||
(int) (res.getDimension(R.dimen.config_emoji_category_page_id_height));
|
||||
final int baseheight = defaultKeyboardHeight - mBottomPadding - mTopPadding
|
||||
|
|
|
@ -35,6 +35,7 @@ import org.dslul.openboard.inputmethod.keyboard.KeyboardTheme;
|
|||
import org.dslul.openboard.inputmethod.latin.R;
|
||||
import org.dslul.openboard.inputmethod.latin.common.Constants;
|
||||
import org.dslul.openboard.inputmethod.latin.common.StringUtils;
|
||||
import org.dslul.openboard.inputmethod.latin.settings.Settings;
|
||||
import org.dslul.openboard.inputmethod.latin.utils.ResourceUtils;
|
||||
import org.dslul.openboard.inputmethod.latin.utils.XmlParseUtils;
|
||||
import org.dslul.openboard.inputmethod.latin.utils.XmlParseUtils.ParseException;
|
||||
|
@ -258,13 +259,22 @@ public class KeyboardBuilder<KP extends KeyboardParams> {
|
|||
params.mBaseWidth = baseWidth;
|
||||
params.mDefaultKeyWidth = (int)keyAttr.getFraction(R.styleable.Keyboard_Key_keyWidth,
|
||||
baseWidth, baseWidth, baseWidth / DEFAULT_KEYBOARD_COLUMNS);
|
||||
params.mHorizontalGap = (int)keyboardAttr.getFraction(
|
||||
|
||||
if (Settings.getInstance().getCurrent().mNarrowKeyGaps) {
|
||||
params.mHorizontalGap = (int) keyboardAttr.getFraction(
|
||||
R.styleable.Keyboard_horizontalGapNarrow, baseWidth, baseWidth, 0);
|
||||
params.mVerticalGap = (int) keyboardAttr.getFraction(
|
||||
R.styleable.Keyboard_verticalGapNarrow, height, height, 0);
|
||||
} else {
|
||||
params.mHorizontalGap = (int) keyboardAttr.getFraction(
|
||||
R.styleable.Keyboard_horizontalGap, baseWidth, baseWidth, 0);
|
||||
// TODO: Fix keyboard geometry calculation clearer. Historically vertical gap between
|
||||
// rows are determined based on the entire keyboard height including top and bottom
|
||||
// paddings.
|
||||
params.mVerticalGap = (int)keyboardAttr.getFraction(
|
||||
params.mVerticalGap = (int) keyboardAttr.getFraction(
|
||||
R.styleable.Keyboard_verticalGap, height, height, 0);
|
||||
}
|
||||
|
||||
final int baseHeight = params.mOccupiedHeight - params.mTopPadding
|
||||
- params.mBottomPadding + params.mVerticalGap;
|
||||
params.mBaseHeight = baseHeight;
|
||||
|
|
|
@ -248,6 +248,10 @@ class AppearanceSettingsFragment : SubScreenFragment(), Preference.OnPreferenceC
|
|||
.show()
|
||||
true
|
||||
}
|
||||
preferenceScreen.findPreference(Settings.PREF_NARROW_KEY_GAPS)?.onPreferenceChangeListener = Preference.OnPreferenceChangeListener { _, _ ->
|
||||
needsReload = true
|
||||
true
|
||||
}
|
||||
}
|
||||
|
||||
private fun setupKeyboardHeight(prefKey: String, defaultValue: Float) {
|
||||
|
|
|
@ -141,8 +141,10 @@ public final class Settings implements SharedPreferences.OnSharedPreferenceChang
|
|||
public static final String PREF_CLIPBOARD_HISTORY_RETENTION_TIME = "pref_clipboard_history_retention_time";
|
||||
|
||||
public static final String PREF_SECONDARY_LOCALES = "pref_secondary_locales";
|
||||
public static final String PREF_ADD_TO_PERSONAL_DICTIONARY = "add_to_personal_dictionary";
|
||||
public static final String PREF_NAVBAR_COLOR = "navbar_color";
|
||||
public static final String PREF_ADD_TO_PERSONAL_DICTIONARY = "pref_add_to_personal_dictionary";
|
||||
public static final String PREF_NAVBAR_COLOR = "pref_navbar_color";
|
||||
|
||||
public static final String PREF_NARROW_KEY_GAPS = "pref_narrow_key_gaps";
|
||||
|
||||
// This preference key is deprecated. Use {@link #PREF_SHOW_LANGUAGE_SWITCH_KEY} instead.
|
||||
// This is being used only for the backward compatibility.
|
||||
|
|
|
@ -88,6 +88,7 @@ public class SettingsValues {
|
|||
public final long mClipboardHistoryRetentionTime;
|
||||
public final boolean mOneHandedModeEnabled;
|
||||
public final int mOneHandedModeGravity;
|
||||
public final boolean mNarrowKeyGaps;
|
||||
public final List<Locale> mSecondaryLocales;
|
||||
// Use bigrams to predict the next word when there is no input for it yet
|
||||
public final boolean mBigramPredictionEnabled;
|
||||
|
@ -259,6 +260,7 @@ public class SettingsValues {
|
|||
mAddToPersonalDictionary = prefs.getBoolean(Settings.PREF_ADD_TO_PERSONAL_DICTIONARY, false);
|
||||
mUseContactsDictionary = prefs.getBoolean(AndroidSpellCheckerService.PREF_USE_CONTACTS_KEY, false);
|
||||
mCustomNavBarColor = prefs.getBoolean(Settings.PREF_NAVBAR_COLOR, false);
|
||||
mNarrowKeyGaps = prefs.getBoolean(Settings.PREF_NARROW_KEY_GAPS, true);
|
||||
}
|
||||
|
||||
public boolean isMetricsLoggingEnabled() {
|
||||
|
|
|
@ -37,6 +37,8 @@
|
|||
<fraction name="config_keyboard_bottom_padding_holo">0.0%p</fraction>
|
||||
<fraction name="config_key_vertical_gap_holo">5.368%p</fraction>
|
||||
<fraction name="config_key_horizontal_gap_holo">1.020%p</fraction>
|
||||
<fraction name="config_key_vertical_gap_holo_narrow">5.368%p</fraction>
|
||||
<fraction name="config_key_horizontal_gap_holo_narrow">1.020%p</fraction>
|
||||
<!-- config_more_keys_keyboard_key_height x -0.5 -->
|
||||
<dimen name="config_more_keys_keyboard_vertical_correction_holo">-22.4dp</dimen>
|
||||
<dimen name="config_key_preview_offset_holo">1.6dp</dimen>
|
||||
|
|
|
@ -31,6 +31,8 @@
|
|||
<fraction name="config_keyboard_bottom_padding_holo">0.0%p</fraction>
|
||||
<fraction name="config_key_vertical_gap_holo">4.5%p</fraction>
|
||||
<fraction name="config_key_horizontal_gap_holo">0.9%p</fraction>
|
||||
<fraction name="config_key_vertical_gap_holo_narrow">4.5%p</fraction>
|
||||
<fraction name="config_key_horizontal_gap_holo_narrow">0.9%p</fraction>
|
||||
|
||||
<fraction name="config_key_letter_ratio_holo">50%</fraction>
|
||||
<fraction name="config_key_letter_ratio_lxx">50%</fraction>
|
||||
|
|
|
@ -41,6 +41,8 @@
|
|||
<fraction name="config_keyboard_bottom_padding_holo">4.0%p</fraction>
|
||||
<fraction name="config_key_vertical_gap_holo">4.5%p</fraction>
|
||||
<fraction name="config_key_horizontal_gap_holo">1.565%p</fraction>
|
||||
<fraction name="config_key_vertical_gap_holo_narrow">4.5%p</fraction>
|
||||
<fraction name="config_key_horizontal_gap_holo_narrow">1.565%p</fraction>
|
||||
<!-- config_more_keys_keyboard_key_height x -0.5 -->
|
||||
<dimen name="config_more_keys_keyboard_vertical_correction_holo">-31.5dp</dimen>
|
||||
|
||||
|
|
|
@ -29,6 +29,8 @@
|
|||
<fraction name="config_keyboard_bottom_padding_holo">3.690%p</fraction>
|
||||
<fraction name="config_key_vertical_gap_holo">3.690%p</fraction>
|
||||
<fraction name="config_key_horizontal_gap_holo">1.030%p</fraction>
|
||||
<fraction name="config_key_vertical_gap_holo_narrow">3.690%p</fraction>
|
||||
<fraction name="config_key_horizontal_gap_holo_narrow">1.030%p</fraction>
|
||||
|
||||
<dimen name="config_more_keys_keyboard_key_height">81.9dp</dimen>
|
||||
|
||||
|
|
|
@ -30,6 +30,8 @@
|
|||
<fraction name="config_keyboard_bottom_padding_holo">3.312%p</fraction>
|
||||
<fraction name="config_key_vertical_gap_holo">3.312%p</fraction>
|
||||
<fraction name="config_key_horizontal_gap_holo">1.066%p</fraction>
|
||||
<fraction name="config_key_vertical_gap_holo_narrow">3.312%p</fraction>
|
||||
<fraction name="config_key_horizontal_gap_holo_narrow">1.066%p</fraction>
|
||||
<!-- config_more_keys_keyboard_key_height x -0.5 -->
|
||||
<dimen name="config_more_keys_keyboard_vertical_correction_holo">-31.5dp</dimen>
|
||||
|
||||
|
|
|
@ -263,8 +263,12 @@
|
|||
<attr name="rowHeight" format="dimension|fraction" />
|
||||
<!-- Default horizontal gap between keys, in the proportion of keyboard width. -->
|
||||
<attr name="horizontalGap" format="fraction" />
|
||||
<!-- Default horizontal gap between keys, in the proportion of keyboard width. -->
|
||||
<attr name="horizontalGapNarrow" format="fraction" />
|
||||
<!-- Default vertical gap between rows of keys, in the proportion of keyboard height. -->
|
||||
<attr name="verticalGap" format="fraction" />
|
||||
<!-- Default vertical gap between rows of keys, in the proportion of keyboard height. -->
|
||||
<attr name="verticalGapNarrow" format="fraction" />
|
||||
<!-- More keys keyboard layout template -->
|
||||
<attr name="moreKeysTemplate" format="reference" />
|
||||
<!-- Icon set for key top and key preview. These should be aligned with
|
||||
|
|
|
@ -41,8 +41,10 @@
|
|||
|
||||
<fraction name="config_keyboard_top_padding_holo">2.335%p</fraction>
|
||||
<fraction name="config_keyboard_bottom_padding_holo">4.669%p</fraction>
|
||||
<fraction name="config_key_vertical_gap_holo">3.527%p</fraction>
|
||||
<fraction name="config_key_horizontal_gap_holo">1.089%p</fraction>
|
||||
<fraction name="config_key_vertical_gap_holo">6.127%p</fraction>
|
||||
<fraction name="config_key_horizontal_gap_holo">1.739%p</fraction>
|
||||
<fraction name="config_key_vertical_gap_holo_narrow">3.527%p</fraction>
|
||||
<fraction name="config_key_horizontal_gap_holo_narrow">1.089%p</fraction>
|
||||
<!-- config_more_keys_keyboard_key_height x -0.5 -->
|
||||
<dimen name="config_more_keys_keyboard_vertical_correction_holo">-26.4dp</dimen>
|
||||
<dimen name="config_key_preview_offset_holo">40.0dp</dimen>
|
||||
|
|
|
@ -254,6 +254,8 @@
|
|||
<string name="prefs_long_press_keyboard_to_change_lang_summary">Long pressing space key will prompt input method selection menu</string>
|
||||
<!-- Title of the settings to enable keyboard resizing -->
|
||||
<string name="prefs_resize_keyboard">Enable keyboard resizing</string>
|
||||
<!-- Title of the setting for reduced distance between keys -->
|
||||
<string name="prefs_narrow_key_gaps">Narrow key gaps</string>
|
||||
<!-- Title of the settings for setting keyboard height -->
|
||||
<string name="prefs_keyboard_height_scale">Keyboard height scale</string>
|
||||
<!-- Title of the preference item for switching accounts [CHAR LIMIT=30] -->
|
||||
|
|
|
@ -25,7 +25,9 @@
|
|||
<style name="Keyboard">
|
||||
<item name="rowHeight">25%p</item>
|
||||
<item name="horizontalGap">@fraction/config_key_horizontal_gap_holo</item>
|
||||
<item name="horizontalGapNarrow">@fraction/config_key_horizontal_gap_holo_narrow</item>
|
||||
<item name="verticalGap">@fraction/config_key_vertical_gap_holo</item>
|
||||
<item name="verticalGapNarrow">@fraction/config_key_vertical_gap_holo_narrow</item>
|
||||
<item name="touchPositionCorrectionData">@array/touch_position_correction_data_holo</item>
|
||||
<item name="keyboardTopPadding">@fraction/config_keyboard_top_padding_holo</item>
|
||||
<item name="keyboardBottomPadding">@fraction/config_keyboard_bottom_padding_holo</item>
|
||||
|
|
|
@ -50,7 +50,7 @@
|
|||
android:summary="@string/amoled_mode_summary"/>
|
||||
|
||||
<CheckBoxPreference
|
||||
android:key="navbar_color"
|
||||
android:key="pref_navbar_color"
|
||||
android:title="@string/theme_navbar"/>
|
||||
|
||||
<Preference
|
||||
|
@ -80,6 +80,12 @@
|
|||
android:defaultValue="false"
|
||||
android:persistent="true" />
|
||||
|
||||
<CheckBoxPreference
|
||||
android:key="pref_narrow_key_gaps"
|
||||
android:title="@string/prefs_narrow_key_gaps"
|
||||
android:defaultValue="true"
|
||||
android:persistent="true" />
|
||||
|
||||
<org.dslul.openboard.inputmethod.latin.settings.SeekBarDialogPreference
|
||||
android:dependency="pref_resize_keyboard"
|
||||
android:key="pref_keyboard_height_scale"
|
||||
|
|
|
@ -96,7 +96,7 @@
|
|||
android:persistent="true" />
|
||||
|
||||
<CheckBoxPreference
|
||||
android:key="add_to_personal_dictionary"
|
||||
android:key="pref_add_to_personal_dictionary"
|
||||
android:title="@string/add_to_personal_dictionary"
|
||||
android:summary="@string/add_to_personal_dictionary_summary"
|
||||
android:defaultValue="false"
|
||||
|
|
Loading…
Add table
Reference in a new issue