diff options
author | Beverly Tai <beverlyt@google.com> | 2018-02-06 16:29:09 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2018-02-06 16:29:09 +0000 |
commit | c65eb444374cd4503d3ee39432ec71ed1d3357e3 (patch) | |
tree | 8516a2b759cb9fa9aaa21a3af63ac7c384bc5361 | |
parent | db48d1aa53f4901ac0521a478286d766a9b5adc6 (diff) | |
parent | c1313eb44d01285983975bd57f010c526ca2ff56 (diff) |
Merge "Wireless charging sound used for wired charging"
6 files changed, 38 insertions, 12 deletions
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index f17937149936..e3816933aa30 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -8389,10 +8389,10 @@ public final class Settings { private static final Validator POWER_SOUNDS_ENABLED_VALIDATOR = BOOLEAN_VALIDATOR; /** - * URI for the "wireless charging started" sound. + * URI for the "wireless charging started" and "wired charging started" sound. * @hide */ - public static final String WIRELESS_CHARGING_STARTED_SOUND = + public static final String CHARGING_STARTED_SOUND = "wireless_charging_started_sound"; /** diff --git a/core/tests/coretests/src/android/provider/SettingsBackupTest.java b/core/tests/coretests/src/android/provider/SettingsBackupTest.java index e1f95a3ca571..da86c9f424ad 100644 --- a/core/tests/coretests/src/android/provider/SettingsBackupTest.java +++ b/core/tests/coretests/src/android/provider/SettingsBackupTest.java @@ -17,11 +17,9 @@ package android.provider; import static com.google.android.collect.Sets.newHashSet; - import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.empty; import static org.hamcrest.Matchers.is; - import static java.lang.reflect.Modifier.isFinal; import static java.lang.reflect.Modifier.isPublic; import static java.lang.reflect.Modifier.isStatic; @@ -443,7 +441,7 @@ public class SettingsBackupTest { Settings.Global.WIFI_WATCHDOG_ON, Settings.Global.WIMAX_NETWORKS_AVAILABLE_NOTIFICATION_ON, Settings.Global.WINDOW_ANIMATION_SCALE, - Settings.Global.WIRELESS_CHARGING_STARTED_SOUND, + Settings.Global.CHARGING_STARTED_SOUND, Settings.Global.WTF_IS_FATAL, Settings.Global.ZEN_MODE, Settings.Global.ZEN_MODE_CONFIG_ETAG, diff --git a/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java b/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java index 1dc8e46a694a..cfcfb95b0f88 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java @@ -43,7 +43,6 @@ import android.provider.Settings.Secure; import android.text.TextUtils; import android.util.Log; -import com.android.ims.ImsConfig; import com.android.internal.content.PackageHelper; import com.android.internal.telephony.Phone; import com.android.internal.telephony.RILConstants; @@ -1504,7 +1503,7 @@ class DatabaseHelper extends SQLiteOpenHelper { try { stmt = db.compileStatement("INSERT OR REPLACE INTO global(name,value)" + " VALUES(?,?);"); - loadStringSetting(stmt, Settings.Global.WIRELESS_CHARGING_STARTED_SOUND, + loadStringSetting(stmt, Settings.Global.CHARGING_STARTED_SOUND, R.string.def_wireless_charging_started_sound); db.setTransactionSuccessful(); } finally { @@ -2578,7 +2577,7 @@ class DatabaseHelper extends SQLiteOpenHelper { R.string.def_car_dock_sound); loadStringSetting(stmt, Settings.Global.CAR_UNDOCK_SOUND, R.string.def_car_undock_sound); - loadStringSetting(stmt, Settings.Global.WIRELESS_CHARGING_STARTED_SOUND, + loadStringSetting(stmt, Settings.Global.CHARGING_STARTED_SOUND, R.string.def_wireless_charging_started_sound); loadIntegerSetting(stmt, Settings.Global.DOCK_AUDIO_MEDIA_ENABLED, diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java index 537e8dca39c8..39f2b5293dac 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java @@ -160,7 +160,7 @@ class SettingsProtoDumpUtil { Settings.Global.POWER_SOUNDS_ENABLED, GlobalSettingsProto.POWER_SOUNDS_ENABLED); dumpSetting(s, p, - Settings.Global.WIRELESS_CHARGING_STARTED_SOUND, + Settings.Global.CHARGING_STARTED_SOUND, GlobalSettingsProto.WIRELESS_CHARGING_STARTED_SOUND); dumpSetting(s, p, Settings.Global.CHARGING_SOUNDS_ENABLED, diff --git a/services/core/java/com/android/server/power/Notifier.java b/services/core/java/com/android/server/power/Notifier.java index a53627093df6..3072f212d7c1 100644 --- a/services/core/java/com/android/server/power/Notifier.java +++ b/services/core/java/com/android/server/power/Notifier.java @@ -85,6 +85,7 @@ final class Notifier { private static final int MSG_WIRELESS_CHARGING_STARTED = 3; private static final int MSG_SCREEN_BRIGHTNESS_BOOST_CHANGED = 4; private static final int MSG_PROFILE_TIMED_OUT = 5; + private static final int MSG_WIRED_CHARGING_STARTED = 6; private final Object mLock = new Object(); @@ -571,6 +572,20 @@ final class Notifier { mHandler.sendMessage(msg); } + /** + * Called when wired charging has started so as to provide user feedback + */ + public void onWiredChargingStarted() { + if (DEBUG) { + Slog.d(TAG, "onWiredChargingStarted"); + } + + mSuspendBlocker.acquire(); + Message msg = mHandler.obtainMessage(MSG_WIRED_CHARGING_STARTED); + msg.setAsynchronous(true); + mHandler.sendMessage(msg); + } + private void updatePendingBroadcastLocked() { if (!mBroadcastInProgress && mPendingInteractiveState != INTERACTIVE_STATE_UNKNOWN @@ -703,11 +718,14 @@ final class Notifier { } }; - private void playWirelessChargingStartedSound() { + /** + * Plays the wireless charging sound for both wireless and non-wireless charging + */ + private void playChargingStartedSound() { final boolean enabled = Settings.Global.getInt(mContext.getContentResolver(), Settings.Global.CHARGING_SOUNDS_ENABLED, 1) != 0; final String soundPath = Settings.Global.getString(mContext.getContentResolver(), - Settings.Global.WIRELESS_CHARGING_STARTED_SOUND); + Settings.Global.CHARGING_STARTED_SOUND); if (enabled && soundPath != null) { final Uri soundUri = Uri.parse("file://" + soundPath); if (soundUri != null) { @@ -721,11 +739,16 @@ final class Notifier { } private void showWirelessChargingStarted(int batteryLevel) { - playWirelessChargingStartedSound(); + playChargingStartedSound(); mStatusBarManagerInternal.showChargingAnimation(batteryLevel); mSuspendBlocker.release(); } + private void showWiredChargingStarted() { + playChargingStartedSound(); + mSuspendBlocker.release(); + } + private void lockProfile(@UserIdInt int userId) { mTrustManager.setDeviceLockedForUser(userId, true /*locked*/); } @@ -753,6 +776,8 @@ final class Notifier { case MSG_PROFILE_TIMED_OUT: lockProfile(msg.arg1); break; + case MSG_WIRED_CHARGING_STARTED: + showWiredChargingStarted(); } } } diff --git a/services/core/java/com/android/server/power/PowerManagerService.java b/services/core/java/com/android/server/power/PowerManagerService.java index db831581c791..1bb85c4426e1 100644 --- a/services/core/java/com/android/server/power/PowerManagerService.java +++ b/services/core/java/com/android/server/power/PowerManagerService.java @@ -1747,6 +1747,10 @@ public final class PowerManagerService extends SystemService // it can provide feedback to the user. if (dockedOnWirelessCharger || DEBUG_WIRELESS) { mNotifier.onWirelessChargingStarted(mBatteryLevel); + } else if (mIsPowered && !wasPowered + && (mPlugType == BatteryManager.BATTERY_PLUGGED_AC + || mPlugType == BatteryManager.BATTERY_PLUGGED_USB)) { + mNotifier.onWiredChargingStarted(); } } |