Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 595277d3 authored by Lais Andrade's avatar Lais Andrade
Browse files

Update fallback vibration patterns

Update patterns for configs:

- config_virtualKeyVibePattern
- config_longPressVibePattern
- config_clockTickVibePattern

Add new config for double click fallback pattern:

- config_doubleClickVibePattern

Remove duplicated and unused patterns:

- config_keyboardTapVibePattern
- config_calendarDateVibePattern
- config_scrollBarrierVibePattern

Fix: 194172273
Test: manual
Change-Id: I0d1cb20388ebd39adf013a7b9c3e67ac98ef30ab
parent 637cc7dc
Loading
Loading
Loading
Loading
+9 −24
Original line number Diff line number Diff line
@@ -1080,34 +1080,27 @@
    <!-- Vibrator pattern for feedback about a long screen/key press -->
    <integer-array name="config_longPressVibePattern">
        <item>0</item>
        <item>1</item>
        <item>20</item>
        <item>21</item>
        <item>30</item>
    </integer-array>

    <!-- Vibrator pattern for feedback about touching a virtual key -->
    <integer-array name="config_virtualKeyVibePattern">
        <item>0</item>
        <item>10</item>
        <item>20</item>
        <item>30</item>
    </integer-array>

    <!-- Vibrator pattern for a very short but reliable vibration for soft keyboard tap -->
    <integer-array name="config_keyboardTapVibePattern">
        <item>40</item>
    <!-- Vibrator pattern for feedback that simulates a double click effect -->
    <integer-array name="config_doubleClickVibePattern">
        <item>0</item>
        <item>30</item>
        <item>100</item>
        <item>30</item>
    </integer-array>

    <!-- Vibrator pattern for feedback when selecting an hour/minute tick of a Clock -->
    <integer-array name="config_clockTickVibePattern">
        <item>125</item>
        <item>30</item>
    </integer-array>

    <!-- Vibrator pattern for feedback when selecting a day/month/year date of a Calendar -->
    <integer-array name="config_calendarDateVibePattern">
        <item>125</item>
        <item>30</item>
        <item>0</item>
        <item>10</item>
    </integer-array>

    <!-- Vibrator pattern for feedback about booting with safe mode enabled -->
@@ -1120,14 +1113,6 @@
        <item>600</item>
    </integer-array>

    <!-- Vibrator pattern for feedback about hitting a scroll barrier -->
    <integer-array name="config_scrollBarrierVibePattern">
        <item>0</item>
        <item>15</item>
        <item>10</item>
        <item>10</item>
    </integer-array>

    <!-- The URI to associate with each ringtone effect constant, intended to be used with the
         android.os.VibrationEffect#get(Uri, Context) API.
         The position of the string in the string-array determines which ringtone effect is chosen.
+2 −3
Original line number Diff line number Diff line
@@ -1694,10 +1694,10 @@
  <java-symbol type="anim" name="activity_close_exit" />

  <java-symbol type="array" name="config_autoRotationTiltTolerance" />
  <java-symbol type="array" name="config_keyboardTapVibePattern" />
  <java-symbol type="array" name="config_longPressVibePattern" />
  <java-symbol type="array" name="config_safeModeEnabledVibePattern" />
  <java-symbol type="array" name="config_virtualKeyVibePattern" />
  <java-symbol type="array" name="config_doubleClickVibePattern" />
  <java-symbol type="array" name="config_safeModeEnabledVibePattern" />
  <java-symbol type="attr" name="actionModePopupWindowStyle" />
  <java-symbol type="attr" name="dialogCustomTitleDecorLayout" />
  <java-symbol type="attr" name="dialogTitleDecorLayout" />
@@ -2500,7 +2500,6 @@
  <java-symbol type="dimen" name="datepicker_year_label_height" />

  <java-symbol type="array" name="config_clockTickVibePattern" />
  <java-symbol type="array" name="config_calendarDateVibePattern" />

  <!-- From KeyguardServiceDelegate -->
  <java-symbol type="string" name="config_keyguardComponent" />
+0 −10
Original line number Diff line number Diff line
@@ -390,12 +390,6 @@ public class PhoneWindowManager implements WindowManagerPolicy {
    // Assigned on main thread, accessed on UI thread
    volatile VrManagerInternal mVrManagerInternal;

    // Vibrator pattern for haptic feedback of a long press.
    long[] mLongPressVibePattern;

    // Vibrator pattern for a short vibration when tapping on a day/month/year date of a Calendar.
    long[] mCalendarDateVibePattern;

    // Vibrator pattern for haptic feedback during boot when safe mode is enabled.
    long[] mSafeModeEnabledVibePattern;

@@ -1804,10 +1798,6 @@ public class PhoneWindowManager implements WindowManagerPolicy {
        context.registerReceiver(mMultiuserReceiver, filter);

        mVibrator = (Vibrator)context.getSystemService(Context.VIBRATOR_SERVICE);
        mLongPressVibePattern = getLongIntArray(mContext.getResources(),
                com.android.internal.R.array.config_longPressVibePattern);
        mCalendarDateVibePattern = getLongIntArray(mContext.getResources(),
                com.android.internal.R.array.config_calendarDateVibePattern);
        mSafeModeEnabledVibePattern = getLongIntArray(mContext.getResources(),
                com.android.internal.R.array.config_safeModeEnabledVibePattern);

+5 −5
Original line number Diff line number Diff line
@@ -51,8 +51,6 @@ import java.util.List;
final class VibrationSettings {
    private static final String TAG = "VibrationSettings";

    private static final long[] DOUBLE_CLICK_EFFECT_FALLBACK_TIMINGS = {0, 30, 100, 30};

    /** Listener for changes on vibration settings. */
    interface OnVibratorSettingsChanged {
        /** Callback triggered when any of the vibrator settings change. */
@@ -120,8 +118,8 @@ final class VibrationSettings {

        VibrationEffect clickEffect = createEffectFromResource(
                com.android.internal.R.array.config_virtualKeyVibePattern);
        VibrationEffect doubleClickEffect = VibrationEffect.createWaveform(
                DOUBLE_CLICK_EFFECT_FALLBACK_TIMINGS, -1 /*repeatIndex*/);
        VibrationEffect doubleClickEffect = createEffectFromResource(
                com.android.internal.R.array.config_doubleClickVibePattern);
        VibrationEffect heavyClickEffect = createEffectFromResource(
                com.android.internal.R.array.config_longPressVibePattern);
        VibrationEffect tickEffect = createEffectFromResource(
@@ -468,12 +466,14 @@ final class VibrationSettings {
                UserHandle.USER_ALL);
    }

    @Nullable
    private VibrationEffect createEffectFromResource(int resId) {
        long[] timings = getLongIntArray(mContext.getResources(), resId);
        return createEffectFromTimings(timings);
    }

    private static VibrationEffect createEffectFromTimings(long[] timings) {
    @Nullable
    private static VibrationEffect createEffectFromTimings(@Nullable long[] timings) {
        if (timings == null || timings.length == 0) {
            return null;
        } else if (timings.length == 1) {