diff options
Diffstat (limited to 'srcs/juloo.keyboard2')
| -rw-r--r-- | srcs/juloo.keyboard2/Config.java | 9 | ||||
| -rw-r--r-- | srcs/juloo.keyboard2/Keyboard2View.java | 2 | ||||
| -rw-r--r-- | srcs/juloo.keyboard2/VibratorCompat.java | 55 |
3 files changed, 18 insertions, 48 deletions
diff --git a/srcs/juloo.keyboard2/Config.java b/srcs/juloo.keyboard2/Config.java index 1b6a76a..53360de 100644 --- a/srcs/juloo.keyboard2/Config.java +++ b/srcs/juloo.keyboard2/Config.java @@ -35,7 +35,10 @@ final class Config public boolean number_row; public float swipe_dist_px; public float slide_step_px; - public VibratorCompat.VibrationBehavior vibration_behavior; + // Let the system handle vibration when false. + public boolean vibrate_custom; + // Control the vibration if [vibrate_custom] is true. + public long vibrate_duration; public long longPressTimeout; public long longPressInterval; public float margin_bottom; @@ -130,8 +133,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; - vibration_behavior = - VibratorCompat.VibrationBehavior.of_string(_prefs.getString("vibration_behavior", "system")); + vibrate_custom = _prefs.getBoolean("vibrate_custom", false); + vibrate_duration = _prefs.getInt("vibrate_duration", 20); longPressTimeout = _prefs.getInt("longpress_timeout", 600); longPressInterval = _prefs.getInt("longpress_interval", 65); margin_bottom = get_dip_pref_oriented(dm, "margin_bottom", 7, 3); diff --git a/srcs/juloo.keyboard2/Keyboard2View.java b/srcs/juloo.keyboard2/Keyboard2View.java index 3ef9957..205bbae 100644 --- a/srcs/juloo.keyboard2/Keyboard2View.java +++ b/srcs/juloo.keyboard2/Keyboard2View.java @@ -234,7 +234,7 @@ public class Keyboard2View extends View private void vibrate() { - VibratorCompat.vibrate(this, _config.vibration_behavior); + VibratorCompat.vibrate(this, _config); } @Override diff --git a/srcs/juloo.keyboard2/VibratorCompat.java b/srcs/juloo.keyboard2/VibratorCompat.java index 2795c71..4a9debe 100644 --- a/srcs/juloo.keyboard2/VibratorCompat.java +++ b/srcs/juloo.keyboard2/VibratorCompat.java @@ -8,32 +8,24 @@ import android.view.View; public final class VibratorCompat { - public static void vibrate(View v, VibrationBehavior b) + public static void vibrate(View v, Config config) { - switch (b) + if (config.vibrate_custom) { - 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, 90); - break; - case MEDIUM: - vibrator_vibrate(v, 45); - break; - case LIGHT: - vibrator_vibrate(v, 20); - break; + if (config.vibrate_duration > 0) + vibrator_vibrate(v, config.vibrate_duration); + } + else + { + if (VERSION.SDK_INT >= 8) + v.performHapticFeedback(HapticFeedbackConstants.KEYBOARD_TAP, + HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING); } } /** 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) + static void vibrator_vibrate(View v, long duration) { try { @@ -53,29 +45,4 @@ public final class VibratorCompat } 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; - } - } - } } |
