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

Commit de2d34a0 authored by Michael Webster's avatar Michael Webster
Browse files

Fixed haptic feedback on dialer keypad. Changed to pull 'keypad tap' vibrate...

Fixed haptic feedback on dialer keypad.  Changed to pull 'keypad tap' vibrate values.  Added summary in options to explain.
parent 86a9a9bd
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -1173,6 +1173,7 @@
    <string name="summaryon_disable_num_check">Left action button (LAB) and menu will always be enabled</string>
    <string name="summaryoff_disable_num_check">LAB and menu will be enabled only if at least one number is entered (except voicemail)</string>
    <string name="title_enable_haptic_feedback">Enable haptic feedback</string>
    <string name="summary_enable_haptic_feedback">Uses keypad tap pattern - see CyanogenMod settings to adjust</string>
    <string name="title_change_digits_color">Change digits color</string>
    <string name="title_digits_color_pressed">Digits color (pressed)</string>
    <string name="title_digits_color_focused">Digits color (focused)</string>
+1 −0
Original line number Diff line number Diff line
@@ -55,6 +55,7 @@
        <CheckBoxPreference
            android:key="dial_enable_haptic"
            android:title="@string/title_enable_haptic_feedback"
            android:summary="@string/summary_enable_haptic_feedback"
            android:defaultValue="true" />
        <PreferenceScreen
            android:key="dial_digits_color"
+26 −9
Original line number Diff line number Diff line
@@ -493,13 +493,8 @@ public class TwelveKeyDialer extends Activity implements View.OnClickListener,
            showDialpadChooser(false);
        }
        
        //Wysie: Use prefVibrateOn to decide whether to vibrate, in case mVibrateOn is used for something
        //in future
        if (mVibrateOn)
        prefVibrateOn = ePrefs.getBoolean("dial_enable_haptic", true);
        else
            prefVibrateOn = false;
        
        mVibratePattern = stringToLongArray(Settings.System.getString(getContentResolver(), Settings.System.HAPTIC_TAP_ARRAY));
        retrieveLastDialled = ePrefs.getBoolean("dial_retrieve_last", false);
        returnToDialer = ePrefs.getBoolean("dial_return", false);

@@ -693,6 +688,7 @@ public class TwelveKeyDialer extends Activity implements View.OnClickListener,
    }

    private void keyPressed(int keyCode) {
    	Log.i("MIKE", "keyPressed called - about to call vibrate()");
        vibrate();
        KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN, keyCode);
        mDigits.onKeyDown(keyCode, event);
@@ -1223,14 +1219,18 @@ public class TwelveKeyDialer extends Activity implements View.OnClickListener,
     * Triggers haptic feedback (if enabled) for dialer key presses.
     */
    private synchronized void vibrate() {
        if (!mVibrateOn || !prefVibrateOn) {
        if (!prefVibrateOn) {
            return;
        }
        if (mVibrator == null) {
            mVibrator = new Vibrator();
        }
        if (mVibratePattern.length == 1) {
        	mVibrator.vibrate(mVibratePattern[0]);
        } else {
            mVibrator.vibrate(mVibratePattern, VIBRATE_NO_REPEAT);
        }
    }

    /**
     * Returns true whenever any one of the options from the menu is selected.
@@ -1507,4 +1507,21 @@ public class TwelveKeyDialer extends Activity implements View.OnClickListener,
        
        return num;
    }
    
    private long[] stringToLongArray(String inpString) {
        if (inpString == null) {
            long[] returnLong = new long[1];
            returnLong[0] = 0;
            return returnLong;
        }
        String[] splitStr = inpString.split(",");
        int los = splitStr.length;
        long[] returnLong = new long[los];
        int i;
        for (i=0; i < los; i++ ) {
            returnLong[i] = Long.parseLong(splitStr[i].trim());
        }
        return returnLong;
    }
    
}