abouttreesummaryrefslogcommitdiff
diff options
context:
space:
mode:
-rw-r--r--res/values-cs/strings.xml5
-rw-r--r--res/values-de/strings.xml5
-rw-r--r--res/values-es/strings.xml5
-rw-r--r--res/values-fa/strings.xml5
-rw-r--r--res/values-fr/strings.xml5
-rw-r--r--res/values-it/strings.xml5
-rw-r--r--res/values-ko/strings.xml5
-rw-r--r--res/values-lv/strings.xml5
-rw-r--r--res/values-pl/strings.xml5
-rw-r--r--res/values-pt/strings.xml5
-rw-r--r--res/values-ru/strings.xml5
-rw-r--r--res/values-tr/strings.xml5
-rw-r--r--res/values-vi/strings.xml5
-rw-r--r--res/values-zh-rCN/strings.xml5
-rw-r--r--res/values/arrays.xml14
-rw-r--r--res/values/strings.xml5
-rw-r--r--res/xml/settings.xml2
-rw-r--r--srcs/juloo.keyboard2/Config.java5
-rw-r--r--srcs/juloo.keyboard2/Keyboard2View.java9
-rw-r--r--srcs/juloo.keyboard2/VibratorCompat.java81
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;
+ }
+ }
+ }
+}