Play "device trusted" sound when onTrustInitiatedByUser fires
Bug: 16840500 Change-Id: I73fbe5c2cff665ccb637abb9039d57f377d9df53
This commit is contained in:
@@ -5131,6 +5131,13 @@ public final class Settings {
|
||||
*/
|
||||
public static final String UNLOCK_SOUND = "unlock_sound";
|
||||
|
||||
/**
|
||||
* URI for the "device is trusted" sound, which is played when the device enters the trusted
|
||||
* state without unlocking.
|
||||
* @hide
|
||||
*/
|
||||
public static final String TRUSTED_SOUND = "trusted_sound";
|
||||
|
||||
/**
|
||||
* URI for the low battery sound file.
|
||||
* @hide
|
||||
|
||||
@@ -226,6 +226,7 @@ PRODUCT_COPY_FILES += \
|
||||
$(LOCAL_PATH)/effects/ogg/LowBattery.ogg:system/media/audio/ui/LowBattery.ogg \
|
||||
$(LOCAL_PATH)/effects/ogg/Undock.ogg:system/media/audio/ui/Undock.ogg \
|
||||
$(LOCAL_PATH)/effects/ogg/Unlock.ogg:system/media/audio/ui/Unlock.ogg \
|
||||
$(LOCAL_PATH)/effects/ogg/Trusted_48k.ogg:system/media/audio/ui/Trusted.ogg \
|
||||
$(LOCAL_PATH)/effects/ogg/VideoRecord_48k.ogg:system/media/audio/ui/VideoRecord.ogg \
|
||||
$(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 \
|
||||
|
||||
@@ -30,6 +30,7 @@ PRODUCT_COPY_FILES += \
|
||||
$(LOCAL_PATH)/effects/ogg/Undock.ogg:system/media/audio/ui/Undock.ogg \
|
||||
$(LOCAL_PATH)/effects/ogg/Lock_48k.ogg:system/media/audio/ui/Lock.ogg \
|
||||
$(LOCAL_PATH)/effects/ogg/Unlock_48k.ogg:system/media/audio/ui/Unlock.ogg \
|
||||
$(LOCAL_PATH)/effects/ogg/Trusted_48k.ogg:system/media/audio/ui/Trusted.ogg \
|
||||
$(LOCAL_PATH)/effects/ogg/WirelessChargingStarted.ogg:system/media/audio/ui/WirelessChargingStarted.ogg \
|
||||
$(LOCAL_PATH)/notifications/ogg/Adara.ogg:system/media/audio/notifications/Adara.ogg \
|
||||
$(LOCAL_PATH)/notifications/ogg/Alya.ogg:system/media/audio/notifications/Alya.ogg \
|
||||
|
||||
@@ -30,6 +30,7 @@ PRODUCT_COPY_FILES += \
|
||||
$(LOCAL_PATH)/effects/ogg/Undock.ogg:system/media/audio/ui/Undock.ogg \
|
||||
$(LOCAL_PATH)/effects/ogg/Lock_48k.ogg:system/media/audio/ui/Lock.ogg \
|
||||
$(LOCAL_PATH)/effects/ogg/Unlock_48k.ogg:system/media/audio/ui/Unlock.ogg \
|
||||
$(LOCAL_PATH)/effects/ogg/Trusted_48k.ogg:system/media/audio/ui/Trusted.ogg \
|
||||
$(LOCAL_PATH)/effects/ogg/WirelessChargingStarted.ogg:system/media/audio/ui/WirelessChargingStarted.ogg \
|
||||
$(LOCAL_PATH)/notifications/ogg/Adara.ogg:system/media/audio/notifications/Adara.ogg \
|
||||
$(LOCAL_PATH)/notifications/ogg/Alya.ogg:system/media/audio/notifications/Alya.ogg \
|
||||
|
||||
@@ -12,7 +12,8 @@ ALARM_FILES := Argon Carbon Helium Krypton Neon Oxygen Osmium Platinum
|
||||
NOTIFICATION_FILES := Ariel Ceres Carme Elara Europa Iapetus Io Rhea Salacia Titan Tethys
|
||||
RINGTONE_FILES := Callisto Dione Ganymede Luna Oberon Phobos Sedna Titania Triton Umbriel
|
||||
EFFECT_FILES := Effect_Tick KeypressReturn KeypressInvalid KeypressDelete KeypressSpacebar KeypressStandard \
|
||||
VideoRecord camera_click camera_focus LowBattery Dock Undock Lock Unlock WirelessChargingStarted
|
||||
VideoRecord camera_click camera_focus LowBattery Dock Undock Lock Unlock WirelessChargingStarted \
|
||||
Trusted
|
||||
|
||||
PRODUCT_COPY_FILES += $(foreach fn,$(ALARM_FILES),\
|
||||
$(LOCAL_PATH)/alarms/ogg/$(fn).ogg:system/media/audio/alarms/$(fn).ogg)
|
||||
|
||||
@@ -12,7 +12,7 @@ ALARM_FILES := Argon Carbon Helium Krypton Neon Oxygen Osmium Platinum
|
||||
NOTIFICATION_FILES := Ariel Ceres Carme Elara Europa Iapetus Io Rhea Salacia Titan Tethys
|
||||
RINGTONE_FILES := Callisto Dione Ganymede Luna Oberon Phobos Sedna Titania Triton Umbriel
|
||||
EFFECT_FILES := Effect_Tick KeypressReturn KeypressInvalid KeypressDelete KeypressSpacebar KeypressStandard \
|
||||
VideoRecord camera_click Lock Unlock
|
||||
VideoRecord camera_click Lock Unlock Trusted
|
||||
|
||||
# Alarms not yet available in 48 kHz
|
||||
PRODUCT_COPY_FILES += $(foreach fn,$(ALARM_FILES),\
|
||||
@@ -33,4 +33,4 @@ PRODUCT_COPY_FILES += \
|
||||
$(LOCAL_PATH)/effects/ogg/LowBattery.ogg:system/media/audio/ui/LowBattery.ogg \
|
||||
$(LOCAL_PATH)/effects/ogg/WirelessChargingStarted.ogg:system/media/audio/ui/WirelessChargingStarted.ogg \
|
||||
$(LOCAL_PATH)/effects/ogg/Dock.ogg:system/media/audio/ui/Dock.ogg \
|
||||
$(LOCAL_PATH)/effects/ogg/Undock.ogg:system/media/audio/ui/Undock.ogg
|
||||
$(LOCAL_PATH)/effects/ogg/Undock.ogg:system/media/audio/ui/Undock.ogg
|
||||
@@ -40,6 +40,7 @@ PRODUCT_COPY_FILES += \
|
||||
$(LOCAL_PATH)/effects/Undock.ogg:system/media/audio/ui/Undock.ogg \
|
||||
$(LOCAL_PATH)/effects/Lock.ogg:system/media/audio/ui/Lock.ogg \
|
||||
$(LOCAL_PATH)/effects/Unlock.ogg:system/media/audio/ui/Unlock.ogg \
|
||||
$(LOCAL_PATH)/effects/ogg/Trusted.ogg:system/media/audio/ui/Trusted.ogg \
|
||||
$(LOCAL_PATH)/notifications/moonbeam.ogg:system/media/audio/notifications/moonbeam.ogg \
|
||||
$(LOCAL_PATH)/notifications/pixiedust.ogg:system/media/audio/notifications/pixiedust.ogg \
|
||||
$(LOCAL_PATH)/notifications/pizzicato.ogg:system/media/audio/notifications/pizzicato.ogg \
|
||||
|
||||
@@ -40,6 +40,7 @@ PRODUCT_COPY_FILES += \
|
||||
$(LOCAL_PATH)/effects/Undock.ogg:system/media/audio/ui/Undock.ogg \
|
||||
$(LOCAL_PATH)/effects/Lock.ogg:system/media/audio/ui/Lock.ogg \
|
||||
$(LOCAL_PATH)/effects/Unlock.ogg:system/media/audio/ui/Unlock.ogg \
|
||||
$(LOCAL_PATH)/effects/ogg/Trusted.ogg:system/media/audio/ui/Trusted.ogg \
|
||||
$(LOCAL_PATH)/notifications/moonbeam.ogg:system/media/audio/notifications/moonbeam.ogg \
|
||||
$(LOCAL_PATH)/notifications/pixiedust.ogg:system/media/audio/notifications/pixiedust.ogg \
|
||||
$(LOCAL_PATH)/notifications/pizzicato.ogg:system/media/audio/notifications/pizzicato.ogg \
|
||||
|
||||
@@ -45,6 +45,7 @@ PRODUCT_COPY_FILES += \
|
||||
$(LOCAL_PATH)/effects/Undock.ogg:system/media/audio/ui/Undock.ogg \
|
||||
$(LOCAL_PATH)/effects/Lock.ogg:system/media/audio/ui/Lock.ogg \
|
||||
$(LOCAL_PATH)/effects/Unlock.ogg:system/media/audio/ui/Unlock.ogg \
|
||||
$(LOCAL_PATH)/effects/ogg/Trusted.ogg:system/media/audio/ui/Trusted.ogg \
|
||||
$(LOCAL_PATH)/Ring_Classic_02.ogg:system/media/audio/ringtones/Ring_Classic_02.ogg \
|
||||
$(LOCAL_PATH)/Ring_Digital_02.ogg:system/media/audio/ringtones/Ring_Digital_02.ogg \
|
||||
$(LOCAL_PATH)/Ring_Synth_04.ogg:system/media/audio/ringtones/Ring_Synth_04.ogg \
|
||||
|
||||
@@ -27,6 +27,7 @@ PRODUCT_COPY_FILES += \
|
||||
$(LOCAL_PATH)/effects/Undock.ogg:system/media/audio/ui/Undock.ogg \
|
||||
$(LOCAL_PATH)/effects/Lock.ogg:system/media/audio/ui/Lock.ogg \
|
||||
$(LOCAL_PATH)/effects/Unlock.ogg:system/media/audio/ui/Unlock.ogg \
|
||||
$(LOCAL_PATH)/effects/ogg/Trusted.ogg:system/media/audio/ui/Trusted.ogg \
|
||||
$(LOCAL_PATH)/notifications/Aldebaran.ogg:system/media/audio/notifications/Aldebaran.ogg \
|
||||
$(LOCAL_PATH)/notifications/Altair.ogg:system/media/audio/notifications/Altair.ogg \
|
||||
$(LOCAL_PATH)/notifications/Antares.ogg:system/media/audio/notifications/Antares.ogg \
|
||||
|
||||
@@ -26,6 +26,7 @@ PRODUCT_COPY_FILES += \
|
||||
$(LOCAL_PATH)/effects/ogg/Undock.ogg:system/media/audio/ui/Undock.ogg \
|
||||
$(LOCAL_PATH)/effects/ogg/Lock.ogg:system/media/audio/ui/Lock.ogg \
|
||||
$(LOCAL_PATH)/effects/ogg/Unlock.ogg:system/media/audio/ui/Unlock.ogg \
|
||||
$(LOCAL_PATH)/effects/ogg/Trusted.ogg:system/media/audio/ui/Trusted.ogg \
|
||||
$(LOCAL_PATH)/notifications/ogg/Antimony.ogg:system/media/audio/notifications/Antimony.ogg \
|
||||
$(LOCAL_PATH)/notifications/ogg/Argon.ogg:system/media/audio/notifications/Argon.ogg \
|
||||
$(LOCAL_PATH)/notifications/ogg/Beryllium.ogg:system/media/audio/notifications/Beryllium.ogg \
|
||||
|
||||
@@ -28,6 +28,7 @@ PRODUCT_COPY_FILES += \
|
||||
$(LOCAL_PATH)/effects/ogg/Undock.ogg:system/media/audio/ui/Undock.ogg \
|
||||
$(LOCAL_PATH)/effects/ogg/Lock.ogg:system/media/audio/ui/Lock.ogg \
|
||||
$(LOCAL_PATH)/effects/ogg/Unlock.ogg:system/media/audio/ui/Unlock.ogg \
|
||||
$(LOCAL_PATH)/effects/ogg/Trusted.ogg:system/media/audio/ui/Trusted.ogg \
|
||||
$(LOCAL_PATH)/notifications/ogg/Adara.ogg:system/media/audio/notifications/Adara.ogg \
|
||||
$(LOCAL_PATH)/notifications/ogg/Arcturus.ogg:system/media/audio/notifications/Arcturus.ogg \
|
||||
$(LOCAL_PATH)/notifications/ogg/Bellatrix.ogg:system/media/audio/notifications/Bellatrix.ogg \
|
||||
|
||||
@@ -27,6 +27,7 @@ PRODUCT_COPY_FILES += \
|
||||
$(LOCAL_PATH)/effects/ogg/Undock.ogg:system/media/audio/ui/Undock.ogg \
|
||||
$(LOCAL_PATH)/effects/ogg/Lock.ogg:system/media/audio/ui/Lock.ogg \
|
||||
$(LOCAL_PATH)/effects/ogg/Unlock.ogg:system/media/audio/ui/Unlock.ogg \
|
||||
$(LOCAL_PATH)/effects/ogg/Trusted.ogg:system/media/audio/ui/Trusted.ogg \
|
||||
$(LOCAL_PATH)/notifications/ogg/Adara.ogg:system/media/audio/notifications/Adara.ogg \
|
||||
$(LOCAL_PATH)/notifications/ogg/Arcturus.ogg:system/media/audio/notifications/Arcturus.ogg \
|
||||
$(LOCAL_PATH)/notifications/ogg/Bellatrix.ogg:system/media/audio/notifications/Bellatrix.ogg \
|
||||
|
||||
@@ -30,6 +30,7 @@ PRODUCT_COPY_FILES += \
|
||||
$(LOCAL_PATH)/effects/ogg/Undock.ogg:system/media/audio/ui/Undock.ogg \
|
||||
$(LOCAL_PATH)/effects/ogg/Lock.ogg:system/media/audio/ui/Lock.ogg \
|
||||
$(LOCAL_PATH)/effects/ogg/Unlock.ogg:system/media/audio/ui/Unlock.ogg \
|
||||
$(LOCAL_PATH)/effects/ogg/Trusted.ogg:system/media/audio/ui/Trusted.ogg \
|
||||
$(LOCAL_PATH)/notifications/ogg/Adara.ogg:system/media/audio/notifications/Adara.ogg \
|
||||
$(LOCAL_PATH)/notifications/ogg/Arcturus.ogg:system/media/audio/notifications/Arcturus.ogg \
|
||||
$(LOCAL_PATH)/notifications/ogg/Bellatrix.ogg:system/media/audio/notifications/Bellatrix.ogg \
|
||||
|
||||
@@ -30,6 +30,7 @@ PRODUCT_COPY_FILES += \
|
||||
$(LOCAL_PATH)/effects/ogg/Undock.ogg:system/media/audio/ui/Undock.ogg \
|
||||
$(LOCAL_PATH)/effects/ogg/Lock.ogg:system/media/audio/ui/Lock.ogg \
|
||||
$(LOCAL_PATH)/effects/ogg/Unlock.ogg:system/media/audio/ui/Unlock.ogg \
|
||||
$(LOCAL_PATH)/effects/ogg/Trusted.ogg:system/media/audio/ui/Trusted.ogg \
|
||||
$(LOCAL_PATH)/notifications/ogg/Adara.ogg:system/media/audio/notifications/Adara.ogg \
|
||||
$(LOCAL_PATH)/notifications/ogg/Alya.ogg:system/media/audio/notifications/Alya.ogg \
|
||||
$(LOCAL_PATH)/notifications/ogg/Arcturus.ogg:system/media/audio/notifications/Arcturus.ogg \
|
||||
|
||||
BIN
data/sounds/effects/ogg/Trusted.ogg
Normal file
BIN
data/sounds/effects/ogg/Trusted.ogg
Normal file
Binary file not shown.
BIN
data/sounds/effects/ogg/Trusted_48k.ogg
Normal file
BIN
data/sounds/effects/ogg/Trusted_48k.ogg
Normal file
Binary file not shown.
@@ -77,7 +77,7 @@ public class KeyguardSimpleHostView extends KeyguardViewBase {
|
||||
if (isVisibleToUser()) {
|
||||
dismiss(false /* authenticated */);
|
||||
} else {
|
||||
// TODO: Play first half of unlock sound.
|
||||
mViewMediatorCallback.playTrustedSound();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@@ -66,4 +66,9 @@ public interface ViewMediatorCallback {
|
||||
* Report when the UI is ready for dismissing the whole Keyguard.
|
||||
*/
|
||||
void readyForKeyguardDone();
|
||||
|
||||
/**
|
||||
* Play the "device trusted" sound.
|
||||
*/
|
||||
void playTrustedSound();
|
||||
}
|
||||
|
||||
@@ -73,6 +73,7 @@
|
||||
<integer name="def_lockscreen_sounds_enabled">1</integer>
|
||||
<string name="def_lock_sound" translatable="false">/system/media/audio/ui/Lock.ogg</string>
|
||||
<string name="def_unlock_sound" translatable="false">/system/media/audio/ui/Unlock.ogg</string>
|
||||
<string name="def_trusted_sound" translatable="false">/system/media/audio/ui/Trusted.ogg</string>
|
||||
<string name="def_wireless_charging_started_sound" translatable="false">/system/media/audio/ui/WirelessChargingStarted.ogg</string>
|
||||
|
||||
<bool name="def_lockscreen_disabled">false</bool>
|
||||
|
||||
@@ -70,7 +70,7 @@ public class DatabaseHelper extends SQLiteOpenHelper {
|
||||
// database gets upgraded properly. At a minimum, please confirm that 'upgradeVersion'
|
||||
// is properly propagated through your change. Not doing so will result in a loss of user
|
||||
// settings.
|
||||
private static final int DATABASE_VERSION = 106;
|
||||
private static final int DATABASE_VERSION = 107;
|
||||
|
||||
private Context mContext;
|
||||
private int mUserHandle;
|
||||
@@ -1694,6 +1694,26 @@ public class DatabaseHelper extends SQLiteOpenHelper {
|
||||
}
|
||||
upgradeVersion = 106;
|
||||
}
|
||||
|
||||
if (upgradeVersion < 107) {
|
||||
// Add trusted sound setting
|
||||
if (mUserHandle == UserHandle.USER_OWNER) {
|
||||
db.beginTransaction();
|
||||
SQLiteStatement stmt = null;
|
||||
try {
|
||||
stmt = db.compileStatement("INSERT OR REPLACE INTO global(name,value)"
|
||||
+ " VALUES(?,?);");
|
||||
loadStringSetting(stmt, Settings.Global.TRUSTED_SOUND,
|
||||
R.string.def_trusted_sound);
|
||||
db.setTransactionSuccessful();
|
||||
} finally {
|
||||
db.endTransaction();
|
||||
if (stmt != null) stmt.close();
|
||||
}
|
||||
}
|
||||
upgradeVersion = 107;
|
||||
}
|
||||
|
||||
// *** Remember to update DATABASE_VERSION above!
|
||||
|
||||
if (upgradeVersion != currentVersion) {
|
||||
@@ -2373,6 +2393,8 @@ public class DatabaseHelper extends SQLiteOpenHelper {
|
||||
R.string.def_lock_sound);
|
||||
loadStringSetting(stmt, Settings.Global.UNLOCK_SOUND,
|
||||
R.string.def_unlock_sound);
|
||||
loadStringSetting(stmt, Settings.Global.TRUSTED_SOUND,
|
||||
R.string.def_trusted_sound);
|
||||
loadIntegerSetting(stmt, Settings.Global.POWER_SOUNDS_ENABLED,
|
||||
R.integer.def_power_sounds_enabled);
|
||||
loadStringSetting(stmt, Settings.Global.LOW_BATTERY_SOUND,
|
||||
|
||||
@@ -262,6 +262,7 @@ public class KeyguardViewMediator extends SystemUI {
|
||||
private SoundPool mLockSounds;
|
||||
private int mLockSoundId;
|
||||
private int mUnlockSoundId;
|
||||
private int mTrustedSoundId;
|
||||
private int mLockSoundStreamId;
|
||||
|
||||
/**
|
||||
@@ -451,6 +452,11 @@ public class KeyguardViewMediator extends SystemUI {
|
||||
KeyguardViewMediator.this.keyguardDone(true /* authenticated */, true /* wakeUp */);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void playTrustedSound() {
|
||||
KeyguardViewMediator.this.playTrustedSound();
|
||||
}
|
||||
};
|
||||
|
||||
public void userActivity() {
|
||||
@@ -500,6 +506,14 @@ public class KeyguardViewMediator extends SystemUI {
|
||||
if (soundPath == null || mUnlockSoundId == 0) {
|
||||
Log.w(TAG, "failed to load unlock sound from " + soundPath);
|
||||
}
|
||||
soundPath = Settings.Global.getString(cr, Settings.Global.TRUSTED_SOUND);
|
||||
if (soundPath != null) {
|
||||
mTrustedSoundId = mLockSounds.load(soundPath, 1);
|
||||
}
|
||||
if (soundPath == null || mTrustedSoundId == 0) {
|
||||
Log.w(TAG, "failed to load trusted sound from " + soundPath);
|
||||
}
|
||||
|
||||
int lockSoundDefaultAttenuation = mContext.getResources().getInteger(
|
||||
com.android.internal.R.integer.config_lockSoundVolumeDb);
|
||||
mLockSoundVolume = (float)Math.pow(10, (float)lockSoundDefaultAttenuation/20);
|
||||
@@ -1155,11 +1169,14 @@ public class KeyguardViewMediator extends SystemUI {
|
||||
return;
|
||||
}
|
||||
|
||||
playSound(locked ? mLockSoundId : mUnlockSoundId);
|
||||
}
|
||||
|
||||
private void playSound(int soundId) {
|
||||
if (soundId == 0) return;
|
||||
final ContentResolver cr = mContext.getContentResolver();
|
||||
if (Settings.System.getInt(cr, Settings.System.LOCKSCREEN_SOUNDS_ENABLED, 1) == 1) {
|
||||
final int whichSound = locked
|
||||
? mLockSoundId
|
||||
: mUnlockSoundId;
|
||||
|
||||
mLockSounds.stop(mLockSoundStreamId);
|
||||
// Init mAudioManager
|
||||
if (mAudioManager == null) {
|
||||
@@ -1170,11 +1187,18 @@ public class KeyguardViewMediator extends SystemUI {
|
||||
// If the stream is muted, don't play the sound
|
||||
if (mAudioManager.isStreamMute(mMasterStreamType)) return;
|
||||
|
||||
mLockSoundStreamId = mLockSounds.play(whichSound,
|
||||
mLockSoundStreamId = mLockSounds.play(soundId,
|
||||
mLockSoundVolume, mLockSoundVolume, 1/*priortiy*/, 0/*loop*/, 1.0f/*rate*/);
|
||||
}
|
||||
}
|
||||
|
||||
private void playTrustedSound() {
|
||||
if (mSuppressNextLockSound) {
|
||||
return;
|
||||
}
|
||||
playSound(mTrustedSoundId);
|
||||
}
|
||||
|
||||
private void updateActivityLockScreenState() {
|
||||
try {
|
||||
ActivityManagerNative.getDefault().setLockScreenShown(mShowing && !mOccluded);
|
||||
|
||||
Reference in New Issue
Block a user