diff options
| -rw-r--r-- | res/values-cs/strings.xml | 5 | ||||
| -rw-r--r-- | res/values-de/strings.xml | 5 | ||||
| -rw-r--r-- | res/values-es/strings.xml | 5 | ||||
| -rw-r--r-- | res/values-fa/strings.xml | 5 | ||||
| -rw-r--r-- | res/values-fr/strings.xml | 5 | ||||
| -rw-r--r-- | res/values-it/strings.xml | 5 | ||||
| -rw-r--r-- | res/values-ko/strings.xml | 5 | ||||
| -rw-r--r-- | res/values-lv/strings.xml | 5 | ||||
| -rw-r--r-- | res/values-pl/strings.xml | 5 | ||||
| -rw-r--r-- | res/values-pt/strings.xml | 5 | ||||
| -rw-r--r-- | res/values-ru/strings.xml | 5 | ||||
| -rw-r--r-- | res/values-tr/strings.xml | 5 | ||||
| -rw-r--r-- | res/values-vi/strings.xml | 5 | ||||
| -rw-r--r-- | res/values-zh-rCN/strings.xml | 5 | ||||
| -rw-r--r-- | res/values/arrays.xml | 14 | ||||
| -rw-r--r-- | res/values/strings.xml | 5 | ||||
| -rw-r--r-- | res/xml/settings.xml | 2 | ||||
| -rw-r--r-- | srcs/juloo.keyboard2/Config.java | 5 | ||||
| -rw-r--r-- | srcs/juloo.keyboard2/Keyboard2View.java | 9 | ||||
| -rw-r--r-- | srcs/juloo.keyboard2/VibratorCompat.java | 81 |
20 files changed, 175 insertions, 11 deletions
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml index 552d06f..b02c056 100644 --- a/res/values-cs/strings.xml +++ b/res/values-cs/strings.xml @@ -67,6 +67,11 @@ <!-- <string name="pref_category_advanced">Advanced</string> --> <!-- <string name="pref_custom_layout_title">Custom layout</string> --> <!-- <string name="pref_custom_layout_summary">See the source code. This option is not meant to be used.</string> --> + <!-- <string name="pref_vibration_e_disabled">Disabled</string> --> + <!-- <string name="pref_vibration_e_system">System</string> --> + <!-- <string name="pref_vibration_e_strong">Strong</string> --> + <!-- <string name="pref_vibration_e_medium">Medium</string> --> + <!-- <string name="pref_vibration_e_light">Light</string> --> <string name="key_action_next">Další</string> <string name="key_action_done">Dokončit</string> <string name="key_action_go">Spustit</string> diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml index bbaf594..4cccd3a 100644 --- a/res/values-de/strings.xml +++ b/res/values-de/strings.xml @@ -67,6 +67,11 @@ <string name="pref_category_advanced">Erweitert</string> <string name="pref_custom_layout_title">Eigenes Layout</string> <string name="pref_custom_layout_summary">Bitte Sourcecode ansehen. Diese Option ist nicht zur Verwendung vorgesehen.</string> + <!-- <string name="pref_vibration_e_disabled">Disabled</string> --> + <!-- <string name="pref_vibration_e_system">System</string> --> + <!-- <string name="pref_vibration_e_strong">Strong</string> --> + <!-- <string name="pref_vibration_e_medium">Medium</string> --> + <!-- <string name="pref_vibration_e_light">Light</string> --> <string name="key_action_next">Nächstes</string> <string name="key_action_done">Fertig</string> <string name="key_action_go">Los</string> diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml index 41f53ba..b1908fd 100644 --- a/res/values-es/strings.xml +++ b/res/values-es/strings.xml @@ -67,6 +67,11 @@ <!-- <string name="pref_category_advanced">Advanced</string> --> <!-- <string name="pref_custom_layout_title">Custom layout</string> --> <!-- <string name="pref_custom_layout_summary">See the source code. This option is not meant to be used.</string> --> + <!-- <string name="pref_vibration_e_disabled">Disabled</string> --> + <!-- <string name="pref_vibration_e_system">System</string> --> + <!-- <string name="pref_vibration_e_strong">Strong</string> --> + <!-- <string name="pref_vibration_e_medium">Medium</string> --> + <!-- <string name="pref_vibration_e_light">Light</string> --> <string name="key_action_next">Siguiente</string> <string name="key_action_done">Hecho</string> <string name="key_action_go">Ir</string> diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml index 84399e9..93d0310 100644 --- a/res/values-fa/strings.xml +++ b/res/values-fa/strings.xml @@ -67,6 +67,11 @@ <string name="pref_category_advanced">پیشرفته</string> <string name="pref_custom_layout_title">طرح شخصی</string> <string name="pref_custom_layout_summary">کد منبع را ببینید. این گزینه قرار نیست استفاده شود.</string> + <!-- <string name="pref_vibration_e_disabled">Disabled</string> --> + <!-- <string name="pref_vibration_e_system">System</string> --> + <!-- <string name="pref_vibration_e_strong">Strong</string> --> + <!-- <string name="pref_vibration_e_medium">Medium</string> --> + <!-- <string name="pref_vibration_e_light">Light</string> --> <string name="key_action_next">بعدی</string> <string name="key_action_done">اتمام</string> <string name="key_action_go">برو</string> diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml index 8ea5379..428b4ff 100644 --- a/res/values-fr/strings.xml +++ b/res/values-fr/strings.xml @@ -67,6 +67,11 @@ <string name="pref_category_advanced">Avancé</string> <string name="pref_custom_layout_title">Disposition personnalisée</string> <string name="pref_custom_layout_summary">Cette option n\'est pas faite pour être utilisée.</string> + <!-- <string name="pref_vibration_e_disabled">Disabled</string> --> + <!-- <string name="pref_vibration_e_system">System</string> --> + <!-- <string name="pref_vibration_e_strong">Strong</string> --> + <!-- <string name="pref_vibration_e_medium">Medium</string> --> + <!-- <string name="pref_vibration_e_light">Light</string> --> <string name="key_action_next">Suiv.</string> <string name="key_action_done">Fin</string> <string name="key_action_go">Aller</string> diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml index 2774c6c..893500c 100644 --- a/res/values-it/strings.xml +++ b/res/values-it/strings.xml @@ -67,6 +67,11 @@ <!-- <string name="pref_category_advanced">Advanced</string> --> <!-- <string name="pref_custom_layout_title">Custom layout</string> --> <!-- <string name="pref_custom_layout_summary">See the source code. This option is not meant to be used.</string> --> + <!-- <string name="pref_vibration_e_disabled">Disabled</string> --> + <!-- <string name="pref_vibration_e_system">System</string> --> + <!-- <string name="pref_vibration_e_strong">Strong</string> --> + <!-- <string name="pref_vibration_e_medium">Medium</string> --> + <!-- <string name="pref_vibration_e_light">Light</string> --> <string name="key_action_next">Prossimo</string> <string name="key_action_done">Fatto</string> <string name="key_action_go">Vai</string> diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml index 63d57b6..7a9d001 100644 --- a/res/values-ko/strings.xml +++ b/res/values-ko/strings.xml @@ -67,6 +67,11 @@ <!-- <string name="pref_category_advanced">Advanced</string> --> <!-- <string name="pref_custom_layout_title">Custom layout</string> --> <!-- <string name="pref_custom_layout_summary">See the source code. This option is not meant to be used.</string> --> + <!-- <string name="pref_vibration_e_disabled">Disabled</string> --> + <!-- <string name="pref_vibration_e_system">System</string> --> + <!-- <string name="pref_vibration_e_strong">Strong</string> --> + <!-- <string name="pref_vibration_e_medium">Medium</string> --> + <!-- <string name="pref_vibration_e_light">Light</string> --> <string name="key_action_next">다음</string> <string name="key_action_done">확인</string> <string name="key_action_go">Go</string> diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml index f59e234..aa89788 100644 --- a/res/values-lv/strings.xml +++ b/res/values-lv/strings.xml @@ -67,6 +67,11 @@ <string name="pref_category_advanced">Papildu</string> <string name="pref_custom_layout_title">Pielāgots izkārtojums</string> <string name="pref_custom_layout_summary">Skatīt pirmkodu. Šī iespēja nav paredzēta izmantošanai.</string> + <!-- <string name="pref_vibration_e_disabled">Disabled</string> --> + <!-- <string name="pref_vibration_e_system">System</string> --> + <!-- <string name="pref_vibration_e_strong">Strong</string> --> + <!-- <string name="pref_vibration_e_medium">Medium</string> --> + <!-- <string name="pref_vibration_e_light">Light</string> --> <string name="key_action_next">Nākamais</string> <string name="key_action_done">Darīts</string> <string name="key_action_go">Aiziet</string> diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml index 0b2edb1..697a104 100644 --- a/res/values-pl/strings.xml +++ b/res/values-pl/strings.xml @@ -67,6 +67,11 @@ <string name="pref_category_advanced">Zaawansowane</string> <string name="pref_custom_layout_title">Własny układ</string> <string name="pref_custom_layout_summary">Zobacz kod źródłowy. Ta opcja nie jest przeznaczona do użycia.</string> + <!-- <string name="pref_vibration_e_disabled">Disabled</string> --> + <!-- <string name="pref_vibration_e_system">System</string> --> + <!-- <string name="pref_vibration_e_strong">Strong</string> --> + <!-- <string name="pref_vibration_e_medium">Medium</string> --> + <!-- <string name="pref_vibration_e_light">Light</string> --> <string name="key_action_next">Dalej</string> <string name="key_action_done">OK</string> <string name="key_action_go">Przejdź</string> diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml index 6b92f44..8add41d 100644 --- a/res/values-pt/strings.xml +++ b/res/values-pt/strings.xml @@ -67,6 +67,11 @@ <string name="pref_category_advanced">Avançado</string> <string name="pref_custom_layout_title">Layout personalizado</string> <string name="pref_custom_layout_summary">Veja o código-fonte. Esta opção não deve ser usada.</string> + <!-- <string name="pref_vibration_e_disabled">Disabled</string> --> + <!-- <string name="pref_vibration_e_system">System</string> --> + <!-- <string name="pref_vibration_e_strong">Strong</string> --> + <!-- <string name="pref_vibration_e_medium">Medium</string> --> + <!-- <string name="pref_vibration_e_light">Light</string> --> <string name="key_action_next">Próximo</string> <string name="key_action_done">Pronto</string> <string name="key_action_go">Ir</string> diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml index 3ff8235..66e17d3 100644 --- a/res/values-ru/strings.xml +++ b/res/values-ru/strings.xml @@ -67,6 +67,11 @@ <string name="pref_category_advanced">Расширенные настройки</string> <string name="pref_custom_layout_title">Пользовательская раскладка</string> <string name="pref_custom_layout_summary">Откройте исходный код. Эта параметр не предназначен для использования.</string> + <!-- <string name="pref_vibration_e_disabled">Disabled</string> --> + <!-- <string name="pref_vibration_e_system">System</string> --> + <!-- <string name="pref_vibration_e_strong">Strong</string> --> + <!-- <string name="pref_vibration_e_medium">Medium</string> --> + <!-- <string name="pref_vibration_e_light">Light</string> --> <string name="key_action_next">Далее</string> <string name="key_action_done">Ввод</string> <string name="key_action_go">Go</string> diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml index 4e5a420..236f368 100644 --- a/res/values-tr/strings.xml +++ b/res/values-tr/strings.xml @@ -67,6 +67,11 @@ <!-- <string name="pref_category_advanced">Advanced</string> --> <!-- <string name="pref_custom_layout_title">Custom layout</string> --> <!-- <string name="pref_custom_layout_summary">See the source code. This option is not meant to be used.</string> --> + <!-- <string name="pref_vibration_e_disabled">Disabled</string> --> + <!-- <string name="pref_vibration_e_system">System</string> --> + <!-- <string name="pref_vibration_e_strong">Strong</string> --> + <!-- <string name="pref_vibration_e_medium">Medium</string> --> + <!-- <string name="pref_vibration_e_light">Light</string> --> <string name="key_action_next">İleri</string> <string name="key_action_done">Bitti</string> <string name="key_action_go">İlerle</string> diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml index 2f00ac3..be2d515 100644 --- a/res/values-vi/strings.xml +++ b/res/values-vi/strings.xml @@ -69,6 +69,11 @@ <string name="pref_category_advanced">Nâng cao</string> <string name="pref_custom_layout_title">Tùy chỉnh bố cục</string> <string name="pref_custom_layout_summary">Hãy xem mã nguồn. Lựa chọn này không có mục đích sử dụng.</string> + <!-- <string name="pref_vibration_e_disabled">Disabled</string> --> + <!-- <string name="pref_vibration_e_system">System</string> --> + <!-- <string name="pref_vibration_e_strong">Strong</string> --> + <!-- <string name="pref_vibration_e_medium">Medium</string> --> + <!-- <string name="pref_vibration_e_light">Light</string> --> <string name="key_action_next">Tiếp</string> <string name="key_action_done">Xong</string> <string name="key_action_go">Đi</string> diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml index fc1d70a..e5bd4d4 100644 --- a/res/values-zh-rCN/strings.xml +++ b/res/values-zh-rCN/strings.xml @@ -67,6 +67,11 @@ <!-- <string name="pref_category_advanced">Advanced</string> --> <!-- <string name="pref_custom_layout_title">Custom layout</string> --> <!-- <string name="pref_custom_layout_summary">See the source code. This option is not meant to be used.</string> --> + <!-- <string name="pref_vibration_e_disabled">Disabled</string> --> + <!-- <string name="pref_vibration_e_system">System</string> --> + <!-- <string name="pref_vibration_e_strong">Strong</string> --> + <!-- <string name="pref_vibration_e_medium">Medium</string> --> + <!-- <string name="pref_vibration_e_light">Light</string> --> <string name="key_action_next">下一项</string> <string name="key_action_done">完成</string> <string name="key_action_go">前往</string> diff --git a/res/values/arrays.xml b/res/values/arrays.xml index 51c5940..cf66614 100644 --- a/res/values/arrays.xml +++ b/res/values/arrays.xml @@ -134,4 +134,18 @@ <item>25</item> <item>35</item> </string-array> + <string-array name="pref_vibration_entries"> + <item>@string/pref_vibration_e_disabled</item> + <item>@string/pref_vibration_e_system</item> + <item>@string/pref_vibration_e_strong</item> + <item>@string/pref_vibration_e_medium</item> + <item>@string/pref_vibration_e_light</item> + </string-array> + <string-array name="pref_vibration_values"> + <item>disabled</item> + <item>system</item> + <item>strong</item> + <item>medium</item> + <item>light</item> + </string-array> </resources> diff --git a/res/values/strings.xml b/res/values/strings.xml index 7b6e0df..94eb47d 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -67,6 +67,11 @@ <string name="pref_category_advanced">Advanced</string> <string name="pref_custom_layout_title">Custom layout</string> <string name="pref_custom_layout_summary">See the source code. This option is not meant to be used.</string> + <string name="pref_vibration_e_disabled">Disabled</string> + <string name="pref_vibration_e_system">System</string> + <string name="pref_vibration_e_strong">Strong</string> + <string name="pref_vibration_e_medium">Medium</string> + <string name="pref_vibration_e_light">Light</string> <string name="key_action_next">Next</string> <string name="key_action_done">Done</string> <string name="key_action_go">Go</string> diff --git a/res/xml/settings.xml b/res/xml/settings.xml index fafc174..322bf4d 100644 --- a/res/xml/settings.xml +++ b/res/xml/settings.xml @@ -55,7 +55,7 @@ <PreferenceCategory android:title="@string/pref_category_behavior"> <CheckBoxPreference android:key="autocapitalisation" android:title="@string/pref_autocapitalisation_title" android:summary="@string/pref_autocapitalisation_summary" android:defaultValue="true"/> <CheckBoxPreference android:key="switch_input_immediate" android:title="@string/pref_switch_input_immediate_title" android:summary="@string/pref_switch_input_immediate_summary" android:defaultValue="false"/> - <CheckBoxPreference android:key="vibrate_enabled" android:title="@string/pref_vibrate_title" android:summary="@string/pref_vibrate_summary" android:defaultValue="true"/> + <ListPreference android:key="vibration_behavior" android:title="@string/pref_vibrate_title" android:summary="@string/pref_vibrate_summary" android:defaultValue="system" android:entries="@array/pref_vibration_entries" android:entryValues="@array/pref_vibration_values"/> </PreferenceCategory> <PreferenceCategory android:title="@string/pref_category_style"> <ListPreference android:key="theme" android:title="@string/pref_theme" android:summary="%s" android:defaultValue="system" android:entries="@array/pref_theme_entries" android:entryValues="@array/pref_theme_values"/> diff --git a/srcs/juloo.keyboard2/Config.java b/srcs/juloo.keyboard2/Config.java index 1abef6b..9fa6593 100644 --- a/srcs/juloo.keyboard2/Config.java +++ b/srcs/juloo.keyboard2/Config.java @@ -31,7 +31,7 @@ final class Config public boolean number_row; public float swipe_dist_px; public float slide_step_px; - public boolean vibrateEnabled; + public VibratorCompat.VibrationBehavior vibration_behavior; public long longPressTimeout; public long longPressInterval; public float margin_bottom; @@ -123,7 +123,8 @@ final class Config float swipe_dist_value = Float.valueOf(_prefs.getString("swipe_dist", "15")); swipe_dist_px = swipe_dist_value / 25.f * swipe_scaling; slide_step_px = swipe_dist_px / 4.f; - vibrateEnabled = _prefs.getBoolean("vibrate_enabled", true); + vibration_behavior = + VibratorCompat.VibrationBehavior.of_string(_prefs.getString("vibration_behavior", "system")); longPressTimeout = _prefs.getInt("longpress_timeout", 600); longPressInterval = _prefs.getInt("longpress_interval", 65); margin_bottom = get_dip_pref(dm, oriented_pref("margin_bottom"), diff --git a/srcs/juloo.keyboard2/Keyboard2View.java b/srcs/juloo.keyboard2/Keyboard2View.java index 65098d0..f4053f2 100644 --- a/srcs/juloo.keyboard2/Keyboard2View.java +++ b/srcs/juloo.keyboard2/Keyboard2View.java @@ -10,7 +10,6 @@ import android.inputmethodservice.InputMethodService; import android.os.Build.VERSION; import android.util.AttributeSet; import android.util.DisplayMetrics; -import android.view.HapticFeedbackConstants; import android.view.MotionEvent; import android.view.View; import android.view.Window; @@ -231,13 +230,7 @@ public class Keyboard2View extends View private void vibrate() { - if (!_config.vibrateEnabled) - return ; - if (VERSION.SDK_INT >= 5) - { - performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY, - HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING); - } + VibratorCompat.vibrate(this, _config.vibration_behavior); } @Override diff --git a/srcs/juloo.keyboard2/VibratorCompat.java b/srcs/juloo.keyboard2/VibratorCompat.java new file mode 100644 index 0000000..99ff5f5 --- /dev/null +++ b/srcs/juloo.keyboard2/VibratorCompat.java @@ -0,0 +1,81 @@ +package juloo.keyboard2; + +import android.content.Context; +import android.os.Build.VERSION; +import android.os.Vibrator; +import android.view.HapticFeedbackConstants; +import android.view.View; + +public final class VibratorCompat +{ + public static void vibrate(View v, VibrationBehavior b) + { + switch (b) + { + case DISABLED: + break; + case SYSTEM: + if (VERSION.SDK_INT >= 8) + v.performHapticFeedback(HapticFeedbackConstants.KEYBOARD_TAP, + HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING); + break; + case STRONG: + vibrator_vibrate(v, 50); + break; + case MEDIUM: + vibrator_vibrate(v, 20); + break; + case LIGHT: + vibrator_vibrate(v, 10); + break; + } + } + + /** Use the older [Vibrator] when the newer API is not available or the user + wants more control. */ + static void vibrator_vibrate(View v, int duration) + { + try + { + get_vibrator(v).vibrate(duration); + } + catch (Exception e) {} + } + + static Vibrator vibrator_service = null; + + static Vibrator get_vibrator(View v) + { + if (vibrator_service == null) + { + vibrator_service = + (Vibrator)v.getContext().getSystemService(Context.VIBRATOR_SERVICE); + } + return vibrator_service; + } + + public static enum VibrationBehavior + { + DISABLED, + SYSTEM, + STRONG, + MEDIUM, + LIGHT; + + VibrationBehavior() {} + + /** Defaults [SYSTEM] for unrecognized strings. */ + public static VibrationBehavior of_string(String s) + { + switch (s) + { + case "disabled": return DISABLED; + case "system": return SYSTEM; + case "strong": return STRONG; + case "medium": return MEDIUM; + case "light": return LIGHT; + default: return SYSTEM; + } + } + } +} |
