diff --git a/frameworks/base/api/current.txt b/frameworks/base/api/current.txt
index 240da7e..0af343b 100755
--- a/frameworks/base/api/current.txt
+++ b/frameworks/base/api/current.txt
@@ -22252,6 +22252,7 @@ package android.media {
field public static final int FX_KEYPRESS_SPACEBAR = 6; // 0x6
field public static final int FX_KEYPRESS_STANDARD = 5; // 0x5
field public static final int FX_KEY_CLICK = 0; // 0x0
+ field public static final int FX_KEY_CLICK_VOL = 10; // 0xa
field public static final int GET_DEVICES_ALL = 3; // 0x3
field public static final int GET_DEVICES_INPUTS = 1; // 0x1
field public static final int GET_DEVICES_OUTPUTS = 2; // 0x2
diff --git a/frameworks/base/core/res/res/xml/audio_assets.xml b/frameworks/base/core/res/res/xml/audio_assets.xml
old mode 100644
new mode 100755
index af5798a..1a3958c
--- a/frameworks/base/core/res/res/xml/audio_assets.xml
+++ b/frameworks/base/core/res/res/xml/audio_assets.xml
@@ -26,6 +26,7 @@
<audio_assets version="1.0">
<group name="touch_sounds">
<asset id="FX_KEY_CLICK" file="Effect_Tick.ogg"/>
+ <asset id="FX_KEY_CLICK_VOL" file="barcodebeep.ogg"/>
<asset id="FX_FOCUS_NAVIGATION_UP" file="Effect_Tick.ogg"/>
<asset id="FX_FOCUS_NAVIGATION_DOWN" file="Effect_Tick.ogg"/>
<asset id="FX_FOCUS_NAVIGATION_LEFT" file="Effect_Tick.ogg"/>
diff --git a/frameworks/base/data/sounds/AllAudio.mk b/frameworks/base/data/sounds/AllAudio.mk
old mode 100644
new mode 100755
index edfd380..12de0de
--- a/frameworks/base/data/sounds/AllAudio.mk
+++ b/frameworks/base/data/sounds/AllAudio.mk
@@ -232,4 +232,5 @@ PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/effects/ogg/WirelessChargingStarted.ogg:system/media/audio/ui/WirelessChargingStarted.ogg \
$(LOCAL_PATH)/effects/ogg/camera_click_48k.ogg:system/media/audio/ui/camera_click.ogg \
$(LOCAL_PATH)/effects/ogg/camera_focus.ogg:system/media/audio/ui/camera_focus.ogg \
+ $(LOCAL_PATH)/effects/ogg/barcodebeep.ogg:system/media/audio/ui/barcodebeep.ogg \
diff --git a/frameworks/base/data/sounds/effects/barcodebeep.ogg b/frameworks/base/data/sounds/effects/barcodebeep.ogg
new file mode 100755
index 0000000..ca1532c
Binary files /dev/null and b/frameworks/base/data/sounds/effects/barcodebeep.ogg differ
diff --git a/frameworks/base/data/sounds/effects/ogg/barcodebeep.ogg b/frameworks/base/data/sounds/effects/ogg/barcodebeep.ogg
new file mode 100755
index 0000000..ca1532c
Binary files /dev/null and b/frameworks/base/data/sounds/effects/ogg/barcodebeep.ogg differ
diff --git a/frameworks/base/media/java/android/media/AudioManager.java b/frameworks/base/media/java/android/media/AudioManager.java
old mode 100644
new mode 100755
index b318971..e8457cb
--- a/frameworks/base/media/java/android/media/AudioManager.java
+++ b/frameworks/base/media/java/android/media/AudioManager.java
@@ -2009,10 +2009,15 @@ public class AudioManager {
* @see #playSoundEffect(int)
*/
public static final int FX_KEYPRESS_INVALID = 9;
+
+ public static final int FX_KEY_CLICK_VOL = 10;
/**
* @hide Number of sound effects
*/
- public static final int NUM_SOUND_EFFECTS = 10;
+ public static final int NUM_SOUND_EFFECTS = 11;
+
+
+
/**
* Plays a sound effect (Key clicks, lid open/close...)
diff --git a/frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java b/frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java
index 22486c9..2f11687 100755
--- a/frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java
+++ b/frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java
@@ -298,6 +298,9 @@ import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import android.app.Instrumentation;//oudelin
+
+
+
/**
* WindowManagerPolicy implementation for the Android phone UI. This
* introduces a new method suffix, Lp, for an internal lock of the
@@ -884,6 +887,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
public static final String KEY_VALUE="RSCJA_SCAN_KEY_VALUE";
public static final String KEY_STATE="RSCJA_SCAN_KEY_START";
public static final String KEY_BATTERY_STATE="RSCJA_KEY_BAT_VALUE";
+ public static final String KEY_VOLUME_OPNE="KEY_VOLUME_OPNE";
private class PolicyHandler extends Handler {
@Override
public void handleMessage(Message msg) {
@@ -1069,7 +1073,10 @@ public class PhoneWindowManager implements WindowManagerPolicy {
UserHandle.USER_ALL);
resolver.registerContentObserver(Settings.System.getUriFor(
KEY_BATTERY_STATE), false, this,
- UserHandle.USER_ALL);
+ UserHandle.USER_ALL);
+ resolver.registerContentObserver(Settings.System.getUriFor(
+ KEY_VOLUME_OPNE), false, this,
+ UserHandle.USER_ALL);
updateSettings();
}
@@ -3754,15 +3761,29 @@ public class PhoneWindowManager implements WindowManagerPolicy {
final boolean down = event.getAction() == KeyEvent.ACTION_DOWN;
final boolean canceled = event.isCanceled();
int batt = Settings.System.getInt(mContext.getContentResolver(), KEY_BATTERY_STATE, 0);
+ int key_volume = Settings.System.getInt(mContext.getContentResolver(), KEY_VOLUME_OPNE, 0);
// if (DEBUG_INPUT) {
Log.d(TAG, "interceptKeyTi keyCode=" + keyCode + " down=" + down + " repeatCount="
+ repeatCount + " keyguardOn=" + keyguardOn + " mHomePressed=" + mHomePressed
- + " canceled=" + canceled);
+ + " canceled=" + canceled + "key_volume =" +key_volume);
// }
+ if(down && keyCode!=3 && key_volume == 1 ) {
+ performVirtualKeyClickSound();
+ }
// add
switch (keyCode)
{
+ case 142 :{
+ if(down ){
+ if(key_volume == 0){
+ Settings.System.putInt(mContext.getContentResolver(), KEY_VOLUME_OPNE, 1);
+ }else{
+ Settings.System.putInt(mContext.getContentResolver(), KEY_VOLUME_OPNE, 0);
+ }
+ }
+ break ;
+ }
case 295:
case 296:
case 291:
@@ -6231,7 +6252,15 @@ public class PhoneWindowManager implements WindowManagerPolicy {
setHdmiPlugged(!mHdmiPlugged);
}
-
+ private void performVirtualKeyClickSound(){
+ AudioManager audioManager = (AudioManager)mContext.getSystemService(Context.AUDIO_SERVICE);
+ if(audioManager != null){
+ Log.d(TAG, "interceptKeyTq ssssssssssssssss performVirtualKeyClickSound ");
+ audioManager.playSoundEffect(AudioManager.FX_KEY_CLICK_VOL);
+ }else{
+ Log.w(TAG, "performVirtualKeyClickSound");
+ }
+ }
/** {@inheritDoc} */
@Override
public int interceptKeyBeforeQueueing(KeyEvent event, int policyFlags) {
@@ -6255,7 +6284,6 @@ public class PhoneWindowManager implements WindowManagerPolicy {
(interactive ?
isKeyguardShowingAndNotOccluded() :
mKeyguardDelegate.isShowing()));
-
// if (DEBUG_INPUT) {
Log.d(TAG, "interceptKeyTq keycode=" + keyCode
+ " interactive=" + interactive + " keyguardActive=" + keyguardActive
diff --git a/kernel/msm-4.9/drivers/input/keyboard/sn7326_kpd.h b/kernel/msm-4.9/drivers/input/keyboard/sn7326_kpd.h
index 90a3321..05084fa 100755
--- a/kernel/msm-4.9/drivers/input/keyboard/sn7326_kpd.h
+++ b/kernel/msm-4.9/drivers/input/keyboard/sn7326_kpd.h
@@ -141,7 +141,7 @@ struct sn7326_button sn7326_keypad1_alphabet[] = {
KEYPAD_BUTTON_LOW(KEY_RIGHTSHIFT),
KEYPAD_BUTTON_LOW(KEY_P), //10
KEYPAD_BUTTON_LOW(KEY_Z),
- KEYPAD_BUTTON_LOW(KEY_SPACE),
+ KEYPAD_BUTTON_LOW(KEY_F12),
KEYPAD_BUTTON_LOW(0),
KEYPAD_BUTTON_LOW(0),
KEYPAD_BUTTON_LOW(0),
@@ -320,7 +320,7 @@ struct sn7326_button sn7326_keypad2_alphabet[] = {
KEYPAD_BUTTON_LOW(KEY_CAMERA), //shuben
KEYPAD_BUTTON_LOW(KEY_6),
KEYPAD_BUTTON_LOW(KEY_POUND), //#
- KEYPAD_BUTTON_LOW(KEY_SPACE),
+ KEYPAD_BUTTON_LOW(KEY_F12),
};
struct sn7326_pdata {//pdata
unsigned int rst_gpio;