Loading packages/SystemUI/src/com/android/systemui/keyboard/data/repository/KeyboardRepository.kt +8 −17 Original line number Diff line number Diff line Loading @@ -25,7 +25,6 @@ import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Background import com.android.systemui.inputdevice.data.repository.InputDeviceRepository import com.android.systemui.inputdevice.data.repository.InputDeviceRepository.DeviceAdded import com.android.systemui.inputdevice.data.repository.InputDeviceRepository.DeviceChange import com.android.systemui.inputdevice.data.repository.InputDeviceRepository.DeviceRemoved import com.android.systemui.inputdevice.data.repository.InputDeviceRepository.FreshStart import com.android.systemui.keyboard.data.model.Keyboard Loading Loading @@ -78,24 +77,16 @@ constructor( inputDeviceRepository: InputDeviceRepository ) : KeyboardRepository { private val keyboardsChange: Flow<Pair<Collection<Int>, DeviceChange>> = inputDeviceRepository.deviceChange .map { (ids, change) -> ids.filter { id -> isPhysicalFullKeyboard(id) } to change } .filter { (_, change) -> when (change) { FreshStart -> true is DeviceAdded -> isPhysicalFullKeyboard(change.deviceId) is DeviceRemoved -> isPhysicalFullKeyboard(change.deviceId) } } @FlowPreview override val newlyConnectedKeyboard: Flow<Keyboard> = keyboardsChange inputDeviceRepository.deviceChange .flatMapConcat { (devices, operation) -> when (operation) { FreshStart -> devices.asFlow() is DeviceAdded -> flowOf(operation.deviceId) FreshStart -> devices.filter { id -> isPhysicalFullKeyboard(id) }.asFlow() is DeviceAdded -> { if (isPhysicalFullKeyboard(operation.deviceId)) flowOf(operation.deviceId) else emptyFlow() } is DeviceRemoved -> emptyFlow() } } Loading @@ -103,8 +94,8 @@ constructor( .flowOn(backgroundDispatcher) override val isAnyKeyboardConnected: Flow<Boolean> = keyboardsChange .map { (devices, _) -> devices.isNotEmpty() } inputDeviceRepository.deviceChange .map { (ids, _) -> ids.any { id -> isPhysicalFullKeyboard(id) } } .distinctUntilChanged() .flowOn(backgroundDispatcher) Loading Loading
packages/SystemUI/src/com/android/systemui/keyboard/data/repository/KeyboardRepository.kt +8 −17 Original line number Diff line number Diff line Loading @@ -25,7 +25,6 @@ import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Background import com.android.systemui.inputdevice.data.repository.InputDeviceRepository import com.android.systemui.inputdevice.data.repository.InputDeviceRepository.DeviceAdded import com.android.systemui.inputdevice.data.repository.InputDeviceRepository.DeviceChange import com.android.systemui.inputdevice.data.repository.InputDeviceRepository.DeviceRemoved import com.android.systemui.inputdevice.data.repository.InputDeviceRepository.FreshStart import com.android.systemui.keyboard.data.model.Keyboard Loading Loading @@ -78,24 +77,16 @@ constructor( inputDeviceRepository: InputDeviceRepository ) : KeyboardRepository { private val keyboardsChange: Flow<Pair<Collection<Int>, DeviceChange>> = inputDeviceRepository.deviceChange .map { (ids, change) -> ids.filter { id -> isPhysicalFullKeyboard(id) } to change } .filter { (_, change) -> when (change) { FreshStart -> true is DeviceAdded -> isPhysicalFullKeyboard(change.deviceId) is DeviceRemoved -> isPhysicalFullKeyboard(change.deviceId) } } @FlowPreview override val newlyConnectedKeyboard: Flow<Keyboard> = keyboardsChange inputDeviceRepository.deviceChange .flatMapConcat { (devices, operation) -> when (operation) { FreshStart -> devices.asFlow() is DeviceAdded -> flowOf(operation.deviceId) FreshStart -> devices.filter { id -> isPhysicalFullKeyboard(id) }.asFlow() is DeviceAdded -> { if (isPhysicalFullKeyboard(operation.deviceId)) flowOf(operation.deviceId) else emptyFlow() } is DeviceRemoved -> emptyFlow() } } Loading @@ -103,8 +94,8 @@ constructor( .flowOn(backgroundDispatcher) override val isAnyKeyboardConnected: Flow<Boolean> = keyboardsChange .map { (devices, _) -> devices.isNotEmpty() } inputDeviceRepository.deviceChange .map { (ids, _) -> ids.any { id -> isPhysicalFullKeyboard(id) } } .distinctUntilChanged() .flowOn(backgroundDispatcher) Loading