Loading services/core/java/com/android/server/BatteryService.java +30 −75 Original line number Diff line number Diff line Loading @@ -875,42 +875,22 @@ public final class BatteryService extends SystemService { final Intent statusIntent = new Intent(Intent.ACTION_POWER_CONNECTED); statusIntent.setFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT); statusIntent.putExtra(BatteryManager.EXTRA_SEQUENCE, mSequence); if (com.android.server.flags.Flags.consolidateBatteryChangeEvents()) { mHandler.removeMessages(MSG_BROADCAST_POWER_CONNECTION_CHANGED); final SomeArgs args = SomeArgs.obtain(); args.arg1 = mContext; args.arg2 = statusIntent; mHandler.obtainMessage(MSG_BROADCAST_POWER_CONNECTION_CHANGED, args) .sendToTarget(); } else { mHandler.post(new Runnable() { @Override public void run() { mContext.sendBroadcastAsUser(statusIntent, UserHandle.ALL, null, POWER_OPTIONS); } }); } } else if (mPlugType == 0 && mLastBroadcastPlugType != 0) { final Intent statusIntent = new Intent(Intent.ACTION_POWER_DISCONNECTED); statusIntent.setFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT); statusIntent.putExtra(BatteryManager.EXTRA_SEQUENCE, mSequence); if (com.android.server.flags.Flags.consolidateBatteryChangeEvents()) { mHandler.removeMessages(MSG_BROADCAST_POWER_CONNECTION_CHANGED); final SomeArgs args = SomeArgs.obtain(); args.arg1 = mContext; args.arg2 = statusIntent; mHandler.obtainMessage(MSG_BROADCAST_POWER_CONNECTION_CHANGED, args) .sendToTarget(); } else { mHandler.post(new Runnable() { @Override public void run() { mContext.sendBroadcastAsUser(statusIntent, UserHandle.ALL, null, POWER_OPTIONS); } }); } } if (shouldSendBatteryLowLocked()) { Loading @@ -918,44 +898,24 @@ public final class BatteryService extends SystemService { final Intent statusIntent = new Intent(Intent.ACTION_BATTERY_LOW); statusIntent.setFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT); statusIntent.putExtra(BatteryManager.EXTRA_SEQUENCE, mSequence); if (com.android.server.flags.Flags.consolidateBatteryChangeEvents()) { mHandler.removeMessages(MSG_BROADCAST_BATTERY_LOW_OKAY); final SomeArgs args = SomeArgs.obtain(); args.arg1 = mContext; args.arg2 = statusIntent; mHandler.obtainMessage(MSG_BROADCAST_BATTERY_LOW_OKAY, args) .sendToTarget(); } else { mHandler.post(new Runnable() { @Override public void run() { mContext.sendBroadcastAsUser(statusIntent, UserHandle.ALL, null, BATTERY_OPTIONS); } }); } } else if (mSentLowBatteryBroadcast && mHealthInfo.batteryLevel >= mLowBatteryCloseWarningLevel) { mSentLowBatteryBroadcast = false; final Intent statusIntent = new Intent(Intent.ACTION_BATTERY_OKAY); statusIntent.setFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT); statusIntent.putExtra(BatteryManager.EXTRA_SEQUENCE, mSequence); if (com.android.server.flags.Flags.consolidateBatteryChangeEvents()) { mHandler.removeMessages(MSG_BROADCAST_BATTERY_LOW_OKAY); final SomeArgs args = SomeArgs.obtain(); args.arg1 = mContext; args.arg2 = statusIntent; mHandler.obtainMessage(MSG_BROADCAST_BATTERY_LOW_OKAY, args) .sendToTarget(); } else { mHandler.post(new Runnable() { @Override public void run() { mContext.sendBroadcastAsUser(statusIntent, UserHandle.ALL, null, BATTERY_OPTIONS); } }); } } // We are doing this after sending the above broadcasts, so anything processing Loading Loading @@ -1038,17 +998,12 @@ public final class BatteryService extends SystemService { + ", info:" + mHealthInfo.toString()); } if (com.android.server.flags.Flags.consolidateBatteryChangeEvents()) { mHandler.removeMessages(MSG_BROADCAST_BATTERY_CHANGED); final SomeArgs args = SomeArgs.obtain(); args.arg1 = mContext; args.arg2 = intent; args.arg3 = forceUpdate; mHandler.obtainMessage(MSG_BROADCAST_BATTERY_CHANGED, args).sendToTarget(); } else { mHandler.post(() -> broadcastBatteryChangedIntent(mContext, intent, BATTERY_CHANGED_OPTIONS, forceUpdate)); } } private static void broadcastBatteryChangedIntent(Context context, Intent intent, Loading services/core/java/com/android/server/flags/services.aconfig +0 −11 Original line number Diff line number Diff line Loading @@ -32,17 +32,6 @@ flag { } } flag { namespace: "backstage_power" name: "consolidate_battery_change_events" description: "Optimize battery status updates by delivering only the most recent battery information" bug: "361334584" is_fixed_read_only: true metadata { purpose: PURPOSE_BUGFIX } } flag { namespace: "backstage_power" name: "trace_battery_changed_broadcast_event" Loading Loading
services/core/java/com/android/server/BatteryService.java +30 −75 Original line number Diff line number Diff line Loading @@ -875,42 +875,22 @@ public final class BatteryService extends SystemService { final Intent statusIntent = new Intent(Intent.ACTION_POWER_CONNECTED); statusIntent.setFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT); statusIntent.putExtra(BatteryManager.EXTRA_SEQUENCE, mSequence); if (com.android.server.flags.Flags.consolidateBatteryChangeEvents()) { mHandler.removeMessages(MSG_BROADCAST_POWER_CONNECTION_CHANGED); final SomeArgs args = SomeArgs.obtain(); args.arg1 = mContext; args.arg2 = statusIntent; mHandler.obtainMessage(MSG_BROADCAST_POWER_CONNECTION_CHANGED, args) .sendToTarget(); } else { mHandler.post(new Runnable() { @Override public void run() { mContext.sendBroadcastAsUser(statusIntent, UserHandle.ALL, null, POWER_OPTIONS); } }); } } else if (mPlugType == 0 && mLastBroadcastPlugType != 0) { final Intent statusIntent = new Intent(Intent.ACTION_POWER_DISCONNECTED); statusIntent.setFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT); statusIntent.putExtra(BatteryManager.EXTRA_SEQUENCE, mSequence); if (com.android.server.flags.Flags.consolidateBatteryChangeEvents()) { mHandler.removeMessages(MSG_BROADCAST_POWER_CONNECTION_CHANGED); final SomeArgs args = SomeArgs.obtain(); args.arg1 = mContext; args.arg2 = statusIntent; mHandler.obtainMessage(MSG_BROADCAST_POWER_CONNECTION_CHANGED, args) .sendToTarget(); } else { mHandler.post(new Runnable() { @Override public void run() { mContext.sendBroadcastAsUser(statusIntent, UserHandle.ALL, null, POWER_OPTIONS); } }); } } if (shouldSendBatteryLowLocked()) { Loading @@ -918,44 +898,24 @@ public final class BatteryService extends SystemService { final Intent statusIntent = new Intent(Intent.ACTION_BATTERY_LOW); statusIntent.setFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT); statusIntent.putExtra(BatteryManager.EXTRA_SEQUENCE, mSequence); if (com.android.server.flags.Flags.consolidateBatteryChangeEvents()) { mHandler.removeMessages(MSG_BROADCAST_BATTERY_LOW_OKAY); final SomeArgs args = SomeArgs.obtain(); args.arg1 = mContext; args.arg2 = statusIntent; mHandler.obtainMessage(MSG_BROADCAST_BATTERY_LOW_OKAY, args) .sendToTarget(); } else { mHandler.post(new Runnable() { @Override public void run() { mContext.sendBroadcastAsUser(statusIntent, UserHandle.ALL, null, BATTERY_OPTIONS); } }); } } else if (mSentLowBatteryBroadcast && mHealthInfo.batteryLevel >= mLowBatteryCloseWarningLevel) { mSentLowBatteryBroadcast = false; final Intent statusIntent = new Intent(Intent.ACTION_BATTERY_OKAY); statusIntent.setFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT); statusIntent.putExtra(BatteryManager.EXTRA_SEQUENCE, mSequence); if (com.android.server.flags.Flags.consolidateBatteryChangeEvents()) { mHandler.removeMessages(MSG_BROADCAST_BATTERY_LOW_OKAY); final SomeArgs args = SomeArgs.obtain(); args.arg1 = mContext; args.arg2 = statusIntent; mHandler.obtainMessage(MSG_BROADCAST_BATTERY_LOW_OKAY, args) .sendToTarget(); } else { mHandler.post(new Runnable() { @Override public void run() { mContext.sendBroadcastAsUser(statusIntent, UserHandle.ALL, null, BATTERY_OPTIONS); } }); } } // We are doing this after sending the above broadcasts, so anything processing Loading Loading @@ -1038,17 +998,12 @@ public final class BatteryService extends SystemService { + ", info:" + mHealthInfo.toString()); } if (com.android.server.flags.Flags.consolidateBatteryChangeEvents()) { mHandler.removeMessages(MSG_BROADCAST_BATTERY_CHANGED); final SomeArgs args = SomeArgs.obtain(); args.arg1 = mContext; args.arg2 = intent; args.arg3 = forceUpdate; mHandler.obtainMessage(MSG_BROADCAST_BATTERY_CHANGED, args).sendToTarget(); } else { mHandler.post(() -> broadcastBatteryChangedIntent(mContext, intent, BATTERY_CHANGED_OPTIONS, forceUpdate)); } } private static void broadcastBatteryChangedIntent(Context context, Intent intent, Loading
services/core/java/com/android/server/flags/services.aconfig +0 −11 Original line number Diff line number Diff line Loading @@ -32,17 +32,6 @@ flag { } } flag { namespace: "backstage_power" name: "consolidate_battery_change_events" description: "Optimize battery status updates by delivering only the most recent battery information" bug: "361334584" is_fixed_read_only: true metadata { purpose: PURPOSE_BUGFIX } } flag { namespace: "backstage_power" name: "trace_battery_changed_broadcast_event" Loading