Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix toolbar keys order in RTL layout #574

Merged
merged 10 commits into from
Mar 27, 2024
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ public final class Settings implements SharedPreferences.OnSharedPreferenceChang
public static final String PREF_BLOCK_POTENTIALLY_OFFENSIVE = "block_potentially_offensive";
public static final String PREF_LANGUAGE_SWITCH_KEY = "language_switch_key";
public static final String PREF_SHOW_EMOJI_KEY = "show_emoji_key";
public static final String PREF_VARIABLE_TOOLBAR_DIRECTION = "var_toolbar_direction";
public static final String PREF_ADDITIONAL_SUBTYPES = "additional_subtypes";
public static final String PREF_ENABLE_SPLIT_KEYBOARD = "split_keyboard";
public static final String PREF_SPLIT_SPACER_SCALE = "split_spacer_scale";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ public class SettingsValues {
public final boolean mShowsPopupHints;
public final boolean mSpaceForLangChange;
public final boolean mShowsEmojiKey;
public final boolean mVarToolbarDirection;
public final boolean mUsePersonalizedDicts;
public final boolean mUseDoubleSpacePeriod;
public final boolean mBlockPotentiallyOffensive;
Expand Down Expand Up @@ -150,6 +151,7 @@ public SettingsValues(final Context context, final SharedPreferences prefs, fina
mShowsPopupHints = prefs.getBoolean(Settings.PREF_SHOW_POPUP_HINTS, false);
mSpaceForLangChange = prefs.getBoolean(Settings.PREF_SPACE_TO_CHANGE_LANG, true);
mShowsEmojiKey = prefs.getBoolean(Settings.PREF_SHOW_EMOJI_KEY, false);
mVarToolbarDirection = prefs.getBoolean(Settings.PREF_VARIABLE_TOOLBAR_DIRECTION, true);
mUsePersonalizedDicts = prefs.getBoolean(Settings.PREF_KEY_USE_PERSONALIZED_DICTS, true);
mUseDoubleSpacePeriod = prefs.getBoolean(Settings.PREF_KEY_USE_DOUBLE_SPACE_PERIOD, true)
&& inputAttributes.mIsGeneralTextInput;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -126,9 +126,7 @@ public StripVisibilityGroup(final View suggestionStripView,
showSuggestionsStrip();
}

public void setLayoutDirection(final boolean isRtlLanguage) {
final int layoutDirection = isRtlLanguage ? ViewCompat.LAYOUT_DIRECTION_RTL
: ViewCompat.LAYOUT_DIRECTION_LTR;
public void setLayoutDirection(final int layoutDirection) {
ViewCompat.setLayoutDirection(mSuggestionStripView, layoutDirection);
ViewCompat.setLayoutDirection(mSuggestionsStrip, layoutDirection);
}
Expand Down Expand Up @@ -265,8 +263,14 @@ private void updateKeys() {
}

public void setRtl(final boolean isRtlLanguage) {
mStripVisibilityGroup.setLayoutDirection(isRtlLanguage);
mRtl = isRtlLanguage ? -1 : 1;
final int layoutDirection;
if (!Settings.getInstance().getCurrent().mVarToolbarDirection)
layoutDirection = ViewCompat.LAYOUT_DIRECTION_LOCALE;
else{
layoutDirection = isRtlLanguage ? ViewCompat.LAYOUT_DIRECTION_RTL : ViewCompat.LAYOUT_DIRECTION_LTR;
mRtl = isRtlLanguage ? -1 : 1;
}
mStripVisibilityGroup.setLayoutDirection(layoutDirection);
}

public void setSuggestions(final SuggestedWords suggestedWords, final boolean isRtlLanguage) {
Expand Down
4 changes: 4 additions & 0 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -776,4 +776,8 @@ New dictionary:
<string name="action_none">None</string>
<!-- Option to move the cursor when swiping the spacebar -->
<string name="space_swipe_move_cursor_entry">Move Cursor</string>
<!-- Title of the settings for variable toolbar direction -->
<string name="var_toolbar_direction">Variable toolbar direction</string>
<!-- Description of the variable toolbar direction setting -->
<string name="var_toolbar_direction_summary">Reverse direction when a right-to-left keyboard subtype is selected</string>
</resources>
7 changes: 7 additions & 0 deletions app/src/main/res/xml/prefs_screen_preferences.xml
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,13 @@
android:key="toolbar_keys"
android:title="@string/toolbar_keys" />

<SwitchPreference
android:key="var_toolbar_direction"
android:title="@string/var_toolbar_direction"
android:summary="@string/var_toolbar_direction_summary"
android:defaultValue="true"
android:persistent="true" />

</PreferenceCategory>

<PreferenceCategory android:title="@string/settings_category_clipboard_history">
Expand Down