Make toolbar direction for RTL layouts adjustable (#574)

This commit is contained in:
codokie 2024-03-27 07:04:59 +02:00 committed by GitHub
parent 613f2e80a3
commit fb9008e9fe
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 23 additions and 5 deletions

View file

@ -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";

View file

@ -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;
@ -150,6 +151,7 @@ public class SettingsValues {
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;

View file

@ -126,9 +126,7 @@ public final class SuggestionStripView extends RelativeLayout implements OnClick
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);
}
@ -265,8 +263,14 @@ public final class SuggestionStripView extends RelativeLayout implements OnClick
}
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) {

View file

@ -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>

View file

@ -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">