diff --git a/cmactions/res/xml/gesture_panel.xml b/cmactions/res/xml/gesture_panel.xml index d791fc9..5b0e390 100644 --- a/cmactions/res/xml/gesture_panel.xml +++ b/cmactions/res/xml/gesture_panel.xml @@ -63,6 +63,12 @@ android:title="Fingerprint Gestures" android:summary="Use fingerprint gestures" /> + + + + + + + + + + + + + + + + + diff --git a/cmactions/src/com/cyanogenmod/settings/device/Constants.java b/cmactions/src/com/cyanogenmod/settings/device/Constants.java index fbad7fd..aefab87 100644 --- a/cmactions/src/com/cyanogenmod/settings/device/Constants.java +++ b/cmactions/src/com/cyanogenmod/settings/device/Constants.java @@ -32,9 +32,11 @@ public class Constants { // Swap keys public static final String FP_HOME_KEY = "fp_home"; + public static final String FP_HOME_KEY_OFF = "fp_home_scr_off"; // Swap nodes public static final String FP_HOME_NODE = "/sys/homebutton/enable"; + public static final String FP_HOME_OFF_NODE = "/sys/homebutton/enable_off"; // Haptic node public static final String FP_HAPTIC_NODE = "/sys/homebutton/haptic"; @@ -46,6 +48,11 @@ public class Constants { public static final String FP_KEY_LEFT = "fp_key_left"; public static final String FP_KEY_RIGHT = "fp_key_right"; + public static final String FP_KEYS_OFF = "fp_keys_off"; + public static final String FP_KEY_HOLD_OFF = "fp_key_hold_off"; + public static final String FP_KEY_LEFT_OFF = "fp_key_left_off"; + public static final String FP_KEY_RIGHT_OFF = "fp_key_right_off"; + // Keys nodes public static final String FP_KEYS_NODE = "/sys/homebutton/key"; public static final String FP_KEY_HOLD_NODE = "/sys/homebutton/key_hold"; @@ -60,6 +67,7 @@ public class Constants { public static final String[] sButtonPrefKeys = { FP_HOME_KEY, + FP_HOME_KEY_OFF, FP_KEYS, FP_KEY_HOLD, FP_KEY_RIGHT, @@ -67,18 +75,36 @@ public class Constants { FP_HAPTIC_KEY, }; + public static final String[] sButtonScreenOffPrefKeys = { + FP_KEYS_OFF, + FP_KEY_HOLD_OFF, + FP_KEY_RIGHT_OFF, + FP_KEY_LEFT_OFF, + FP_HOME_KEY_OFF, + }; + static { sBooleanNodePreferenceMap.put(FP_HOME_KEY, FP_HOME_NODE); + sBooleanNodePreferenceMap.put(FP_HOME_KEY_OFF, FP_HOME_OFF_NODE); sBooleanNodePreferenceMap.put(FP_KEYS, FP_KEYS_NODE); sBooleanNodePreferenceMap.put(FP_KEY_HOLD, FP_KEY_HOLD_NODE); sBooleanNodePreferenceMap.put(FP_KEY_LEFT, FP_KEY_LEFT_NODE); sBooleanNodePreferenceMap.put(FP_KEY_RIGHT, FP_KEY_RIGHT_NODE); sBooleanNodePreferenceMap.put(FP_HAPTIC_KEY, FP_HAPTIC_NODE); + sBooleanNodePreferenceMap.put(FP_KEYS_OFF, FP_KEYS_NODE); + sBooleanNodePreferenceMap.put(FP_KEY_HOLD_OFF, FP_KEY_HOLD_NODE); + sBooleanNodePreferenceMap.put(FP_KEY_LEFT_OFF, FP_KEY_LEFT_NODE); + sBooleanNodePreferenceMap.put(FP_KEY_RIGHT_OFF, FP_KEY_RIGHT_NODE); sNodeDefaultMap.put(FP_HOME_KEY, false); + sNodeDefaultMap.put(FP_HOME_KEY_OFF, false); sNodeDefaultMap.put(FP_KEYS, "0"); sNodeDefaultMap.put(FP_KEY_HOLD, "0"); sNodeDefaultMap.put(FP_KEY_LEFT, "0"); sNodeDefaultMap.put(FP_KEY_RIGHT, "0"); + sNodeDefaultMap.put(FP_KEYS_OFF, "0"); + sNodeDefaultMap.put(FP_KEY_HOLD_OFF, "0"); + sNodeDefaultMap.put(FP_KEY_LEFT_OFF, "0"); + sNodeDefaultMap.put(FP_KEY_RIGHT_OFF, "0"); sNodeDefaultMap.put(FP_HAPTIC_KEY, false); } @@ -96,7 +122,8 @@ public class Constants { String value = "1"; Log.e(TAG, "Write Pref: " + pref); - if (!pref.equals(FP_KEYS) && !pref.equals(FP_KEY_HOLD) && !pref.equals(FP_KEY_LEFT) && !pref.equals(FP_KEY_RIGHT)) + if (!pref.equals(FP_KEYS) && !pref.equals(FP_KEY_HOLD) && !pref.equals(FP_KEY_LEFT) && !pref.equals(FP_KEY_RIGHT) && + !pref.equals(FP_KEYS_OFF) && !pref.equals(FP_KEY_HOLD_OFF) && !pref.equals(FP_KEY_LEFT_OFF) && !pref.equals(FP_KEY_RIGHT_OFF)) value = isPreferenceEnabled(context, pref) ? "1" : "0"; else value = GetPreference(context, pref); diff --git a/cmactions/src/com/cyanogenmod/settings/device/ScreenReceiver.java b/cmactions/src/com/cyanogenmod/settings/device/ScreenReceiver.java index 09fe768..fd39852 100644 --- a/cmactions/src/com/cyanogenmod/settings/device/ScreenReceiver.java +++ b/cmactions/src/com/cyanogenmod/settings/device/ScreenReceiver.java @@ -38,8 +38,16 @@ public class ScreenReceiver extends BroadcastReceiver { public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) { mNotifier.screenTurnedOff(); + + for (String pref : Constants.sButtonScreenOffPrefKeys) { + Constants.writePreference(context, pref); + } } else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) { mNotifier.screenTurnedOn(); + + for (String pref : Constants.sButtonPrefKeys) { + Constants.writePreference(context, pref); + } } } } diff --git a/rootdir/etc/init.qcom.rc b/rootdir/etc/init.qcom.rc index 5926eff..76a9913 100644 --- a/rootdir/etc/init.qcom.rc +++ b/rootdir/etc/init.qcom.rc @@ -192,6 +192,7 @@ on boot # FPC home button permissions chown system system /sys/homebutton/enable + chown system system /sys/homebutton/enable_off chown system system /sys/homebutton/haptic chown system system /sys/homebutton/key chown system system /sys/homebutton/key_hold