diff options
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/stylus/StylusUsiPowerUI.kt | 12 | ||||
| -rw-r--r-- | packages/SystemUI/tests/src/com/android/systemui/stylus/StylusUsiPowerUiTest.kt | 10 |
2 files changed, 16 insertions, 6 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/stylus/StylusUsiPowerUI.kt b/packages/SystemUI/src/com/android/systemui/stylus/StylusUsiPowerUI.kt index 2797b8d2e2dd..e9f4374fce2e 100644 --- a/packages/SystemUI/src/com/android/systemui/stylus/StylusUsiPowerUI.kt +++ b/packages/SystemUI/src/com/android/systemui/stylus/StylusUsiPowerUI.kt @@ -36,10 +36,10 @@ import com.android.internal.annotations.VisibleForTesting import com.android.internal.logging.InstanceId import com.android.internal.logging.InstanceIdSequence import com.android.internal.logging.UiEventLogger -import com.android.systemui.res.R import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Background import com.android.systemui.log.DebugLogger.debugLog +import com.android.systemui.res.R import com.android.systemui.shared.hardware.hasInputDevice import com.android.systemui.shared.hardware.isAnyStylusSource import com.android.systemui.util.NotificationChannels @@ -65,8 +65,10 @@ constructor( private var batteryCapacity = 1.0f private var suppressed = false private var instanceId: InstanceId? = null - @VisibleForTesting var inputDeviceId: Int? = null - private set + @VisibleForTesting + var inputDeviceId: Int? = null + private set + @VisibleForTesting var instanceIdSequence = InstanceIdSequence(1 shl 13) fun init() { @@ -113,7 +115,7 @@ constructor( inputDeviceId = deviceId if (batteryState.capacity == batteryCapacity || batteryState.capacity <= 0f) return@updateBattery - + // Note that batteryState.capacity == NaN will fall through to here batteryCapacity = batteryState.capacity debugLog { "Updating notification battery state to $batteryCapacity " + @@ -172,7 +174,7 @@ constructor( } private fun isBatteryBelowThreshold(): Boolean { - return batteryCapacity <= LOW_BATTERY_THRESHOLD + return !batteryCapacity.isNaN() && batteryCapacity <= LOW_BATTERY_THRESHOLD } private fun hasConnectedBluetoothStylus(): Boolean { diff --git a/packages/SystemUI/tests/src/com/android/systemui/stylus/StylusUsiPowerUiTest.kt b/packages/SystemUI/tests/src/com/android/systemui/stylus/StylusUsiPowerUiTest.kt index 5b9db4bf8869..5603ff0c12c4 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/stylus/StylusUsiPowerUiTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/stylus/StylusUsiPowerUiTest.kt @@ -31,8 +31,8 @@ import androidx.test.filters.SmallTest import com.android.internal.logging.InstanceId import com.android.internal.logging.UiEventLogger import com.android.systemui.InstanceIdSequenceFake -import com.android.systemui.res.R import com.android.systemui.SysuiTestCase +import com.android.systemui.res.R import com.android.systemui.util.mockito.any import com.android.systemui.util.mockito.argumentCaptor import com.android.systemui.util.mockito.eq @@ -109,6 +109,14 @@ class StylusUsiPowerUiTest : SysuiTestCase() { } @Test + fun updateBatteryState_capacityNaN_cancelsNotification() { + stylusUsiPowerUi.updateBatteryState(0, FixedCapacityBatteryState(Float.NaN)) + + verify(notificationManager, times(1)).cancel(R.string.stylus_battery_low_percentage) + verifyNoMoreInteractions(notificationManager) + } + + @Test fun updateBatteryState_capacityBelowThreshold_notifies() { stylusUsiPowerUi.updateBatteryState(0, FixedCapacityBatteryState(0.1f)) |