From 1079be4c758ad11ad4204a6651613bbf087bf724 Mon Sep 17 00:00:00 2001 From: sds100 Date: Mon, 21 Sep 2026 13:34:33 +0200 Subject: [PATCH 01/64] bump version to 4.6.0 --- CHANGELOG.md | 4 ++++ app/version.properties | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9ad1fcbbdc..8722755ecb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## [4.6.0](https://github.com/sds100/KeyMapper/releases/tag/v4.6.0) + +#### TO BE RELEASED + ## [4.5.0](https://github.com/sds100/KeyMapper/releases/tag/v4.5.0) #### 21 September 2026 diff --git a/app/version.properties b/app/version.properties index 7a9b55b422..1d8b6a3d43 100644 --- a/app/version.properties +++ b/app/version.properties @@ -1,2 +1,2 @@ -VERSION_NAME=4.5.0 -VERSION_CODE=271 +VERSION_NAME=4.6.0 +VERSION_CODE=273 From 4b5205f502625a49b783fb7a7e574f2a627d9d8f Mon Sep 17 00:00:00 2001 From: Seth Schroeder Date: Mon, 21 Sep 2026 14:42:16 +0200 Subject: [PATCH 02/64] Update whats-new-app.txt --- base/src/main/assets/whats-new-app.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/base/src/main/assets/whats-new-app.txt b/base/src/main/assets/whats-new-app.txt index 6733687866..ae1f57f2a5 100644 --- a/base/src/main/assets/whats-new-app.txt +++ b/base/src/main/assets/whats-new-app.txt @@ -1,4 +1,4 @@ -! Group constraints | Organize constraints into groups with their own AND/OR logic +! Constraint groups | Organize constraints into groups with their own AND/OR logic ! Vibrate action | New action with custom duration or haptic effects like Click and Tick + • Cycle enabled keyboards action + • Notification constraint From 37d4a056ab57d08da13633205550fb7f49298f89 Mon Sep 17 00:00:00 2001 From: sds100 Date: Fri, 25 Sep 2026 15:44:05 +0200 Subject: [PATCH 03/64] #2263 feat: constraints can now be edited in place from the constraints list instead of being deleted and re-added --- CHANGELOG.md | 4 + .../sds100/keymapper/base/BaseMainNavHost.kt | 6 +- .../constraints/ChooseConstraintScreen.kt | 9 +- .../constraints/ChooseConstraintViewModel.kt | 586 +++--------------- .../constraints/ConfigConstraintsUseCase.kt | 19 + .../constraints/ConfigConstraintsViewModel.kt | 29 + .../ConfigNotificationConstraintViewModel.kt | 23 + .../base/constraints/ConstraintGroupItem.kt | 7 + .../base/constraints/ConstraintListItem.kt | 216 +++---- .../constraints/ConstraintListItemModel.kt | 1 + .../base/constraints/ConstraintUtils.kt | 17 + .../base/constraints/ConstraintsScreen.kt | 7 + .../constraints/CreateConstraintDelegate.kt | 410 ++++++++++++ .../DisplayResolutionConstraintBottomSheet.kt | 16 +- .../constraints/TimeConstraintBottomSheet.kt | 14 +- .../base/utils/navigation/NavDestination.kt | 2 +- .../base/utils/ui/compose/ShrinkWrapText.kt | 69 +++ base/src/main/res/values/strings.xml | 1 + 18 files changed, 812 insertions(+), 624 deletions(-) create mode 100644 base/src/main/java/io/github/sds100/keymapper/base/constraints/CreateConstraintDelegate.kt create mode 100644 base/src/main/java/io/github/sds100/keymapper/base/utils/ui/compose/ShrinkWrapText.kt diff --git a/CHANGELOG.md b/CHANGELOG.md index 8722755ecb..25351a99cb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ #### TO BE RELEASED +## Added + +- #2263 constraints can now be edited in place from the constraints list instead of being deleted and re-added. + ## [4.5.0](https://github.com/sds100/KeyMapper/releases/tag/v4.5.0) #### 21 September 2026 diff --git a/base/src/main/java/io/github/sds100/keymapper/base/BaseMainNavHost.kt b/base/src/main/java/io/github/sds100/keymapper/base/BaseMainNavHost.kt index 26e7098f8c..0dcf316400 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/BaseMainNavHost.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/BaseMainNavHost.kt @@ -106,9 +106,13 @@ fun BaseMainNavHost( ) } - composable { + composable { backStackEntry -> val viewModel: ConfigNotificationConstraintViewModel = hiltViewModel() + backStackEntry.handleRouteArgs { + it.oldJson?.let { json -> viewModel.loadOldData(Json.decodeFromString(json)) } + } + ConfigNotificationConstraintScreen( modifier = Modifier.fillMaxSize(), viewModel = viewModel, diff --git a/base/src/main/java/io/github/sds100/keymapper/base/constraints/ChooseConstraintScreen.kt b/base/src/main/java/io/github/sds100/keymapper/base/constraints/ChooseConstraintScreen.kt index fb243994b2..8030e652c6 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/constraints/ChooseConstraintScreen.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/constraints/ChooseConstraintScreen.kt @@ -54,8 +54,7 @@ fun ChooseConstraintScreen(modifier: Modifier = Modifier, viewModel: ChooseConst val state by viewModel.groups.collectAsStateWithLifecycle() val query by viewModel.searchQuery.collectAsStateWithLifecycle() - TimeConstraintBottomSheet(viewModel) - DisplayResolutionConstraintBottomSheet(viewModel) + HandleConstraintBottomSheets(viewModel.createConstraintDelegate) ChooseConstraintScreen( modifier = modifier, @@ -68,6 +67,12 @@ fun ChooseConstraintScreen(modifier: Modifier = Modifier, viewModel: ChooseConst ) } +@Composable +fun HandleConstraintBottomSheets(delegate: CreateConstraintDelegate) { + TimeConstraintBottomSheet(delegate) + DisplayResolutionConstraintBottomSheet(delegate) +} + @OptIn(ExperimentalMaterial3Api::class) @Composable private fun ChooseConstraintScreen( diff --git a/base/src/main/java/io/github/sds100/keymapper/base/constraints/ChooseConstraintViewModel.kt b/base/src/main/java/io/github/sds100/keymapper/base/constraints/ChooseConstraintViewModel.kt index 175a242a40..c61b4be89f 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/constraints/ChooseConstraintViewModel.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/constraints/ChooseConstraintViewModel.kt @@ -2,18 +2,13 @@ package io.github.sds100.keymapper.base.constraints import androidx.compose.material.icons.Icons import androidx.compose.material.icons.outlined.StayCurrentPortrait -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.setValue import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import dagger.hilt.android.lifecycle.HiltViewModel import io.github.sds100.keymapper.base.R import io.github.sds100.keymapper.base.utils.containsQuery import io.github.sds100.keymapper.base.utils.getFullMessage -import io.github.sds100.keymapper.base.utils.navigation.NavDestination import io.github.sds100.keymapper.base.utils.navigation.NavigationProvider -import io.github.sds100.keymapper.base.utils.navigation.navigate import io.github.sds100.keymapper.base.utils.ui.DialogModel import io.github.sds100.keymapper.base.utils.ui.DialogProvider import io.github.sds100.keymapper.base.utils.ui.ResourceProvider @@ -21,19 +16,14 @@ import io.github.sds100.keymapper.base.utils.ui.compose.ComposeIconInfo import io.github.sds100.keymapper.base.utils.ui.compose.SimpleListItemGroup import io.github.sds100.keymapper.base.utils.ui.compose.SimpleListItemModel import io.github.sds100.keymapper.base.utils.ui.showDialog -import io.github.sds100.keymapper.common.utils.Orientation import io.github.sds100.keymapper.common.utils.PhysicalOrientation -import io.github.sds100.keymapper.common.utils.SizeKM import io.github.sds100.keymapper.common.utils.State -import io.github.sds100.keymapper.system.camera.CameraLens -import io.github.sds100.keymapper.system.volume.RingerMode import javax.inject.Inject import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.flow.MutableSharedFlow import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.SharingStarted import kotlinx.coroutines.flow.StateFlow -import kotlinx.coroutines.flow.first +import kotlinx.coroutines.flow.filterNotNull import kotlinx.coroutines.flow.flowOn import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.stateIn @@ -42,7 +32,7 @@ import kotlinx.serialization.json.Json @HiltViewModel class ChooseConstraintViewModel @Inject constructor( - private val useCase: CreateConstraintUseCase, + useCase: CreateConstraintUseCase, dialogProvider: DialogProvider, navigationProvider: NavigationProvider, resourceProvider: ResourceProvider, @@ -73,9 +63,10 @@ class ChooseConstraintViewModel @Inject constructor( ) } - private val returnResult = MutableSharedFlow() + val createConstraintDelegate = + CreateConstraintDelegate(viewModelScope, useCase, this, this, this) - private val allGroupedListItems: List by lazy { buildListGroups() } + private val allGroupedListItems: List by lazy { buildListGroups(useCase) } val searchQuery = MutableStateFlow(null) @@ -95,71 +86,14 @@ class ChooseConstraintViewModel @Inject constructor( State.Data(groups) }.flowOn(Dispatchers.Default).stateIn(viewModelScope, SharingStarted.Eagerly, State.Loading) - var timeConstraintState: ConstraintData.Time? by mutableStateOf(null) - - var displayResolutionState: DisplayResolutionSheetState? by mutableStateOf(null) - private set - init { viewModelScope.launch { - returnResult.collect { constraintData -> + createConstraintDelegate.constraintResult.filterNotNull().collect { constraintData -> popBackStackWithResult(Json.encodeToString(constraintData)) } } } - fun onDoneConfigTimeConstraintClick() { - timeConstraintState?.let { constraintData -> - viewModelScope.launch { - returnResult.emit(constraintData) - timeConstraintState = null - } - } - } - - fun onSelectDisplayResolution(resolution: SizeKM) { - displayResolutionState = displayResolutionState?.copy( - isCustom = false, - selectedResolution = resolution, - ) - } - - fun onSelectCustomDisplayResolution() { - displayResolutionState = displayResolutionState?.copy(isCustom = true) - } - - fun onDisplayResolutionWidthChange(width: String) { - displayResolutionState = displayResolutionState?.copy( - widthText = width.filter(Char::isDigit), - ) - } - - fun onDisplayResolutionHeightChange(height: String) { - displayResolutionState = displayResolutionState?.copy( - heightText = height.filter(Char::isDigit), - ) - } - - fun onDismissDisplayResolution() { - displayResolutionState = null - } - - fun onDoneConfigDisplayResolutionClick() { - val state = displayResolutionState ?: return - - val resolution = state.resolvedResolution ?: return - - viewModelScope.launch { - returnResult.emit( - ConstraintData.DisplayResolution( - width = resolution.width, - height = resolution.height, - ), - ) - displayResolutionState = null - } - } - fun onNavigateBack() { viewModelScope.launch { popBackStack() @@ -181,176 +115,8 @@ class ChooseConstraintViewModel @Inject constructor( } } - when (val constraintType = ConstraintId.valueOf(id)) { - ConstraintId.APP_IN_FOREGROUND, - ConstraintId.APP_PLAYING_MEDIA, - -> onSelectAppConstraint(constraintType) - - ConstraintId.MEDIA_PLAYING -> returnResult.emit(ConstraintData.MediaPlaying) - - ConstraintId.NOTIFICATION_POSTED -> onSelectNotificationConstraint() - - ConstraintId.BT_DEVICE_CONNECTED -> onSelectBluetoothConstraint() - - ConstraintId.SCREEN_ON -> returnResult.emit(ConstraintData.ScreenOn) - - ConstraintId.DISPLAY_RESOLUTION -> { - displayResolutionState = buildDisplayResolutionState() - } - - ConstraintId.DISPLAY_ORIENTATION_PORTRAIT -> - returnResult.emit(ConstraintData.OrientationPortrait) - - ConstraintId.DISPLAY_ORIENTATION_LANDSCAPE -> - returnResult.emit(ConstraintData.OrientationLandscape) - - ConstraintId.DISPLAY_ORIENTATION_0 -> - returnResult.emit( - ConstraintData.OrientationCustom(orientation = Orientation.ORIENTATION_0), - ) - - ConstraintId.DISPLAY_ORIENTATION_90 -> - returnResult.emit( - ConstraintData.OrientationCustom(orientation = Orientation.ORIENTATION_90), - ) - - ConstraintId.DISPLAY_ORIENTATION_180 -> - returnResult.emit( - ConstraintData.OrientationCustom(orientation = Orientation.ORIENTATION_180), - ) - - ConstraintId.DISPLAY_ORIENTATION_270 -> - returnResult.emit( - ConstraintData.OrientationCustom(orientation = Orientation.ORIENTATION_270), - ) - - ConstraintId.PHYSICAL_ORIENTATION_PORTRAIT -> - returnResult.emit( - ConstraintData.PhysicalOrientation( - physicalOrientation = PhysicalOrientation.PORTRAIT, - ), - ) - - ConstraintId.PHYSICAL_ORIENTATION_LANDSCAPE -> - returnResult.emit( - ConstraintData.PhysicalOrientation( - physicalOrientation = PhysicalOrientation.LANDSCAPE, - ), - ) - - ConstraintId.PHYSICAL_ORIENTATION_PORTRAIT_INVERTED -> - returnResult.emit( - ConstraintData.PhysicalOrientation( - physicalOrientation = PhysicalOrientation.PORTRAIT_INVERTED, - ), - ) - - ConstraintId.PHYSICAL_ORIENTATION_LANDSCAPE_INVERTED -> - returnResult.emit( - ConstraintData.PhysicalOrientation( - physicalOrientation = PhysicalOrientation.LANDSCAPE_INVERTED, - ), - ) - - ConstraintId.FLASHLIGHT_ON -> { - val lens = chooseFlashlightLens() ?: return@launch - returnResult.emit(ConstraintData.FlashlightOn(lens = lens)) - } - - ConstraintId.WIFI_ON -> returnResult.emit(ConstraintData.WifiOn) - - ConstraintId.WIFI_CONNECTED -> onSelectWifiConnectedConstraint() - - ConstraintId.IME_CHOSEN -> onSelectImeChosenConstraint() - - ConstraintId.KEYBOARD_SHOWING -> - returnResult.emit(ConstraintData.KeyboardShowing) - - ConstraintId.DEVICE_IS_LOCKED -> - returnResult.emit(ConstraintData.DeviceIsLocked) - - ConstraintId.IN_PHONE_CALL -> - returnResult.emit(ConstraintData.InPhoneCall) - - ConstraintId.NOT_IN_PHONE_CALL -> - returnResult.emit(ConstraintData.NotInPhoneCall) - - ConstraintId.PHONE_RINGING -> - returnResult.emit(ConstraintData.PhoneRinging) - - ConstraintId.RINGER_MODE_NORMAL -> - returnResult.emit(ConstraintData.RingerMode(RingerMode.NORMAL)) - - ConstraintId.RINGER_MODE_VIBRATE -> - returnResult.emit(ConstraintData.RingerMode(RingerMode.VIBRATE)) - - ConstraintId.RINGER_MODE_SILENT -> - returnResult.emit(ConstraintData.RingerMode(RingerMode.SILENT)) - - ConstraintId.CHARGING -> - returnResult.emit(ConstraintData.Charging) - - ConstraintId.HINGE_CLOSED -> - returnResult.emit(ConstraintData.HingeClosed) - - ConstraintId.HINGE_OPEN -> - returnResult.emit(ConstraintData.HingeOpen) - - ConstraintId.LOCK_SCREEN_SHOWING -> - returnResult.emit(ConstraintData.LockScreenShowing) - - ConstraintId.NOTIFICATION_PANEL_SHOWING -> - returnResult.emit(ConstraintData.NotificationPanelShowing) - - ConstraintId.TIME -> { - timeConstraintState = ConstraintData.Time( - startHour = 0, - startMinute = 0, - endHour = 0, - endMinute = 0, - ) - } - } - } - } - - private fun buildDisplayResolutionState(): DisplayResolutionSheetState { - val supportedResolutions = useCase.getSupportedResolutions() - val currentResolution = useCase.getCurrentResolution() - - val matchingResolution = supportedResolutions.firstOrNull { - it.matchesIgnoringOrientation(currentResolution) + createConstraintDelegate.createConstraint(ConstraintId.valueOf(id)) } - - return DisplayResolutionSheetState( - supportedResolutions = supportedResolutions.sortedBy { it.width }, - // Show the text fields immediately when there is nothing meaningful to pick - // from or when the current resolution isn't one of the supported modes. - isCustom = supportedResolutions.size <= 1 || matchingResolution == null, - selectedResolution = matchingResolution ?: supportedResolutions.firstOrNull(), - widthText = currentResolution.width.toString(), - heightText = currentResolution.height.toString(), - ) - } - - private suspend fun chooseFlashlightLens(): CameraLens? { - val items = useCase.getFlashlightLenses().map { lens -> - val label = when (lens) { - CameraLens.FRONT -> R.string.lens_front - CameraLens.BACK -> R.string.lens_back - } - lens to getString(label) - } - - if (items.size == 1) { - return items.first().first - } - - val dialog = DialogModel.SingleChoice(items) - - val cameraLens = showDialog("choose_flashlight_lens", dialog) - - return cameraLens } private suspend fun onSelectDisplayOrientationConstraint() { @@ -372,27 +138,7 @@ class ChooseConstraintViewModel @Inject constructor( val dialog = DialogModel.SingleChoice(items) val selectedOrientation = showDialog("choose_display_orientation", dialog) ?: return - val constraintData = when (selectedOrientation) { - ConstraintId.DISPLAY_ORIENTATION_PORTRAIT -> ConstraintData.OrientationPortrait - - ConstraintId.DISPLAY_ORIENTATION_LANDSCAPE -> ConstraintData.OrientationLandscape - - ConstraintId.DISPLAY_ORIENTATION_0 -> - ConstraintData.OrientationCustom(orientation = Orientation.ORIENTATION_0) - - ConstraintId.DISPLAY_ORIENTATION_90 -> - ConstraintData.OrientationCustom(orientation = Orientation.ORIENTATION_90) - - ConstraintId.DISPLAY_ORIENTATION_180 -> - ConstraintData.OrientationCustom(orientation = Orientation.ORIENTATION_180) - - ConstraintId.DISPLAY_ORIENTATION_270 -> - ConstraintData.OrientationCustom(orientation = Orientation.ORIENTATION_270) - - else -> return - } - - returnResult.emit(constraintData) + createConstraintDelegate.createConstraint(selectedOrientation) } private suspend fun onSelectPhysicalOrientationConstraint() { @@ -410,254 +156,110 @@ class ChooseConstraintViewModel @Inject constructor( val dialog = DialogModel.SingleChoice(items) val selectedOrientation = showDialog("choose_physical_orientation", dialog) ?: return - returnResult.emit( - ConstraintData.PhysicalOrientation(physicalOrientation = selectedOrientation), - ) - } - - private fun buildListGroups(): List = buildList { - // Filter out individual orientation constraints - show only the consolidated ones - val filteredConstraints = ConstraintId.entries.filter { constraintId -> - constraintId !in listOf( - ConstraintId.DISPLAY_ORIENTATION_PORTRAIT, - ConstraintId.DISPLAY_ORIENTATION_LANDSCAPE, - ConstraintId.DISPLAY_ORIENTATION_0, - ConstraintId.DISPLAY_ORIENTATION_90, - ConstraintId.DISPLAY_ORIENTATION_180, - ConstraintId.DISPLAY_ORIENTATION_270, - ConstraintId.PHYSICAL_ORIENTATION_PORTRAIT, - ConstraintId.PHYSICAL_ORIENTATION_LANDSCAPE, - ConstraintId.PHYSICAL_ORIENTATION_PORTRAIT_INVERTED, - ConstraintId.PHYSICAL_ORIENTATION_LANDSCAPE_INVERTED, - ) + val constraintId = when (selectedOrientation) { + PhysicalOrientation.PORTRAIT -> ConstraintId.PHYSICAL_ORIENTATION_PORTRAIT + PhysicalOrientation.LANDSCAPE -> ConstraintId.PHYSICAL_ORIENTATION_LANDSCAPE + PhysicalOrientation.PORTRAIT_INVERTED -> + ConstraintId.PHYSICAL_ORIENTATION_PORTRAIT_INVERTED + PhysicalOrientation.LANDSCAPE_INVERTED -> + ConstraintId.PHYSICAL_ORIENTATION_LANDSCAPE_INVERTED } - val listItems = buildListItems(filteredConstraints) - - // Add synthetic orientation list items - val displayOrientationItem = SimpleListItemModel( - id = DISPLAY_ORIENTATION_LIST_ITEM_ID, - title = getString(R.string.constraint_choose_screen_orientation), - icon = ComposeIconInfo.Vector(Icons.Outlined.StayCurrentPortrait), - isEnabled = true, - ) - - val physicalOrientationItem = SimpleListItemModel( - id = PHYSICAL_ORIENTATION_LIST_ITEM_ID, - title = getString(R.string.constraint_choose_physical_orientation), - icon = ComposeIconInfo.Vector(Icons.Outlined.StayCurrentPortrait), - isEnabled = true, - ) - - for (category in CATEGORY_ORDER) { - val header = getString(ConstraintUtils.getCategoryLabel(category)) - - val categoryItems = listItems.filter { item -> - item.isEnabled && - try { - ConstraintUtils.getCategory(ConstraintId.valueOf(item.id)) == category - } catch (e: IllegalArgumentException) { - false - } - }.toMutableList() - - // Add synthetic orientation items to DISPLAY category - if (category == ConstraintCategory.DISPLAY) { - categoryItems.add(displayOrientationItem) - categoryItems.add(physicalOrientationItem) - } - - val group = SimpleListItemGroup( - header, - items = categoryItems, - ) - - if (group.items.isNotEmpty()) { - add(group) - } - } - - val unsupportedItems = listItems.filter { !it.isEnabled } - if (unsupportedItems.isNotEmpty()) { - val unsupportedGroup = SimpleListItemGroup( - header = getString(R.string.choose_constraint_group_unsupported), - items = unsupportedItems, - ) - add(unsupportedGroup) - } + createConstraintDelegate.createConstraint(constraintId) } - private fun buildListItems(constraintIds: List): List = + private fun buildListGroups(useCase: CreateConstraintUseCase): List = buildList { - for (constraintId in constraintIds) { - val title = getString(ConstraintUtils.getTitleStringId(constraintId)) - val icon = ConstraintUtils.getIcon(constraintId) - val error = useCase.isSupported(constraintId) - - val listItem = SimpleListItemModel( - id = constraintId.toString(), - title = title, - icon = icon, - subtitle = error?.getFullMessage(this@ChooseConstraintViewModel), - isSubtitleError = true, - isEnabled = error == null, + // Filter out individual orientation constraints - show only the consolidated ones + val filteredConstraints = ConstraintId.entries.filter { constraintId -> + constraintId !in listOf( + ConstraintId.DISPLAY_ORIENTATION_PORTRAIT, + ConstraintId.DISPLAY_ORIENTATION_LANDSCAPE, + ConstraintId.DISPLAY_ORIENTATION_0, + ConstraintId.DISPLAY_ORIENTATION_90, + ConstraintId.DISPLAY_ORIENTATION_180, + ConstraintId.DISPLAY_ORIENTATION_270, + ConstraintId.PHYSICAL_ORIENTATION_PORTRAIT, + ConstraintId.PHYSICAL_ORIENTATION_LANDSCAPE, + ConstraintId.PHYSICAL_ORIENTATION_PORTRAIT_INVERTED, + ConstraintId.PHYSICAL_ORIENTATION_LANDSCAPE_INVERTED, ) - - add(listItem) } - } - - private suspend fun onSelectWifiConnectedConstraint() { - val knownSSIDs: List = useCase.getKnownWiFiSSIDs() - - val chosenSSID: String? - - val savedWifiSSIDs: List = useCase.getSavedWifiSSIDs().first() - - val ssidEntries = buildList { - addAll(savedWifiSSIDs) - addAll(knownSSIDs) - }.distinct() - - val dialog = DialogModel.Text( - hint = getString(R.string.hint_wifi_ssid), - allowEmpty = true, - message = getString(R.string.constraint_wifi_message_cant_list_networks), - autoCompleteEntries = ssidEntries, - ) - - val ssidText = showDialog("type_ssid", dialog) ?: return - if (ssidText.isBlank()) { - chosenSSID = null - } else { - chosenSSID = ssidText + val listItems = buildListItems(useCase, filteredConstraints) - useCase.saveWifiSSID(chosenSSID) - } - - returnResult.emit(ConstraintData.WifiConnected(ssid = chosenSSID)) - } - - private suspend fun onSelectImeChosenConstraint() { - val inputMethods = useCase.getEnabledInputMethods() - val items = inputMethods.map { it.id to it.label } - val dialog = DialogModel.SingleChoice(items = items) - - val result = showDialog("choose_input_method", dialog) ?: return - - val imeInfo = inputMethods.single { it.id == result } - - returnResult.emit( - ConstraintData.ImeChosen( - imeId = imeInfo.id, - imeLabel = imeInfo.label, - ), - ) - } - - private suspend fun onSelectBluetoothConstraint() { - val response = showDialog( - "bluetooth_device_constraint_limitation", - DialogModel.Ok(getString(R.string.dialog_message_bt_constraint_limitation)), - ) - - response ?: return - - val device = navigate( - "choose_bluetooth_device_for_constraint", - NavDestination.ChooseBluetoothDevice, - ) ?: return - - returnResult.emit( - ConstraintData.BtDeviceConnected( - bluetoothAddress = device.address, - deviceName = device.name, - ), - ) - } - - private suspend fun onSelectNotificationConstraint() { - val constraintData = navigate( - "config_notification_constraint", - NavDestination.ConfigNotificationConstraint, - ) ?: return - - returnResult.emit(constraintData) - } - - private suspend fun onSelectAppConstraint(type: ConstraintId) { - val result = - navigate( - "choose_package_for_constraint", - NavDestination.ChooseApp(allowHiddenApps = true), + // Add synthetic orientation list items + val displayOrientationItem = SimpleListItemModel( + id = DISPLAY_ORIENTATION_LIST_ITEM_ID, + title = getString(R.string.constraint_choose_screen_orientation), + icon = ComposeIconInfo.Vector(Icons.Outlined.StayCurrentPortrait), + isEnabled = true, ) - ?: return - val constraintData = when (type) { - ConstraintId.APP_IN_FOREGROUND -> ConstraintData.AppInForeground( - packageName = result.packageName, - appName = result.appName, + val physicalOrientationItem = SimpleListItemModel( + id = PHYSICAL_ORIENTATION_LIST_ITEM_ID, + title = getString(R.string.constraint_choose_physical_orientation), + icon = ComposeIconInfo.Vector(Icons.Outlined.StayCurrentPortrait), + isEnabled = true, ) - ConstraintId.APP_PLAYING_MEDIA -> ConstraintData.AppPlayingMedia( - packageName = result.packageName, - appName = result.appName, - ) + for (category in CATEGORY_ORDER) { + val header = getString(ConstraintUtils.getCategoryLabel(category)) + + val categoryItems = listItems.filter { item -> + item.isEnabled && + try { + ConstraintUtils.getCategory(ConstraintId.valueOf(item.id)) == category + } catch (e: IllegalArgumentException) { + false + } + }.toMutableList() + + // Add synthetic orientation items to DISPLAY category + if (category == ConstraintCategory.DISPLAY) { + categoryItems.add(displayOrientationItem) + categoryItems.add(physicalOrientationItem) + } - else -> throw IllegalArgumentException( - "Don't know how to create $type constraint after choosing app", - ) - } + val group = SimpleListItemGroup( + header, + items = categoryItems, + ) - returnResult.emit(constraintData) - } -} + if (group.items.isNotEmpty()) { + add(group) + } + } -/** - * State for the display resolution bottom sheet. - * - * @param supportedResolutions the resolutions the display reports as supported. - * @param isCustom whether the user is entering a custom resolution instead of picking a chip. - * @param selectedResolution the currently selected supported resolution, if any. - * @param widthText the custom width input. - * @param heightText the custom height input. - */ -data class DisplayResolutionSheetState( - val supportedResolutions: List, - val isCustom: Boolean, - val selectedResolution: SizeKM?, - val widthText: String, - val heightText: String, -) { - private val customWidth: Int? get() = widthText.toIntOrNull() - private val customHeight: Int? get() = heightText.toIntOrNull() - - /** - * The resolution that will be saved, or null when the current input is not valid. - */ - val resolvedResolution: SizeKM? - get() = if (isCustom) { - val width = customWidth - val height = customHeight - - if (width != null && width > 0 && height != null && height > 0) { - SizeKM(width, height) - } else { - null + val unsupportedItems = listItems.filter { !it.isEnabled } + if (unsupportedItems.isNotEmpty()) { + val unsupportedGroup = SimpleListItemGroup( + header = getString(R.string.choose_constraint_group_unsupported), + items = unsupportedItems, + ) + add(unsupportedGroup) } - } else { - selectedResolution } - val isValid: Boolean get() = resolvedResolution != null -} + private fun buildListItems( + useCase: CreateConstraintUseCase, + constraintIds: List, + ): List = buildList { + for (constraintId in constraintIds) { + val title = getString(ConstraintUtils.getTitleStringId(constraintId)) + val icon = ConstraintUtils.getIcon(constraintId) + val error = useCase.isSupported(constraintId) + + val listItem = SimpleListItemModel( + id = constraintId.toString(), + title = title, + icon = icon, + subtitle = error?.getFullMessage(this@ChooseConstraintViewModel), + isSubtitleError = true, + isEnabled = error == null, + ) -/** - * Compares two resolutions ignoring orientation so that e.g. 1080x1920 and 1920x1080 - * are treated as the same resolution. - */ -private fun SizeKM.matchesIgnoringOrientation(other: SizeKM): Boolean { - return (width == other.width && height == other.height) || - (width == other.height && height == other.width) + add(listItem) + } + } } diff --git a/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConfigConstraintsUseCase.kt b/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConfigConstraintsUseCase.kt index c687b32380..d8aa27ee4f 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConfigConstraintsUseCase.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConfigConstraintsUseCase.kt @@ -108,6 +108,24 @@ class ConfigConstraintsUseCaseImpl @Inject constructor( } } + override fun setConstraintData(uid: String, data: ConstraintData) { + updateConstraintState { oldState -> + val groups = oldState.groups.map { group -> + val constraints = group.constraints.map { constraint -> + if (constraint.uid == uid) { + constraint.copy(data = data) + } else { + constraint + } + } + + group.copy(constraints = constraints) + } + + oldState.copy(groups = groups) + } + } + override fun removeConstraint(uid: String) { updateConstraintState { oldState -> val groups = oldState.groups @@ -231,6 +249,7 @@ interface ConfigConstraintsUseCase { * group), or null if the group already contains the constraint (a duplicate). */ fun addConstraint(groupUid: String?, constraintData: ConstraintData): ConstraintGroup? + fun setConstraintData(uid: String, data: ConstraintData) fun removeConstraint(uid: String) fun removeGroup(groupUid: String) fun toggleNot(constraintUid: String) diff --git a/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConfigConstraintsViewModel.kt b/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConfigConstraintsViewModel.kt index d0fa71f44f..369b3c4499 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConfigConstraintsViewModel.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConfigConstraintsViewModel.kt @@ -41,6 +41,7 @@ import kotlinx.coroutines.launch class ConfigConstraintsViewModel @Inject constructor( private val config: ConfigConstraintsUseCase, private val displayConstraint: DisplayConstraintUseCase, + createConstraint: CreateConstraintUseCase, resourceProvider: ResourceProvider, navigationProvider: NavigationProvider, dialogProvider: DialogProvider, @@ -51,6 +52,11 @@ class ConfigConstraintsViewModel @Inject constructor( private val uiHelper = ConstraintUiHelper(displayConstraint, resourceProvider) + val createConstraintDelegate = + CreateConstraintDelegate(viewModelScope, createConstraint, this, this, this) + + private var editedConstraintUid: String? = null + private val _state: MutableStateFlow> = MutableStateFlow(State.Loading) val state = _state.asStateFlow() @@ -75,6 +81,13 @@ class ConfigConstraintsViewModel @Inject constructor( private val knownGroupUids: MutableSet = mutableSetOf() init { + viewModelScope.launch { + createConstraintDelegate.constraintResult.filterNotNull().collect { data -> + val uid = editedConstraintUid ?: return@collect + config.setConstraintData(uid, data) + } + } + viewModelScope.launch { config.keyMap .map { state -> state.dataOrNull()?.constraintState?.groups } @@ -122,6 +135,21 @@ class ConfigConstraintsViewModel @Inject constructor( } } + fun onEditClick(constraintUid: String) { + viewModelScope.launch { + val constraint = config.keyMap + .firstOrNull() + ?.dataOrNull() + ?.constraintState + ?.allConstraints + ?.find { it.uid == constraintUid } + ?: return@launch + + editedConstraintUid = constraintUid + createConstraintDelegate.editConstraint(constraint.data) + } + } + fun onRemoveClick(id: String) = config.removeConstraint(id) fun onRemoveGroupClick(groupUid: String) = config.removeGroup(groupUid) @@ -235,6 +263,7 @@ class ConfigConstraintsViewModel @Inject constructor( icon = uiHelper.getIcon(constraint), text = uiHelper.getTitle(constraint), isNot = constraint.isNot, + isEditable = constraint.data.isEditable(), error = error?.getFullMessage(this), isErrorFixable = error?.isFixable ?: true, ) diff --git a/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConfigNotificationConstraintViewModel.kt b/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConfigNotificationConstraintViewModel.kt index 46fe472911..da341a10ba 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConfigNotificationConstraintViewModel.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConfigNotificationConstraintViewModel.kt @@ -52,6 +52,29 @@ class ConfigNotificationConstraintViewModel @Inject constructor( null } + fun loadOldData(old: ConstraintData.NotificationPosted) { + isEditing = true + + when (old) { + is ConstraintData.NotificationPosted.FromApp -> { + selectedField = NotificationField.PACKAGE + value = old.packageName + } + + is ConstraintData.NotificationPosted.Title -> { + selectedField = NotificationField.TITLE + matchMode = old.matchMode + value = old.text + } + + is ConstraintData.NotificationPosted.Text -> { + selectedField = NotificationField.TEXT + matchMode = old.matchMode + value = old.text + } + } + } + fun onSelectField(field: NotificationField) { selectedField = field diff --git a/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintGroupItem.kt b/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintGroupItem.kt index 2c72ecc45a..47eb2a9fe5 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintGroupItem.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintGroupItem.kt @@ -112,6 +112,7 @@ fun ConstraintGroupItem( onRemoveConstraintClick: (String) -> Unit = {}, onFixConstraintClick: (String) -> Unit = {}, onNotClick: (String) -> Unit = {}, + onEditConstraintClick: (String) -> Unit = {}, onMoveUp: (() -> Unit)? = null, onMoveDown: (() -> Unit)? = null, ) { @@ -178,6 +179,7 @@ fun ConstraintGroupItem( onRemoveConstraintClick = onRemoveConstraintClick, onFixConstraintClick = onFixConstraintClick, onNotClick = onNotClick, + onEditConstraintClick = onEditConstraintClick, ) }, ) @@ -247,6 +249,7 @@ private fun ExpandedContent( onRemoveConstraintClick: (String) -> Unit, onFixConstraintClick: (String) -> Unit, onNotClick: (String) -> Unit, + onEditConstraintClick: (String) -> Unit, ) { Column(modifier) { Text( @@ -273,6 +276,7 @@ private fun ExpandedContent( onRemoveConstraintClick = onRemoveConstraintClick, onFixConstraintClick = onFixConstraintClick, onNotClick = onNotClick, + onEditConstraintClick = onEditConstraintClick, ) Spacer(Modifier.size(8.dp)) @@ -339,6 +343,7 @@ private fun GroupConstraintList( onRemoveConstraintClick: (String) -> Unit, onFixConstraintClick: (String) -> Unit, onNotClick: (String) -> Unit, + onEditConstraintClick: (String) -> Unit, ) { val linkText = when (mode) { ConstraintMode.AND -> stringResource(R.string.constraint_mode_and) @@ -354,6 +359,7 @@ private fun GroupConstraintList( onRemoveClick = { onRemoveConstraintClick(constraint.id) }, onFixClick = { onFixConstraintClick(constraint.id) }, onNotClick = { onNotClick(constraint.id) }, + onEditClick = { onEditConstraintClick(constraint.id) }, ) if (index < constraints.lastIndex) { @@ -385,6 +391,7 @@ private val previewConstraints = listOf( id = "2", icon = ComposeIconInfo.Vector(Icons.Outlined.Wifi), text = "Wi-Fi is on", + isEditable = true, ), ) diff --git a/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintListItem.kt b/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintListItem.kt index 0af2d36e3e..55d3629d56 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintListItem.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintListItem.kt @@ -1,6 +1,8 @@ package io.github.sds100.keymapper.base.constraints import androidx.compose.foundation.BorderStroke +import androidx.compose.foundation.horizontalScroll +import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.BoxWithConstraints import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer @@ -9,12 +11,15 @@ import androidx.compose.foundation.layout.heightIn import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width +import androidx.compose.foundation.layout.widthIn +import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.selection.toggleable import androidx.compose.material.icons.Icons import androidx.compose.material.icons.outlined.ClearAll import androidx.compose.material.icons.outlined.FlashlightOn import androidx.compose.material.icons.rounded.Clear import androidx.compose.material.icons.rounded.Error +import androidx.compose.material.icons.rounded.Settings import androidx.compose.material3.ButtonDefaults import androidx.compose.material3.CardDefaults import androidx.compose.material3.ElevatedCard @@ -26,6 +31,7 @@ import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider +import androidx.compose.runtime.LaunchedEffect import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color @@ -42,10 +48,11 @@ import androidx.compose.ui.unit.dp import com.google.accompanist.drawablepainter.rememberDrawablePainter import io.github.sds100.keymapper.base.R import io.github.sds100.keymapper.base.compose.KeyMapperTheme -import io.github.sds100.keymapper.base.utils.ui.compose.CompactErrorButton import io.github.sds100.keymapper.base.utils.ui.compose.CompactFilledTonalButton import io.github.sds100.keymapper.base.utils.ui.compose.CompactOutlinedButton import io.github.sds100.keymapper.base.utils.ui.compose.ComposeIconInfo +import io.github.sds100.keymapper.base.utils.ui.compose.ShrinkWrapText +import io.github.sds100.keymapper.base.utils.ui.compose.horizontalFadingEdges import io.github.sds100.keymapper.base.utils.ui.drawable @Composable @@ -56,6 +63,7 @@ fun ConstraintListItem( onRemoveClick: () -> Unit = {}, onFixClick: () -> Unit = {}, onNotClick: () -> Unit = {}, + onEditClick: () -> Unit = {}, ) { ElevatedCard( modifier = modifier, @@ -69,141 +77,120 @@ fun ConstraintListItem( CardDefaults.elevatedCardElevation() }, ) { - val listItemModifier = Modifier - .fillMaxWidth() - .heightIn(min = 48.dp) - .padding(vertical = 4.dp) - - BoxWithConstraints { - when { - maxWidth < 400.dp -> { - ConstraintListItemMedium( - modifier = listItemModifier, - model = model, - onFixClick = onFixClick, - onNotClick = onNotClick, - onRemoveClick = onRemoveClick, - ) - } - - else -> { - ConstraintListItemLarge( - modifier = listItemModifier, - model = model, - onFixClick = onFixClick, - onNotClick = onNotClick, - onRemoveClick = onRemoveClick, - ) - } - } - } + ConstraintListItemContent( + modifier = Modifier + .fillMaxWidth() + .heightIn(min = 48.dp) + .padding(vertical = 4.dp), + model = model, + onFixClick = onFixClick, + onNotClick = onNotClick, + onRemoveClick = onRemoveClick, + onEditClick = onEditClick, + ) } } @Composable -private fun ConstraintListItemLarge( +private fun ConstraintListItemContent( modifier: Modifier = Modifier, model: ConstraintListItemModel, onFixClick: () -> Unit, onNotClick: () -> Unit, onRemoveClick: () -> Unit, + onEditClick: () -> Unit, ) { - Row( - modifier = modifier, - verticalAlignment = Alignment.CenterVertically, - ) { - Spacer(Modifier.width(8.dp)) + BoxWithConstraints { + Row( + modifier = modifier, + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.SpaceBetween, + ) { + Row( + modifier = Modifier.widthIn(max = this@BoxWithConstraints.maxWidth / 2), + verticalAlignment = Alignment.CenterVertically, + ) { + Spacer(Modifier.width(8.dp)) - ConstraintIcon(icon = model.icon) + if (this@BoxWithConstraints.maxWidth > 350.dp) { + ConstraintIcon(icon = model.icon) - Spacer(Modifier.width(8.dp)) + Spacer(Modifier.width(8.dp)) + } - Text( - modifier = Modifier.weight(1f), - text = model.text, - style = MaterialTheme.typography.bodyMedium, - maxLines = 2, - overflow = TextOverflow.Ellipsis, - ) + ShrinkWrapText( + text = model.text, + style = MaterialTheme.typography.bodyMedium, + maxLines = 2, + overflow = TextOverflow.Ellipsis, + ) - if (model.error != null && model.isErrorFixable) { - CompactErrorButton(onClick = onFixClick) { - Text(stringResource(R.string.button_fix)) + Spacer(Modifier.width(8.dp)) } - } - Spacer(Modifier.width(8.dp)) + val scrollState = rememberScrollState() - NotToggle(isNot = model.isNot, onClick = onNotClick) - - CompositionLocalProvider( - LocalMinimumInteractiveComponentSize provides 16.dp, - ) { - IconButton(onClick = onRemoveClick) { - Icon( - modifier = Modifier.size(24.dp), - imageVector = Icons.Rounded.Clear, - contentDescription = stringResource(R.string.constraint_list_item_remove), - ) + // Scroll to the end initially so the delete button is always visible without + // needing to scroll. + LaunchedEffect(Unit) { + scrollState.scrollTo(scrollState.maxValue) } - } - } -} - -@Composable -private fun ConstraintListItemMedium( - modifier: Modifier = Modifier, - model: ConstraintListItemModel, - onFixClick: () -> Unit, - onNotClick: () -> Unit, - onRemoveClick: () -> Unit, -) { - Row( - modifier = modifier, - verticalAlignment = Alignment.CenterVertically, - ) { - Spacer(Modifier.width(8.dp)) - ConstraintIcon(icon = model.icon) + Row( + modifier = Modifier + .horizontalFadingEdges(scrollState) + .horizontalScroll(scrollState), + verticalAlignment = Alignment.CenterVertically, + ) { + CompositionLocalProvider( + LocalMinimumInteractiveComponentSize provides 16.dp, + ) { + if (model.error != null && model.isErrorFixable) { + IconButton( + modifier = Modifier.size(24.dp), + onClick = onFixClick, + colors = IconButtonDefaults.iconButtonColors( + contentColor = MaterialTheme.colorScheme.error, + ), + ) { + Icon( + modifier = Modifier.size(24.dp), + imageVector = Icons.Rounded.Error, + contentDescription = stringResource( + R.string.constraint_list_item_remove, + ), + ) + } - Spacer(Modifier.width(8.dp)) + Spacer(Modifier.width(8.dp)) + } - Text( - modifier = Modifier.weight(1f), - text = model.text, - style = MaterialTheme.typography.bodyMedium, - maxLines = 2, - overflow = TextOverflow.Ellipsis, - ) - - CompositionLocalProvider( - LocalMinimumInteractiveComponentSize provides 16.dp, - ) { - if (model.error != null && model.isErrorFixable) { - IconButton( - modifier = Modifier.size(24.dp), - onClick = onFixClick, - colors = IconButtonDefaults.iconButtonColors( - contentColor = MaterialTheme.colorScheme.error, - ), - ) { - Icon( - imageVector = Icons.Rounded.Error, - contentDescription = stringResource(R.string.button_fix), - ) - } - } + NotToggle(isNot = model.isNot, onClick = onNotClick) - Spacer(Modifier.width(8.dp)) + if (model.isEditable) { + Spacer(Modifier.width(8.dp)) - NotToggle(isNot = model.isNot, onClick = onNotClick) + IconButton(onClick = onEditClick) { + Icon( + modifier = Modifier.size(24.dp), + imageVector = Icons.Rounded.Settings, + contentDescription = stringResource( + R.string.constraint_list_item_edit, + ), + ) + } + } - IconButton(onClick = onRemoveClick) { - Icon( - modifier = Modifier.size(24.dp), - imageVector = Icons.Rounded.Clear, - contentDescription = stringResource(R.string.constraint_list_item_remove), - ) + IconButton(onClick = onRemoveClick) { + Icon( + modifier = Modifier.size(24.dp), + imageVector = Icons.Rounded.Clear, + contentDescription = stringResource( + R.string.constraint_list_item_remove, + ), + ) + } + } } } } @@ -273,6 +260,7 @@ private fun VectorPreview() { id = "id", icon = ComposeIconInfo.Vector(Icons.Outlined.ClearAll), text = "Clear all", + isEditable = true, ), ) } @@ -287,10 +275,11 @@ private fun NotErrorPreview() { model = ConstraintListItemModel( id = "id", icon = ComposeIconInfo.Vector(Icons.Outlined.FlashlightOn), - text = "Flashlight is on", + text = "Flashlight is on (very very long text)", isNot = true, error = "Permission need to control camera", isErrorFixable = true, + isEditable = true, ), ) } @@ -307,6 +296,7 @@ private fun DrawablePreview() { id = "id", text = "Key Mapper is in foreground", icon = ComposeIconInfo.Drawable(drawable), + isEditable = true, ), ) } diff --git a/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintListItemModel.kt b/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintListItemModel.kt index 0285a23587..20fd2fed21 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintListItemModel.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintListItemModel.kt @@ -7,6 +7,7 @@ data class ConstraintListItemModel( val icon: ComposeIconInfo, val text: String, val isNot: Boolean = false, + val isEditable: Boolean = false, val error: String? = null, val isErrorFixable: Boolean = true, ) diff --git a/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintUtils.kt b/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintUtils.kt index dc42af5605..702b65b66f 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintUtils.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintUtils.kt @@ -388,3 +388,20 @@ object ConstraintUtils { } } } + +fun ConstraintData.isEditable(): Boolean = when (this) { + is ConstraintData.AppInForeground, + is ConstraintData.AppPlayingMedia, + is ConstraintData.BtDeviceConnected, + is ConstraintData.OrientationCustom, + is ConstraintData.PhysicalOrientation, + is ConstraintData.DisplayResolution, + is ConstraintData.FlashlightOn, + is ConstraintData.WifiConnected, + is ConstraintData.ImeChosen, + is ConstraintData.NotificationPosted, + is ConstraintData.Time, + -> true + + else -> false +} diff --git a/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintsScreen.kt b/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintsScreen.kt index ffe841aba1..1a09375ddf 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintsScreen.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintsScreen.kt @@ -65,6 +65,8 @@ fun ConstraintsScreen( ) { val state by viewModel.state.collectAsStateWithLifecycle() + HandleConstraintBottomSheets(viewModel.createConstraintDelegate) + if (viewModel.showDuplicateConstraintsSnackbar) { val message = stringResource(R.string.error_duplicate_constraint) @@ -82,6 +84,7 @@ fun ConstraintsScreen( onRemoveClick = viewModel::onRemoveClick, onRemoveGroupClick = viewModel::onRemoveGroupClick, onNotClick = viewModel::onNotClick, + onEditClick = viewModel::onEditClick, onFixErrorClick = viewModel::onFixError, onClickShortcut = viewModel::onClickShortcut, onSelectMode = viewModel::onSelectMode, @@ -101,6 +104,7 @@ private fun ConstraintsScreen( onRemoveClick: (String) -> Unit = {}, onRemoveGroupClick: (String) -> Unit = {}, onNotClick: (String) -> Unit = {}, + onEditClick: (String) -> Unit = {}, onFixErrorClick: (String) -> Unit = {}, onClickShortcut: (ConstraintData) -> Unit = {}, onSelectMode: (ConstraintMode) -> Unit = {}, @@ -231,6 +235,7 @@ private fun ConstraintsScreen( onRemoveClick = { constraintToDelete = it }, onRemoveGroupClick = { groupToDelete = it }, onNotClick = onNotClick, + onEditClick = onEditClick, onFixErrorClick = onFixErrorClick, onClickShortcut = onClickShortcut, onSelectGroupMode = onSelectGroupMode, @@ -294,6 +299,7 @@ private fun ConstraintGroupList( onRemoveClick: (String) -> Unit, onRemoveGroupClick: (String) -> Unit, onNotClick: (String) -> Unit, + onEditClick: (String) -> Unit, onFixErrorClick: (String) -> Unit, onClickShortcut: (ConstraintData) -> Unit, onSelectGroupMode: (String, ConstraintMode) -> Unit, @@ -362,6 +368,7 @@ private fun ConstraintGroupList( onRemoveConstraintClick = onRemoveClick, onFixConstraintClick = onFixErrorClick, onNotClick = onNotClick, + onEditConstraintClick = onEditClick, onMoveUp = if (index > 0) { { onMoveGroup(index, index - 1) } } else { diff --git a/base/src/main/java/io/github/sds100/keymapper/base/constraints/CreateConstraintDelegate.kt b/base/src/main/java/io/github/sds100/keymapper/base/constraints/CreateConstraintDelegate.kt new file mode 100644 index 0000000000..25784bd630 --- /dev/null +++ b/base/src/main/java/io/github/sds100/keymapper/base/constraints/CreateConstraintDelegate.kt @@ -0,0 +1,410 @@ +package io.github.sds100.keymapper.base.constraints + +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.setValue +import io.github.sds100.keymapper.base.R +import io.github.sds100.keymapper.base.utils.navigation.NavDestination +import io.github.sds100.keymapper.base.utils.navigation.NavigationProvider +import io.github.sds100.keymapper.base.utils.navigation.navigate +import io.github.sds100.keymapper.base.utils.ui.DialogModel +import io.github.sds100.keymapper.base.utils.ui.DialogProvider +import io.github.sds100.keymapper.base.utils.ui.ResourceProvider +import io.github.sds100.keymapper.base.utils.ui.showDialog +import io.github.sds100.keymapper.common.utils.Orientation +import io.github.sds100.keymapper.common.utils.PhysicalOrientation +import io.github.sds100.keymapper.common.utils.SizeKM +import io.github.sds100.keymapper.system.camera.CameraLens +import io.github.sds100.keymapper.system.volume.RingerMode +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.first +import kotlinx.coroutines.flow.update +import kotlinx.serialization.json.Json + +/** + * Holds all of the logic to create or edit a [ConstraintData], analogous to + * [io.github.sds100.keymapper.base.actions.CreateActionDelegate] for actions. + */ +class CreateConstraintDelegate( + private val coroutineScope: CoroutineScope, + private val useCase: CreateConstraintUseCase, + dialogProvider: DialogProvider, + navigationProvider: NavigationProvider, + resourceProvider: ResourceProvider, +) : ResourceProvider by resourceProvider, + DialogProvider by dialogProvider, + NavigationProvider by navigationProvider { + + val constraintResult: MutableStateFlow = MutableStateFlow(null) + + var timeConstraintState: ConstraintData.Time? by mutableStateOf(null) + + var displayResolutionState: DisplayResolutionSheetState? by mutableStateOf(null) + private set + + fun onSelectDisplayResolution(resolution: SizeKM) { + displayResolutionState = displayResolutionState?.copy( + isCustom = false, + selectedResolution = resolution, + ) + } + + fun onSelectCustomDisplayResolution() { + displayResolutionState = displayResolutionState?.copy(isCustom = true) + } + + fun onDisplayResolutionWidthChange(width: String) { + displayResolutionState = displayResolutionState?.copy( + widthText = width.filter(Char::isDigit), + ) + } + + fun onDisplayResolutionHeightChange(height: String) { + displayResolutionState = displayResolutionState?.copy( + heightText = height.filter(Char::isDigit), + ) + } + + fun onDismissDisplayResolution() { + displayResolutionState = null + } + + fun onDoneConfigDisplayResolutionClick() { + val state = displayResolutionState ?: return + val resolution = state.resolvedResolution ?: return + + displayResolutionState = null + constraintResult.update { + ConstraintData.DisplayResolution(width = resolution.width, height = resolution.height) + } + } + + fun onDoneConfigTimeConstraintClick() { + timeConstraintState?.let { constraintData -> + timeConstraintState = null + constraintResult.update { constraintData } + } + } + + /** + * @return the newly created [ConstraintData], or null if the user cancelled. + */ + suspend fun createConstraint(id: ConstraintId) { + configConstraint(id)?.let { data -> constraintResult.update { data } } + } + + /** + * @param oldData the constraint being edited. Its [ConstraintId] determines which picker is + * shown, pre-filled with the values from [oldData]. + */ + suspend fun editConstraint(oldData: ConstraintData) { + if (!oldData.isEditable()) { + throw IllegalArgumentException( + "This constraint ${oldData.javaClass.name} can't be edited!", + ) + } + + configConstraint(oldData.id, oldData)?.let { data -> constraintResult.update { data } } + } + + private suspend fun configConstraint( + constraintId: ConstraintId, + oldData: ConstraintData? = null, + ): ConstraintData? { + when (constraintId) { + ConstraintId.APP_IN_FOREGROUND, + ConstraintId.APP_PLAYING_MEDIA, + -> return onSelectAppConstraint(constraintId) + + ConstraintId.MEDIA_PLAYING -> return ConstraintData.MediaPlaying + + ConstraintId.NOTIFICATION_POSTED -> + return onSelectNotificationConstraint(oldData as? ConstraintData.NotificationPosted) + + ConstraintId.BT_DEVICE_CONNECTED -> return onSelectBluetoothConstraint() + + ConstraintId.SCREEN_ON -> return ConstraintData.ScreenOn + + ConstraintId.DISPLAY_RESOLUTION -> { + val oldResolution = oldData as? ConstraintData.DisplayResolution + displayResolutionState = buildDisplayResolutionState(oldResolution) + return null + } + + ConstraintId.DISPLAY_ORIENTATION_PORTRAIT -> return ConstraintData.OrientationPortrait + + ConstraintId.DISPLAY_ORIENTATION_LANDSCAPE -> return ConstraintData.OrientationLandscape + + ConstraintId.DISPLAY_ORIENTATION_0 -> + return ConstraintData.OrientationCustom(orientation = Orientation.ORIENTATION_0) + + ConstraintId.DISPLAY_ORIENTATION_90 -> + return ConstraintData.OrientationCustom(orientation = Orientation.ORIENTATION_90) + + ConstraintId.DISPLAY_ORIENTATION_180 -> + return ConstraintData.OrientationCustom(orientation = Orientation.ORIENTATION_180) + + ConstraintId.DISPLAY_ORIENTATION_270 -> + return ConstraintData.OrientationCustom(orientation = Orientation.ORIENTATION_270) + + ConstraintId.PHYSICAL_ORIENTATION_PORTRAIT -> + return ConstraintData.PhysicalOrientation( + physicalOrientation = PhysicalOrientation.PORTRAIT, + ) + + ConstraintId.PHYSICAL_ORIENTATION_LANDSCAPE -> + return ConstraintData.PhysicalOrientation( + physicalOrientation = PhysicalOrientation.LANDSCAPE, + ) + + ConstraintId.PHYSICAL_ORIENTATION_PORTRAIT_INVERTED -> + return ConstraintData.PhysicalOrientation( + physicalOrientation = PhysicalOrientation.PORTRAIT_INVERTED, + ) + + ConstraintId.PHYSICAL_ORIENTATION_LANDSCAPE_INVERTED -> + return ConstraintData.PhysicalOrientation( + physicalOrientation = PhysicalOrientation.LANDSCAPE_INVERTED, + ) + + ConstraintId.FLASHLIGHT_ON -> { + val lens = chooseFlashlightLens() ?: return null + return ConstraintData.FlashlightOn(lens = lens) + } + + ConstraintId.WIFI_ON -> return ConstraintData.WifiOn + + ConstraintId.WIFI_CONNECTED -> + return onSelectWifiConnectedConstraint(oldData as? ConstraintData.WifiConnected) + + ConstraintId.IME_CHOSEN -> return onSelectImeChosenConstraint() + + ConstraintId.KEYBOARD_SHOWING -> return ConstraintData.KeyboardShowing + + ConstraintId.DEVICE_IS_LOCKED -> return ConstraintData.DeviceIsLocked + + ConstraintId.IN_PHONE_CALL -> return ConstraintData.InPhoneCall + + ConstraintId.NOT_IN_PHONE_CALL -> return ConstraintData.NotInPhoneCall + + ConstraintId.PHONE_RINGING -> return ConstraintData.PhoneRinging + + ConstraintId.RINGER_MODE_NORMAL -> return ConstraintData.RingerMode(RingerMode.NORMAL) + + ConstraintId.RINGER_MODE_VIBRATE -> return ConstraintData.RingerMode(RingerMode.VIBRATE) + + ConstraintId.RINGER_MODE_SILENT -> return ConstraintData.RingerMode(RingerMode.SILENT) + + ConstraintId.CHARGING -> return ConstraintData.Charging + + ConstraintId.HINGE_CLOSED -> return ConstraintData.HingeClosed + + ConstraintId.HINGE_OPEN -> return ConstraintData.HingeOpen + + ConstraintId.LOCK_SCREEN_SHOWING -> return ConstraintData.LockScreenShowing + + ConstraintId.NOTIFICATION_PANEL_SHOWING -> + return ConstraintData.NotificationPanelShowing + + ConstraintId.TIME -> { + timeConstraintState = oldData as? ConstraintData.Time ?: ConstraintData.Time( + startHour = 0, + startMinute = 0, + endHour = 0, + endMinute = 0, + ) + return null + } + } + } + + private fun buildDisplayResolutionState( + oldResolution: ConstraintData.DisplayResolution?, + ): DisplayResolutionSheetState { + val supportedResolutions = useCase.getSupportedResolutions() + + val currentResolution = if (oldResolution != null) { + SizeKM(width = oldResolution.width, height = oldResolution.height) + } else { + useCase.getCurrentResolution() + } + + val matchingResolution = supportedResolutions.firstOrNull { + it.matchesIgnoringOrientation(currentResolution) + } + + return DisplayResolutionSheetState( + supportedResolutions = supportedResolutions.sortedBy { it.width }, + // Show the text fields immediately when there is nothing meaningful to pick + // from or when the current resolution isn't one of the supported modes. + isCustom = supportedResolutions.size <= 1 || matchingResolution == null, + selectedResolution = matchingResolution ?: supportedResolutions.firstOrNull(), + widthText = currentResolution.width.toString(), + heightText = currentResolution.height.toString(), + ) + } + + private suspend fun chooseFlashlightLens(): CameraLens? { + val items = useCase.getFlashlightLenses().map { lens -> + val label = when (lens) { + CameraLens.FRONT -> R.string.lens_front + CameraLens.BACK -> R.string.lens_back + } + lens to getString(label) + } + + if (items.size == 1) { + return items.first().first + } + + val dialog = DialogModel.SingleChoice(items) + + return showDialog("choose_flashlight_lens", dialog) + } + + private suspend fun onSelectWifiConnectedConstraint( + oldData: ConstraintData.WifiConnected?, + ): ConstraintData.WifiConnected? { + val knownSSIDs: List = useCase.getKnownWiFiSSIDs() + + val chosenSSID: String? + + val savedWifiSSIDs: List = useCase.getSavedWifiSSIDs().first() + + val ssidEntries = buildList { + addAll(savedWifiSSIDs) + addAll(knownSSIDs) + }.distinct() + + val dialog = DialogModel.Text( + hint = getString(R.string.hint_wifi_ssid), + allowEmpty = true, + message = getString(R.string.constraint_wifi_message_cant_list_networks), + autoCompleteEntries = ssidEntries, + text = oldData?.ssid.orEmpty(), + ) + + val ssidText = showDialog("type_ssid", dialog) ?: return null + + if (ssidText.isBlank()) { + chosenSSID = null + } else { + chosenSSID = ssidText + useCase.saveWifiSSID(chosenSSID) + } + + return ConstraintData.WifiConnected(ssid = chosenSSID) + } + + private suspend fun onSelectImeChosenConstraint(): ConstraintData.ImeChosen? { + val inputMethods = useCase.getEnabledInputMethods() + val items = inputMethods.map { it.id to it.label } + val dialog = DialogModel.SingleChoice(items = items) + + val result = showDialog("choose_input_method", dialog) ?: return null + + val imeInfo = inputMethods.single { it.id == result } + + return ConstraintData.ImeChosen(imeId = imeInfo.id, imeLabel = imeInfo.label) + } + + private suspend fun onSelectBluetoothConstraint(): ConstraintData.BtDeviceConnected? { + val response = showDialog( + "bluetooth_device_constraint_limitation", + DialogModel.Ok(getString(R.string.dialog_message_bt_constraint_limitation)), + ) + + response ?: return null + + val device = navigate( + "choose_bluetooth_device_for_constraint", + NavDestination.ChooseBluetoothDevice, + ) ?: return null + + return ConstraintData.BtDeviceConnected( + bluetoothAddress = device.address, + deviceName = device.name, + ) + } + + private suspend fun onSelectNotificationConstraint( + oldData: ConstraintData.NotificationPosted?, + ): ConstraintData.NotificationPosted? = navigate( + "config_notification_constraint", + NavDestination.ConfigNotificationConstraint(oldData?.let { Json.encodeToString(it) }), + ) + + private suspend fun onSelectAppConstraint(type: ConstraintId): ConstraintData? { + val result = + navigate( + "choose_package_for_constraint", + NavDestination.ChooseApp(allowHiddenApps = true), + ) + ?: return null + + return when (type) { + ConstraintId.APP_IN_FOREGROUND -> ConstraintData.AppInForeground( + packageName = result.packageName, + appName = result.appName, + ) + + ConstraintId.APP_PLAYING_MEDIA -> ConstraintData.AppPlayingMedia( + packageName = result.packageName, + appName = result.appName, + ) + + else -> throw IllegalArgumentException( + "Don't know how to create $type constraint after choosing app", + ) + } + } +} + +/** + * State for the display resolution bottom sheet. + * + * @param supportedResolutions the resolutions the display reports as supported. + * @param isCustom whether the user is entering a custom resolution instead of picking a chip. + * @param selectedResolution the currently selected supported resolution, if any. + * @param widthText the custom width input. + * @param heightText the custom height input. + */ +data class DisplayResolutionSheetState( + val supportedResolutions: List, + val isCustom: Boolean, + val selectedResolution: SizeKM?, + val widthText: String, + val heightText: String, +) { + private val customWidth: Int? get() = widthText.toIntOrNull() + private val customHeight: Int? get() = heightText.toIntOrNull() + + /** + * The resolution that will be saved, or null when the current input is not valid. + */ + val resolvedResolution: SizeKM? + get() = if (isCustom) { + val width = customWidth + val height = customHeight + + if (width != null && width > 0 && height != null && height > 0) { + SizeKM(width, height) + } else { + null + } + } else { + selectedResolution + } + + val isValid: Boolean get() = resolvedResolution != null +} + +/** + * Compares two resolutions ignoring orientation so that e.g. 1080x1920 and 1920x1080 + * are treated as the same resolution. + */ +private fun SizeKM.matchesIgnoringOrientation(other: SizeKM): Boolean { + return (width == other.width && height == other.height) || + (width == other.height && height == other.width) +} diff --git a/base/src/main/java/io/github/sds100/keymapper/base/constraints/DisplayResolutionConstraintBottomSheet.kt b/base/src/main/java/io/github/sds100/keymapper/base/constraints/DisplayResolutionConstraintBottomSheet.kt index b8795342d3..5b7135ce51 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/constraints/DisplayResolutionConstraintBottomSheet.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/constraints/DisplayResolutionConstraintBottomSheet.kt @@ -37,19 +37,19 @@ import kotlinx.coroutines.launch @OptIn(ExperimentalMaterial3Api::class) @Composable -fun DisplayResolutionConstraintBottomSheet(viewModel: ChooseConstraintViewModel) { +fun DisplayResolutionConstraintBottomSheet(delegate: CreateConstraintDelegate) { val sheetState = rememberModalBottomSheetState(skipPartiallyExpanded = true) - val state = viewModel.displayResolutionState ?: return + val state = delegate.displayResolutionState ?: return DisplayResolutionConstraintBottomSheet( sheetState = sheetState, state = state, - onSelectResolution = viewModel::onSelectDisplayResolution, - onSelectCustom = viewModel::onSelectCustomDisplayResolution, - onWidthChange = viewModel::onDisplayResolutionWidthChange, - onHeightChange = viewModel::onDisplayResolutionHeightChange, - onDismissRequest = viewModel::onDismissDisplayResolution, - onDoneClick = viewModel::onDoneConfigDisplayResolutionClick, + onSelectResolution = delegate::onSelectDisplayResolution, + onSelectCustom = delegate::onSelectCustomDisplayResolution, + onWidthChange = delegate::onDisplayResolutionWidthChange, + onHeightChange = delegate::onDisplayResolutionHeightChange, + onDismissRequest = delegate::onDismissDisplayResolution, + onDoneClick = delegate::onDoneConfigDisplayResolutionClick, ) } diff --git a/base/src/main/java/io/github/sds100/keymapper/base/constraints/TimeConstraintBottomSheet.kt b/base/src/main/java/io/github/sds100/keymapper/base/constraints/TimeConstraintBottomSheet.kt index e17627be2f..d2671298b1 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/constraints/TimeConstraintBottomSheet.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/constraints/TimeConstraintBottomSheet.kt @@ -49,25 +49,25 @@ import kotlinx.coroutines.launch @OptIn(ExperimentalMaterial3Api::class) @Composable -fun TimeConstraintBottomSheet(viewModel: ChooseConstraintViewModel) { +fun TimeConstraintBottomSheet(delegate: CreateConstraintDelegate) { val scope = rememberCoroutineScope() val sheetState = rememberModalBottomSheetState(skipPartiallyExpanded = true) - if (viewModel.timeConstraintState != null) { + if (delegate.timeConstraintState != null) { TimeConstraintBottomSheet( sheetState = sheetState, onDismissRequest = { - viewModel.timeConstraintState = null + delegate.timeConstraintState = null }, - state = viewModel.timeConstraintState!!, + state = delegate.timeConstraintState!!, onSelectStartTime = { hour, min -> - viewModel.timeConstraintState = viewModel.timeConstraintState?.copy( + delegate.timeConstraintState = delegate.timeConstraintState?.copy( startHour = hour, startMinute = min, ) }, onSelectEndTime = { hour, min -> - viewModel.timeConstraintState = viewModel.timeConstraintState?.copy( + delegate.timeConstraintState = delegate.timeConstraintState?.copy( endHour = hour, endMinute = min, ) @@ -75,7 +75,7 @@ fun TimeConstraintBottomSheet(viewModel: ChooseConstraintViewModel) { onDoneClick = { scope.launch { sheetState.hide() - viewModel.onDoneConfigTimeConstraintClick() + delegate.onDoneConfigTimeConstraintClick() } }, ) diff --git a/base/src/main/java/io/github/sds100/keymapper/base/utils/navigation/NavDestination.kt b/base/src/main/java/io/github/sds100/keymapper/base/utils/navigation/NavDestination.kt index ba50beebc0..fbd161e7ce 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/utils/navigation/NavDestination.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/utils/navigation/NavDestination.kt @@ -129,7 +129,7 @@ abstract class NavDestination(val isCompose: Boolean = false) { } @Serializable - data object ConfigNotificationConstraint : + data class ConfigNotificationConstraint(val oldJson: String? = null) : NavDestination(isCompose = true) { override val id: String = ID_CONFIG_NOTIFICATION_CONSTRAINT } diff --git a/base/src/main/java/io/github/sds100/keymapper/base/utils/ui/compose/ShrinkWrapText.kt b/base/src/main/java/io/github/sds100/keymapper/base/utils/ui/compose/ShrinkWrapText.kt new file mode 100644 index 0000000000..08d126ae3a --- /dev/null +++ b/base/src/main/java/io/github/sds100/keymapper/base/utils/ui/compose/ShrinkWrapText.kt @@ -0,0 +1,69 @@ +package io.github.sds100.keymapper.base.utils.ui.compose + +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.width +import androidx.compose.material3.LocalTextStyle +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.layout.layout +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.rememberTextMeasurer +import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import io.github.sds100.keymapper.base.compose.KeyMapperTheme +import kotlin.math.ceil + +/** + * A [Text] that is only as wide as its longest line. A normal [Text] that wraps takes up the + * whole max width even if its lines are shorter than that. + */ +@Composable +fun ShrinkWrapText( + text: String, + modifier: Modifier = Modifier, + style: TextStyle = LocalTextStyle.current, + maxLines: Int = Int.MAX_VALUE, + overflow: TextOverflow = TextOverflow.Clip, +) { + val textMeasurer = rememberTextMeasurer() + + Text( + modifier = modifier.layout { measurable, constraints -> + val result = textMeasurer.measure( + text = text, + style = style, + overflow = overflow, + maxLines = maxLines, + constraints = constraints, + ) + // Round up so a sub-pixel shortfall doesn't make the last word wrap. + val widest = (0 until result.lineCount).maxOf { + ceil(result.getLineRight(it) - result.getLineLeft(it)).toInt() + } + val placeable = measurable.measure( + constraints.copy( + maxWidth = widest.coerceIn(constraints.minWidth, constraints.maxWidth), + ), + ) + + layout(placeable.width, placeable.height) { placeable.place(0, 0) } + }, + text = text, + style = style, + maxLines = maxLines, + overflow = overflow, + ) +} + +@Preview +@Composable +private fun Preview() { + KeyMapperTheme { + Column(Modifier.width(150.dp)) { + ShrinkWrapText(text = "Short") + ShrinkWrapText(text = "Flashlight is on (very very long text)", maxLines = 2) + } + } +} diff --git a/base/src/main/res/values/strings.xml b/base/src/main/res/values/strings.xml index 5f7a574208..e327b97cf2 100644 --- a/base/src/main/res/values/strings.xml +++ b/base/src/main/res/values/strings.xml @@ -1940,6 +1940,7 @@ Add constraints if you want key maps to only work in some situations. Recently used constraints Remove + Edit Delete constraint Are you sure you want to delete this constraint? Yes, delete From 4cb7e0f1eaea2431ce5b698cc5191f0606ffd1f6 Mon Sep 17 00:00:00 2001 From: sds100 Date: Sun, 27 Sep 2026 11:26:57 +0200 Subject: [PATCH 04/64] #2252 #2254 redesigned the app bar when configuring a key map, name key maps, an undo/redo --- CHANGELOG.md | 6 + .../sds100/keymapper/base/BaseMainActivity.kt | 5 + .../keymapper/base/backup/BackupManager.kt | 3 + .../base/home/HomeKeyMapListScreen.kt | 1 + .../keymapper/base/home/KeyMapListAppBar.kt | 140 +---- .../keymapper/base/home/KeyMapListItem.kt | 11 + .../base/home/KeyMapListItemCreator.kt | 1 + .../base/keymaps/BaseConfigKeyMapScreen.kt | 147 ++---- .../base/keymaps/ConfigKeyMapAppBar.kt | 259 ++++++++++ .../base/keymaps/ConfigKeyMapScreen.kt | 35 +- .../base/keymaps/ConfigKeyMapScreenState.kt | 11 + .../base/keymaps/ConfigKeyMapState.kt | 49 +- .../base/keymaps/ConfigKeyMapViewModel.kt | 59 ++- .../sds100/keymapper/base/keymaps/KeyMap.kt | 3 + .../base/trigger/KeyMapListItemModel.kt | 1 + .../ui/compose/EditableAppBarTextField.kt | 161 ++++++ base/src/main/res/values/strings.xml | 7 + .../keymapper/base/utils/UndoRedoTest.kt | 50 ++ .../sds100/keymapper/common/utils/UndoRedo.kt | 49 ++ .../24.json | 487 ++++++++++++++++++ .../sds100/keymapper/data/db/AppDatabase.kt | 5 +- .../sds100/keymapper/data/db/dao/KeyMapDao.kt | 1 + .../keymapper/data/entities/KeyMapEntity.kt | 7 + .../data/migration/AutoMigration23To24.kt | 5 + 24 files changed, 1212 insertions(+), 291 deletions(-) create mode 100644 base/src/main/java/io/github/sds100/keymapper/base/keymaps/ConfigKeyMapAppBar.kt create mode 100644 base/src/main/java/io/github/sds100/keymapper/base/keymaps/ConfigKeyMapScreenState.kt create mode 100644 base/src/main/java/io/github/sds100/keymapper/base/utils/ui/compose/EditableAppBarTextField.kt create mode 100644 base/src/test/java/io/github/sds100/keymapper/base/utils/UndoRedoTest.kt create mode 100644 common/src/main/java/io/github/sds100/keymapper/common/utils/UndoRedo.kt create mode 100644 data/schemas/io.github.sds100.keymapper.data.db.AppDatabase/24.json create mode 100644 data/src/main/java/io/github/sds100/keymapper/data/migration/AutoMigration23To24.kt diff --git a/CHANGELOG.md b/CHANGELOG.md index 25351a99cb..968f490168 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ ## Added - #2263 constraints can now be edited in place from the constraints list instead of being deleted and re-added. +- #2254 you can now give a key map a custom name, which is shown in the key map list. +- #2252 undo and redo changes when configuring a key map. + +## Changed + +- #2252 redesigned the app bar when configuring a key map. Changes are saved automatically so there is no Done button, and the help button was removed. ## [4.5.0](https://github.com/sds100/KeyMapper/releases/tag/v4.5.0) diff --git a/base/src/main/java/io/github/sds100/keymapper/base/BaseMainActivity.kt b/base/src/main/java/io/github/sds100/keymapper/base/BaseMainActivity.kt index f5c7d7e85e..d9d0b3b9cb 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/BaseMainActivity.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/BaseMainActivity.kt @@ -205,6 +205,11 @@ abstract class BaseMainActivity : AppCompatActivity() { onboardingUseCase.handledMigrateScreenOffKeyMapsNotification() } + override fun onPause() { + configKeyMapState.save() + super.onPause() + } + override fun onSaveInstanceState(outState: Bundle) { configKeyMapState.saveState(outState) diff --git a/base/src/main/java/io/github/sds100/keymapper/base/backup/BackupManager.kt b/base/src/main/java/io/github/sds100/keymapper/base/backup/BackupManager.kt index 8c5cee4f1f..c9e5c10ceb 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/backup/BackupManager.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/backup/BackupManager.kt @@ -267,6 +267,9 @@ class BackupManagerImpl @Inject constructor( // The isNot/groupUid extras this replaces were still WIP and unreleased, // so pre-existing key maps just fall back to isNot=false/groupUid=null. JsonMigration(22, 23) { json -> json }, + + // Do nothing. Adds the nullable name column to key maps. + JsonMigration(23, 24) { json -> json }, ) if (keyMapListJsonArray != null) { diff --git a/base/src/main/java/io/github/sds100/keymapper/base/home/HomeKeyMapListScreen.kt b/base/src/main/java/io/github/sds100/keymapper/base/home/HomeKeyMapListScreen.kt index 418b72d2ff..0a717f790d 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/home/HomeKeyMapListScreen.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/home/HomeKeyMapListScreen.kt @@ -466,6 +466,7 @@ fun sameKeyMapListItems(): List { isSelected = true, KeyMapListItemModel.Content( uid = "0", + name = "Custom key map name", triggerKeys = listOf("Volume down", "Volume up", "Volume down"), triggerSeparatorIcon = Icons.AutoMirrored.Outlined.ArrowForward, actions = listOf( diff --git a/base/src/main/java/io/github/sds100/keymapper/base/home/KeyMapListAppBar.kt b/base/src/main/java/io/github/sds100/keymapper/base/home/KeyMapListAppBar.kt index 56d9958e33..16541a7589 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/home/KeyMapListAppBar.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/home/KeyMapListAppBar.kt @@ -10,8 +10,6 @@ import androidx.compose.animation.fadeOut import androidx.compose.animation.slideInVertically import androidx.compose.animation.slideOutVertically import androidx.compose.animation.togetherWith -import androidx.compose.foundation.interaction.MutableInteractionSource -import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.IntrinsicSize import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.Row @@ -24,17 +22,12 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.width import androidx.compose.foundation.layout.widthIn import androidx.compose.foundation.layout.windowInsetsPadding -import androidx.compose.foundation.text.BasicTextField -import androidx.compose.foundation.text.KeyboardActions -import androidx.compose.foundation.text.KeyboardOptions import androidx.compose.material.icons.Icons import androidx.compose.material.icons.automirrored.rounded.ArrowBack import androidx.compose.material.icons.automirrored.rounded.Sort import androidx.compose.material.icons.rounded.BugReport import androidx.compose.material.icons.rounded.Campaign import androidx.compose.material.icons.rounded.Delete -import androidx.compose.material.icons.rounded.Done -import androidx.compose.material.icons.rounded.Edit import androidx.compose.material.icons.rounded.ErrorOutline import androidx.compose.material.icons.rounded.Info import androidx.compose.material.icons.rounded.IosShare @@ -51,13 +44,10 @@ import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.FilledTonalButton import androidx.compose.material3.Icon import androidx.compose.material3.IconButton -import androidx.compose.material3.LocalContentColor import androidx.compose.material3.MaterialTheme import androidx.compose.material3.OutlinedButton -import androidx.compose.material3.OutlinedTextFieldDefaults import androidx.compose.material3.Surface import androidx.compose.material3.Text -import androidx.compose.material3.TextFieldDefaults import androidx.compose.material3.TopAppBarColors import androidx.compose.material3.TopAppBarDefaults import androidx.compose.material3.TopAppBarScrollBehavior @@ -73,14 +63,11 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.focus.FocusRequester import androidx.compose.ui.focus.focusRequester -import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.res.pluralStringResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.TextRange -import androidx.compose.ui.text.input.ImeAction import androidx.compose.ui.text.input.TextFieldValue -import androidx.compose.ui.text.input.VisualTransformation import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import io.github.sds100.keymapper.base.R @@ -88,6 +75,7 @@ import io.github.sds100.keymapper.base.compose.KeyMapperTheme import io.github.sds100.keymapper.base.compose.LocalCustomColorsPalette import io.github.sds100.keymapper.base.constraints.ConstraintMode import io.github.sds100.keymapper.base.groups.DeleteGroupDialog +import io.github.sds100.keymapper.base.utils.ui.compose.EditableAppBarTextField import io.github.sds100.keymapper.base.utils.ui.compose.icons.Import import io.github.sds100.keymapper.base.utils.ui.compose.icons.KeyMapperIcons import kotlinx.coroutines.launch @@ -354,15 +342,17 @@ private fun ChildGroupAppBar( ) } - GroupNameRow( + EditableAppBarTextField( modifier = Modifier.weight(1f), value = groupName, onValueChange = onValueChange, placeholder = placeholder, - onRenameClick = onRenameClick, + onConfirmClick = onRenameClick, error = error, isEditing = isEditingGroupName, onEditClick = onEditClick, + confirmContentDescription = stringResource(R.string.home_app_bar_save_group_name), + editContentDescription = stringResource(R.string.home_app_bar_edit_group_name), ) AnimatedVisibility(visible = !isEditingGroupName) { @@ -438,126 +428,6 @@ private fun AppBarActions( } } -@Composable -private fun GroupNameRow( - modifier: Modifier = Modifier, - value: TextFieldValue, - onValueChange: (TextFieldValue) -> Unit = {}, - placeholder: String, - isEditing: Boolean, - onRenameClick: () -> Unit, - onEditClick: () -> Unit = {}, - error: String? = null, -) { - val focusRequester = remember { FocusRequester() } - - LaunchedEffect(isEditing) { - focusRequester.requestFocus() - } - - AnimatedContent(modifier = modifier, targetState = isEditing) { isEditing -> - Row( - Modifier - .height(IntrinsicSize.Min) - .fillMaxWidth(), - verticalAlignment = Alignment.Top, - ) { - val interactionSource = remember { MutableInteractionSource() } - - // Use a custom text field so the content padding can be customised. - BasicTextField( - modifier = Modifier - .focusRequester(focusRequester) - .height(IntrinsicSize.Max) - .then( - if (isEditing) { - Modifier.weight(1f) - } else { - Modifier.weight(1f, fill = false) - }, - ), - value = value, - onValueChange = onValueChange, - textStyle = MaterialTheme.typography.titleLarge.copy( - color = LocalContentColor.current, - ), - enabled = isEditing, - keyboardActions = KeyboardActions(onDone = { onRenameClick() }), - keyboardOptions = KeyboardOptions( - imeAction = ImeAction.Done, - showKeyboardOnFocus = true, - ), - singleLine = true, - maxLines = 1, - interactionSource = interactionSource, - ) { innerTextField -> - @OptIn(ExperimentalMaterial3Api::class) - OutlinedTextFieldDefaults.DecorationBox( - value = value.text, - placeholder = { - Text( - placeholder, - style = MaterialTheme.typography.titleLarge, - maxLines = 1, - color = OutlinedTextFieldDefaults.colors().disabledPlaceholderColor, - ) - }, - innerTextField = { - Box( - Modifier - .width(IntrinsicSize.Min) - .height(48.dp), - contentAlignment = Alignment.CenterStart, - ) { innerTextField() } - }, - singleLine = true, - colors = if (isEditing) { - OutlinedTextFieldDefaults.colors() - } else { - OutlinedTextFieldDefaults.colors( - unfocusedBorderColor = Color.Transparent, - focusedBorderColor = Color.Transparent, - disabledBorderColor = Color.Transparent, - disabledTextColor = MaterialTheme.colorScheme.onPrimaryContainer, - ) - }, - isError = error != null, - enabled = isEditing, - supportingText = if (error == null) { - null - } else { - { Text(error, maxLines = 1) } - }, - visualTransformation = VisualTransformation.None, - interactionSource = interactionSource, - contentPadding = TextFieldDefaults.contentPaddingWithoutLabel( - top = 0.dp, - bottom = 0.dp, - end = 4.dp, - start = 8.dp, - ), - ) - } - - if (isEditing) { - IconButton(onClick = onRenameClick) { - Icon( - Icons.Rounded.Done, - contentDescription = stringResource(R.string.home_app_bar_save_group_name), - ) - } - } else { - IconButton(onClick = onEditClick) { - Icon( - Icons.Rounded.Edit, - contentDescription = stringResource(R.string.home_app_bar_edit_group_name), - ) - } - } - } - } -} - @Composable private fun AppBarStatus( isPaused: Boolean, diff --git a/base/src/main/java/io/github/sds100/keymapper/base/home/KeyMapListItem.kt b/base/src/main/java/io/github/sds100/keymapper/base/home/KeyMapListItem.kt index 5475cecad3..b6a9e8f07c 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/home/KeyMapListItem.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/home/KeyMapListItem.kt @@ -32,6 +32,7 @@ import androidx.compose.ui.text.Placeholder import androidx.compose.ui.text.PlaceholderVerticalAlign import androidx.compose.ui.text.buildAnnotatedString import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.PreviewLightDark import androidx.compose.ui.unit.dp @@ -96,6 +97,16 @@ fun KeyMapListItem( .fillMaxWidth() .padding(start = 16.dp, top = 10.dp, end = 16.dp, bottom = 10.dp), ) { + if (model.content.name.isNotBlank()) { + Text( + modifier = Modifier.padding(bottom = 4.dp), + text = model.content.name, + style = MaterialTheme.typography.titleMedium, + maxLines = 1, + overflow = TextOverflow.Ellipsis, + ) + } + Row( modifier = Modifier.heightIn(min = chipHeight), horizontalArrangement = Arrangement.spacedBy(8.dp), diff --git a/base/src/main/java/io/github/sds100/keymapper/base/home/KeyMapListItemCreator.kt b/base/src/main/java/io/github/sds100/keymapper/base/home/KeyMapListItemCreator.kt index ab3735aa07..5a1e52fd1a 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/home/KeyMapListItemCreator.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/home/KeyMapListItemCreator.kt @@ -107,6 +107,7 @@ class KeyMapListItemCreator( options = options, isEnabled = keyMap.isEnabled, hasError = hasError, + name = keyMap.name, ) } diff --git a/base/src/main/java/io/github/sds100/keymapper/base/keymaps/BaseConfigKeyMapScreen.kt b/base/src/main/java/io/github/sds100/keymapper/base/keymaps/BaseConfigKeyMapScreen.kt index 67ae276bcd..f28290aec2 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/keymaps/BaseConfigKeyMapScreen.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/keymaps/BaseConfigKeyMapScreen.kt @@ -21,13 +21,8 @@ import androidx.compose.foundation.pager.HorizontalPager import androidx.compose.foundation.pager.rememberPagerState import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.automirrored.rounded.ArrowBack import androidx.compose.material.icons.automirrored.rounded.HelpOutline -import androidx.compose.material.icons.rounded.Check -import androidx.compose.material3.BottomAppBar import androidx.compose.material3.ExperimentalMaterial3Api -import androidx.compose.material3.ExtendedFloatingActionButton -import androidx.compose.material3.FloatingActionButtonDefaults import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.MaterialTheme @@ -36,7 +31,6 @@ import androidx.compose.material3.PrimaryScrollableTabRow import androidx.compose.material3.Scaffold import androidx.compose.material3.SnackbarHost import androidx.compose.material3.SnackbarHostState -import androidx.compose.material3.Switch import androidx.compose.material3.Tab import androidx.compose.material3.Text import androidx.compose.runtime.Composable @@ -52,6 +46,8 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalUriHandler import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.TextRange +import androidx.compose.ui.text.input.TextFieldValue import androidx.compose.ui.tooling.preview.Devices import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.Dp @@ -65,55 +61,64 @@ import kotlinx.coroutines.launch @Composable fun BaseConfigKeyMapScreen( modifier: Modifier = Modifier, - isKeyMapEnabled: Boolean, + state: ConfigKeyMapScreenState, + onEditNameClick: () -> Unit = {}, + onConfirmNameClick: (String) -> Unit = {}, + onCancelEditNameClick: () -> Unit = {}, onKeyMapEnabledChange: (Boolean) -> Unit = {}, + onUndoClick: () -> Unit = {}, + onRedoClick: () -> Unit = {}, triggerScreen: @Composable () -> Unit, actionsScreen: @Composable () -> Unit, constraintsScreen: @Composable () -> Unit, optionsScreen: @Composable () -> Unit, onBackClick: () -> Unit = {}, - onDoneClick: () -> Unit = {}, snackbarHostState: SnackbarHostState = SnackbarHostState(), - showActionPulse: Boolean = false, ) { val scope = rememberCoroutineScope() + + // Store the name here while the user is typing instead of sending it to the view model state + // because that would mean each character pushes on a new state for undo/redo. + var nameDraft by remember { mutableStateOf(TextFieldValue(state.name)) } + + // Reset the draft whenever the saved name changes (e.g. undo/redo) or editing starts/stops. + LaunchedEffect(state.name, state.isEditingName) { + // Show the start of the name when not editing, and put the cursor at the end when editing. + val cursor = if (state.isEditingName) state.name.length else 0 + nameDraft = TextFieldValue(state.name, selection = TextRange(cursor)) + } + val triggerHelpUrl = stringResource(R.string.url_trigger_guide) val actionsHelpUrl = stringResource(R.string.url_action_guide) val constraintsHelpUrl = stringResource(R.string.url_constraints_guide) val optionsHelpUrl = stringResource(R.string.url_trigger_options_guide) - var currentTab: ConfigKeyMapTab? by remember { mutableStateOf(null) } - val uriHandler = LocalUriHandler.current - val ctx = LocalContext.current + // Back cancels editing the name instead of leaving the screen. + val onBack = if (state.isEditingName) { + onCancelEditNameClick + } else { + onBackClick + } - BackHandler(onBack = onBackClick) + BackHandler(onBack = onBack) Scaffold( modifier.displayCutoutPadding(), snackbarHost = { SnackbarHost(snackbarHostState) }, bottomBar = { ConfigKeyMapAppBar( - isKeyMapEnabled = isKeyMapEnabled, + name = nameDraft, + onNameChange = { nameDraft = it }, + isEditingName = state.isEditingName, + onEditNameClick = onEditNameClick, + onConfirmNameClick = { onConfirmNameClick(nameDraft.text) }, + isKeyMapEnabled = state.isEnabled, onKeyMapEnabledChange = onKeyMapEnabledChange, - onBackClick = onBackClick, - onDoneClick = onDoneClick, - showHelpButton = currentTab == ConfigKeyMapTab.TRIGGER || - currentTab == ConfigKeyMapTab.ACTIONS || - currentTab == ConfigKeyMapTab.CONSTRAINTS || - currentTab == ConfigKeyMapTab.OPTIONS, - onHelpClick = { - val url = when (currentTab) { - ConfigKeyMapTab.TRIGGER -> triggerHelpUrl - ConfigKeyMapTab.ACTIONS -> actionsHelpUrl - ConfigKeyMapTab.CONSTRAINTS -> constraintsHelpUrl - ConfigKeyMapTab.OPTIONS -> optionsHelpUrl - else -> return@ConfigKeyMapAppBar - } - - if (url.isNotEmpty()) { - uriHandler.openUriSafe(ctx, url) - } - }, + canUndo = state.undoRedo.canUndo, + canRedo = state.undoRedo.canRedo, + onUndoClick = onUndoClick, + onRedoClick = onRedoClick, + onBackClick = onBack, ) }, ) { innerPadding -> @@ -121,7 +126,6 @@ fun BaseConfigKeyMapScreen( val tabs = determineTabs(maxWidth, maxHeight) val isVerticalTwoScreen = maxWidth < 720.dp val pagerState = rememberPagerState(pageCount = { tabs.size }, initialPage = 0) - currentTab = tabs.getOrNull(pagerState.targetPage) Column(Modifier.fillMaxSize()) { if (tabs.size > 1) { @@ -137,7 +141,7 @@ fun BaseConfigKeyMapScreen( var finishedAnimation by rememberSaveable { mutableStateOf(false) } - LaunchedEffect(showActionPulse) { + LaunchedEffect(state.showActionPulse) { var startedAnimation = false repeat(10) { @@ -147,7 +151,7 @@ fun BaseConfigKeyMapScreen( pagerState.targetPage == index && tab == ConfigKeyMapTab.ACTIONS - if (!showActionPulse || + if (!state.showActionPulse || finishedAnimation || isActionsTabSelected ) { @@ -303,69 +307,6 @@ fun BaseConfigKeyMapScreen( } } -@Composable -private fun ConfigKeyMapAppBar( - modifier: Modifier = Modifier, - isKeyMapEnabled: Boolean, - onKeyMapEnabledChange: (Boolean) -> Unit = {}, - showHelpButton: Boolean, - onHelpClick: () -> Unit, - onBackClick: () -> Unit, - onDoneClick: () -> Unit, -) { - BottomAppBar( - modifier = modifier, - floatingActionButton = { - ExtendedFloatingActionButton( - onClick = onDoneClick, - text = { Text(stringResource(R.string.button_done)) }, - icon = { - Icon(Icons.Rounded.Check, stringResource(R.string.button_done)) - }, - elevation = FloatingActionButtonDefaults.bottomAppBarFabElevation(), - ) - }, - actions = { - IconButton(onClick = onBackClick) { - Icon(Icons.AutoMirrored.Rounded.ArrowBack, stringResource(R.string.action_go_back)) - } - - Spacer(modifier = Modifier.width(8.dp)) - - val text = if (isKeyMapEnabled) { - stringResource(R.string.switch_enabled) - } else { - stringResource(R.string.switch_disabled) - } - - Text( - text = text, - style = MaterialTheme.typography.labelLarge, - ) - - Spacer(modifier = Modifier.width(16.dp)) - - Switch( - checked = isKeyMapEnabled, - onCheckedChange = onKeyMapEnabledChange, - ) - - Spacer(modifier = Modifier.weight(1f)) - - if (showHelpButton) { - IconButton(onClick = onHelpClick) { - Icon( - Icons.AutoMirrored.Rounded.HelpOutline, - stringResource(R.string.action_help), - ) - } - } - - Spacer(modifier = Modifier.width(8.dp)) - }, - ) -} - @Composable private fun VerticalTwoScreens( modifier: Modifier = Modifier, @@ -588,7 +529,7 @@ private fun SmallScreenPreview() { KeyMapperTheme { BaseConfigKeyMapScreen( modifier = Modifier.fillMaxSize(), - isKeyMapEnabled = false, + state = ConfigKeyMapScreenState(isEnabled = false), triggerScreen = {}, actionsScreen = {}, constraintsScreen = {}, @@ -603,7 +544,7 @@ private fun MediumScreenPreview() { KeyMapperTheme { BaseConfigKeyMapScreen( modifier = Modifier.fillMaxSize(), - isKeyMapEnabled = true, + state = ConfigKeyMapScreenState(isEnabled = true), triggerScreen = {}, actionsScreen = {}, constraintsScreen = {}, @@ -618,7 +559,7 @@ private fun MediumScreenLandscapePreview() { KeyMapperTheme { BaseConfigKeyMapScreen( modifier = Modifier.fillMaxSize(), - isKeyMapEnabled = true, + state = ConfigKeyMapScreenState(isEnabled = true), triggerScreen = {}, actionsScreen = {}, constraintsScreen = {}, @@ -633,7 +574,7 @@ private fun LargeScreenPreview() { KeyMapperTheme { BaseConfigKeyMapScreen( modifier = Modifier.fillMaxSize(), - isKeyMapEnabled = true, + state = ConfigKeyMapScreenState(isEnabled = true), triggerScreen = {}, actionsScreen = {}, constraintsScreen = {}, diff --git a/base/src/main/java/io/github/sds100/keymapper/base/keymaps/ConfigKeyMapAppBar.kt b/base/src/main/java/io/github/sds100/keymapper/base/keymaps/ConfigKeyMapAppBar.kt new file mode 100644 index 0000000000..208249b08a --- /dev/null +++ b/base/src/main/java/io/github/sds100/keymapper/base/keymaps/ConfigKeyMapAppBar.kt @@ -0,0 +1,259 @@ +package io.github.sds100.keymapper.base.keymaps + +import androidx.compose.animation.AnimatedVisibility +import androidx.compose.foundation.layout.BoxWithConstraints +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.imePadding +import androidx.compose.foundation.layout.width +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.automirrored.rounded.ArrowBack +import androidx.compose.material.icons.automirrored.rounded.Redo +import androidx.compose.material.icons.automirrored.rounded.Undo +import androidx.compose.material.icons.rounded.MoreVert +import androidx.compose.material3.BottomAppBar +import androidx.compose.material3.DropdownMenu +import androidx.compose.material3.DropdownMenuItem +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton +import androidx.compose.material3.PlainTooltip +import androidx.compose.material3.Switch +import androidx.compose.material3.Text +import androidx.compose.material3.TooltipAnchorPosition +import androidx.compose.material3.TooltipBox +import androidx.compose.material3.TooltipDefaults +import androidx.compose.material3.rememberTooltipState +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.rememberCoroutineScope +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.semantics.contentDescription +import androidx.compose.ui.semantics.semantics +import androidx.compose.ui.text.input.TextFieldValue +import androidx.compose.ui.tooling.preview.PreviewLightDark +import androidx.compose.ui.tooling.preview.PreviewScreenSizes +import androidx.compose.ui.unit.DpOffset +import androidx.compose.ui.unit.dp +import io.github.sds100.keymapper.base.R +import io.github.sds100.keymapper.base.compose.KeyMapperTheme +import io.github.sds100.keymapper.base.utils.ui.compose.EditableAppBarTextField +import kotlinx.coroutines.launch + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +internal fun ConfigKeyMapAppBar( + modifier: Modifier = Modifier, + name: TextFieldValue, + onNameChange: (TextFieldValue) -> Unit, + isEditingName: Boolean, + onEditNameClick: () -> Unit, + onConfirmNameClick: () -> Unit, + isKeyMapEnabled: Boolean, + onKeyMapEnabledChange: (Boolean) -> Unit, + canUndo: Boolean, + canRedo: Boolean, + onUndoClick: () -> Unit, + onRedoClick: () -> Unit, + onBackClick: () -> Unit, +) { + BoxWithConstraints(modifier) { + val showUndoRedoInline = maxWidth >= 400.dp + + BottomAppBar( + modifier = Modifier.imePadding(), + actions = { + IconButton(onClick = onBackClick) { + Icon( + Icons.AutoMirrored.Rounded.ArrowBack, + stringResource(R.string.action_go_back), + ) + } + + EditableAppBarTextField( + modifier = Modifier + .weight(1f) + .align(Alignment.CenterVertically), + value = name, + onValueChange = onNameChange, + placeholder = stringResource(R.string.config_key_map_name_placeholder), + isEditing = isEditingName, + onConfirmClick = onConfirmNameClick, + onEditClick = onEditNameClick, + confirmContentDescription = stringResource( + R.string.config_key_map_save_name, + ), + editContentDescription = stringResource(R.string.config_key_map_edit_name), + ) + + AnimatedVisibility(visible = !isEditingName) { + Row( + modifier = Modifier.align(Alignment.CenterVertically), + verticalAlignment = Alignment.CenterVertically, + ) { + if (showUndoRedoInline) { + IconButton(onClick = onUndoClick, enabled = canUndo) { + Icon( + Icons.AutoMirrored.Rounded.Undo, + stringResource(R.string.action_undo), + ) + } + + IconButton(onClick = onRedoClick, enabled = canRedo) { + Icon( + Icons.AutoMirrored.Rounded.Redo, + stringResource(R.string.action_redo), + ) + } + + Spacer(Modifier.width(8.dp)) + } + + val enabledText = if (isKeyMapEnabled) { + stringResource(R.string.switch_enabled) + } else { + stringResource(R.string.switch_disabled) + } + + val tooltipText = if (isKeyMapEnabled) { + stringResource(R.string.config_key_map_enabled_tooltip) + } else { + stringResource(R.string.config_key_map_disabled_tooltip) + } + + val tooltipState = rememberTooltipState() + val coroutineScope = rememberCoroutineScope() + + TooltipBox( + positionProvider = TooltipDefaults.rememberTooltipPositionProvider( + TooltipAnchorPosition.Above, + ), + tooltip = { PlainTooltip { Text(tooltipText) } }, + state = tooltipState, + ) { + Switch( + modifier = Modifier.semantics { + contentDescription = enabledText + }, + checked = isKeyMapEnabled, + onCheckedChange = { + onKeyMapEnabledChange(it) + coroutineScope.launch { tooltipState.show() } + }, + ) + } + + if (!showUndoRedoInline) { + Spacer(Modifier.width(8.dp)) + + UndoRedoMenu( + canUndo = canUndo, + canRedo = canRedo, + onUndoClick = onUndoClick, + onRedoClick = onRedoClick, + ) + } + } + } + }, + ) + } +} + +@Composable +private fun UndoRedoMenu( + canUndo: Boolean, + canRedo: Boolean, + onUndoClick: () -> Unit, + onRedoClick: () -> Unit, +) { + var expanded by remember { mutableStateOf(false) } + + IconButton(onClick = { expanded = true }) { + Icon( + Icons.Rounded.MoreVert, + contentDescription = stringResource(R.string.home_app_bar_more), + ) + } + + DropdownMenu( + expanded = expanded, + onDismissRequest = { expanded = false }, + offset = DpOffset(x = 0.dp, y = 100.dp), + ) { + DropdownMenuItem( + leadingIcon = { Icon(Icons.AutoMirrored.Rounded.Undo, contentDescription = null) }, + text = { Text(stringResource(R.string.action_undo)) }, + enabled = canUndo, + onClick = { + expanded = false + onUndoClick() + }, + ) + DropdownMenuItem( + leadingIcon = { Icon(Icons.AutoMirrored.Rounded.Redo, contentDescription = null) }, + text = { Text(stringResource(R.string.action_redo)) }, + enabled = canRedo, + onClick = { + expanded = false + onRedoClick() + }, + ) + } +} + +@Composable +private fun PreviewAppBar( + name: String = "", + isEditingName: Boolean = false, + isKeyMapEnabled: Boolean = true, + canUndo: Boolean = true, + canRedo: Boolean = true, +) { + KeyMapperTheme { + ConfigKeyMapAppBar( + name = TextFieldValue(name), + onNameChange = {}, + isEditingName = isEditingName, + onEditNameClick = {}, + onConfirmNameClick = {}, + isKeyMapEnabled = isKeyMapEnabled, + onKeyMapEnabledChange = {}, + canUndo = canUndo, + canRedo = canRedo, + onUndoClick = {}, + onRedoClick = {}, + onBackClick = {}, + ) + } +} + +@PreviewLightDark +@Composable +private fun UnnamedPreview() { + PreviewAppBar(name = "") +} + +@PreviewLightDark +@Composable +private fun EditingNamePreview() { + PreviewAppBar(name = "Volume up to skip song", isEditingName = true) +} + +@PreviewLightDark +@Composable +private fun EditingEmptyNamePreview() { + PreviewAppBar(name = "", isEditingName = true) +} + +@PreviewLightDark +@PreviewScreenSizes +@Composable +private fun NamedPreview() { + PreviewAppBar(name = "Volume up to skip song") +} diff --git a/base/src/main/java/io/github/sds100/keymapper/base/keymaps/ConfigKeyMapScreen.kt b/base/src/main/java/io/github/sds100/keymapper/base/keymaps/ConfigKeyMapScreen.kt index a9eb84da5c..ec35bca862 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/keymaps/ConfigKeyMapScreen.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/keymaps/ConfigKeyMapScreen.kt @@ -3,12 +3,8 @@ package io.github.sds100.keymapper.base.keymaps import androidx.compose.material3.SnackbarHostState import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.saveable.rememberSaveable -import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.lifecycle.compose.collectAsStateWithLifecycle -import io.github.sds100.keymapper.base.utils.ui.UnsavedChangesDialog @Composable fun ConfigKeyMapScreen( @@ -20,37 +16,22 @@ fun ConfigKeyMapScreen( constraintsScreen: @Composable () -> Unit, optionsScreen: @Composable () -> Unit, ) { - val isKeyMapEnabled by keyMapViewModel.isEnabled.collectAsStateWithLifecycle() - val showActionPulse by keyMapViewModel.showActionsTapTarget.collectAsStateWithLifecycle() - var showBackDialog by rememberSaveable { mutableStateOf(false) } - - if (showBackDialog) { - UnsavedChangesDialog( - onDismiss = { showBackDialog = false }, - onDiscardClick = { - showBackDialog = false - keyMapViewModel.onBackClick() - }, - ) - } + val state by keyMapViewModel.state.collectAsStateWithLifecycle() BaseConfigKeyMapScreen( modifier = modifier, - isKeyMapEnabled = isKeyMapEnabled, + state = state, + onEditNameClick = keyMapViewModel::onEditNameClick, + onConfirmNameClick = keyMapViewModel::onConfirmNameClick, + onCancelEditNameClick = keyMapViewModel::onCancelEditNameClick, onKeyMapEnabledChange = keyMapViewModel::onEnabledChanged, + onUndoClick = keyMapViewModel::onUndoClick, + onRedoClick = keyMapViewModel::onRedoClick, triggerScreen = triggerScreen, actionsScreen = actionsScreen, constraintsScreen = constraintsScreen, optionsScreen = optionsScreen, - onBackClick = { - if (keyMapViewModel.isKeyMapEdited) { - showBackDialog = true - } else { - keyMapViewModel.onBackClick() - } - }, - onDoneClick = keyMapViewModel::onDoneClick, + onBackClick = keyMapViewModel::onBackClick, snackbarHostState = snackbarHostState, - showActionPulse = showActionPulse, ) } diff --git a/base/src/main/java/io/github/sds100/keymapper/base/keymaps/ConfigKeyMapScreenState.kt b/base/src/main/java/io/github/sds100/keymapper/base/keymaps/ConfigKeyMapScreenState.kt new file mode 100644 index 0000000000..9dc6cf3312 --- /dev/null +++ b/base/src/main/java/io/github/sds100/keymapper/base/keymaps/ConfigKeyMapScreenState.kt @@ -0,0 +1,11 @@ +package io.github.sds100.keymapper.base.keymaps + +import io.github.sds100.keymapper.common.utils.UndoRedoState + +data class ConfigKeyMapScreenState( + val isEnabled: Boolean = true, + val showActionPulse: Boolean = false, + val name: String = "", + val isEditingName: Boolean = false, + val undoRedo: UndoRedoState = UndoRedoState(), +) diff --git a/base/src/main/java/io/github/sds100/keymapper/base/keymaps/ConfigKeyMapState.kt b/base/src/main/java/io/github/sds100/keymapper/base/keymaps/ConfigKeyMapState.kt index c2509d11f1..24282d0d1a 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/keymaps/ConfigKeyMapState.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/keymaps/ConfigKeyMapState.kt @@ -3,6 +3,8 @@ package io.github.sds100.keymapper.base.keymaps import android.database.sqlite.SQLiteConstraintException import android.os.Bundle import io.github.sds100.keymapper.common.utils.State +import io.github.sds100.keymapper.common.utils.UndoRedo +import io.github.sds100.keymapper.common.utils.UndoRedoState import io.github.sds100.keymapper.common.utils.dataOrNull import io.github.sds100.keymapper.common.utils.ifIsData import io.github.sds100.keymapper.common.utils.mapData @@ -30,6 +32,7 @@ class ConfigKeyMapStateImpl @Inject constructor( private val keyMapRepository: KeyMapRepository, private val floatingButtonRepository: FloatingButtonRepository, ) : ConfigKeyMapState { + private var originalKeyMap: KeyMap? = null private val _keyMap: MutableStateFlow> = MutableStateFlow(State.Loading) @@ -37,6 +40,10 @@ class ConfigKeyMapStateImpl @Inject constructor( override val floatingButtonToUse: MutableStateFlow = MutableStateFlow(null) + private val undoRedo: UndoRedo = UndoRedo() + + override val undoRedoState: StateFlow = undoRedo.state + init { // Update button data in the key map whenever the floating buttons changes. coroutineScope.launch { @@ -53,15 +60,6 @@ class ConfigKeyMapStateImpl @Inject constructor( } } - /** - * Whether any changes were made to the key map. - */ - override val isEdited: Boolean - get() = when (val keyMap = keyMap.value) { - is State.Data -> originalKeyMap?.let { it != keyMap.data } ?: false - State.Loading -> false - } - override suspend fun loadKeyMap(uid: String) { _keyMap.update { State.Loading } val entity = keyMapRepository.get(uid) ?: return @@ -73,23 +71,29 @@ class ConfigKeyMapStateImpl @Inject constructor( val keyMap = KeyMapEntityMapper.fromEntity(entity, floatingButtons) _keyMap.update { State.Data(keyMap) } originalKeyMap = keyMap + undoRedo.reset(keyMap) } override fun loadNewKeyMap(groupUid: String?) { val keyMap = KeyMap(groupUid = groupUid) _keyMap.update { State.Data(keyMap) } originalKeyMap = keyMap + undoRedo.reset(keyMap) } // Useful for testing fun setKeyMap(keyMap: KeyMap) { _keyMap.update { State.Data(keyMap) } originalKeyMap = keyMap + undoRedo.reset(keyMap) } override fun save() { val keyMap = keyMap.value.dataOrNull() ?: return + // save() is called from several lifecycle points so skip redundant writes. + if (keyMap == originalKeyMap) return + if (keyMap.dbId == null) { val entity = KeyMapEntityMapper.toEntity(keyMap, 0) try { @@ -100,6 +104,8 @@ class ConfigKeyMapStateImpl @Inject constructor( } else { keyMapRepository.update(KeyMapEntityMapper.toEntity(keyMap, keyMap.dbId)) } + + originalKeyMap = keyMap } fun saveState(bundle: Bundle) { @@ -112,21 +118,40 @@ class ConfigKeyMapStateImpl @Inject constructor( if (bundle.containsKey("ConfigKeyMapState.key_map")) { val json = bundle.getString("ConfigKeyMapState.key_map") ?: return - _keyMap.update { State.Data(Json.decodeFromString(json)) } + val keyMap = Json.decodeFromString(json) + _keyMap.update { State.Data(keyMap) } + undoRedo.reset(keyMap) } } override fun update(block: (keyMap: KeyMap) -> KeyMap): State { - return _keyMap.updateAndGet { value -> value.mapData { block.invoke(it) } } + val old = _keyMap.value + val new = _keyMap.updateAndGet { value -> value.mapData { block.invoke(it) } } + + if (new is State.Data && new != old) { + undoRedo.record(new.data) + } + + return new + } + + override fun undo() { + undoRedo.undo()?.also { keyMap -> _keyMap.update { State.Data(keyMap) } } + } + + override fun redo() { + undoRedo.redo()?.also { keyMap -> _keyMap.update { State.Data(keyMap) } } } } interface ConfigKeyMapState { val keyMap: StateFlow> - val isEdited: Boolean + val undoRedoState: StateFlow fun update(block: (keyMap: KeyMap) -> KeyMap): State fun save() + fun undo() + fun redo() suspend fun loadKeyMap(uid: String) fun loadNewKeyMap(groupUid: String?) diff --git a/base/src/main/java/io/github/sds100/keymapper/base/keymaps/ConfigKeyMapViewModel.kt b/base/src/main/java/io/github/sds100/keymapper/base/keymaps/ConfigKeyMapViewModel.kt index 3a478e8f0f..9778c173b1 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/keymaps/ConfigKeyMapViewModel.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/keymaps/ConfigKeyMapViewModel.kt @@ -11,12 +11,15 @@ import io.github.sds100.keymapper.base.utils.ui.DialogProvider import io.github.sds100.keymapper.common.utils.State import io.github.sds100.keymapper.common.utils.dataOrNull import javax.inject.Inject +import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.SharingStarted import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.combine import kotlinx.coroutines.flow.filterIsInstance import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.stateIn +import kotlinx.coroutines.flow.update import kotlinx.coroutines.launch @HiltViewModel @@ -30,14 +33,15 @@ class ConfigKeyMapViewModel @Inject constructor( NavigationProvider by navigationProvider, DialogProvider by dialogProvider { - val isKeyMapEdited: Boolean - get() = configKeyMapState.isEdited + private val isEditingName = MutableStateFlow(false) - val isEnabled: StateFlow = configTrigger.keyMap + private val isEnabled: Flow = configTrigger.keyMap .map { state -> state.dataOrNull()?.isEnabled ?: true } - .stateIn(viewModelScope, SharingStarted.Eagerly, true) - val showActionsTapTarget: StateFlow = + private val keyMapName: Flow = configKeyMapState.keyMap + .map { state -> state.dataOrNull()?.name ?: "" } + + private val showActionsTapTarget: Flow = combine( onboarding.showTapTarget(OnboardingTapTarget.CHOOSE_ACTION), configKeyMapState.keyMap.filterIsInstance>(), @@ -47,15 +51,16 @@ class ConfigKeyMapViewModel @Inject constructor( showTapTarget && keyMapState.data.trigger.keys.isNotEmpty() && keyMapState.data.actionList.isEmpty() - }.stateIn(viewModelScope, SharingStarted.Lazily, false) - - fun onDoneClick() { - configKeyMapState.save() - - viewModelScope.launch { - popBackStack() } - } + + val state: StateFlow = combine( + isEnabled, + showActionsTapTarget, + keyMapName, + isEditingName, + configKeyMapState.undoRedoState, + ::ConfigKeyMapScreenState, + ).stateIn(viewModelScope, SharingStarted.Eagerly, ConfigKeyMapScreenState()) fun loadNewKeyMap(groupUid: String?) { configKeyMapState.loadNewKeyMap(groupUid) @@ -68,12 +73,40 @@ class ConfigKeyMapViewModel @Inject constructor( } fun onBackClick() { + configKeyMapState.save() + viewModelScope.launch { popBackStack() } } + fun onEditNameClick() { + isEditingName.update { true } + } + + fun onConfirmNameClick(name: String) { + configKeyMapState.update { it.copy(name = name.trim()) } + isEditingName.update { false } + } + + fun onCancelEditNameClick() { + isEditingName.update { false } + } + + fun onUndoClick() { + configKeyMapState.undo() + } + + fun onRedoClick() { + configKeyMapState.redo() + } + fun onEnabledChanged(enabled: Boolean) { configTrigger.setEnabled(enabled) } + + override fun onCleared() { + configKeyMapState.save() + super.onCleared() + } } diff --git a/base/src/main/java/io/github/sds100/keymapper/base/keymaps/KeyMap.kt b/base/src/main/java/io/github/sds100/keymapper/base/keymaps/KeyMap.kt index 33e30c37dc..00c5396e3a 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/keymaps/KeyMap.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/keymaps/KeyMap.kt @@ -28,6 +28,7 @@ data class KeyMap( val constraintState: ConstraintState = ConstraintState(), val isEnabled: Boolean = true, val groupUid: String? = null, + val name: String = "", ) { val showToast: Boolean @@ -139,6 +140,7 @@ object KeyMapEntityMapper { constraintState = constraintState, isEnabled = entity.isEnabled, groupUid = entity.groupUid, + name = entity.name ?: "", ) } @@ -157,6 +159,7 @@ object KeyMapEntityMapper { isEnabled = keyMap.isEnabled, uid = keyMap.uid, groupUid = keyMap.groupUid, + name = keyMap.name.ifBlank { null }, ) } } diff --git a/base/src/main/java/io/github/sds100/keymapper/base/trigger/KeyMapListItemModel.kt b/base/src/main/java/io/github/sds100/keymapper/base/trigger/KeyMapListItemModel.kt index 34f80b2666..0ea0ce98b6 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/trigger/KeyMapListItemModel.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/trigger/KeyMapListItemModel.kt @@ -17,5 +17,6 @@ data class KeyMapListItemModel(val isSelected: Boolean, val content: Content) { val options: List, val isEnabled: Boolean, val hasError: Boolean, + val name: String = "", ) } diff --git a/base/src/main/java/io/github/sds100/keymapper/base/utils/ui/compose/EditableAppBarTextField.kt b/base/src/main/java/io/github/sds100/keymapper/base/utils/ui/compose/EditableAppBarTextField.kt new file mode 100644 index 0000000000..5b517356df --- /dev/null +++ b/base/src/main/java/io/github/sds100/keymapper/base/utils/ui/compose/EditableAppBarTextField.kt @@ -0,0 +1,161 @@ +package io.github.sds100.keymapper.base.utils.ui.compose + +import androidx.compose.animation.AnimatedContent +import androidx.compose.foundation.interaction.MutableInteractionSource +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.IntrinsicSize +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.text.BasicTextField +import androidx.compose.foundation.text.KeyboardActions +import androidx.compose.foundation.text.KeyboardOptions +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.rounded.Done +import androidx.compose.material.icons.rounded.Edit +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton +import androidx.compose.material3.LocalContentColor +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.OutlinedTextFieldDefaults +import androidx.compose.material3.Text +import androidx.compose.material3.TextFieldDefaults +import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.remember +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.focus.FocusRequester +import androidx.compose.ui.focus.focusRequester +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.text.input.ImeAction +import androidx.compose.ui.text.input.TextFieldValue +import androidx.compose.ui.text.input.VisualTransformation +import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.unit.dp + +@Composable +fun EditableAppBarTextField( + modifier: Modifier = Modifier, + value: TextFieldValue, + onValueChange: (TextFieldValue) -> Unit = {}, + placeholder: String, + isEditing: Boolean, + onConfirmClick: () -> Unit, + onEditClick: () -> Unit = {}, + error: String? = null, + confirmContentDescription: String, + editContentDescription: String, +) { + val focusRequester = remember { FocusRequester() } + + LaunchedEffect(isEditing) { + focusRequester.requestFocus() + } + + AnimatedContent(modifier = modifier, targetState = isEditing) { isEditing -> + Row( + Modifier + .height(IntrinsicSize.Min) + .fillMaxWidth(), + verticalAlignment = Alignment.Top, + ) { + val interactionSource = remember { MutableInteractionSource() } + + // Use a custom text field so the content padding can be customised. + BasicTextField( + modifier = Modifier + .focusRequester(focusRequester) + .height(IntrinsicSize.Max) + .then( + if (isEditing) { + Modifier.weight(1f) + } else { + Modifier.weight(1f, fill = false) + }, + ), + value = value, + onValueChange = onValueChange, + textStyle = MaterialTheme.typography.titleLarge.copy( + color = LocalContentColor.current, + ), + enabled = isEditing, + keyboardActions = KeyboardActions(onDone = { onConfirmClick() }), + keyboardOptions = KeyboardOptions( + imeAction = ImeAction.Done, + showKeyboardOnFocus = true, + ), + singleLine = true, + maxLines = 1, + interactionSource = interactionSource, + ) { innerTextField -> + @OptIn(ExperimentalMaterial3Api::class) + OutlinedTextFieldDefaults.DecorationBox( + value = value.text, + placeholder = { + Text( + placeholder, + style = MaterialTheme.typography.titleLarge, + maxLines = 1, + color = OutlinedTextFieldDefaults.colors().disabledPlaceholderColor, + overflow = TextOverflow.Clip, + softWrap = false, + ) + }, + innerTextField = { + Box( + Modifier + .width(IntrinsicSize.Min) + .height(48.dp), + contentAlignment = Alignment.CenterStart, + ) { innerTextField() } + }, + singleLine = true, + colors = if (isEditing) { + OutlinedTextFieldDefaults.colors() + } else { + OutlinedTextFieldDefaults.colors( + unfocusedBorderColor = Color.Transparent, + focusedBorderColor = Color.Transparent, + disabledBorderColor = Color.Transparent, + disabledTextColor = LocalContentColor.current, + ) + }, + isError = error != null, + enabled = isEditing, + supportingText = if (error == null) { + null + } else { + { Text(error, maxLines = 1) } + }, + visualTransformation = VisualTransformation.None, + interactionSource = interactionSource, + contentPadding = TextFieldDefaults.contentPaddingWithoutLabel( + top = 0.dp, + bottom = 0.dp, + end = 4.dp, + start = 8.dp, + ), + ) + } + + if (isEditing) { + IconButton(onClick = onConfirmClick) { + Icon( + Icons.Rounded.Done, + contentDescription = confirmContentDescription, + ) + } + } else { + IconButton(onClick = onEditClick) { + Icon( + Icons.Rounded.Edit, + contentDescription = editContentDescription, + ) + } + } + } + } +} diff --git a/base/src/main/res/values/strings.xml b/base/src/main/res/values/strings.xml index e327b97cf2..714b286a02 100644 --- a/base/src/main/res/values/strings.xml +++ b/base/src/main/res/values/strings.xml @@ -66,6 +66,13 @@ Enabled Disabled + Undo + Redo + (no name) + Edit key map name + Save key map name + Key map enabled + Key map disabled Reset Once you have enabled the device admin, you must DEACTIVATE it if you want to uninstall Key Mapper. diff --git a/base/src/test/java/io/github/sds100/keymapper/base/utils/UndoRedoTest.kt b/base/src/test/java/io/github/sds100/keymapper/base/utils/UndoRedoTest.kt new file mode 100644 index 0000000000..1c9398a26c --- /dev/null +++ b/base/src/test/java/io/github/sds100/keymapper/base/utils/UndoRedoTest.kt @@ -0,0 +1,50 @@ +package io.github.sds100.keymapper.base.utils + +import io.github.sds100.keymapper.common.utils.UndoRedo +import org.hamcrest.MatcherAssert.assertThat +import org.hamcrest.Matchers.`is` +import org.hamcrest.Matchers.nullValue +import org.junit.Test + +class UndoRedoTest { + @Test + fun `undo and redo walk through recorded values`() { + val undoRedo = UndoRedo() + undoRedo.reset(1) + undoRedo.record(2) + undoRedo.record(3) + + assertThat(undoRedo.state.value.canUndo, `is`(true)) + assertThat(undoRedo.state.value.canRedo, `is`(false)) + assertThat(undoRedo.undo(), `is`(2)) + assertThat(undoRedo.undo(), `is`(1)) + assertThat(undoRedo.undo(), `is`(nullValue())) + assertThat(undoRedo.state.value.canUndo, `is`(false)) + assertThat(undoRedo.redo(), `is`(2)) + assertThat(undoRedo.redo(), `is`(3)) + assertThat(undoRedo.redo(), `is`(nullValue())) + } + + @Test + fun `recording after an undo discards the redo branch`() { + val undoRedo = UndoRedo() + undoRedo.reset(1) + undoRedo.record(2) + undoRedo.undo() + undoRedo.record(3) + + assertThat(undoRedo.state.value.canRedo, `is`(false)) + assertThat(undoRedo.undo(), `is`(1)) + } + + @Test + fun `reset clears history`() { + val undoRedo = UndoRedo() + undoRedo.reset(1) + undoRedo.record(2) + undoRedo.reset(5) + + assertThat(undoRedo.state.value.canUndo, `is`(false)) + assertThat(undoRedo.state.value.canRedo, `is`(false)) + } +} diff --git a/common/src/main/java/io/github/sds100/keymapper/common/utils/UndoRedo.kt b/common/src/main/java/io/github/sds100/keymapper/common/utils/UndoRedo.kt new file mode 100644 index 0000000000..ca216c5d96 --- /dev/null +++ b/common/src/main/java/io/github/sds100/keymapper/common/utils/UndoRedo.kt @@ -0,0 +1,49 @@ +package io.github.sds100.keymapper.common.utils + +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.asStateFlow + +class UndoRedo { + private var history = mutableListOf() + private var index = -1 + + private val _state = MutableStateFlow(UndoRedoState()) + val state: StateFlow = _state.asStateFlow() + + fun record(value: T) { + history = history.subList(0, index + 1).toMutableList() + history.add(value) + index = history.size - 1 + updateState() + } + + fun undo(): T? { + if (index <= 0) return null + index-- + updateState() + return history[index] + } + + fun redo(): T? { + if (index >= history.size - 1) return null + index++ + updateState() + return history[index] + } + + fun reset(value: T) { + history = mutableListOf(value) + index = 0 + updateState() + } + + private fun updateState() { + _state.value = UndoRedoState( + canUndo = index > 0, + canRedo = index < history.size - 1, + ) + } +} + +data class UndoRedoState(val canUndo: Boolean = false, val canRedo: Boolean = false) diff --git a/data/schemas/io.github.sds100.keymapper.data.db.AppDatabase/24.json b/data/schemas/io.github.sds100.keymapper.data.db.AppDatabase/24.json new file mode 100644 index 0000000000..132a81cc76 --- /dev/null +++ b/data/schemas/io.github.sds100.keymapper.data.db.AppDatabase/24.json @@ -0,0 +1,487 @@ +{ + "formatVersion": 1, + "database": { + "version": 24, + "identityHash": "b6ab5dd08c70b9aed641c167d364511d", + "entities": [ + { + "tableName": "keymaps", + "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `trigger` TEXT NOT NULL, `action_list` TEXT NOT NULL, `constraint_list` TEXT NOT NULL, `constraint_mode` INTEGER NOT NULL, `constraint_groups` TEXT NOT NULL DEFAULT '[]', `flags` INTEGER NOT NULL, `is_enabled` INTEGER NOT NULL, `uid` TEXT NOT NULL, `group_uid` TEXT, `name` TEXT, FOREIGN KEY(`group_uid`) REFERENCES `groups`(`uid`) ON UPDATE NO ACTION ON DELETE CASCADE )", + "fields": [ + { + "fieldPath": "id", + "columnName": "id", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "trigger", + "columnName": "trigger", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "actionList", + "columnName": "action_list", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "constraintList", + "columnName": "constraint_list", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "constraintMode", + "columnName": "constraint_mode", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "constraintGroups", + "columnName": "constraint_groups", + "affinity": "TEXT", + "notNull": true, + "defaultValue": "'[]'" + }, + { + "fieldPath": "flags", + "columnName": "flags", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "isEnabled", + "columnName": "is_enabled", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "uid", + "columnName": "uid", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "groupUid", + "columnName": "group_uid", + "affinity": "TEXT" + }, + { + "fieldPath": "name", + "columnName": "name", + "affinity": "TEXT" + } + ], + "primaryKey": { + "autoGenerate": true, + "columnNames": [ + "id" + ] + }, + "indices": [ + { + "name": "index_keymaps_uid", + "unique": true, + "columnNames": [ + "uid" + ], + "orders": [], + "createSql": "CREATE UNIQUE INDEX IF NOT EXISTS `index_keymaps_uid` ON `${TABLE_NAME}` (`uid`)" + } + ], + "foreignKeys": [ + { + "table": "groups", + "onDelete": "CASCADE", + "onUpdate": "NO ACTION", + "columns": [ + "group_uid" + ], + "referencedColumns": [ + "uid" + ] + } + ] + }, + { + "tableName": "fingerprintmaps", + "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER NOT NULL, `action_list` TEXT NOT NULL, `constraint_list` TEXT NOT NULL, `constraint_mode` INTEGER NOT NULL, `extras` TEXT NOT NULL, `flags` INTEGER NOT NULL, `is_enabled` INTEGER NOT NULL, PRIMARY KEY(`id`))", + "fields": [ + { + "fieldPath": "id", + "columnName": "id", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "actionList", + "columnName": "action_list", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "constraintList", + "columnName": "constraint_list", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "constraintMode", + "columnName": "constraint_mode", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "extras", + "columnName": "extras", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "flags", + "columnName": "flags", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "isEnabled", + "columnName": "is_enabled", + "affinity": "INTEGER", + "notNull": true + } + ], + "primaryKey": { + "autoGenerate": false, + "columnNames": [ + "id" + ] + } + }, + { + "tableName": "log", + "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `time` INTEGER NOT NULL, `severity` INTEGER NOT NULL, `message` TEXT NOT NULL)", + "fields": [ + { + "fieldPath": "id", + "columnName": "id", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "time", + "columnName": "time", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "severity", + "columnName": "severity", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "message", + "columnName": "message", + "affinity": "TEXT", + "notNull": true + } + ], + "primaryKey": { + "autoGenerate": true, + "columnNames": [ + "id" + ] + } + }, + { + "tableName": "floating_layouts", + "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`uid` TEXT NOT NULL, `name` TEXT NOT NULL, PRIMARY KEY(`uid`))", + "fields": [ + { + "fieldPath": "uid", + "columnName": "uid", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "name", + "columnName": "name", + "affinity": "TEXT", + "notNull": true + } + ], + "primaryKey": { + "autoGenerate": false, + "columnNames": [ + "uid" + ] + }, + "indices": [ + { + "name": "index_floating_layouts_name", + "unique": true, + "columnNames": [ + "name" + ], + "orders": [], + "createSql": "CREATE UNIQUE INDEX IF NOT EXISTS `index_floating_layouts_name` ON `${TABLE_NAME}` (`name`)" + } + ] + }, + { + "tableName": "floating_buttons", + "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`uid` TEXT NOT NULL, `layout_uid` TEXT NOT NULL, `text` TEXT NOT NULL, `button_size` INTEGER NOT NULL, `x` INTEGER NOT NULL, `y` INTEGER NOT NULL, `orientation` TEXT NOT NULL, `display_width` INTEGER NOT NULL, `display_height` INTEGER NOT NULL, `border_opacity` REAL, `background_opacity` REAL, `show_over_status_bar` INTEGER, `show_over_input_method` INTEGER, `position_locked` INTEGER, PRIMARY KEY(`uid`), FOREIGN KEY(`layout_uid`) REFERENCES `floating_layouts`(`uid`) ON UPDATE NO ACTION ON DELETE CASCADE )", + "fields": [ + { + "fieldPath": "uid", + "columnName": "uid", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "layoutUid", + "columnName": "layout_uid", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "text", + "columnName": "text", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "buttonSize", + "columnName": "button_size", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "x", + "columnName": "x", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "y", + "columnName": "y", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "orientation", + "columnName": "orientation", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "displayWidth", + "columnName": "display_width", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "displayHeight", + "columnName": "display_height", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "borderOpacity", + "columnName": "border_opacity", + "affinity": "REAL" + }, + { + "fieldPath": "backgroundOpacity", + "columnName": "background_opacity", + "affinity": "REAL" + }, + { + "fieldPath": "showOverStatusBar", + "columnName": "show_over_status_bar", + "affinity": "INTEGER" + }, + { + "fieldPath": "showOverInputMethod", + "columnName": "show_over_input_method", + "affinity": "INTEGER" + }, + { + "fieldPath": "isPositionLocked", + "columnName": "position_locked", + "affinity": "INTEGER" + } + ], + "primaryKey": { + "autoGenerate": false, + "columnNames": [ + "uid" + ] + }, + "indices": [ + { + "name": "index_floating_buttons_layout_uid", + "unique": false, + "columnNames": [ + "layout_uid" + ], + "orders": [], + "createSql": "CREATE INDEX IF NOT EXISTS `index_floating_buttons_layout_uid` ON `${TABLE_NAME}` (`layout_uid`)" + } + ], + "foreignKeys": [ + { + "table": "floating_layouts", + "onDelete": "CASCADE", + "onUpdate": "NO ACTION", + "columns": [ + "layout_uid" + ], + "referencedColumns": [ + "uid" + ] + } + ] + }, + { + "tableName": "groups", + "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`uid` TEXT NOT NULL, `name` TEXT NOT NULL, `constraints` TEXT NOT NULL, `constraint_mode` INTEGER NOT NULL, `parent_uid` TEXT, `last_opened_date` INTEGER, PRIMARY KEY(`uid`), FOREIGN KEY(`parent_uid`) REFERENCES `groups`(`uid`) ON UPDATE NO ACTION ON DELETE CASCADE )", + "fields": [ + { + "fieldPath": "uid", + "columnName": "uid", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "name", + "columnName": "name", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "constraintList", + "columnName": "constraints", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "constraintMode", + "columnName": "constraint_mode", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "parentUid", + "columnName": "parent_uid", + "affinity": "TEXT" + }, + { + "fieldPath": "lastOpenedDate", + "columnName": "last_opened_date", + "affinity": "INTEGER" + } + ], + "primaryKey": { + "autoGenerate": false, + "columnNames": [ + "uid" + ] + }, + "foreignKeys": [ + { + "table": "groups", + "onDelete": "CASCADE", + "onUpdate": "NO ACTION", + "columns": [ + "parent_uid" + ], + "referencedColumns": [ + "uid" + ] + } + ] + }, + { + "tableName": "accessibility_nodes", + "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `package_name` TEXT NOT NULL, `text` TEXT, `content_description` TEXT, `class_name` TEXT, `view_resource_id` TEXT, `unique_id` TEXT, `actions` INTEGER NOT NULL, `interacted` INTEGER NOT NULL DEFAULT false, `tooltip` TEXT DEFAULT NULL, `hint` TEXT DEFAULT NULL)", + "fields": [ + { + "fieldPath": "id", + "columnName": "id", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "packageName", + "columnName": "package_name", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "text", + "columnName": "text", + "affinity": "TEXT" + }, + { + "fieldPath": "contentDescription", + "columnName": "content_description", + "affinity": "TEXT" + }, + { + "fieldPath": "className", + "columnName": "class_name", + "affinity": "TEXT" + }, + { + "fieldPath": "viewResourceId", + "columnName": "view_resource_id", + "affinity": "TEXT" + }, + { + "fieldPath": "uniqueId", + "columnName": "unique_id", + "affinity": "TEXT" + }, + { + "fieldPath": "actions", + "columnName": "actions", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "interacted", + "columnName": "interacted", + "affinity": "INTEGER", + "notNull": true, + "defaultValue": "false" + }, + { + "fieldPath": "tooltip", + "columnName": "tooltip", + "affinity": "TEXT", + "defaultValue": "NULL" + }, + { + "fieldPath": "hint", + "columnName": "hint", + "affinity": "TEXT", + "defaultValue": "NULL" + } + ], + "primaryKey": { + "autoGenerate": true, + "columnNames": [ + "id" + ] + } + } + ], + "setupQueries": [ + "CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)", + "INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, 'b6ab5dd08c70b9aed641c167d364511d')" + ] + } +} \ No newline at end of file diff --git a/data/src/main/java/io/github/sds100/keymapper/data/db/AppDatabase.kt b/data/src/main/java/io/github/sds100/keymapper/data/db/AppDatabase.kt index 522cc55bd9..ec6eaddb5c 100644 --- a/data/src/main/java/io/github/sds100/keymapper/data/db/AppDatabase.kt +++ b/data/src/main/java/io/github/sds100/keymapper/data/db/AppDatabase.kt @@ -36,6 +36,7 @@ import io.github.sds100.keymapper.data.migration.AutoMigration19To20 import io.github.sds100.keymapper.data.migration.AutoMigration20To21 import io.github.sds100.keymapper.data.migration.AutoMigration21To22 import io.github.sds100.keymapper.data.migration.AutoMigration22To23 +import io.github.sds100.keymapper.data.migration.AutoMigration23To24 import io.github.sds100.keymapper.data.migration.Migration10To11 import io.github.sds100.keymapper.data.migration.Migration11To12 import io.github.sds100.keymapper.data.migration.Migration13To14 @@ -73,6 +74,8 @@ import io.github.sds100.keymapper.data.migration.Migration9To10 AutoMigration(from = 21, to = 22, spec = AutoMigration21To22::class), // Adds the constraint_groups column to key maps AutoMigration(from = 22, to = 23, spec = AutoMigration22To23::class), + // Adds the name column to key maps + AutoMigration(from = 23, to = 24, spec = AutoMigration23To24::class), ], ) @TypeConverters( @@ -85,7 +88,7 @@ import io.github.sds100.keymapper.data.migration.Migration9To10 abstract class AppDatabase : RoomDatabase() { companion object { const val DATABASE_NAME = "key_map_database" - const val DATABASE_VERSION = 23 + const val DATABASE_VERSION = 24 val MIGRATION_1_2 = object : Migration(1, 2) { diff --git a/data/src/main/java/io/github/sds100/keymapper/data/db/dao/KeyMapDao.kt b/data/src/main/java/io/github/sds100/keymapper/data/db/dao/KeyMapDao.kt index 51eabc0605..4566c833da 100644 --- a/data/src/main/java/io/github/sds100/keymapper/data/db/dao/KeyMapDao.kt +++ b/data/src/main/java/io/github/sds100/keymapper/data/db/dao/KeyMapDao.kt @@ -23,6 +23,7 @@ interface KeyMapDao { const val KEY_CONSTRAINT_GROUPS = "constraint_groups" const val KEY_UID = "uid" const val KEY_GROUP_UID = "group_uid" + const val KEY_NAME = "name" } @Query("SELECT * FROM $TABLE_NAME WHERE $KEY_ID = (:id)") diff --git a/data/src/main/java/io/github/sds100/keymapper/data/entities/KeyMapEntity.kt b/data/src/main/java/io/github/sds100/keymapper/data/entities/KeyMapEntity.kt index c516336c78..6ca3f5d1ad 100644 --- a/data/src/main/java/io/github/sds100/keymapper/data/entities/KeyMapEntity.kt +++ b/data/src/main/java/io/github/sds100/keymapper/data/entities/KeyMapEntity.kt @@ -79,6 +79,10 @@ data class KeyMapEntity( @SerializedName(NAME_GROUP_UID) @ColumnInfo(name = KeyMapDao.KEY_GROUP_UID) val groupUid: String? = null, + + @SerializedName(NAME_NAME) + @ColumnInfo(name = KeyMapDao.KEY_NAME) + val name: String? = null, ) : Parcelable { companion object { @@ -93,6 +97,7 @@ data class KeyMapEntity( const val NAME_IS_ENABLED = "isEnabled" const val NAME_UID = "uid" const val NAME_GROUP_UID = "group_uid" + const val NAME_NAME = "name" val DESERIALIZER = jsonDeserializer { val actionListJsonArray by it.json.byArray(NAME_ACTION_LIST) @@ -115,6 +120,7 @@ data class KeyMapEntity( val isEnabled by it.json.byBool(NAME_IS_ENABLED) val uid by it.json.byString(NAME_UID) { UUID.randomUUID().toString() } val groupUid by it.json.byNullableString(NAME_GROUP_UID) + val name by it.json.byNullableString(NAME_NAME) KeyMapEntity( id = 0, @@ -127,6 +133,7 @@ data class KeyMapEntity( isEnabled = isEnabled, uid = uid, groupUid = groupUid, + name = name, ) } } diff --git a/data/src/main/java/io/github/sds100/keymapper/data/migration/AutoMigration23To24.kt b/data/src/main/java/io/github/sds100/keymapper/data/migration/AutoMigration23To24.kt new file mode 100644 index 0000000000..f123ace5be --- /dev/null +++ b/data/src/main/java/io/github/sds100/keymapper/data/migration/AutoMigration23To24.kt @@ -0,0 +1,5 @@ +package io.github.sds100.keymapper.data.migration + +import androidx.room.migration.AutoMigrationSpec + +class AutoMigration23To24 : AutoMigrationSpec From 0f4d0d2c28a22c556e37f26c436b3ed9a9169134 Mon Sep 17 00:00:00 2001 From: sds100 Date: Sun, 27 Sep 2026 11:32:36 +0200 Subject: [PATCH 05/64] #2270 fix: use more visible outline on Select all button --- .../github/sds100/keymapper/base/home/KeyMapListAppBar.kt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/base/src/main/java/io/github/sds100/keymapper/base/home/KeyMapListAppBar.kt b/base/src/main/java/io/github/sds100/keymapper/base/home/KeyMapListAppBar.kt index 16541a7589..2bc29c702a 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/home/KeyMapListAppBar.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/home/KeyMapListAppBar.kt @@ -10,6 +10,7 @@ import androidx.compose.animation.fadeOut import androidx.compose.animation.slideInVertically import androidx.compose.animation.slideOutVertically import androidx.compose.animation.togetherWith +import androidx.compose.foundation.BorderStroke import androidx.compose.foundation.layout.IntrinsicSize import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.Row @@ -62,13 +63,13 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.focus.FocusRequester -import androidx.compose.ui.focus.focusRequester import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.res.pluralStringResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.TextRange import androidx.compose.ui.text.input.TextFieldValue import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.tooling.preview.PreviewLightDark import androidx.compose.ui.unit.dp import io.github.sds100.keymapper.base.R import io.github.sds100.keymapper.base.compose.KeyMapperTheme @@ -387,6 +388,7 @@ private fun SelectingAppBar( OutlinedButton( modifier = Modifier.padding(horizontal = 8.dp), onClick = onSelectAllClick, + border = BorderStroke(1.dp, MaterialTheme.colorScheme.outline), ) { val text = if (state.isAllSelected) { stringResource(R.string.home_app_bar_deselect_all) @@ -781,7 +783,7 @@ private fun HomeStateWarningsPreview() { } @OptIn(ExperimentalMaterial3Api::class) -@Preview +@PreviewLightDark @Composable private fun HomeStateSelectingPreview() { val state = KeyMapAppBarState.Selecting( From 09835f8b87c477a9922956f02d42ba5ca64edd74 Mon Sep 17 00:00:00 2001 From: sds100 Date: Sun, 27 Sep 2026 11:40:06 +0200 Subject: [PATCH 06/64] fix: put Fix button on same row as key map name in home screen --- .../base/home/HomeKeyMapListScreen.kt | 2 +- .../keymapper/base/home/KeyMapListItem.kt | 34 ++++++++++++++----- 2 files changed, 26 insertions(+), 10 deletions(-) diff --git a/base/src/main/java/io/github/sds100/keymapper/base/home/HomeKeyMapListScreen.kt b/base/src/main/java/io/github/sds100/keymapper/base/home/HomeKeyMapListScreen.kt index 0a717f790d..c366eaedaa 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/home/HomeKeyMapListScreen.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/home/HomeKeyMapListScreen.kt @@ -543,7 +543,7 @@ fun sameKeyMapListItems(): List { "Vibrate when keys are initially pressed and again when long pressed", ), isEnabled = true, - hasError = false, + hasError = true, ), ), KeyMapListItemModel( diff --git a/base/src/main/java/io/github/sds100/keymapper/base/home/KeyMapListItem.kt b/base/src/main/java/io/github/sds100/keymapper/base/home/KeyMapListItem.kt index b6a9e8f07c..1f28fa26b5 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/home/KeyMapListItem.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/home/KeyMapListItem.kt @@ -97,14 +97,30 @@ fun KeyMapListItem( .fillMaxWidth() .padding(start = 16.dp, top = 10.dp, end = 16.dp, bottom = 10.dp), ) { - if (model.content.name.isNotBlank()) { - Text( - modifier = Modifier.padding(bottom = 4.dp), - text = model.content.name, - style = MaterialTheme.typography.titleMedium, - maxLines = 1, - overflow = TextOverflow.Ellipsis, - ) + val showName = model.content.name.isNotBlank() + + if (showName) { + Row( + modifier = Modifier.heightIn(min = chipHeight), + horizontalArrangement = Arrangement.spacedBy(8.dp), + ) { + Text( + modifier = Modifier + .weight(1f) + .align(Alignment.CenterVertically), + text = model.content.name, + style = MaterialTheme.typography.titleMedium, + maxLines = 1, + overflow = TextOverflow.Ellipsis, + ) + + if (model.content.isEnabled && model.content.hasError) { + CompactErrorButton(onClick = onFixClick) { + Text(stringResource(R.string.button_fix)) + } + } + } + Spacer(Modifier.height(8.dp)) } Row( @@ -119,7 +135,7 @@ fun KeyMapListItem( separator = model.content.triggerSeparatorIcon, ) - if (model.content.isEnabled && model.content.hasError) { + if (!showName && model.content.isEnabled && model.content.hasError) { CompactErrorButton(onClick = onFixClick) { Text(stringResource(R.string.button_fix)) } From f3a51220bdfe766381c6492c9acd13ff2184861a Mon Sep 17 00:00:00 2001 From: sds100 Date: Sun, 27 Sep 2026 11:53:50 +0200 Subject: [PATCH 07/64] #2268 fix: use trampoline when launching device assistant and settings apps when the device is locked so the lock screen dismisses. --- CHANGELOG.md | 4 ++ .../apps/AndroidPackageManagerAdapter.kt | 59 +++++++++++-------- 2 files changed, 40 insertions(+), 23 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 968f490168..c46a5593d6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,10 @@ - #2252 redesigned the app bar when configuring a key map. Changes are saved automatically so there is no Done button, and the help button was removed. +## Fixed + +- #2268 use trampoline when launching device assistant and settings apps when the device is locked so the lock screen dismisses. + ## [4.5.0](https://github.com/sds100/KeyMapper/releases/tag/v4.5.0) #### 21 September 2026 diff --git a/system/src/main/java/io/github/sds100/keymapper/system/apps/AndroidPackageManagerAdapter.kt b/system/src/main/java/io/github/sds100/keymapper/system/apps/AndroidPackageManagerAdapter.kt index 02a6ed7229..afc4c26d1c 100644 --- a/system/src/main/java/io/github/sds100/keymapper/system/apps/AndroidPackageManagerAdapter.kt +++ b/system/src/main/java/io/github/sds100/keymapper/system/apps/AndroidPackageManagerAdapter.kt @@ -151,6 +151,9 @@ class AndroidPackageManagerAdapter @Inject constructor( try { Intent(Intent.ACTION_VOICE_COMMAND).apply { flags = Intent.FLAG_ACTIVITY_NEW_TASK + + // DO NOT use trampoline activity. The voice assistant app + // should be able to launch without unlocking. ctx.startActivity(this) } @@ -164,7 +167,7 @@ class AndroidPackageManagerAdapter @Inject constructor( try { Intent(Intent.ACTION_ASSIST).apply { flags = Intent.FLAG_ACTIVITY_NEW_TASK - ctx.startActivity(this) + startActivityWithTrampoline(this) } return Success(Unit) @@ -257,31 +260,35 @@ class AndroidPackageManagerAdapter @Inject constructor( return KMError.AppNotFound(packageName) } } else { - // Use a trampoline activity that will dismiss the keyguard when it is locked. - val intent = if (keyguardManager.isKeyguardLocked) { - Intent(ctx, TrampolineActivity::class.java).apply { - putExtra(TrampolineActivity.EXTRA_INTENT, packageIntent) - } - } else { - packageIntent - } - - val pendingIntent = - PendingIntent.getActivity(ctx, 0, intent, PendingIntent.FLAG_IMMUTABLE) + startActivityWithTrampoline(packageIntent) - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) { - val bundle = ActivityOptions.makeBasic() - .setPendingIntentBackgroundActivityStartMode( - ActivityOptions.MODE_BACKGROUND_ACTIVITY_START_ALLOWED, - ) - .toBundle() + return Success(Unit) + } + } - pendingIntent.send(bundle) - } else { - pendingIntent.send() + private fun startActivityWithTrampoline(intent: Intent) { + // Use a trampoline activity that will dismiss the keyguard when it is locked. + val intent = if (keyguardManager.isKeyguardLocked) { + Intent(ctx, TrampolineActivity::class.java).apply { + putExtra(TrampolineActivity.EXTRA_INTENT, intent) } + } else { + intent + } - return Success(Unit) + val pendingIntent = + PendingIntent.getActivity(ctx, 0, intent, PendingIntent.FLAG_IMMUTABLE) + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) { + val bundle = ActivityOptions.makeBasic() + .setPendingIntentBackgroundActivityStartMode( + ActivityOptions.MODE_BACKGROUND_ACTIVITY_START_ALLOWED, + ) + .toBundle() + + pendingIntent.send(bundle) + } else { + pendingIntent.send() } } @@ -303,6 +310,9 @@ class AndroidPackageManagerAdapter @Inject constructor( */ Intent(MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA_SECURE).apply { flags = Intent.FLAG_ACTIVITY_NEW_TASK + + // DO NOT use trampoline activity. The camera app should be able to launch without + // unlocking. ctx.startActivity(this) } @@ -312,6 +322,9 @@ class AndroidPackageManagerAdapter @Inject constructor( try { Intent(MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA).apply { flags = Intent.FLAG_ACTIVITY_NEW_TASK + + // DO NOT use trampoline activity. The camera app should be able to launch + // without unlocking. ctx.startActivity(this) } @@ -326,7 +339,7 @@ class AndroidPackageManagerAdapter @Inject constructor( try { Intent(Settings.ACTION_SETTINGS).apply { flags = Intent.FLAG_ACTIVITY_NEW_TASK - ctx.startActivity(this) + startActivityWithTrampoline(this) } return Success(Unit) From 1c8c74d3d3849af8ea514ac98dbbf9ac370a26e6 Mon Sep 17 00:00:00 2001 From: sds100 Date: Sun, 27 Sep 2026 13:43:36 +0200 Subject: [PATCH 08/64] #2155 feat: the Expert Mode setup wizard now detects Samsung Auto Blocker and guides how to disable it, since it can silently block wireless debugging from staying enabled --- CHANGELOG.md | 1 + .../expertmode/ExpertModeSetupDelegateImpl.kt | 3 - .../base/expertmode/ExpertModeSetupScreen.kt | 295 +++++++++++------- .../base/expertmode/ExpertModeSetupState.kt | 97 +++++- .../expertmode/SystemBridgeSetupDelegate.kt | 262 ++++++---------- .../expertmode/SystemBridgeSetupUseCase.kt | 75 +++-- base/src/main/res/values/strings.xml | 5 + .../SystemBridgeSetupUseCaseTest.kt | 9 + .../service/SystemBridgeSetupController.kt | 23 ++ .../service/SystemBridgeSetupStep.kt | 13 +- .../system/apps/PackageManagerAdapter.kt | 19 +- 11 files changed, 469 insertions(+), 333 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c46a5593d6..7ebf6a70e8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ - #2263 constraints can now be edited in place from the constraints list instead of being deleted and re-added. - #2254 you can now give a key map a custom name, which is shown in the key map list. - #2252 undo and redo changes when configuring a key map. +- #2155 the Expert Mode setup wizard now detects Samsung Auto Blocker and guides how to disable it, since it can silently block wireless debugging from staying enabled. ## Changed diff --git a/base/src/main/java/io/github/sds100/keymapper/base/expertmode/ExpertModeSetupDelegateImpl.kt b/base/src/main/java/io/github/sds100/keymapper/base/expertmode/ExpertModeSetupDelegateImpl.kt index 2d1c491ad9..2bd82304c5 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/expertmode/ExpertModeSetupDelegateImpl.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/expertmode/ExpertModeSetupDelegateImpl.kt @@ -2,7 +2,6 @@ package io.github.sds100.keymapper.base.expertmode import dagger.hilt.android.scopes.ViewModelScoped import io.github.sds100.keymapper.base.utils.navigation.NavigationProvider -import io.github.sds100.keymapper.base.utils.ui.ResourceProvider import javax.inject.Inject import javax.inject.Named import kotlinx.coroutines.CoroutineScope @@ -13,12 +12,10 @@ class ExpertModeSetupDelegateImpl @Inject constructor( @Named("viewmodel") viewModelScope: CoroutineScope, useCase: SystemBridgeSetupUseCase, - resourceProvider: ResourceProvider, private val navigationProvider: NavigationProvider, ) : SystemBridgeSetupDelegateImpl( viewModelScope, useCase, - resourceProvider, ) { override fun onFinishClick() { viewModelScope.launch { diff --git a/base/src/main/java/io/github/sds100/keymapper/base/expertmode/ExpertModeSetupScreen.kt b/base/src/main/java/io/github/sds100/keymapper/base/expertmode/ExpertModeSetupScreen.kt index 231bbe69f8..5002af3262 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/expertmode/ExpertModeSetupScreen.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/expertmode/ExpertModeSetupScreen.kt @@ -26,10 +26,13 @@ import androidx.compose.material.icons.rounded.Lan import androidx.compose.material.icons.rounded.Link import androidx.compose.material.icons.rounded.Notifications import androidx.compose.material.icons.rounded.PlayArrow +import androidx.compose.material.icons.rounded.Security import androidx.compose.material3.Button import androidx.compose.material3.Checkbox import androidx.compose.material3.CircularProgressIndicator +import androidx.compose.material3.ElevatedCard import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.FilledTonalButton import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.LinearProgressIndicator @@ -47,7 +50,6 @@ import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color -import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview @@ -59,7 +61,6 @@ import io.github.sds100.keymapper.base.compose.LocalCustomColorsPalette import io.github.sds100.keymapper.base.utils.ui.compose.icons.KeyMapperIcons import io.github.sds100.keymapper.base.utils.ui.compose.icons.SignalWifiNotConnected import io.github.sds100.keymapper.common.utils.State -import io.github.sds100.keymapper.sysbridge.service.SystemBridgeSetupStep @Composable fun ExpertModeSetupScreen(viewModel: ExpertModeSetupViewModel) { @@ -71,6 +72,7 @@ fun ExpertModeSetupScreen(viewModel: ExpertModeSetupViewModel) { onAssistantClick = viewModel::onSetupAssistantClick, onWatchTutorialClick = { }, onBackClick = viewModel::onBackClick, + onSamsungAutoBlockerWarningClick = viewModel::onSamsungAutoBlockerWarningClick, ) } @@ -82,6 +84,7 @@ fun ExpertModeSetupScreen( onStepButtonClick: () -> Unit = {}, onAssistantClick: () -> Unit = {}, onWatchTutorialClick: () -> Unit = {}, + onSamsungAutoBlockerWarningClick: () -> Unit = {}, ) { Scaffold( topBar = { @@ -106,6 +109,7 @@ fun ExpertModeSetupScreen( onAssistantClick, onWatchTutorialClick, onStepButtonClick, + onSamsungAutoBlockerWarningClick, ) } } @@ -117,6 +121,7 @@ fun ExpertModeSetupScreenContent( onAssistantClick: () -> Unit, onWatchTutorialClick: () -> Unit, onStepButtonClick: () -> Unit, + onSamsungAutoBlockerWarningClick: () -> Unit = {}, ) { when (state) { State.Loading -> { @@ -129,11 +134,12 @@ fun ExpertModeSetupScreenContent( } is State.Data -> { - val stepContent = state.data.stepContent + val stepData = state.data + val stepContent = getStepContent(stepData) // Create animated progress for entrance and updates val progressAnimatable = remember { Animatable(0f) } - val targetProgress = state.data.stepNumber.toFloat() / (state.data.stepCount) + val targetProgress = stepData.stepNumber.toFloat() / (stepData.stepCount) // Animate progress when it changes LaunchedEffect(targetProgress) { @@ -177,8 +183,8 @@ fun ExpertModeSetupScreenContent( Text( text = stringResource( R.string.expert_mode_setup_wizard_step_n, - state.data.stepNumber, - state.data.stepCount, + stepData.stepNumber, + stepData.stepCount, ), style = MaterialTheme.typography.titleLarge, ) @@ -191,17 +197,24 @@ fun ExpertModeSetupScreenContent( AssistantCheckBoxRow( modifier = Modifier.fillMaxWidth(), - isEnabled = state.data.isSetupAssistantButtonEnabled, - isChecked = state.data.isSetupAssistantChecked, + isEnabled = stepData.isSetupAssistantButtonEnabled, + isChecked = stepData.isSetupAssistantChecked, onAssistantClick = onAssistantClick, ) - val iconTint = if (state.data.step == SystemBridgeSetupStep.STARTED) { + val iconTint = if (stepData is ExpertModeSetupState.Started) { LocalCustomColorsPalette.current.green } else { MaterialTheme.colorScheme.onSurface } + val isStarting = stepData is ExpertModeSetupState.StartService && + stepData.isStarting + + val showSamsungAutoBlockerWarning = + stepData is ExpertModeSetupState.WirelessDebugging && + stepData.showSamsungAutoBlockerWarning + StepContent( modifier = Modifier .fillMaxWidth() @@ -211,7 +224,16 @@ fun ExpertModeSetupScreenContent( onWatchTutorialClick = onWatchTutorialClick, onButtonClick = onStepButtonClick, iconTint = iconTint, - isLoading = state.data.isStarting, + isLoading = isStarting, + warningContent = if (showSamsungAutoBlockerWarning) { + { + SamsungAutoBlockerWarningCard( + onClick = onSamsungAutoBlockerWarningClick, + ) + } + } else { + null + }, ) } } @@ -226,6 +248,7 @@ private fun StepContent( onButtonClick: () -> Unit, iconTint: Color = Color.Unspecified, isLoading: Boolean = false, + warningContent: (@Composable () -> Unit)? = null, ) { Column( modifier, @@ -266,6 +289,11 @@ private fun StepContent( textAlign = TextAlign.Center, style = MaterialTheme.typography.bodyMedium, ) + + if (warningContent != null) { + Spacer(modifier = Modifier.height(16.dp)) + warningContent() + } } Spacer(Modifier.height(32.dp)) @@ -288,6 +316,59 @@ private fun StepContent( } } +@Composable +private fun SamsungAutoBlockerWarningCard(modifier: Modifier = Modifier, onClick: () -> Unit) { + SetupWarningCard( + modifier = modifier, + title = stringResource( + R.string.expert_mode_setup_wizard_samsung_auto_blocker_warning_title, + ), + description = stringResource( + R.string.expert_mode_setup_wizard_samsung_auto_blocker_warning_description, + ), + buttonText = stringResource(R.string.expert_mode_setup_wizard_go_to_settings_button), + onButtonClick = onClick, + ) +} + +@Composable +private fun SetupWarningCard( + modifier: Modifier = Modifier, + title: String, + description: String, + buttonText: String, + onButtonClick: () -> Unit, +) { + ElevatedCard(modifier = modifier) { + Column( + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = 16.dp, vertical = 16.dp), + horizontalAlignment = Alignment.CenterHorizontally, + ) { + Text( + text = title, + style = MaterialTheme.typography.titleMedium, + textAlign = TextAlign.Center, + ) + + Spacer(modifier = Modifier.height(8.dp)) + + Text( + text = description, + style = MaterialTheme.typography.bodySmall, + textAlign = TextAlign.Center, + ) + + Spacer(modifier = Modifier.height(12.dp)) + + FilledTonalButton(onClick = onButtonClick) { + Text(buttonText) + } + } + } +} + @Composable private fun AssistantCheckBoxRow( modifier: Modifier, @@ -343,112 +424,107 @@ private fun AssistantCheckBoxRow( } @Composable -private fun getIconForStep(step: SystemBridgeSetupStep): ImageVector { - return when (step) { - SystemBridgeSetupStep.ACCESSIBILITY_SERVICE -> Icons.Rounded.Accessibility - SystemBridgeSetupStep.NOTIFICATION_PERMISSION -> Icons.Rounded.Notifications - SystemBridgeSetupStep.ACCESS_LOCAL_NETWORK_PERMISSION -> Icons.Rounded.Lan - SystemBridgeSetupStep.DEVELOPER_OPTIONS -> Icons.Rounded.Build - SystemBridgeSetupStep.WIFI_NETWORK -> KeyMapperIcons.SignalWifiNotConnected - SystemBridgeSetupStep.WIRELESS_DEBUGGING -> Icons.Rounded.BugReport - SystemBridgeSetupStep.ADB_PAIRING -> Icons.Rounded.Link - SystemBridgeSetupStep.START_SERVICE -> Icons.Rounded.PlayArrow - SystemBridgeSetupStep.STARTED -> Icons.Rounded.CheckCircleOutline - } -} - -@Composable -private fun createPreviewStepContent(step: SystemBridgeSetupStep): StepContent { - val icon = getIconForStep(step) - return when (step) { - SystemBridgeSetupStep.ACCESSIBILITY_SERVICE -> StepContent( +private fun getStepContent(state: ExpertModeSetupState): StepContent { + return when (state) { + is ExpertModeSetupState.AccessibilityService -> StepContent( title = stringResource( R.string.expert_mode_setup_wizard_enable_accessibility_service_title, ), message = stringResource( R.string.expert_mode_setup_wizard_enable_accessibility_service_description, ), - icon = icon, + icon = Icons.Rounded.Accessibility, buttonText = stringResource( R.string.expert_mode_setup_wizard_enable_accessibility_service_button, ), ) - SystemBridgeSetupStep.NOTIFICATION_PERMISSION -> StepContent( + is ExpertModeSetupState.NotificationPermission -> StepContent( title = stringResource( R.string.expert_mode_setup_wizard_enable_notification_permission_title, ), message = stringResource( R.string.expert_mode_setup_wizard_enable_notification_permission_description, ), - icon = icon, + icon = Icons.Rounded.Notifications, buttonText = stringResource( R.string.expert_mode_setup_wizard_enable_notification_permission_button, ), ) - SystemBridgeSetupStep.ACCESS_LOCAL_NETWORK_PERMISSION -> StepContent( + is ExpertModeSetupState.LocalNetworkPermission -> StepContent( title = stringResource( R.string.expert_mode_setup_wizard_local_network_permission_title, ), message = stringResource( R.string.expert_mode_setup_wizard_local_network_permission_description, ), - icon = icon, + icon = Icons.Rounded.Lan, buttonText = stringResource( R.string.expert_mode_setup_wizard_local_network_permission_button, ), ) - SystemBridgeSetupStep.DEVELOPER_OPTIONS -> StepContent( + is ExpertModeSetupState.SamsungAutoBlocker -> StepContent( + title = stringResource( + R.string.expert_mode_setup_wizard_disable_samsung_auto_blocker_title, + ), + message = stringResource( + R.string.expert_mode_setup_wizard_disable_samsung_auto_blocker_description, + ), + icon = Icons.Rounded.Security, + buttonText = stringResource(R.string.expert_mode_setup_wizard_go_to_settings_button), + ) + + is ExpertModeSetupState.DeveloperOptions -> StepContent( title = stringResource( R.string.expert_mode_setup_wizard_enable_developer_options_title, ), message = stringResource( R.string.expert_mode_setup_wizard_enable_developer_options_description, ), - icon = icon, + icon = Icons.Rounded.Build, buttonText = stringResource(R.string.expert_mode_setup_wizard_go_to_settings_button), ) - SystemBridgeSetupStep.WIFI_NETWORK -> StepContent( + is ExpertModeSetupState.WifiNetwork -> StepContent( title = stringResource(R.string.expert_mode_setup_wizard_connect_wifi_title), message = stringResource(R.string.expert_mode_setup_wizard_connect_wifi_description), - icon = icon, + icon = KeyMapperIcons.SignalWifiNotConnected, buttonText = stringResource(R.string.expert_mode_setup_wizard_go_to_settings_button), ) - SystemBridgeSetupStep.WIRELESS_DEBUGGING -> StepContent( + is ExpertModeSetupState.WirelessDebugging -> StepContent( title = stringResource( R.string.expert_mode_setup_wizard_enable_wireless_debugging_title, ), message = stringResource( R.string.expert_mode_setup_wizard_enable_wireless_debugging_description, ), - icon = icon, + icon = Icons.Rounded.BugReport, buttonText = stringResource(R.string.expert_mode_setup_wizard_go_to_settings_button), ) - SystemBridgeSetupStep.ADB_PAIRING -> StepContent( + is ExpertModeSetupState.AdbPairing -> StepContent( title = stringResource(R.string.expert_mode_setup_wizard_pair_wireless_debugging_title), message = stringResource( R.string.expert_mode_setup_wizard_pair_wireless_debugging_description, ), - icon = icon, + icon = Icons.Rounded.Link, buttonText = stringResource(R.string.expert_mode_setup_wizard_go_to_settings_button), ) - SystemBridgeSetupStep.START_SERVICE -> StepContent( + is ExpertModeSetupState.StartService -> StepContent( title = stringResource(R.string.expert_mode_setup_wizard_start_service_title), message = stringResource(R.string.expert_mode_setup_wizard_start_service_description), - icon = icon, + icon = Icons.Rounded.PlayArrow, buttonText = stringResource(R.string.expert_mode_root_detected_button_start_service), ) - SystemBridgeSetupStep.STARTED -> StepContent( + is ExpertModeSetupState.Started -> StepContent( title = stringResource(R.string.expert_mode_setup_wizard_complete_title), message = stringResource(R.string.expert_mode_setup_wizard_complete_text), - icon = icon, + icon = Icons.Rounded.CheckCircleOutline, buttonText = stringResource(R.string.expert_mode_setup_wizard_complete_button), ) } @@ -458,17 +534,11 @@ private fun createPreviewStepContent(step: SystemBridgeSetupStep): StepContent { @Composable private fun ExpertModeSetupScreenAccessibilityServicePreview() { KeyMapperTheme { - val step = SystemBridgeSetupStep.ACCESSIBILITY_SERVICE ExpertModeSetupScreen( state = State.Data( - ExpertModeSetupState( + ExpertModeSetupState.AccessibilityService( stepNumber = 1, - stepCount = 6, - step = step, - stepContent = createPreviewStepContent(step), - isSetupAssistantChecked = false, - isSetupAssistantButtonEnabled = false, - isStarting = false, + stepCount = 10, ), ), ) @@ -479,17 +549,12 @@ private fun ExpertModeSetupScreenAccessibilityServicePreview() { @Composable private fun ExpertModeSetupScreenNotificationPermissionPreview() { KeyMapperTheme { - val step = SystemBridgeSetupStep.NOTIFICATION_PERMISSION ExpertModeSetupScreen( state = State.Data( - ExpertModeSetupState( + ExpertModeSetupState.NotificationPermission( stepNumber = 2, - stepCount = 6, - step = step, - stepContent = createPreviewStepContent(step), + stepCount = 10, isSetupAssistantChecked = false, - isSetupAssistantButtonEnabled = true, - isStarting = false, ), ), ) @@ -500,17 +565,28 @@ private fun ExpertModeSetupScreenNotificationPermissionPreview() { @Composable private fun ExpertModeSetupScreenLocalNetworkPermissionPreview() { KeyMapperTheme { - val step = SystemBridgeSetupStep.ACCESS_LOCAL_NETWORK_PERMISSION ExpertModeSetupScreen( state = State.Data( - ExpertModeSetupState( + ExpertModeSetupState.LocalNetworkPermission( stepNumber = 3, - stepCount = 9, - step = step, - stepContent = createPreviewStepContent(step), + stepCount = 10, + isSetupAssistantChecked = false, + ), + ), + ) + } +} + +@Preview(name = "Samsung Auto Blocker Step") +@Composable +private fun ExpertModeSetupScreenSamsungAutoBlockerPreview() { + KeyMapperTheme { + ExpertModeSetupScreen( + state = State.Data( + ExpertModeSetupState.SamsungAutoBlocker( + stepNumber = 4, + stepCount = 10, isSetupAssistantChecked = false, - isSetupAssistantButtonEnabled = true, - isStarting = false, ), ), ) @@ -521,17 +597,12 @@ private fun ExpertModeSetupScreenLocalNetworkPermissionPreview() { @Composable private fun ExpertModeSetupScreenDeveloperOptionsPreview() { KeyMapperTheme { - val step = SystemBridgeSetupStep.DEVELOPER_OPTIONS ExpertModeSetupScreen( state = State.Data( - ExpertModeSetupState( - stepNumber = 2, - stepCount = 6, - step = step, - stepContent = createPreviewStepContent(step), + ExpertModeSetupState.DeveloperOptions( + stepNumber = 5, + stepCount = 10, isSetupAssistantChecked = false, - isSetupAssistantButtonEnabled = true, - isStarting = false, ), ), ) @@ -542,17 +613,12 @@ private fun ExpertModeSetupScreenDeveloperOptionsPreview() { @Composable private fun ExpertModeSetupScreenWifiNetworkPreview() { KeyMapperTheme { - val step = SystemBridgeSetupStep.WIFI_NETWORK ExpertModeSetupScreen( state = State.Data( - ExpertModeSetupState( - stepNumber = 3, - stepCount = 6, - step = step, - stepContent = createPreviewStepContent(step), + ExpertModeSetupState.WifiNetwork( + stepNumber = 6, + stepCount = 10, isSetupAssistantChecked = false, - isSetupAssistantButtonEnabled = true, - isStarting = false, ), ), ) @@ -563,17 +629,30 @@ private fun ExpertModeSetupScreenWifiNetworkPreview() { @Composable private fun ExpertModeSetupScreenWirelessDebuggingPreview() { KeyMapperTheme { - val step = SystemBridgeSetupStep.WIRELESS_DEBUGGING ExpertModeSetupScreen( state = State.Data( - ExpertModeSetupState( - stepNumber = 4, - stepCount = 6, - step = step, - stepContent = createPreviewStepContent(step), + ExpertModeSetupState.WirelessDebugging( + stepNumber = 7, + stepCount = 10, isSetupAssistantChecked = false, - isSetupAssistantButtonEnabled = true, - isStarting = false, + showSamsungAutoBlockerWarning = false, + ), + ), + ) + } +} + +@Preview(name = "Wireless Debugging Step (Auto Blocker Warning)") +@Composable +private fun ExpertModeSetupScreenWirelessDebuggingAutoBlockerWarningPreview() { + KeyMapperTheme { + ExpertModeSetupScreen( + state = State.Data( + ExpertModeSetupState.WirelessDebugging( + stepNumber = 7, + stepCount = 10, + isSetupAssistantChecked = false, + showSamsungAutoBlockerWarning = true, ), ), ) @@ -584,17 +663,12 @@ private fun ExpertModeSetupScreenWirelessDebuggingPreview() { @Composable private fun ExpertModeSetupScreenAdbPairingPreview() { KeyMapperTheme { - val step = SystemBridgeSetupStep.ADB_PAIRING ExpertModeSetupScreen( state = State.Data( - ExpertModeSetupState( - stepNumber = 5, - stepCount = 6, - step = step, - stepContent = createPreviewStepContent(step), + ExpertModeSetupState.AdbPairing( + stepNumber = 8, + stepCount = 10, isSetupAssistantChecked = true, - isSetupAssistantButtonEnabled = true, - isStarting = false, ), ), ) @@ -605,16 +679,12 @@ private fun ExpertModeSetupScreenAdbPairingPreview() { @Composable private fun ExpertModeSetupScreenStartServicePreview() { KeyMapperTheme { - val step = SystemBridgeSetupStep.START_SERVICE ExpertModeSetupScreen( state = State.Data( - ExpertModeSetupState( - stepNumber = 6, - stepCount = 6, - step = step, - stepContent = createPreviewStepContent(step), + ExpertModeSetupState.StartService( + stepNumber = 9, + stepCount = 10, isSetupAssistantChecked = true, - isSetupAssistantButtonEnabled = true, isStarting = false, ), ), @@ -626,17 +696,12 @@ private fun ExpertModeSetupScreenStartServicePreview() { @Composable private fun ExpertModeSetupScreenStartedPreview() { KeyMapperTheme { - val step = SystemBridgeSetupStep.STARTED ExpertModeSetupScreen( state = State.Data( - ExpertModeSetupState( - stepNumber = 8, - stepCount = 8, - step = step, - stepContent = createPreviewStepContent(step), + ExpertModeSetupState.Started( + stepNumber = 10, + stepCount = 10, isSetupAssistantChecked = true, - isSetupAssistantButtonEnabled = true, - isStarting = false, ), ), ) diff --git a/base/src/main/java/io/github/sds100/keymapper/base/expertmode/ExpertModeSetupState.kt b/base/src/main/java/io/github/sds100/keymapper/base/expertmode/ExpertModeSetupState.kt index f920a4aad3..ebf8eb122d 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/expertmode/ExpertModeSetupState.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/expertmode/ExpertModeSetupState.kt @@ -1,13 +1,88 @@ package io.github.sds100.keymapper.base.expertmode -import io.github.sds100.keymapper.sysbridge.service.SystemBridgeSetupStep - -data class ExpertModeSetupState( - val stepNumber: Int, - val stepCount: Int, - val step: SystemBridgeSetupStep, - val stepContent: StepContent, - val isSetupAssistantChecked: Boolean, - val isSetupAssistantButtonEnabled: Boolean, - val isStarting: Boolean, -) +sealed class ExpertModeSetupState { + abstract val stepNumber: Int + abstract val stepCount: Int + abstract val isSetupAssistantChecked: Boolean + abstract val isSetupAssistantButtonEnabled: Boolean + + data class AccessibilityService(override val stepNumber: Int, override val stepCount: Int) : + ExpertModeSetupState() { + override val isSetupAssistantChecked: Boolean = false + override val isSetupAssistantButtonEnabled: Boolean = false + } + + data class NotificationPermission( + override val stepNumber: Int, + override val stepCount: Int, + override val isSetupAssistantChecked: Boolean, + ) : ExpertModeSetupState() { + override val isSetupAssistantButtonEnabled: Boolean = true + } + + data class LocalNetworkPermission( + override val stepNumber: Int, + override val stepCount: Int, + override val isSetupAssistantChecked: Boolean, + ) : ExpertModeSetupState() { + override val isSetupAssistantButtonEnabled: Boolean = true + } + + data class SamsungAutoBlocker( + override val stepNumber: Int, + override val stepCount: Int, + override val isSetupAssistantChecked: Boolean, + ) : ExpertModeSetupState() { + override val isSetupAssistantButtonEnabled: Boolean = true + } + + data class DeveloperOptions( + override val stepNumber: Int, + override val stepCount: Int, + override val isSetupAssistantChecked: Boolean, + ) : ExpertModeSetupState() { + override val isSetupAssistantButtonEnabled: Boolean = true + } + + data class WifiNetwork( + override val stepNumber: Int, + override val stepCount: Int, + override val isSetupAssistantChecked: Boolean, + ) : ExpertModeSetupState() { + override val isSetupAssistantButtonEnabled: Boolean = true + } + + data class WirelessDebugging( + override val stepNumber: Int, + override val stepCount: Int, + override val isSetupAssistantChecked: Boolean, + val showSamsungAutoBlockerWarning: Boolean, + ) : ExpertModeSetupState() { + override val isSetupAssistantButtonEnabled: Boolean = true + } + + data class AdbPairing( + override val stepNumber: Int, + override val stepCount: Int, + override val isSetupAssistantChecked: Boolean, + ) : ExpertModeSetupState() { + override val isSetupAssistantButtonEnabled: Boolean = true + } + + data class StartService( + override val stepNumber: Int, + override val stepCount: Int, + override val isSetupAssistantChecked: Boolean, + val isStarting: Boolean, + ) : ExpertModeSetupState() { + override val isSetupAssistantButtonEnabled: Boolean = true + } + + data class Started( + override val stepNumber: Int, + override val stepCount: Int, + override val isSetupAssistantChecked: Boolean, + ) : ExpertModeSetupState() { + override val isSetupAssistantButtonEnabled: Boolean = false + } +} diff --git a/base/src/main/java/io/github/sds100/keymapper/base/expertmode/SystemBridgeSetupDelegate.kt b/base/src/main/java/io/github/sds100/keymapper/base/expertmode/SystemBridgeSetupDelegate.kt index 28a16c14d4..9fe4e6111f 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/expertmode/SystemBridgeSetupDelegate.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/expertmode/SystemBridgeSetupDelegate.kt @@ -1,18 +1,5 @@ package io.github.sds100.keymapper.base.expertmode -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.Accessibility -import androidx.compose.material.icons.rounded.BugReport -import androidx.compose.material.icons.rounded.Build -import androidx.compose.material.icons.rounded.CheckCircleOutline -import androidx.compose.material.icons.rounded.Lan -import androidx.compose.material.icons.rounded.Link -import androidx.compose.material.icons.rounded.Notifications -import androidx.compose.material.icons.rounded.PlayArrow -import io.github.sds100.keymapper.base.R -import io.github.sds100.keymapper.base.utils.ui.ResourceProvider -import io.github.sds100.keymapper.base.utils.ui.compose.icons.KeyMapperIcons -import io.github.sds100.keymapper.base.utils.ui.compose.icons.SignalWifiNotConnected import io.github.sds100.keymapper.common.utils.State import io.github.sds100.keymapper.common.utils.dataOrNull import io.github.sds100.keymapper.sysbridge.service.SystemBridgeSetupStep @@ -25,14 +12,13 @@ import kotlinx.coroutines.flow.stateIn abstract class SystemBridgeSetupDelegateImpl( val viewModelScope: CoroutineScope, private val useCase: SystemBridgeSetupUseCase, - private val resourceProvider: ResourceProvider, -) : SystemBridgeSetupDelegate, - ResourceProvider by resourceProvider { +) : SystemBridgeSetupDelegate { override val setupState: StateFlow> = combine( useCase.nextSetupStep, useCase.isSetupAssistantEnabled, useCase.isSystemBridgeStarting, + useCase.hasSamsungAutoBlocker, ::buildState, ).stateIn( viewModelScope, @@ -43,19 +29,21 @@ abstract class SystemBridgeSetupDelegateImpl( override fun onSetupStepButtonClick() { // Do not check the latest value in the use case because there is significant latency // when it is checking whether it is paired - val currentStep = setupState.value.dataOrNull()?.step ?: return + val currentState = setupState.value.dataOrNull() ?: return - when (currentStep) { - SystemBridgeSetupStep.ACCESSIBILITY_SERVICE -> useCase.enableAccessibilityService() - SystemBridgeSetupStep.NOTIFICATION_PERMISSION -> useCase.requestNotificationPermission() - SystemBridgeSetupStep.ACCESS_LOCAL_NETWORK_PERMISSION -> + when (currentState) { + is ExpertModeSetupState.AccessibilityService -> useCase.enableAccessibilityService() + is ExpertModeSetupState.NotificationPermission -> + useCase.requestNotificationPermission() + is ExpertModeSetupState.LocalNetworkPermission -> useCase.requestLocalNetworkPermission() - SystemBridgeSetupStep.DEVELOPER_OPTIONS -> useCase.enableDeveloperOptions() - SystemBridgeSetupStep.WIFI_NETWORK -> useCase.connectWifiNetwork() - SystemBridgeSetupStep.WIRELESS_DEBUGGING -> useCase.enableWirelessDebugging() - SystemBridgeSetupStep.ADB_PAIRING -> useCase.pairWirelessAdb() - SystemBridgeSetupStep.START_SERVICE -> useCase.startSystemBridgeWithAdb() - SystemBridgeSetupStep.STARTED -> onFinishClick() + is ExpertModeSetupState.SamsungAutoBlocker -> useCase.openSamsungAutoBlockerSettings() + is ExpertModeSetupState.DeveloperOptions -> useCase.enableDeveloperOptions() + is ExpertModeSetupState.WifiNetwork -> useCase.connectWifiNetwork() + is ExpertModeSetupState.WirelessDebugging -> useCase.enableWirelessDebugging() + is ExpertModeSetupState.AdbPairing -> useCase.pairWirelessAdb() + is ExpertModeSetupState.StartService -> useCase.startSystemBridgeWithAdb() + is ExpertModeSetupState.Started -> onFinishClick() } } @@ -65,155 +53,93 @@ abstract class SystemBridgeSetupDelegateImpl( useCase.toggleSetupAssistant() } - override fun getStepContent(step: SystemBridgeSetupStep): StepContent { - return when (step) { - SystemBridgeSetupStep.ACCESSIBILITY_SERVICE -> StepContent( - title = getString( - R.string.expert_mode_setup_wizard_enable_accessibility_service_title, - ), - message = getString( - R.string.expert_mode_setup_wizard_enable_accessibility_service_description, - ), - icon = Icons.Rounded.Accessibility, - buttonText = getString( - R.string.expert_mode_setup_wizard_enable_accessibility_service_button, - ), - ) - - SystemBridgeSetupStep.NOTIFICATION_PERMISSION -> StepContent( - title = getString( - R.string.expert_mode_setup_wizard_enable_notification_permission_title, - ), - message = getString( - R.string.expert_mode_setup_wizard_enable_notification_permission_description, - ), - icon = Icons.Rounded.Notifications, - buttonText = getString( - R.string.expert_mode_setup_wizard_enable_notification_permission_button, - ), - ) - - SystemBridgeSetupStep.ACCESS_LOCAL_NETWORK_PERMISSION -> StepContent( - title = getString( - R.string.expert_mode_setup_wizard_local_network_permission_title, - ), - message = getString( - R.string.expert_mode_setup_wizard_local_network_permission_description, - ), - icon = Icons.Rounded.Lan, - buttonText = getString( - R.string.expert_mode_setup_wizard_local_network_permission_button, - ), - ) - - SystemBridgeSetupStep.DEVELOPER_OPTIONS -> StepContent( - title = getString( - R.string.expert_mode_setup_wizard_enable_developer_options_title, - ), - message = getString( - R.string.expert_mode_setup_wizard_enable_developer_options_description, - ), - icon = Icons.Rounded.Build, - buttonText = getString( - R.string.expert_mode_setup_wizard_go_to_settings_button, - ), - ) - - SystemBridgeSetupStep.WIFI_NETWORK -> StepContent( - title = getString( - R.string.expert_mode_setup_wizard_connect_wifi_title, - ), - message = getString( - R.string.expert_mode_setup_wizard_connect_wifi_description, - ), - icon = KeyMapperIcons.SignalWifiNotConnected, - buttonText = getString( - R.string.expert_mode_setup_wizard_go_to_settings_button, - ), - ) - - SystemBridgeSetupStep.WIRELESS_DEBUGGING -> StepContent( - title = getString( - R.string.expert_mode_setup_wizard_enable_wireless_debugging_title, - ), - message = getString( - R.string.expert_mode_setup_wizard_enable_wireless_debugging_description, - ), - icon = Icons.Rounded.BugReport, - buttonText = getString( - R.string.expert_mode_setup_wizard_go_to_settings_button, - ), - ) - - SystemBridgeSetupStep.ADB_PAIRING -> StepContent( - title = getString( - R.string.expert_mode_setup_wizard_pair_wireless_debugging_title, - ), - message = getString( - R.string.expert_mode_setup_wizard_pair_wireless_debugging_description, - ), - icon = Icons.Rounded.Link, - buttonText = getString( - R.string.expert_mode_setup_wizard_go_to_settings_button, - ), - ) - - SystemBridgeSetupStep.START_SERVICE -> StepContent( - title = getString( - R.string.expert_mode_setup_wizard_start_service_title, - ), - message = getString( - R.string.expert_mode_setup_wizard_start_service_description, - ), - icon = Icons.Rounded.PlayArrow, - buttonText = getString( - R.string.expert_mode_root_detected_button_start_service, - ), - ) - - SystemBridgeSetupStep.STARTED -> StepContent( - title = getString( - R.string.expert_mode_setup_wizard_complete_title, - ), - message = getString( - R.string.expert_mode_setup_wizard_complete_text, - ), - icon = Icons.Rounded.CheckCircleOutline, - buttonText = getString( - R.string.expert_mode_setup_wizard_complete_button, - ), - ) - } + override fun onSamsungAutoBlockerWarningClick() { + useCase.openSamsungAutoBlockerSettings() } private fun buildState( step: SystemBridgeSetupStep, isSetupAssistantUserEnabled: Boolean, isStarting: Boolean, + hasSamsungAutoBlocker: Boolean, ): State.Data { - // Uncheck the setup assistant if the accessibility service is disabled since it is - // required for the setup assistant to work - val isSetupAssistantChecked = if (step == SystemBridgeSetupStep.ACCESSIBILITY_SERVICE) { - false - } else { - isSetupAssistantUserEnabled + val stepNumber = step.stepIndex + 1 + val stepCount = SystemBridgeSetupStep.entries.size + + val state = when (step) { + SystemBridgeSetupStep.ACCESSIBILITY_SERVICE -> + ExpertModeSetupState.AccessibilityService( + stepNumber = stepNumber, + stepCount = stepCount, + ) + + SystemBridgeSetupStep.NOTIFICATION_PERMISSION -> + ExpertModeSetupState.NotificationPermission( + stepNumber = stepNumber, + stepCount = stepCount, + isSetupAssistantChecked = isSetupAssistantUserEnabled, + ) + + SystemBridgeSetupStep.ACCESS_LOCAL_NETWORK_PERMISSION -> + ExpertModeSetupState.LocalNetworkPermission( + stepNumber = stepNumber, + stepCount = stepCount, + isSetupAssistantChecked = isSetupAssistantUserEnabled, + ) + + SystemBridgeSetupStep.SAMSUNG_AUTO_BLOCKER -> + ExpertModeSetupState.SamsungAutoBlocker( + stepNumber = stepNumber, + stepCount = stepCount, + isSetupAssistantChecked = isSetupAssistantUserEnabled, + ) + + SystemBridgeSetupStep.DEVELOPER_OPTIONS -> + ExpertModeSetupState.DeveloperOptions( + stepNumber = stepNumber, + stepCount = stepCount, + isSetupAssistantChecked = isSetupAssistantUserEnabled, + ) + + SystemBridgeSetupStep.WIFI_NETWORK -> + ExpertModeSetupState.WifiNetwork( + stepNumber = stepNumber, + stepCount = stepCount, + isSetupAssistantChecked = isSetupAssistantUserEnabled, + ) + + SystemBridgeSetupStep.WIRELESS_DEBUGGING -> + ExpertModeSetupState.WirelessDebugging( + stepNumber = stepNumber, + stepCount = stepCount, + isSetupAssistantChecked = isSetupAssistantUserEnabled, + showSamsungAutoBlockerWarning = hasSamsungAutoBlocker, + ) + + SystemBridgeSetupStep.ADB_PAIRING -> + ExpertModeSetupState.AdbPairing( + stepNumber = stepNumber, + stepCount = stepCount, + isSetupAssistantChecked = isSetupAssistantUserEnabled, + ) + + SystemBridgeSetupStep.START_SERVICE -> + ExpertModeSetupState.StartService( + stepNumber = stepNumber, + stepCount = stepCount, + isSetupAssistantChecked = isSetupAssistantUserEnabled, + isStarting = isStarting, + ) + + SystemBridgeSetupStep.STARTED -> + ExpertModeSetupState.Started( + stepNumber = stepNumber, + stepCount = stepCount, + isSetupAssistantChecked = isSetupAssistantUserEnabled, + ) } - val stepContent = getStepContent(step) - - return State.Data( - ExpertModeSetupState( - stepNumber = step.stepIndex + 1, - stepCount = SystemBridgeSetupStep.entries.size, - step = step, - stepContent = stepContent, - isSetupAssistantChecked = isSetupAssistantChecked, - isSetupAssistantButtonEnabled = - step != SystemBridgeSetupStep.ACCESSIBILITY_SERVICE && - step != SystemBridgeSetupStep.STARTED, - isStarting = isStarting, - ), - ) + return State.Data(state) } } @@ -221,5 +147,5 @@ interface SystemBridgeSetupDelegate { val setupState: StateFlow> fun onSetupStepButtonClick() fun onSetupAssistantClick() - fun getStepContent(step: SystemBridgeSetupStep): StepContent + fun onSamsungAutoBlockerWarningClick() } diff --git a/base/src/main/java/io/github/sds100/keymapper/base/expertmode/SystemBridgeSetupUseCase.kt b/base/src/main/java/io/github/sds100/keymapper/base/expertmode/SystemBridgeSetupUseCase.kt index 24a469eef4..8318d3afa9 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/expertmode/SystemBridgeSetupUseCase.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/expertmode/SystemBridgeSetupUseCase.kt @@ -16,6 +16,8 @@ import io.github.sds100.keymapper.sysbridge.service.SystemBridgeSetupController import io.github.sds100.keymapper.sysbridge.service.SystemBridgeSetupStep import io.github.sds100.keymapper.system.accessibility.AccessibilityServiceAdapter import io.github.sds100.keymapper.system.accessibility.AccessibilityServiceState +import io.github.sds100.keymapper.system.apps.PackageManagerAdapter +import io.github.sds100.keymapper.system.apps.isAppInstalledFlow import io.github.sds100.keymapper.system.network.NetworkAdapter import io.github.sds100.keymapper.system.permissions.Permission import io.github.sds100.keymapper.system.permissions.PermissionAdapter @@ -24,6 +26,7 @@ import io.github.sds100.keymapper.system.shizuku.ShizukuAdapter import javax.inject.Inject import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.combine import kotlinx.coroutines.flow.emptyFlow import kotlinx.coroutines.flow.flatMapLatest @@ -42,6 +45,7 @@ class SystemBridgeSetupUseCaseImpl @Inject constructor( private val permissionAdapter: PermissionAdapter, private val accessibilityServiceAdapter: AccessibilityServiceAdapter, private val networkAdapter: NetworkAdapter, + private val packageManagerAdapter: PackageManagerAdapter, private val clock: Clock, ) : SystemBridgeSetupUseCase { @@ -51,6 +55,23 @@ class SystemBridgeSetupUseCaseImpl @Inject constructor( * FUNCTION_NONE in that file. */ private const val USB_FUNCTION_NONE = 0 + + /** + * Samsung One UI's Auto Blocker security feature. If installed it can silently + * prevent Wireless Debugging from staying enabled. + */ + private const val SAMSUNG_AUTO_BLOCKER_PACKAGE = "com.samsung.android.rampart" + } + + override val hasSamsungAutoBlocker: Flow = + packageManagerAdapter.isAppInstalledFlow(SAMSUNG_AUTO_BLOCKER_PACKAGE) + + // Not persisted. The user should be re-prompted every time they open the setup wizard. + private val isSamsungAutoBlockerDismissed = MutableStateFlow(false) + + override fun openSamsungAutoBlockerSettings() { + isSamsungAutoBlockerDismissed.value = true + systemBridgeSetupController.openAutoBlockerSettings() } override val isWarningUnderstood: Flow = @@ -139,27 +160,35 @@ class SystemBridgeSetupUseCaseImpl @Inject constructor( @RequiresApi(Build.VERSION_CODES.R) private fun getNextStepFlow(): Flow = accessibilityServiceAdapter.state.flatMapLatest { accessibilityServiceState -> - combine( - isNotificationPermissionGranted, - isLocalNetworkPermissionGranted, - systemBridgeSetupController.isDeveloperOptionsEnabled, - networkAdapter.isWifiConnected, - systemBridgeSetupController.isWirelessDebuggingEnabled, - ) { - isNotificationGranted, - isLocalNetworkGranted, - isDeveloperOptionsEnabled, - isWifiConnected, - isWirelessDebuggingEnabled, + combine(hasSamsungAutoBlocker, isSamsungAutoBlockerDismissed) { + hasAutoBlocker, + isDismissed, -> - getNextStep( - accessibilityServiceState = accessibilityServiceState, - isNotificationPermissionGranted = isNotificationGranted, - isLocalNetworkPermissionGranted = isLocalNetworkGranted, - isDeveloperOptionsEnabled = isDeveloperOptionsEnabled, - isWifiConnected = isWifiConnected, - isWirelessDebuggingEnabled = isWirelessDebuggingEnabled, - ) + hasAutoBlocker && !isDismissed + }.flatMapLatest { needsSamsungAutoBlockerStep -> + combine( + isNotificationPermissionGranted, + isLocalNetworkPermissionGranted, + systemBridgeSetupController.isDeveloperOptionsEnabled, + networkAdapter.isWifiConnected, + systemBridgeSetupController.isWirelessDebuggingEnabled, + ) { + isNotificationGranted, + isLocalNetworkGranted, + isDeveloperOptionsEnabled, + isWifiConnected, + isWirelessDebuggingEnabled, + -> + getNextStep( + accessibilityServiceState = accessibilityServiceState, + needsSamsungAutoBlockerStep = needsSamsungAutoBlockerStep, + isNotificationPermissionGranted = isNotificationGranted, + isLocalNetworkPermissionGranted = isLocalNetworkGranted, + isDeveloperOptionsEnabled = isDeveloperOptionsEnabled, + isWifiConnected = isWifiConnected, + isWirelessDebuggingEnabled = isWirelessDebuggingEnabled, + ) + } } } @@ -321,6 +350,7 @@ class SystemBridgeSetupUseCaseImpl @Inject constructor( @RequiresApi(Build.VERSION_CODES.R) private fun getNextStep( accessibilityServiceState: AccessibilityServiceState, + needsSamsungAutoBlockerStep: Boolean, isNotificationPermissionGranted: Boolean, isLocalNetworkPermissionGranted: Boolean, isDeveloperOptionsEnabled: Boolean, @@ -336,6 +366,8 @@ class SystemBridgeSetupUseCaseImpl @Inject constructor( !isLocalNetworkPermissionGranted -> SystemBridgeSetupStep.ACCESS_LOCAL_NETWORK_PERMISSION + needsSamsungAutoBlockerStep -> SystemBridgeSetupStep.SAMSUNG_AUTO_BLOCKER + !isDeveloperOptionsEnabled -> SystemBridgeSetupStep.DEVELOPER_OPTIONS !isWifiConnected -> SystemBridgeSetupStep.WIFI_NETWORK @@ -387,6 +419,9 @@ interface SystemBridgeSetupUseCase { val isLocalNetworkPermissionGranted: Flow fun requestLocalNetworkPermission() + val hasSamsungAutoBlocker: Flow + fun openSamsungAutoBlockerSettings() + fun stopSystemBridge() fun enableAccessibilityService() fun enableDeveloperOptions() diff --git a/base/src/main/res/values/strings.xml b/base/src/main/res/values/strings.xml index 714b286a02..507d3e6557 100644 --- a/base/src/main/res/values/strings.xml +++ b/base/src/main/res/values/strings.xml @@ -2080,6 +2080,11 @@ Key Mapper needs access to the local network to connect to the ADB service on your device. Give permission + Disable Auto Blocker + Samsung Auto Blocker prevents Key Mapper from enabling the features it needs on your device. + Not working? + Samsung Auto Blocker might be turned on. Turn it off before you continue. + Incompatible USB configuration You must select \'No data transfer\' as your default USB configuration so that Expert Mode is not killed every time you lock your device. diff --git a/base/src/test/java/io/github/sds100/keymapper/base/expertmode/SystemBridgeSetupUseCaseTest.kt b/base/src/test/java/io/github/sds100/keymapper/base/expertmode/SystemBridgeSetupUseCaseTest.kt index f01832a60f..4968595ae9 100644 --- a/base/src/test/java/io/github/sds100/keymapper/base/expertmode/SystemBridgeSetupUseCaseTest.kt +++ b/base/src/test/java/io/github/sds100/keymapper/base/expertmode/SystemBridgeSetupUseCaseTest.kt @@ -8,6 +8,7 @@ import io.github.sds100.keymapper.sysbridge.service.SystemBridgeSetupController import io.github.sds100.keymapper.sysbridge.service.SystemBridgeSetupStep import io.github.sds100.keymapper.system.accessibility.AccessibilityServiceAdapter import io.github.sds100.keymapper.system.accessibility.AccessibilityServiceState +import io.github.sds100.keymapper.system.apps.PackageManagerAdapter import io.github.sds100.keymapper.system.network.NetworkAdapter import io.github.sds100.keymapper.system.permissions.Permission import io.github.sds100.keymapper.system.permissions.PermissionAdapter @@ -15,6 +16,7 @@ import io.github.sds100.keymapper.system.root.SuAdapter import io.github.sds100.keymapper.system.shizuku.ShizukuAdapter import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.emptyFlow import kotlinx.coroutines.flow.first import kotlinx.coroutines.flow.flowOf import kotlinx.coroutines.test.runTest @@ -24,6 +26,7 @@ import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.mockito.junit.MockitoJUnitRunner +import org.mockito.kotlin.any import org.mockito.kotlin.mock import org.mockito.kotlin.verify import org.mockito.kotlin.whenever @@ -41,6 +44,7 @@ class SystemBridgeSetupUseCaseTest { private lateinit var mockPermissionAdapter: PermissionAdapter private lateinit var mockAccessibilityServiceAdapter: AccessibilityServiceAdapter private lateinit var mockNetworkAdapter: NetworkAdapter + private lateinit var mockPackageManagerAdapter: PackageManagerAdapter @Before fun init() { @@ -52,6 +56,9 @@ class SystemBridgeSetupUseCaseTest { mockPermissionAdapter = mock() mockAccessibilityServiceAdapter = mock() mockNetworkAdapter = mock() + mockPackageManagerAdapter = mock() + whenever(mockPackageManagerAdapter.onPackagesChanged).thenReturn(emptyFlow()) + whenever(mockPackageManagerAdapter.isAppInstalled(any())).thenReturn(false) useCase = SystemBridgeSetupUseCaseImpl( preferences = fakePreferences, @@ -62,6 +69,7 @@ class SystemBridgeSetupUseCaseTest { permissionAdapter = mockPermissionAdapter, accessibilityServiceAdapter = mockAccessibilityServiceAdapter, networkAdapter = mockNetworkAdapter, + packageManagerAdapter = mockPackageManagerAdapter, clock = mock(), ) } @@ -173,6 +181,7 @@ class SystemBridgeSetupUseCaseTest { permissionAdapter = mockPermissionAdapter, accessibilityServiceAdapter = mockAccessibilityServiceAdapter, networkAdapter = mockNetworkAdapter, + packageManagerAdapter = mockPackageManagerAdapter, clock = mock(), ) diff --git a/sysbridge/src/main/java/io/github/sds100/keymapper/sysbridge/service/SystemBridgeSetupController.kt b/sysbridge/src/main/java/io/github/sds100/keymapper/sysbridge/service/SystemBridgeSetupController.kt index d65f35a33a..dbf2566823 100644 --- a/sysbridge/src/main/java/io/github/sds100/keymapper/sysbridge/service/SystemBridgeSetupController.kt +++ b/sysbridge/src/main/java/io/github/sds100/keymapper/sysbridge/service/SystemBridgeSetupController.kt @@ -370,6 +370,27 @@ class SystemBridgeSetupControllerImpl @Inject constructor( ) } + override fun openAutoBlockerSettings() { + val autoBlockerIntent = Intent().apply { + component = ComponentName( + "com.samsung.android.rampart", + "com.samsung.android.rampart.ui.MainSettingActivity", + ) + flags = Intent.FLAG_ACTIVITY_NEW_TASK + } + val fallback = Intent(Settings.ACTION_SECURITY_SETTINGS).apply { + flags = Intent.FLAG_ACTIVITY_NEW_TASK + } + + try { + ctx.startActivity(autoBlockerIntent) + } catch (_: ActivityNotFoundException) { + ctx.startActivity(fallback) + } catch (_: SecurityException) { + ctx.startActivity(fallback) + } + } + fun invalidateSettings() { isDeveloperOptionsEnabled.update { getDeveloperOptionsEnabled() } isWirelessDebuggingEnabled.update { getWirelessDebuggingEnabled() } @@ -456,5 +477,7 @@ interface SystemBridgeSetupController { fun launchDeveloperOptions() + fun openAutoBlockerSettings() + suspend fun getShellStartCommand(): KMResult } diff --git a/sysbridge/src/main/java/io/github/sds100/keymapper/sysbridge/service/SystemBridgeSetupStep.kt b/sysbridge/src/main/java/io/github/sds100/keymapper/sysbridge/service/SystemBridgeSetupStep.kt index 81733fe629..9e190fcb10 100644 --- a/sysbridge/src/main/java/io/github/sds100/keymapper/sysbridge/service/SystemBridgeSetupStep.kt +++ b/sysbridge/src/main/java/io/github/sds100/keymapper/sysbridge/service/SystemBridgeSetupStep.kt @@ -4,10 +4,11 @@ enum class SystemBridgeSetupStep(val stepIndex: Int) { ACCESSIBILITY_SERVICE(stepIndex = 0), NOTIFICATION_PERMISSION(stepIndex = 1), ACCESS_LOCAL_NETWORK_PERMISSION(stepIndex = 2), - DEVELOPER_OPTIONS(stepIndex = 3), - WIFI_NETWORK(stepIndex = 4), - WIRELESS_DEBUGGING(stepIndex = 5), - ADB_PAIRING(stepIndex = 6), - START_SERVICE(stepIndex = 7), - STARTED(stepIndex = 8), + SAMSUNG_AUTO_BLOCKER(stepIndex = 3), + DEVELOPER_OPTIONS(stepIndex = 4), + WIFI_NETWORK(stepIndex = 5), + WIRELESS_DEBUGGING(stepIndex = 6), + ADB_PAIRING(stepIndex = 7), + START_SERVICE(stepIndex = 8), + STARTED(stepIndex = 9), } diff --git a/system/src/main/java/io/github/sds100/keymapper/system/apps/PackageManagerAdapter.kt b/system/src/main/java/io/github/sds100/keymapper/system/apps/PackageManagerAdapter.kt index 7dde97c963..0bb73a6e1f 100644 --- a/system/src/main/java/io/github/sds100/keymapper/system/apps/PackageManagerAdapter.kt +++ b/system/src/main/java/io/github/sds100/keymapper/system/apps/PackageManagerAdapter.kt @@ -7,7 +7,7 @@ import io.github.sds100.keymapper.common.utils.KMResult import io.github.sds100.keymapper.common.utils.State import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.StateFlow -import kotlinx.coroutines.flow.callbackFlow +import kotlinx.coroutines.flow.flow interface PackageManagerAdapter { val onPackagesChanged: Flow @@ -39,19 +39,18 @@ interface PackageManagerAdapter { fun getInstallSourcePackageName(): String? } -fun PackageManagerAdapter.isAppInstalledFlow(packageName: String): Flow = callbackFlow { - send(isAppInstalled(packageName)) +fun PackageManagerAdapter.isAppInstalledFlow(packageName: String): Flow = flow { + emit(isAppInstalled(packageName)) onPackagesChanged.collect { - send(isAppInstalled(packageName)) + emit(isAppInstalled(packageName)) } } -fun PackageManagerAdapter.getPackageInfoFlow(packageName: String): Flow = - callbackFlow { - send(getPackageInfo(packageName)) +fun PackageManagerAdapter.getPackageInfoFlow(packageName: String): Flow = flow { + emit(getPackageInfo(packageName)) - onPackagesChanged.collect { - send(getPackageInfo(packageName)) - } + onPackagesChanged.collect { + emit(getPackageInfo(packageName)) } +} From 031f47883298817ffd7783f487484c34fca41a44 Mon Sep 17 00:00:00 2001 From: sds100 Date: Sun, 27 Sep 2026 15:16:55 +0200 Subject: [PATCH 09/64] change some action icons --- .../keymapper/base/actions/ActionUtils.kt | 8 +- .../compose/icons/KeyboardPreviousLanguage.kt | 136 ++++++++++++++++++ 2 files changed, 141 insertions(+), 3 deletions(-) create mode 100644 base/src/main/java/io/github/sds100/keymapper/base/utils/ui/compose/icons/KeyboardPreviousLanguage.kt diff --git a/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionUtils.kt b/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionUtils.kt index bda0aae9dc..d14e92aeee 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionUtils.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionUtils.kt @@ -79,6 +79,7 @@ import androidx.compose.material.icons.rounded.BluetoothDisabled import androidx.compose.material.icons.rounded.ContentCopy import androidx.compose.material.icons.rounded.ContentCut import androidx.compose.material.icons.rounded.ContentPaste +import androidx.compose.material.icons.rounded.Language import androidx.compose.material.icons.rounded.Terminal import androidx.compose.material.icons.rounded.Wifi import androidx.compose.material.icons.rounded.WifiOff @@ -88,6 +89,7 @@ import io.github.sds100.keymapper.base.utils.ui.compose.icons.HomeIotDevice import io.github.sds100.keymapper.base.utils.ui.compose.icons.InstantMix import io.github.sds100.keymapper.base.utils.ui.compose.icons.JumpToElement import io.github.sds100.keymapper.base.utils.ui.compose.icons.KeyMapperIcons +import io.github.sds100.keymapper.base.utils.ui.compose.icons.KeyboardPreviousLanguage import io.github.sds100.keymapper.base.utils.ui.compose.icons.MatchWord import io.github.sds100.keymapper.base.utils.ui.compose.icons.NfcOff import io.github.sds100.keymapper.base.utils.ui.compose.icons.TextSelectEnd @@ -1077,9 +1079,9 @@ object ActionUtils { ActionId.SELECT_WORD_AT_CURSOR -> KeyMapperIcons.MatchWord ActionId.SELECT_ALL_TEXT -> Icons.Outlined.SelectAll ActionId.PERFORM_IME_ACTION -> Icons.Outlined.Keyboard - ActionId.SWITCH_KEYBOARD -> Icons.Outlined.Keyboard - ActionId.CYCLE_KEYBOARD_LANGUAGE -> Icons.Outlined.Keyboard - ActionId.CYCLE_KEYBOARD -> Icons.Outlined.Keyboard + ActionId.SWITCH_KEYBOARD -> KeyMapperIcons.KeyboardPreviousLanguage + ActionId.CYCLE_KEYBOARD_LANGUAGE -> Icons.Rounded.Language + ActionId.CYCLE_KEYBOARD -> KeyMapperIcons.KeyboardPreviousLanguage ActionId.TOGGLE_AIRPLANE_MODE -> Icons.Outlined.AirplanemodeActive ActionId.ENABLE_AIRPLANE_MODE -> Icons.Outlined.AirplanemodeActive ActionId.DISABLE_AIRPLANE_MODE -> Icons.Outlined.AirplanemodeInactive diff --git a/base/src/main/java/io/github/sds100/keymapper/base/utils/ui/compose/icons/KeyboardPreviousLanguage.kt b/base/src/main/java/io/github/sds100/keymapper/base/utils/ui/compose/icons/KeyboardPreviousLanguage.kt new file mode 100644 index 0000000000..bff6125d06 --- /dev/null +++ b/base/src/main/java/io/github/sds100/keymapper/base/utils/ui/compose/icons/KeyboardPreviousLanguage.kt @@ -0,0 +1,136 @@ +package io.github.sds100.keymapper.base.utils.ui.compose.icons + +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.SolidColor +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.graphics.vector.path +import androidx.compose.ui.unit.dp + +val KeyMapperIcons.KeyboardPreviousLanguage: ImageVector + get() { + if (_KeyboardPreviousLanguage != null) { + return _KeyboardPreviousLanguage!! + } + _KeyboardPreviousLanguage = ImageVector.Builder( + name = "KeyboardPreviousLanguage", + defaultWidth = 24.dp, + defaultHeight = 24.dp, + viewportWidth = 960f, + viewportHeight = 960f, + ).apply { + path(fill = SolidColor(Color.Black)) { + moveTo(160f, 880f) + quadToRelative(-33f, 0f, -56.5f, -23.5f) + reflectiveQuadTo(80f, 800f) + verticalLineToRelative(-400f) + quadToRelative(0f, -33f, 23.5f, -56.5f) + reflectiveQuadTo(160f, 320f) + horizontalLineToRelative(640f) + quadToRelative(33f, 0f, 56.5f, 23.5f) + reflectiveQuadTo(880f, 400f) + verticalLineToRelative(400f) + quadToRelative(0f, 33f, -23.5f, 56.5f) + reflectiveQuadTo(800f, 880f) + lineTo(160f, 880f) + close() + moveTo(160f, 800f) + horizontalLineToRelative(640f) + verticalLineToRelative(-400f) + lineTo(160f, 400f) + verticalLineToRelative(400f) + close() + moveTo(320f, 760f) + horizontalLineToRelative(320f) + verticalLineToRelative(-80f) + lineTo(320f, 680f) + verticalLineToRelative(80f) + close() + moveTo(200f, 640f) + horizontalLineToRelative(80f) + verticalLineToRelative(-80f) + horizontalLineToRelative(-80f) + verticalLineToRelative(80f) + close() + moveTo(320f, 640f) + horizontalLineToRelative(80f) + verticalLineToRelative(-80f) + horizontalLineToRelative(-80f) + verticalLineToRelative(80f) + close() + moveTo(440f, 640f) + horizontalLineToRelative(80f) + verticalLineToRelative(-80f) + horizontalLineToRelative(-80f) + verticalLineToRelative(80f) + close() + moveTo(560f, 640f) + horizontalLineToRelative(80f) + verticalLineToRelative(-80f) + horizontalLineToRelative(-80f) + verticalLineToRelative(80f) + close() + moveTo(680f, 640f) + horizontalLineToRelative(80f) + verticalLineToRelative(-80f) + horizontalLineToRelative(-80f) + verticalLineToRelative(80f) + close() + moveTo(200f, 520f) + horizontalLineToRelative(80f) + verticalLineToRelative(-80f) + horizontalLineToRelative(-80f) + verticalLineToRelative(80f) + close() + moveTo(320f, 520f) + horizontalLineToRelative(80f) + verticalLineToRelative(-80f) + horizontalLineToRelative(-80f) + verticalLineToRelative(80f) + close() + moveTo(440f, 520f) + horizontalLineToRelative(80f) + verticalLineToRelative(-80f) + horizontalLineToRelative(-80f) + verticalLineToRelative(80f) + close() + moveTo(560f, 520f) + horizontalLineToRelative(80f) + verticalLineToRelative(-80f) + horizontalLineToRelative(-80f) + verticalLineToRelative(80f) + close() + moveTo(680f, 520f) + horizontalLineToRelative(80f) + verticalLineToRelative(-80f) + horizontalLineToRelative(-80f) + verticalLineToRelative(80f) + close() + moveTo(160f, 800f) + verticalLineToRelative(-400f) + verticalLineToRelative(400f) + close() + moveTo(240f, 240f) + verticalLineToRelative(-200f) + horizontalLineToRelative(80f) + verticalLineToRelative(61f) + quadToRelative(32f, -29f, 73f, -45f) + reflectiveQuadToRelative(87f, -16f) + quadToRelative(88f, 0f, 155f, 56.5f) + reflectiveQuadTo(716f, 240f) + horizontalLineToRelative(-82f) + quadToRelative(-14f, -53f, -56.5f, -86.5f) + reflectiveQuadTo(480f, 120f) + quadToRelative(-30f, 0f, -57f, 10.5f) + reflectiveQuadTo(375f, 160f) + horizontalLineToRelative(65f) + verticalLineToRelative(80f) + lineTo(240f, 240f) + close() + } + }.build() + + return _KeyboardPreviousLanguage!! + } + +@Suppress("ObjectPropertyName") +private var _KeyboardPreviousLanguage: ImageVector? = null From 135d174ca242b6101339c42646bb5d16db104c2e Mon Sep 17 00:00:00 2001 From: sds100 Date: Sun, 27 Sep 2026 15:32:49 +0200 Subject: [PATCH 10/64] #2075 feat: enable/disable/toggle a group by sending a broadcast intent, configurable from Power user options in Settings --- CHANGELOG.md | 1 + api/src/main/AndroidManifest.xml | 10 + .../io/github/sds100/keymapper/api/Api.kt | 5 + .../api/EnableGroupBroadcastReceiver.kt | 36 +++ .../sds100/keymapper/base/BaseMainNavHost.kt | 16 ++ .../keymapper/base/BaseSingletonHiltModule.kt | 6 + .../keymapper/base/BaseViewModelHiltModule.kt | 6 + .../github/sds100/keymapper/base/IntentApi.kt | 15 ++ .../base/actions/ActionOptionsBottomSheet.kt | 2 +- .../base/groups/EnableGroupByIntentScreen.kt | 251 ++++++++++++++++++ .../groups/EnableGroupByIntentViewModel.kt | 62 +++++ .../base/groups/SelectGroupUseCase.kt | 10 + .../base/groups/SelectGroupUseCaseImpl.kt | 81 ++++++ .../keymapper/base/home/ListKeyMapsUseCase.kt | 28 +- .../base/keymaps/EnableByIntentScreen.kt | 3 +- .../base/keymaps/EnableGroupUseCase.kt | 28 ++ .../base/keymaps/IntentScreenComponents.kt | 12 +- .../base/keymaps/PauseResumeByIntentScreen.kt | 84 ++++++ .../base/keymaps/TriggerByIntentScreen.kt | 3 +- .../keymapper/base/settings/SettingsScreen.kt | 48 +++- .../base/settings/SettingsViewModel.kt | 12 + .../base/utils/navigation/NavDestination.kt | 12 + base/src/main/res/values/strings.xml | 20 ++ .../sds100/keymapper/data/db/dao/KeyMapDao.kt | 5 + .../data/repositories/KeyMapRepository.kt | 1 + .../data/repositories/RoomKeyMapRepository.kt | 6 + 26 files changed, 726 insertions(+), 37 deletions(-) create mode 100644 api/src/main/java/io/github/sds100/keymapper/api/EnableGroupBroadcastReceiver.kt create mode 100644 base/src/main/java/io/github/sds100/keymapper/base/groups/EnableGroupByIntentScreen.kt create mode 100644 base/src/main/java/io/github/sds100/keymapper/base/groups/EnableGroupByIntentViewModel.kt create mode 100644 base/src/main/java/io/github/sds100/keymapper/base/groups/SelectGroupUseCase.kt create mode 100644 base/src/main/java/io/github/sds100/keymapper/base/groups/SelectGroupUseCaseImpl.kt create mode 100644 base/src/main/java/io/github/sds100/keymapper/base/keymaps/EnableGroupUseCase.kt create mode 100644 base/src/main/java/io/github/sds100/keymapper/base/keymaps/PauseResumeByIntentScreen.kt diff --git a/CHANGELOG.md b/CHANGELOG.md index 7ebf6a70e8..085ee89ec5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ ## Added +- #2075 enable/disable/toggle a group by sending a broadcast intent, configurable from Power user options in Settings. - #2263 constraints can now be edited in place from the constraints list instead of being deleted and re-added. - #2254 you can now give a key map a custom name, which is shown in the key map list. - #2252 undo and redo changes when configuring a key map. diff --git a/api/src/main/AndroidManifest.xml b/api/src/main/AndroidManifest.xml index 6965340ec4..6ded45094f 100644 --- a/api/src/main/AndroidManifest.xml +++ b/api/src/main/AndroidManifest.xml @@ -46,6 +46,16 @@ + + + + + + + + diff --git a/api/src/main/java/io/github/sds100/keymapper/api/Api.kt b/api/src/main/java/io/github/sds100/keymapper/api/Api.kt index fdc69649e8..bfe84d827f 100644 --- a/api/src/main/java/io/github/sds100/keymapper/api/Api.kt +++ b/api/src/main/java/io/github/sds100/keymapper/api/Api.kt @@ -13,4 +13,9 @@ object Api { const val ACTION_ENABLE_KEY_MAP = "io.github.sds100.keymapper.ACTION_ENABLE_KEY_MAP" const val ACTION_DISABLE_KEY_MAP = "io.github.sds100.keymapper.ACTION_DISABLE_KEY_MAP" const val ACTION_TOGGLE_KEY_MAP = "io.github.sds100.keymapper.ACTION_TOGGLE_KEY_MAP" + + const val ACTION_ENABLE_GROUP = "io.github.sds100.keymapper.ACTION_ENABLE_GROUP" + const val ACTION_DISABLE_GROUP = "io.github.sds100.keymapper.ACTION_DISABLE_GROUP" + const val ACTION_TOGGLE_GROUP = "io.github.sds100.keymapper.ACTION_TOGGLE_GROUP" + const val EXTRA_GROUP_UID = "io.github.sds100.keymapper.EXTRA_GROUP_UID" } diff --git a/api/src/main/java/io/github/sds100/keymapper/api/EnableGroupBroadcastReceiver.kt b/api/src/main/java/io/github/sds100/keymapper/api/EnableGroupBroadcastReceiver.kt new file mode 100644 index 0000000000..f41559284c --- /dev/null +++ b/api/src/main/java/io/github/sds100/keymapper/api/EnableGroupBroadcastReceiver.kt @@ -0,0 +1,36 @@ +package io.github.sds100.keymapper.api + +import android.content.BroadcastReceiver +import android.content.Context +import android.content.Intent +import dagger.hilt.android.AndroidEntryPoint +import io.github.sds100.keymapper.base.keymaps.EnableGroupUseCase +import javax.inject.Inject + +// DON'T MOVE THIS CLASS TO A DIFFERENT PACKAGE OR RENAME BECAUSE IT BREAKS THE API +@AndroidEntryPoint +class EnableGroupBroadcastReceiver : BroadcastReceiver() { + + @Inject + lateinit var useCase: EnableGroupUseCase + + override fun onReceive(context: Context?, intent: Intent?) { + context ?: return + intent?.action ?: return + + if (intent.action != Api.ACTION_ENABLE_GROUP && + intent.action != Api.ACTION_DISABLE_GROUP && + intent.action != Api.ACTION_TOGGLE_GROUP + ) { + return + } + + val groupUid = intent.getStringExtra(Api.EXTRA_GROUP_UID) ?: return + + when (intent.action) { + Api.ACTION_ENABLE_GROUP -> useCase.enable(groupUid) + Api.ACTION_DISABLE_GROUP -> useCase.disable(groupUid) + Api.ACTION_TOGGLE_GROUP -> useCase.toggle(groupUid) + } + } +} diff --git a/base/src/main/java/io/github/sds100/keymapper/base/BaseMainNavHost.kt b/base/src/main/java/io/github/sds100/keymapper/base/BaseMainNavHost.kt index 0dcf316400..9577b8a645 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/BaseMainNavHost.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/BaseMainNavHost.kt @@ -32,7 +32,9 @@ import io.github.sds100.keymapper.base.debug.GetEventScreen import io.github.sds100.keymapper.base.expertmode.ExpertModeScreen import io.github.sds100.keymapper.base.expertmode.ExpertModeSetupScreen import io.github.sds100.keymapper.base.expertmode.xiaomi.XiaomiOptimizationScreen +import io.github.sds100.keymapper.base.groups.EnableGroupByIntentScreen import io.github.sds100.keymapper.base.keymaps.EnableByIntentScreen +import io.github.sds100.keymapper.base.keymaps.PauseResumeByIntentScreen import io.github.sds100.keymapper.base.keymaps.TriggerByIntentScreen import io.github.sds100.keymapper.base.logging.LogScreen import io.github.sds100.keymapper.base.onboarding.HandleAccessibilityServiceDialogs @@ -227,6 +229,20 @@ fun BaseMainNavHost( ) } + composable { + PauseResumeByIntentScreen( + modifier = Modifier.fillMaxSize(), + onBackClick = { navController.popBackStack() }, + ) + } + + composable { + EnableGroupByIntentScreen( + modifier = Modifier.fillMaxSize(), + viewModel = hiltViewModel(), + ) + } + composableDestinations() } } diff --git a/base/src/main/java/io/github/sds100/keymapper/base/BaseSingletonHiltModule.kt b/base/src/main/java/io/github/sds100/keymapper/base/BaseSingletonHiltModule.kt index db1df55647..6e172fb5f8 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/BaseSingletonHiltModule.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/BaseSingletonHiltModule.kt @@ -20,6 +20,8 @@ import io.github.sds100.keymapper.base.input.InputEventHub import io.github.sds100.keymapper.base.input.InputEventHubImpl import io.github.sds100.keymapper.base.keymaps.ConfigKeyMapState import io.github.sds100.keymapper.base.keymaps.ConfigKeyMapStateImpl +import io.github.sds100.keymapper.base.keymaps.EnableGroupUseCase +import io.github.sds100.keymapper.base.keymaps.EnableGroupUseCaseImpl import io.github.sds100.keymapper.base.keymaps.EnableKeyMapsUseCase import io.github.sds100.keymapper.base.keymaps.EnableKeyMapsUseCaseImpl import io.github.sds100.keymapper.base.keymaps.FingerprintGesturesSupportedUseCase @@ -199,6 +201,10 @@ abstract class BaseSingletonHiltModule { @Singleton abstract fun bindEnableKeyMapsUseCase(impl: EnableKeyMapsUseCaseImpl): EnableKeyMapsUseCase + @Binds + @Singleton + abstract fun bindEnableGroupUseCase(impl: EnableGroupUseCaseImpl): EnableGroupUseCase + @Binds @Singleton abstract fun bindSetupAccessibilityServiceDelegate( diff --git a/base/src/main/java/io/github/sds100/keymapper/base/BaseViewModelHiltModule.kt b/base/src/main/java/io/github/sds100/keymapper/base/BaseViewModelHiltModule.kt index d664c6373d..0126f22c07 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/BaseViewModelHiltModule.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/BaseViewModelHiltModule.kt @@ -31,6 +31,8 @@ import io.github.sds100.keymapper.base.expertmode.SystemBridgeSetupUseCase import io.github.sds100.keymapper.base.expertmode.SystemBridgeSetupUseCaseImpl import io.github.sds100.keymapper.base.expertmode.xiaomi.XiaomiOptimizationUseCase import io.github.sds100.keymapper.base.expertmode.xiaomi.XiaomiOptimizationUseCaseImpl +import io.github.sds100.keymapper.base.groups.SelectGroupUseCase +import io.github.sds100.keymapper.base.groups.SelectGroupUseCaseImpl import io.github.sds100.keymapper.base.home.ListKeyMapsUseCase import io.github.sds100.keymapper.base.home.ListKeyMapsUseCaseImpl import io.github.sds100.keymapper.base.home.ShowHomeScreenAlertsUseCase @@ -85,6 +87,10 @@ abstract class BaseViewModelHiltModule { @ViewModelScoped abstract fun bindListKeyMapsUseCase(impl: ListKeyMapsUseCaseImpl): ListKeyMapsUseCase + @Binds + @ViewModelScoped + abstract fun bindSelectGroupUseCase(impl: SelectGroupUseCaseImpl): SelectGroupUseCase + @Binds @ViewModelScoped abstract fun bindBackupRestoreMappingsUseCase( diff --git a/base/src/main/java/io/github/sds100/keymapper/base/IntentApi.kt b/base/src/main/java/io/github/sds100/keymapper/base/IntentApi.kt index aa47c3cd58..0ad8e3b8e6 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/IntentApi.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/IntentApi.kt @@ -7,4 +7,19 @@ object IntentApi { const val TRIGGER_RECEIVER_CLASS = "io.github.sds100.keymapper.api.TriggerKeyMapsBroadcastReceiver" + + const val ACTION_PAUSE_MAPPINGS = "io.github.sds100.keymapper.ACTION_PAUSE_MAPPINGS" + const val ACTION_RESUME_MAPPINGS = "io.github.sds100.keymapper.ACTION_RESUME_MAPPINGS" + const val ACTION_TOGGLE_MAPPINGS = "io.github.sds100.keymapper.ACTION_TOGGLE_MAPPINGS" + + const val PAUSE_RECEIVER_CLASS = + "io.github.sds100.keymapper.api.PauseMappingsBroadcastReceiver" + + const val ACTION_ENABLE_GROUP = "io.github.sds100.keymapper.ACTION_ENABLE_GROUP" + const val ACTION_DISABLE_GROUP = "io.github.sds100.keymapper.ACTION_DISABLE_GROUP" + const val ACTION_TOGGLE_GROUP = "io.github.sds100.keymapper.ACTION_TOGGLE_GROUP" + const val EXTRA_GROUP_UID = "io.github.sds100.keymapper.EXTRA_GROUP_UID" + + const val GROUP_RECEIVER_CLASS = + "io.github.sds100.keymapper.api.EnableGroupBroadcastReceiver" } diff --git a/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionOptionsBottomSheet.kt b/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionOptionsBottomSheet.kt index df5d5eb93d..7404eb8607 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionOptionsBottomSheet.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionOptionsBottomSheet.kt @@ -108,7 +108,7 @@ fun ActionOptionsBottomSheet( modifier = Modifier.weight(1f, fill = false), textAlign = TextAlign.Center, text = state.title, - style = MaterialTheme.typography.headlineMedium, + style = MaterialTheme.typography.titleLarge, maxLines = 1, overflow = TextOverflow.Ellipsis, softWrap = false, diff --git a/base/src/main/java/io/github/sds100/keymapper/base/groups/EnableGroupByIntentScreen.kt b/base/src/main/java/io/github/sds100/keymapper/base/groups/EnableGroupByIntentScreen.kt new file mode 100644 index 0000000000..d8e3eb3b8a --- /dev/null +++ b/base/src/main/java/io/github/sds100/keymapper/base/groups/EnableGroupByIntentScreen.kt @@ -0,0 +1,251 @@ +package io.github.sds100.keymapper.base.groups + +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.verticalScroll +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.rounded.FolderOpen +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.ModalBottomSheet +import androidx.compose.material3.SheetState +import androidx.compose.material3.SheetValue +import androidx.compose.material3.Text +import androidx.compose.material3.rememberModalBottomSheetState +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import androidx.lifecycle.compose.collectAsStateWithLifecycle +import io.github.sds100.keymapper.base.IntentApi +import io.github.sds100.keymapper.base.R +import io.github.sds100.keymapper.base.compose.KeyMapperTheme +import io.github.sds100.keymapper.base.keymaps.AdbSection +import io.github.sds100.keymapper.base.keymaps.IntentScreen +import io.github.sds100.keymapper.base.keymaps.buildAdbCommand +import io.github.sds100.keymapper.base.utils.ui.compose.CodeBlock +import io.github.sds100.keymapper.base.utils.ui.compose.OptionPageButton + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +fun EnableGroupByIntentScreen( + modifier: Modifier = Modifier, + viewModel: EnableGroupByIntentViewModel, +) { + val breadcrumbs by viewModel.breadcrumbs.collectAsStateWithLifecycle() + val groups by viewModel.groups.collectAsStateWithLifecycle() + val selectedGroupUid by viewModel.selectedGroupUid.collectAsStateWithLifecycle() + val isGroupPickerVisible by viewModel.isGroupPickerVisible.collectAsStateWithLifecycle() + + if (isGroupPickerVisible) { + val sheetState = rememberModalBottomSheetState(skipPartiallyExpanded = true) + + SelectGroupBottomSheet( + sheetState = sheetState, + breadcrumbs = breadcrumbs, + groups = groups, + canConfirm = selectedGroupUid != null, + onGroupClick = viewModel::onGroupClick, + onDismissRequest = viewModel::onDismissGroupPicker, + ) + } + + EnableGroupByIntentScreen( + modifier = modifier, + selectedGroupUid = selectedGroupUid, + onSelectGroupClick = viewModel::onSelectGroupClick, + onBackClick = viewModel::onBackClick, + ) +} + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +private fun EnableGroupByIntentScreen( + modifier: Modifier = Modifier, + selectedGroupUid: String?, + onSelectGroupClick: () -> Unit = {}, + onBackClick: () -> Unit = {}, +) { + val packageName = LocalContext.current.packageName + val clipboardLabel = stringResource(R.string.intent_screen_clipboard_label) + + IntentScreen( + modifier = modifier, + title = stringResource(R.string.enable_disable_group_by_intent_title), + text = stringResource(R.string.intent_screen_enable_group_message), + onBackClick = onBackClick, + ) { + Text( + text = stringResource(R.string.intent_screen_target_explanation), + style = MaterialTheme.typography.titleSmall, + color = MaterialTheme.colorScheme.primary, + ) + + CodeBlock( + label = stringResource(R.string.intent_screen_label_package), + code = packageName, + clipboardLabel = clipboardLabel, + ) + + CodeBlock( + label = stringResource(R.string.intent_screen_label_class), + code = IntentApi.GROUP_RECEIVER_CLASS, + clipboardLabel = clipboardLabel, + ) + + Text( + text = stringResource(R.string.intent_screen_action_explanation), + style = MaterialTheme.typography.titleSmall, + color = MaterialTheme.colorScheme.primary, + ) + + CodeBlock( + label = stringResource(R.string.intent_screen_label_action_enable), + code = IntentApi.ACTION_ENABLE_GROUP, + clipboardLabel = clipboardLabel, + ) + + CodeBlock( + label = stringResource(R.string.intent_screen_label_action_disable), + code = IntentApi.ACTION_DISABLE_GROUP, + clipboardLabel = clipboardLabel, + ) + + CodeBlock( + label = stringResource(R.string.intent_screen_label_action_toggle), + code = IntentApi.ACTION_TOGGLE_GROUP, + clipboardLabel = clipboardLabel, + ) + + Text( + text = stringResource(R.string.intent_screen_extras_explanation_group), + style = MaterialTheme.typography.titleSmall, + color = MaterialTheme.colorScheme.primary, + ) + + OptionPageButton( + modifier = Modifier.fillMaxWidth(), + title = stringResource(R.string.select_group_by_intent_title), + text = stringResource(R.string.select_group_by_intent_summary), + icon = Icons.Rounded.FolderOpen, + onClick = onSelectGroupClick, + ) + + if (selectedGroupUid == null) { + Text( + text = stringResource(R.string.intent_screen_select_group_hint), + style = MaterialTheme.typography.bodyMedium, + color = MaterialTheme.colorScheme.onSurfaceVariant, + ) + } else { + CodeBlock( + label = stringResource(R.string.intent_screen_label_extra_name), + code = IntentApi.EXTRA_GROUP_UID, + clipboardLabel = clipboardLabel, + ) + + CodeBlock( + label = stringResource(R.string.intent_screen_label_extra_value_group), + code = selectedGroupUid, + clipboardLabel = clipboardLabel, + ) + + AdbSection( + command = buildAdbCommand( + packageName = packageName, + receiverClass = IntentApi.GROUP_RECEIVER_CLASS, + action = IntentApi.ACTION_TOGGLE_GROUP, + extraName = IntentApi.EXTRA_GROUP_UID, + extraValue = selectedGroupUid, + ), + ) + } + } +} + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +private fun SelectGroupBottomSheet( + sheetState: SheetState, + breadcrumbs: List, + groups: List, + canConfirm: Boolean, + onGroupClick: (String?) -> Unit = {}, + onDismissRequest: () -> Unit = {}, +) { + ModalBottomSheet( + onDismissRequest = onDismissRequest, + sheetState = sheetState, + dragHandle = null, + ) { + Column( + modifier = Modifier + .verticalScroll(rememberScrollState()) + .fillMaxWidth() + .padding(horizontal = 16.dp), + verticalArrangement = Arrangement.spacedBy(16.dp), + ) { + Spacer(modifier = Modifier.height(12.dp)) + + Text( + modifier = Modifier.fillMaxWidth(), + textAlign = TextAlign.Center, + text = stringResource(R.string.select_group_by_intent_title), + style = MaterialTheme.typography.titleLarge, + ) + + GroupBreadcrumbRow(groups = breadcrumbs, onGroupClick = onGroupClick) + + GroupRow( + modifier = Modifier.fillMaxWidth(), + groups = groups, + onGroupClick = onGroupClick, + showNewGroup = false, + showThisGroupButton = canConfirm, + onThisGroupClick = onDismissRequest, + ) + + Spacer(modifier = Modifier.height(8.dp)) + } + } +} + +@Preview(heightDp = 1200) +@Composable +private fun EnableGroupByIntentScreenPreview() { + KeyMapperTheme { + EnableGroupByIntentScreen( + selectedGroupUid = null, + ) + } +} + +@OptIn(ExperimentalMaterial3Api::class) +@Preview(showSystemUi = true) +@Composable +private fun SelectGroupBottomSheetPreview() { + KeyMapperTheme { + val sheetState = SheetState( + skipPartiallyExpanded = true, + positionalThreshold = { 0f }, + velocityThreshold = { 0f }, + initialValue = SheetValue.Expanded, + ) + + SelectGroupBottomSheet( + sheetState = sheetState, + breadcrumbs = listOf(GroupListItemModel(uid = "1", name = "Lockscreen")), + groups = listOf(GroupListItemModel(uid = "2", name = "Key Mapper")), + canConfirm = true, + ) + } +} diff --git a/base/src/main/java/io/github/sds100/keymapper/base/groups/EnableGroupByIntentViewModel.kt b/base/src/main/java/io/github/sds100/keymapper/base/groups/EnableGroupByIntentViewModel.kt new file mode 100644 index 0000000000..e40a78bc81 --- /dev/null +++ b/base/src/main/java/io/github/sds100/keymapper/base/groups/EnableGroupByIntentViewModel.kt @@ -0,0 +1,62 @@ +package io.github.sds100.keymapper.base.groups + +import androidx.lifecycle.ViewModel +import androidx.lifecycle.viewModelScope +import dagger.hilt.android.lifecycle.HiltViewModel +import io.github.sds100.keymapper.base.utils.navigation.NavigationProvider +import javax.inject.Inject +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.SharingStarted +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.asStateFlow +import kotlinx.coroutines.flow.map +import kotlinx.coroutines.flow.stateIn +import kotlinx.coroutines.flow.update +import kotlinx.coroutines.launch + +@HiltViewModel +class EnableGroupByIntentViewModel @Inject constructor( + private val selectGroup: SelectGroupUseCase, + navigationProvider: NavigationProvider, +) : ViewModel(), + NavigationProvider by navigationProvider { + + private val groupFamily: StateFlow = selectGroup.selectionGroupFamily + .stateIn( + viewModelScope, + SharingStarted.WhileSubscribed(5000), + GroupFamily(null, emptyList(), emptyList()), + ) + + val breadcrumbs: StateFlow> = groupFamily.map { family -> + family.parents.plus(family.group).filterNotNull().map { + GroupListItemModel(it.uid, it.name) + } + }.stateIn(viewModelScope, SharingStarted.WhileSubscribed(5000), emptyList()) + + val groups: StateFlow> = groupFamily.map { family -> + family.children.map { GroupListItemModel(it.uid, it.name) } + }.stateIn(viewModelScope, SharingStarted.WhileSubscribed(5000), emptyList()) + + val selectedGroupUid: StateFlow = groupFamily.map { it.group?.uid } + .stateIn(viewModelScope, SharingStarted.WhileSubscribed(5000), null) + + private val _isGroupPickerVisible = MutableStateFlow(false) + val isGroupPickerVisible: StateFlow = _isGroupPickerVisible.asStateFlow() + + fun onSelectGroupClick() { + _isGroupPickerVisible.update { true } + } + + fun onDismissGroupPicker() { + _isGroupPickerVisible.update { false } + } + + fun onGroupClick(groupUid: String?) { + viewModelScope.launch { selectGroup.openSelectionGroup(groupUid) } + } + + fun onBackClick() { + viewModelScope.launch { popBackStack() } + } +} diff --git a/base/src/main/java/io/github/sds100/keymapper/base/groups/SelectGroupUseCase.kt b/base/src/main/java/io/github/sds100/keymapper/base/groups/SelectGroupUseCase.kt new file mode 100644 index 0000000000..5d3b3ee26f --- /dev/null +++ b/base/src/main/java/io/github/sds100/keymapper/base/groups/SelectGroupUseCase.kt @@ -0,0 +1,10 @@ +package io.github.sds100.keymapper.base.groups + +import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.StateFlow + +interface SelectGroupUseCase { + val selectionGroupUid: StateFlow + val selectionGroupFamily: Flow + suspend fun openSelectionGroup(uid: String?) +} diff --git a/base/src/main/java/io/github/sds100/keymapper/base/groups/SelectGroupUseCaseImpl.kt b/base/src/main/java/io/github/sds100/keymapper/base/groups/SelectGroupUseCaseImpl.kt new file mode 100644 index 0000000000..e0add1269e --- /dev/null +++ b/base/src/main/java/io/github/sds100/keymapper/base/groups/SelectGroupUseCaseImpl.kt @@ -0,0 +1,81 @@ +package io.github.sds100.keymapper.base.groups + +import io.github.sds100.keymapper.data.repositories.GroupRepository +import java.util.LinkedList +import javax.inject.Inject +import kotlinx.coroutines.ExperimentalCoroutinesApi +import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.asStateFlow +import kotlinx.coroutines.flow.flatMapLatest +import kotlinx.coroutines.flow.map +import kotlinx.coroutines.flow.update + +@OptIn(ExperimentalCoroutinesApi::class) +class SelectGroupUseCaseImpl @Inject constructor(private val groupRepository: GroupRepository) : + SelectGroupUseCase { + + private val _selectionGroupUid = MutableStateFlow(null) + override val selectionGroupUid: StateFlow = _selectionGroupUid.asStateFlow() + + override val selectionGroupFamily: Flow = + selectionGroupUid.flatMapLatest(::getGroupFamily) + + override suspend fun openSelectionGroup(uid: String?) { + if (uid == null) { + // If null then open the root group. + _selectionGroupUid.update { null } + } else { + // Check if the group exists. + val group = groupRepository.getGroup(uid) ?: return + _selectionGroupUid.update { group.uid } + } + } + + private suspend fun getGroupFamily(groupUid: String?): Flow { + // If the current group is the root then just get the subgroups. + if (groupUid == null) { + return groupRepository.getGroupsByParent(null).map { childrenEntities -> + val children = childrenEntities + .map(GroupEntityMapper::fromEntity) + .sortedByDescending { it.lastOpenedDate } + GroupFamily(group = null, children = children, parents = emptyList()) + } + } else { + val parents = getParentsRecursively(groupUid) + + return groupRepository.getGroupWithChildren(groupUid).map { groupWithChildren -> + val group = GroupEntityMapper.fromEntity(groupWithChildren.group) + val children = groupWithChildren.children.map(GroupEntityMapper::fromEntity) + + GroupFamily(group, children = children, parents = parents) + } + } + } + + private suspend fun getParentsRecursively(groupUid: String?): List { + val list = LinkedList() + var count = 0 + + if (groupUid == null) { + return emptyList() + } + + var currentGroup: String? = groupRepository.getGroup(groupUid)?.parentUid + + while (count < 1000) { + if (currentGroup == null) { + break + } + + val group = groupRepository.getGroup(currentGroup) ?: break + list.addFirst(GroupEntityMapper.fromEntity(group)) + currentGroup = group.parentUid + + count++ + } + + return list + } +} diff --git a/base/src/main/java/io/github/sds100/keymapper/base/home/ListKeyMapsUseCase.kt b/base/src/main/java/io/github/sds100/keymapper/base/home/ListKeyMapsUseCase.kt index da03180b3f..e5f195e56c 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/home/ListKeyMapsUseCase.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/home/ListKeyMapsUseCase.kt @@ -18,6 +18,7 @@ import io.github.sds100.keymapper.base.groups.Group import io.github.sds100.keymapper.base.groups.GroupEntityMapper import io.github.sds100.keymapper.base.groups.GroupFamily import io.github.sds100.keymapper.base.groups.GroupWithState +import io.github.sds100.keymapper.base.groups.SelectGroupUseCase import io.github.sds100.keymapper.base.keymaps.DisplayKeyMapUseCase import io.github.sds100.keymapper.base.keymaps.KeyMap import io.github.sds100.keymapper.base.keymaps.KeyMapEntityMapper @@ -54,15 +55,16 @@ class ListKeyMapsUseCaseImpl @Inject constructor( private val backupManager: BackupManager, private val backupRestoreMappingsUseCase: BackupRestoreMappingsUseCase, private val resourceProvider: ResourceProvider, + selectGroupUseCase: SelectGroupUseCase, displayKeyMapUseCase: DisplayKeyMapUseCase, ) : ListKeyMapsUseCase, + SelectGroupUseCase by selectGroupUseCase, DisplayKeyMapUseCase by displayKeyMapUseCase { private val keyMapListGroupUid = MutableStateFlow(null) - private val selectionGroupUid = MutableStateFlow(null) - private fun setCurrentGroup(groupUid: String?) { + private suspend fun setCurrentGroup(groupUid: String?) { keyMapListGroupUid.update { groupUid } - selectionGroupUid.update { groupUid } + openSelectionGroup(groupUid) } private suspend fun getGroupFamily(groupUid: String?): Flow { @@ -162,20 +164,6 @@ class ListKeyMapsUseCaseImpl @Inject constructor( ) } - override val selectionGroupFamily: Flow = - selectionGroupUid.flatMapLatest(::getGroupFamily) - - override suspend fun openSelectionGroup(uid: String?) { - if (uid == null) { - // If null then open the root group. - selectionGroupUid.update { null } - } else { - // Check if the group exists. - val group = groupRepository.getGroup(uid) ?: return - selectionGroupUid.update { group.uid } - } - } - private suspend fun getParentsRecursively(groupUid: String?): List { val list = LinkedList() var count = 0 @@ -469,7 +457,9 @@ class ListKeyMapsUseCaseImpl @Inject constructor( } } -interface ListKeyMapsUseCase : DisplayKeyMapUseCase { +interface ListKeyMapsUseCase : + DisplayKeyMapUseCase, + SelectGroupUseCase { val keyMapGroup: Flow suspend fun newGroup() @@ -485,8 +475,6 @@ interface ListKeyMapsUseCase : DisplayKeyMapUseCase { fun enableGroupKeyMaps() fun disableGroupKeyMaps() - val selectionGroupFamily: Flow - suspend fun openSelectionGroup(uid: String?) fun moveKeyMapsToGroup(groupUid: String?, vararg keyMapUids: String) fun moveKeyMapsToSelectedGroup(vararg keyMapUids: String) suspend fun moveKeyMapsToNewGroup(vararg keyMapUids: String) diff --git a/base/src/main/java/io/github/sds100/keymapper/base/keymaps/EnableByIntentScreen.kt b/base/src/main/java/io/github/sds100/keymapper/base/keymaps/EnableByIntentScreen.kt index 137be1786f..66746a4306 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/keymaps/EnableByIntentScreen.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/keymaps/EnableByIntentScreen.kt @@ -99,7 +99,8 @@ fun EnableByIntentScreen( packageName = packageName, receiverClass = ENABLE_RECEIVER_CLASS, action = ACTION_TOGGLE_KEY_MAP, - keyMapUid = keyMapUid, + extraName = EXTRA_KEYMAP_UID, + extraValue = keyMapUid, ), ) } diff --git a/base/src/main/java/io/github/sds100/keymapper/base/keymaps/EnableGroupUseCase.kt b/base/src/main/java/io/github/sds100/keymapper/base/keymaps/EnableGroupUseCase.kt new file mode 100644 index 0000000000..519efcaaea --- /dev/null +++ b/base/src/main/java/io/github/sds100/keymapper/base/keymaps/EnableGroupUseCase.kt @@ -0,0 +1,28 @@ +package io.github.sds100.keymapper.base.keymaps + +import io.github.sds100.keymapper.data.repositories.KeyMapRepository +import javax.inject.Inject +import javax.inject.Singleton + +@Singleton +class EnableGroupUseCaseImpl @Inject constructor(private val keyMapRepository: KeyMapRepository) : + EnableGroupUseCase { + + override fun enable(groupUid: String) { + keyMapRepository.enableByGroup(groupUid) + } + + override fun toggle(groupUid: String) { + keyMapRepository.toggleByGroup(groupUid) + } + + override fun disable(groupUid: String) { + keyMapRepository.disableByGroup(groupUid) + } +} + +interface EnableGroupUseCase { + fun enable(groupUid: String) + fun toggle(groupUid: String) + fun disable(groupUid: String) +} diff --git a/base/src/main/java/io/github/sds100/keymapper/base/keymaps/IntentScreenComponents.kt b/base/src/main/java/io/github/sds100/keymapper/base/keymaps/IntentScreenComponents.kt index 6df94ecb41..9f9c94c887 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/keymaps/IntentScreenComponents.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/keymaps/IntentScreenComponents.kt @@ -120,8 +120,14 @@ internal fun buildAdbCommand( packageName: String, receiverClass: String, action: String, - keyMapUid: String, + extraName: String? = null, + extraValue: String? = null, ): String { - return "adb shell am broadcast -n $packageName/$receiverClass " + - "-a $action --es $EXTRA_KEYMAP_UID $keyMapUid" + val extraArg = if (extraName != null && extraValue != null) { + " --es $extraName $extraValue" + } else { + "" + } + + return "adb shell am broadcast -n $packageName/$receiverClass -a $action$extraArg" } diff --git a/base/src/main/java/io/github/sds100/keymapper/base/keymaps/PauseResumeByIntentScreen.kt b/base/src/main/java/io/github/sds100/keymapper/base/keymaps/PauseResumeByIntentScreen.kt new file mode 100644 index 0000000000..2902677523 --- /dev/null +++ b/base/src/main/java/io/github/sds100/keymapper/base/keymaps/PauseResumeByIntentScreen.kt @@ -0,0 +1,84 @@ +package io.github.sds100.keymapper.base.keymaps + +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.tooling.preview.Preview +import io.github.sds100.keymapper.base.IntentApi +import io.github.sds100.keymapper.base.R +import io.github.sds100.keymapper.base.compose.KeyMapperTheme +import io.github.sds100.keymapper.base.utils.ui.compose.CodeBlock + +@Composable +fun PauseResumeByIntentScreen(modifier: Modifier = Modifier, onBackClick: () -> Unit) { + val packageName = LocalContext.current.packageName + val clipboardLabel = stringResource(R.string.intent_screen_clipboard_label) + + IntentScreen( + modifier = modifier, + title = stringResource(R.string.title_pref_pause_resume_by_intent), + text = stringResource(R.string.intent_screen_pause_resume_message), + onBackClick = onBackClick, + ) { + Text( + text = stringResource(R.string.intent_screen_target_explanation), + style = MaterialTheme.typography.titleSmall, + color = MaterialTheme.colorScheme.primary, + ) + + CodeBlock( + label = stringResource(R.string.intent_screen_label_package), + code = packageName, + clipboardLabel = clipboardLabel, + ) + + CodeBlock( + label = stringResource(R.string.intent_screen_label_class), + code = IntentApi.PAUSE_RECEIVER_CLASS, + clipboardLabel = clipboardLabel, + ) + + Text( + text = stringResource(R.string.intent_screen_action_explanation), + style = MaterialTheme.typography.titleSmall, + color = MaterialTheme.colorScheme.primary, + ) + + CodeBlock( + label = stringResource(R.string.intent_screen_tab_pause), + code = IntentApi.ACTION_PAUSE_MAPPINGS, + clipboardLabel = clipboardLabel, + ) + + CodeBlock( + label = stringResource(R.string.intent_screen_tab_resume), + code = IntentApi.ACTION_RESUME_MAPPINGS, + clipboardLabel = clipboardLabel, + ) + + CodeBlock( + label = stringResource(R.string.intent_screen_tab_toggle), + code = IntentApi.ACTION_TOGGLE_MAPPINGS, + clipboardLabel = clipboardLabel, + ) + + AdbSection( + command = buildAdbCommand( + packageName = packageName, + receiverClass = IntentApi.PAUSE_RECEIVER_CLASS, + action = IntentApi.ACTION_TOGGLE_MAPPINGS, + ), + ) + } +} + +@Preview(heightDp = 1000) +@Composable +private fun PauseResumeByIntentScreenPreview() { + KeyMapperTheme { + PauseResumeByIntentScreen(onBackClick = {}) + } +} diff --git a/base/src/main/java/io/github/sds100/keymapper/base/keymaps/TriggerByIntentScreen.kt b/base/src/main/java/io/github/sds100/keymapper/base/keymaps/TriggerByIntentScreen.kt index 0fd3092c8a..4359f554d4 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/keymaps/TriggerByIntentScreen.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/keymaps/TriggerByIntentScreen.kt @@ -69,7 +69,8 @@ fun TriggerByIntentScreen( packageName = packageName, receiverClass = IntentApi.TRIGGER_RECEIVER_CLASS, action = IntentApi.ACTION_TRIGGER_KEYMAP_BY_UID, - keyMapUid = keyMapUid, + extraName = EXTRA_KEYMAP_UID, + extraValue = keyMapUid, ), ) } diff --git a/base/src/main/java/io/github/sds100/keymapper/base/settings/SettingsScreen.kt b/base/src/main/java/io/github/sds100/keymapper/base/settings/SettingsScreen.kt index 5d79cd6838..d2466a9c01 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/settings/SettingsScreen.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/settings/SettingsScreen.kt @@ -24,11 +24,12 @@ import androidx.compose.material.icons.outlined.Android import androidx.compose.material.icons.outlined.BugReport import androidx.compose.material.icons.outlined.FindInPage import androidx.compose.material.icons.outlined.Gamepad +import androidx.compose.material.icons.outlined.Keyboard import androidx.compose.material.icons.outlined.OfflineBolt import androidx.compose.material.icons.rounded.Code import androidx.compose.material.icons.rounded.Construction import androidx.compose.material.icons.rounded.Devices -import androidx.compose.material.icons.rounded.Keyboard +import androidx.compose.material.icons.rounded.PauseCircleOutline import androidx.compose.material.icons.rounded.PlayCircleOutline import androidx.compose.material.icons.rounded.Tune import androidx.compose.material.icons.rounded.Vibration @@ -70,6 +71,7 @@ import io.github.sds100.keymapper.base.utils.ui.compose.RadioButtonText import io.github.sds100.keymapper.base.utils.ui.compose.SwitchPreferenceCompose import io.github.sds100.keymapper.base.utils.ui.compose.icons.FolderManaged import io.github.sds100.keymapper.base.utils.ui.compose.icons.KeyMapperIcons +import io.github.sds100.keymapper.base.utils.ui.compose.icons.KeyboardPreviousLanguage import io.github.sds100.keymapper.base.utils.ui.compose.icons.WandStars import io.github.sds100.keymapper.common.utils.BuildUtils import io.github.sds100.keymapper.system.files.FileUtils @@ -148,6 +150,8 @@ fun SettingsScreen(modifier: Modifier = Modifier, viewModel: SettingsViewModel) onPauseResumeNotificationClick = viewModel::onPauseResumeNotificationClick, onDefaultOptionsClick = viewModel::onDefaultOptionsClick, onExpertModeClick = viewModel::onExpertModeClick, + onPauseResumeByIntentClick = viewModel::onPauseResumeByIntentClick, + onEnableDisableGroupsByIntentClick = viewModel::onEnableDisableGroupsByIntentClick, onAutomaticChangeImeClick = viewModel::onAutomaticChangeImeClick, onForceVibrateToggled = viewModel::onForceVibrateToggled, onLoggingToggled = viewModel::onLoggingToggled, @@ -231,6 +235,8 @@ private fun Content( onDefaultOptionsClick: () -> Unit = { }, onAutomaticBackupClick: () -> Unit = { }, onExpertModeClick: () -> Unit = { }, + onPauseResumeByIntentClick: () -> Unit = { }, + onEnableDisableGroupsByIntentClick: () -> Unit = { }, onAutomaticChangeImeClick: () -> Unit = { }, onForceVibrateToggled: (Boolean) -> Unit = { }, onLoggingToggled: (Boolean) -> Unit = { }, @@ -336,8 +342,8 @@ private fun Content( OptionsHeaderRow( modifier = Modifier.fillMaxWidth(), - icon = Icons.Rounded.Construction, - text = stringResource(R.string.settings_section_power_user_title), + icon = Icons.Outlined.Keyboard, + text = stringResource(R.string.settings_section_onscreen_keyboard_title), ) KeyEventActionMethodRow( @@ -348,13 +354,6 @@ private fun Content( onSelected = onKeyEventActionMethodSelected, ) - OptionPageButton( - title = stringResource(R.string.title_pref_expert_mode), - text = stringResource(R.string.summary_pref_expert_mode), - icon = Icons.Outlined.OfflineBolt, - onClick = onExpertModeClick, - ) - OptionPageButton( title = stringResource(R.string.title_pref_automatically_change_ime), text = if (isAutoSwitchImeSupported) { @@ -365,11 +364,38 @@ private fun Content( BuildUtils.getSdkVersionName(Build.VERSION_CODES.R), ) }, - icon = Icons.Rounded.Keyboard, + icon = KeyMapperIcons.KeyboardPreviousLanguage, onClick = onAutomaticChangeImeClick, enabled = isAutoSwitchImeSupported, ) + OptionsHeaderRow( + modifier = Modifier.fillMaxWidth(), + icon = Icons.Rounded.Construction, + text = stringResource(R.string.settings_section_power_user_title), + ) + + OptionPageButton( + title = stringResource(R.string.title_pref_expert_mode), + text = stringResource(R.string.summary_pref_expert_mode), + icon = Icons.Outlined.OfflineBolt, + onClick = onExpertModeClick, + ) + + OptionPageButton( + title = stringResource(R.string.title_pref_pause_resume_by_intent), + text = stringResource(R.string.summary_pref_pause_resume_by_intent), + icon = Icons.Rounded.PauseCircleOutline, + onClick = onPauseResumeByIntentClick, + ) + + OptionPageButton( + title = stringResource(R.string.title_pref_enable_disable_groups_by_intent), + text = stringResource(R.string.summary_pref_enable_disable_groups_by_intent), + icon = KeyMapperIcons.FolderManaged, + onClick = onEnableDisableGroupsByIntentClick, + ) + OptionsHeaderRow( modifier = Modifier.fillMaxWidth(), icon = Icons.Rounded.Code, diff --git a/base/src/main/java/io/github/sds100/keymapper/base/settings/SettingsViewModel.kt b/base/src/main/java/io/github/sds100/keymapper/base/settings/SettingsViewModel.kt index 57dd804b14..568da791b8 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/settings/SettingsViewModel.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/settings/SettingsViewModel.kt @@ -182,6 +182,18 @@ class SettingsViewModel @Inject constructor( } } + fun onPauseResumeByIntentClick() { + viewModelScope.launch { + navigate("pause_resume_by_intent", NavDestination.PauseResumeByIntent) + } + } + + fun onEnableDisableGroupsByIntentClick() { + viewModelScope.launch { + navigate("enable_group_by_intent", NavDestination.EnableGroupByIntent) + } + } + fun onAutomaticChangeImeClick() { viewModelScope.launch { navigate("automatic_change_ime", NavDestination.AutomaticChangeImeSettings) diff --git a/base/src/main/java/io/github/sds100/keymapper/base/utils/navigation/NavDestination.kt b/base/src/main/java/io/github/sds100/keymapper/base/utils/navigation/NavDestination.kt index fbd161e7ce..27a6187b67 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/utils/navigation/NavDestination.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/utils/navigation/NavDestination.kt @@ -51,6 +51,8 @@ abstract class NavDestination(val isCompose: Boolean = false) { const val ID_TRIGGER_BY_INTENT = "trigger_by_intent" const val ID_ENABLE_BY_INTENT = "enable_by_intent" const val ID_CONFIG_NOTIFICATION_CONSTRAINT = "config_notification_constraint" + const val ID_PAUSE_RESUME_BY_INTENT = "pause_resume_by_intent" + const val ID_ENABLE_GROUP_BY_INTENT = "enable_group_by_intent" } @Serializable @@ -243,4 +245,14 @@ abstract class NavDestination(val isCompose: Boolean = false) { data class EnableByIntent(val keyMapUid: String) : NavDestination(isCompose = true) { override val id: String = ID_ENABLE_BY_INTENT } + + @Serializable + data object PauseResumeByIntent : NavDestination(isCompose = true) { + override val id: String = ID_PAUSE_RESUME_BY_INTENT + } + + @Serializable + data object EnableGroupByIntent : NavDestination(isCompose = true) { + override val id: String = ID_ENABLE_GROUP_BY_INTENT + } } diff --git a/base/src/main/res/values/strings.xml b/base/src/main/res/values/strings.xml index 507d3e6557..454ac3e531 100644 --- a/base/src/main/res/values/strings.xml +++ b/base/src/main/res/values/strings.xml @@ -768,6 +768,7 @@ Customize your experience Key maps Data management + On-screen keyboard options Power user options Debugging Notifications @@ -793,6 +794,12 @@ Use Expert Mode Advanced detection of key events and more + Pause/resume by intent + Pause, resume, or toggle all key maps from another app + + Enable/disable groups by intent + Enable, disable, or toggle a group from another app + Light Dark System @@ -2316,4 +2323,17 @@ Run this from a computer to check your setup before building it in another app. Key Mapper intent + Any app that can send an intent, such as Tasker or Automate, can pause, resume, or toggle all key maps without opening Key Mapper. Send a broadcast to Key Mapper with these settings. + Pause + Resume + Toggle + + Enable/disable group by intent + Any app that can send an intent, such as Tasker or Automate, can turn a group on and off without opening Key Mapper. Send a broadcast to Key Mapper with these settings. + Specify this group with the following extra + String extra value + Select a group above to see its ID and the ready-made command. + Select a group + Choose which group this intent controls + diff --git a/data/src/main/java/io/github/sds100/keymapper/data/db/dao/KeyMapDao.kt b/data/src/main/java/io/github/sds100/keymapper/data/db/dao/KeyMapDao.kt index 4566c833da..5792f3cdff 100644 --- a/data/src/main/java/io/github/sds100/keymapper/data/db/dao/KeyMapDao.kt +++ b/data/src/main/java/io/github/sds100/keymapper/data/db/dao/KeyMapDao.kt @@ -54,6 +54,11 @@ interface KeyMapDao { @Query("UPDATE $TABLE_NAME SET $KEY_ENABLED=0 WHERE $KEY_GROUP_UID IS (:groupUid)") suspend fun disableKeyMapByGroup(groupUid: String?) + @Query( + "UPDATE $TABLE_NAME SET $KEY_ENABLED=NOT $KEY_ENABLED WHERE $KEY_GROUP_UID IS (:groupUid)", + ) + suspend fun toggleKeyMapByGroup(groupUid: String?) + @Query("UPDATE $TABLE_NAME SET $KEY_ENABLED=0 WHERE $KEY_UID in (:uid)") suspend fun disableKeyMapByUid(vararg uid: String) diff --git a/data/src/main/java/io/github/sds100/keymapper/data/repositories/KeyMapRepository.kt b/data/src/main/java/io/github/sds100/keymapper/data/repositories/KeyMapRepository.kt index 122941dce2..0d3b79f4f2 100644 --- a/data/src/main/java/io/github/sds100/keymapper/data/repositories/KeyMapRepository.kt +++ b/data/src/main/java/io/github/sds100/keymapper/data/repositories/KeyMapRepository.kt @@ -21,6 +21,7 @@ interface KeyMapRepository { fun disableById(vararg uid: String) fun enableByGroup(groupUid: String?) fun disableByGroup(groupUid: String?) + fun toggleByGroup(groupUid: String?) fun toggleById(vararg uid: String) fun moveToGroup(groupUid: String?, vararg uid: String) } diff --git a/data/src/main/java/io/github/sds100/keymapper/data/repositories/RoomKeyMapRepository.kt b/data/src/main/java/io/github/sds100/keymapper/data/repositories/RoomKeyMapRepository.kt index 571aea111b..999da294c4 100644 --- a/data/src/main/java/io/github/sds100/keymapper/data/repositories/RoomKeyMapRepository.kt +++ b/data/src/main/java/io/github/sds100/keymapper/data/repositories/RoomKeyMapRepository.kt @@ -121,6 +121,12 @@ class RoomKeyMapRepository @Inject constructor( } } + override fun toggleByGroup(groupUid: String?) { + coroutineScope.launch(dispatchers.io()) { + keyMapDao.toggleKeyMapByGroup(groupUid) + } + } + override fun disableById(vararg uid: String) { coroutineScope.launch(dispatchers.io()) { for (it in uid.splitIntoBatches(MAX_KEY_MAP_BATCH_SIZE)) { From a08f370c8765feceff0c2280501e35a25ef21e20 Mon Sep 17 00:00:00 2001 From: sds100 Date: Sun, 27 Sep 2026 15:35:00 +0200 Subject: [PATCH 11/64] scroll to the end automatically for some code blocks in intent screens so the most significant text is shown automatically --- .../base/groups/EnableGroupByIntentScreen.kt | 5 +++++ .../base/keymaps/EnableByIntentScreen.kt | 5 +++++ .../base/keymaps/PauseResumeByIntentScreen.kt | 4 ++++ .../base/keymaps/TriggerByIntentScreen.kt | 3 +++ .../keymapper/base/utils/ui/compose/CodeBlock.kt | 15 ++++++++++++++- 5 files changed, 31 insertions(+), 1 deletion(-) diff --git a/base/src/main/java/io/github/sds100/keymapper/base/groups/EnableGroupByIntentScreen.kt b/base/src/main/java/io/github/sds100/keymapper/base/groups/EnableGroupByIntentScreen.kt index d8e3eb3b8a..2fcc23bab4 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/groups/EnableGroupByIntentScreen.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/groups/EnableGroupByIntentScreen.kt @@ -100,6 +100,7 @@ private fun EnableGroupByIntentScreen( label = stringResource(R.string.intent_screen_label_class), code = IntentApi.GROUP_RECEIVER_CLASS, clipboardLabel = clipboardLabel, + scrollToEnd = true, ) Text( @@ -112,18 +113,21 @@ private fun EnableGroupByIntentScreen( label = stringResource(R.string.intent_screen_label_action_enable), code = IntentApi.ACTION_ENABLE_GROUP, clipboardLabel = clipboardLabel, + scrollToEnd = true, ) CodeBlock( label = stringResource(R.string.intent_screen_label_action_disable), code = IntentApi.ACTION_DISABLE_GROUP, clipboardLabel = clipboardLabel, + scrollToEnd = true, ) CodeBlock( label = stringResource(R.string.intent_screen_label_action_toggle), code = IntentApi.ACTION_TOGGLE_GROUP, clipboardLabel = clipboardLabel, + scrollToEnd = true, ) Text( @@ -151,6 +155,7 @@ private fun EnableGroupByIntentScreen( label = stringResource(R.string.intent_screen_label_extra_name), code = IntentApi.EXTRA_GROUP_UID, clipboardLabel = clipboardLabel, + scrollToEnd = true, ) CodeBlock( diff --git a/base/src/main/java/io/github/sds100/keymapper/base/keymaps/EnableByIntentScreen.kt b/base/src/main/java/io/github/sds100/keymapper/base/keymaps/EnableByIntentScreen.kt index 66746a4306..ef98399506 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/keymaps/EnableByIntentScreen.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/keymaps/EnableByIntentScreen.kt @@ -50,6 +50,7 @@ fun EnableByIntentScreen( label = stringResource(R.string.intent_screen_label_class), code = ENABLE_RECEIVER_CLASS, clipboardLabel = clipboardLabel, + scrollToEnd = true, ) Text( @@ -62,18 +63,21 @@ fun EnableByIntentScreen( label = stringResource(R.string.intent_screen_label_action_enable), code = ACTION_ENABLE_KEY_MAP, clipboardLabel = clipboardLabel, + scrollToEnd = true, ) CodeBlock( label = stringResource(R.string.intent_screen_label_action_disable), code = ACTION_DISABLE_KEY_MAP, clipboardLabel = clipboardLabel, + scrollToEnd = true, ) CodeBlock( label = stringResource(R.string.intent_screen_label_action_toggle), code = ACTION_TOGGLE_KEY_MAP, clipboardLabel = clipboardLabel, + scrollToEnd = true, ) Text( @@ -86,6 +90,7 @@ fun EnableByIntentScreen( label = stringResource(R.string.intent_screen_label_extra_name), code = EXTRA_KEYMAP_UID, clipboardLabel = clipboardLabel, + scrollToEnd = true, ) CodeBlock( diff --git a/base/src/main/java/io/github/sds100/keymapper/base/keymaps/PauseResumeByIntentScreen.kt b/base/src/main/java/io/github/sds100/keymapper/base/keymaps/PauseResumeByIntentScreen.kt index 2902677523..0b35cc7ad7 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/keymaps/PauseResumeByIntentScreen.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/keymaps/PauseResumeByIntentScreen.kt @@ -39,6 +39,7 @@ fun PauseResumeByIntentScreen(modifier: Modifier = Modifier, onBackClick: () -> label = stringResource(R.string.intent_screen_label_class), code = IntentApi.PAUSE_RECEIVER_CLASS, clipboardLabel = clipboardLabel, + scrollToEnd = true, ) Text( @@ -51,18 +52,21 @@ fun PauseResumeByIntentScreen(modifier: Modifier = Modifier, onBackClick: () -> label = stringResource(R.string.intent_screen_tab_pause), code = IntentApi.ACTION_PAUSE_MAPPINGS, clipboardLabel = clipboardLabel, + scrollToEnd = true, ) CodeBlock( label = stringResource(R.string.intent_screen_tab_resume), code = IntentApi.ACTION_RESUME_MAPPINGS, clipboardLabel = clipboardLabel, + scrollToEnd = true, ) CodeBlock( label = stringResource(R.string.intent_screen_tab_toggle), code = IntentApi.ACTION_TOGGLE_MAPPINGS, clipboardLabel = clipboardLabel, + scrollToEnd = true, ) AdbSection( diff --git a/base/src/main/java/io/github/sds100/keymapper/base/keymaps/TriggerByIntentScreen.kt b/base/src/main/java/io/github/sds100/keymapper/base/keymaps/TriggerByIntentScreen.kt index 4359f554d4..2c25789ce4 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/keymaps/TriggerByIntentScreen.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/keymaps/TriggerByIntentScreen.kt @@ -44,18 +44,21 @@ fun TriggerByIntentScreen( label = stringResource(R.string.intent_screen_label_class), code = IntentApi.TRIGGER_RECEIVER_CLASS, clipboardLabel = clipboardLabel, + scrollToEnd = true, ) CodeBlock( label = stringResource(R.string.intent_screen_label_action), code = IntentApi.ACTION_TRIGGER_KEYMAP_BY_UID, clipboardLabel = clipboardLabel, + scrollToEnd = true, ) CodeBlock( label = stringResource(R.string.intent_screen_label_extra_name), code = EXTRA_KEYMAP_UID, clipboardLabel = clipboardLabel, + scrollToEnd = true, ) CodeBlock( diff --git a/base/src/main/java/io/github/sds100/keymapper/base/utils/ui/compose/CodeBlock.kt b/base/src/main/java/io/github/sds100/keymapper/base/utils/ui/compose/CodeBlock.kt index fa0658fc46..69f66b7e01 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/utils/ui/compose/CodeBlock.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/utils/ui/compose/CodeBlock.kt @@ -20,6 +20,7 @@ import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Surface import androidx.compose.material3.Text import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.remember import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.ui.Alignment @@ -57,6 +58,10 @@ fun CodeBlock( label: String? = null, maxLineLength: Int = CodeBlockDefaults.MAX_LINE_LENGTH, maxHeight: Dp = CodeBlockDefaults.MaxHeight, + /** + * Whether to scroll horizontally to the end by default. + */ + scrollToEnd: Boolean = false, ) { val clipboard = LocalClipboard.current val scope = rememberCoroutineScope() @@ -92,12 +97,20 @@ fun CodeBlock( color = MaterialTheme.colorScheme.surfaceContainerHighest, ) { Row(verticalAlignment = Alignment.CenterVertically) { + val horizontalScrollState = rememberScrollState() + + if (scrollToEnd) { + LaunchedEffect(Unit) { + horizontalScrollState.scrollTo(horizontalScrollState.maxValue) + } + } + SelectionContainer( modifier = Modifier .weight(1f) .heightIn(max = maxHeight) .verticalScroll(rememberScrollState()) - .horizontalScroll(rememberScrollState()), + .horizontalScroll(horizontalScrollState), ) { Text( modifier = Modifier From 498e37481d2278ee0de8d02ef40ea184216533d7 Mon Sep 17 00:00:00 2001 From: sds100 Date: Sun, 27 Sep 2026 16:02:17 +0200 Subject: [PATCH 12/64] feat: show side-by-side view when creating a key map on more devices --- CHANGELOG.md | 1 + .../sds100/keymapper/base/keymaps/BaseConfigKeyMapScreen.kt | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 085ee89ec5..346f09d5a9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ ## Changed - #2252 redesigned the app bar when configuring a key map. Changes are saved automatically so there is no Done button, and the help button was removed. +- Show side-by-side view when creating a key map on more devices ## Fixed diff --git a/base/src/main/java/io/github/sds100/keymapper/base/keymaps/BaseConfigKeyMapScreen.kt b/base/src/main/java/io/github/sds100/keymapper/base/keymaps/BaseConfigKeyMapScreen.kt index f28290aec2..3a0ca6f330 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/keymaps/BaseConfigKeyMapScreen.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/keymaps/BaseConfigKeyMapScreen.kt @@ -485,8 +485,8 @@ private fun determineTabs(maxWidth: Dp, maxHeight: Dp): List { return when { maxWidth >= 800.dp && maxHeight >= 800.dp -> listOf(ConfigKeyMapTab.ALL) - (maxWidth >= 1000.dp && maxHeight >= 450.dp) || - (maxWidth >= 450.dp && maxHeight >= 1000.dp) -> listOf( + (maxWidth >= 800.dp && maxHeight >= 450.dp) || + (maxWidth >= 450.dp && maxHeight >= 800.dp) -> listOf( ConfigKeyMapTab.TRIGGER_AND_ACTIONS, ConfigKeyMapTab.CONSTRAINTS_AND_OPTIONS, ) From e33adaaf88c5b532161e23925cf7c116469e0726 Mon Sep 17 00:00:00 2001 From: sds100 Date: Sun, 27 Sep 2026 16:02:57 +0200 Subject: [PATCH 13/64] fix: do not use maximum dialog with for custom dialogs and whats new dialog --- .../io/github/sds100/keymapper/base/home/WhatsNewDialog.kt | 6 +++--- .../keymapper/base/utils/ui/compose/ComposeDialogs.kt | 3 --- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/base/src/main/java/io/github/sds100/keymapper/base/home/WhatsNewDialog.kt b/base/src/main/java/io/github/sds100/keymapper/base/home/WhatsNewDialog.kt index 756cc3e2fd..90b816fd94 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/home/WhatsNewDialog.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/home/WhatsNewDialog.kt @@ -8,10 +8,10 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.ColumnScope import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.widthIn import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.verticalScroll @@ -69,7 +69,7 @@ fun WhatsNewDialogContent( val uriHandler = LocalUriHandler.current val changelogUrl = stringResource(R.string.url_changelog) - Column { + Column(modifier = modifier.widthIn(max = 400.dp)) { Spacer(Modifier.height(16.dp)) Column( @@ -125,7 +125,7 @@ fun WhatsNewDialogContent( @Composable private fun WhatsNewHeader(modifier: Modifier = Modifier, versionName: String) { Row( - modifier = modifier.fillMaxWidth(), + modifier = modifier, verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.spacedBy(12.dp), ) { diff --git a/base/src/main/java/io/github/sds100/keymapper/base/utils/ui/compose/ComposeDialogs.kt b/base/src/main/java/io/github/sds100/keymapper/base/utils/ui/compose/ComposeDialogs.kt index fb6cb0f2ad..4e68f0aaaa 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/utils/ui/compose/ComposeDialogs.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/utils/ui/compose/ComposeDialogs.kt @@ -180,7 +180,6 @@ fun CustomDialogContent( Text( modifier = Modifier .align(Alignment.Start) - .fillMaxWidth() .padding(start = 24.dp, end = 24.dp), text = title, style = MaterialTheme.typography.headlineSmall, @@ -194,7 +193,6 @@ fun CustomDialogContent( Text( modifier = Modifier .align(Alignment.Start) - .fillMaxWidth() .padding(start = 24.dp, end = 24.dp), text = text, style = MaterialTheme.typography.bodyMedium, @@ -211,7 +209,6 @@ fun CustomDialogContent( Row( modifier = Modifier - .fillMaxWidth() .align(Alignment.End) .padding(start = 16.dp, end = 16.dp, bottom = 16.dp), horizontalArrangement = Arrangement.spacedBy(16.dp, alignment = Alignment.End), From ea39494d028ede0d6f02acf86dc7f9283b08cefa Mon Sep 17 00:00:00 2001 From: sds100 Date: Sun, 27 Sep 2026 16:05:01 +0200 Subject: [PATCH 14/64] fix: add padding to end of enable key map switch --- .../sds100/keymapper/base/keymaps/ConfigKeyMapAppBar.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/base/src/main/java/io/github/sds100/keymapper/base/keymaps/ConfigKeyMapAppBar.kt b/base/src/main/java/io/github/sds100/keymapper/base/keymaps/ConfigKeyMapAppBar.kt index 208249b08a..5258df5a3a 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/keymaps/ConfigKeyMapAppBar.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/keymaps/ConfigKeyMapAppBar.kt @@ -148,9 +148,9 @@ internal fun ConfigKeyMapAppBar( ) } - if (!showUndoRedoInline) { - Spacer(Modifier.width(8.dp)) + Spacer(Modifier.width(8.dp)) + if (!showUndoRedoInline) { UndoRedoMenu( canUndo = canUndo, canRedo = canRedo, From c1d3f2e7693c9cc3d8fdc58316cd9dfcc2061799 Mon Sep 17 00:00:00 2001 From: sds100 Date: Sun, 27 Sep 2026 16:33:24 +0200 Subject: [PATCH 15/64] #2271 fix: brightness actions match brightness slider on Android 16.1+ --- CHANGELOG.md | 1 + .../system/display/AndroidDisplayAdapter.kt | 84 ++++++++++--------- 2 files changed, 46 insertions(+), 39 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 346f09d5a9..fcad04af3d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,7 @@ ## Fixed - #2268 use trampoline when launching device assistant and settings apps when the device is locked so the lock screen dismisses. +- #2271 brightness actions match brightness slider on Android 16.1+. ## [4.5.0](https://github.com/sds100/KeyMapper/releases/tag/v4.5.0) diff --git a/system/src/main/java/io/github/sds100/keymapper/system/display/AndroidDisplayAdapter.kt b/system/src/main/java/io/github/sds100/keymapper/system/display/AndroidDisplayAdapter.kt index 48867bcfda..a73e7c81ab 100644 --- a/system/src/main/java/io/github/sds100/keymapper/system/display/AndroidDisplayAdapter.kt +++ b/system/src/main/java/io/github/sds100/keymapper/system/display/AndroidDisplayAdapter.kt @@ -5,6 +5,7 @@ import android.content.Context import android.content.Intent import android.content.IntentFilter import android.hardware.display.DisplayManager +import android.os.Build import android.provider.Settings import android.view.Display import android.view.OrientationEventListener @@ -22,6 +23,7 @@ import io.github.sds100.keymapper.common.utils.Success import io.github.sds100.keymapper.common.utils.getRealDisplaySize import javax.inject.Inject import javax.inject.Singleton +import kotlin.math.roundToInt import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.delay import kotlinx.coroutines.flow.Flow @@ -48,7 +50,7 @@ class AndroidDisplayAdapter @Inject constructor( /** * How much to change the brightness by. */ - private const val BRIGHTNESS_CHANGE_STEP = 20 + private const val BRIGHTNESS_CHANGE_STEP_PERCENT: Float = 0.1f /** * Tolerance in degrees for orientation detection. @@ -207,55 +209,43 @@ class AndroidDisplayAdapter @Inject constructor( // auto-brightness must be disabled disableAutoBrightness() - val currentBrightness = - SettingsUtils.getSystemSetting(ctx, Settings.System.SCREEN_BRIGHTNESS) - - var newBrightness = if (currentBrightness != null) { - currentBrightness + BRIGHTNESS_CHANGE_STEP - } else { - 255 - } - - // the brightness must be between 0 and 255 - if (newBrightness > 255) { - newBrightness = 255 - } - - val success = - SettingsUtils.putSystemSetting(ctx, Settings.System.SCREEN_BRIGHTNESS, newBrightness) - - return if (success) { - Success(Unit) - } else { - KMError.FailedToModifySystemSetting(Settings.System.SCREEN_BRIGHTNESS) - } + return setBrightness(BRIGHTNESS_CHANGE_STEP_PERCENT) } override fun decreaseBrightness(): KMResult<*> { // auto-brightness must be disabled disableAutoBrightness() - val currentBrightness = - SettingsUtils.getSystemSetting(ctx, Settings.System.SCREEN_BRIGHTNESS) + return setBrightness(-BRIGHTNESS_CHANGE_STEP_PERCENT) + } - var newBrightness = if (currentBrightness != null) { - currentBrightness - BRIGHTNESS_CHANGE_STEP - } else { - 255 - } + private fun setBrightness(delta: Float): KMResult<*> { + val currentBrightness = getDisplayBrightness() / 100f - // the brightness must be between 0 and 255 - if (newBrightness < 0) { - newBrightness = 0 - } + val newBrightness: Float = (currentBrightness + delta).coerceIn(0f, 1f) - val success = - SettingsUtils.putSystemSetting(ctx, Settings.System.SCREEN_BRIGHTNESS, newBrightness) + if (Build.VERSION.SDK_INT_FULL >= Build.VERSION_CODES_FULL.BAKLAVA_1) { + displayManager.setBrightness( + getFirstOnDisplay(), + newBrightness * 100, + DisplayManager.BRIGHTNESS_UNIT_PERCENTAGE, + ) - return if (success) { - Success(Unit) + return Success(Unit) } else { - KMError.FailedToModifySystemSetting(Settings.System.SCREEN_BRIGHTNESS) + val rawBrightness: Int = (newBrightness * 255).roundToInt().coerceIn(0, 255) + + val success = SettingsUtils.putSystemSetting( + ctx, + Settings.System.SCREEN_BRIGHTNESS, + rawBrightness, + ) + + return if (success) { + Success(Unit) + } else { + KMError.FailedToModifySystemSetting(Settings.System.SCREEN_BRIGHTNESS) + } } } @@ -280,6 +270,18 @@ class AndroidDisplayAdapter @Inject constructor( return _orientation.updateAndGet { getDisplayOrientation() } } + private fun getDisplayBrightness(displayId: Int = getFirstOnDisplay()): Float { + return if (Build.VERSION.SDK_INT_FULL >= Build.VERSION_CODES_FULL.BAKLAVA_1) { + displayManager.getBrightness(displayId, DisplayManager.BRIGHTNESS_UNIT_PERCENTAGE) + } else { + val rawBrightness = + SettingsUtils.getSystemSetting(ctx, Settings.System.SCREEN_BRIGHTNESS) + ?: return 0f + + rawBrightness / 255f + } + } + private fun getDisplayOrientation(): Orientation = when (val sdkRotation = displayManager.displays[0].rotation) { Surface.ROTATION_0 -> Orientation.ORIENTATION_0 @@ -298,6 +300,10 @@ class AndroidDisplayAdapter @Inject constructor( supportedResolutions.update { getSupportedResolutions() } } + private fun getFirstOnDisplay(): Int { + return displayManager.displays.first { it.state == Display.STATE_ON }.displayId + } + /** * Converts sensor orientation degrees to PhysicalOrientation. * From 4b2953471a0d5ca85edb3090e5f718451d0e889d Mon Sep 17 00:00:00 2001 From: sds100 Date: Sun, 27 Sep 2026 16:39:42 +0200 Subject: [PATCH 16/64] #2271 brightness actions on old Android versions work again --- .../keymapper/system/display/AndroidDisplayAdapter.kt | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/system/src/main/java/io/github/sds100/keymapper/system/display/AndroidDisplayAdapter.kt b/system/src/main/java/io/github/sds100/keymapper/system/display/AndroidDisplayAdapter.kt index a73e7c81ab..aefa7a04c8 100644 --- a/system/src/main/java/io/github/sds100/keymapper/system/display/AndroidDisplayAdapter.kt +++ b/system/src/main/java/io/github/sds100/keymapper/system/display/AndroidDisplayAdapter.kt @@ -220,7 +220,7 @@ class AndroidDisplayAdapter @Inject constructor( } private fun setBrightness(delta: Float): KMResult<*> { - val currentBrightness = getDisplayBrightness() / 100f + val currentBrightness = getDisplayBrightness() val newBrightness: Float = (currentBrightness + delta).coerceIn(0f, 1f) @@ -233,7 +233,7 @@ class AndroidDisplayAdapter @Inject constructor( return Success(Unit) } else { - val rawBrightness: Int = (newBrightness * 255).roundToInt().coerceIn(0, 255) + val rawBrightness: Int = (newBrightness * 255).roundToInt().coerceIn(1, 255) val success = SettingsUtils.putSystemSetting( ctx, @@ -272,11 +272,14 @@ class AndroidDisplayAdapter @Inject constructor( private fun getDisplayBrightness(displayId: Int = getFirstOnDisplay()): Float { return if (Build.VERSION.SDK_INT_FULL >= Build.VERSION_CODES_FULL.BAKLAVA_1) { - displayManager.getBrightness(displayId, DisplayManager.BRIGHTNESS_UNIT_PERCENTAGE) + displayManager.getBrightness( + displayId, + DisplayManager.BRIGHTNESS_UNIT_PERCENTAGE, + ) / 100f } else { val rawBrightness = SettingsUtils.getSystemSetting(ctx, Settings.System.SCREEN_BRIGHTNESS) - ?: return 0f + ?: return 255f rawBrightness / 255f } From 78b6d200c9c428c0ff6f1dc02a97623dca4acb70 Mon Sep 17 00:00:00 2001 From: sds100 Date: Sun, 27 Sep 2026 16:49:34 +0200 Subject: [PATCH 17/64] do not stack tabs on top of each other in BaseConfigKeyMapScreen on smaller screens --- .../sds100/keymapper/base/keymaps/BaseConfigKeyMapScreen.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/base/src/main/java/io/github/sds100/keymapper/base/keymaps/BaseConfigKeyMapScreen.kt b/base/src/main/java/io/github/sds100/keymapper/base/keymaps/BaseConfigKeyMapScreen.kt index 3a0ca6f330..6d00070d5c 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/keymaps/BaseConfigKeyMapScreen.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/keymaps/BaseConfigKeyMapScreen.kt @@ -486,7 +486,8 @@ private fun determineTabs(maxWidth: Dp, maxHeight: Dp): List { maxWidth >= 800.dp && maxHeight >= 800.dp -> listOf(ConfigKeyMapTab.ALL) (maxWidth >= 800.dp && maxHeight >= 450.dp) || - (maxWidth >= 450.dp && maxHeight >= 800.dp) -> listOf( + // Stacking on top of each other should require more height than when landscape + (maxWidth >= 450.dp && maxHeight >= 1000.dp) -> listOf( ConfigKeyMapTab.TRIGGER_AND_ACTIONS, ConfigKeyMapTab.CONSTRAINTS_AND_OPTIONS, ) From 1ce020eb887ce5460abf66af530b2b73507bafe7 Mon Sep 17 00:00:00 2001 From: sds100 Date: Sun, 27 Sep 2026 21:04:23 +0200 Subject: [PATCH 18/64] #2127 feat: shut down and restart device actions --- CHANGELOG.md | 1 + app/proguard-rules.pro | 2 ++ .../sds100/keymapper/base/actions/ActionData.kt | 10 ++++++++++ .../base/actions/ActionDataEntityMapper.kt | 6 ++++++ .../sds100/keymapper/base/actions/ActionId.kt | 2 ++ .../keymapper/base/actions/ActionUiHelper.kt | 4 ++++ .../sds100/keymapper/base/actions/ActionUtils.kt | 9 +++++++++ .../keymapper/base/actions/CreateActionDelegate.kt | 4 ++++ .../base/actions/PerformActionsUseCase.kt | 12 ++++++++++++ base/src/main/res/values/strings.xml | 2 ++ .../sds100/keymapper/sysbridge/ISystemBridge.aidl | 4 ++++ .../keymapper/sysbridge/service/SystemBridge.kt | 14 ++++++++++++++ .../src/main/aidl/android/os/IPowerManager.aidl | 6 ++++++ 13 files changed, 76 insertions(+) create mode 100644 systemstubs/src/main/aidl/android/os/IPowerManager.aidl diff --git a/CHANGELOG.md b/CHANGELOG.md index fcad04af3d..ac53e06dc1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ - #2254 you can now give a key map a custom name, which is shown in the key map list. - #2252 undo and redo changes when configuring a key map. - #2155 the Expert Mode setup wizard now detects Samsung Auto Blocker and guides how to disable it, since it can silently block wireless debugging from staying enabled. +- #2127 shut down and restart device actions. ## Changed diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index 0f7be6ae53..2de9935ad1 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -82,6 +82,8 @@ -keep class android.hardware.usb.IUsbManager { *; } -keep class android.hardware.usb.IUsbManager$Stub { *; } -keep class android.net.* { *; } +-keep class android.os.IPowerManager { *; } +-keep class android.os.IPowerManager$Stub { *; } -keepattributes *Annotation*, InnerClasses -dontnote kotlinx.serialization.AnnotationsKt # core serialization annotations diff --git a/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionData.kt b/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionData.kt index ed244f3d63..81473149ac 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionData.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionData.kt @@ -980,6 +980,16 @@ sealed class ActionData : Comparable { override val id = ActionId.SHOW_POWER_MENU } + @Serializable + data object ShutdownDevice : ActionData() { + override val id = ActionId.SHUTDOWN_DEVICE + } + + @Serializable + data object RebootDevice : ActionData() { + override val id = ActionId.REBOOT_DEVICE + } + @Serializable data object DismissLastNotification : ActionData() { override val id: ActionId = ActionId.DISMISS_MOST_RECENT_NOTIFICATION diff --git a/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionDataEntityMapper.kt b/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionDataEntityMapper.kt index 90fc5e687f..44d4f10563 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionDataEntityMapper.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionDataEntityMapper.kt @@ -700,6 +700,10 @@ object ActionDataEntityMapper { ActionId.SHOW_POWER_MENU -> ActionData.ShowPowerMenu + ActionId.SHUTDOWN_DEVICE -> ActionData.ShutdownDevice + + ActionId.REBOOT_DEVICE -> ActionData.RebootDevice + ActionId.DISMISS_MOST_RECENT_NOTIFICATION -> ActionData.DismissLastNotification ActionId.DISMISS_ALL_NOTIFICATIONS -> ActionData.DismissAllNotifications @@ -1692,6 +1696,8 @@ object ActionDataEntityMapper { ActionId.CONSUME_KEY_EVENT to "consume_key_event", ActionId.OPEN_SETTINGS to "open_settings", ActionId.SHOW_POWER_MENU to "show_power_menu", + ActionId.SHUTDOWN_DEVICE to "shutdown_device", + ActionId.REBOOT_DEVICE to "reboot_device", ActionId.DISMISS_MOST_RECENT_NOTIFICATION to "dismiss_most_recent_notification", ActionId.DISMISS_ALL_NOTIFICATIONS to "dismiss_all_notifications", diff --git a/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionId.kt b/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionId.kt index c892fbffc3..d8d7920074 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionId.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionId.kt @@ -147,6 +147,8 @@ enum class ActionId { CONSUME_KEY_EVENT, OPEN_SETTINGS, SHOW_POWER_MENU, + SHUTDOWN_DEVICE, + REBOOT_DEVICE, DISMISS_MOST_RECENT_NOTIFICATION, DISMISS_ALL_NOTIFICATIONS, diff --git a/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionUiHelper.kt b/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionUiHelper.kt index 6e9e1f0306..cc88cbc960 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionUiHelper.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionUiHelper.kt @@ -758,6 +758,10 @@ class ActionUiHelper( ActionData.ForceStopApp -> getString(R.string.action_force_stop_app) + ActionData.ShutdownDevice -> getString(R.string.action_shutdown_device) + + ActionData.RebootDevice -> getString(R.string.action_reboot_device) + is ActionData.ComposeSms -> getString( R.string.action_compose_sms_description, arrayOf(action.message, action.number), diff --git a/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionUtils.kt b/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionUtils.kt index d14e92aeee..78793b9969 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionUtils.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionUtils.kt @@ -53,6 +53,7 @@ import androidx.compose.material.icons.outlined.PhonelinkRing import androidx.compose.material.icons.outlined.Pinch import androidx.compose.material.icons.outlined.PlayArrow import androidx.compose.material.icons.outlined.PowerSettingsNew +import androidx.compose.material.icons.outlined.RestartAlt import androidx.compose.material.icons.outlined.ScreenLockRotation import androidx.compose.material.icons.outlined.ScreenRotation import androidx.compose.material.icons.outlined.SelectAll @@ -237,6 +238,8 @@ object ActionUtils { ActionId.CYCLE_KEYBOARD -> ActionCategory.KEYBOARD ActionId.LOCK_DEVICE -> ActionCategory.INTERFACE ActionId.POWER_ON_OFF_DEVICE -> ActionCategory.INTERFACE + ActionId.SHUTDOWN_DEVICE -> ActionCategory.INTERFACE + ActionId.REBOOT_DEVICE -> ActionCategory.INTERFACE ActionId.SECURE_LOCK_DEVICE -> ActionCategory.INTERFACE ActionId.SHOW_POWER_MENU -> ActionCategory.INTERFACE ActionId.PHONE_CALL -> ActionCategory.TELEPHONY @@ -471,6 +474,8 @@ object ActionUtils { ActionId.OPEN_SETTINGS -> R.string.action_open_settings ActionId.SHOW_POWER_MENU -> R.string.action_show_power_menu + ActionId.SHUTDOWN_DEVICE -> R.string.action_shutdown_device + ActionId.REBOOT_DEVICE -> R.string.action_reboot_device ActionId.APP -> R.string.action_open_app @@ -818,6 +823,8 @@ object ActionUtils { Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q + ActionId.SHUTDOWN_DEVICE, ActionId.REBOOT_DEVICE -> true + else -> false } } @@ -1095,6 +1102,8 @@ object ActionUtils { ActionId.CONSUME_KEY_EVENT -> Icons.Outlined.Cancel ActionId.OPEN_SETTINGS -> Icons.Outlined.Settings ActionId.SHOW_POWER_MENU -> Icons.Outlined.PowerSettingsNew + ActionId.SHUTDOWN_DEVICE -> Icons.Outlined.PowerSettingsNew + ActionId.REBOOT_DEVICE -> Icons.Outlined.RestartAlt ActionId.APP -> Icons.Rounded.Android ActionId.APP_SHORTCUT -> Icons.AutoMirrored.Outlined.OpenInNew ActionId.KEY_CODE -> Icons.Rounded.Abc diff --git a/base/src/main/java/io/github/sds100/keymapper/base/actions/CreateActionDelegate.kt b/base/src/main/java/io/github/sds100/keymapper/base/actions/CreateActionDelegate.kt index f58bd83d0b..57442e1dcd 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/actions/CreateActionDelegate.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/actions/CreateActionDelegate.kt @@ -1240,6 +1240,10 @@ class CreateActionDelegate( ActionId.SHOW_POWER_MENU -> return ActionData.ShowPowerMenu + ActionId.SHUTDOWN_DEVICE -> return ActionData.ShutdownDevice + + ActionId.REBOOT_DEVICE -> return ActionData.RebootDevice + ActionId.DISABLE_DND_MODE -> return ActionData.DoNotDisturb.Disable ActionId.DISMISS_MOST_RECENT_NOTIFICATION -> return ActionData.DismissLastNotification diff --git a/base/src/main/java/io/github/sds100/keymapper/base/actions/PerformActionsUseCase.kt b/base/src/main/java/io/github/sds100/keymapper/base/actions/PerformActionsUseCase.kt index 6137fe85e7..ac0385182b 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/actions/PerformActionsUseCase.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/actions/PerformActionsUseCase.kt @@ -1088,6 +1088,18 @@ class PerformActionsUseCaseImpl @AssistedInject constructor( } } + ActionData.ShutdownDevice -> { + result = systemBridgeConnectionManager.run { systemBridge -> + systemBridge.shutdownDevice() + } + } + + ActionData.RebootDevice -> { + result = systemBridgeConnectionManager.run { systemBridge -> + systemBridge.rebootDevice() + } + } + ActionData.ForceStopApp -> { val packageName = service.activeWindowPackageNames .firstOrNull { diff --git a/base/src/main/res/values/strings.xml b/base/src/main/res/values/strings.xml index 454ac3e531..a0a2ba7ace 100644 --- a/base/src/main/res/values/strings.xml +++ b/base/src/main/res/values/strings.xml @@ -1218,6 +1218,8 @@ Open settings Show power menu + Shut down device + Restart device Toggle airplane mode Enable airplane mode diff --git a/sysbridge/src/main/aidl/io/github/sds100/keymapper/sysbridge/ISystemBridge.aidl b/sysbridge/src/main/aidl/io/github/sds100/keymapper/sysbridge/ISystemBridge.aidl index 6393821617..dd2ebd214d 100644 --- a/sysbridge/src/main/aidl/io/github/sds100/keymapper/sysbridge/ISystemBridge.aidl +++ b/sysbridge/src/main/aidl/io/github/sds100/keymapper/sysbridge/ISystemBridge.aidl @@ -66,4 +66,8 @@ interface ISystemBridge { * seconds and releasing it kills the system bridge). Defaults to enabled. */ void setEmergencyStopEnabled(boolean enabled) = 27; + + void rebootDevice() = 28; + + void shutdownDevice() = 29; } diff --git a/sysbridge/src/main/java/io/github/sds100/keymapper/sysbridge/service/SystemBridge.kt b/sysbridge/src/main/java/io/github/sds100/keymapper/sysbridge/service/SystemBridge.kt index 7e28c376d1..1cbe641e5d 100644 --- a/sysbridge/src/main/java/io/github/sds100/keymapper/sysbridge/service/SystemBridge.kt +++ b/sysbridge/src/main/java/io/github/sds100/keymapper/sysbridge/service/SystemBridge.kt @@ -30,6 +30,7 @@ import android.os.Build import android.os.Bundle import android.os.Handler import android.os.IBinder +import android.os.IPowerManager import android.os.Looper import android.os.Process import android.os.RemoteException @@ -359,6 +360,11 @@ class SystemBridge : ISystemBridge.Stub() { IUsbManager.Stub.asInterface(ServiceManager.getService(Context.USB_SERVICE)) } + private val powerManager: IPowerManager by lazy { + waitSystemService(Context.POWER_SERVICE) + IPowerManager.Stub.asInterface(ServiceManager.getService(Context.POWER_SERVICE)) + } + private val processPackageName: String = when (Process.myUid()) { Process.ROOT_UID -> "root" Process.SHELL_UID -> "com.android.shell" @@ -779,6 +785,14 @@ class SystemBridge : ISystemBridge.Stub() { .forEach { activityManager.removeTask(it.taskId) } } + override fun rebootDevice() { + powerManager.reboot(false, "keymapper", false) + } + + override fun shutdownDevice() { + powerManager.shutdown(false, "keymapper", false) + } + override fun setRingerMode(ringerMode: Int) { if (audioService == null) { throw UnsupportedOperationException("AudioService not supported") diff --git a/systemstubs/src/main/aidl/android/os/IPowerManager.aidl b/systemstubs/src/main/aidl/android/os/IPowerManager.aidl new file mode 100644 index 0000000000..f0a2ce47e8 --- /dev/null +++ b/systemstubs/src/main/aidl/android/os/IPowerManager.aidl @@ -0,0 +1,6 @@ +package android.os; + +interface IPowerManager { + void reboot(boolean confirm, String reason, boolean wait); + void shutdown(boolean confirm, String reason, boolean wait); +} From 1694d9f0956d243cbd3a7f844d90df108b460ccb Mon Sep 17 00:00:00 2001 From: sds100 Date: Mon, 28 Sep 2026 10:37:15 +0200 Subject: [PATCH 19/64] #1493 feat: the brightness increment for the increase/decrease brightness actions can now be configured, from 1% to 50% (default 10%) --- CHANGELOG.md | 1 + .../keymapper/base/actions/ActionData.kt | 4 +- .../base/actions/ActionDataEntityMapper.kt | 28 ++- .../keymapper/base/actions/ActionUiHelper.kt | 14 +- .../keymapper/base/actions/ActionUtils.kt | 2 + .../BrightnessStepActionBottomSheet.kt | 189 ++++++++++++++++++ .../base/actions/ChooseActionScreen.kt | 1 + .../base/actions/CreateActionDelegate.kt | 36 +++- .../base/actions/PerformActionsUseCase.kt | 6 +- .../keyevent/DedicatedActionKeyCodes.kt | 4 +- base/src/main/res/values/strings.xml | 3 + .../actions/ActionDataEntityMapperTest.kt | 74 +++++++ .../keymapper/data/entities/ActionEntity.kt | 1 + .../system/display/AndroidDisplayAdapter.kt | 13 +- .../system/display/DisplayAdapter.kt | 4 +- 15 files changed, 357 insertions(+), 23 deletions(-) create mode 100644 base/src/main/java/io/github/sds100/keymapper/base/actions/BrightnessStepActionBottomSheet.kt diff --git a/CHANGELOG.md b/CHANGELOG.md index ac53e06dc1..9664f15001 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ ## Added +- #1493 the brightness increment for the increase/decrease brightness actions can now be configured, from 1% to 50% (default 10%). - #2075 enable/disable/toggle a group by sending a broadcast intent, configurable from Power user options in Settings. - #2263 constraints can now be edited in place from the constraints list instead of being deleted and re-added. - #2254 you can now give a key map a custom name, which is shown in the key map list. diff --git a/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionData.kt b/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionData.kt index 81473149ac..e51c1203cd 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionData.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionData.kt @@ -776,12 +776,12 @@ sealed class ActionData : Comparable { } @Serializable - data object Increase : Brightness() { + data class Increase(val stepPercent: Int? = null) : Brightness() { override val id = ActionId.INCREASE_BRIGHTNESS } @Serializable - data object Decrease : Brightness() { + data class Decrease(val stepPercent: Int? = null) : Brightness() { override val id = ActionId.DECREASE_BRIGHTNESS } } diff --git a/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionDataEntityMapper.kt b/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionDataEntityMapper.kt index 44d4f10563..c349f9f7a7 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionDataEntityMapper.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionDataEntityMapper.kt @@ -562,9 +562,21 @@ object ActionDataEntityMapper { ActionId.ENABLE_AUTO_BRIGHTNESS -> ActionData.Brightness.EnableAuto - ActionId.INCREASE_BRIGHTNESS -> ActionData.Brightness.Increase + ActionId.INCREASE_BRIGHTNESS -> { + val stepPercent = entity.extras.getData( + ActionEntity.EXTRA_BRIGHTNESS_STEP_PERCENT, + ).valueOrNull()?.toIntOrNull() - ActionId.DECREASE_BRIGHTNESS -> ActionData.Brightness.Decrease + ActionData.Brightness.Increase(stepPercent) + } + + ActionId.DECREASE_BRIGHTNESS -> { + val stepPercent = entity.extras.getData( + ActionEntity.EXTRA_BRIGHTNESS_STEP_PERCENT, + ).valueOrNull()?.toIntOrNull() + + ActionData.Brightness.Decrease(stepPercent) + } ActionId.TOGGLE_NIGHT_SHIFT -> ActionData.NightShift.Toggle @@ -1258,6 +1270,18 @@ object ActionDataEntityMapper { } } + is ActionData.Brightness.Increase -> buildList { + data.stepPercent?.let { + add(EntityExtra(ActionEntity.EXTRA_BRIGHTNESS_STEP_PERCENT, it.toString())) + } + } + + is ActionData.Brightness.Decrease -> buildList { + data.stepPercent?.let { + add(EntityExtra(ActionEntity.EXTRA_BRIGHTNESS_STEP_PERCENT, it.toString())) + } + } + is ActionData.Rotation.CycleRotations -> listOf( EntityExtra( ActionEntity.EXTRA_ORIENTATIONS, diff --git a/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionUiHelper.kt b/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionUiHelper.kt index cc88cbc960..801113493b 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionUiHelper.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionUiHelper.kt @@ -489,13 +489,23 @@ class ActionUiHelper( ActionData.Bluetooth.Toggle -> getString(R.string.action_toggle_bluetooth) - ActionData.Brightness.Decrease -> getString(R.string.action_decrease_brightness) + is ActionData.Brightness.Decrease -> + if (action.stepPercent != null) { + getString(R.string.action_decrease_brightness_with_percent, action.stepPercent) + } else { + getString(R.string.action_decrease_brightness) + } ActionData.Brightness.DisableAuto -> getString(R.string.action_disable_auto_brightness) ActionData.Brightness.EnableAuto -> getString(R.string.action_enable_auto_brightness) - ActionData.Brightness.Increase -> getString(R.string.action_increase_brightness) + is ActionData.Brightness.Increase -> + if (action.stepPercent != null) { + getString(R.string.action_increase_brightness_with_percent, action.stepPercent) + } else { + getString(R.string.action_increase_brightness) + } ActionData.Brightness.ToggleAuto -> getString(R.string.action_toggle_auto_brightness) diff --git a/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionUtils.kt b/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionUtils.kt index 78793b9969..6fb4b0a32b 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionUtils.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionUtils.kt @@ -1186,6 +1186,8 @@ fun ActionData.isEditable(): Boolean = when (this) { is ActionData.CreateNotification, is ActionData.Toast, is ActionData.Vibrate, + is ActionData.Brightness.Increase, + is ActionData.Brightness.Decrease, is ActionData.InteractUiElement, is ActionData.MoveCursor, is ActionData.ModifySetting, diff --git a/base/src/main/java/io/github/sds100/keymapper/base/actions/BrightnessStepActionBottomSheet.kt b/base/src/main/java/io/github/sds100/keymapper/base/actions/BrightnessStepActionBottomSheet.kt new file mode 100644 index 0000000000..17c6dd3ff1 --- /dev/null +++ b/base/src/main/java/io/github/sds100/keymapper/base/actions/BrightnessStepActionBottomSheet.kt @@ -0,0 +1,189 @@ +package io.github.sds100.keymapper.base.actions + +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.verticalScroll +import androidx.compose.material3.Button +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.ModalBottomSheet +import androidx.compose.material3.OutlinedButton +import androidx.compose.material3.SheetState +import androidx.compose.material3.SheetValue +import androidx.compose.material3.Text +import androidx.compose.material3.rememberModalBottomSheetState +import androidx.compose.runtime.Composable +import androidx.compose.runtime.rememberCoroutineScope +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import io.github.sds100.keymapper.base.R +import io.github.sds100.keymapper.base.compose.KeyMapperTheme +import io.github.sds100.keymapper.base.utils.ui.compose.SliderOptionText +import kotlin.math.roundToInt +import kotlinx.coroutines.launch + +private const val MIN_STEP_PERCENT = 1 +private const val MAX_STEP_PERCENT = 50 +private const val STEP_PERCENT_STEP_SIZE = 1 +internal const val DEFAULT_BRIGHTNESS_STEP_PERCENT = 10 + +data class BrightnessStepActionBottomSheetState( + val actionId: ActionId, + val stepPercent: Int = DEFAULT_BRIGHTNESS_STEP_PERCENT, +) + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +fun BrightnessStepActionBottomSheet(delegate: CreateActionDelegate) { + val scope = rememberCoroutineScope() + val sheetState = rememberModalBottomSheetState(skipPartiallyExpanded = true) + + if (delegate.brightnessStepActionState != null) { + BrightnessStepActionBottomSheet( + sheetState = sheetState, + state = delegate.brightnessStepActionState!!, + onDismissRequest = { + delegate.brightnessStepActionState = null + }, + onStepPercentChange = delegate::onBrightnessStepPercentChange, + onDoneClick = { + scope.launch { + sheetState.hide() + delegate.onDoneBrightnessStepClick() + } + }, + ) + } +} + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +private fun BrightnessStepActionBottomSheet( + sheetState: SheetState, + state: BrightnessStepActionBottomSheetState, + onDismissRequest: () -> Unit = {}, + onStepPercentChange: (Int) -> Unit = {}, + onDoneClick: () -> Unit = {}, +) { + val scope = rememberCoroutineScope() + + val titleRes = when (state.actionId) { + ActionId.DECREASE_BRIGHTNESS -> R.string.action_decrease_brightness + else -> R.string.action_increase_brightness + } + + ModalBottomSheet( + onDismissRequest = onDismissRequest, + sheetState = sheetState, + dragHandle = null, + ) { + Column( + modifier = Modifier + .verticalScroll(rememberScrollState()) + .fillMaxWidth() + .padding(horizontal = 16.dp), + verticalArrangement = Arrangement.spacedBy(16.dp), + ) { + Text( + modifier = Modifier + .fillMaxWidth() + .padding(top = 16.dp), + textAlign = TextAlign.Center, + text = stringResource(titleRes), + style = MaterialTheme.typography.titleLarge, + ) + + SliderOptionText( + title = stringResource(R.string.brightness_step_percent_label), + value = state.stepPercent.toFloat(), + defaultValue = DEFAULT_BRIGHTNESS_STEP_PERCENT.toFloat(), + valueText = { "${it.roundToInt()}%" }, + onValueChange = { onStepPercentChange(it.roundToInt()) }, + valueRange = MIN_STEP_PERCENT.toFloat()..MAX_STEP_PERCENT.toFloat(), + stepSize = STEP_PERCENT_STEP_SIZE, + ) + + Row( + modifier = Modifier + .fillMaxWidth() + .padding(bottom = 16.dp), + horizontalArrangement = Arrangement.SpaceBetween, + verticalAlignment = Alignment.CenterVertically, + ) { + OutlinedButton( + modifier = Modifier.weight(1f), + onClick = { + scope.launch { + sheetState.hide() + onDismissRequest() + } + }, + ) { + Text(stringResource(R.string.neg_cancel)) + } + + Spacer(modifier = Modifier.width(16.dp)) + + Button( + modifier = Modifier.weight(1f), + onClick = onDoneClick, + ) { + Text(stringResource(R.string.pos_done)) + } + } + } + } +} + +@OptIn(ExperimentalMaterial3Api::class) +@Preview(showSystemUi = true) +@Composable +private fun BrightnessStepActionBottomSheetPreview() { + KeyMapperTheme { + val sheetState = SheetState( + skipPartiallyExpanded = true, + positionalThreshold = { 0f }, + velocityThreshold = { 0f }, + initialValue = SheetValue.Expanded, + ) + + BrightnessStepActionBottomSheet( + sheetState = sheetState, + state = BrightnessStepActionBottomSheetState( + actionId = ActionId.INCREASE_BRIGHTNESS, + stepPercent = 25, + ), + ) + } +} + +@OptIn(ExperimentalMaterial3Api::class) +@Preview(showSystemUi = true) +@Composable +private fun BrightnessStepActionBottomSheetDefaultPreview() { + KeyMapperTheme { + val sheetState = SheetState( + skipPartiallyExpanded = true, + positionalThreshold = { 0f }, + velocityThreshold = { 0f }, + initialValue = SheetValue.Expanded, + ) + + BrightnessStepActionBottomSheet( + sheetState = sheetState, + state = BrightnessStepActionBottomSheetState( + actionId = ActionId.DECREASE_BRIGHTNESS, + ), + ) + } +} diff --git a/base/src/main/java/io/github/sds100/keymapper/base/actions/ChooseActionScreen.kt b/base/src/main/java/io/github/sds100/keymapper/base/actions/ChooseActionScreen.kt index 0e5a33371a..1ffdcdb1c2 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/actions/ChooseActionScreen.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/actions/ChooseActionScreen.kt @@ -62,6 +62,7 @@ fun HandleActionBottomSheets(delegate: CreateActionDelegate) { ToastActionBottomSheet(delegate) VibrateActionBottomSheet(delegate) StepMediaActionBottomSheet(delegate) + BrightnessStepActionBottomSheet(delegate) PickTalkBackGestureDialog(delegate) } diff --git a/base/src/main/java/io/github/sds100/keymapper/base/actions/CreateActionDelegate.kt b/base/src/main/java/io/github/sds100/keymapper/base/actions/CreateActionDelegate.kt index 57442e1dcd..eccb051851 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/actions/CreateActionDelegate.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/actions/CreateActionDelegate.kt @@ -75,6 +75,7 @@ class CreateActionDelegate( by mutableStateOf(null) var toastActionBottomSheetState: ToastActionBottomSheetState? by mutableStateOf(null) var stepMediaActionBottomSheetState: StepMediaActionBottomSheetState? by mutableStateOf(null) + var brightnessStepActionState: BrightnessStepActionBottomSheetState? by mutableStateOf(null) init { coroutineScope.launch { @@ -441,6 +442,24 @@ class CreateActionDelegate( actionResult.update { action } } + fun onBrightnessStepPercentChange(stepPercent: Int) { + brightnessStepActionState = brightnessStepActionState?.copy(stepPercent = stepPercent) + } + + fun onDoneBrightnessStepClick() { + val state = brightnessStepActionState ?: return + val stepPercent = state.stepPercent.takeIf { it != DEFAULT_BRIGHTNESS_STEP_PERCENT } + + val action = when (state.actionId) { + ActionId.INCREASE_BRIGHTNESS -> ActionData.Brightness.Increase(stepPercent) + ActionId.DECREASE_BRIGHTNESS -> ActionData.Brightness.Decrease(stepPercent) + else -> throw Exception("don't know how to create action for ${state.actionId}") + } + + brightnessStepActionState = null + actionResult.update { action } + } + fun onRequestNotificationPermissionClick() { useCase.requestPermission(Permission.POST_NOTIFICATIONS) } @@ -1100,9 +1119,22 @@ class CreateActionDelegate( ActionId.ENABLE_AUTO_BRIGHTNESS -> return ActionData.Brightness.EnableAuto - ActionId.INCREASE_BRIGHTNESS -> return ActionData.Brightness.Increase + ActionId.INCREASE_BRIGHTNESS, + ActionId.DECREASE_BRIGHTNESS, + -> { + val oldStepPercent = when (oldData) { + is ActionData.Brightness.Increase -> oldData.stepPercent + is ActionData.Brightness.Decrease -> oldData.stepPercent + else -> null + } - ActionId.DECREASE_BRIGHTNESS -> return ActionData.Brightness.Decrease + brightnessStepActionState = BrightnessStepActionBottomSheetState( + actionId = actionId, + stepPercent = oldStepPercent ?: DEFAULT_BRIGHTNESS_STEP_PERCENT, + ) + + return null + } ActionId.TOGGLE_NIGHT_SHIFT -> return ActionData.NightShift.Toggle diff --git a/base/src/main/java/io/github/sds100/keymapper/base/actions/PerformActionsUseCase.kt b/base/src/main/java/io/github/sds100/keymapper/base/actions/PerformActionsUseCase.kt index ac0385182b..06babcfe28 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/actions/PerformActionsUseCase.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/actions/PerformActionsUseCase.kt @@ -544,11 +544,13 @@ class PerformActionsUseCaseImpl @AssistedInject constructor( } is ActionData.Brightness.Increase -> { - result = displayAdapter.increaseBrightness() + val stepPercent = action.stepPercent ?: DEFAULT_BRIGHTNESS_STEP_PERCENT + result = displayAdapter.increaseBrightness(stepPercent / 100f) } is ActionData.Brightness.Decrease -> { - result = displayAdapter.decreaseBrightness() + val stepPercent = action.stepPercent ?: DEFAULT_BRIGHTNESS_STEP_PERCENT + result = displayAdapter.decreaseBrightness(stepPercent / 100f) } is ActionData.Rotation.ToggleAuto -> { diff --git a/base/src/main/java/io/github/sds100/keymapper/base/actions/keyevent/DedicatedActionKeyCodes.kt b/base/src/main/java/io/github/sds100/keymapper/base/actions/keyevent/DedicatedActionKeyCodes.kt index 1cb4157fa7..f472239fee 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/actions/keyevent/DedicatedActionKeyCodes.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/actions/keyevent/DedicatedActionKeyCodes.kt @@ -34,8 +34,8 @@ fun getDedicatedKeyCodeAction(keyCode: Int): ActionData? = when (keyCode) { KeyEvent.KEYCODE_MEDIA_REWIND -> ActionData.ControlMedia.Rewind KeyEvent.KEYCODE_MEDIA_STEP_FORWARD -> ActionData.ControlMedia.StepForward() KeyEvent.KEYCODE_MEDIA_STEP_BACKWARD -> ActionData.ControlMedia.StepBackward() - KeyEvent.KEYCODE_BRIGHTNESS_UP -> ActionData.Brightness.Increase - KeyEvent.KEYCODE_BRIGHTNESS_DOWN -> ActionData.Brightness.Decrease + KeyEvent.KEYCODE_BRIGHTNESS_UP -> ActionData.Brightness.Increase() + KeyEvent.KEYCODE_BRIGHTNESS_DOWN -> ActionData.Brightness.Decrease() KeyEvent.KEYCODE_VOICE_ASSIST -> ActionData.VoiceAssistant KeyEvent.KEYCODE_ASSIST -> ActionData.DeviceAssistant KeyEvent.KEYCODE_CALL -> ActionData.AnswerCall diff --git a/base/src/main/res/values/strings.xml b/base/src/main/res/values/strings.xml index a0a2ba7ace..15eefbb8fc 100644 --- a/base/src/main/res/values/strings.xml +++ b/base/src/main/res/values/strings.xml @@ -1076,7 +1076,10 @@ Disable auto brightness Enable auto brightness Increase display brightness + Increase display brightness by %d%% Decrease display brightness + Decrease display brightness by %d%% + Brightness step Toggle night shift Enable night shift Disable night shift diff --git a/base/src/test/java/io/github/sds100/keymapper/base/actions/ActionDataEntityMapperTest.kt b/base/src/test/java/io/github/sds100/keymapper/base/actions/ActionDataEntityMapperTest.kt index 048114e820..93e6827fde 100644 --- a/base/src/test/java/io/github/sds100/keymapper/base/actions/ActionDataEntityMapperTest.kt +++ b/base/src/test/java/io/github/sds100/keymapper/base/actions/ActionDataEntityMapperTest.kt @@ -188,4 +188,78 @@ class ActionDataEntityMapperTest { assertThat(malformedValue, action.screenResolution, `is`(nullValue())) } } + + @Test + fun `increase brightness action with a non-default step round trips through the entity`() { + val action = ActionData.Brightness.Increase(stepPercent = 25) + + val entity = ActionDataEntityMapper.toEntity(action) + + assertThat( + entity.extras.getData(ActionEntity.EXTRA_BRIGHTNESS_STEP_PERCENT).valueOrNull(), + `is`("25"), + ) + assertThat(ActionDataEntityMapper.fromEntity(entity), `is`(action)) + } + + @Test + fun `dont save an extra when the increase brightness action has no custom step`() { + val action = ActionData.Brightness.Increase(stepPercent = null) + + val entity = ActionDataEntityMapper.toEntity(action) + + assertThat( + entity.extras.getData(ActionEntity.EXTRA_BRIGHTNESS_STEP_PERCENT).valueOrNull(), + `is`(nullValue()), + ) + assertThat(ActionDataEntityMapper.fromEntity(entity), `is`(action)) + } + + @Test + fun `load no brightness step for an increase brightness action saved before it existed`() { + // GIVEN an entity saved by an older version of the app, with no extra at all. + val entity = + ActionEntity(type = ActionEntity.Type.SYSTEM_ACTION, data = "increase_brightness") + + val action = ActionDataEntityMapper.fromEntity(entity) + + assertThat((action as ActionData.Brightness.Increase).stepPercent, `is`(nullValue())) + } + + @Test + fun `decrease brightness action with a non-default step round trips through the entity`() { + val action = ActionData.Brightness.Decrease(stepPercent = 25) + + val entity = ActionDataEntityMapper.toEntity(action) + + assertThat( + entity.extras.getData(ActionEntity.EXTRA_BRIGHTNESS_STEP_PERCENT).valueOrNull(), + `is`("25"), + ) + assertThat(ActionDataEntityMapper.fromEntity(entity), `is`(action)) + } + + @Test + fun `dont save an extra when the decrease brightness action has no custom step`() { + val action = ActionData.Brightness.Decrease(stepPercent = null) + + val entity = ActionDataEntityMapper.toEntity(action) + + assertThat( + entity.extras.getData(ActionEntity.EXTRA_BRIGHTNESS_STEP_PERCENT).valueOrNull(), + `is`(nullValue()), + ) + assertThat(ActionDataEntityMapper.fromEntity(entity), `is`(action)) + } + + @Test + fun `load no brightness step for a decrease brightness action saved before it existed`() { + // GIVEN an entity saved by an older version of the app, with no extra at all. + val entity = + ActionEntity(type = ActionEntity.Type.SYSTEM_ACTION, data = "decrease_brightness") + + val action = ActionDataEntityMapper.fromEntity(entity) + + assertThat((action as ActionData.Brightness.Decrease).stepPercent, `is`(nullValue())) + } } diff --git a/data/src/main/java/io/github/sds100/keymapper/data/entities/ActionEntity.kt b/data/src/main/java/io/github/sds100/keymapper/data/entities/ActionEntity.kt index adecee8ccc..0609af345c 100644 --- a/data/src/main/java/io/github/sds100/keymapper/data/entities/ActionEntity.kt +++ b/data/src/main/java/io/github/sds100/keymapper/data/entities/ActionEntity.kt @@ -100,6 +100,7 @@ data class ActionEntity( const val EXTRA_NOTIFICATION_TIMEOUT = "extra_notification_timeout" const val EXTRA_TOAST_DURATION = "extra_toast_duration" const val EXTRA_STEP_MEDIA_DURATION = "extra_step_media_duration" + const val EXTRA_BRIGHTNESS_STEP_PERCENT = "extra_brightness_step_percent" const val EXTRA_VIBRATE_MODE = "extra_vibrate_mode" const val EXTRA_VIBRATE_DURATION_MS = "extra_vibrate_duration_ms" const val EXTRA_VIBRATE_EFFECT_TYPE = "extra_vibrate_effect_type" diff --git a/system/src/main/java/io/github/sds100/keymapper/system/display/AndroidDisplayAdapter.kt b/system/src/main/java/io/github/sds100/keymapper/system/display/AndroidDisplayAdapter.kt index aefa7a04c8..41c1b99ed6 100644 --- a/system/src/main/java/io/github/sds100/keymapper/system/display/AndroidDisplayAdapter.kt +++ b/system/src/main/java/io/github/sds100/keymapper/system/display/AndroidDisplayAdapter.kt @@ -47,11 +47,6 @@ class AndroidDisplayAdapter @Inject constructor( ) : DisplayAdapter { companion object { - /** - * How much to change the brightness by. - */ - private const val BRIGHTNESS_CHANGE_STEP_PERCENT: Float = 0.1f - /** * Tolerance in degrees for orientation detection. * This helps avoid rapid switching at orientation boundaries. @@ -205,18 +200,18 @@ class AndroidDisplayAdapter @Inject constructor( Settings.System.SCREEN_BRIGHTNESS_MODE, ) == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC - override fun increaseBrightness(): KMResult<*> { + override fun increaseBrightness(stepPercent: Float): KMResult<*> { // auto-brightness must be disabled disableAutoBrightness() - return setBrightness(BRIGHTNESS_CHANGE_STEP_PERCENT) + return setBrightness(stepPercent) } - override fun decreaseBrightness(): KMResult<*> { + override fun decreaseBrightness(stepPercent: Float): KMResult<*> { // auto-brightness must be disabled disableAutoBrightness() - return setBrightness(-BRIGHTNESS_CHANGE_STEP_PERCENT) + return setBrightness(-stepPercent) } private fun setBrightness(delta: Float): KMResult<*> { diff --git a/system/src/main/java/io/github/sds100/keymapper/system/display/DisplayAdapter.kt b/system/src/main/java/io/github/sds100/keymapper/system/display/DisplayAdapter.kt index cec0291d52..743a936648 100644 --- a/system/src/main/java/io/github/sds100/keymapper/system/display/DisplayAdapter.kt +++ b/system/src/main/java/io/github/sds100/keymapper/system/display/DisplayAdapter.kt @@ -33,8 +33,8 @@ interface DisplayAdapter { fun fetchOrientation(): Orientation fun isAutoBrightnessEnabled(): Boolean - fun increaseBrightness(): KMResult<*> - fun decreaseBrightness(): KMResult<*> + fun increaseBrightness(stepPercent: Float): KMResult<*> + fun decreaseBrightness(stepPercent: Float): KMResult<*> fun enableAutoBrightness(): KMResult<*> fun disableAutoBrightness(): KMResult<*> } From a5b303a1e63fe5e425b66f4316d6eeb8b7c1d932 Mon Sep 17 00:00:00 2001 From: sds100 Date: Mon, 28 Sep 2026 11:53:39 +0200 Subject: [PATCH 20/64] #2273 fix: show error if device does not support hinge open/closed constraints --- .../constraints/ConstraintErrorSnapshot.kt | 18 ++++++++++++++++++ .../sds100/keymapper/base/utils/ErrorUtils.kt | 3 +++ .../system/foldable/AndroidFoldableAdapter.kt | 6 +++--- 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintErrorSnapshot.kt b/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintErrorSnapshot.kt index 3e6b70f7a3..1d1d8ee870 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintErrorSnapshot.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintErrorSnapshot.kt @@ -1,6 +1,7 @@ package io.github.sds100.keymapper.base.constraints import android.content.pm.PackageManager +import android.os.Build import io.github.sds100.keymapper.common.utils.KMError import io.github.sds100.keymapper.common.utils.onSuccess import io.github.sds100.keymapper.system.SystemError @@ -123,6 +124,23 @@ class LazyConstraintErrorSnapshot( } } + is ConstraintData.HingeClosed, + is ConstraintData.HingeOpen, + -> { + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.R) { + return KMError.SdkVersionTooLow(Build.VERSION_CODES.R) + } + + if (!systemFeatureAdapter.hasSystemFeature( + PackageManager.FEATURE_SENSOR_HINGE_ANGLE, + ) + ) { + return KMError.SystemFeatureNotSupported( + PackageManager.FEATURE_SENSOR_HINGE_ANGLE, + ) + } + } + else -> Unit } diff --git a/base/src/main/java/io/github/sds100/keymapper/base/utils/ErrorUtils.kt b/base/src/main/java/io/github/sds100/keymapper/base/utils/ErrorUtils.kt index 187ffb2137..f2b599da57 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/utils/ErrorUtils.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/utils/ErrorUtils.kt @@ -156,6 +156,9 @@ fun KMError.getFullMessage(resourceProvider: ResourceProvider): String { R.string.error_system_feature_telephony_unsupported, ) + PackageManager.FEATURE_SENSOR_HINGE_ANGLE -> + resourceProvider.getString(R.string.error_system_feature_hinge_unsupported) + else -> throw Exception( "Don't know how to get error message for this system feature ${this.feature}", diff --git a/system/src/main/java/io/github/sds100/keymapper/system/foldable/AndroidFoldableAdapter.kt b/system/src/main/java/io/github/sds100/keymapper/system/foldable/AndroidFoldableAdapter.kt index 9f96f21ed1..e43efcbbf5 100644 --- a/system/src/main/java/io/github/sds100/keymapper/system/foldable/AndroidFoldableAdapter.kt +++ b/system/src/main/java/io/github/sds100/keymapper/system/foldable/AndroidFoldableAdapter.kt @@ -30,9 +30,9 @@ class AndroidFoldableAdapter @Inject constructor( private val sensorEventListener = object : SensorEventListener { override fun onSensorChanged(event: SensorEvent?) { - event?.let { - if (it.sensor.type == Sensor.TYPE_HINGE_ANGLE && it.values.isNotEmpty()) { - val angle = it.values[0] + event?.let { event -> + if (event.sensor.type == Sensor.TYPE_HINGE_ANGLE && event.values.isNotEmpty()) { + val angle = event.values[0] _hingeState.value = HingeState.Available(angle) } } From 4252117bda2fec9325772339c9952d653dbcd5b2 Mon Sep 17 00:00:00 2001 From: sds100 Date: Mon, 28 Sep 2026 12:11:37 +0200 Subject: [PATCH 21/64] #2273 fix: use better icons and text for hinge constraints --- .../base/constraints/ConstraintUtils.kt | 94 ++++++++++--------- .../base/utils/ui/compose/icons/DualScreen.kt | 67 +++++++++++++ .../base/utils/ui/compose/icons/Mobile.kt | 69 ++++++++++++++ base/src/main/res/values/strings.xml | 13 +-- 4 files changed, 192 insertions(+), 51 deletions(-) create mode 100644 base/src/main/java/io/github/sds100/keymapper/base/utils/ui/compose/icons/DualScreen.kt create mode 100644 base/src/main/java/io/github/sds100/keymapper/base/utils/ui/compose/icons/Mobile.kt diff --git a/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintUtils.kt b/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintUtils.kt index 702b65b66f..076600c667 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintUtils.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintUtils.kt @@ -33,6 +33,10 @@ import androidx.compose.material.icons.outlined.WifiOff import androidx.compose.material.icons.rounded.Android import io.github.sds100.keymapper.base.R import io.github.sds100.keymapper.base.utils.ui.compose.ComposeIconInfo +import io.github.sds100.keymapper.base.utils.ui.compose.ComposeIconInfo.Vector +import io.github.sds100.keymapper.base.utils.ui.compose.icons.DualScreen +import io.github.sds100.keymapper.base.utils.ui.compose.icons.KeyMapperIcons +import io.github.sds100.keymapper.base.utils.ui.compose.icons.Mobile object ConstraintUtils { @@ -114,122 +118,122 @@ object ConstraintUtils { fun getIcon(constraintId: ConstraintId): ComposeIconInfo = when (constraintId) { ConstraintId.APP_IN_FOREGROUND, ConstraintId.APP_PLAYING_MEDIA, - -> ComposeIconInfo.Vector(Icons.Rounded.Android) + -> Vector(Icons.Rounded.Android) - ConstraintId.MEDIA_PLAYING -> ComposeIconInfo.Vector(Icons.Outlined.PlayArrow) + ConstraintId.MEDIA_PLAYING -> Vector(Icons.Outlined.PlayArrow) - ConstraintId.BT_DEVICE_CONNECTED -> ComposeIconInfo.Vector( + ConstraintId.BT_DEVICE_CONNECTED -> Vector( Icons.Outlined.BluetoothConnected, ) ConstraintId.DISPLAY_ORIENTATION_0, ConstraintId.DISPLAY_ORIENTATION_180, - -> ComposeIconInfo.Vector(Icons.Outlined.StayCurrentPortrait) + -> Vector(Icons.Outlined.StayCurrentPortrait) ConstraintId.DISPLAY_ORIENTATION_90, ConstraintId.DISPLAY_ORIENTATION_270, - -> ComposeIconInfo.Vector(Icons.Outlined.StayCurrentLandscape) + -> Vector(Icons.Outlined.StayCurrentLandscape) - ConstraintId.DISPLAY_ORIENTATION_LANDSCAPE -> ComposeIconInfo.Vector( + ConstraintId.DISPLAY_ORIENTATION_LANDSCAPE -> Vector( Icons.Outlined.StayCurrentLandscape, ) - ConstraintId.DISPLAY_ORIENTATION_PORTRAIT -> ComposeIconInfo.Vector( + ConstraintId.DISPLAY_ORIENTATION_PORTRAIT -> Vector( Icons.Outlined.StayCurrentPortrait, ) ConstraintId.PHYSICAL_ORIENTATION_PORTRAIT, ConstraintId.PHYSICAL_ORIENTATION_PORTRAIT_INVERTED, - -> ComposeIconInfo.Vector(Icons.Outlined.StayCurrentPortrait) + -> Vector(Icons.Outlined.StayCurrentPortrait) ConstraintId.PHYSICAL_ORIENTATION_LANDSCAPE, ConstraintId.PHYSICAL_ORIENTATION_LANDSCAPE_INVERTED, - -> ComposeIconInfo.Vector(Icons.Outlined.StayCurrentLandscape) + -> Vector(Icons.Outlined.StayCurrentLandscape) - ConstraintId.SCREEN_ON -> ComposeIconInfo.Vector(Icons.Outlined.StayCurrentPortrait) + ConstraintId.SCREEN_ON -> Vector(Icons.Outlined.StayCurrentPortrait) - ConstraintId.DISPLAY_RESOLUTION -> ComposeIconInfo.Vector(Icons.Outlined.AspectRatio) + ConstraintId.DISPLAY_RESOLUTION -> Vector(Icons.Outlined.AspectRatio) - ConstraintId.FLASHLIGHT_ON -> ComposeIconInfo.Vector(Icons.Outlined.FlashlightOn) + ConstraintId.FLASHLIGHT_ON -> Vector(Icons.Outlined.FlashlightOn) - ConstraintId.WIFI_CONNECTED -> ComposeIconInfo.Vector(Icons.Outlined.Wifi) + ConstraintId.WIFI_CONNECTED -> Vector(Icons.Outlined.Wifi) - ConstraintId.WIFI_ON -> ComposeIconInfo.Vector(Icons.Outlined.Wifi) + ConstraintId.WIFI_ON -> Vector(Icons.Outlined.Wifi) - ConstraintId.IME_CHOSEN -> ComposeIconInfo.Vector(Icons.Outlined.Keyboard) + ConstraintId.IME_CHOSEN -> Vector(Icons.Outlined.Keyboard) - ConstraintId.KEYBOARD_SHOWING -> ComposeIconInfo.Vector(Icons.Outlined.Keyboard) + ConstraintId.KEYBOARD_SHOWING -> Vector(Icons.Outlined.Keyboard) - ConstraintId.DEVICE_IS_LOCKED -> ComposeIconInfo.Vector(Icons.Outlined.Lock) + ConstraintId.DEVICE_IS_LOCKED -> Vector(Icons.Outlined.Lock) - ConstraintId.IN_PHONE_CALL -> ComposeIconInfo.Vector(Icons.Outlined.Call) + ConstraintId.IN_PHONE_CALL -> Vector(Icons.Outlined.Call) - ConstraintId.NOT_IN_PHONE_CALL -> ComposeIconInfo.Vector(Icons.Outlined.CallEnd) + ConstraintId.NOT_IN_PHONE_CALL -> Vector(Icons.Outlined.CallEnd) - ConstraintId.PHONE_RINGING -> ComposeIconInfo.Vector(Icons.Outlined.RingVolume) + ConstraintId.PHONE_RINGING -> Vector(Icons.Outlined.RingVolume) - ConstraintId.RINGER_MODE_NORMAL -> ComposeIconInfo.Vector(Icons.Outlined.Notifications) + ConstraintId.RINGER_MODE_NORMAL -> Vector(Icons.Outlined.Notifications) - ConstraintId.RINGER_MODE_VIBRATE -> ComposeIconInfo.Vector(Icons.Outlined.Vibration) + ConstraintId.RINGER_MODE_VIBRATE -> Vector(Icons.Outlined.Vibration) - ConstraintId.RINGER_MODE_SILENT -> ComposeIconInfo.Vector(Icons.Outlined.NotificationsOff) + ConstraintId.RINGER_MODE_SILENT -> Vector(Icons.Outlined.NotificationsOff) - ConstraintId.CHARGING -> ComposeIconInfo.Vector(Icons.Outlined.BatteryChargingFull) + ConstraintId.CHARGING -> Vector(Icons.Outlined.BatteryChargingFull) - ConstraintId.HINGE_CLOSED -> ComposeIconInfo.Vector(Icons.Outlined.StayCurrentPortrait) + ConstraintId.HINGE_CLOSED -> Vector(KeyMapperIcons.Mobile) - ConstraintId.HINGE_OPEN -> ComposeIconInfo.Vector(Icons.Outlined.StayCurrentLandscape) + ConstraintId.HINGE_OPEN -> Vector(KeyMapperIcons.DualScreen) - ConstraintId.LOCK_SCREEN_SHOWING -> ComposeIconInfo.Vector( + ConstraintId.LOCK_SCREEN_SHOWING -> Vector( Icons.Outlined.ScreenLockPortrait, ) ConstraintId.NOTIFICATION_PANEL_SHOWING -> - ComposeIconInfo.Vector(Icons.Outlined.Notifications) + Vector(Icons.Outlined.Notifications) ConstraintId.NOTIFICATION_POSTED -> - ComposeIconInfo.Vector(Icons.Outlined.NotificationsActive) + Vector(Icons.Outlined.NotificationsActive) - ConstraintId.TIME -> ComposeIconInfo.Vector(Icons.Outlined.Timer) + ConstraintId.TIME -> Vector(Icons.Outlined.Timer) } fun getNotIcon(constraintId: ConstraintId): ComposeIconInfo = when (constraintId) { - ConstraintId.MEDIA_PLAYING -> ComposeIconInfo.Vector(Icons.Outlined.StopCircle) + ConstraintId.MEDIA_PLAYING -> Vector(Icons.Outlined.StopCircle) - ConstraintId.BT_DEVICE_CONNECTED -> ComposeIconInfo.Vector( + ConstraintId.BT_DEVICE_CONNECTED -> Vector( Icons.Outlined.BluetoothDisabled, ) - ConstraintId.SCREEN_ON -> ComposeIconInfo.Vector(Icons.Outlined.MobileOff) + ConstraintId.SCREEN_ON -> Vector(Icons.Outlined.MobileOff) - ConstraintId.FLASHLIGHT_ON -> ComposeIconInfo.Vector(Icons.Outlined.FlashlightOff) + ConstraintId.FLASHLIGHT_ON -> Vector(Icons.Outlined.FlashlightOff) - ConstraintId.WIFI_CONNECTED -> ComposeIconInfo.Vector( + ConstraintId.WIFI_CONNECTED -> Vector( Icons.Outlined.SignalWifiStatusbarNull, ) - ConstraintId.WIFI_ON -> ComposeIconInfo.Vector(Icons.Outlined.WifiOff) + ConstraintId.WIFI_ON -> Vector(Icons.Outlined.WifiOff) - ConstraintId.KEYBOARD_SHOWING -> ComposeIconInfo.Vector(Icons.Outlined.KeyboardHide) + ConstraintId.KEYBOARD_SHOWING -> Vector(Icons.Outlined.KeyboardHide) - ConstraintId.DEVICE_IS_LOCKED -> ComposeIconInfo.Vector(Icons.Outlined.LockOpen) + ConstraintId.DEVICE_IS_LOCKED -> Vector(Icons.Outlined.LockOpen) - ConstraintId.LOCK_SCREEN_SHOWING -> ComposeIconInfo.Vector(Icons.Outlined.LockOpen) + ConstraintId.LOCK_SCREEN_SHOWING -> Vector(Icons.Outlined.LockOpen) - ConstraintId.CHARGING -> ComposeIconInfo.Vector(Icons.Outlined.Battery2Bar) + ConstraintId.CHARGING -> Vector(Icons.Outlined.Battery2Bar) - ConstraintId.NOTIFICATION_PANEL_SHOWING -> ComposeIconInfo.Vector( + ConstraintId.NOTIFICATION_PANEL_SHOWING -> Vector( Icons.Outlined.NotificationsOff, ) - ConstraintId.IN_PHONE_CALL -> ComposeIconInfo.Vector(Icons.Outlined.CallEnd) + ConstraintId.IN_PHONE_CALL -> Vector(Icons.Outlined.CallEnd) - ConstraintId.NOT_IN_PHONE_CALL -> ComposeIconInfo.Vector(Icons.Outlined.Call) + ConstraintId.NOT_IN_PHONE_CALL -> Vector(Icons.Outlined.Call) - ConstraintId.PHONE_RINGING -> ComposeIconInfo.Vector(Icons.Outlined.CallEnd) + ConstraintId.PHONE_RINGING -> Vector(Icons.Outlined.CallEnd) ConstraintId.NOTIFICATION_POSTED -> - ComposeIconInfo.Vector(Icons.Outlined.NotificationsOff) + Vector(Icons.Outlined.NotificationsOff) else -> getIcon(constraintId) } diff --git a/base/src/main/java/io/github/sds100/keymapper/base/utils/ui/compose/icons/DualScreen.kt b/base/src/main/java/io/github/sds100/keymapper/base/utils/ui/compose/icons/DualScreen.kt new file mode 100644 index 0000000000..716c2ad75c --- /dev/null +++ b/base/src/main/java/io/github/sds100/keymapper/base/utils/ui/compose/icons/DualScreen.kt @@ -0,0 +1,67 @@ +package io.github.sds100.keymapper.base.utils.ui.compose.icons + +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.SolidColor +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.graphics.vector.path +import androidx.compose.ui.unit.dp + +val KeyMapperIcons.DualScreen: ImageVector + get() { + if (_DualScreen != null) { + return _DualScreen!! + } + _DualScreen = ImageVector.Builder( + name = "DualScreen", + defaultWidth = 24.dp, + defaultHeight = 24.dp, + viewportWidth = 960f, + viewportHeight = 960f, + ).apply { + path(fill = SolidColor(Color.Black)) { + moveToRelative(240f, 704f) + lineToRelative(240f, 96f) + verticalLineToRelative(-544f) + lineToRelative(-240f, -96f) + verticalLineToRelative(544f) + close() + moveTo(210f, 778f) + quadToRelative(-23f, -9f, -36.5f, -29f) + reflectiveQuadTo(160f, 704f) + verticalLineToRelative(-544f) + quadToRelative(0f, -33f, 23.5f, -56.5f) + reflectiveQuadTo(240f, 80f) + lineToRelative(268f, 101f) + quadToRelative(23f, 9f, 37.5f, 29.5f) + reflectiveQuadTo(560f, 256f) + verticalLineToRelative(544f) + quadToRelative(0f, 43f, -35f, 66.5f) + reflectiveQuadTo(450f, 874f) + lineToRelative(-240f, -96f) + close() + moveTo(480f, 760f) + verticalLineToRelative(-80f) + horizontalLineToRelative(240f) + verticalLineToRelative(-520f) + lineTo(240f, 160f) + verticalLineToRelative(-80f) + horizontalLineToRelative(480f) + quadToRelative(33f, 0f, 56.5f, 23.5f) + reflectiveQuadTo(800f, 160f) + verticalLineToRelative(520f) + quadToRelative(0f, 33f, -23.5f, 56.5f) + reflectiveQuadTo(720f, 760f) + lineTo(480f, 760f) + close() + moveTo(240f, 704f) + verticalLineToRelative(-544f) + verticalLineToRelative(544f) + close() + } + }.build() + + return _DualScreen!! + } + +@Suppress("ObjectPropertyName") +private var _DualScreen: ImageVector? = null diff --git a/base/src/main/java/io/github/sds100/keymapper/base/utils/ui/compose/icons/Mobile.kt b/base/src/main/java/io/github/sds100/keymapper/base/utils/ui/compose/icons/Mobile.kt new file mode 100644 index 0000000000..e9a4060aff --- /dev/null +++ b/base/src/main/java/io/github/sds100/keymapper/base/utils/ui/compose/icons/Mobile.kt @@ -0,0 +1,69 @@ +package io.github.sds100.keymapper.base.utils.ui.compose.icons + +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.SolidColor +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.graphics.vector.path +import androidx.compose.ui.unit.dp + +val KeyMapperIcons.Mobile: ImageVector + get() { + if (_Mobile != null) { + return _Mobile!! + } + _Mobile = ImageVector.Builder( + name = "Mobile", + defaultWidth = 24.dp, + defaultHeight = 24.dp, + viewportWidth = 960f, + viewportHeight = 960f, + ).apply { + path(fill = SolidColor(Color.Black)) { + moveTo(280f, 920f) + quadToRelative(-33f, 0f, -56.5f, -23.5f) + reflectiveQuadTo(200f, 840f) + verticalLineToRelative(-720f) + quadToRelative(0f, -33f, 23.5f, -56.5f) + reflectiveQuadTo(280f, 40f) + horizontalLineToRelative(400f) + quadToRelative(33f, 0f, 56.5f, 23.5f) + reflectiveQuadTo(760f, 120f) + verticalLineToRelative(124f) + quadToRelative(18f, 7f, 29f, 22f) + reflectiveQuadToRelative(11f, 34f) + verticalLineToRelative(80f) + quadToRelative(0f, 19f, -11f, 34f) + reflectiveQuadToRelative(-29f, 22f) + verticalLineToRelative(404f) + quadToRelative(0f, 33f, -23.5f, 56.5f) + reflectiveQuadTo(680f, 920f) + lineTo(280f, 920f) + close() + moveTo(280f, 840f) + horizontalLineToRelative(400f) + verticalLineToRelative(-720f) + lineTo(280f, 120f) + verticalLineToRelative(720f) + close() + moveTo(280f, 840f) + verticalLineToRelative(-720f) + verticalLineToRelative(720f) + close() + moveTo(508.5f, 228.5f) + quadTo(520f, 217f, 520f, 200f) + reflectiveQuadToRelative(-11.5f, -28.5f) + quadTo(497f, 160f, 480f, 160f) + reflectiveQuadToRelative(-28.5f, 11.5f) + quadTo(440f, 183f, 440f, 200f) + reflectiveQuadToRelative(11.5f, 28.5f) + quadTo(463f, 240f, 480f, 240f) + reflectiveQuadToRelative(28.5f, -11.5f) + close() + } + }.build() + + return _Mobile!! + } + +@Suppress("ObjectPropertyName") +private var _Mobile: ImageVector? = null diff --git a/base/src/main/res/values/strings.xml b/base/src/main/res/values/strings.xml index 15eefbb8fc..d728c9cd51 100644 --- a/base/src/main/res/values/strings.xml +++ b/base/src/main/res/values/strings.xml @@ -343,12 +343,12 @@ Charging Discharging - Hinge closed - Hinge open - Hinge is closed - Hinge is open - Hinge is not closed - Hinge is not open + Folded + Unfolded + Folded + Unfolded + Device is not folded + Device is not unfolded Notification panel is showing Notification panel is not showing @@ -904,6 +904,7 @@ Your device doesn\'t support device policy enforcement. Your device doesn\'t have a camera flash. Your device can not use telephony features. Is a SIM card inserted? + Your device doesn\'t have a hinge. Can\'t find the keyboard settings page! Key Mapper needs to be a device administrator! Key Mapper doesn\'t have permission to use that shortcut From 1f8c9d6f88a407410fbae291faf2bd4995a241cf Mon Sep 17 00:00:00 2001 From: sds100 Date: Mon, 28 Sep 2026 12:14:17 +0200 Subject: [PATCH 22/64] #2273 fix: constraints that the device can't support (e.g. no Bluetooth or hinge sensor) are now shown as unsupported when choosing a constraint --- CHANGELOG.md | 1 + .../constraints/ConstraintErrorSnapshot.kt | 39 ++++------ .../constraints/CreateConstraintUseCase.kt | 36 +++------- .../IsConstraintSupportedUseCase.kt | 57 +++++++++++++++ .../ConstraintErrorSnapshotTest.kt | 19 ++++- .../IsConstraintSupportedUseCaseTest.kt | 72 +++++++++++++++++++ 6 files changed, 169 insertions(+), 55 deletions(-) create mode 100644 base/src/main/java/io/github/sds100/keymapper/base/constraints/IsConstraintSupportedUseCase.kt create mode 100644 base/src/test/java/io/github/sds100/keymapper/base/constraints/IsConstraintSupportedUseCaseTest.kt diff --git a/CHANGELOG.md b/CHANGELOG.md index 9664f15001..bb846f12ef 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,7 @@ - #2252 redesigned the app bar when configuring a key map. Changes are saved automatically so there is no Done button, and the help button was removed. - Show side-by-side view when creating a key map on more devices +- #2273 Constraints that the device can't support (e.g. no Bluetooth or hinge sensor) are now shown as unsupported when choosing a constraint. ## Fixed diff --git a/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintErrorSnapshot.kt b/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintErrorSnapshot.kt index 1d1d8ee870..08f5425737 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintErrorSnapshot.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintErrorSnapshot.kt @@ -1,7 +1,5 @@ package io.github.sds100.keymapper.base.constraints -import android.content.pm.PackageManager -import android.os.Build import io.github.sds100.keymapper.common.utils.KMError import io.github.sds100.keymapper.common.utils.onSuccess import io.github.sds100.keymapper.system.SystemError @@ -16,10 +14,14 @@ import io.github.sds100.keymapper.system.permissions.SystemFeatureAdapter class LazyConstraintErrorSnapshot( private val packageManager: PackageManagerAdapter, private val permissionAdapter: PermissionAdapter, - private val systemFeatureAdapter: SystemFeatureAdapter, + systemFeatureAdapter: SystemFeatureAdapter, private val inputMethodAdapter: InputMethodAdapter, - private val cameraAdapter: CameraAdapter, -) : ConstraintErrorSnapshot { + cameraAdapter: CameraAdapter, +) : ConstraintErrorSnapshot, + IsConstraintSupportedUseCase by IsConstraintSupportedUseCaseImpl( + systemFeatureAdapter, + cameraAdapter, + ) { private val inputMethods by lazy { inputMethodAdapter.inputMethods.value } private val grantedPermissions: MutableMap = mutableMapOf() @@ -36,6 +38,12 @@ class LazyConstraintErrorSnapshot( } override fun getError(constraint: Constraint): KMError? { + val isSupportedError = isSupported(constraint.id) + + if (isSupportedError != null) { + return isSupportedError + } + when (constraint.data) { is ConstraintData.AppInForeground -> return getAppError( @@ -63,10 +71,6 @@ class LazyConstraintErrorSnapshot( } is ConstraintData.BtDeviceConnected -> { - if (!systemFeatureAdapter.hasSystemFeature(PackageManager.FEATURE_BLUETOOTH)) { - return KMError.SystemFeatureNotSupported(PackageManager.FEATURE_BLUETOOTH) - } - if (!isPermissionGranted(Permission.FIND_NEARBY_DEVICES)) { return SystemError.PermissionDenied(Permission.FIND_NEARBY_DEVICES) } @@ -124,23 +128,6 @@ class LazyConstraintErrorSnapshot( } } - is ConstraintData.HingeClosed, - is ConstraintData.HingeOpen, - -> { - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.R) { - return KMError.SdkVersionTooLow(Build.VERSION_CODES.R) - } - - if (!systemFeatureAdapter.hasSystemFeature( - PackageManager.FEATURE_SENSOR_HINGE_ANGLE, - ) - ) { - return KMError.SystemFeatureNotSupported( - PackageManager.FEATURE_SENSOR_HINGE_ANGLE, - ) - } - } - else -> Unit } diff --git a/base/src/main/java/io/github/sds100/keymapper/base/constraints/CreateConstraintUseCase.kt b/base/src/main/java/io/github/sds100/keymapper/base/constraints/CreateConstraintUseCase.kt index dfff01cde4..e299f63781 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/constraints/CreateConstraintUseCase.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/constraints/CreateConstraintUseCase.kt @@ -1,8 +1,5 @@ package io.github.sds100.keymapper.base.constraints -import android.content.pm.PackageManager -import android.os.Build -import io.github.sds100.keymapper.common.utils.KMError import io.github.sds100.keymapper.common.utils.SizeKM import io.github.sds100.keymapper.data.Keys import io.github.sds100.keymapper.data.repositories.PreferenceRepository @@ -12,6 +9,7 @@ import io.github.sds100.keymapper.system.display.DisplayAdapter import io.github.sds100.keymapper.system.inputmethod.ImeInfo import io.github.sds100.keymapper.system.inputmethod.InputMethodAdapter import io.github.sds100.keymapper.system.network.NetworkAdapter +import io.github.sds100.keymapper.system.permissions.SystemFeatureAdapter import javax.inject.Inject import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.first @@ -23,29 +21,12 @@ class CreateConstraintUseCaseImpl @Inject constructor( private val preferenceRepository: PreferenceRepository, private val cameraAdapter: CameraAdapter, private val displayAdapter: DisplayAdapter, -) : CreateConstraintUseCase { - - override fun isSupported(constraint: ConstraintId): KMError? { - when (constraint) { - ConstraintId.FLASHLIGHT_ON -> { - if (cameraAdapter.getFlashInfo(CameraLens.BACK) == null && - cameraAdapter.getFlashInfo(CameraLens.FRONT) == null - ) { - return KMError.SystemFeatureNotSupported(PackageManager.FEATURE_CAMERA_FLASH) - } - } - - ConstraintId.HINGE_CLOSED, ConstraintId.HINGE_OPEN -> { - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.R) { - return KMError.SdkVersionTooLow(Build.VERSION_CODES.R) - } - } - - else -> Unit - } - - return null - } + systemFeatureAdapter: SystemFeatureAdapter, +) : CreateConstraintUseCase, + IsConstraintSupportedUseCase by IsConstraintSupportedUseCaseImpl( + systemFeatureAdapter, + cameraAdapter, + ) { override fun getKnownWiFiSSIDs(): List = networkAdapter.getKnownWifiSSIDs() @@ -85,8 +66,7 @@ class CreateConstraintUseCaseImpl @Inject constructor( override fun getCurrentResolution(): SizeKM = displayAdapter.size } -interface CreateConstraintUseCase { - fun isSupported(constraint: ConstraintId): KMError? +interface CreateConstraintUseCase : IsConstraintSupportedUseCase { fun getKnownWiFiSSIDs(): List fun getEnabledInputMethods(): List diff --git a/base/src/main/java/io/github/sds100/keymapper/base/constraints/IsConstraintSupportedUseCase.kt b/base/src/main/java/io/github/sds100/keymapper/base/constraints/IsConstraintSupportedUseCase.kt new file mode 100644 index 0000000000..1b6b92f2a2 --- /dev/null +++ b/base/src/main/java/io/github/sds100/keymapper/base/constraints/IsConstraintSupportedUseCase.kt @@ -0,0 +1,57 @@ +package io.github.sds100.keymapper.base.constraints + +import android.content.pm.PackageManager +import android.os.Build +import io.github.sds100.keymapper.common.utils.KMError +import io.github.sds100.keymapper.system.camera.CameraAdapter +import io.github.sds100.keymapper.system.camera.CameraLens +import io.github.sds100.keymapper.system.permissions.SystemFeatureAdapter + +class IsConstraintSupportedUseCaseImpl( + private val systemFeatureAdapter: SystemFeatureAdapter, + private val cameraAdapter: CameraAdapter, +) : IsConstraintSupportedUseCase { + + override fun isSupported(id: ConstraintId): KMError? { + when (id) { + ConstraintId.BT_DEVICE_CONNECTED -> { + if (!systemFeatureAdapter.hasSystemFeature(PackageManager.FEATURE_BLUETOOTH)) { + return KMError.SystemFeatureNotSupported(PackageManager.FEATURE_BLUETOOTH) + } + } + + ConstraintId.FLASHLIGHT_ON -> { + if (cameraAdapter.getFlashInfo(CameraLens.BACK) == null && + cameraAdapter.getFlashInfo(CameraLens.FRONT) == null + ) { + return KMError.SystemFeatureNotSupported(PackageManager.FEATURE_CAMERA_FLASH) + } + } + + ConstraintId.HINGE_CLOSED, + ConstraintId.HINGE_OPEN, + -> { + if (Build.VERSION.SDK_INT != 0 && Build.VERSION.SDK_INT < Build.VERSION_CODES.R) { + return KMError.SdkVersionTooLow(Build.VERSION_CODES.R) + } + + if (!systemFeatureAdapter.hasSystemFeature( + PackageManager.FEATURE_SENSOR_HINGE_ANGLE, + ) + ) { + return KMError.SystemFeatureNotSupported( + PackageManager.FEATURE_SENSOR_HINGE_ANGLE, + ) + } + } + + else -> Unit + } + + return null + } +} + +interface IsConstraintSupportedUseCase { + fun isSupported(id: ConstraintId): KMError? +} diff --git a/base/src/test/java/io/github/sds100/keymapper/base/constraints/ConstraintErrorSnapshotTest.kt b/base/src/test/java/io/github/sds100/keymapper/base/constraints/ConstraintErrorSnapshotTest.kt index 6df3726b64..139dddd50e 100644 --- a/base/src/test/java/io/github/sds100/keymapper/base/constraints/ConstraintErrorSnapshotTest.kt +++ b/base/src/test/java/io/github/sds100/keymapper/base/constraints/ConstraintErrorSnapshotTest.kt @@ -1,5 +1,6 @@ package io.github.sds100.keymapper.base.constraints +import android.content.pm.PackageManager import io.github.sds100.keymapper.common.utils.KMError import io.github.sds100.keymapper.common.utils.Success import io.github.sds100.keymapper.system.apps.PackageManagerAdapter @@ -23,6 +24,7 @@ class ConstraintErrorSnapshotTest { private lateinit var mockPackageManagerAdapter: PackageManagerAdapter private lateinit var mockPermissionAdapter: PermissionAdapter private lateinit var mockInputMethodAdapter: InputMethodAdapter + private lateinit var mockSystemFeatureAdapter: SystemFeatureAdapter private lateinit var snapshot: ConstraintErrorSnapshot @Before @@ -30,7 +32,7 @@ class ConstraintErrorSnapshotTest { mockPackageManagerAdapter = mock() mockPermissionAdapter = mock() mockInputMethodAdapter = mock() - val mockSystemFeatureAdapter: SystemFeatureAdapter = mock() + mockSystemFeatureAdapter = mock() val mockCameraAdapter: CameraAdapter = mock() snapshot = LazyConstraintErrorSnapshot( @@ -114,4 +116,19 @@ class ConstraintErrorSnapshotTest { `is`(KMError.AppNotFound("com.uninstalled", "Example") as KMError?), ) } + + @Test + fun `unsupported constraint returns supported error before permission error`() { + whenever(mockSystemFeatureAdapter.hasSystemFeature(PackageManager.FEATURE_BLUETOOTH)) + .thenReturn(false) + + val constraint = Constraint( + data = ConstraintData.BtDeviceConnected("00:11:22:33:44:55", "Headphones"), + ) + + assertThat( + snapshot.getError(constraint), + `is`(KMError.SystemFeatureNotSupported(PackageManager.FEATURE_BLUETOOTH) as KMError?), + ) + } } diff --git a/base/src/test/java/io/github/sds100/keymapper/base/constraints/IsConstraintSupportedUseCaseTest.kt b/base/src/test/java/io/github/sds100/keymapper/base/constraints/IsConstraintSupportedUseCaseTest.kt new file mode 100644 index 0000000000..63227f835b --- /dev/null +++ b/base/src/test/java/io/github/sds100/keymapper/base/constraints/IsConstraintSupportedUseCaseTest.kt @@ -0,0 +1,72 @@ +package io.github.sds100.keymapper.base.constraints + +import android.content.pm.PackageManager +import io.github.sds100.keymapper.common.utils.KMError +import io.github.sds100.keymapper.system.camera.CameraAdapter +import io.github.sds100.keymapper.system.permissions.SystemFeatureAdapter +import org.hamcrest.MatcherAssert.assertThat +import org.hamcrest.Matchers.`is` +import org.hamcrest.Matchers.nullValue +import org.junit.Before +import org.junit.Test +import org.mockito.kotlin.mock +import org.mockito.kotlin.whenever + +class IsConstraintSupportedUseCaseTest { + + private lateinit var mockSystemFeatureAdapter: SystemFeatureAdapter + private lateinit var mockCameraAdapter: CameraAdapter + private lateinit var useCase: IsConstraintSupportedUseCase + + @Before + fun init() { + mockSystemFeatureAdapter = mock() + mockCameraAdapter = mock() + + useCase = IsConstraintSupportedUseCaseImpl(mockSystemFeatureAdapter, mockCameraAdapter) + } + + @Test + fun `bluetooth constraint is unsupported without bluetooth feature`() { + whenever(mockSystemFeatureAdapter.hasSystemFeature(PackageManager.FEATURE_BLUETOOTH)) + .thenReturn(false) + + assertThat( + useCase.isSupported(ConstraintId.BT_DEVICE_CONNECTED), + `is`(KMError.SystemFeatureNotSupported(PackageManager.FEATURE_BLUETOOTH)), + ) + } + + @Test + fun `bluetooth constraint is supported with bluetooth feature`() { + whenever(mockSystemFeatureAdapter.hasSystemFeature(PackageManager.FEATURE_BLUETOOTH)) + .thenReturn(true) + + assertThat(useCase.isSupported(ConstraintId.BT_DEVICE_CONNECTED), `is`(nullValue())) + } + + @Test + fun `hinge constraint is unsupported without hinge sensor`() { + whenever( + mockSystemFeatureAdapter.hasSystemFeature(PackageManager.FEATURE_SENSOR_HINGE_ANGLE), + ).thenReturn(false) + + assertThat( + useCase.isSupported(ConstraintId.HINGE_OPEN), + `is`(KMError.SystemFeatureNotSupported(PackageManager.FEATURE_SENSOR_HINGE_ANGLE)), + ) + } + + @Test + fun `flashlight constraint is unsupported without any flash`() { + assertThat( + useCase.isSupported(ConstraintId.FLASHLIGHT_ON), + `is`(KMError.SystemFeatureNotSupported(PackageManager.FEATURE_CAMERA_FLASH)), + ) + } + + @Test + fun `constraint with no hardware requirement is supported`() { + assertThat(useCase.isSupported(ConstraintId.SCREEN_ON), `is`(nullValue())) + } +} From c18aaa93cef9b824a35c943dff84dd652bf3c90f Mon Sep 17 00:00:00 2001 From: sds100 Date: Mon, 28 Sep 2026 12:17:41 +0200 Subject: [PATCH 23/64] show constraint icon on slightly smaller screens --- .../sds100/keymapper/base/constraints/ConstraintListItem.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintListItem.kt b/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintListItem.kt index 55d3629d56..f1935ad7a6 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintListItem.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintListItem.kt @@ -112,7 +112,7 @@ private fun ConstraintListItemContent( ) { Spacer(Modifier.width(8.dp)) - if (this@BoxWithConstraints.maxWidth > 350.dp) { + if (this@BoxWithConstraints.maxWidth > 300.dp) { ConstraintIcon(icon = model.icon) Spacer(Modifier.width(8.dp)) From 93fb1bc2138f0aaae3e130e72829829eaff838e4 Mon Sep 17 00:00:00 2001 From: sds100 Date: Mon, 28 Sep 2026 12:24:36 +0200 Subject: [PATCH 24/64] feat: show constraint icons when collapsed --- CHANGELOG.md | 1 + .../constraints/ConfigConstraintsViewModel.kt | 1 + .../base/constraints/ConstraintGroupItem.kt | 59 ++++++++++++++++++- .../constraints/ConstraintListItemModel.kt | 1 + .../base/constraints/ConstraintsScreen.kt | 3 + 5 files changed, 62 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bb846f12ef..a7acbd5ddf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ - #2252 undo and redo changes when configuring a key map. - #2155 the Expert Mode setup wizard now detects Samsung Auto Blocker and guides how to disable it, since it can silently block wireless debugging from staying enabled. - #2127 shut down and restart device actions. +- Show constraint icons when collapsed. ## Changed diff --git a/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConfigConstraintsViewModel.kt b/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConfigConstraintsViewModel.kt index 369b3c4499..59006ed34d 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConfigConstraintsViewModel.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConfigConstraintsViewModel.kt @@ -276,6 +276,7 @@ class ConfigConstraintsViewModel @Inject constructor( ConstraintGroupListItemModel( uid = group.uid, + icon = uiHelper.getIcon(group.constraints.first()), name = group.name, mode = group.mode, constraints = constraints, diff --git a/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintGroupItem.kt b/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintGroupItem.kt index 47eb2a9fe5..fec0a46584 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintGroupItem.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintGroupItem.kt @@ -39,6 +39,7 @@ import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.key import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color import androidx.compose.ui.res.pluralStringResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextAlign @@ -46,6 +47,7 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.PreviewLightDark import androidx.compose.ui.unit.dp +import com.google.accompanist.drawablepainter.rememberDrawablePainter import io.github.sds100.keymapper.base.R import io.github.sds100.keymapper.base.compose.KeyMapperTheme import io.github.sds100.keymapper.base.utils.ui.compose.ComposeIconInfo @@ -149,6 +151,12 @@ fun ConstraintGroupItem( onMoveUp = onMoveUp, onMoveDown = onMoveDown, headerContent = { expanded -> + if (model.constraints.size == 1 && !isExpanded) { + ConstraintIcon(modifier = Modifier.size(20.dp), icon = model.icon) + + Spacer(Modifier.width(8.dp)) + } + HeaderText( modifier = Modifier .weight(1f) @@ -156,8 +164,7 @@ fun ConstraintGroupItem( title = if (isExpanded) { model.name ?: countBasedTitle } else { - model.name - ?: model.description + model.name ?: model.description }, model = model, isExpanded = expanded, @@ -185,6 +192,27 @@ fun ConstraintGroupItem( ) } +@Composable +private fun ConstraintIcon(modifier: Modifier = Modifier, icon: ComposeIconInfo) { + when (icon) { + is ComposeIconInfo.Vector -> Icon( + modifier = modifier, + imageVector = icon.imageVector, + contentDescription = null, + ) + + is ComposeIconInfo.Drawable -> { + val painter = rememberDrawablePainter(icon.drawable) + Icon( + modifier = modifier, + painter = painter, + contentDescription = null, + tint = Color.Unspecified, + ) + } + } +} + @Composable private fun HeaderText( modifier: Modifier = Modifier, @@ -197,7 +225,8 @@ private fun HeaderText( Row(verticalAlignment = Alignment.CenterVertically) { Text( modifier = Modifier - .weight(1f, fill = false).animateContentSize(), + .weight(1f, fill = false) + .animateContentSize(), text = title, style = MaterialTheme.typography.bodyMedium, maxLines = 2, @@ -403,6 +432,7 @@ private fun AndExpandedPreview() { ConstraintGroupItem( model = ConstraintGroupListItemModel( uid = "group", + icon = previewConstraints[0].icon, mode = ConstraintMode.AND, constraints = previewConstraints, description = "Flashlight is not on AND Wi-Fi is on", @@ -420,6 +450,7 @@ private fun OrExpandedPreview() { ConstraintGroupItem( model = ConstraintGroupListItemModel( uid = "group", + icon = previewConstraints[0].icon, mode = ConstraintMode.OR, constraints = previewConstraints.map { it.copy(error = null, isNot = false) }, description = "Flashlight is on OR Wi-Fi is on", @@ -436,6 +467,7 @@ private fun SingleExpandedPreview() { ConstraintGroupItem( model = ConstraintGroupListItemModel( uid = "group", + icon = previewConstraints[1].icon, mode = ConstraintMode.AND, constraints = listOf(previewConstraints[1]), description = "Wi-Fi is on", @@ -453,6 +485,7 @@ private fun CollapsedPreview() { ConstraintGroupItem( model = ConstraintGroupListItemModel( uid = "group", + icon = previewConstraints[0].icon, mode = ConstraintMode.AND, constraints = previewConstraints, description = "Flashlight is not on AND Wi-Fi is on", @@ -463,6 +496,25 @@ private fun CollapsedPreview() { } } +@PreviewLightDark +@Preview(widthDp = 300) +@Composable +private fun CollapsedOneConstraintPreview() { + KeyMapperTheme { + ConstraintGroupItem( + model = ConstraintGroupListItemModel( + uid = "group", + icon = previewConstraints[0].icon, + mode = ConstraintMode.AND, + constraints = previewConstraints.take(1), + description = "Flashlight is not on", + ), + isExpanded = false, + isReorderingEnabled = true, + ) + } +} + @Preview @Composable private fun CollapsedErrorPreview() { @@ -470,6 +522,7 @@ private fun CollapsedErrorPreview() { ConstraintGroupItem( model = ConstraintGroupListItemModel( uid = "group", + icon = previewConstraints[0].icon, mode = ConstraintMode.AND, constraints = previewConstraints, description = "Flashlight is not on AND Wi-Fi is on", diff --git a/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintListItemModel.kt b/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintListItemModel.kt index 20fd2fed21..29229b7e03 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintListItemModel.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintListItemModel.kt @@ -14,6 +14,7 @@ data class ConstraintListItemModel( data class ConstraintGroupListItemModel( val uid: String, + val icon: ComposeIconInfo, val name: String? = null, val mode: ConstraintMode, val constraints: List, diff --git a/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintsScreen.kt b/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintsScreen.kt index 1a09375ddf..b0865f16dd 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintsScreen.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintsScreen.kt @@ -479,12 +479,14 @@ private fun LoadedPreview() { groups = listOf( ConstraintGroupListItemModel( uid = "group1", + icon = flashlightConstraint.icon, mode = ConstraintMode.AND, constraints = listOf(flashlightConstraint, appConstraint), description = "Flashlight is not on AND Key Mapper is in foreground", ), ConstraintGroupListItemModel( uid = "group2", + icon = appConstraint.icon, name = "Foreground or wifi", mode = ConstraintMode.OR, constraints = listOf(appConstraint, wifiConstraint), @@ -492,6 +494,7 @@ private fun LoadedPreview() { ), ConstraintGroupListItemModel( uid = "group3", + icon = wifiConstraint.icon, mode = ConstraintMode.AND, constraints = listOf(wifiConstraint), description = "Wi-Fi is on", From e7f3998891df497605748f27d7979b283fd546a3 Mon Sep 17 00:00:00 2001 From: sds100 Date: Mon, 28 Sep 2026 12:27:49 +0200 Subject: [PATCH 25/64] fix: use correct padding at top of key map options screen when no tip is showing --- .../sds100/keymapper/base/keymaps/KeyMapOptionsScreen.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/base/src/main/java/io/github/sds100/keymapper/base/keymaps/KeyMapOptionsScreen.kt b/base/src/main/java/io/github/sds100/keymapper/base/keymaps/KeyMapOptionsScreen.kt index b1bf1f5e7e..47c1382a66 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/keymaps/KeyMapOptionsScreen.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/keymaps/KeyMapOptionsScreen.kt @@ -137,9 +137,9 @@ private fun Loaded( }, onButtonClick = callback::onOpenExpertModeSettings, ) - } - Spacer(modifier = Modifier.height(8.dp)) + Spacer(modifier = Modifier.height(8.dp)) + } OptionsHeaderRow( icon = Icons.Outlined.Info, From 3393fffe598616a1f31ea95285064913a9720f01 Mon Sep 17 00:00:00 2001 From: sds100 Date: Mon, 28 Sep 2026 12:34:10 +0200 Subject: [PATCH 26/64] #1739 fix: check all display resolutions when picking a screenshot and use the activity display resolution as a fallback. Note: On (some?) foldable devices, such as the Pixel 10 Pro Fold emulator, the display manager only returns the display that is currently in use. It does not return both front and back displays. So, this will not contain the resolution of all displays. --- CHANGELOG.md | 1 + .../sds100/keymapper/base/BaseMainActivity.kt | 16 +++++++++++ .../base/actions/ScreenshotPickerDelegate.kt | 13 +++++++-- .../sds100/keymapper/common/utils/SizeKM.kt | 7 +++-- .../system/display/AndroidDisplayAdapter.kt | 28 ++++++++++++++----- .../system/display/DisplayAdapter.kt | 14 ++++++++-- 6 files changed, 65 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a7acbd5ddf..3976551811 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,7 @@ - #2268 use trampoline when launching device assistant and settings apps when the device is locked so the lock screen dismisses. - #2271 brightness actions match brightness slider on Android 16.1+. +- #1739 support multiple displays better. ## [4.5.0](https://github.com/sds100/KeyMapper/releases/tag/v4.5.0) diff --git a/base/src/main/java/io/github/sds100/keymapper/base/BaseMainActivity.kt b/base/src/main/java/io/github/sds100/keymapper/base/BaseMainActivity.kt index d9d0b3b9cb..40fca8f317 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/BaseMainActivity.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/BaseMainActivity.kt @@ -38,6 +38,7 @@ import io.github.sds100.keymapper.base.utils.ui.ResourceProviderImpl import io.github.sds100.keymapper.common.BuildConfigProvider import io.github.sds100.keymapper.sysbridge.service.SystemBridgeSetupControllerImpl import io.github.sds100.keymapper.system.devices.AndroidDevicesAdapter +import io.github.sds100.keymapper.system.display.AndroidDisplayAdapter import io.github.sds100.keymapper.system.files.FileUtils import io.github.sds100.keymapper.system.inputevents.KMGamePadEvent import io.github.sds100.keymapper.system.network.AndroidNetworkAdapter @@ -106,6 +107,9 @@ abstract class BaseMainActivity : AppCompatActivity() { @Inject lateinit var configKeyMapState: ConfigKeyMapStateImpl + @Inject + lateinit var displayAdapter: AndroidDisplayAdapter + private lateinit var requestPermissionDelegate: RequestPermissionDelegate private val currentNightMode: Int @@ -224,6 +228,18 @@ abstract class BaseMainActivity : AppCompatActivity() { super.onDestroy() } + override fun onAttachedToWindow() { + super.onAttachedToWindow() + + displayAdapter.activityDisplayId = display?.displayId + } + + override fun onDetachedFromWindow() { + super.onDetachedFromWindow() + + displayAdapter.activityDisplayId = null + } + /** * Process motion events from the activity so that DPAD buttons can be recorded * even when the Key Mapper IME is not being used. DO NOT record the key events because diff --git a/base/src/main/java/io/github/sds100/keymapper/base/actions/ScreenshotPickerDelegate.kt b/base/src/main/java/io/github/sds100/keymapper/base/actions/ScreenshotPickerDelegate.kt index f40ef22350..f9dab8598d 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/actions/ScreenshotPickerDelegate.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/actions/ScreenshotPickerDelegate.kt @@ -37,7 +37,10 @@ class ScreenshotPickerDelegate( fun selectedScreenshot(newBitmap: Bitmap) { val newBitmapSize = SizeKM(newBitmap.width, newBitmap.height) - if (!displayAdapter.size.hasSameAspectRatio(newBitmapSize)) { + val matchingAspectRatio = + displayAdapter.supportedResolutions.value.any { it.hasSameAspectRatio(newBitmapSize) } + + if (!matchingAspectRatio) { coroutineScope.launch { val snackBar = DialogModel.SnackBar( message = getString(R.string.toast_incorrect_screenshot_resolution), @@ -63,8 +66,12 @@ class ScreenshotPickerDelegate( * action on a device that has since changed resolution does not stamp the wrong one on * unchanged coordinates. */ - fun screenResolution(): SizeKM = - screenshotResolution.value ?: loadedResolution.value ?: displayAdapter.size + fun screenResolution(): SizeKM { + val activeDisplaySize = + displayAdapter.getDisplayResolutions(displayAdapter.activityDisplayId ?: 0).first() + + return screenshotResolution.value ?: loadedResolution.value ?: activeDisplaySize + } fun recycle() { _bitmap.value?.recycle() diff --git a/common/src/main/java/io/github/sds100/keymapper/common/utils/SizeKM.kt b/common/src/main/java/io/github/sds100/keymapper/common/utils/SizeKM.kt index e4f3fb3a75..4903344e83 100644 --- a/common/src/main/java/io/github/sds100/keymapper/common/utils/SizeKM.kt +++ b/common/src/main/java/io/github/sds100/keymapper/common/utils/SizeKM.kt @@ -18,10 +18,13 @@ data class SizeKM(val width: Int, val height: Int) { return false } - val ratio = width.toFloat() / height - val otherRatio = other.width.toFloat() / other.height + val ratio = aspectRatio + val otherRatio = other.aspectRatio val otherRotatedRatio = other.height.toFloat() / other.width return abs(ratio - otherRatio) <= epsilon || abs(ratio - otherRotatedRatio) <= epsilon } } + +val SizeKM.aspectRatio: Float + get() = width.toFloat() / height diff --git a/system/src/main/java/io/github/sds100/keymapper/system/display/AndroidDisplayAdapter.kt b/system/src/main/java/io/github/sds100/keymapper/system/display/AndroidDisplayAdapter.kt index 41c1b99ed6..0732c0cd8c 100644 --- a/system/src/main/java/io/github/sds100/keymapper/system/display/AndroidDisplayAdapter.kt +++ b/system/src/main/java/io/github/sds100/keymapper/system/display/AndroidDisplayAdapter.kt @@ -95,14 +95,22 @@ class AndroidDisplayAdapter @Inject constructor( override val cachedPhysicalOrientation: PhysicalOrientation get() = _physicalOrientation.value + override var activityDisplayId: Int? = null + override val size: SizeKM get() = ctx.getRealDisplaySize() override val isAmbientDisplayEnabled: MutableStateFlow = MutableStateFlow(isAodEnabled()) + /** + * On (some?) foldable devices, such as the Pixel 10 Pro Fold emulator, + * the display manager only returns the display + * that is currently in use. It does not return both front and back displays. + * So, this will not contain the resolution of all displays. + */ override val supportedResolutions: MutableStateFlow> = - MutableStateFlow(getSupportedResolutions()) + MutableStateFlow(getSupportedResolutions(*displayManager.displays)) private val orientationEventListener = object : OrientationEventListener(ctx) { override fun onOrientationChanged(orientationDegrees: Int) { @@ -295,11 +303,17 @@ class AndroidDisplayAdapter @Inject constructor( private fun onDisplaysChanged() { _orientation.update { getDisplayOrientation() } - supportedResolutions.update { getSupportedResolutions() } + + supportedResolutions.update { getSupportedResolutions(*displayManager.displays) } } private fun getFirstOnDisplay(): Int { - return displayManager.displays.first { it.state == Display.STATE_ON }.displayId + return displayManager.displays?.first { it.state == Display.STATE_ON }?.displayId + ?: Display.DEFAULT_DISPLAY + } + + override fun getDisplayResolutions(id: Int): Set { + return getSupportedResolutions(displayManager.getDisplay(id)) } /** @@ -338,10 +352,10 @@ class AndroidDisplayAdapter @Inject constructor( } } - private fun getSupportedResolutions(): Set { - val display = displayManager.displays.firstOrNull() ?: return emptySet() - - return display.supportedModes + private fun getSupportedResolutions(vararg display: Display?): Set { + return display + .filterNotNull() + .flatMap { it.supportedModes.toList() } .map { mode -> SizeKM(mode.physicalWidth, mode.physicalHeight) } .toSet() } diff --git a/system/src/main/java/io/github/sds100/keymapper/system/display/DisplayAdapter.kt b/system/src/main/java/io/github/sds100/keymapper/system/display/DisplayAdapter.kt index 743a936648..84db6477e1 100644 --- a/system/src/main/java/io/github/sds100/keymapper/system/display/DisplayAdapter.kt +++ b/system/src/main/java/io/github/sds100/keymapper/system/display/DisplayAdapter.kt @@ -13,15 +13,25 @@ interface DisplayAdapter { val cachedOrientation: Orientation val physicalOrientation: Flow val cachedPhysicalOrientation: PhysicalOrientation - val size: SizeKM val isAmbientDisplayEnabled: Flow /** - * The distinct resolutions supported by the default display, taken from the + * The display id the Key Mapper MainActivity is attached to. It is set to null when it is + * detached. + */ + val activityDisplayId: Int? + + // TODO remove + val size: SizeKM + + /** + * The distinct resolutions supported by all displays, taken from the * display's supported modes. The dimensions are in the display's natural orientation. */ val supportedResolutions: StateFlow> + fun getDisplayResolutions(id: Int): Set + fun isAutoRotateEnabled(): Boolean fun enableAutoRotate(): KMResult<*> fun disableAutoRotate(): KMResult<*> From 2f3386835dc0e2f9923e1427fe6fe34a65ed1386 Mon Sep 17 00:00:00 2001 From: sds100 Date: Mon, 28 Sep 2026 12:42:06 +0200 Subject: [PATCH 27/64] fix: use correct padding at top of key map options screen when no tip is showing --- .../github/sds100/keymapper/base/keymaps/KeyMapOptionsScreen.kt | 2 -- 1 file changed, 2 deletions(-) diff --git a/base/src/main/java/io/github/sds100/keymapper/base/keymaps/KeyMapOptionsScreen.kt b/base/src/main/java/io/github/sds100/keymapper/base/keymaps/KeyMapOptionsScreen.kt index 47c1382a66..1773fd83e6 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/keymaps/KeyMapOptionsScreen.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/keymaps/KeyMapOptionsScreen.kt @@ -122,8 +122,6 @@ private fun Loaded( .padding(horizontal = 16.dp), verticalArrangement = Arrangement.spacedBy(8.dp), ) { - Spacer(modifier = Modifier.height(8.dp)) - if (state.showScreenOffTip) { TipCard( modifier = Modifier.fillMaxWidth(), From 1bae8a330f0d27e6d455b8888b442f6ef33ff2ba Mon Sep 17 00:00:00 2001 From: sds100 Date: Mon, 28 Sep 2026 12:48:28 +0200 Subject: [PATCH 28/64] #1739 fix: use active display when performing gestures --- .../base/actions/talkback/TalkbackGesturePerformer.kt | 6 ++++++ .../system/accessibility/AccessibilityServiceUtils.kt | 10 ++++++++++ .../system/accessibility/BaseAccessibilityService.kt | 10 ++++++++++ 3 files changed, 26 insertions(+) diff --git a/base/src/main/java/io/github/sds100/keymapper/base/actions/talkback/TalkbackGesturePerformer.kt b/base/src/main/java/io/github/sds100/keymapper/base/actions/talkback/TalkbackGesturePerformer.kt index 04502671f7..4aeefbe63c 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/actions/talkback/TalkbackGesturePerformer.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/actions/talkback/TalkbackGesturePerformer.kt @@ -2,8 +2,10 @@ package io.github.sds100.keymapper.base.actions.talkback import android.accessibilityservice.AccessibilityService import android.accessibilityservice.GestureDescription +import android.os.Build import android.os.Handler import io.github.sds100.keymapper.base.system.accessibility.AccessibilityGestureUtils +import io.github.sds100.keymapper.base.system.accessibility.getActiveDisplayId import io.github.sds100.keymapper.common.utils.KMError import io.github.sds100.keymapper.common.utils.KMResult import io.github.sds100.keymapper.common.utils.Success @@ -24,6 +26,10 @@ object TalkbackGesturePerformer { val gestureBuilder = GestureDescription.Builder() + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { + gestureBuilder.setDisplayId(service.getActiveDisplayId()) + } + when (gesture) { TalkBackGestureType.ONE_FINGER_DOUBLE_TAP -> AccessibilityGestureUtils.addMultiFingerTaps( diff --git a/base/src/main/java/io/github/sds100/keymapper/base/system/accessibility/AccessibilityServiceUtils.kt b/base/src/main/java/io/github/sds100/keymapper/base/system/accessibility/AccessibilityServiceUtils.kt index 027cba0120..8cedfa6cf8 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/system/accessibility/AccessibilityServiceUtils.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/system/accessibility/AccessibilityServiceUtils.kt @@ -1,6 +1,8 @@ package io.github.sds100.keymapper.base.system.accessibility +import android.accessibilityservice.AccessibilityService import android.os.Build +import android.view.Display import android.view.accessibility.AccessibilityNodeInfo /** @@ -10,6 +12,14 @@ import android.view.accessibility.AccessibilityNodeInfo */ private const val MAX_ACTION_TARGET_DEPTH = 10 +fun AccessibilityService.getActiveDisplayId(): Int { + return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { + rootInActiveWindow?.window?.displayId ?: Display.DEFAULT_DISPLAY + } else { + Display.DEFAULT_DISPLAY + } +} + /** * @return The node to find. Returns null if the node doesn't match the predicate */ diff --git a/base/src/main/java/io/github/sds100/keymapper/base/system/accessibility/BaseAccessibilityService.kt b/base/src/main/java/io/github/sds100/keymapper/base/system/accessibility/BaseAccessibilityService.kt index 88ce39f6b5..77a359f1be 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/system/accessibility/BaseAccessibilityService.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/system/accessibility/BaseAccessibilityService.kt @@ -395,6 +395,7 @@ abstract class BaseAccessibilityService : strokeDescription.let { val gestureDescription = GestureDescription.Builder().apply { + setDisplayId(getActiveDisplayId()) addStroke(it) }.build() @@ -432,6 +433,10 @@ abstract class BaseAccessibilityService : val gestureBuilder = GestureDescription.Builder() + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { + gestureBuilder.setDisplayId(getActiveDisplayId()) + } + if (fingerCount == 1) { val p = Path() p.moveTo(pStart.x.toFloat(), pStart.y.toFloat()) @@ -523,6 +528,11 @@ abstract class BaseAccessibilityService : } val gestureBuilder = GestureDescription.Builder() + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { + gestureBuilder.setDisplayId(getActiveDisplayId()) + } + val distributedPoints: List = MathUtils.distributePointsOnCircle(Point(x, y), distance.toFloat() / 2, fingerCount) From 61f0a7438aa4e490333a49cae12a90ecbe5ea2c4 Mon Sep 17 00:00:00 2001 From: sds100 Date: Mon, 28 Sep 2026 13:09:49 +0200 Subject: [PATCH 29/64] only set display id of tap screen gesture if >= Android 11 --- .../base/system/accessibility/BaseAccessibilityService.kt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/base/src/main/java/io/github/sds100/keymapper/base/system/accessibility/BaseAccessibilityService.kt b/base/src/main/java/io/github/sds100/keymapper/base/system/accessibility/BaseAccessibilityService.kt index 77a359f1be..0f843f4e27 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/system/accessibility/BaseAccessibilityService.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/system/accessibility/BaseAccessibilityService.kt @@ -395,7 +395,9 @@ abstract class BaseAccessibilityService : strokeDescription.let { val gestureDescription = GestureDescription.Builder().apply { - setDisplayId(getActiveDisplayId()) + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { + setDisplayId(getActiveDisplayId()) + } addStroke(it) }.build() @@ -487,7 +489,7 @@ abstract class BaseAccessibilityService : angle, ) - // create a path for each finger, move the the coordinates on the perpendicular line and draw it to the end coordinates of the perpendicular line of the end swipe point + // create a path for each finger, move the coordinates on the perpendicular line and draw it to the end coordinates of the perpendicular line of the end swipe point val p = Path() p.moveTo( startFingerCoordinateWithOffset.x.toFloat(), From 753ac4d42d0d7f95bb55f75147b9e2434b8cab69 Mon Sep 17 00:00:00 2001 From: sds100 Date: Mon, 28 Sep 2026 13:30:36 +0200 Subject: [PATCH 30/64] #1739 use active display for brightness actions --- .../base/actions/PerformActionsUseCase.kt | 10 +++++++-- .../talkback/TalkbackGesturePerformer.kt | 4 ++-- .../AccessibilityServiceUtils.kt | 2 +- .../accessibility/BaseAccessibilityService.kt | 4 ++++ .../accessibility/IAccessibilityService.kt | 2 ++ .../system/display/AndroidDisplayAdapter.kt | 21 +++++++------------ .../system/display/DisplayAdapter.kt | 4 ++-- 7 files changed, 27 insertions(+), 20 deletions(-) diff --git a/base/src/main/java/io/github/sds100/keymapper/base/actions/PerformActionsUseCase.kt b/base/src/main/java/io/github/sds100/keymapper/base/actions/PerformActionsUseCase.kt index 06babcfe28..fdf8fd94e0 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/actions/PerformActionsUseCase.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/actions/PerformActionsUseCase.kt @@ -545,12 +545,18 @@ class PerformActionsUseCaseImpl @AssistedInject constructor( is ActionData.Brightness.Increase -> { val stepPercent = action.stepPercent ?: DEFAULT_BRIGHTNESS_STEP_PERCENT - result = displayAdapter.increaseBrightness(stepPercent / 100f) + result = displayAdapter.increaseBrightness( + stepPercent / 100f, + service.getActiveDisplayId(), + ) } is ActionData.Brightness.Decrease -> { val stepPercent = action.stepPercent ?: DEFAULT_BRIGHTNESS_STEP_PERCENT - result = displayAdapter.decreaseBrightness(stepPercent / 100f) + result = displayAdapter.decreaseBrightness( + stepPercent / 100f, + service.getActiveDisplayId(), + ) } is ActionData.Rotation.ToggleAuto -> { diff --git a/base/src/main/java/io/github/sds100/keymapper/base/actions/talkback/TalkbackGesturePerformer.kt b/base/src/main/java/io/github/sds100/keymapper/base/actions/talkback/TalkbackGesturePerformer.kt index 4aeefbe63c..ac0a65d15f 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/actions/talkback/TalkbackGesturePerformer.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/actions/talkback/TalkbackGesturePerformer.kt @@ -5,7 +5,7 @@ import android.accessibilityservice.GestureDescription import android.os.Build import android.os.Handler import io.github.sds100.keymapper.base.system.accessibility.AccessibilityGestureUtils -import io.github.sds100.keymapper.base.system.accessibility.getActiveDisplayId +import io.github.sds100.keymapper.base.system.accessibility.getActiveDisplayIdExt import io.github.sds100.keymapper.common.utils.KMError import io.github.sds100.keymapper.common.utils.KMResult import io.github.sds100.keymapper.common.utils.Success @@ -27,7 +27,7 @@ object TalkbackGesturePerformer { val gestureBuilder = GestureDescription.Builder() if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { - gestureBuilder.setDisplayId(service.getActiveDisplayId()) + gestureBuilder.setDisplayId(service.getActiveDisplayIdExt()) } when (gesture) { diff --git a/base/src/main/java/io/github/sds100/keymapper/base/system/accessibility/AccessibilityServiceUtils.kt b/base/src/main/java/io/github/sds100/keymapper/base/system/accessibility/AccessibilityServiceUtils.kt index 8cedfa6cf8..51240d1d39 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/system/accessibility/AccessibilityServiceUtils.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/system/accessibility/AccessibilityServiceUtils.kt @@ -12,7 +12,7 @@ import android.view.accessibility.AccessibilityNodeInfo */ private const val MAX_ACTION_TARGET_DEPTH = 10 -fun AccessibilityService.getActiveDisplayId(): Int { +fun AccessibilityService.getActiveDisplayIdExt(): Int { return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { rootInActiveWindow?.window?.displayId ?: Display.DEFAULT_DISPLAY } else { diff --git a/base/src/main/java/io/github/sds100/keymapper/base/system/accessibility/BaseAccessibilityService.kt b/base/src/main/java/io/github/sds100/keymapper/base/system/accessibility/BaseAccessibilityService.kt index 0f843f4e27..f9a436e41f 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/system/accessibility/BaseAccessibilityService.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/system/accessibility/BaseAccessibilityService.kt @@ -647,4 +647,8 @@ abstract class BaseAccessibilityService : override fun performTalkBackGesture(gesture: TalkBackGestureType): KMResult<*> { return TalkbackGesturePerformer.performTalkBackGesture(this, gesture, gestureHandler) } + + override fun getActiveDisplayId(): Int { + return getActiveDisplayIdExt() + } } diff --git a/base/src/main/java/io/github/sds100/keymapper/base/system/accessibility/IAccessibilityService.kt b/base/src/main/java/io/github/sds100/keymapper/base/system/accessibility/IAccessibilityService.kt index eae36db432..02106d7adf 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/system/accessibility/IAccessibilityService.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/system/accessibility/IAccessibilityService.kt @@ -50,6 +50,8 @@ interface IAccessibilityService : SwitchImeInterface { val activeWindowPackage: Flow val activeWindowPackageNames: List + fun getActiveDisplayId(): Int + fun hideKeyboard() fun showKeyboard() diff --git a/system/src/main/java/io/github/sds100/keymapper/system/display/AndroidDisplayAdapter.kt b/system/src/main/java/io/github/sds100/keymapper/system/display/AndroidDisplayAdapter.kt index 0732c0cd8c..c2572d0e66 100644 --- a/system/src/main/java/io/github/sds100/keymapper/system/display/AndroidDisplayAdapter.kt +++ b/system/src/main/java/io/github/sds100/keymapper/system/display/AndroidDisplayAdapter.kt @@ -208,28 +208,28 @@ class AndroidDisplayAdapter @Inject constructor( Settings.System.SCREEN_BRIGHTNESS_MODE, ) == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC - override fun increaseBrightness(stepPercent: Float): KMResult<*> { + override fun increaseBrightness(stepPercent: Float, display: Int): KMResult<*> { // auto-brightness must be disabled disableAutoBrightness() - return setBrightness(stepPercent) + return setBrightness(stepPercent, display) } - override fun decreaseBrightness(stepPercent: Float): KMResult<*> { + override fun decreaseBrightness(stepPercent: Float, display: Int): KMResult<*> { // auto-brightness must be disabled disableAutoBrightness() - return setBrightness(-stepPercent) + return setBrightness(-stepPercent, display) } - private fun setBrightness(delta: Float): KMResult<*> { - val currentBrightness = getDisplayBrightness() + private fun setBrightness(delta: Float, display: Int): KMResult<*> { + val currentBrightness = getDisplayBrightness(display) val newBrightness: Float = (currentBrightness + delta).coerceIn(0f, 1f) if (Build.VERSION.SDK_INT_FULL >= Build.VERSION_CODES_FULL.BAKLAVA_1) { displayManager.setBrightness( - getFirstOnDisplay(), + display, newBrightness * 100, DisplayManager.BRIGHTNESS_UNIT_PERCENTAGE, ) @@ -273,7 +273,7 @@ class AndroidDisplayAdapter @Inject constructor( return _orientation.updateAndGet { getDisplayOrientation() } } - private fun getDisplayBrightness(displayId: Int = getFirstOnDisplay()): Float { + private fun getDisplayBrightness(displayId: Int): Float { return if (Build.VERSION.SDK_INT_FULL >= Build.VERSION_CODES_FULL.BAKLAVA_1) { displayManager.getBrightness( displayId, @@ -307,11 +307,6 @@ class AndroidDisplayAdapter @Inject constructor( supportedResolutions.update { getSupportedResolutions(*displayManager.displays) } } - private fun getFirstOnDisplay(): Int { - return displayManager.displays?.first { it.state == Display.STATE_ON }?.displayId - ?: Display.DEFAULT_DISPLAY - } - override fun getDisplayResolutions(id: Int): Set { return getSupportedResolutions(displayManager.getDisplay(id)) } diff --git a/system/src/main/java/io/github/sds100/keymapper/system/display/DisplayAdapter.kt b/system/src/main/java/io/github/sds100/keymapper/system/display/DisplayAdapter.kt index 84db6477e1..a21a320480 100644 --- a/system/src/main/java/io/github/sds100/keymapper/system/display/DisplayAdapter.kt +++ b/system/src/main/java/io/github/sds100/keymapper/system/display/DisplayAdapter.kt @@ -43,8 +43,8 @@ interface DisplayAdapter { fun fetchOrientation(): Orientation fun isAutoBrightnessEnabled(): Boolean - fun increaseBrightness(stepPercent: Float): KMResult<*> - fun decreaseBrightness(stepPercent: Float): KMResult<*> + fun increaseBrightness(stepPercent: Float, display: Int): KMResult<*> + fun decreaseBrightness(stepPercent: Float, display: Int): KMResult<*> fun enableAutoBrightness(): KMResult<*> fun disableAutoBrightness(): KMResult<*> } From 1ea6705dce5fc6e84fbcfbf4f94a2f2eae31bd43 Mon Sep 17 00:00:00 2001 From: sds100 Date: Mon, 28 Sep 2026 18:22:16 +0200 Subject: [PATCH 31/64] #1739 use active display for actions, floating button placement, orientation, and display resolution constraints --- .../sds100/keymapper/base/BaseMainActivity.kt | 14 ++-- .../base/actions/PerformActionsUseCase.kt | 18 +++-- .../base/actions/ScreenshotPickerDelegate.kt | 11 ++- .../base/constraints/ConstraintSnapshot.kt | 16 +++- .../constraints/CreateConstraintUseCase.kt | 10 ++- .../constraints/DetectConstraintsUseCase.kt | 4 +- .../base/actions/PerformActionsUseCaseTest.kt | 23 ++++-- .../system/display/AndroidDisplayAdapter.kt | 73 +++++++++---------- .../system/display/DisplayAdapter.kt | 23 +----- .../keymapper/system/display/DisplayInfo.kt | 11 +++ 10 files changed, 114 insertions(+), 89 deletions(-) create mode 100644 system/src/main/java/io/github/sds100/keymapper/system/display/DisplayInfo.kt diff --git a/base/src/main/java/io/github/sds100/keymapper/base/BaseMainActivity.kt b/base/src/main/java/io/github/sds100/keymapper/base/BaseMainActivity.kt index 40fca8f317..5da47909de 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/BaseMainActivity.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/BaseMainActivity.kt @@ -7,7 +7,9 @@ import android.content.Intent import android.content.IntentFilter import android.content.res.Configuration import android.net.Uri +import android.os.Build import android.os.Bundle +import android.view.Display import android.view.MotionEvent import android.widget.Toast import androidx.activity.SystemBarStyle @@ -231,13 +233,11 @@ abstract class BaseMainActivity : AppCompatActivity() { override fun onAttachedToWindow() { super.onAttachedToWindow() - displayAdapter.activityDisplayId = display?.displayId - } - - override fun onDetachedFromWindow() { - super.onDetachedFromWindow() - - displayAdapter.activityDisplayId = null + displayAdapter.activityDisplayId = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { + display?.displayId + } else { + Display.DEFAULT_DISPLAY + } } /** diff --git a/base/src/main/java/io/github/sds100/keymapper/base/actions/PerformActionsUseCase.kt b/base/src/main/java/io/github/sds100/keymapper/base/actions/PerformActionsUseCase.kt index fdf8fd94e0..5f2de2ccd5 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/actions/PerformActionsUseCase.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/actions/PerformActionsUseCase.kt @@ -49,6 +49,7 @@ import io.github.sds100.keymapper.system.bluetooth.BluetoothAdapter import io.github.sds100.keymapper.system.camera.CameraAdapter import io.github.sds100.keymapper.system.devices.DevicesAdapter import io.github.sds100.keymapper.system.display.DisplayAdapter +import io.github.sds100.keymapper.system.display.DisplayInfo import io.github.sds100.keymapper.system.files.FileAdapter import io.github.sds100.keymapper.system.files.FileUtils import io.github.sds100.keymapper.system.inputevents.Scancode @@ -255,7 +256,7 @@ class PerformActionsUseCaseImpl @AssistedInject constructor( is ActionData.Rotation.CycleRotations -> { result = displayAdapter.disableAutoRotate().then { - val currentOrientation = displayAdapter.cachedOrientation + val currentOrientation = getActiveDisplay()!!.rotation val index = action.orientations.indexOf(currentOrientation) @@ -376,7 +377,7 @@ class PerformActionsUseCaseImpl @AssistedInject constructor( } is ActionData.TapScreen -> { - val displaySize = displayAdapter.size + val displaySize = getActiveDisplay()!!.activeSize val point = scaleCoordinate(action.x, action.y, action.screenResolution, displaySize) @@ -384,7 +385,7 @@ class PerformActionsUseCaseImpl @AssistedInject constructor( } is ActionData.SwipeScreen -> { - val displaySize = displayAdapter.size + val displaySize = getActiveDisplay()!!.activeSize val start = scaleCoordinate( action.xStart, action.yStart, @@ -406,7 +407,7 @@ class PerformActionsUseCaseImpl @AssistedInject constructor( } is ActionData.PinchScreen -> { - val displaySize = displayAdapter.size + val displaySize = getActiveDisplay()!!.activeSize val point = scaleCoordinate(action.x, action.y, action.screenResolution, displaySize) val distance = @@ -586,8 +587,10 @@ class PerformActionsUseCaseImpl @AssistedInject constructor( } is ActionData.Rotation.SwitchOrientation -> { - if (displayAdapter.cachedOrientation == Orientation.ORIENTATION_180 || - displayAdapter.cachedOrientation == Orientation.ORIENTATION_0 + val currentOrientation = getActiveDisplay()!!.rotation + + if (currentOrientation == Orientation.ORIENTATION_180 || + currentOrientation == Orientation.ORIENTATION_0 ) { result = displayAdapter.setOrientation(Orientation.ORIENTATION_90) } else { @@ -1287,6 +1290,9 @@ class PerformActionsUseCaseImpl @AssistedInject constructor( private fun compareIfNonNull(a: T?, b: T?): Boolean { return a != null && b != null && a == b } + + private fun getActiveDisplay(): DisplayInfo? = + displayAdapter.getDisplay(service.getActiveDisplayId()) } /** diff --git a/base/src/main/java/io/github/sds100/keymapper/base/actions/ScreenshotPickerDelegate.kt b/base/src/main/java/io/github/sds100/keymapper/base/actions/ScreenshotPickerDelegate.kt index f9dab8598d..960c7366d7 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/actions/ScreenshotPickerDelegate.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/actions/ScreenshotPickerDelegate.kt @@ -1,6 +1,7 @@ package io.github.sds100.keymapper.base.actions import android.graphics.Bitmap +import android.view.Display import io.github.sds100.keymapper.base.R import io.github.sds100.keymapper.base.utils.ui.DialogModel import io.github.sds100.keymapper.base.utils.ui.DialogProvider @@ -38,7 +39,9 @@ class ScreenshotPickerDelegate( val newBitmapSize = SizeKM(newBitmap.width, newBitmap.height) val matchingAspectRatio = - displayAdapter.supportedResolutions.value.any { it.hasSameAspectRatio(newBitmapSize) } + displayAdapter.displays.value + .flatMap { it.supportedSizes } + .any { it.hasSameAspectRatio(newBitmapSize) } if (!matchingAspectRatio) { coroutineScope.launch { @@ -67,10 +70,10 @@ class ScreenshotPickerDelegate( * unchanged coordinates. */ fun screenResolution(): SizeKM { - val activeDisplaySize = - displayAdapter.getDisplayResolutions(displayAdapter.activityDisplayId ?: 0).first() + val activeDisplay = + displayAdapter.getDisplay(displayAdapter.activityDisplayId ?: Display.DEFAULT_DISPLAY)!! - return screenshotResolution.value ?: loadedResolution.value ?: activeDisplaySize + return screenshotResolution.value ?: loadedResolution.value ?: activeDisplay.activeSize } fun recycle() { diff --git a/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintSnapshot.kt b/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintSnapshot.kt index 1fd23b1d7c..9315c4ccfc 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintSnapshot.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintSnapshot.kt @@ -11,6 +11,7 @@ import io.github.sds100.keymapper.system.bluetooth.BluetoothDeviceInfo import io.github.sds100.keymapper.system.camera.CameraAdapter import io.github.sds100.keymapper.system.devices.DevicesAdapter import io.github.sds100.keymapper.system.display.DisplayAdapter +import io.github.sds100.keymapper.system.display.DisplayInfo import io.github.sds100.keymapper.system.foldable.FoldableAdapter import io.github.sds100.keymapper.system.foldable.HingeState import io.github.sds100.keymapper.system.foldable.isClosed @@ -32,10 +33,10 @@ import java.time.LocalTime * This allows constraints to be checked lazily because some system calls take a significant amount of time. */ class LazyConstraintSnapshot( - accessibilityService: IAccessibilityService, + private val accessibilityService: IAccessibilityService, mediaAdapter: MediaAdapter, devicesAdapter: DevicesAdapter, - displayAdapter: DisplayAdapter, + private val displayAdapter: DisplayAdapter, networkAdapter: NetworkAdapter, private val cameraAdapter: CameraAdapter, inputMethodAdapter: InputMethodAdapter, @@ -50,12 +51,15 @@ class LazyConstraintSnapshot( private val connectedBluetoothDevices: Set by lazy { devicesAdapter.connectedBluetoothDevices.value } - private val orientation: Orientation by lazy { displayAdapter.cachedOrientation } + private val orientation: Orientation by lazy { getActiveDisplay()!!.rotation } private val physicalOrientation: PhysicalOrientation by lazy { displayAdapter.cachedPhysicalOrientation } private val isScreenOn: Boolean by lazy { displayAdapter.isScreenOn.firstBlocking() } - private val displaySize: SizeKM by lazy { displayAdapter.size } + private val displaySize: SizeKM by lazy { + getActiveDisplay()!!.activeSize + } + private val appsPlayingMedia: List by lazy { mediaAdapter.getActiveMediaSessionPackages() } @@ -231,6 +235,10 @@ class LazyConstraintSnapshot( return isSatisfied != constraint.isNot } + + private fun getActiveDisplay(): DisplayInfo? { + return displayAdapter.getDisplay(accessibilityService.getActiveDisplayId()) + } } interface ConstraintSnapshot { diff --git a/base/src/main/java/io/github/sds100/keymapper/base/constraints/CreateConstraintUseCase.kt b/base/src/main/java/io/github/sds100/keymapper/base/constraints/CreateConstraintUseCase.kt index e299f63781..c026b870a6 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/constraints/CreateConstraintUseCase.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/constraints/CreateConstraintUseCase.kt @@ -1,5 +1,6 @@ package io.github.sds100.keymapper.base.constraints +import android.view.Display import io.github.sds100.keymapper.common.utils.SizeKM import io.github.sds100.keymapper.data.Keys import io.github.sds100.keymapper.data.repositories.PreferenceRepository @@ -61,9 +62,14 @@ class CreateConstraintUseCaseImpl @Inject constructor( return CameraLens.entries.filter { cameraAdapter.getFlashInfo(it) != null }.toSet() } - override fun getSupportedResolutions(): Set = displayAdapter.supportedResolutions.value + override fun getSupportedResolutions(): Set = + displayAdapter.displays.value.flatMap { it.supportedSizes }.toSet() - override fun getCurrentResolution(): SizeKM = displayAdapter.size + override fun getCurrentResolution(): SizeKM { + return displayAdapter.getDisplay( + displayAdapter.activityDisplayId ?: Display.DEFAULT_DISPLAY, + )!!.activeSize + } } interface CreateConstraintUseCase : IsConstraintSupportedUseCase { diff --git a/base/src/main/java/io/github/sds100/keymapper/base/constraints/DetectConstraintsUseCase.kt b/base/src/main/java/io/github/sds100/keymapper/base/constraints/DetectConstraintsUseCase.kt index bb722e7ee7..9020b731bf 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/constraints/DetectConstraintsUseCase.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/constraints/DetectConstraintsUseCase.kt @@ -79,7 +79,7 @@ class DetectConstraintsUseCaseImpl @AssistedInject constructor( ConstraintDependency.SCREEN_STATE -> displayAdapter.isScreenOn.map { dependency } ConstraintDependency.DISPLAY_ORIENTATION -> - displayAdapter.orientation.map { dependency } + displayAdapter.displays.map { dependency } ConstraintDependency.PHYSICAL_ORIENTATION -> displayAdapter.physicalOrientation.map { dependency } @@ -127,7 +127,7 @@ class DetectConstraintsUseCaseImpl @AssistedInject constructor( ConstraintDependency.POSTED_NOTIFICATIONS -> notificationAdapter.activeNotifications.map { dependency } - ConstraintDependency.DISPLAY_RESOLUTIONS -> displayAdapter.supportedResolutions.map { + ConstraintDependency.DISPLAY_RESOLUTIONS -> displayAdapter.displays.map { dependency } } diff --git a/base/src/test/java/io/github/sds100/keymapper/base/actions/PerformActionsUseCaseTest.kt b/base/src/test/java/io/github/sds100/keymapper/base/actions/PerformActionsUseCaseTest.kt index fedf064c79..35531f1687 100644 --- a/base/src/test/java/io/github/sds100/keymapper/base/actions/PerformActionsUseCaseTest.kt +++ b/base/src/test/java/io/github/sds100/keymapper/base/actions/PerformActionsUseCaseTest.kt @@ -6,10 +6,12 @@ import io.github.sds100.keymapper.base.system.devices.FakeDevicesAdapter import io.github.sds100.keymapper.base.system.inputmethod.FakeInputMethodAdapter import io.github.sds100.keymapper.base.system.inputmethod.SwitchImeInterface import io.github.sds100.keymapper.common.utils.KMError +import io.github.sds100.keymapper.common.utils.Orientation import io.github.sds100.keymapper.common.utils.PinchScreenType import io.github.sds100.keymapper.common.utils.SizeKM import io.github.sds100.keymapper.common.utils.Success import io.github.sds100.keymapper.system.display.DisplayAdapter +import io.github.sds100.keymapper.system.display.DisplayInfo import io.github.sds100.keymapper.system.inputmethod.ImeInfo import io.github.sds100.keymapper.system.popup.ToastAdapter import kotlinx.coroutines.ExperimentalCoroutinesApi @@ -118,13 +120,24 @@ class PerformActionsUseCaseTest { verify(mockToastAdapter, never()).show(any(), any()) } + private fun stubDisplaySize(size: SizeKM) { + whenever(mockDisplayAdapter.getDisplay(any())).doReturn( + DisplayInfo( + id = 0, + activeSize = size, + rotation = Orientation.ORIENTATION_0, + supportedSizes = setOf(size), + ), + ) + } + /** * issue #2217 */ @Test fun `scale tap screen action to the current display resolution`() = runTest(testDispatcher) { // GIVEN the coordinate was picked on a 1080x2400 display and the display is now 1440x3200. - whenever(mockDisplayAdapter.size).doReturn(SizeKM(1440, 3200)) + stubDisplaySize(SizeKM(1440, 3200)) whenever(mockAccessibilityService.tapScreen(any(), any(), any())).doReturn(Success(Unit)) val action = ActionData.TapScreen( @@ -148,7 +161,7 @@ class PerformActionsUseCaseTest { fun `dont scale tap screen action created before the resolution was saved`() = runTest(testDispatcher) { // GIVEN - whenever(mockDisplayAdapter.size).doReturn(SizeKM(1440, 3200)) + stubDisplaySize(SizeKM(1440, 3200)) whenever(mockAccessibilityService.tapScreen(any(), any(), any())) .doReturn(Success(Unit)) @@ -173,7 +186,7 @@ class PerformActionsUseCaseTest { fun `scale both ends of a swipe screen action to the current display resolution`() = runTest(testDispatcher) { // GIVEN - whenever(mockDisplayAdapter.size).doReturn(SizeKM(1440, 3200)) + stubDisplaySize(SizeKM(1440, 3200)) whenever( mockAccessibilityService.swipeScreen( any(), @@ -218,7 +231,7 @@ class PerformActionsUseCaseTest { @Test fun `scale the centre and the distance of a pinch screen action`() = runTest(testDispatcher) { // GIVEN - whenever(mockDisplayAdapter.size).doReturn(SizeKM(1440, 3200)) + stubDisplaySize(SizeKM(1440, 3200)) whenever( mockAccessibilityService.pinchScreen( any(), @@ -265,7 +278,7 @@ class PerformActionsUseCaseTest { runTest(testDispatcher) { // GIVEN the coordinate was picked on a portrait display and the display is now // landscape at the same resolution. - whenever(mockDisplayAdapter.size).doReturn(SizeKM(2400, 1080)) + stubDisplaySize(SizeKM(2400, 1080)) whenever(mockAccessibilityService.tapScreen(any(), any(), any())) .doReturn(Success(Unit)) diff --git a/system/src/main/java/io/github/sds100/keymapper/system/display/AndroidDisplayAdapter.kt b/system/src/main/java/io/github/sds100/keymapper/system/display/AndroidDisplayAdapter.kt index c2572d0e66..818b0741da 100644 --- a/system/src/main/java/io/github/sds100/keymapper/system/display/AndroidDisplayAdapter.kt +++ b/system/src/main/java/io/github/sds100/keymapper/system/display/AndroidDisplayAdapter.kt @@ -20,7 +20,6 @@ import io.github.sds100.keymapper.common.utils.PhysicalOrientation import io.github.sds100.keymapper.common.utils.SettingsUtils import io.github.sds100.keymapper.common.utils.SizeKM import io.github.sds100.keymapper.common.utils.Success -import io.github.sds100.keymapper.common.utils.getRealDisplaySize import javax.inject.Inject import javax.inject.Singleton import kotlin.math.roundToInt @@ -29,7 +28,6 @@ import kotlinx.coroutines.delay import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.update -import kotlinx.coroutines.flow.updateAndGet import kotlinx.coroutines.launch /** @@ -85,11 +83,6 @@ class AndroidDisplayAdapter @Inject constructor( private val displayManager: DisplayManager = ctx.getSystemService()!! - private val _orientation = MutableStateFlow(getDisplayOrientation()) - override val orientation: Flow = _orientation - override val cachedOrientation: Orientation - get() = _orientation.value - private val _physicalOrientation = MutableStateFlow(PhysicalOrientation.PORTRAIT) override val physicalOrientation: Flow = _physicalOrientation override val cachedPhysicalOrientation: PhysicalOrientation @@ -97,20 +90,11 @@ class AndroidDisplayAdapter @Inject constructor( override var activityDisplayId: Int? = null - override val size: SizeKM - get() = ctx.getRealDisplaySize() - override val isAmbientDisplayEnabled: MutableStateFlow = MutableStateFlow(isAodEnabled()) - /** - * On (some?) foldable devices, such as the Pixel 10 Pro Fold emulator, - * the display manager only returns the display - * that is currently in use. It does not return both front and back displays. - * So, this will not contain the resolution of all displays. - */ - override val supportedResolutions: MutableStateFlow> = - MutableStateFlow(getSupportedResolutions(*displayManager.displays)) + override val displays: MutableStateFlow> = + MutableStateFlow(fetchAllDisplayInfo()) private val orientationEventListener = object : OrientationEventListener(ctx) { override fun onOrientationChanged(orientationDegrees: Int) { @@ -269,10 +253,6 @@ class AndroidDisplayAdapter @Inject constructor( } } - override fun fetchOrientation(): Orientation { - return _orientation.updateAndGet { getDisplayOrientation() } - } - private fun getDisplayBrightness(displayId: Int): Float { return if (Build.VERSION.SDK_INT_FULL >= Build.VERSION_CODES_FULL.BAKLAVA_1) { displayManager.getBrightness( @@ -288,27 +268,16 @@ class AndroidDisplayAdapter @Inject constructor( } } - private fun getDisplayOrientation(): Orientation = - when (val sdkRotation = displayManager.displays[0].rotation) { - Surface.ROTATION_0 -> Orientation.ORIENTATION_0 - Surface.ROTATION_90 -> Orientation.ORIENTATION_90 - Surface.ROTATION_180 -> Orientation.ORIENTATION_180 - Surface.ROTATION_270 -> Orientation.ORIENTATION_270 - else -> throw Exception("Don't know how to convert $sdkRotation to Orientation") - } - private fun isAodEnabled(): Boolean { return SettingsUtils.getSecureSetting(ctx, "doze_always_on") == 1 } private fun onDisplaysChanged() { - _orientation.update { getDisplayOrientation() } - - supportedResolutions.update { getSupportedResolutions(*displayManager.displays) } + displays.value = fetchAllDisplayInfo() } - override fun getDisplayResolutions(id: Int): Set { - return getSupportedResolutions(displayManager.getDisplay(id)) + override fun getDisplay(id: Int): DisplayInfo? { + return displayManager.getDisplay(id)?.let { buildDisplayInfo(it) } } /** @@ -347,10 +316,34 @@ class AndroidDisplayAdapter @Inject constructor( } } - private fun getSupportedResolutions(vararg display: Display?): Set { - return display - .filterNotNull() - .flatMap { it.supportedModes.toList() } + private fun fetchAllDisplayInfo(): List { + return displayManager.displays?.filterNotNull()?.map(::buildDisplayInfo) ?: emptyList() + } + + private fun buildDisplayInfo(display: Display): DisplayInfo { + return DisplayInfo( + id = display.displayId, + activeSize = SizeKM( + width = display.mode.physicalWidth, + height = display.mode.physicalHeight, + ), + rotation = getDisplayOrientation(display), + supportedSizes = getSupportedResolutions(display), + ) + } + + private fun getDisplayOrientation(display: Display): Orientation { + return when (val sdkRotation = display.rotation) { + Surface.ROTATION_0 -> Orientation.ORIENTATION_0 + Surface.ROTATION_90 -> Orientation.ORIENTATION_90 + Surface.ROTATION_180 -> Orientation.ORIENTATION_180 + Surface.ROTATION_270 -> Orientation.ORIENTATION_270 + else -> throw Exception("Don't know how to convert $sdkRotation to Orientation") + } + } + + private fun getSupportedResolutions(display: Display): Set { + return display.supportedModes .map { mode -> SizeKM(mode.physicalWidth, mode.physicalHeight) } .toSet() } diff --git a/system/src/main/java/io/github/sds100/keymapper/system/display/DisplayAdapter.kt b/system/src/main/java/io/github/sds100/keymapper/system/display/DisplayAdapter.kt index a21a320480..87aee5b435 100644 --- a/system/src/main/java/io/github/sds100/keymapper/system/display/DisplayAdapter.kt +++ b/system/src/main/java/io/github/sds100/keymapper/system/display/DisplayAdapter.kt @@ -3,45 +3,30 @@ package io.github.sds100.keymapper.system.display import io.github.sds100.keymapper.common.utils.KMResult import io.github.sds100.keymapper.common.utils.Orientation import io.github.sds100.keymapper.common.utils.PhysicalOrientation -import io.github.sds100.keymapper.common.utils.SizeKM import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.StateFlow interface DisplayAdapter { val isScreenOn: Flow - val orientation: Flow - val cachedOrientation: Orientation + val physicalOrientation: Flow val cachedPhysicalOrientation: PhysicalOrientation val isAmbientDisplayEnabled: Flow /** - * The display id the Key Mapper MainActivity is attached to. It is set to null when it is - * detached. + * The display id the last Key Mapper activity is attached to. */ val activityDisplayId: Int? - // TODO remove - val size: SizeKM - - /** - * The distinct resolutions supported by all displays, taken from the - * display's supported modes. The dimensions are in the display's natural orientation. - */ - val supportedResolutions: StateFlow> + val displays: StateFlow> - fun getDisplayResolutions(id: Int): Set + fun getDisplay(id: Int): DisplayInfo? fun isAutoRotateEnabled(): Boolean fun enableAutoRotate(): KMResult<*> fun disableAutoRotate(): KMResult<*> fun setOrientation(orientation: Orientation): KMResult<*> - /** - * Fetch the orientation and bypass the cached value that updates when the listener changes. - */ - fun fetchOrientation(): Orientation - fun isAutoBrightnessEnabled(): Boolean fun increaseBrightness(stepPercent: Float, display: Int): KMResult<*> fun decreaseBrightness(stepPercent: Float, display: Int): KMResult<*> diff --git a/system/src/main/java/io/github/sds100/keymapper/system/display/DisplayInfo.kt b/system/src/main/java/io/github/sds100/keymapper/system/display/DisplayInfo.kt new file mode 100644 index 0000000000..9eb8a5969c --- /dev/null +++ b/system/src/main/java/io/github/sds100/keymapper/system/display/DisplayInfo.kt @@ -0,0 +1,11 @@ +package io.github.sds100.keymapper.system.display + +import io.github.sds100.keymapper.common.utils.Orientation +import io.github.sds100.keymapper.common.utils.SizeKM + +data class DisplayInfo( + val id: Int, + val activeSize: SizeKM, + val rotation: Orientation, + val supportedSizes: Set, +) From ffb36c31b06664612af489dcdca286747839af60 Mon Sep 17 00:00:00 2001 From: sds100 Date: Mon, 28 Sep 2026 18:58:08 +0200 Subject: [PATCH 32/64] bump version code --- app/version.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/version.properties b/app/version.properties index 1d8b6a3d43..4a372a5dcd 100644 --- a/app/version.properties +++ b/app/version.properties @@ -1,2 +1,2 @@ VERSION_NAME=4.6.0 -VERSION_CODE=273 +VERSION_CODE=275 From 0549228962f4d765a555efbb181df48a417a2e9f Mon Sep 17 00:00:00 2001 From: sds100 Date: Mon, 28 Sep 2026 19:08:19 +0200 Subject: [PATCH 33/64] Revert "fix: use correct padding at top of key map options screen when no tip is showing" This reverts commit 2f3386835dc0e2f9923e1427fe6fe34a65ed1386. --- .../github/sds100/keymapper/base/keymaps/KeyMapOptionsScreen.kt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/base/src/main/java/io/github/sds100/keymapper/base/keymaps/KeyMapOptionsScreen.kt b/base/src/main/java/io/github/sds100/keymapper/base/keymaps/KeyMapOptionsScreen.kt index 1773fd83e6..47c1382a66 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/keymaps/KeyMapOptionsScreen.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/keymaps/KeyMapOptionsScreen.kt @@ -122,6 +122,8 @@ private fun Loaded( .padding(horizontal = 16.dp), verticalArrangement = Arrangement.spacedBy(8.dp), ) { + Spacer(modifier = Modifier.height(8.dp)) + if (state.showScreenOffTip) { TipCard( modifier = Modifier.fillMaxWidth(), From 55f19352f5c9407e2fe46bb1612953dfcc2f7879 Mon Sep 17 00:00:00 2001 From: sds100 Date: Mon, 28 Sep 2026 23:16:18 +0200 Subject: [PATCH 34/64] refactor: create shared KMBottomSheet composable --- .../BrightnessStepActionBottomSheet.kt | 94 +----- .../CreateNotificationActionBottomSheet.kt | 271 +++++++--------- .../actions/FlashlightActionBottomSheet.kt | 116 ++----- .../base/actions/HttpRequestBottomSheet.kt | 287 +++++++---------- .../actions/ModifySettingActionBottomSheet.kt | 301 ++++++++---------- .../base/actions/SmsActionBottomSheet.kt | 285 +++++++---------- .../actions/StepMediaActionBottomSheet.kt | 127 +++----- .../base/actions/ToastActionBottomSheet.kt | 130 +++----- .../base/actions/VibrateActionBottomSheet.kt | 94 ++---- .../base/actions/VolumeActionBottomSheet.kt | 139 +++----- .../DisplayResolutionConstraintBottomSheet.kt | 165 ++++------ .../constraints/TimeConstraintBottomSheet.kt | 163 +++------- .../keymaps/TriggerVibrationBottomSheet.kt | 94 ++---- .../base/sorting/SortBottomSheetContent.kt | 11 +- .../base/utils/ui/compose/KMBottomSheet.kt | 136 ++++++++ 15 files changed, 904 insertions(+), 1509 deletions(-) create mode 100644 base/src/main/java/io/github/sds100/keymapper/base/utils/ui/compose/KMBottomSheet.kt diff --git a/base/src/main/java/io/github/sds100/keymapper/base/actions/BrightnessStepActionBottomSheet.kt b/base/src/main/java/io/github/sds100/keymapper/base/actions/BrightnessStepActionBottomSheet.kt index 17c6dd3ff1..990b3e7845 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/actions/BrightnessStepActionBottomSheet.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/actions/BrightnessStepActionBottomSheet.kt @@ -1,33 +1,16 @@ package io.github.sds100.keymapper.base.actions -import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.width -import androidx.compose.foundation.rememberScrollState -import androidx.compose.foundation.verticalScroll -import androidx.compose.material3.Button import androidx.compose.material3.ExperimentalMaterial3Api -import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.ModalBottomSheet -import androidx.compose.material3.OutlinedButton import androidx.compose.material3.SheetState import androidx.compose.material3.SheetValue -import androidx.compose.material3.Text import androidx.compose.material3.rememberModalBottomSheetState import androidx.compose.runtime.Composable import androidx.compose.runtime.rememberCoroutineScope -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource -import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview -import androidx.compose.ui.unit.dp import io.github.sds100.keymapper.base.R import io.github.sds100.keymapper.base.compose.KeyMapperTheme +import io.github.sds100.keymapper.base.utils.ui.compose.KMBottomSheet import io.github.sds100.keymapper.base.utils.ui.compose.SliderOptionText import kotlin.math.roundToInt import kotlinx.coroutines.launch @@ -75,73 +58,28 @@ private fun BrightnessStepActionBottomSheet( onStepPercentChange: (Int) -> Unit = {}, onDoneClick: () -> Unit = {}, ) { - val scope = rememberCoroutineScope() - val titleRes = when (state.actionId) { ActionId.DECREASE_BRIGHTNESS -> R.string.action_decrease_brightness else -> R.string.action_increase_brightness } - ModalBottomSheet( - onDismissRequest = onDismissRequest, + KMBottomSheet( + title = stringResource(titleRes), + negButtonText = stringResource(R.string.neg_cancel), + posButtonText = stringResource(R.string.pos_done), + onPosButtonClick = onDoneClick, sheetState = sheetState, - dragHandle = null, + onDismissRequest = onDismissRequest, ) { - Column( - modifier = Modifier - .verticalScroll(rememberScrollState()) - .fillMaxWidth() - .padding(horizontal = 16.dp), - verticalArrangement = Arrangement.spacedBy(16.dp), - ) { - Text( - modifier = Modifier - .fillMaxWidth() - .padding(top = 16.dp), - textAlign = TextAlign.Center, - text = stringResource(titleRes), - style = MaterialTheme.typography.titleLarge, - ) - - SliderOptionText( - title = stringResource(R.string.brightness_step_percent_label), - value = state.stepPercent.toFloat(), - defaultValue = DEFAULT_BRIGHTNESS_STEP_PERCENT.toFloat(), - valueText = { "${it.roundToInt()}%" }, - onValueChange = { onStepPercentChange(it.roundToInt()) }, - valueRange = MIN_STEP_PERCENT.toFloat()..MAX_STEP_PERCENT.toFloat(), - stepSize = STEP_PERCENT_STEP_SIZE, - ) - - Row( - modifier = Modifier - .fillMaxWidth() - .padding(bottom = 16.dp), - horizontalArrangement = Arrangement.SpaceBetween, - verticalAlignment = Alignment.CenterVertically, - ) { - OutlinedButton( - modifier = Modifier.weight(1f), - onClick = { - scope.launch { - sheetState.hide() - onDismissRequest() - } - }, - ) { - Text(stringResource(R.string.neg_cancel)) - } - - Spacer(modifier = Modifier.width(16.dp)) - - Button( - modifier = Modifier.weight(1f), - onClick = onDoneClick, - ) { - Text(stringResource(R.string.pos_done)) - } - } - } + SliderOptionText( + title = stringResource(R.string.brightness_step_percent_label), + value = state.stepPercent.toFloat(), + defaultValue = DEFAULT_BRIGHTNESS_STEP_PERCENT.toFloat(), + valueText = { "${it.roundToInt()}%" }, + onValueChange = { onStepPercentChange(it.roundToInt()) }, + valueRange = MIN_STEP_PERCENT.toFloat()..MAX_STEP_PERCENT.toFloat(), + stepSize = STEP_PERCENT_STEP_SIZE, + ) } } diff --git a/base/src/main/java/io/github/sds100/keymapper/base/actions/CreateNotificationActionBottomSheet.kt b/base/src/main/java/io/github/sds100/keymapper/base/actions/CreateNotificationActionBottomSheet.kt index c7fd7d6c7a..0dc65c6766 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/actions/CreateNotificationActionBottomSheet.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/actions/CreateNotificationActionBottomSheet.kt @@ -1,20 +1,14 @@ package io.github.sds100.keymapper.base.actions import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.width -import androidx.compose.foundation.rememberScrollState -import androidx.compose.foundation.verticalScroll -import androidx.compose.material3.Button +import androidx.compose.foundation.layout.height import androidx.compose.material3.ButtonDefaults import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.FilledTonalButton import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.ModalBottomSheet import androidx.compose.material3.OutlinedButton import androidx.compose.material3.OutlinedTextField import androidx.compose.material3.SheetState @@ -31,12 +25,12 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource -import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import io.github.sds100.keymapper.base.R import io.github.sds100.keymapper.base.compose.KeyMapperTheme import io.github.sds100.keymapper.base.utils.ui.compose.CheckBoxText +import io.github.sds100.keymapper.base.utils.ui.compose.KMBottomSheet import io.github.sds100.keymapper.base.utils.ui.compose.SliderOptionText import io.github.sds100.keymapper.base.utils.ui.compose.filledTonalButtonColorsError import kotlinx.coroutines.launch @@ -99,8 +93,6 @@ private fun CreateNotificationActionBottomSheet( onTestClick: () -> Unit = {}, onDoneClick: () -> Unit = {}, ) { - val scope = rememberCoroutineScope() - val titleEmptyErrorString = stringResource(R.string.action_create_notification_title_error) val textEmptyErrorString = stringResource(R.string.action_create_notification_text_error) @@ -117,169 +109,136 @@ private fun CreateNotificationActionBottomSheet( } } - ModalBottomSheet( - onDismissRequest = onDismissRequest, - sheetState = sheetState, - dragHandle = null, - ) { - Column( - modifier = Modifier - .verticalScroll(rememberScrollState()) - .fillMaxWidth() - .padding(horizontal = 16.dp), - verticalArrangement = Arrangement.spacedBy(16.dp), - ) { - Text( - modifier = Modifier - .fillMaxWidth() - .padding(top = 16.dp), - textAlign = TextAlign.Center, - text = stringResource(R.string.action_create_notification), - style = MaterialTheme.typography.headlineMedium, - ) + KMBottomSheet( + title = stringResource(R.string.action_create_notification), + negButtonText = stringResource(R.string.neg_cancel), + posButtonText = stringResource(R.string.pos_done), + onPosButtonClick = { + if (state.title.isBlank()) { + titleError = titleEmptyErrorString + } - if (!state.isPermissionGranted) { - FilledTonalButton( - modifier = Modifier.fillMaxWidth(), - onClick = onRequestPermissionClick, - colors = ButtonDefaults.filledTonalButtonColorsError(), - ) { - Text(stringResource(R.string.modify_setting_grant_permission_button)) - } + if (state.text.isBlank()) { + textError = textEmptyErrorString } - OutlinedTextField( - value = state.title, - onValueChange = onTitleChange, - label = { Text(stringResource(R.string.action_create_notification_title_label)) }, - placeholder = { - Text(stringResource(R.string.action_create_notification_title_hint)) - }, + if (titleError == null && textError == null) { + onDoneClick() + } + }, + sheetState = sheetState, + onDismissRequest = onDismissRequest, + ) { + if (!state.isPermissionGranted) { + FilledTonalButton( modifier = Modifier.fillMaxWidth(), - singleLine = true, - isError = titleError != null, - supportingText = { - if (titleError != null) { - Text( - text = titleError!!, - color = MaterialTheme.colorScheme.error, - ) - } - }, - ) + onClick = onRequestPermissionClick, + colors = ButtonDefaults.filledTonalButtonColorsError(), + ) { + Text(stringResource(R.string.modify_setting_grant_permission_button)) + } - OutlinedTextField( - value = state.text, - onValueChange = onTextChange, - label = { Text(stringResource(R.string.action_create_notification_text_label)) }, - placeholder = { - Text(stringResource(R.string.action_create_notification_text_hint)) - }, - modifier = Modifier.fillMaxWidth(), - minLines = 3, - maxLines = 10, - isError = textError != null, - supportingText = { - if (textError != null) { - Text( - text = textError!!, - color = MaterialTheme.colorScheme.error, - ) - } - }, - ) + Spacer(modifier = Modifier.height(16.dp)) + } - CheckBoxText( - text = stringResource(R.string.action_create_notification_timeout_checkbox), - isChecked = state.timeoutEnabled, - onCheckedChange = onTimeoutEnabledChange, - ) + OutlinedTextField( + value = state.title, + onValueChange = onTitleChange, + label = { Text(stringResource(R.string.action_create_notification_title_label)) }, + placeholder = { + Text(stringResource(R.string.action_create_notification_title_hint)) + }, + modifier = Modifier.fillMaxWidth(), + singleLine = true, + isError = titleError != null, + supportingText = { + if (titleError != null) { + Text( + text = titleError!!, + color = MaterialTheme.colorScheme.error, + ) + } + }, + ) - if (state.timeoutEnabled) { - val timeoutValueFormat = - stringResource(R.string.action_create_notification_timeout_value) + Spacer(modifier = Modifier.height(16.dp)) - SliderOptionText( - title = stringResource(R.string.action_create_notification_timeout_label), - value = state.timeoutSeconds.toFloat(), - defaultValue = 30f, - valueText = { value -> - timeoutValueFormat.format(value.toInt()) - }, - onValueChange = { onTimeoutChange(it.toInt()) }, - valueRange = MIN_TIMEOUT_SECONDS.toFloat()..MAX_TIMEOUT_SECONDS.toFloat(), - stepSize = TIMEOUT_STEP_SECONDS, - ) - } + OutlinedTextField( + value = state.text, + onValueChange = onTextChange, + label = { Text(stringResource(R.string.action_create_notification_text_label)) }, + placeholder = { + Text(stringResource(R.string.action_create_notification_text_hint)) + }, + modifier = Modifier.fillMaxWidth(), + minLines = 3, + maxLines = 10, + isError = textError != null, + supportingText = { + if (textError != null) { + Text( + text = textError!!, + color = MaterialTheme.colorScheme.error, + ) + } + }, + ) - Row( - modifier = Modifier.fillMaxWidth(), - verticalAlignment = Alignment.CenterVertically, - horizontalArrangement = Arrangement.End, - ) { - OutlinedButton( - onClick = { - var hasError = false + Spacer(modifier = Modifier.height(16.dp)) - if (state.title.isBlank()) { - titleError = titleEmptyErrorString - hasError = true - } + CheckBoxText( + text = stringResource(R.string.action_create_notification_timeout_checkbox), + isChecked = state.timeoutEnabled, + onCheckedChange = onTimeoutEnabledChange, + ) - if (state.text.isBlank()) { - textError = textEmptyErrorString - hasError = true - } + if (state.timeoutEnabled) { + Spacer(modifier = Modifier.height(16.dp)) - if (!hasError) { - onTestClick() - } - }, - enabled = state.isPermissionGranted, - ) { - Text(stringResource(R.string.button_test_create_notification)) - } - } + val timeoutValueFormat = + stringResource(R.string.action_create_notification_timeout_value) - Row( - modifier = Modifier - .fillMaxWidth() - .padding(bottom = 16.dp), - horizontalArrangement = Arrangement.SpaceBetween, - verticalAlignment = Alignment.CenterVertically, - ) { - OutlinedButton( - modifier = Modifier.weight(1f), - onClick = { - scope.launch { - sheetState.hide() - onDismissRequest() - } - }, - ) { - Text(stringResource(R.string.neg_cancel)) - } + SliderOptionText( + title = stringResource(R.string.action_create_notification_timeout_label), + value = state.timeoutSeconds.toFloat(), + defaultValue = 30f, + valueText = { value -> + timeoutValueFormat.format(value.toInt()) + }, + onValueChange = { onTimeoutChange(it.toInt()) }, + valueRange = MIN_TIMEOUT_SECONDS.toFloat()..MAX_TIMEOUT_SECONDS.toFloat(), + stepSize = TIMEOUT_STEP_SECONDS, + ) + } - Spacer(modifier = Modifier.width(16.dp)) + Spacer(modifier = Modifier.height(16.dp)) - Button( - modifier = Modifier.weight(1f), - onClick = { - if (state.title.isBlank()) { - titleError = titleEmptyErrorString - } + Row( + modifier = Modifier.fillMaxWidth(), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.End, + ) { + OutlinedButton( + onClick = { + var hasError = false - if (state.text.isBlank()) { - textError = textEmptyErrorString - } + if (state.title.isBlank()) { + titleError = titleEmptyErrorString + hasError = true + } - if (titleError == null && textError == null) { - onDoneClick() - } - }, - ) { - Text(stringResource(R.string.pos_done)) - } + if (state.text.isBlank()) { + textError = textEmptyErrorString + hasError = true + } + + if (!hasError) { + onTestClick() + } + }, + enabled = state.isPermissionGranted, + ) { + Text(stringResource(R.string.button_test_create_notification)) } } } diff --git a/base/src/main/java/io/github/sds100/keymapper/base/actions/FlashlightActionBottomSheet.kt b/base/src/main/java/io/github/sds100/keymapper/base/actions/FlashlightActionBottomSheet.kt index 1e2b993770..8280e2bd53 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/actions/FlashlightActionBottomSheet.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/actions/FlashlightActionBottomSheet.kt @@ -4,32 +4,24 @@ import android.os.Build import androidx.compose.animation.AnimatedContent import androidx.compose.animation.AnimatedVisibility import androidx.compose.foundation.interaction.MutableInteractionSource -import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.ColumnScope import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.width -import androidx.compose.foundation.rememberScrollState -import androidx.compose.foundation.verticalScroll import androidx.compose.material.icons.Icons import androidx.compose.material.icons.rounded.BrightnessMedium import androidx.compose.material.icons.rounded.CameraFront import androidx.compose.material.icons.rounded.FlashlightOff import androidx.compose.material.icons.rounded.FlashlightOn import androidx.compose.material.icons.rounded.RestartAlt -import androidx.compose.material3.Button import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.FilledTonalIconToggleButton import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.ModalBottomSheet -import androidx.compose.material3.OutlinedButton import androidx.compose.material3.SheetState import androidx.compose.material3.SheetValue import androidx.compose.material3.Slider @@ -47,6 +39,7 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import io.github.sds100.keymapper.base.R import io.github.sds100.keymapper.base.compose.KeyMapperTheme +import io.github.sds100.keymapper.base.utils.ui.compose.KMBottomSheet import io.github.sds100.keymapper.base.utils.ui.compose.KeyMapperSliderThumb import io.github.sds100.keymapper.base.utils.ui.compose.OptionsHeaderRow import io.github.sds100.keymapper.base.utils.ui.compose.RadioButtonText @@ -105,7 +98,6 @@ private fun EnableFlashlightActionBottomSheet( onDoneClick = onDoneClick, ) { OptionsHeaderRow( - modifier = Modifier.padding(horizontal = 16.dp), icon = Icons.Rounded.BrightnessMedium, text = stringResource(R.string.action_config_flashlight_brightness), ) @@ -122,7 +114,6 @@ private fun EnableFlashlightActionBottomSheet( if (errorText != null) { Text( - modifier = Modifier.padding(horizontal = 16.dp), text = errorText, color = MaterialTheme.colorScheme.error, style = MaterialTheme.typography.bodyMedium, @@ -134,7 +125,6 @@ private fun EnableFlashlightActionBottomSheet( val sliderMax = state.lensData[state.selectedLens]!!.maxStrength.toFloat() Row( - modifier = Modifier.padding(horizontal = 16.dp), verticalAlignment = Alignment.CenterVertically, ) { Slider( @@ -164,7 +154,7 @@ private fun EnableFlashlightActionBottomSheet( } if (errorText == null) { - Row(modifier = Modifier.padding(horizontal = 16.dp)) { + Row { Box(modifier = Modifier.weight(1f)) { TextButton( modifier = Modifier.align(Alignment.TopStart), @@ -203,7 +193,6 @@ private fun EnableFlashlightActionBottomSheet( if (errorText == null) { Row( - modifier = Modifier.padding(horizontal = 16.dp), verticalAlignment = Alignment.CenterVertically, ) { Text( @@ -287,7 +276,6 @@ private fun ChangeFlashlightStrengthActionBottomSheet( onDoneClick = onDoneClick, ) { OptionsHeaderRow( - modifier = Modifier.padding(horizontal = 16.dp), icon = Icons.Rounded.BrightnessMedium, text = stringResource(R.string.action_config_flashlight_brightness_factor), ) @@ -295,7 +283,6 @@ private fun ChangeFlashlightStrengthActionBottomSheet( Spacer(modifier = Modifier.height(8.dp)) Row( - modifier = Modifier.padding(horizontal = 16.dp), verticalAlignment = Alignment.CenterVertically, ) { val interactionSource = remember { MutableInteractionSource() } @@ -346,93 +333,44 @@ private fun FlashlightActionBottomSheet( onDoneClick: () -> Unit, content: @Composable ColumnScope.() -> Unit, ) { - val scrollState = rememberScrollState() - val scope = rememberCoroutineScope() - - ModalBottomSheet( - onDismissRequest = onDismissRequest, + KMBottomSheet( + title = title, + negButtonText = stringResource(R.string.neg_cancel), + posButtonText = stringResource(R.string.pos_done), + onPosButtonClick = onDoneClick, sheetState = sheetState, - dragHandle = null, + onDismissRequest = onDismissRequest, ) { - Column( - modifier = Modifier.verticalScroll(scrollState), - ) { - Spacer(modifier = Modifier.height(16.dp)) - - Text( - modifier = Modifier - .fillMaxWidth() - .padding(horizontal = 32.dp), - textAlign = TextAlign.Center, - text = title, - style = MaterialTheme.typography.headlineMedium, + if (availableLenses.size > 1) { + OptionsHeaderRow( + icon = Icons.Rounded.CameraFront, + text = stringResource(R.string.action_config_flashlight_choose_side), ) Spacer(modifier = Modifier.height(8.dp)) - if (availableLenses.size > 1) { - OptionsHeaderRow( - modifier = Modifier.padding(horizontal = 16.dp), - icon = Icons.Rounded.CameraFront, - text = stringResource(R.string.action_config_flashlight_choose_side), + Row { + RadioButtonText( + modifier = Modifier, + text = stringResource(R.string.lens_front), + isSelected = selectedLens == CameraLens.FRONT, + onSelected = { onSelectLens(CameraLens.FRONT) }, + isEnabled = availableLenses.contains(CameraLens.FRONT), ) - Row(modifier = Modifier.padding(horizontal = 8.dp)) { - RadioButtonText( - modifier = Modifier, - text = stringResource(R.string.lens_front), - isSelected = selectedLens == CameraLens.FRONT, - onSelected = { onSelectLens(CameraLens.FRONT) }, - isEnabled = availableLenses.contains(CameraLens.FRONT), - ) - - RadioButtonText( - modifier = Modifier, - text = stringResource(R.string.lens_back), - isSelected = selectedLens == CameraLens.BACK, - onSelected = { onSelectLens(CameraLens.BACK) }, - isEnabled = availableLenses.contains(CameraLens.BACK), - ) - } + RadioButtonText( + modifier = Modifier, + text = stringResource(R.string.lens_back), + isSelected = selectedLens == CameraLens.BACK, + onSelected = { onSelectLens(CameraLens.BACK) }, + isEnabled = availableLenses.contains(CameraLens.BACK), + ) } - - Spacer(modifier = Modifier.height(8.dp)) - - content() } Spacer(modifier = Modifier.height(8.dp)) - Row( - modifier = Modifier - .fillMaxWidth() - .padding(horizontal = 16.dp), - horizontalArrangement = Arrangement.SpaceBetween, - verticalAlignment = Alignment.CenterVertically, - ) { - OutlinedButton( - modifier = Modifier.weight(1f), - onClick = { - scope.launch { - sheetState.hide() - onDismissRequest() - } - }, - ) { - Text(stringResource(R.string.neg_cancel)) - } - - Spacer(modifier = Modifier.width(16.dp)) - - Button( - modifier = Modifier.weight(1f), - onClick = onDoneClick, - ) { - Text(stringResource(R.string.pos_done)) - } - } - - Spacer(Modifier.height(16.dp)) + content() } } diff --git a/base/src/main/java/io/github/sds100/keymapper/base/actions/HttpRequestBottomSheet.kt b/base/src/main/java/io/github/sds100/keymapper/base/actions/HttpRequestBottomSheet.kt index 27818a788b..b06566bfd5 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/actions/HttpRequestBottomSheet.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/actions/HttpRequestBottomSheet.kt @@ -1,22 +1,12 @@ package io.github.sds100.keymapper.base.actions -import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.width import androidx.compose.foundation.layout.wrapContentWidth -import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.text.KeyboardOptions -import androidx.compose.foundation.verticalScroll -import androidx.compose.material3.Button import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.ModalBottomSheet -import androidx.compose.material3.OutlinedButton import androidx.compose.material3.OutlinedTextField import androidx.compose.material3.SheetState import androidx.compose.material3.SheetValue @@ -28,20 +18,18 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.setValue -import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.input.KeyboardCapitalization import androidx.compose.ui.text.input.KeyboardType -import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import io.github.sds100.keymapper.base.R import io.github.sds100.keymapper.base.compose.KeyMapperTheme +import io.github.sds100.keymapper.base.utils.ui.compose.KMBottomSheet import io.github.sds100.keymapper.base.utils.ui.compose.KeyMapperDropdownMenu import io.github.sds100.keymapper.system.network.HttpMethod import kotlinx.coroutines.flow.update -import kotlinx.coroutines.launch import okhttp3.HttpUrl.Companion.toHttpUrlOrNull @OptIn(ExperimentalMaterial3Api::class) @@ -99,8 +87,6 @@ private fun HttpRequestBottomSheet( onAuthorizationChanged: (String) -> Unit = {}, onDoneClick: () -> Unit = {}, ) { - val scrollState = rememberScrollState() - val scope = rememberCoroutineScope() var methodExpanded by rememberSaveable { mutableStateOf(false) } val descriptionEmptyErrorString = @@ -111,183 +97,126 @@ private fun HttpRequestBottomSheet( var descriptionError: String? by rememberSaveable { mutableStateOf(null) } var urlError: String? by rememberSaveable { mutableStateOf(null) } - ModalBottomSheet( - onDismissRequest = onDismissRequest, - sheetState = sheetState, - dragHandle = null, - ) { - Column( - modifier = Modifier.verticalScroll(scrollState), - ) { - Spacer(modifier = Modifier.height(16.dp)) - - Text( - modifier = Modifier - .fillMaxWidth() - .padding(horizontal = 32.dp), - textAlign = TextAlign.Center, - text = stringResource(R.string.action_http_request), - style = MaterialTheme.typography.headlineMedium, - ) - - Spacer(modifier = Modifier.height(8.dp)) - - KeyMapperDropdownMenu( - modifier = Modifier - .wrapContentWidth() - .padding(horizontal = 16.dp), - expanded = methodExpanded, - onExpandedChange = { methodExpanded = it }, - label = { Text(stringResource(R.string.action_http_request_method_label)) }, - selectedValue = state.method, - values = HttpMethod.entries.map { it to it.toString() }, - onValueChanged = onSelectMethod, - - ) - - Spacer(modifier = Modifier.height(8.dp)) - - OutlinedTextField( - modifier = Modifier - .fillMaxWidth() - .padding(horizontal = 16.dp), - value = state.description, - label = { Text(stringResource(R.string.action_http_request_description_label)) }, - onValueChange = { - descriptionError = null - onDescriptionChanged(it) - }, - maxLines = 1, - singleLine = true, - keyboardOptions = KeyboardOptions( - capitalization = KeyboardCapitalization.Sentences, - autoCorrectEnabled = true, - keyboardType = KeyboardType.Uri, - ), - isError = descriptionError != null, - supportingText = { - if (descriptionError != null) { - Text( - text = descriptionError!!, - color = MaterialTheme.colorScheme.error, - ) - } - }, - ) - - Spacer(modifier = Modifier.height(8.dp)) - - OutlinedTextField( - modifier = Modifier - .fillMaxWidth() - .padding(horizontal = 16.dp), - value = state.url, - label = { Text(stringResource(R.string.action_http_request_url_label)) }, - onValueChange = { - urlError = null - onUrlChanged(it) - }, - maxLines = 1, - singleLine = true, - keyboardOptions = KeyboardOptions( - capitalization = KeyboardCapitalization.None, - autoCorrectEnabled = false, - keyboardType = KeyboardType.Uri, - ), - isError = urlError != null, - supportingText = { - if (urlError != null) { - Text( - text = urlError!!, - color = MaterialTheme.colorScheme.error, - ) - } - }, - ) + KMBottomSheet( + title = stringResource(R.string.action_http_request), + negButtonText = stringResource(R.string.neg_cancel), + posButtonText = stringResource(R.string.pos_done), + onPosButtonClick = { + if (state.description.isBlank()) { + descriptionError = descriptionEmptyErrorString + } - Spacer(modifier = Modifier.height(8.dp)) + if (state.url.isBlank()) { + urlError = urlEmptyErrorString + } - OutlinedTextField( - modifier = Modifier - .fillMaxWidth() - .padding(horizontal = 16.dp), - value = state.body, - label = { Text(stringResource(R.string.action_http_request_body_label)) }, - onValueChange = { - onBodyChanged(it) - }, - ) + if (state.url.toHttpUrlOrNull() == null) { + urlError = malformedUrlErrorString + } - Spacer(modifier = Modifier.height(16.dp)) + if (descriptionError == null && urlError == null) { + onDoneClick() + } + }, + sheetState = sheetState, + onDismissRequest = onDismissRequest, + ) { + KeyMapperDropdownMenu( + modifier = Modifier.wrapContentWidth(), + expanded = methodExpanded, + onExpandedChange = { methodExpanded = it }, + label = { Text(stringResource(R.string.action_http_request_method_label)) }, + selectedValue = state.method, + values = HttpMethod.entries.map { it to it.toString() }, + onValueChanged = onSelectMethod, - OutlinedTextField( - modifier = Modifier - .fillMaxWidth() - .padding(horizontal = 16.dp), - value = state.authorizationHeader, - label = { Text(stringResource(R.string.action_http_request_authorization_label)) }, - onValueChange = { - onAuthorizationChanged(it) - }, - supportingText = { - Text(stringResource(R.string.action_http_request_authorization_supporting_text)) - }, - keyboardOptions = KeyboardOptions( - capitalization = KeyboardCapitalization.None, - autoCorrectEnabled = false, - keyboardType = KeyboardType.Text, - ), - ) + ) - Spacer(modifier = Modifier.height(16.dp)) + Spacer(modifier = Modifier.height(8.dp)) - Row( - modifier = Modifier - .fillMaxWidth() - .padding(horizontal = 16.dp), - horizontalArrangement = Arrangement.SpaceBetween, - verticalAlignment = Alignment.CenterVertically, - ) { - OutlinedButton( - modifier = Modifier.weight(1f), - onClick = { - scope.launch { - sheetState.hide() - onDismissRequest() - } - }, - ) { - Text(stringResource(R.string.neg_cancel)) + OutlinedTextField( + modifier = Modifier.fillMaxWidth(), + value = state.description, + label = { Text(stringResource(R.string.action_http_request_description_label)) }, + onValueChange = { + descriptionError = null + onDescriptionChanged(it) + }, + maxLines = 1, + singleLine = true, + keyboardOptions = KeyboardOptions( + capitalization = KeyboardCapitalization.Sentences, + autoCorrectEnabled = true, + keyboardType = KeyboardType.Uri, + ), + isError = descriptionError != null, + supportingText = { + if (descriptionError != null) { + Text( + text = descriptionError!!, + color = MaterialTheme.colorScheme.error, + ) } + }, + ) - Spacer(modifier = Modifier.width(16.dp)) + Spacer(modifier = Modifier.height(8.dp)) - Button( - modifier = Modifier.weight(1f), - onClick = { - if (state.description.isBlank()) { - descriptionError = descriptionEmptyErrorString - } + OutlinedTextField( + modifier = Modifier.fillMaxWidth(), + value = state.url, + label = { Text(stringResource(R.string.action_http_request_url_label)) }, + onValueChange = { + urlError = null + onUrlChanged(it) + }, + maxLines = 1, + singleLine = true, + keyboardOptions = KeyboardOptions( + capitalization = KeyboardCapitalization.None, + autoCorrectEnabled = false, + keyboardType = KeyboardType.Uri, + ), + isError = urlError != null, + supportingText = { + if (urlError != null) { + Text( + text = urlError!!, + color = MaterialTheme.colorScheme.error, + ) + } + }, + ) - if (state.url.isBlank()) { - urlError = urlEmptyErrorString - } + Spacer(modifier = Modifier.height(8.dp)) - if (state.url.toHttpUrlOrNull() == null) { - urlError = malformedUrlErrorString - } + OutlinedTextField( + modifier = Modifier.fillMaxWidth(), + value = state.body, + label = { Text(stringResource(R.string.action_http_request_body_label)) }, + onValueChange = { + onBodyChanged(it) + }, + ) - if (descriptionError == null && urlError == null) { - onDoneClick() - } - }, - ) { - Text(stringResource(R.string.pos_done)) - } - } + Spacer(modifier = Modifier.height(16.dp)) - Spacer(Modifier.height(16.dp)) - } + OutlinedTextField( + modifier = Modifier.fillMaxWidth(), + value = state.authorizationHeader, + label = { Text(stringResource(R.string.action_http_request_authorization_label)) }, + onValueChange = { + onAuthorizationChanged(it) + }, + supportingText = { + Text(stringResource(R.string.action_http_request_authorization_supporting_text)) + }, + keyboardOptions = KeyboardOptions( + capitalization = KeyboardCapitalization.None, + autoCorrectEnabled = false, + keyboardType = KeyboardType.Text, + ), + ) } } diff --git a/base/src/main/java/io/github/sds100/keymapper/base/actions/ModifySettingActionBottomSheet.kt b/base/src/main/java/io/github/sds100/keymapper/base/actions/ModifySettingActionBottomSheet.kt index 74f5f3584f..1e410fa4fe 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/actions/ModifySettingActionBottomSheet.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/actions/ModifySettingActionBottomSheet.kt @@ -1,20 +1,16 @@ package io.github.sds100.keymapper.base.actions import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.width -import androidx.compose.foundation.rememberScrollState -import androidx.compose.foundation.verticalScroll import androidx.compose.material3.Button import androidx.compose.material3.ButtonDefaults import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.FilledTonalButton import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.ModalBottomSheet import androidx.compose.material3.OutlinedButton import androidx.compose.material3.OutlinedTextField import androidx.compose.material3.SheetState @@ -33,13 +29,13 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontFamily -import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import io.github.sds100.keymapper.base.R import io.github.sds100.keymapper.base.compose.KeyMapperTheme import io.github.sds100.keymapper.base.compose.LocalCustomColorsPalette import io.github.sds100.keymapper.base.utils.getFullMessage +import io.github.sds100.keymapper.base.utils.ui.compose.KMBottomSheet import io.github.sds100.keymapper.base.utils.ui.compose.KeyMapperSegmentedButtonRow import io.github.sds100.keymapper.base.utils.ui.compose.filledTonalButtonColorsError import io.github.sds100.keymapper.common.utils.KMError @@ -101,8 +97,6 @@ private fun ModifySettingActionBottomSheet( onRequestPermissionClick: () -> Unit = {}, onDoneClick: () -> Unit = {}, ) { - val scope = rememberCoroutineScope() - val settingKeyEmptyErrorString = stringResource(R.string.modify_setting_key_empty_error) val settingValueEmptyErrorString = stringResource(R.string.modify_setting_value_empty_error) @@ -119,192 +113,161 @@ private fun ModifySettingActionBottomSheet( } } - ModalBottomSheet( - onDismissRequest = onDismissRequest, - sheetState = sheetState, - dragHandle = null, - ) { - Column( - modifier = Modifier - .verticalScroll(rememberScrollState()) - .fillMaxWidth() - .padding(horizontal = 16.dp), - verticalArrangement = Arrangement.spacedBy(16.dp), - ) { - Text( - modifier = Modifier - .fillMaxWidth() - .padding(top = 16.dp), - textAlign = TextAlign.Center, - text = stringResource(R.string.modify_setting_bottom_sheet_title), - style = MaterialTheme.typography.headlineMedium, - ) - - KeyMapperSegmentedButtonRow( - modifier = Modifier.fillMaxWidth(), - buttonStates = listOf( - SettingType.SYSTEM to stringResource(R.string.modify_setting_type_system), - SettingType.SECURE to stringResource(R.string.modify_setting_type_secure), - SettingType.GLOBAL to stringResource(R.string.modify_setting_type_global), - ), - selectedState = state.settingType, - onStateSelected = onSelectSettingType, - ) - - if (!state.isPermissionGranted) { - FilledTonalButton( - modifier = Modifier.fillMaxWidth(), - onClick = onRequestPermissionClick, - colors = ButtonDefaults.filledTonalButtonColorsError(), - ) { - Text(stringResource(R.string.modify_setting_grant_permission_button)) - } + KMBottomSheet( + title = stringResource(R.string.modify_setting_bottom_sheet_title), + negButtonText = stringResource(R.string.neg_cancel), + posButtonText = stringResource(R.string.pos_done), + onPosButtonClick = { + if (state.settingKey.isBlank()) { + settingKeyError = settingKeyEmptyErrorString } - Button( - onClick = onChooseExistingClick, - modifier = Modifier.fillMaxWidth(), - ) { - Text(stringResource(R.string.choose_existing_setting)) + if (state.value.isBlank()) { + settingValueError = settingValueEmptyErrorString } - OutlinedTextField( - value = state.settingKey, - onValueChange = onSettingKeyChange, - label = { Text(stringResource(R.string.modify_setting_key_label)) }, - modifier = Modifier.fillMaxWidth(), - singleLine = true, - textStyle = MaterialTheme.typography.bodyMedium.copy( - fontFamily = FontFamily.Monospace, - ), - isError = settingKeyError != null, - supportingText = { - if (settingKeyError != null) { - Text( - text = settingKeyError!!, - color = MaterialTheme.colorScheme.error, - ) - } - }, - ) + if (settingKeyError == null && settingValueError == null) { + onDoneClick() + } + }, + sheetState = sheetState, + onDismissRequest = onDismissRequest, + ) { + KeyMapperSegmentedButtonRow( + modifier = Modifier.fillMaxWidth(), + buttonStates = listOf( + SettingType.SYSTEM to stringResource(R.string.modify_setting_type_system), + SettingType.SECURE to stringResource(R.string.modify_setting_type_secure), + SettingType.GLOBAL to stringResource(R.string.modify_setting_type_global), + ), + selectedState = state.settingType, + onStateSelected = onSelectSettingType, + ) - OutlinedTextField( - value = state.value, - onValueChange = onSettingValueChange, - label = { Text(stringResource(R.string.modify_setting_value_label)) }, - modifier = Modifier.fillMaxWidth(), - singleLine = true, - textStyle = MaterialTheme.typography.bodyMedium.copy( - fontFamily = FontFamily.Monospace, - ), - isError = settingValueError != null, - supportingText = { - if (settingValueError != null) { - Text( - text = settingValueError!!, - color = MaterialTheme.colorScheme.error, - ) - } - }, - ) + if (!state.isPermissionGranted) { + Spacer(modifier = Modifier.height(16.dp)) - Row( + FilledTonalButton( modifier = Modifier.fillMaxWidth(), - verticalAlignment = Alignment.CenterVertically, - horizontalArrangement = Arrangement.End, + onClick = onRequestPermissionClick, + colors = ButtonDefaults.filledTonalButtonColorsError(), ) { - if (state.testResult != null) { - val resultText: String = when (state.testResult) { - is Success -> stringResource(R.string.test_modify_setting_result_ok) - is KMError -> state.testResult.getFullMessage(LocalContext.current) - } + Text(stringResource(R.string.modify_setting_grant_permission_button)) + } + } - val textColor = when (state.testResult) { - is Success -> LocalCustomColorsPalette.current.green - is KMError -> MaterialTheme.colorScheme.error - } + Spacer(modifier = Modifier.height(16.dp)) + + Button( + onClick = onChooseExistingClick, + modifier = Modifier.fillMaxWidth(), + ) { + Text(stringResource(R.string.choose_existing_setting)) + } + + Spacer(modifier = Modifier.height(16.dp)) + OutlinedTextField( + value = state.settingKey, + onValueChange = onSettingKeyChange, + label = { Text(stringResource(R.string.modify_setting_key_label)) }, + modifier = Modifier.fillMaxWidth(), + singleLine = true, + textStyle = MaterialTheme.typography.bodyMedium.copy( + fontFamily = FontFamily.Monospace, + ), + isError = settingKeyError != null, + supportingText = { + if (settingKeyError != null) { Text( - modifier = Modifier.weight(1f), - text = resultText, - color = textColor, - style = MaterialTheme.typography.bodyMedium, + text = settingKeyError!!, + color = MaterialTheme.colorScheme.error, ) } + }, + ) - Spacer(modifier = Modifier.width(16.dp)) + Spacer(modifier = Modifier.height(16.dp)) - OutlinedButton( - onClick = { - var hasError = false + OutlinedTextField( + value = state.value, + onValueChange = onSettingValueChange, + label = { Text(stringResource(R.string.modify_setting_value_label)) }, + modifier = Modifier.fillMaxWidth(), + singleLine = true, + textStyle = MaterialTheme.typography.bodyMedium.copy( + fontFamily = FontFamily.Monospace, + ), + isError = settingValueError != null, + supportingText = { + if (settingValueError != null) { + Text( + text = settingValueError!!, + color = MaterialTheme.colorScheme.error, + ) + } + }, + ) - if (state.settingKey.isBlank()) { - settingKeyError = settingKeyEmptyErrorString - hasError = true - } + Spacer(modifier = Modifier.height(16.dp)) - if (state.value.isBlank()) { - settingValueError = settingValueEmptyErrorString - hasError = true - } + Row( + modifier = Modifier.fillMaxWidth(), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.End, + ) { + if (state.testResult != null) { + val resultText: String = when (state.testResult) { + is Success -> stringResource(R.string.test_modify_setting_result_ok) + is KMError -> state.testResult.getFullMessage(LocalContext.current) + } - if (!hasError) { - onTestClick() - } - }, - ) { - Text(stringResource(R.string.button_test_modify_setting)) + val textColor = when (state.testResult) { + is Success -> LocalCustomColorsPalette.current.green + is KMError -> MaterialTheme.colorScheme.error } - } - Text( - modifier = Modifier.fillMaxWidth(), - text = stringResource(R.string.modify_setting_disclaimer), - style = MaterialTheme.typography.bodySmall, - color = MaterialTheme.colorScheme.onSurfaceVariant, - ) - - Row( - modifier = Modifier - .fillMaxWidth() - .padding(bottom = 16.dp), - horizontalArrangement = Arrangement.SpaceBetween, - verticalAlignment = Alignment.CenterVertically, - ) { - OutlinedButton( + Text( modifier = Modifier.weight(1f), - onClick = { - scope.launch { - sheetState.hide() - onDismissRequest() - } - }, - ) { - Text(stringResource(R.string.neg_cancel)) - } + text = resultText, + color = textColor, + style = MaterialTheme.typography.bodyMedium, + ) + } - Spacer(modifier = Modifier.width(16.dp)) + Spacer(modifier = Modifier.width(16.dp)) - Button( - modifier = Modifier.weight(1f), - onClick = { - if (state.settingKey.isBlank()) { - settingKeyError = settingKeyEmptyErrorString - } - - if (state.value.isBlank()) { - settingValueError = settingValueEmptyErrorString - } - - if (settingKeyError == null && settingValueError == null) { - onDoneClick() - } - }, - ) { - Text(stringResource(R.string.pos_done)) - } + OutlinedButton( + onClick = { + var hasError = false + + if (state.settingKey.isBlank()) { + settingKeyError = settingKeyEmptyErrorString + hasError = true + } + + if (state.value.isBlank()) { + settingValueError = settingValueEmptyErrorString + hasError = true + } + + if (!hasError) { + onTestClick() + } + }, + ) { + Text(stringResource(R.string.button_test_modify_setting)) } } + + Spacer(modifier = Modifier.height(16.dp)) + + Text( + modifier = Modifier.fillMaxWidth(), + text = stringResource(R.string.modify_setting_disclaimer), + style = MaterialTheme.typography.bodySmall, + color = MaterialTheme.colorScheme.onSurfaceVariant, + ) } } diff --git a/base/src/main/java/io/github/sds100/keymapper/base/actions/SmsActionBottomSheet.kt b/base/src/main/java/io/github/sds100/keymapper/base/actions/SmsActionBottomSheet.kt index a9c8e3bd12..8c93ea7eaa 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/actions/SmsActionBottomSheet.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/actions/SmsActionBottomSheet.kt @@ -2,21 +2,15 @@ package io.github.sds100.keymapper.base.actions import android.telephony.SmsManager import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.width -import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.text.KeyboardOptions -import androidx.compose.foundation.verticalScroll -import androidx.compose.material3.Button import androidx.compose.material3.CircularProgressIndicator import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.ModalBottomSheet import androidx.compose.material3.OutlinedButton import androidx.compose.material3.OutlinedTextField import androidx.compose.material3.SheetState @@ -35,18 +29,17 @@ import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.input.KeyboardCapitalization import androidx.compose.ui.text.input.KeyboardType -import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import io.github.sds100.keymapper.base.R import io.github.sds100.keymapper.base.compose.KeyMapperTheme import io.github.sds100.keymapper.base.compose.LocalCustomColorsPalette import io.github.sds100.keymapper.base.utils.getFullMessage +import io.github.sds100.keymapper.base.utils.ui.compose.KMBottomSheet import io.github.sds100.keymapper.common.utils.KMError import io.github.sds100.keymapper.common.utils.KMResult import io.github.sds100.keymapper.common.utils.State import io.github.sds100.keymapper.common.utils.Success -import kotlinx.coroutines.launch sealed class SmsActionBottomSheetState { abstract val number: String @@ -108,9 +101,6 @@ private fun SmsActionBottomSheet( onMessageChanged: (String) -> Unit = {}, onDoneClick: () -> Unit = {}, ) { - val scrollState = rememberScrollState() - val scope = rememberCoroutineScope() - val numberEmptyErrorString = stringResource(R.string.error_cant_be_empty) val messageEmptyErrorString = stringResource(R.string.error_cant_be_empty) @@ -122,183 +112,130 @@ private fun SmsActionBottomSheet( is SmsActionBottomSheetState.ComposeSms -> stringResource(R.string.action_compose_sms) } - ModalBottomSheet( - onDismissRequest = onDismissRequest, - sheetState = sheetState, - dragHandle = null, - ) { - Column( - modifier = Modifier.verticalScroll(scrollState), - ) { - Spacer(modifier = Modifier.height(16.dp)) - - Text( - modifier = Modifier - .fillMaxWidth() - .padding(horizontal = 32.dp), - textAlign = TextAlign.Center, - text = title, - style = MaterialTheme.typography.headlineMedium, - ) - - Spacer(modifier = Modifier.height(16.dp)) - - OutlinedTextField( - modifier = Modifier - .fillMaxWidth() - .padding(horizontal = 16.dp), - value = state.number, - label = { Text(stringResource(R.string.hint_create_sms_action_number)) }, - onValueChange = { - numberError = null - onNumberChanged(it) - }, - maxLines = 1, - singleLine = true, - keyboardOptions = KeyboardOptions( - keyboardType = KeyboardType.Phone, - ), - isError = numberError != null, - supportingText = { - if (numberError != null) { - Text( - text = numberError!!, - color = MaterialTheme.colorScheme.error, - ) - } - }, - ) - - Spacer(modifier = Modifier.height(8.dp)) - - OutlinedTextField( - modifier = Modifier - .fillMaxWidth() - .padding(horizontal = 16.dp), - value = state.message, - label = { Text(stringResource(R.string.hint_create_sms_action_message)) }, - onValueChange = { - messageError = null - onMessageChanged(it) - }, - minLines = 3, - maxLines = 5, - keyboardOptions = KeyboardOptions( - capitalization = KeyboardCapitalization.Sentences, - keyboardType = KeyboardType.Text, - ), - isError = messageError != null, - supportingText = { - if (messageError != null) { - Text( - text = messageError!!, - color = MaterialTheme.colorScheme.error, - ) - } - }, - ) - - Spacer(modifier = Modifier.height(8.dp)) - - Text( - modifier = Modifier - .fillMaxWidth() - .padding(horizontal = 16.dp), - text = stringResource(R.string.warning_sms_charges), - color = MaterialTheme.colorScheme.onSurfaceVariant, - style = MaterialTheme.typography.labelMedium, - ) - - Spacer(modifier = Modifier.height(8.dp)) - - if (state is SmsActionBottomSheetState.SendSms) { - Row( - modifier = Modifier - .fillMaxWidth() - .padding(horizontal = 16.dp), - verticalAlignment = Alignment.CenterVertically, - horizontalArrangement = Arrangement.End, - ) { - when (state.testResult) { - is State.Data -> { - val result = state.testResult.data - - val resultText: String = when (result) { - is Success -> stringResource(R.string.test_sms_result_ok) - is KMError -> result.getFullMessage(LocalContext.current) - } - - val textColor = when (result) { - is Success -> LocalCustomColorsPalette.current.green - is KMError -> MaterialTheme.colorScheme.error - } - - Text( - modifier = Modifier.weight(1f), - text = resultText, - color = textColor, - style = MaterialTheme.typography.bodyMedium, - ) - } + KMBottomSheet( + title = title, + negButtonText = stringResource(R.string.neg_cancel), + posButtonText = stringResource(R.string.pos_done), + onPosButtonClick = { + var hasError = false - State.Loading -> { - CircularProgressIndicator() - } + if (state.number.isBlank()) { + numberError = numberEmptyErrorString + hasError = true + } - null -> {} - } + if (state.message.isBlank()) { + messageError = messageEmptyErrorString + hasError = true + } - Spacer(modifier = Modifier.width(16.dp)) + if (!hasError) { + onDoneClick() + } + }, + sheetState = sheetState, + onDismissRequest = onDismissRequest, + ) { + OutlinedTextField( + modifier = Modifier.fillMaxWidth(), + value = state.number, + label = { Text(stringResource(R.string.hint_create_sms_action_number)) }, + onValueChange = { + numberError = null + onNumberChanged(it) + }, + maxLines = 1, + singleLine = true, + keyboardOptions = KeyboardOptions( + keyboardType = KeyboardType.Phone, + ), + isError = numberError != null, + supportingText = { + if (numberError != null) { + Text( + text = numberError!!, + color = MaterialTheme.colorScheme.error, + ) + } + }, + ) - OutlinedButton( - onClick = { - var hasError = false + Spacer(modifier = Modifier.height(8.dp)) - if (state.number.isBlank()) { - numberError = numberEmptyErrorString - hasError = true - } + OutlinedTextField( + modifier = Modifier.fillMaxWidth(), + value = state.message, + label = { Text(stringResource(R.string.hint_create_sms_action_message)) }, + onValueChange = { + messageError = null + onMessageChanged(it) + }, + minLines = 3, + maxLines = 5, + keyboardOptions = KeyboardOptions( + capitalization = KeyboardCapitalization.Sentences, + keyboardType = KeyboardType.Text, + ), + isError = messageError != null, + supportingText = { + if (messageError != null) { + Text( + text = messageError!!, + color = MaterialTheme.colorScheme.error, + ) + } + }, + ) - if (state.message.isBlank()) { - messageError = messageEmptyErrorString - hasError = true - } + Spacer(modifier = Modifier.height(8.dp)) - if (!hasError) { - onTestClick() - } - }, - ) { - Text(stringResource(R.string.button_test_sms)) - } - } - } + Text( + modifier = Modifier.fillMaxWidth(), + text = stringResource(R.string.warning_sms_charges), + color = MaterialTheme.colorScheme.onSurfaceVariant, + style = MaterialTheme.typography.labelMedium, + ) - Spacer(modifier = Modifier.height(16.dp)) + Spacer(modifier = Modifier.height(8.dp)) + if (state is SmsActionBottomSheetState.SendSms) { Row( - modifier = Modifier - .fillMaxWidth() - .padding(horizontal = 16.dp), - horizontalArrangement = Arrangement.SpaceBetween, + modifier = Modifier.fillMaxWidth(), verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.End, ) { - OutlinedButton( - modifier = Modifier.weight(1f), - onClick = { - scope.launch { - sheetState.hide() - onDismissRequest() + when (state.testResult) { + is State.Data -> { + val result = state.testResult.data + + val resultText: String = when (result) { + is Success -> stringResource(R.string.test_sms_result_ok) + is KMError -> result.getFullMessage(LocalContext.current) } - }, - ) { - Text(stringResource(R.string.neg_cancel)) + + val textColor = when (result) { + is Success -> LocalCustomColorsPalette.current.green + is KMError -> MaterialTheme.colorScheme.error + } + + Text( + modifier = Modifier.weight(1f), + text = resultText, + color = textColor, + style = MaterialTheme.typography.bodyMedium, + ) + } + + State.Loading -> { + CircularProgressIndicator() + } + + null -> {} } Spacer(modifier = Modifier.width(16.dp)) - Button( - modifier = Modifier.weight(1f), + OutlinedButton( onClick = { var hasError = false @@ -313,15 +250,13 @@ private fun SmsActionBottomSheet( } if (!hasError) { - onDoneClick() + onTestClick() } }, ) { - Text(stringResource(R.string.pos_done)) + Text(stringResource(R.string.button_test_sms)) } } - - Spacer(modifier = Modifier.height(16.dp)) } } } diff --git a/base/src/main/java/io/github/sds100/keymapper/base/actions/StepMediaActionBottomSheet.kt b/base/src/main/java/io/github/sds100/keymapper/base/actions/StepMediaActionBottomSheet.kt index 80c60f48c4..9c08277a5d 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/actions/StepMediaActionBottomSheet.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/actions/StepMediaActionBottomSheet.kt @@ -1,34 +1,24 @@ package io.github.sds100.keymapper.base.actions -import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.width -import androidx.compose.foundation.rememberScrollState -import androidx.compose.foundation.verticalScroll -import androidx.compose.material3.Button +import androidx.compose.foundation.layout.height import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.ModalBottomSheet -import androidx.compose.material3.OutlinedButton import androidx.compose.material3.SheetState import androidx.compose.material3.SheetValue import androidx.compose.material3.Text import androidx.compose.material3.rememberModalBottomSheetState import androidx.compose.runtime.Composable import androidx.compose.runtime.rememberCoroutineScope -import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource -import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.tooling.preview.Devices.TABLET import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import io.github.sds100.keymapper.base.R import io.github.sds100.keymapper.base.compose.KeyMapperTheme import io.github.sds100.keymapper.base.utils.ui.compose.CheckBoxText +import io.github.sds100.keymapper.base.utils.ui.compose.KMBottomSheet import io.github.sds100.keymapper.base.utils.ui.compose.SliderOptionText import kotlin.math.roundToInt import kotlinx.coroutines.launch @@ -83,8 +73,6 @@ private fun StepMediaActionBottomSheet( onDurationChange: (Int) -> Unit = {}, onDoneClick: () -> Unit = {}, ) { - val scope = rememberCoroutineScope() - val titleRes = when (state.actionId) { ActionId.STEP_BACKWARD, ActionId.STEP_BACKWARD_PACKAGE -> R.string.action_step_backward_media @@ -92,90 +80,51 @@ private fun StepMediaActionBottomSheet( else -> R.string.action_step_forward_media } - ModalBottomSheet( - onDismissRequest = onDismissRequest, + KMBottomSheet( + title = stringResource(titleRes), + negButtonText = stringResource(R.string.neg_cancel), + posButtonText = stringResource(R.string.pos_done), + onPosButtonClick = onDoneClick, sheetState = sheetState, - dragHandle = null, + onDismissRequest = onDismissRequest, ) { - Column( - modifier = Modifier - .verticalScroll(rememberScrollState()) - .fillMaxWidth() - .padding(horizontal = 16.dp), - verticalArrangement = Arrangement.spacedBy(16.dp), - ) { - Text( - modifier = Modifier - .fillMaxWidth() - .padding(top = 16.dp), - textAlign = TextAlign.Center, - text = stringResource(titleRes), - style = MaterialTheme.typography.headlineMedium, - ) - - CheckBoxText( - text = stringResource(R.string.action_step_media_duration_checkbox), - isChecked = state.durationEnabled, - onCheckedChange = onDurationEnabledChange, - ) + CheckBoxText( + text = stringResource(R.string.action_step_media_duration_checkbox), + isChecked = state.durationEnabled, + onCheckedChange = onDurationEnabledChange, + ) - if (state.durationEnabled) { - val durationValueFormat = - stringResource(R.string.action_step_media_duration_value) - - SliderOptionText( - title = stringResource(R.string.action_step_media_duration_label), - value = state.durationSeconds.toFloat(), - defaultValue = 30f, - valueText = { value -> - durationValueFormat.format(value.roundToInt()) - }, - onValueChange = { onDurationChange(it.roundToInt()) }, - valueRange = MIN_DURATION_SECONDS.toFloat()..MAX_DURATION_SECONDS.toFloat(), - stepSize = DURATION_STEP_SECONDS, - ) - } - - Text( - text = stringResource(R.string.action_step_media_duration_not_supported_text), - style = MaterialTheme.typography.bodySmall, - color = MaterialTheme.colorScheme.onSurfaceVariant, + if (state.durationEnabled) { + Spacer(modifier = Modifier.height(16.dp)) + + val durationValueFormat = + stringResource(R.string.action_step_media_duration_value) + + SliderOptionText( + title = stringResource(R.string.action_step_media_duration_label), + value = state.durationSeconds.toFloat(), + defaultValue = 30f, + valueText = { value -> + durationValueFormat.format(value.roundToInt()) + }, + onValueChange = { onDurationChange(it.roundToInt()) }, + valueRange = MIN_DURATION_SECONDS.toFloat()..MAX_DURATION_SECONDS.toFloat(), + stepSize = DURATION_STEP_SECONDS, ) + } - Row( - modifier = Modifier - .fillMaxWidth() - .padding(bottom = 16.dp), - horizontalArrangement = Arrangement.SpaceBetween, - verticalAlignment = Alignment.CenterVertically, - ) { - OutlinedButton( - modifier = Modifier.weight(1f), - onClick = { - scope.launch { - sheetState.hide() - onDismissRequest() - } - }, - ) { - Text(stringResource(R.string.neg_cancel)) - } - - Spacer(modifier = Modifier.width(16.dp)) + Spacer(modifier = Modifier.height(16.dp)) - Button( - modifier = Modifier.weight(1f), - onClick = onDoneClick, - ) { - Text(stringResource(R.string.pos_done)) - } - } - } + Text( + text = stringResource(R.string.action_step_media_duration_not_supported_text), + style = MaterialTheme.typography.bodySmall, + color = MaterialTheme.colorScheme.onSurfaceVariant, + ) } } @OptIn(ExperimentalMaterial3Api::class) -@Preview(showSystemUi = true) +@Preview(showSystemUi = true, device = TABLET) @Composable private fun StepMediaActionBottomSheetPreview() { KeyMapperTheme { diff --git a/base/src/main/java/io/github/sds100/keymapper/base/actions/ToastActionBottomSheet.kt b/base/src/main/java/io/github/sds100/keymapper/base/actions/ToastActionBottomSheet.kt index 7e766f483f..e0d830ac6a 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/actions/ToastActionBottomSheet.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/actions/ToastActionBottomSheet.kt @@ -1,19 +1,10 @@ package io.github.sds100.keymapper.base.actions -import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.width -import androidx.compose.foundation.rememberScrollState -import androidx.compose.foundation.verticalScroll -import androidx.compose.material3.Button +import androidx.compose.foundation.layout.height import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.ModalBottomSheet -import androidx.compose.material3.OutlinedButton import androidx.compose.material3.OutlinedTextField import androidx.compose.material3.SheetState import androidx.compose.material3.SheetValue @@ -26,14 +17,13 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.setValue -import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource -import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import io.github.sds100.keymapper.base.R import io.github.sds100.keymapper.base.compose.KeyMapperTheme +import io.github.sds100.keymapper.base.utils.ui.compose.KMBottomSheet import io.github.sds100.keymapper.base.utils.ui.compose.KeyMapperSegmentedButtonRow import kotlinx.coroutines.launch @@ -75,7 +65,6 @@ private fun ToastActionBottomSheet( onDurationChange: (ActionData.Toast.Duration) -> Unit = {}, onDoneClick: () -> Unit = {}, ) { - val scope = rememberCoroutineScope() val messageEmptyError = stringResource(R.string.action_toast_message_error) var messageError: String? by rememberSaveable { mutableStateOf(null) } @@ -85,89 +74,48 @@ private fun ToastActionBottomSheet( } } - ModalBottomSheet( - onDismissRequest = onDismissRequest, + KMBottomSheet( + title = stringResource(R.string.action_toast), + negButtonText = stringResource(R.string.neg_cancel), + posButtonText = stringResource(R.string.pos_done), + onPosButtonClick = { + if (state.message.isBlank()) { + messageError = messageEmptyError + } else { + onDoneClick() + } + }, sheetState = sheetState, - dragHandle = null, + onDismissRequest = onDismissRequest, ) { - Column( - modifier = Modifier - .verticalScroll(rememberScrollState()) - .fillMaxWidth() - .padding(horizontal = 16.dp), - verticalArrangement = Arrangement.spacedBy(16.dp), - ) { - Text( - modifier = Modifier - .fillMaxWidth() - .padding(top = 16.dp), - textAlign = TextAlign.Center, - text = stringResource(R.string.action_toast), - style = MaterialTheme.typography.headlineMedium, - ) - - OutlinedTextField( - modifier = Modifier.fillMaxWidth(), - value = state.message, - onValueChange = onMessageChange, - label = { Text(stringResource(R.string.action_toast_message_label)) }, - placeholder = { Text(stringResource(R.string.action_toast_message_hint)) }, - singleLine = true, - isError = messageError != null, - supportingText = { - if (messageError != null) { - Text(text = messageError!!, color = MaterialTheme.colorScheme.error) - } - }, - ) - - KeyMapperSegmentedButtonRow( - modifier = Modifier.fillMaxWidth(), - buttonStates = listOf( - ActionData.Toast.Duration.SHORT to - stringResource(R.string.action_toast_duration_short), - ActionData.Toast.Duration.LONG to - stringResource(R.string.action_toast_duration_long), - ), - selectedState = state.duration, - onStateSelected = onDurationChange, - ) - - Row( - modifier = Modifier - .fillMaxWidth() - .padding(bottom = 16.dp), - horizontalArrangement = Arrangement.SpaceBetween, - verticalAlignment = Alignment.CenterVertically, - ) { - OutlinedButton( - modifier = Modifier.weight(1f), - onClick = { - scope.launch { - sheetState.hide() - onDismissRequest() - } - }, - ) { - Text(stringResource(R.string.neg_cancel)) + OutlinedTextField( + modifier = Modifier.fillMaxWidth(), + value = state.message, + onValueChange = onMessageChange, + label = { Text(stringResource(R.string.action_toast_message_label)) }, + placeholder = { Text(stringResource(R.string.action_toast_message_hint)) }, + singleLine = true, + isError = messageError != null, + supportingText = { + if (messageError != null) { + Text(text = messageError!!, color = MaterialTheme.colorScheme.error) } + }, + ) - Spacer(modifier = Modifier.width(16.dp)) + Spacer(modifier = Modifier.height(16.dp)) - Button( - modifier = Modifier.weight(1f), - onClick = { - if (state.message.isBlank()) { - messageError = messageEmptyError - } else { - onDoneClick() - } - }, - ) { - Text(stringResource(R.string.pos_done)) - } - } - } + KeyMapperSegmentedButtonRow( + modifier = Modifier.fillMaxWidth(), + buttonStates = listOf( + ActionData.Toast.Duration.SHORT to + stringResource(R.string.action_toast_duration_short), + ActionData.Toast.Duration.LONG to + stringResource(R.string.action_toast_duration_long), + ), + selectedState = state.duration, + onStateSelected = onDurationChange, + ) } } diff --git a/base/src/main/java/io/github/sds100/keymapper/base/actions/VibrateActionBottomSheet.kt b/base/src/main/java/io/github/sds100/keymapper/base/actions/VibrateActionBottomSheet.kt index 3fe3e3700d..0b81014e1c 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/actions/VibrateActionBottomSheet.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/actions/VibrateActionBottomSheet.kt @@ -1,32 +1,18 @@ package io.github.sds100.keymapper.base.actions -import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.width -import androidx.compose.foundation.rememberScrollState -import androidx.compose.foundation.verticalScroll -import androidx.compose.material3.Button import androidx.compose.material3.ExperimentalMaterial3Api -import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.ModalBottomSheet -import androidx.compose.material3.OutlinedButton import androidx.compose.material3.SheetState import androidx.compose.material3.SheetValue -import androidx.compose.material3.Text import androidx.compose.material3.rememberModalBottomSheetState import androidx.compose.runtime.Composable import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource -import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview -import androidx.compose.ui.unit.dp import io.github.sds100.keymapper.base.R import io.github.sds100.keymapper.base.compose.KeyMapperTheme +import io.github.sds100.keymapper.base.utils.ui.compose.KMBottomSheet import io.github.sds100.keymapper.base.utils.ui.compose.VibrationEffectMode import io.github.sds100.keymapper.base.utils.ui.compose.VibrationEffectPickerContent import io.github.sds100.keymapper.base.vibration.VibrateConfigState @@ -70,69 +56,25 @@ private fun VibrateActionBottomSheet( onPredefinedTypeChange: (VibrateEffect.PredefinedType) -> Unit = {}, onDoneClick: () -> Unit = {}, ) { - val scope = rememberCoroutineScope() - - ModalBottomSheet( - onDismissRequest = onDismissRequest, + KMBottomSheet( + title = stringResource(R.string.action_vibrate), + negButtonText = stringResource(R.string.neg_cancel), + posButtonText = stringResource(R.string.pos_done), + onPosButtonClick = onDoneClick, sheetState = sheetState, - dragHandle = null, + onDismissRequest = onDismissRequest, ) { - Column( - modifier = Modifier - .verticalScroll(rememberScrollState()) - .fillMaxWidth() - .padding(horizontal = 16.dp), - verticalArrangement = Arrangement.spacedBy(16.dp), - ) { - Text( - modifier = Modifier - .fillMaxWidth() - .padding(top = 16.dp), - textAlign = TextAlign.Center, - text = stringResource(R.string.action_vibrate), - style = MaterialTheme.typography.headlineMedium, - ) - - VibrationEffectPickerContent( - modifier = Modifier.fillMaxWidth(), - mode = state.mode, - onModeChange = onModeChange, - durationMs = state.durationMs, - onDurationChange = onDurationChange, - defaultDurationMs = state.defaultDurationMs, - predefinedType = state.predefinedType, - onPredefinedTypeChange = onPredefinedTypeChange, - isPredefinedSupported = state.isPredefinedSupported, - ) - - Row( - modifier = Modifier - .fillMaxWidth() - .padding(bottom = 16.dp), - horizontalArrangement = Arrangement.SpaceBetween, - ) { - OutlinedButton( - modifier = Modifier.weight(1f), - onClick = { - scope.launch { - sheetState.hide() - onDismissRequest() - } - }, - ) { - Text(stringResource(R.string.neg_cancel)) - } - - Spacer(modifier = Modifier.width(16.dp)) - - Button( - modifier = Modifier.weight(1f), - onClick = onDoneClick, - ) { - Text(stringResource(R.string.pos_done)) - } - } - } + VibrationEffectPickerContent( + modifier = Modifier.fillMaxWidth(), + mode = state.mode, + onModeChange = onModeChange, + durationMs = state.durationMs, + onDurationChange = onDurationChange, + defaultDurationMs = state.defaultDurationMs, + predefinedType = state.predefinedType, + onPredefinedTypeChange = onPredefinedTypeChange, + isPredefinedSupported = state.isPredefinedSupported, + ) } } diff --git a/base/src/main/java/io/github/sds100/keymapper/base/actions/VolumeActionBottomSheet.kt b/base/src/main/java/io/github/sds100/keymapper/base/actions/VolumeActionBottomSheet.kt index 28e27bc03c..dec2cd3d80 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/actions/VolumeActionBottomSheet.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/actions/VolumeActionBottomSheet.kt @@ -1,26 +1,14 @@ package io.github.sds100.keymapper.base.actions -import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.width -import androidx.compose.foundation.rememberScrollState -import androidx.compose.foundation.verticalScroll import androidx.compose.material.icons.Icons import androidx.compose.material.icons.automirrored.outlined.VolumeUp import androidx.compose.material.icons.outlined.Visibility -import androidx.compose.material3.Button import androidx.compose.material3.ExperimentalMaterial3Api -import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.ModalBottomSheet -import androidx.compose.material3.OutlinedButton import androidx.compose.material3.SheetState import androidx.compose.material3.SheetValue -import androidx.compose.material3.Text import androidx.compose.material3.rememberModalBottomSheetState import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue @@ -28,16 +16,15 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue -import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource -import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import io.github.sds100.keymapper.base.R import io.github.sds100.keymapper.base.compose.KeyMapperTheme import io.github.sds100.keymapper.base.utils.VolumeStreamStrings import io.github.sds100.keymapper.base.utils.ui.compose.CheckBoxText +import io.github.sds100.keymapper.base.utils.ui.compose.KMBottomSheet import io.github.sds100.keymapper.base.utils.ui.compose.OptionsHeaderRow import io.github.sds100.keymapper.base.utils.ui.compose.RadioButtonText import io.github.sds100.keymapper.system.volume.VolumeStream @@ -97,106 +84,54 @@ private fun VolumeActionBottomSheet( onToggleShowVolumeUi: (Boolean) -> Unit = {}, onDoneClick: () -> Unit = {}, ) { - val scrollState = rememberScrollState() - val scope = rememberCoroutineScope() - - ModalBottomSheet( - onDismissRequest = onDismissRequest, + KMBottomSheet( + title = title, + negButtonText = stringResource(R.string.neg_cancel), + posButtonText = stringResource(R.string.pos_done), + onPosButtonClick = onDoneClick, sheetState = sheetState, - dragHandle = null, + onDismissRequest = onDismissRequest, ) { - Column( - modifier = Modifier.verticalScroll(scrollState), - ) { - Spacer(modifier = Modifier.height(16.dp)) - - Text( - modifier = Modifier - .fillMaxWidth() - .padding(horizontal = 32.dp), - textAlign = TextAlign.Center, - text = title, - style = MaterialTheme.typography.headlineMedium, - ) - - Spacer(modifier = Modifier.height(16.dp)) + OptionsHeaderRow( + icon = Icons.AutoMirrored.Outlined.VolumeUp, + text = stringResource(R.string.action_config_volume_stream), + ) - OptionsHeaderRow( - modifier = Modifier.padding(horizontal = 16.dp), - icon = Icons.AutoMirrored.Outlined.VolumeUp, - text = stringResource(R.string.action_config_volume_stream), - ) + Spacer(modifier = Modifier.height(8.dp)) - Spacer(modifier = Modifier.height(8.dp)) + // Default stream option (null means use system default) + RadioButtonText( + modifier = Modifier.padding(start = 8.dp), + text = stringResource(R.string.action_config_volume_stream_default), + isSelected = state.volumeStream == null, + onSelected = { onSelectStream(null) }, + ) - // Default stream option (null means use system default) + // Individual stream options + VolumeStream.entries.forEach { stream -> RadioButtonText( modifier = Modifier.padding(start = 8.dp), - text = stringResource(R.string.action_config_volume_stream_default), - isSelected = state.volumeStream == null, - onSelected = { onSelectStream(null) }, + text = stringResource(VolumeStreamStrings.getLabel(stream)), + isSelected = state.volumeStream == stream, + onSelected = { onSelectStream(stream) }, ) + } - // Individual stream options - VolumeStream.entries.forEach { stream -> - RadioButtonText( - modifier = Modifier.padding(start = 8.dp), - text = stringResource(VolumeStreamStrings.getLabel(stream)), - isSelected = state.volumeStream == stream, - onSelected = { onSelectStream(stream) }, - ) - } - - Spacer(modifier = Modifier.height(16.dp)) - - OptionsHeaderRow( - modifier = Modifier.padding(horizontal = 16.dp), - icon = Icons.Outlined.Visibility, - text = stringResource(R.string.action_config_volume_options), - ) - - Spacer(modifier = Modifier.height(8.dp)) - - CheckBoxText( - modifier = Modifier.padding(start = 8.dp), - text = stringResource(R.string.flag_show_volume_dialog), - isChecked = state.showVolumeUi, - onCheckedChange = onToggleShowVolumeUi, - ) - - Spacer(modifier = Modifier.height(16.dp)) - - Row( - modifier = Modifier - .fillMaxWidth() - .padding(horizontal = 16.dp), - horizontalArrangement = Arrangement.SpaceBetween, - verticalAlignment = Alignment.CenterVertically, - ) { - OutlinedButton( - modifier = Modifier.weight(1f), - onClick = { - scope.launch { - sheetState.hide() - onDismissRequest() - } - }, - ) { - Text(stringResource(R.string.neg_cancel)) - } + Spacer(modifier = Modifier.height(16.dp)) - Spacer(modifier = Modifier.width(16.dp)) + OptionsHeaderRow( + icon = Icons.Outlined.Visibility, + text = stringResource(R.string.action_config_volume_options), + ) - Button( - modifier = Modifier.weight(1f), - onClick = onDoneClick, - ) { - Text(stringResource(R.string.pos_done)) - } - } + Spacer(modifier = Modifier.height(8.dp)) - Spacer(Modifier.height(16.dp)) - } + CheckBoxText( + modifier = Modifier.padding(start = 8.dp), + text = stringResource(R.string.flag_show_volume_dialog), + isChecked = state.showVolumeUi, + onCheckedChange = onToggleShowVolumeUi, + ) } } diff --git a/base/src/main/java/io/github/sds100/keymapper/base/constraints/DisplayResolutionConstraintBottomSheet.kt b/base/src/main/java/io/github/sds100/keymapper/base/constraints/DisplayResolutionConstraintBottomSheet.kt index 5b7135ce51..4cff0af79e 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/constraints/DisplayResolutionConstraintBottomSheet.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/constraints/DisplayResolutionConstraintBottomSheet.kt @@ -1,21 +1,15 @@ package io.github.sds100.keymapper.base.constraints import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.FlowRow import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.width import androidx.compose.foundation.text.KeyboardOptions -import androidx.compose.material3.Button import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.FilterChip -import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.ModalBottomSheet -import androidx.compose.material3.OutlinedButton import androidx.compose.material3.OutlinedTextField import androidx.compose.material3.SheetState import androidx.compose.material3.SheetValue @@ -27,11 +21,11 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.input.KeyboardType -import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import io.github.sds100.keymapper.base.R import io.github.sds100.keymapper.base.compose.KeyMapperTheme +import io.github.sds100.keymapper.base.utils.ui.compose.KMBottomSheet import io.github.sds100.keymapper.common.utils.SizeKM import kotlinx.coroutines.launch @@ -67,127 +61,80 @@ private fun DisplayResolutionConstraintBottomSheet( ) { val scope = rememberCoroutineScope() - ModalBottomSheet( - onDismissRequest = onDismissRequest, + KMBottomSheet( + title = stringResource(R.string.constraint_display_resolution_bottom_sheet_title), + negButtonText = stringResource(R.string.neg_cancel), + posButtonText = stringResource(R.string.pos_done), + onPosButtonClick = { + scope.launch { + sheetState.hide() + onDoneClick() + } + }, + posButtonEnabled = state.isValid, sheetState = sheetState, - dragHandle = null, + onDismissRequest = onDismissRequest, ) { - Column { - Spacer(modifier = Modifier.height(16.dp)) - - Text( - modifier = Modifier - .fillMaxWidth() - .padding(horizontal = 32.dp), - textAlign = TextAlign.Center, - text = stringResource(R.string.constraint_display_resolution_bottom_sheet_title), - style = MaterialTheme.typography.headlineMedium, - ) - - Spacer(modifier = Modifier.height(16.dp)) - - // The chips are only useful when there is more than one supported mode to pick from. - if (state.supportedResolutions.size > 1) { - FlowRow( - modifier = Modifier - .fillMaxWidth() - .padding(horizontal = 16.dp), - horizontalArrangement = Arrangement.spacedBy(8.dp), - ) { - for (resolution in state.supportedResolutions) { - FilterChip( - selected = !state.isCustom && state.selectedResolution == resolution, - onClick = { onSelectResolution(resolution) }, - label = { Text("${resolution.width} × ${resolution.height}") }, - ) - } - + // The chips are only useful when there is more than one supported mode to pick from. + if (state.supportedResolutions.size > 1) { + FlowRow( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.spacedBy(8.dp), + ) { + for (resolution in state.supportedResolutions) { FilterChip( - selected = state.isCustom, - onClick = onSelectCustom, - label = { - Text( - stringResource( - R.string.constraint_display_resolution_custom_chip, - ), - ) - }, + selected = !state.isCustom && state.selectedResolution == resolution, + onClick = { onSelectResolution(resolution) }, + label = { Text("${resolution.width} × ${resolution.height}") }, ) } - Spacer(modifier = Modifier.height(16.dp)) + FilterChip( + selected = state.isCustom, + onClick = onSelectCustom, + label = { + Text( + stringResource( + R.string.constraint_display_resolution_custom_chip, + ), + ) + }, + ) } - if (state.isCustom) { - Row( - modifier = Modifier - .fillMaxWidth() - .padding(horizontal = 16.dp), - verticalAlignment = Alignment.CenterVertically, - horizontalArrangement = Arrangement.spacedBy(16.dp), - ) { - OutlinedTextField( - modifier = Modifier.weight(1f), - value = state.widthText, - onValueChange = onWidthChange, - singleLine = true, - keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number), - label = { - Text(stringResource(R.string.constraint_display_resolution_width)) - }, - ) - - OutlinedTextField( - modifier = Modifier.weight(1f), - value = state.heightText, - onValueChange = onHeightChange, - singleLine = true, - keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number), - label = { - Text(stringResource(R.string.constraint_display_resolution_height)) - }, - ) - } - - Spacer(modifier = Modifier.height(16.dp)) - } + Spacer(modifier = Modifier.height(16.dp)) + } + if (state.isCustom) { Row( - modifier = Modifier - .fillMaxWidth() - .padding(horizontal = 16.dp), - horizontalArrangement = Arrangement.SpaceBetween, + modifier = Modifier.fillMaxWidth(), verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(16.dp), ) { - OutlinedButton( + OutlinedTextField( modifier = Modifier.weight(1f), - onClick = { - scope.launch { - sheetState.hide() - onDismissRequest() - } + value = state.widthText, + onValueChange = onWidthChange, + singleLine = true, + keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number), + label = { + Text(stringResource(R.string.constraint_display_resolution_width)) }, - ) { - Text(stringResource(R.string.neg_cancel)) - } + ) - Spacer(modifier = Modifier.width(16.dp)) - - Button( + OutlinedTextField( modifier = Modifier.weight(1f), - enabled = state.isValid, - onClick = { - scope.launch { - sheetState.hide() - onDoneClick() - } + value = state.heightText, + onValueChange = onHeightChange, + singleLine = true, + keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number), + label = { + Text(stringResource(R.string.constraint_display_resolution_height)) }, - ) { - Text(stringResource(R.string.pos_done)) - } + ) } - Spacer(Modifier.height(16.dp)) + Spacer(modifier = Modifier.height(16.dp)) } } } diff --git a/base/src/main/java/io/github/sds100/keymapper/base/constraints/TimeConstraintBottomSheet.kt b/base/src/main/java/io/github/sds100/keymapper/base/constraints/TimeConstraintBottomSheet.kt index d2671298b1..c677b458ff 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/constraints/TimeConstraintBottomSheet.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/constraints/TimeConstraintBottomSheet.kt @@ -1,25 +1,16 @@ package io.github.sds100.keymapper.base.constraints -import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.width import androidx.compose.material.icons.Icons import androidx.compose.material.icons.outlined.Edit import androidx.compose.material.icons.rounded.Timer import androidx.compose.material.icons.rounded.TimerOff import androidx.compose.material3.AlertDialog -import androidx.compose.material3.Button import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.ModalBottomSheet -import androidx.compose.material3.OutlinedButton import androidx.compose.material3.SheetState import androidx.compose.material3.SheetValue import androidx.compose.material3.Text @@ -37,11 +28,11 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource -import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import io.github.sds100.keymapper.base.R import io.github.sds100.keymapper.base.compose.KeyMapperTheme +import io.github.sds100.keymapper.base.utils.ui.compose.KMBottomSheet import io.github.sds100.keymapper.base.utils.ui.compose.OptionsHeaderRow import io.github.sds100.keymapper.common.utils.TimeUtils import java.time.format.FormatStyle @@ -92,7 +83,6 @@ private fun TimeConstraintBottomSheet( onSelectEndTime: (Int, Int) -> Unit = { _, _ -> }, onDoneClick: () -> Unit = {}, ) { - val scope = rememberCoroutineScope() val formatter = remember { TimeUtils.localeDateFormatter(FormatStyle.SHORT) } val startTimePickerState = rememberTimePickerState() @@ -127,121 +117,74 @@ private fun TimeConstraintBottomSheet( ) } - ModalBottomSheet( - onDismissRequest = onDismissRequest, + KMBottomSheet( + title = stringResource(R.string.constraint_time_bottom_sheet_title), + negButtonText = stringResource(R.string.neg_cancel), + posButtonText = stringResource(R.string.pos_done), + onPosButtonClick = onDoneClick, sheetState = sheetState, - dragHandle = null, + onDismissRequest = onDismissRequest, ) { - Column { - Spacer(modifier = Modifier.height(16.dp)) + OptionsHeaderRow( + icon = Icons.Rounded.Timer, + text = stringResource(R.string.constraint_time_bottom_sheet_start_time), + ) + Row( + verticalAlignment = Alignment.CenterVertically, + ) { Text( - modifier = Modifier - .fillMaxWidth() - .padding(horizontal = 32.dp), - textAlign = TextAlign.Center, - text = stringResource(R.string.constraint_time_bottom_sheet_title), - style = MaterialTheme.typography.headlineMedium, + text = formatter.format(state.startTime), + style = MaterialTheme.typography.titleLarge, ) - Spacer(modifier = Modifier.height(8.dp)) + IconButton( + modifier = Modifier.padding(start = 8.dp), + onClick = { + startTimePickerState.hour = state.startHour + startTimePickerState.minute = state.startMinute - OptionsHeaderRow( - modifier = Modifier.padding(horizontal = 16.dp), - icon = Icons.Rounded.Timer, - text = stringResource(R.string.constraint_time_bottom_sheet_start_time), - ) - - Row( - modifier = Modifier.padding(horizontal = 16.dp), - verticalAlignment = Alignment.CenterVertically, + showStartTimePickerDialog = true + }, ) { - Text( - text = formatter.format(state.startTime), - style = MaterialTheme.typography.titleLarge, + Icon( + imageVector = Icons.Outlined.Edit, + contentDescription = stringResource( + R.string.constraint_time_bottom_sheet_edit_start_time, + ), ) - - IconButton( - modifier = Modifier.padding(start = 8.dp), - onClick = { - startTimePickerState.hour = state.startHour - startTimePickerState.minute = state.startMinute - - showStartTimePickerDialog = true - }, - ) { - Icon( - imageVector = Icons.Outlined.Edit, - contentDescription = stringResource( - R.string.constraint_time_bottom_sheet_edit_start_time, - ), - ) - } } + } - OptionsHeaderRow( - modifier = Modifier.padding(horizontal = 16.dp), - icon = Icons.Rounded.TimerOff, - text = stringResource(R.string.constraint_time_bottom_sheet_end_time), - ) - - Row( - modifier = Modifier.padding(horizontal = 16.dp), - verticalAlignment = Alignment.CenterVertically, - ) { - Text( - text = formatter.format(state.endTime), - style = MaterialTheme.typography.titleLarge, - ) + OptionsHeaderRow( + icon = Icons.Rounded.TimerOff, + text = stringResource(R.string.constraint_time_bottom_sheet_end_time), + ) - IconButton( - modifier = Modifier.padding(start = 8.dp), - onClick = { - endTimePickerState.hour = state.endHour - endTimePickerState.minute = state.endMinute + Row( + verticalAlignment = Alignment.CenterVertically, + ) { + Text( + text = formatter.format(state.endTime), + style = MaterialTheme.typography.titleLarge, + ) - showEndTimePickerDialog = true - }, - ) { - Icon( - imageVector = Icons.Outlined.Edit, - contentDescription = stringResource( - R.string.constraint_time_bottom_sheet_edit_end_time, - ), - ) - } - } + IconButton( + modifier = Modifier.padding(start = 8.dp), + onClick = { + endTimePickerState.hour = state.endHour + endTimePickerState.minute = state.endMinute - Row( - modifier = Modifier - .fillMaxWidth() - .padding(horizontal = 16.dp), - horizontalArrangement = Arrangement.SpaceBetween, - verticalAlignment = Alignment.CenterVertically, + showEndTimePickerDialog = true + }, ) { - OutlinedButton( - modifier = Modifier.weight(1f), - onClick = { - scope.launch { - sheetState.hide() - onDismissRequest() - } - }, - ) { - Text(stringResource(R.string.neg_cancel)) - } - - Spacer(modifier = Modifier.width(16.dp)) - - Button( - modifier = Modifier.weight(1f), - onClick = onDoneClick, - ) { - Text(stringResource(R.string.pos_done)) - } + Icon( + imageVector = Icons.Outlined.Edit, + contentDescription = stringResource( + R.string.constraint_time_bottom_sheet_edit_end_time, + ), + ) } - - Spacer(Modifier.height(16.dp)) } } } diff --git a/base/src/main/java/io/github/sds100/keymapper/base/keymaps/TriggerVibrationBottomSheet.kt b/base/src/main/java/io/github/sds100/keymapper/base/keymaps/TriggerVibrationBottomSheet.kt index 67a554b854..994e444faf 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/keymaps/TriggerVibrationBottomSheet.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/keymaps/TriggerVibrationBottomSheet.kt @@ -1,32 +1,18 @@ package io.github.sds100.keymapper.base.keymaps -import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.width -import androidx.compose.foundation.rememberScrollState -import androidx.compose.foundation.verticalScroll -import androidx.compose.material3.Button import androidx.compose.material3.ExperimentalMaterial3Api -import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.ModalBottomSheet -import androidx.compose.material3.OutlinedButton import androidx.compose.material3.SheetState import androidx.compose.material3.SheetValue -import androidx.compose.material3.Text import androidx.compose.material3.rememberModalBottomSheetState import androidx.compose.runtime.Composable import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource -import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview -import androidx.compose.ui.unit.dp import io.github.sds100.keymapper.base.R import io.github.sds100.keymapper.base.compose.KeyMapperTheme +import io.github.sds100.keymapper.base.utils.ui.compose.KMBottomSheet import io.github.sds100.keymapper.base.utils.ui.compose.VibrationEffectMode import io.github.sds100.keymapper.base.utils.ui.compose.VibrationEffectPickerContent import io.github.sds100.keymapper.base.vibration.VibrateConfigState @@ -70,69 +56,25 @@ private fun TriggerVibrationBottomSheet( onPredefinedTypeChange: (VibrateEffect.PredefinedType) -> Unit = {}, onDoneClick: () -> Unit = {}, ) { - val scope = rememberCoroutineScope() - - ModalBottomSheet( - onDismissRequest = onDismissRequest, + KMBottomSheet( + title = stringResource(R.string.flag_vibrate), + negButtonText = stringResource(R.string.neg_cancel), + posButtonText = stringResource(R.string.pos_done), + onPosButtonClick = onDoneClick, sheetState = sheetState, - dragHandle = null, + onDismissRequest = onDismissRequest, ) { - Column( - modifier = Modifier - .verticalScroll(rememberScrollState()) - .fillMaxWidth() - .padding(horizontal = 16.dp), - verticalArrangement = Arrangement.spacedBy(16.dp), - ) { - Text( - modifier = Modifier - .fillMaxWidth() - .padding(top = 16.dp), - textAlign = TextAlign.Center, - text = stringResource(R.string.flag_vibrate), - style = MaterialTheme.typography.headlineMedium, - ) - - VibrationEffectPickerContent( - modifier = Modifier.fillMaxWidth(), - mode = state.mode, - onModeChange = onModeChange, - durationMs = state.durationMs, - onDurationChange = onDurationChange, - defaultDurationMs = state.defaultDurationMs, - predefinedType = state.predefinedType, - onPredefinedTypeChange = onPredefinedTypeChange, - isPredefinedSupported = state.isPredefinedSupported, - ) - - Row( - modifier = Modifier - .fillMaxWidth() - .padding(bottom = 16.dp), - horizontalArrangement = Arrangement.SpaceBetween, - ) { - OutlinedButton( - modifier = Modifier.weight(1f), - onClick = { - scope.launch { - sheetState.hide() - onDismissRequest() - } - }, - ) { - Text(stringResource(R.string.neg_cancel)) - } - - Spacer(modifier = Modifier.width(16.dp)) - - Button( - modifier = Modifier.weight(1f), - onClick = onDoneClick, - ) { - Text(stringResource(R.string.pos_done)) - } - } - } + VibrationEffectPickerContent( + modifier = Modifier.fillMaxWidth(), + mode = state.mode, + onModeChange = onModeChange, + durationMs = state.durationMs, + onDurationChange = onDurationChange, + defaultDurationMs = state.defaultDurationMs, + predefinedType = state.predefinedType, + onPredefinedTypeChange = onPredefinedTypeChange, + isPredefinedSupported = state.isPredefinedSupported, + ) } } diff --git a/base/src/main/java/io/github/sds100/keymapper/base/sorting/SortBottomSheetContent.kt b/base/src/main/java/io/github/sds100/keymapper/base/sorting/SortBottomSheetContent.kt index c095902c40..74f164b7a4 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/sorting/SortBottomSheetContent.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/sorting/SortBottomSheetContent.kt @@ -7,7 +7,6 @@ import androidx.compose.animation.fadeOut import androidx.compose.animation.slideInVertically import androidx.compose.animation.slideOutVertically import androidx.compose.animation.togetherWith -import androidx.compose.foundation.BorderStroke import androidx.compose.foundation.clickable import androidx.compose.foundation.gestures.Orientation import androidx.compose.foundation.gestures.draggable @@ -35,7 +34,6 @@ import androidx.compose.material.icons.rounded.ArrowUpward import androidx.compose.material.icons.rounded.DragHandle import androidx.compose.material.icons.rounded.HorizontalRule import androidx.compose.material3.Button -import androidx.compose.material3.ButtonDefaults import androidx.compose.material3.Card import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon @@ -198,7 +196,7 @@ private fun SortBottomSheetContent( modifier = Modifier.align(Alignment.Center), text = stringResource(R.string.dialog_message_sort_sort_by), textAlign = TextAlign.Center, - style = MaterialTheme.typography.headlineMedium, + style = MaterialTheme.typography.titleLarge, ) TextButton( @@ -243,13 +241,6 @@ private fun SortBottomSheetContent( ) { OutlinedButton( onClick = onCancel, - colors = ButtonDefaults.outlinedButtonColors( - contentColor = MaterialTheme.colorScheme.error, - ), - border = BorderStroke( - width = 1.dp, - color = MaterialTheme.colorScheme.error, - ), ) { Text(stringResource(R.string.neg_cancel)) } diff --git a/base/src/main/java/io/github/sds100/keymapper/base/utils/ui/compose/KMBottomSheet.kt b/base/src/main/java/io/github/sds100/keymapper/base/utils/ui/compose/KMBottomSheet.kt new file mode 100644 index 0000000000..0fd05ba74a --- /dev/null +++ b/base/src/main/java/io/github/sds100/keymapper/base/utils/ui/compose/KMBottomSheet.kt @@ -0,0 +1,136 @@ +package io.github.sds100.keymapper.base.utils.ui.compose + +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.ColumnScope +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.layout.widthIn +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.verticalScroll +import androidx.compose.material3.Button +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.ModalBottomSheet +import androidx.compose.material3.OutlinedButton +import androidx.compose.material3.SheetState +import androidx.compose.material3.SheetValue +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.rememberCoroutineScope +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.tooling.preview.Devices.TABLET +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import io.github.sds100.keymapper.base.compose.KeyMapperTheme +import kotlinx.coroutines.launch + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +fun KMBottomSheet( + title: String, + posButtonText: String, + onPosButtonClick: () -> Unit, + sheetState: SheetState, + onDismissRequest: () -> Unit, + modifier: Modifier = Modifier, + posButtonEnabled: Boolean = true, + negButtonText: String? = null, + onNegButtonClick: (() -> Unit)? = null, + content: @Composable ColumnScope.() -> Unit, +) { + val scope = rememberCoroutineScope() + + ModalBottomSheet( + modifier = modifier.widthIn(max = 400.dp), + onDismissRequest = onDismissRequest, + sheetState = sheetState, + dragHandle = null, + ) { + Column( + modifier = Modifier + .verticalScroll(rememberScrollState()) + .padding(horizontal = 16.dp), + ) { + Text( + modifier = Modifier + .align(Alignment.CenterHorizontally) + .padding(top = 16.dp), + textAlign = TextAlign.Center, + text = title, + style = MaterialTheme.typography.titleLarge, + ) + + Spacer(Modifier.height(16.dp)) + + content() + + Spacer(Modifier.height(16.dp)) + + Row( + modifier = Modifier + .fillMaxWidth() + .padding(bottom = 16.dp), + horizontalArrangement = Arrangement.SpaceBetween, + verticalAlignment = Alignment.CenterVertically, + ) { + if (negButtonText != null) { + OutlinedButton( + modifier = Modifier.weight(1f), + onClick = { + if (onNegButtonClick != null) { + onNegButtonClick() + } else { + scope.launch { + sheetState.hide() + onDismissRequest() + } + } + }, + ) { + Text(negButtonText) + } + + Spacer(modifier = Modifier.width(16.dp)) + } + + Button( + modifier = Modifier.weight(1f), + enabled = posButtonEnabled, + onClick = onPosButtonClick, + ) { + Text(posButtonText) + } + } + } + } +} + +@OptIn(ExperimentalMaterial3Api::class) +@Preview(showSystemUi = true, device = TABLET) +@Composable +private fun KMBottomSheetPreview() { + KeyMapperTheme { + KMBottomSheet( + title = "Title", + negButtonText = "Cancel", + posButtonText = "Done", + onPosButtonClick = {}, + onDismissRequest = {}, + sheetState = SheetState( + skipPartiallyExpanded = true, + positionalThreshold = { 0f }, + velocityThreshold = { 0f }, + initialValue = SheetValue.Expanded, + ), + ) { + Text("Content") + } + } +} From b7a2892503bfe7db8bad6ac445834ec254877d02 Mon Sep 17 00:00:00 2001 From: sds100 Date: Thu, 1 Oct 2026 13:16:11 +0200 Subject: [PATCH 35/64] fix: When the bottom sheet fills the whole screen, scrolling pushes the top underneath the status bar, but the content stays below the status bar. This gives it an ugly forehead so make sure the bottom sheet never goes under the status bar. --- .../keymapper/base/utils/ui/compose/KMBottomSheet.kt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/base/src/main/java/io/github/sds100/keymapper/base/utils/ui/compose/KMBottomSheet.kt b/base/src/main/java/io/github/sds100/keymapper/base/utils/ui/compose/KMBottomSheet.kt index 0fd05ba74a..4f03632941 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/utils/ui/compose/KMBottomSheet.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/utils/ui/compose/KMBottomSheet.kt @@ -8,6 +8,7 @@ import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.statusBarsPadding import androidx.compose.foundation.layout.width import androidx.compose.foundation.layout.widthIn import androidx.compose.foundation.rememberScrollState @@ -48,7 +49,12 @@ fun KMBottomSheet( val scope = rememberCoroutineScope() ModalBottomSheet( - modifier = modifier.widthIn(max = 400.dp), + modifier = modifier + .widthIn(max = 400.dp) + // When the bottom sheet fills the whole screen, scrolling pushes the top + // underneath the status bar, but the content stays below the status bar. This gives + // it an ugly forehead so make sure the bottom sheet never goes under the status bar. + .statusBarsPadding(), onDismissRequest = onDismissRequest, sheetState = sheetState, dragHandle = null, From 7df0f88871954053f8d396b6e4b6e6fe40cf2503 Mon Sep 17 00:00:00 2001 From: sds100 Date: Thu, 1 Oct 2026 13:26:54 +0200 Subject: [PATCH 36/64] fix: disable bottom sheet gestures --- .../sds100/keymapper/base/utils/ui/compose/KMBottomSheet.kt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/base/src/main/java/io/github/sds100/keymapper/base/utils/ui/compose/KMBottomSheet.kt b/base/src/main/java/io/github/sds100/keymapper/base/utils/ui/compose/KMBottomSheet.kt index 4f03632941..ded7841424 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/utils/ui/compose/KMBottomSheet.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/utils/ui/compose/KMBottomSheet.kt @@ -58,6 +58,10 @@ fun KMBottomSheet( onDismissRequest = onDismissRequest, sheetState = sheetState, dragHandle = null, + // Disable gestures so when scrolling down, the user doesn't accidentally dismiss the + // bottom sheet. Also, to disable the bottom sheet (not scrolling container) springing + // up when over-scrolling. + sheetGesturesEnabled = false, ) { Column( modifier = Modifier From 8893c02a0b1420483d43d5664da653fa31f5ca58 Mon Sep 17 00:00:00 2001 From: sds100 Date: Thu, 1 Oct 2026 14:16:11 +0200 Subject: [PATCH 37/64] #711 feat: variables! --- CHANGELOG.md | 1 + .../keymapper/base/BaseSingletonHiltModule.kt | 6 + .../keymapper/base/actions/ActionCategory.kt | 1 + .../keymapper/base/actions/ActionData.kt | 19 + .../base/actions/ActionDataEntityMapper.kt | 33 ++ .../sds100/keymapper/base/actions/ActionId.kt | 2 + .../keymapper/base/actions/ActionUiHelper.kt | 11 + .../keymapper/base/actions/ActionUtils.kt | 6 + .../base/actions/ChooseActionScreen.kt | 1 + .../base/actions/ChooseActionViewModel.kt | 13 +- .../base/actions/ConfigActionsViewModel.kt | 12 +- .../base/actions/CreateActionDelegate.kt | 17 + .../base/actions/PerformActionsUseCase.kt | 6 + .../actions/SetVariableActionBottomSheet.kt | 186 +++++++ .../base/actions/SetVariableActionDelegate.kt | 71 +++ .../constraints/ChooseConstraintScreen.kt | 1 + .../constraints/ChooseConstraintViewModel.kt | 5 +- .../constraints/ConfigConstraintsViewModel.kt | 10 +- .../keymapper/base/constraints/Constraint.kt | 7 + .../base/constraints/ConstraintCategory.kt | 1 + .../base/constraints/ConstraintDependency.kt | 1 + .../constraints/ConstraintEntityMapper.kt | 36 ++ .../base/constraints/ConstraintId.kt | 2 + .../base/constraints/ConstraintSnapshot.kt | 16 + .../base/constraints/ConstraintUiHelper.kt | 29 + .../base/constraints/ConstraintUtils.kt | 10 +- .../constraints/CreateConstraintDelegate.kt | 13 +- .../constraints/DetectConstraintsUseCase.kt | 5 + .../VariableConstraintBottomSheet.kt | 186 +++++++ .../constraints/VariableConstraintDelegate.kt | 61 +++ .../KeyMapConstraintsComparator.kt | 2 + .../sds100/keymapper/base/utils/ErrorUtils.kt | 3 + .../base/utils/ui/compose/icons/Equal.kt | 53 ++ .../base/variables/VariableComparison.kt | 15 + .../base/variables/VariableConfigContent.kt | 256 +++++++++ .../base/variables/VariableOperation.kt | 15 + .../base/variables/VariableSuggestion.kt | 3 + .../base/variables/VariableValueFilter.kt | 15 + .../base/variables/VariablesUseCase.kt | 143 +++++ base/src/main/res/values/strings.xml | 30 + .../actions/ActionDataEntityMapperTest.kt | 52 +- .../base/actions/PerformActionsUseCaseTest.kt | 1 + .../constraints/ConstraintEntityMapperTest.kt | 48 ++ .../base/utils/TestConstraintSnapshot.kt | 12 + .../base/variables/VariablesUseCaseTest.kt | 226 ++++++++ .../sds100/keymapper/common/utils/KMResult.kt | 5 + .../25.json | 511 ++++++++++++++++++ .../sds100/keymapper/data/DataHiltModule.kt | 6 + .../sds100/keymapper/data/db/AppDatabase.kt | 8 +- .../keymapper/data/db/AppDatabaseModule.kt | 6 + .../keymapper/data/db/dao/VariableDao.kt | 32 ++ .../keymapper/data/entities/ActionEntity.kt | 5 + .../data/entities/ConstraintEntity.kt | 6 + .../keymapper/data/entities/VariableEntity.kt | 15 + .../data/repositories/VariableRepository.kt | 20 + .../repositories/VariableRepositoryImpl.kt | 68 +++ 56 files changed, 2313 insertions(+), 11 deletions(-) create mode 100644 base/src/main/java/io/github/sds100/keymapper/base/actions/SetVariableActionBottomSheet.kt create mode 100644 base/src/main/java/io/github/sds100/keymapper/base/actions/SetVariableActionDelegate.kt create mode 100644 base/src/main/java/io/github/sds100/keymapper/base/constraints/VariableConstraintBottomSheet.kt create mode 100644 base/src/main/java/io/github/sds100/keymapper/base/constraints/VariableConstraintDelegate.kt create mode 100644 base/src/main/java/io/github/sds100/keymapper/base/utils/ui/compose/icons/Equal.kt create mode 100644 base/src/main/java/io/github/sds100/keymapper/base/variables/VariableComparison.kt create mode 100644 base/src/main/java/io/github/sds100/keymapper/base/variables/VariableConfigContent.kt create mode 100644 base/src/main/java/io/github/sds100/keymapper/base/variables/VariableOperation.kt create mode 100644 base/src/main/java/io/github/sds100/keymapper/base/variables/VariableSuggestion.kt create mode 100644 base/src/main/java/io/github/sds100/keymapper/base/variables/VariableValueFilter.kt create mode 100644 base/src/main/java/io/github/sds100/keymapper/base/variables/VariablesUseCase.kt create mode 100644 base/src/test/java/io/github/sds100/keymapper/base/variables/VariablesUseCaseTest.kt create mode 100644 data/schemas/io.github.sds100.keymapper.data.db.AppDatabase/25.json create mode 100644 data/src/main/java/io/github/sds100/keymapper/data/db/dao/VariableDao.kt create mode 100644 data/src/main/java/io/github/sds100/keymapper/data/entities/VariableEntity.kt create mode 100644 data/src/main/java/io/github/sds100/keymapper/data/repositories/VariableRepository.kt create mode 100644 data/src/main/java/io/github/sds100/keymapper/data/repositories/VariableRepositoryImpl.kt diff --git a/CHANGELOG.md b/CHANGELOG.md index 3976551811..18e4f5bf13 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ ## Added +- #711 new action to add to, subtract from or set a variable, and a new constraint for comparing a variable to a value. - #1493 the brightness increment for the increase/decrease brightness actions can now be configured, from 1% to 50% (default 10%). - #2075 enable/disable/toggle a group by sending a broadcast intent, configurable from Power user options in Settings. - #2263 constraints can now be edited in place from the constraints list instead of being deleted and re-added. diff --git a/base/src/main/java/io/github/sds100/keymapper/base/BaseSingletonHiltModule.kt b/base/src/main/java/io/github/sds100/keymapper/base/BaseSingletonHiltModule.kt index 6e172fb5f8..4ac8d20573 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/BaseSingletonHiltModule.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/BaseSingletonHiltModule.kt @@ -57,6 +57,8 @@ import io.github.sds100.keymapper.base.utils.ui.DialogProvider import io.github.sds100.keymapper.base.utils.ui.DialogProviderImpl import io.github.sds100.keymapper.base.utils.ui.ResourceProvider import io.github.sds100.keymapper.base.utils.ui.ResourceProviderImpl +import io.github.sds100.keymapper.base.variables.VariablesUseCase +import io.github.sds100.keymapper.base.variables.VariablesUseCaseImpl import io.github.sds100.keymapper.common.utils.Clock import io.github.sds100.keymapper.common.utils.ClockImpl import io.github.sds100.keymapper.common.utils.DefaultUuidGenerator @@ -214,4 +216,8 @@ abstract class BaseSingletonHiltModule { @Binds @Singleton abstract fun bindClock(impl: ClockImpl): Clock + + @Binds + @Singleton + abstract fun bindVariablesUseCase(impl: VariablesUseCaseImpl): VariablesUseCase } diff --git a/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionCategory.kt b/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionCategory.kt index 6b7cde4839..99c7f14443 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionCategory.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionCategory.kt @@ -14,4 +14,5 @@ enum class ActionCategory { TELEPHONY, NOTIFICATIONS, SPECIAL, + VARIABLES, } diff --git a/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionData.kt b/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionData.kt index e51c1203cd..61030608cc 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionData.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionData.kt @@ -1,6 +1,7 @@ package io.github.sds100.keymapper.base.actions import io.github.sds100.keymapper.base.actions.talkback.TalkBackGestureType +import io.github.sds100.keymapper.base.variables.VariableOperation import io.github.sds100.keymapper.base.vibration.VibrateEffect import io.github.sds100.keymapper.common.models.ShellExecutionMode import io.github.sds100.keymapper.common.utils.NodeInteractionType @@ -1141,4 +1142,22 @@ sealed class ActionData : Comparable { else -> super.compareTo(other) } } + + @Serializable + data class SetVariable(val name: String, val operation: VariableOperation, val value: Long) : + ActionData() { + override val id: ActionId = ActionId.SET_VARIABLE + + override fun compareTo(other: ActionData) = when (other) { + is SetVariable -> compareValuesBy( + this, + other, + { it.name }, + { it.operation }, + { it.value }, + ) + + else -> super.compareTo(other) + } + } } diff --git a/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionDataEntityMapper.kt b/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionDataEntityMapper.kt index c349f9f7a7..d562395f87 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionDataEntityMapper.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionDataEntityMapper.kt @@ -3,6 +3,7 @@ package io.github.sds100.keymapper.base.actions import android.util.Base64 import androidx.core.net.toUri import io.github.sds100.keymapper.base.actions.talkback.TalkBackGestureType +import io.github.sds100.keymapper.base.variables.VariableOperation import io.github.sds100.keymapper.base.vibration.VibrateEffect import io.github.sds100.keymapper.common.models.ShellExecutionMode import io.github.sds100.keymapper.common.utils.KMError @@ -76,6 +77,8 @@ object ActionDataEntityMapper { ActionEntity.Type.TOAST -> ActionId.TOAST ActionEntity.Type.VIBRATE -> ActionId.VIBRATE + + ActionEntity.Type.SET_VARIABLE -> ActionId.SET_VARIABLE } return when (actionId) { @@ -791,6 +794,27 @@ object ActionDataEntityMapper { ActionData.Vibrate(effect = effect) } + ActionId.SET_VARIABLE -> { + val name = entity.extras.getData(ActionEntity.EXTRA_VARIABLE_NAME) + .valueOrNull() ?: return null + + val operationString = entity.extras.getData(ActionEntity.EXTRA_VARIABLE_OPERATION) + .valueOrNull() ?: return null + + val operation = try { + VariableOperation.valueOf(operationString) + } catch (_: IllegalArgumentException) { + return null + } + + // toLongOrNull rather than toLong because this can come from a backup file that + // was edited by hand. + val value = entity.extras.getData(ActionEntity.EXTRA_VARIABLE_VALUE) + .valueOrNull()?.toLongOrNull() ?: return null + + ActionData.SetVariable(name = name, operation = operation, value = value) + } + ActionId.ANSWER_PHONE_CALL -> ActionData.AnswerCall ActionId.END_PHONE_CALL -> ActionData.EndCall @@ -1065,6 +1089,7 @@ object ActionDataEntityMapper { is ActionData.CreateNotification -> ActionEntity.Type.CREATE_NOTIFICATION is ActionData.Toast -> ActionEntity.Type.TOAST is ActionData.Vibrate -> ActionEntity.Type.VIBRATE + is ActionData.SetVariable -> ActionEntity.Type.SET_VARIABLE else -> ActionEntity.Type.SYSTEM_ACTION } @@ -1156,6 +1181,8 @@ object ActionDataEntityMapper { is ActionData.Vibrate -> "" + is ActionData.SetVariable -> "" + is ActionData.HttpRequest -> SYSTEM_ACTION_ID_MAP[data.id]!! is ActionData.ControlMediaForApp.Rewind -> SYSTEM_ACTION_ID_MAP[data.id]!! @@ -1544,6 +1571,12 @@ object ActionDataEntityMapper { EntityExtra(ActionEntity.EXTRA_TALKBACK_GESTURE_TYPE, data.gesture.name), ) + is ActionData.SetVariable -> listOf( + EntityExtra(ActionEntity.EXTRA_VARIABLE_NAME, data.name), + EntityExtra(ActionEntity.EXTRA_VARIABLE_OPERATION, data.operation.name), + EntityExtra(ActionEntity.EXTRA_VARIABLE_VALUE, data.value.toString()), + ) + else -> emptyList() } diff --git a/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionId.kt b/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionId.kt index d8d7920074..643d0fdb98 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionId.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionId.kt @@ -168,4 +168,6 @@ enum class ActionId { MODIFY_SETTING, TALKBACK_GESTURE, + + SET_VARIABLE, } diff --git a/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionUiHelper.kt b/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionUiHelper.kt index 801113493b..0c2009bd9e 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionUiHelper.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionUiHelper.kt @@ -16,6 +16,7 @@ import io.github.sds100.keymapper.base.utils.ui.IconInfo import io.github.sds100.keymapper.base.utils.ui.ResourceProvider import io.github.sds100.keymapper.base.utils.ui.TintType import io.github.sds100.keymapper.base.utils.ui.compose.ComposeIconInfo +import io.github.sds100.keymapper.base.variables.VariableOperation import io.github.sds100.keymapper.base.vibration.VibrateEffect import io.github.sds100.keymapper.common.models.ShellExecutionMode import io.github.sds100.keymapper.common.utils.InputDeviceUtils @@ -836,6 +837,16 @@ class ActionUiHelper( val actionLabel = getString(TalkBackGestureStrings.getActionLabel(action.gesture)) getString(R.string.action_talkback_gesture_formatted, actionLabel) } + + is ActionData.SetVariable -> { + val stringRes = when (action.operation) { + VariableOperation.ADD -> R.string.action_set_variable_add + VariableOperation.SUBTRACT -> R.string.action_set_variable_subtract + VariableOperation.SET -> R.string.action_set_variable_set + } + + getString(stringRes, arrayOf(action.name, action.value.toString())) + } } fun getIcon(action: ActionData): ComposeIconInfo = when (action) { diff --git a/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionUtils.kt b/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionUtils.kt index 6fb4b0a32b..ca456cb38e 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionUtils.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionUtils.kt @@ -20,6 +20,7 @@ import androidx.compose.material.icons.outlined.Assistant import androidx.compose.material.icons.outlined.BrightnessAuto import androidx.compose.material.icons.outlined.BrightnessHigh import androidx.compose.material.icons.outlined.BrightnessLow +import androidx.compose.material.icons.outlined.Calculate import androidx.compose.material.icons.outlined.Call import androidx.compose.material.icons.outlined.CallEnd import androidx.compose.material.icons.outlined.CameraAlt @@ -116,6 +117,7 @@ object ActionUtils { ActionCategory.DISPLAY -> R.string.action_cat_display ActionCategory.NOTIFICATIONS -> R.string.action_cat_notifications ActionCategory.SPECIAL -> R.string.action_cat_special + ActionCategory.VARIABLES -> R.string.action_cat_variables } fun getCategory(id: ActionId): ActionCategory = when (id) { @@ -259,6 +261,7 @@ object ActionUtils { ActionId.MODIFY_SETTING -> ActionCategory.APPS ActionId.CONSUME_KEY_EVENT -> ActionCategory.SPECIAL ActionId.TALKBACK_GESTURE -> ActionCategory.INTERFACE + ActionId.SET_VARIABLE -> ActionCategory.VARIABLES } @StringRes @@ -541,6 +544,7 @@ object ActionUtils { ActionId.DISABLE_HOTSPOT -> R.string.action_disable_hotspot ActionId.TALKBACK_GESTURE -> R.string.action_talkback_gesture + ActionId.SET_VARIABLE -> R.string.action_set_variable } @DrawableRes @@ -1136,6 +1140,7 @@ object ActionUtils { ActionId.ENABLE_HOTSPOT -> Icons.Outlined.WifiTethering ActionId.DISABLE_HOTSPOT -> Icons.Outlined.WifiTetheringOff ActionId.TALKBACK_GESTURE -> Icons.Outlined.Accessibility + ActionId.SET_VARIABLE -> Icons.Outlined.Calculate } } @@ -1192,6 +1197,7 @@ fun ActionData.isEditable(): Boolean = when (this) { is ActionData.MoveCursor, is ActionData.ModifySetting, is ActionData.TalkBackGesture, + is ActionData.SetVariable, -> true else -> false diff --git a/base/src/main/java/io/github/sds100/keymapper/base/actions/ChooseActionScreen.kt b/base/src/main/java/io/github/sds100/keymapper/base/actions/ChooseActionScreen.kt index 1ffdcdb1c2..d1a6c33a1c 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/actions/ChooseActionScreen.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/actions/ChooseActionScreen.kt @@ -62,6 +62,7 @@ fun HandleActionBottomSheets(delegate: CreateActionDelegate) { ToastActionBottomSheet(delegate) VibrateActionBottomSheet(delegate) StepMediaActionBottomSheet(delegate) + SetVariableActionBottomSheet(delegate.setVariableDelegate) BrightnessStepActionBottomSheet(delegate) PickTalkBackGestureDialog(delegate) } diff --git a/base/src/main/java/io/github/sds100/keymapper/base/actions/ChooseActionViewModel.kt b/base/src/main/java/io/github/sds100/keymapper/base/actions/ChooseActionViewModel.kt index 1421b9e235..0968acd32e 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/actions/ChooseActionViewModel.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/actions/ChooseActionViewModel.kt @@ -15,6 +15,7 @@ import io.github.sds100.keymapper.base.utils.ui.compose.ComposeIconInfo import io.github.sds100.keymapper.base.utils.ui.compose.SimpleListItemGroup import io.github.sds100.keymapper.base.utils.ui.compose.SimpleListItemModel import io.github.sds100.keymapper.base.utils.ui.showDialog +import io.github.sds100.keymapper.base.variables.VariablesUseCase import io.github.sds100.keymapper.base.vibration.VibrateConfigDelegate import io.github.sds100.keymapper.common.utils.State import io.github.sds100.keymapper.system.SystemError @@ -38,6 +39,7 @@ class ChooseActionViewModel @Inject constructor( resourceProvider: ResourceProvider, navigationProvider: NavigationProvider, dialogProvider: DialogProvider, + variablesUseCase: VariablesUseCase, ) : ViewModel(), ResourceProvider by resourceProvider, DialogProvider by dialogProvider, @@ -58,11 +60,20 @@ class ChooseActionViewModel @Inject constructor( ActionCategory.TELEPHONY, ActionCategory.NOTIFICATIONS, ActionCategory.SPECIAL, + ActionCategory.VARIABLES, ) } val createActionDelegate = - CreateActionDelegate(viewModelScope, useCase, this, this, this, vibrateConfigDelegate) + CreateActionDelegate( + viewModelScope, + useCase, + this, + this, + this, + vibrateConfigDelegate, + variablesUseCase, + ) private val allGroupedListItems: List by lazy { buildListGroups() } diff --git a/base/src/main/java/io/github/sds100/keymapper/base/actions/ConfigActionsViewModel.kt b/base/src/main/java/io/github/sds100/keymapper/base/actions/ConfigActionsViewModel.kt index b384eb3da4..78f22748d5 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/actions/ConfigActionsViewModel.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/actions/ConfigActionsViewModel.kt @@ -21,6 +21,7 @@ import io.github.sds100.keymapper.base.utils.ui.DialogProvider import io.github.sds100.keymapper.base.utils.ui.ResourceProvider import io.github.sds100.keymapper.base.utils.ui.ViewModelHelper import io.github.sds100.keymapper.base.utils.ui.compose.ComposeIconInfo +import io.github.sds100.keymapper.base.variables.VariablesUseCase import io.github.sds100.keymapper.base.vibration.VibrateConfigDelegate import io.github.sds100.keymapper.common.utils.AccessibilityServiceError import io.github.sds100.keymapper.common.utils.KMError @@ -58,6 +59,7 @@ class ConfigActionsViewModel @Inject constructor( resourceProvider: ResourceProvider, navigationProvider: NavigationProvider, dialogProvider: DialogProvider, + variablesUseCase: VariablesUseCase, ) : ViewModel(), ActionOptionsBottomSheetCallback, ActionListCallback, @@ -69,7 +71,15 @@ class ConfigActionsViewModel @Inject constructor( OnboardingTipDelegate by onboardingTipDelegate { val createActionDelegate = - CreateActionDelegate(viewModelScope, createAction, this, this, this, vibrateConfigDelegate) + CreateActionDelegate( + viewModelScope, + createAction, + this, + this, + this, + vibrateConfigDelegate, + variablesUseCase, + ) private val uiHelper = ActionUiHelper(displayAction, resourceProvider) private val _state = MutableStateFlow>(State.Loading) diff --git a/base/src/main/java/io/github/sds100/keymapper/base/actions/CreateActionDelegate.kt b/base/src/main/java/io/github/sds100/keymapper/base/actions/CreateActionDelegate.kt index eccb051851..9c73967627 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/actions/CreateActionDelegate.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/actions/CreateActionDelegate.kt @@ -22,6 +22,7 @@ import io.github.sds100.keymapper.base.utils.ui.DialogProvider import io.github.sds100.keymapper.base.utils.ui.MultiChoiceItem import io.github.sds100.keymapper.base.utils.ui.ResourceProvider import io.github.sds100.keymapper.base.utils.ui.showDialog +import io.github.sds100.keymapper.base.variables.VariablesUseCase import io.github.sds100.keymapper.base.vibration.VibrateConfigDelegate import io.github.sds100.keymapper.common.utils.Orientation import io.github.sds100.keymapper.common.utils.State @@ -54,6 +55,7 @@ class CreateActionDelegate( navigationProvider: NavigationProvider, resourceProvider: ResourceProvider, vibrateConfigDelegate: VibrateConfigDelegate, + variablesUseCase: VariablesUseCase, ) : ResourceProvider by resourceProvider, DialogProvider by dialogProvider, NavigationProvider by navigationProvider, @@ -77,6 +79,12 @@ class CreateActionDelegate( var stepMediaActionBottomSheetState: StepMediaActionBottomSheetState? by mutableStateOf(null) var brightnessStepActionState: BrightnessStepActionBottomSheetState? by mutableStateOf(null) + val setVariableDelegate = SetVariableActionDelegate( + variablesUseCase, + resourceProvider, + dialogProvider, + ) { action -> actionResult.update { action } } + init { coroutineScope.launch { useCase.isFlashlightEnabled().collectLatest { enabled -> @@ -422,19 +430,23 @@ class CreateActionDelegate( val action = when (state.actionId) { ActionId.STEP_FORWARD -> ActionData.ControlMedia.StepForward(durationMs) + ActionId.STEP_BACKWARD -> ActionData.ControlMedia.StepBackward(durationMs) + ActionId.STEP_FORWARD_PACKAGE -> ActionData.ControlMediaForApp.StepForward( state.packageName!!, durationMs, state.appName, ) + ActionId.STEP_BACKWARD_PACKAGE -> ActionData.ControlMediaForApp.StepBackward( state.packageName!!, durationMs, state.appName, ) + else -> throw Exception("don't know how to create action for ${state.actionId}") } @@ -1310,6 +1322,11 @@ class CreateActionDelegate( return null } + ActionId.SET_VARIABLE -> { + setVariableDelegate.open(oldData as? ActionData.SetVariable) + return null + } + ActionId.ANSWER_PHONE_CALL -> return ActionData.AnswerCall ActionId.END_PHONE_CALL -> return ActionData.EndCall diff --git a/base/src/main/java/io/github/sds100/keymapper/base/actions/PerformActionsUseCase.kt b/base/src/main/java/io/github/sds100/keymapper/base/actions/PerformActionsUseCase.kt index 5f2de2ccd5..81bf979887 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/actions/PerformActionsUseCase.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/actions/PerformActionsUseCase.kt @@ -21,6 +21,7 @@ import io.github.sds100.keymapper.base.system.navigation.OpenMenuHelper import io.github.sds100.keymapper.base.system.notifications.NotificationController import io.github.sds100.keymapper.base.utils.getFullMessage import io.github.sds100.keymapper.base.utils.ui.ResourceProvider +import io.github.sds100.keymapper.base.variables.VariablesUseCase import io.github.sds100.keymapper.base.vibration.vibrate import io.github.sds100.keymapper.common.utils.InputEventAction import io.github.sds100.keymapper.common.utils.KMError @@ -124,6 +125,7 @@ class PerformActionsUseCaseImpl @AssistedInject constructor( private val systemBridgeConnectionManager: SystemBridgeConnectionManager, private val settingsAdapter: SettingsAdapter, private val vibratorAdapter: VibratorAdapter, + private val variablesUseCase: VariablesUseCase, ) : PerformActionsUseCase { companion object { @@ -1046,6 +1048,10 @@ class PerformActionsUseCaseImpl @AssistedInject constructor( result = success() } + is ActionData.SetVariable -> { + result = variablesUseCase.apply(action.name, action.operation, action.value) + } + ActionData.AnswerCall -> { phoneAdapter.answerCall() result = success() diff --git a/base/src/main/java/io/github/sds100/keymapper/base/actions/SetVariableActionBottomSheet.kt b/base/src/main/java/io/github/sds100/keymapper/base/actions/SetVariableActionBottomSheet.kt new file mode 100644 index 0000000000..56cb63c4ff --- /dev/null +++ b/base/src/main/java/io/github/sds100/keymapper/base/actions/SetVariableActionBottomSheet.kt @@ -0,0 +1,186 @@ +package io.github.sds100.keymapper.base.actions + +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.rounded.Add +import androidx.compose.material.icons.rounded.Remove +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.Icon +import androidx.compose.material3.SheetState +import androidx.compose.material3.SheetValue +import androidx.compose.material3.rememberModalBottomSheetState +import androidx.compose.runtime.Composable +import androidx.compose.runtime.collectAsState +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.rememberCoroutineScope +import androidx.compose.runtime.saveable.rememberSaveable +import androidx.compose.runtime.setValue +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.tooling.preview.Devices.TABLET +import androidx.compose.ui.tooling.preview.Preview +import io.github.sds100.keymapper.base.R +import io.github.sds100.keymapper.base.compose.KeyMapperTheme +import io.github.sds100.keymapper.base.utils.ui.compose.KMBottomSheet +import io.github.sds100.keymapper.base.utils.ui.compose.icons.Equal +import io.github.sds100.keymapper.base.utils.ui.compose.icons.KeyMapperIcons +import io.github.sds100.keymapper.base.variables.VariableConfigContent +import io.github.sds100.keymapper.base.variables.VariableOperation +import io.github.sds100.keymapper.base.variables.VariableSuggestion +import kotlinx.coroutines.launch + +data class SetVariableActionBottomSheetState( + val name: String = "", + val operation: VariableOperation = VariableOperation.ADD, + val value: String = "1", +) + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +fun SetVariableActionBottomSheet(delegate: SetVariableActionDelegate) { + val scope = rememberCoroutineScope() + val sheetState = rememberModalBottomSheetState(skipPartiallyExpanded = true) + val state = delegate.state + val suggestions by delegate.suggestions.collectAsState(emptyList()) + + if (state != null) { + SetVariableActionBottomSheet( + sheetState = sheetState, + state = state, + suggestions = suggestions, + onDismissRequest = delegate::onDismiss, + onNameChange = delegate::onNameChange, + onValueChange = delegate::onValueChange, + onCycleOperationClick = delegate::onCycleOperationClick, + onResetClick = delegate::onResetClick, + onResetAllClick = delegate::onResetAllClick, + onDoneClick = { + scope.launch { + sheetState.hide() + delegate.onDoneClick() + } + }, + ) + } +} + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +private fun SetVariableActionBottomSheet( + sheetState: SheetState, + state: SetVariableActionBottomSheetState, + suggestions: List = emptyList(), + onDismissRequest: () -> Unit = {}, + onNameChange: (String) -> Unit = {}, + onValueChange: (String) -> Unit = {}, + onCycleOperationClick: () -> Unit = {}, + onResetClick: (String) -> Unit = {}, + onResetAllClick: () -> Unit = {}, + onDoneClick: () -> Unit = {}, +) { + val nameEmptyError = stringResource(R.string.variable_name_error) + var nameError: String? by rememberSaveable { mutableStateOf(null) } + + if (state.name.isNotBlank() && nameError != null) { + nameError = null + } + + KMBottomSheet( + title = stringResource(R.string.action_set_variable), + negButtonText = stringResource(R.string.neg_cancel), + posButtonText = stringResource(R.string.pos_done), + onPosButtonClick = { + if (state.name.isBlank()) { + nameError = nameEmptyError + } else { + onDoneClick() + } + }, + sheetState = sheetState, + onDismissRequest = onDismissRequest, + ) { + VariableConfigContent( + modifier = Modifier.fillMaxWidth(), + name = state.name, + onNameChange = onNameChange, + value = state.value, + onValueChange = onValueChange, + suggestions = suggestions, + onSuggestionClick = onNameChange, + onResetClick = onResetClick, + onResetAllClick = onResetAllClick, + onCycleOperationClick = onCycleOperationClick, + nameError = nameError, + operationIcon = { + Icon( + imageVector = getOperationIcon(state.operation), + contentDescription = getOperationLabel(state.operation), + ) + }, + ) + } +} + +private fun getOperationIcon(operation: VariableOperation): ImageVector { + return when (operation) { + VariableOperation.ADD -> Icons.Rounded.Add + VariableOperation.SUBTRACT -> Icons.Rounded.Remove + VariableOperation.SET -> KeyMapperIcons.Equal + } +} + +@Composable +private fun getOperationLabel(operation: VariableOperation): String { + return when (operation) { + VariableOperation.ADD -> stringResource(R.string.variable_operation_add) + VariableOperation.SUBTRACT -> stringResource(R.string.variable_operation_subtract) + VariableOperation.SET -> stringResource(R.string.variable_operation_set) + } +} + +@OptIn(ExperimentalMaterial3Api::class) +@Preview(showSystemUi = true, device = TABLET) +@Composable +private fun SetVariableActionBottomSheetPreview() { + KeyMapperTheme { + val sheetState = SheetState( + skipPartiallyExpanded = true, + positionalThreshold = { 0f }, + velocityThreshold = { 0f }, + initialValue = SheetValue.Expanded, + ) + SetVariableActionBottomSheet( + sheetState = sheetState, + state = SetVariableActionBottomSheetState( + name = "counter", + operation = VariableOperation.ADD, + value = "1", + ), + suggestions = listOf( + VariableSuggestion("counter", 3), + VariableSuggestion("mode", 1), + VariableSuggestion("hits", 0), + ), + ) + } +} + +@OptIn(ExperimentalMaterial3Api::class) +@Preview(showSystemUi = true) +@Composable +private fun SetVariableActionBottomSheetEmptyPreview() { + KeyMapperTheme { + val sheetState = SheetState( + skipPartiallyExpanded = true, + positionalThreshold = { 0f }, + velocityThreshold = { 0f }, + initialValue = SheetValue.Expanded, + ) + SetVariableActionBottomSheet( + sheetState = sheetState, + state = SetVariableActionBottomSheetState(), + ) + } +} diff --git a/base/src/main/java/io/github/sds100/keymapper/base/actions/SetVariableActionDelegate.kt b/base/src/main/java/io/github/sds100/keymapper/base/actions/SetVariableActionDelegate.kt new file mode 100644 index 0000000000..70765d2aa2 --- /dev/null +++ b/base/src/main/java/io/github/sds100/keymapper/base/actions/SetVariableActionDelegate.kt @@ -0,0 +1,71 @@ +package io.github.sds100.keymapper.base.actions + +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.setValue +import io.github.sds100.keymapper.base.utils.ui.DialogProvider +import io.github.sds100.keymapper.base.utils.ui.ResourceProvider +import io.github.sds100.keymapper.base.variables.VariableOperation +import io.github.sds100.keymapper.base.variables.VariableSuggestion +import io.github.sds100.keymapper.base.variables.VariablesUseCase +import io.github.sds100.keymapper.base.variables.filterVariableValue +import kotlinx.coroutines.flow.Flow + +class SetVariableActionDelegate( + private val variablesUseCase: VariablesUseCase, + resourceProvider: ResourceProvider, + dialogProvider: DialogProvider, + private val onResult: (ActionData.SetVariable) -> Unit, +) : ResourceProvider by resourceProvider, + DialogProvider by dialogProvider { + + var state: SetVariableActionBottomSheetState? by mutableStateOf(null) + private set + + val suggestions: Flow> = variablesUseCase.suggestions + + fun open(oldAction: ActionData.SetVariable?) { + state = SetVariableActionBottomSheetState( + name = oldAction?.name ?: "", + operation = oldAction?.operation ?: VariableOperation.ADD, + value = oldAction?.value?.toString() ?: "1", + ) + } + + fun onDismiss() { + state = null + } + + fun onNameChange(name: String) { + state = state?.copy(name = name.trim()) + } + + fun onValueChange(value: String) { + state = state?.copy(value = value.filterVariableValue()) + } + + fun onCycleOperationClick() { + state = state?.let { it.copy(operation = it.operation.next()) } + } + + fun onResetClick(name: String) { + variablesUseCase.reset(name) + } + + fun onResetAllClick() { + variablesUseCase.resetAll() + } + + fun onDoneClick() { + val state = state ?: return + val action = ActionData.SetVariable( + name = state.name, + operation = state.operation, + value = state.value.toLongOrNull() ?: 0L, + ) + + onDismiss() + + onResult(action) + } +} diff --git a/base/src/main/java/io/github/sds100/keymapper/base/constraints/ChooseConstraintScreen.kt b/base/src/main/java/io/github/sds100/keymapper/base/constraints/ChooseConstraintScreen.kt index 8030e652c6..fec009d8af 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/constraints/ChooseConstraintScreen.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/constraints/ChooseConstraintScreen.kt @@ -71,6 +71,7 @@ fun ChooseConstraintScreen(modifier: Modifier = Modifier, viewModel: ChooseConst fun HandleConstraintBottomSheets(delegate: CreateConstraintDelegate) { TimeConstraintBottomSheet(delegate) DisplayResolutionConstraintBottomSheet(delegate) + VariableConstraintBottomSheet(delegate.variableDelegate) } @OptIn(ExperimentalMaterial3Api::class) diff --git a/base/src/main/java/io/github/sds100/keymapper/base/constraints/ChooseConstraintViewModel.kt b/base/src/main/java/io/github/sds100/keymapper/base/constraints/ChooseConstraintViewModel.kt index c61b4be89f..4c0758b27e 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/constraints/ChooseConstraintViewModel.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/constraints/ChooseConstraintViewModel.kt @@ -16,6 +16,7 @@ import io.github.sds100.keymapper.base.utils.ui.compose.ComposeIconInfo import io.github.sds100.keymapper.base.utils.ui.compose.SimpleListItemGroup import io.github.sds100.keymapper.base.utils.ui.compose.SimpleListItemModel import io.github.sds100.keymapper.base.utils.ui.showDialog +import io.github.sds100.keymapper.base.variables.VariablesUseCase import io.github.sds100.keymapper.common.utils.PhysicalOrientation import io.github.sds100.keymapper.common.utils.State import javax.inject.Inject @@ -36,6 +37,7 @@ class ChooseConstraintViewModel @Inject constructor( dialogProvider: DialogProvider, navigationProvider: NavigationProvider, resourceProvider: ResourceProvider, + variablesUseCase: VariablesUseCase, ) : ViewModel(), ResourceProvider by resourceProvider, DialogProvider by dialogProvider, @@ -60,11 +62,12 @@ class ChooseConstraintViewModel @Inject constructor( ConstraintCategory.DEVICE, ConstraintCategory.NOTIFICATIONS, ConstraintCategory.TIME, + ConstraintCategory.VARIABLES, ) } val createConstraintDelegate = - CreateConstraintDelegate(viewModelScope, useCase, this, this, this) + CreateConstraintDelegate(useCase, this, this, this, variablesUseCase) private val allGroupedListItems: List by lazy { buildListGroups(useCase) } diff --git a/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConfigConstraintsViewModel.kt b/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConfigConstraintsViewModel.kt index 59006ed34d..c56ec390b7 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConfigConstraintsViewModel.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConfigConstraintsViewModel.kt @@ -16,6 +16,7 @@ import io.github.sds100.keymapper.base.utils.navigation.navigate import io.github.sds100.keymapper.base.utils.ui.DialogProvider import io.github.sds100.keymapper.base.utils.ui.ResourceProvider import io.github.sds100.keymapper.base.utils.ui.ViewModelHelper +import io.github.sds100.keymapper.base.variables.VariablesUseCase import io.github.sds100.keymapper.common.utils.KMError import io.github.sds100.keymapper.common.utils.State import io.github.sds100.keymapper.common.utils.dataOrNull @@ -45,6 +46,7 @@ class ConfigConstraintsViewModel @Inject constructor( resourceProvider: ResourceProvider, navigationProvider: NavigationProvider, dialogProvider: DialogProvider, + variablesUseCase: VariablesUseCase, ) : ViewModel(), ResourceProvider by resourceProvider, DialogProvider by dialogProvider, @@ -53,7 +55,13 @@ class ConfigConstraintsViewModel @Inject constructor( private val uiHelper = ConstraintUiHelper(displayConstraint, resourceProvider) val createConstraintDelegate = - CreateConstraintDelegate(viewModelScope, createConstraint, this, this, this) + CreateConstraintDelegate( + createConstraint, + this, + this, + this, + variablesUseCase, + ) private var editedConstraintUid: String? = null diff --git a/base/src/main/java/io/github/sds100/keymapper/base/constraints/Constraint.kt b/base/src/main/java/io/github/sds100/keymapper/base/constraints/Constraint.kt index 23aa88983d..c41ddee49d 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/constraints/Constraint.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/constraints/Constraint.kt @@ -1,5 +1,6 @@ package io.github.sds100.keymapper.base.constraints +import io.github.sds100.keymapper.base.variables.VariableComparison import io.github.sds100.keymapper.common.utils.Orientation import io.github.sds100.keymapper.system.camera.CameraLens import io.github.sds100.keymapper.system.volume.RingerMode as SystemRingerMode @@ -201,6 +202,12 @@ sealed class ConstraintData { val startTime: LocalTime by lazy { LocalTime.of(startHour, startMinute) } val endTime: LocalTime by lazy { LocalTime.of(endHour, endMinute) } } + + @Serializable + data class Variable(val name: String, val comparison: VariableComparison, val value: Long) : + ConstraintData() { + override val id: ConstraintId = ConstraintId.VARIABLE + } } @Serializable diff --git a/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintCategory.kt b/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintCategory.kt index a41bbb6f88..5dd91f4d13 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintCategory.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintCategory.kt @@ -14,4 +14,5 @@ enum class ConstraintCategory { DEVICE, NOTIFICATIONS, TIME, + VARIABLES, } diff --git a/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintDependency.kt b/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintDependency.kt index bf2e7a88f8..a3caccb4b8 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintDependency.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintDependency.kt @@ -22,4 +22,5 @@ enum class ConstraintDependency { NOTIFICATION_PANEL_STATE, POSTED_NOTIFICATIONS, DISPLAY_RESOLUTIONS, + VARIABLES, } diff --git a/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintEntityMapper.kt b/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintEntityMapper.kt index 857de3fd2e..8527441a7e 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintEntityMapper.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintEntityMapper.kt @@ -1,5 +1,6 @@ package io.github.sds100.keymapper.base.constraints +import io.github.sds100.keymapper.base.variables.VariableComparison import io.github.sds100.keymapper.common.utils.Orientation import io.github.sds100.keymapper.common.utils.PhysicalOrientation import io.github.sds100.keymapper.common.utils.getKey @@ -250,6 +251,27 @@ object ConstraintEntityMapper { ) } + ConstraintEntity.VARIABLE -> { + val name = entity.extras.getData(ConstraintEntity.EXTRA_VARIABLE_NAME) + .valueOrNull() ?: "" + + val comparisonString = + entity.extras.getData(ConstraintEntity.EXTRA_VARIABLE_COMPARISON).valueOrNull() + + val comparison = try { + VariableComparison.valueOf(comparisonString.orEmpty()) + } catch (_: IllegalArgumentException) { + VariableComparison.EQUALS + } + + // toLongOrNull rather than toLong because a backup file can be edited by hand, + // and throwing here would happen while a key is being handled. + val value = entity.extras.getData(ConstraintEntity.EXTRA_VARIABLE_VALUE) + .valueOrNull()?.toLongOrNull() ?: 0L + + ConstraintData.Variable(name = name, comparison = comparison, value = value) + } + else -> throw Exception( "don't know how to convert constraint entity with type ${entity.type}", ) @@ -542,6 +564,20 @@ object ConstraintEntityMapper { "${constraint.data.endHour}:${constraint.data.endMinute}", ), ) + + is ConstraintData.Variable -> ConstraintEntity( + uid = constraint.uid, + type = ConstraintEntity.VARIABLE, + EntityExtra(ConstraintEntity.EXTRA_VARIABLE_NAME, constraint.data.name), + EntityExtra( + ConstraintEntity.EXTRA_VARIABLE_COMPARISON, + constraint.data.comparison.name, + ), + EntityExtra( + ConstraintEntity.EXTRA_VARIABLE_VALUE, + constraint.data.value.toString(), + ), + ) } private fun ConstraintEntity.getNotificationMatchMode(): TextMatchMode = TextMatchMode.valueOf( diff --git a/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintId.kt b/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintId.kt index d3b2014c7a..29b146754c 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintId.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintId.kt @@ -57,4 +57,6 @@ enum class ConstraintId { NOTIFICATION_POSTED, TIME, + + VARIABLE, } diff --git a/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintSnapshot.kt b/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintSnapshot.kt index 9315c4ccfc..4ca3e84d0f 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintSnapshot.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintSnapshot.kt @@ -3,6 +3,8 @@ package io.github.sds100.keymapper.base.constraints import android.media.AudioManager import android.os.Build import io.github.sds100.keymapper.base.system.accessibility.IAccessibilityService +import io.github.sds100.keymapper.base.variables.VariableComparison +import io.github.sds100.keymapper.base.variables.VariablesUseCase import io.github.sds100.keymapper.common.utils.Orientation import io.github.sds100.keymapper.common.utils.PhysicalOrientation import io.github.sds100.keymapper.common.utils.SizeKM @@ -46,6 +48,7 @@ class LazyConstraintSnapshot( private val foldableAdapter: FoldableAdapter, volumeAdapter: VolumeAdapter, notificationAdapter: NotificationAdapter, + variablesUseCase: VariablesUseCase, ) : ConstraintSnapshot { private val appInForeground: String? by lazy { accessibilityService.rootNode?.packageName } private val connectedBluetoothDevices: Set by lazy { @@ -96,6 +99,8 @@ class LazyConstraintSnapshot( notificationAdapter.activeNotifications.value } + private val variables: Map by lazy { variablesUseCase.getValues() } + private val localTime = LocalTime.now() private fun isMediaPlaying(): Boolean { @@ -231,6 +236,17 @@ class LazyConstraintSnapshot( localTime.isAfter(constraint.data.startTime) && localTime.isBefore(constraint.data.endTime) } + + is ConstraintData.Variable -> { + // A variable that has never been set counts as 0. + val currentValue = variables[constraint.data.name] ?: 0L + + when (constraint.data.comparison) { + VariableComparison.EQUALS -> currentValue == constraint.data.value + VariableComparison.GREATER_THAN -> currentValue > constraint.data.value + VariableComparison.LESS_THAN -> currentValue < constraint.data.value + } + } } return isSatisfied != constraint.isNot diff --git a/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintUiHelper.kt b/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintUiHelper.kt index f64f6b1cc8..58d0203aa0 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintUiHelper.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintUiHelper.kt @@ -6,6 +6,7 @@ import androidx.compose.material.icons.rounded.Android import io.github.sds100.keymapper.base.R import io.github.sds100.keymapper.base.utils.ui.ResourceProvider import io.github.sds100.keymapper.base.utils.ui.compose.ComposeIconInfo +import io.github.sds100.keymapper.base.variables.VariableComparison import io.github.sds100.keymapper.common.utils.Orientation import io.github.sds100.keymapper.common.utils.PhysicalOrientation import io.github.sds100.keymapper.common.utils.TimeUtils @@ -162,6 +163,32 @@ class ConstraintUiHelper( timeFormatter.format(constraint.data.endTime), ), ) + + is ConstraintData.Variable -> getVariableTitle(constraint.data, isNot = false) + } + + private fun getVariableTitle(data: ConstraintData.Variable, isNot: Boolean): String { + val stringRes = when (data.comparison) { + VariableComparison.EQUALS -> if (isNot) { + R.string.constraint_variable_not_equals + } else { + R.string.constraint_variable_equals + } + + VariableComparison.GREATER_THAN -> if (isNot) { + R.string.constraint_variable_not_greater_than + } else { + R.string.constraint_variable_greater_than + } + + VariableComparison.LESS_THAN -> if (isNot) { + R.string.constraint_variable_not_less_than + } else { + R.string.constraint_variable_less_than + } + } + + return getString(stringRes, arrayOf(data.name, data.value.toString())) } private fun getNotTitle(constraint: Constraint): String = when (constraint.data) { @@ -256,6 +283,8 @@ class ConstraintUiHelper( ), ) + is ConstraintData.Variable -> getVariableTitle(constraint.data, isNot = true) + is ConstraintData.OrientationCustom -> { val resId = when (constraint.data.orientation) { Orientation.ORIENTATION_0 -> R.string.constraint_not_orientation_0 diff --git a/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintUtils.kt b/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintUtils.kt index 076600c667..94a3e25749 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintUtils.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintUtils.kt @@ -7,6 +7,7 @@ import androidx.compose.material.icons.outlined.Battery2Bar import androidx.compose.material.icons.outlined.BatteryChargingFull import androidx.compose.material.icons.outlined.BluetoothConnected import androidx.compose.material.icons.outlined.BluetoothDisabled +import androidx.compose.material.icons.outlined.Calculate import androidx.compose.material.icons.outlined.Call import androidx.compose.material.icons.outlined.CallEnd import androidx.compose.material.icons.outlined.FlashlightOff @@ -55,6 +56,7 @@ object ConstraintUtils { ConstraintCategory.DEVICE -> R.string.constraint_cat_device ConstraintCategory.NOTIFICATIONS -> R.string.constraint_cat_notifications ConstraintCategory.TIME -> R.string.constraint_cat_time + ConstraintCategory.VARIABLES -> R.string.constraint_cat_variables } fun getCategory(constraintId: ConstraintId): ConstraintCategory = when (constraintId) { @@ -113,6 +115,7 @@ object ConstraintUtils { -> ConstraintCategory.NOTIFICATIONS ConstraintId.TIME -> ConstraintCategory.TIME + ConstraintId.VARIABLE -> ConstraintCategory.VARIABLES } fun getIcon(constraintId: ConstraintId): ComposeIconInfo = when (constraintId) { @@ -194,7 +197,8 @@ object ConstraintUtils { ConstraintId.NOTIFICATION_POSTED -> Vector(Icons.Outlined.NotificationsActive) - ConstraintId.TIME -> Vector(Icons.Outlined.Timer) + ConstraintId.TIME -> ComposeIconInfo.Vector(Icons.Outlined.Timer) + ConstraintId.VARIABLE -> ComposeIconInfo.Vector(Icons.Outlined.Calculate) } fun getNotIcon(constraintId: ConstraintId): ComposeIconInfo = when (constraintId) { @@ -314,6 +318,7 @@ object ConstraintUtils { ConstraintId.NOTIFICATION_POSTED -> R.string.constraint_notification_posted ConstraintId.TIME -> R.string.constraint_time + ConstraintId.VARIABLE -> R.string.constraint_variable } @StringRes @@ -389,6 +394,8 @@ object ConstraintUtils { is ConstraintData.NotificationPosted -> setOf(ConstraintDependency.POSTED_NOTIFICATIONS) + + is ConstraintData.Variable -> setOf(ConstraintDependency.VARIABLES) } } } @@ -405,6 +412,7 @@ fun ConstraintData.isEditable(): Boolean = when (this) { is ConstraintData.ImeChosen, is ConstraintData.NotificationPosted, is ConstraintData.Time, + is ConstraintData.Variable, -> true else -> false diff --git a/base/src/main/java/io/github/sds100/keymapper/base/constraints/CreateConstraintDelegate.kt b/base/src/main/java/io/github/sds100/keymapper/base/constraints/CreateConstraintDelegate.kt index 25784bd630..df5f64ca5d 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/constraints/CreateConstraintDelegate.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/constraints/CreateConstraintDelegate.kt @@ -11,12 +11,12 @@ import io.github.sds100.keymapper.base.utils.ui.DialogModel import io.github.sds100.keymapper.base.utils.ui.DialogProvider import io.github.sds100.keymapper.base.utils.ui.ResourceProvider import io.github.sds100.keymapper.base.utils.ui.showDialog +import io.github.sds100.keymapper.base.variables.VariablesUseCase import io.github.sds100.keymapper.common.utils.Orientation import io.github.sds100.keymapper.common.utils.PhysicalOrientation import io.github.sds100.keymapper.common.utils.SizeKM import io.github.sds100.keymapper.system.camera.CameraLens import io.github.sds100.keymapper.system.volume.RingerMode -import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.first import kotlinx.coroutines.flow.update @@ -27,11 +27,11 @@ import kotlinx.serialization.json.Json * [io.github.sds100.keymapper.base.actions.CreateActionDelegate] for actions. */ class CreateConstraintDelegate( - private val coroutineScope: CoroutineScope, private val useCase: CreateConstraintUseCase, dialogProvider: DialogProvider, navigationProvider: NavigationProvider, resourceProvider: ResourceProvider, + variablesUseCase: VariablesUseCase, ) : ResourceProvider by resourceProvider, DialogProvider by dialogProvider, NavigationProvider by navigationProvider { @@ -43,6 +43,10 @@ class CreateConstraintDelegate( var displayResolutionState: DisplayResolutionSheetState? by mutableStateOf(null) private set + val variableDelegate = VariableConstraintDelegate(variablesUseCase) { constraint -> + constraintResult.update { constraint } + } + fun onSelectDisplayResolution(resolution: SizeKM) { displayResolutionState = displayResolutionState?.copy( isCustom = false, @@ -216,6 +220,11 @@ class CreateConstraintDelegate( ) return null } + + ConstraintId.VARIABLE -> { + variableDelegate.open(oldData as? ConstraintData.Variable) + return null + } } } diff --git a/base/src/main/java/io/github/sds100/keymapper/base/constraints/DetectConstraintsUseCase.kt b/base/src/main/java/io/github/sds100/keymapper/base/constraints/DetectConstraintsUseCase.kt index 9020b731bf..e395982aee 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/constraints/DetectConstraintsUseCase.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/constraints/DetectConstraintsUseCase.kt @@ -5,6 +5,7 @@ import dagger.assisted.Assisted import dagger.assisted.AssistedFactory import dagger.assisted.AssistedInject import io.github.sds100.keymapper.base.system.accessibility.IAccessibilityService +import io.github.sds100.keymapper.base.variables.VariablesUseCase import io.github.sds100.keymapper.system.camera.CameraAdapter import io.github.sds100.keymapper.system.camera.CameraLens import io.github.sds100.keymapper.system.devices.DevicesAdapter @@ -38,6 +39,7 @@ class DetectConstraintsUseCaseImpl @AssistedInject constructor( private val foldableAdapter: FoldableAdapter, private val volumeAdapter: VolumeAdapter, private val notificationAdapter: NotificationAdapter, + private val variablesUseCase: VariablesUseCase, ) : DetectConstraintsUseCase { @AssistedFactory @@ -59,6 +61,7 @@ class DetectConstraintsUseCaseImpl @AssistedInject constructor( foldableAdapter, volumeAdapter, notificationAdapter, + variablesUseCase, ) override fun onDependencyChanged(dependency: ConstraintDependency): Flow { @@ -130,6 +133,8 @@ class DetectConstraintsUseCaseImpl @AssistedInject constructor( ConstraintDependency.DISPLAY_RESOLUTIONS -> displayAdapter.displays.map { dependency } + + ConstraintDependency.VARIABLES -> variablesUseCase.values.map { dependency } } } } diff --git a/base/src/main/java/io/github/sds100/keymapper/base/constraints/VariableConstraintBottomSheet.kt b/base/src/main/java/io/github/sds100/keymapper/base/constraints/VariableConstraintBottomSheet.kt new file mode 100644 index 0000000000..ba32d9b56f --- /dev/null +++ b/base/src/main/java/io/github/sds100/keymapper/base/constraints/VariableConstraintBottomSheet.kt @@ -0,0 +1,186 @@ +package io.github.sds100.keymapper.base.constraints + +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.rounded.ChevronLeft +import androidx.compose.material.icons.rounded.ChevronRight +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.Icon +import androidx.compose.material3.SheetState +import androidx.compose.material3.SheetValue +import androidx.compose.material3.rememberModalBottomSheetState +import androidx.compose.runtime.Composable +import androidx.compose.runtime.collectAsState +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.rememberCoroutineScope +import androidx.compose.runtime.saveable.rememberSaveable +import androidx.compose.runtime.setValue +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.tooling.preview.Devices.TABLET +import androidx.compose.ui.tooling.preview.Preview +import io.github.sds100.keymapper.base.R +import io.github.sds100.keymapper.base.compose.KeyMapperTheme +import io.github.sds100.keymapper.base.utils.ui.compose.KMBottomSheet +import io.github.sds100.keymapper.base.utils.ui.compose.icons.Equal +import io.github.sds100.keymapper.base.utils.ui.compose.icons.KeyMapperIcons +import io.github.sds100.keymapper.base.variables.VariableComparison +import io.github.sds100.keymapper.base.variables.VariableConfigContent +import io.github.sds100.keymapper.base.variables.VariableSuggestion +import kotlinx.coroutines.launch + +data class VariableConstraintSheetState( + val name: String = "", + val comparison: VariableComparison = VariableComparison.EQUALS, + val value: String = "0", +) + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +fun VariableConstraintBottomSheet(delegate: VariableConstraintDelegate) { + val scope = rememberCoroutineScope() + val sheetState = rememberModalBottomSheetState(skipPartiallyExpanded = true) + + val state = delegate.state + val suggestions by delegate.suggestions.collectAsState(emptyList()) + + if (state != null) { + VariableConstraintBottomSheet( + sheetState = sheetState, + state = state, + suggestions = suggestions, + onDismissRequest = delegate::onDismiss, + onNameChange = delegate::onNameChange, + onValueChange = delegate::onValueChange, + onCycleComparisonClick = delegate::onCycleComparisonClick, + onResetClick = delegate::onResetClick, + onResetAllClick = delegate::onResetAllClick, + onDoneClick = { + scope.launch { + sheetState.hide() + delegate.onDoneClick() + } + }, + ) + } +} + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +private fun VariableConstraintBottomSheet( + sheetState: SheetState, + state: VariableConstraintSheetState, + suggestions: List = emptyList(), + onDismissRequest: () -> Unit = {}, + onNameChange: (String) -> Unit = {}, + onValueChange: (String) -> Unit = {}, + onCycleComparisonClick: () -> Unit = {}, + onResetClick: (String) -> Unit = {}, + onResetAllClick: () -> Unit = {}, + onDoneClick: () -> Unit = {}, +) { + val nameEmptyError = stringResource(R.string.variable_name_error) + var nameError: String? by rememberSaveable { mutableStateOf(null) } + + if (state.name.isNotBlank() && nameError != null) { + nameError = null + } + + KMBottomSheet( + title = stringResource(R.string.constraint_variable), + negButtonText = stringResource(R.string.neg_cancel), + posButtonText = stringResource(R.string.pos_done), + onPosButtonClick = { + if (state.name.isBlank()) { + nameError = nameEmptyError + } else { + onDoneClick() + } + }, + sheetState = sheetState, + onDismissRequest = onDismissRequest, + ) { + VariableConfigContent( + modifier = Modifier.fillMaxWidth(), + name = state.name, + onNameChange = onNameChange, + value = state.value, + onValueChange = onValueChange, + suggestions = suggestions, + onSuggestionClick = onNameChange, + onResetClick = onResetClick, + onResetAllClick = onResetAllClick, + nameError = nameError, + onCycleOperationClick = onCycleComparisonClick, + operationIcon = { + Icon( + imageVector = getComparisonIcon(state.comparison), + contentDescription = getComparisonLabel(state.comparison), + ) + }, + ) + } +} + +private fun getComparisonIcon(comparison: VariableComparison): ImageVector { + return when (comparison) { + VariableComparison.EQUALS -> KeyMapperIcons.Equal + VariableComparison.GREATER_THAN -> Icons.Rounded.ChevronRight + VariableComparison.LESS_THAN -> Icons.Rounded.ChevronLeft + } +} + +@Composable +private fun getComparisonLabel(comparison: VariableComparison): String { + return when (comparison) { + VariableComparison.EQUALS -> stringResource(R.string.variable_comparison_equals) + VariableComparison.GREATER_THAN -> stringResource(R.string.variable_comparison_greater_than) + VariableComparison.LESS_THAN -> stringResource(R.string.variable_comparison_less_than) + } +} + +@OptIn(ExperimentalMaterial3Api::class) +@Preview(showSystemUi = true, device = TABLET) +@Composable +private fun VariableConstraintBottomSheetPreview() { + KeyMapperTheme { + val sheetState = SheetState( + skipPartiallyExpanded = true, + positionalThreshold = { 0f }, + velocityThreshold = { 0f }, + initialValue = SheetValue.Expanded, + ) + VariableConstraintBottomSheet( + sheetState = sheetState, + state = VariableConstraintSheetState( + name = "counter", + comparison = VariableComparison.GREATER_THAN, + value = "3", + ), + suggestions = listOf( + VariableSuggestion("counter", 3), + VariableSuggestion("mode", 1), + ), + ) + } +} + +@OptIn(ExperimentalMaterial3Api::class) +@Preview(showSystemUi = true) +@Composable +private fun VariableConstraintBottomSheetEmptyPreview() { + KeyMapperTheme { + val sheetState = SheetState( + skipPartiallyExpanded = true, + positionalThreshold = { 0f }, + velocityThreshold = { 0f }, + initialValue = SheetValue.Expanded, + ) + VariableConstraintBottomSheet( + sheetState = sheetState, + state = VariableConstraintSheetState(), + ) + } +} diff --git a/base/src/main/java/io/github/sds100/keymapper/base/constraints/VariableConstraintDelegate.kt b/base/src/main/java/io/github/sds100/keymapper/base/constraints/VariableConstraintDelegate.kt new file mode 100644 index 0000000000..1689f00203 --- /dev/null +++ b/base/src/main/java/io/github/sds100/keymapper/base/constraints/VariableConstraintDelegate.kt @@ -0,0 +1,61 @@ +package io.github.sds100.keymapper.base.constraints + +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.setValue +import io.github.sds100.keymapper.base.variables.VariableComparison +import io.github.sds100.keymapper.base.variables.VariablesUseCase +import io.github.sds100.keymapper.base.variables.filterVariableValue + +class VariableConstraintDelegate( + private val variablesUseCase: VariablesUseCase, + private val onResult: (ConstraintData.Variable) -> Unit, +) { + var state: VariableConstraintSheetState? by mutableStateOf(null) + private set + + val suggestions = variablesUseCase.suggestions + + fun open(oldConstraint: ConstraintData.Variable?) { + state = VariableConstraintSheetState( + name = oldConstraint?.name ?: "", + comparison = oldConstraint?.comparison ?: VariableComparison.EQUALS, + value = oldConstraint?.value?.toString() ?: "0", + ) + } + + fun onDismiss() { + state = null + } + + fun onNameChange(name: String) { + state = state?.copy(name = name.trim()) + } + + fun onValueChange(value: String) { + state = state?.copy(value = value.filterVariableValue()) + } + + fun onCycleComparisonClick() { + state = state?.let { it.copy(comparison = it.comparison.next()) } + } + + fun onResetClick(name: String) { + variablesUseCase.reset(name) + } + + fun onResetAllClick() { + variablesUseCase.resetAll() + } + + fun onDoneClick() { + val state = state ?: return + val constraint = ConstraintData.Variable( + name = state.name, + comparison = state.comparison, + value = state.value.toLongOrNull() ?: 0L, + ) + onDismiss() + onResult(constraint) + } +} diff --git a/base/src/main/java/io/github/sds100/keymapper/base/sorting/comparators/KeyMapConstraintsComparator.kt b/base/src/main/java/io/github/sds100/keymapper/base/sorting/comparators/KeyMapConstraintsComparator.kt index 2d7218b399..1ce6f49fd5 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/sorting/comparators/KeyMapConstraintsComparator.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/sorting/comparators/KeyMapConstraintsComparator.kt @@ -159,6 +159,8 @@ class KeyMapConstraintsComparator( ) ConstraintData.NotificationPanelShowing -> Success("") + + is ConstraintData.Variable -> Success(constraint.data.name) } } } diff --git a/base/src/main/java/io/github/sds100/keymapper/base/utils/ErrorUtils.kt b/base/src/main/java/io/github/sds100/keymapper/base/utils/ErrorUtils.kt index f2b599da57..44d423cccb 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/utils/ErrorUtils.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/utils/ErrorUtils.kt @@ -220,6 +220,9 @@ fun KMError.getFullMessage(resourceProvider: ResourceProvider): String { is KMError.NumberTooBig -> resourceProvider.getString(R.string.error_number_too_big, max) + is KMError.NumberOverflow -> + resourceProvider.getString(R.string.error_number_overflow) + is KMError.EmptyText -> resourceProvider.getString(R.string.error_cant_be_empty) diff --git a/base/src/main/java/io/github/sds100/keymapper/base/utils/ui/compose/icons/Equal.kt b/base/src/main/java/io/github/sds100/keymapper/base/utils/ui/compose/icons/Equal.kt new file mode 100644 index 0000000000..151fb9ccec --- /dev/null +++ b/base/src/main/java/io/github/sds100/keymapper/base/utils/ui/compose/icons/Equal.kt @@ -0,0 +1,53 @@ +package io.github.sds100.keymapper.base.utils.ui.compose.icons + +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.SolidColor +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.graphics.vector.path +import androidx.compose.ui.unit.dp + +val KeyMapperIcons.Equal: ImageVector + get() { + if (_Equal != null) { + return _Equal!! + } + _Equal = ImageVector.Builder( + name = "Equal", + defaultWidth = 24.dp, + defaultHeight = 24.dp, + viewportWidth = 960f, + viewportHeight = 960f, + ).apply { + path(fill = SolidColor(Color.Black)) { + moveTo(220f, 680f) + quadToRelative(-25f, 0f, -42.5f, -17.5f) + reflectiveQuadTo(160f, 620f) + quadToRelative(0f, -25f, 17.5f, -42.5f) + reflectiveQuadTo(220f, 560f) + horizontalLineToRelative(520f) + quadToRelative(25f, 0f, 42.5f, 17.5f) + reflectiveQuadTo(800f, 620f) + quadToRelative(0f, 25f, -17.5f, 42.5f) + reflectiveQuadTo(740f, 680f) + lineTo(220f, 680f) + close() + moveTo(220f, 400f) + quadToRelative(-25f, 0f, -42.5f, -17.5f) + reflectiveQuadTo(160f, 340f) + quadToRelative(0f, -25f, 17.5f, -42.5f) + reflectiveQuadTo(220f, 280f) + horizontalLineToRelative(520f) + quadToRelative(25f, 0f, 42.5f, 17.5f) + reflectiveQuadTo(800f, 340f) + quadToRelative(0f, 25f, -17.5f, 42.5f) + reflectiveQuadTo(740f, 400f) + lineTo(220f, 400f) + close() + } + }.build() + + return _Equal!! + } + +@Suppress("ObjectPropertyName") +private var _Equal: ImageVector? = null diff --git a/base/src/main/java/io/github/sds100/keymapper/base/variables/VariableComparison.kt b/base/src/main/java/io/github/sds100/keymapper/base/variables/VariableComparison.kt new file mode 100644 index 0000000000..2ba6a54151 --- /dev/null +++ b/base/src/main/java/io/github/sds100/keymapper/base/variables/VariableComparison.kt @@ -0,0 +1,15 @@ +package io.github.sds100.keymapper.base.variables + +import kotlinx.serialization.Serializable + +@Serializable +enum class VariableComparison { + EQUALS, + GREATER_THAN, + LESS_THAN, + ; + + fun next(): VariableComparison { + return entries[(ordinal + 1) % entries.size] + } +} diff --git a/base/src/main/java/io/github/sds100/keymapper/base/variables/VariableConfigContent.kt b/base/src/main/java/io/github/sds100/keymapper/base/variables/VariableConfigContent.kt new file mode 100644 index 0000000000..2d127e8b50 --- /dev/null +++ b/base/src/main/java/io/github/sds100/keymapper/base/variables/VariableConfigContent.kt @@ -0,0 +1,256 @@ +package io.github.sds100.keymapper.base.variables + +import androidx.compose.foundation.clickable +import androidx.compose.foundation.horizontalScroll +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.ExperimentalLayoutApi +import androidx.compose.foundation.layout.FlowRow +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.layout.widthIn +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.text.KeyboardOptions +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.rounded.Add +import androidx.compose.material.icons.rounded.RestartAlt +import androidx.compose.material3.FilledTonalIconButton +import androidx.compose.material3.Icon +import androidx.compose.material3.InputChip +import androidx.compose.material3.InputChipDefaults +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.OutlinedTextField +import androidx.compose.material3.Surface +import androidx.compose.material3.Text +import androidx.compose.material3.TextButton +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.font.FontFamily +import androidx.compose.ui.text.input.KeyboardCapitalization +import androidx.compose.ui.text.input.KeyboardType +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import io.github.sds100.keymapper.base.R +import io.github.sds100.keymapper.base.compose.KeyMapperTheme + +@OptIn(ExperimentalLayoutApi::class) +@Composable +fun VariableConfigContent( + modifier: Modifier = Modifier, + name: String, + value: String, + suggestions: List, + nameError: String? = null, + onNameChange: (String) -> Unit = {}, + onValueChange: (String) -> Unit = {}, + onSuggestionClick: (String) -> Unit = {}, + onResetClick: (String) -> Unit = {}, + onResetAllClick: () -> Unit = {}, + onCycleOperationClick: () -> Unit = {}, + operationIcon: @Composable () -> Unit, +) { + Column( + modifier = modifier, + verticalArrangement = Arrangement.spacedBy(8.dp), + ) { + Row( + modifier = Modifier + .horizontalScroll(rememberScrollState()) + .align(Alignment.CenterHorizontally), + horizontalArrangement = Arrangement.spacedBy(8.dp), + ) { + OutlinedTextField( + modifier = Modifier.widthIn(min = 128.dp), + value = name, + onValueChange = onNameChange, + label = { Text(stringResource(R.string.variable_name_label)) }, + singleLine = true, + isError = nameError != null, + supportingText = if (nameError == null) { + null + } else { + { Text(text = nameError, color = MaterialTheme.colorScheme.error) } + }, + keyboardOptions = KeyboardOptions( + keyboardType = KeyboardType.Text, + autoCorrectEnabled = false, + capitalization = KeyboardCapitalization.None, + ), + textStyle = MaterialTheme.typography.bodyLarge.copy( + fontFamily = FontFamily.Monospace, + ), + ) + + // One button that cycles through the operations rather than a row of them. + FilledTonalIconButton( + // Material text fields expose no baseline, so centre the button on the 56dp + // field's text line instead. Top alignment keeps it put when error text shows. + modifier = Modifier.padding(top = 12.dp), + onClick = onCycleOperationClick, + ) { + operationIcon() + } + + OutlinedTextField( + modifier = Modifier.widthIn(min = 96.dp), + value = value, + onValueChange = onValueChange, + label = { Text(stringResource(R.string.variable_value_label)) }, + singleLine = true, + keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number), + textStyle = MaterialTheme.typography.bodyLarge.copy( + fontFamily = FontFamily.Monospace, + ), + ) + } + + if (suggestions.isNotEmpty()) { + Row( + modifier = Modifier.fillMaxWidth(), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.SpaceBetween, + ) { + Text( + stringResource(R.string.variable_suggestions), + style = MaterialTheme.typography.titleMedium, + ) + + TextButton(onClick = onResetAllClick) { + Text(stringResource(R.string.variable_reset_all)) + } + } + + FlowRow( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.spacedBy(16.dp), + itemVerticalAlignment = Alignment.CenterVertically, + ) { + for (suggestion in suggestions) { + InputChip( + selected = suggestion.name == name, + onClick = { onSuggestionClick(suggestion.name) }, + label = { + Text( + text = stringResource( + R.string.variable_chip_label, + suggestion.name, + suggestion.value.toString(), + ), + ) + }, + trailingIcon = { + Icon( + modifier = Modifier + .size(InputChipDefaults.IconSize) + .clickable { onResetClick(suggestion.name) }, + imageVector = Icons.Rounded.RestartAlt, + contentDescription = stringResource( + R.string.variable_reset_content_description, + suggestion.name, + ), + ) + }, + ) + } + } + } + } +} + +private val previewSuggestions = listOf( + VariableSuggestion("counter", 3), + VariableSuggestion("mode", 1), + VariableSuggestion("hits", 0), +) + +@Composable +private fun Preview( + modifier: Modifier = Modifier, + name: String = "counter", + value: String = "1", + suggestions: List = previewSuggestions, + nameError: String? = null, +) { + KeyMapperTheme { + VariableConfigContent( + modifier = modifier.padding(16.dp), + name = name, + value = value, + suggestions = suggestions, + nameError = nameError, + operationIcon = { + Icon( + imageVector = Icons.Rounded.Add, + contentDescription = "Add", + ) + }, + ) + } +} + +@Preview +@Composable +private fun VariableConfigRowPreview() { + KeyMapperTheme { + Surface { + Preview(suggestions = emptyList()) + } + } +} + +@Preview +@Composable +private fun VariableConfigRowNoSuggestionsPreview() { + KeyMapperTheme { + Surface { + Preview(suggestions = emptyList()) + } + } +} + +@Preview +@Composable +private fun VariableConfigRowEmptyPreview() { + KeyMapperTheme { + Surface { + Preview(name = "", value = "", suggestions = emptyList()) + } + } +} + +@Preview +@Composable +private fun VariableConfigRowErrorPreview() { + KeyMapperTheme { + Surface { + Preview(name = "1counter", nameError = "Invalid variable name") + } + } +} + +@Preview +@Composable +private fun VariableConfigRowTrailingPreview() { + KeyMapperTheme { + Surface { + Preview(suggestions = emptyList()) + } + } +} + +@Preview +@Composable +private fun VariableConfigRowNarrowPreview() { + KeyMapperTheme { + Surface { + Preview( + modifier = Modifier.width(320.dp), + ) + } + } +} diff --git a/base/src/main/java/io/github/sds100/keymapper/base/variables/VariableOperation.kt b/base/src/main/java/io/github/sds100/keymapper/base/variables/VariableOperation.kt new file mode 100644 index 0000000000..6ac23632b7 --- /dev/null +++ b/base/src/main/java/io/github/sds100/keymapper/base/variables/VariableOperation.kt @@ -0,0 +1,15 @@ +package io.github.sds100.keymapper.base.variables + +import kotlinx.serialization.Serializable + +@Serializable +enum class VariableOperation { + ADD, + SUBTRACT, + SET, + ; + + fun next(): VariableOperation { + return entries[(ordinal + 1) % entries.size] + } +} diff --git a/base/src/main/java/io/github/sds100/keymapper/base/variables/VariableSuggestion.kt b/base/src/main/java/io/github/sds100/keymapper/base/variables/VariableSuggestion.kt new file mode 100644 index 0000000000..096ddfda0d --- /dev/null +++ b/base/src/main/java/io/github/sds100/keymapper/base/variables/VariableSuggestion.kt @@ -0,0 +1,3 @@ +package io.github.sds100.keymapper.base.variables + +data class VariableSuggestion(val name: String, val value: Long) diff --git a/base/src/main/java/io/github/sds100/keymapper/base/variables/VariableValueFilter.kt b/base/src/main/java/io/github/sds100/keymapper/base/variables/VariableValueFilter.kt new file mode 100644 index 0000000000..bd80301fa8 --- /dev/null +++ b/base/src/main/java/io/github/sds100/keymapper/base/variables/VariableValueFilter.kt @@ -0,0 +1,15 @@ +package io.github.sds100.keymapper.base.variables + +/** + * Only a minus sign at the start and digits make sense, and filtering as it is typed avoids + * having to show an error for anything else. + */ +fun String.filterVariableValue(): String { + val digits = filter(Char::isDigit) + + return if (startsWith('-')) { + "-$digits" + } else { + digits + } +} diff --git a/base/src/main/java/io/github/sds100/keymapper/base/variables/VariablesUseCase.kt b/base/src/main/java/io/github/sds100/keymapper/base/variables/VariablesUseCase.kt new file mode 100644 index 0000000000..72a9a1e10e --- /dev/null +++ b/base/src/main/java/io/github/sds100/keymapper/base/variables/VariablesUseCase.kt @@ -0,0 +1,143 @@ +package io.github.sds100.keymapper.base.variables + +import io.github.sds100.keymapper.base.actions.ActionData +import io.github.sds100.keymapper.base.actions.ActionDataEntityMapper +import io.github.sds100.keymapper.base.constraints.ConstraintData +import io.github.sds100.keymapper.base.constraints.ConstraintEntityMapper +import io.github.sds100.keymapper.base.keymaps.ConfigKeyMapState +import io.github.sds100.keymapper.common.utils.KMError +import io.github.sds100.keymapper.common.utils.KMResult +import io.github.sds100.keymapper.common.utils.Success +import io.github.sds100.keymapper.common.utils.dataOrNull +import io.github.sds100.keymapper.data.repositories.KeyMapRepository +import io.github.sds100.keymapper.data.repositories.VariableRepository +import javax.inject.Inject +import javax.inject.Singleton +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.combine +import kotlinx.coroutines.flow.flowOn +import kotlinx.coroutines.flow.map + +interface VariablesUseCase { + /** + * The variables that any key map already refers to, so that the user can pick one instead of + * typing the name again. Nothing extra is persisted to build this. + */ + val suggestions: Flow> + + /** + * Only for observing when a variable changes. Use [getValues] to read them. + */ + val values: Flow> + + fun getValues(): Map + + /** + * Reads the variable, does the operation, then stores the result. A variable that has never + * been set counts as 0. + */ + fun apply(name: String, operation: VariableOperation, value: Long): KMResult + + fun reset(name: String) + fun resetAll() +} + +@Singleton +class VariablesUseCaseImpl @Inject constructor( + private val keyMapRepository: KeyMapRepository, + private val variableRepository: VariableRepository, + private val configKeyMapState: ConfigKeyMapState, +) : VariablesUseCase { + + override val values: Flow> = variableRepository.values + + override val suggestions: Flow> = + combine( + namesInKeyMaps(), + namesInConfiguredKeyMap(), + variableRepository.values, + ) { savedNames, configuredNames, values -> + savedNames.plus(configuredNames) + .distinct() + .sorted() + .map { name -> VariableSuggestion(name, values[name] ?: 0L) } + }.flowOn(Dispatchers.IO) + + override fun getValues(): Map { + return variableRepository.values.value + } + + override fun apply(name: String, operation: VariableOperation, value: Long): KMResult { + val current = variableRepository.values.value[name] ?: 0L + + val newValue = try { + when (operation) { + // Adding and subtracting overflow silently so they must be done with the + // methods that throw instead. + VariableOperation.ADD -> Math.addExact(current, value) + + VariableOperation.SUBTRACT -> Math.subtractExact(current, value) + + VariableOperation.SET -> value + } + } catch (e: ArithmeticException) { + return KMError.NumberOverflow + } + + variableRepository.set(name, newValue) + + return Success(newValue) + } + + override fun reset(name: String) { + variableRepository.delete(name) + } + + override fun resetAll() { + variableRepository.deleteAll() + } + + /** + * The key map being configured may not have been saved yet so it isn't in the repository. + */ + private fun namesInConfiguredKeyMap(): Flow> { + return configKeyMapState.keyMap.map { state -> + val keyMap = state.dataOrNull() ?: return@map emptyList() + + val actionNames = keyMap.actionList + .map { it.data } + .filterIsInstance() + .map { it.name } + + val constraintNames = keyMap.constraintState.allConstraints + .map { it.data } + .filterIsInstance() + .map { it.name } + + actionNames.plus(constraintNames) + } + } + + private fun namesInKeyMaps(): Flow> { + return keyMapRepository.getAll().map { keyMapList -> + keyMapList + .flatMap { keyMap -> + val actionNames = keyMap.actionList + .filterNotNull() + .mapNotNull { ActionDataEntityMapper.fromEntity(it) } + .filterIsInstance() + .map { it.name } + + val constraintNames = keyMap.constraintList + .map { ConstraintEntityMapper.fromEntity(it).data } + .filterIsInstance() + .map { it.name } + + actionNames.plus(constraintNames) + } + .distinct() + .sorted() + } + } +} diff --git a/base/src/main/res/values/strings.xml b/base/src/main/res/values/strings.xml index d728c9cd51..854626ac63 100644 --- a/base/src/main/res/values/strings.xml +++ b/base/src/main/res/values/strings.xml @@ -956,6 +956,7 @@ Invalid number! Must be at least %s! Must be at most %s! + The variable is too big or too small to store! Battery optimization is turned on! Turn this off because this can randomly stop Key Mapper from working. Denied notification access permission! Invalid! @@ -1374,6 +1375,35 @@ Modify setting TalkBack gesture TalkBack: %s + + + Variables + Variables + Set variable + Add %2$s to %1$s + Subtract %2$s from %1$s + Set %1$s to %2$s + Variable + %1$s is %2$s + %1$s is not %2$s + %1$s is greater than %2$s + %1$s is not greater than %2$s + %1$s is less than %2$s + %1$s is not less than %2$s + Name + Value + %1$s = %2$s + Reset %1$s + Current variables + Reset all values + Enter a name! + Add + Subtract + Set + Is + Greater than + Less than + Apply to the variable now Choose TalkBack gesture %1$s (%2$s) 1-finger gestures diff --git a/base/src/test/java/io/github/sds100/keymapper/base/actions/ActionDataEntityMapperTest.kt b/base/src/test/java/io/github/sds100/keymapper/base/actions/ActionDataEntityMapperTest.kt index 93e6827fde..26b57ecf90 100644 --- a/base/src/test/java/io/github/sds100/keymapper/base/actions/ActionDataEntityMapperTest.kt +++ b/base/src/test/java/io/github/sds100/keymapper/base/actions/ActionDataEntityMapperTest.kt @@ -1,5 +1,6 @@ package io.github.sds100.keymapper.base.actions +import io.github.sds100.keymapper.base.variables.VariableOperation import io.github.sds100.keymapper.common.utils.PinchScreenType import io.github.sds100.keymapper.common.utils.SizeKM import io.github.sds100.keymapper.common.utils.valueOrNull @@ -11,11 +12,56 @@ import org.hamcrest.Matchers.`is` import org.hamcrest.Matchers.nullValue import org.junit.Test -/** - * Tests for saving the screen resolution with the coordinate actions in issue #2217. - */ class ActionDataEntityMapperTest { + @Test + fun `set variable action round trips through the entity`() { + val action = ActionData.SetVariable( + name = "counter", + operation = VariableOperation.SUBTRACT, + value = -12, + ) + + val entity = ActionDataEntityMapper.toEntity(action) + + assertThat( + entity.extras.getData(ActionEntity.EXTRA_VARIABLE_NAME).valueOrNull(), + `is`("counter"), + ) + assertThat(ActionDataEntityMapper.fromEntity(entity), `is`(action)) + } + + @Test + fun `set variable action with a value that is not a number is dropped`() { + // A backup file can be edited by hand + val entity = ActionEntity( + type = ActionEntity.Type.SET_VARIABLE, + data = "", + extras = listOf( + EntityExtra(ActionEntity.EXTRA_VARIABLE_NAME, "counter"), + EntityExtra(ActionEntity.EXTRA_VARIABLE_OPERATION, "ADD"), + EntityExtra(ActionEntity.EXTRA_VARIABLE_VALUE, "not a number"), + ), + ) + + assertThat(ActionDataEntityMapper.fromEntity(entity), `is`(nullValue())) + } + + @Test + fun `set variable action with an unknown operation is dropped`() { + val entity = ActionEntity( + type = ActionEntity.Type.SET_VARIABLE, + data = "", + extras = listOf( + EntityExtra(ActionEntity.EXTRA_VARIABLE_NAME, "counter"), + EntityExtra(ActionEntity.EXTRA_VARIABLE_OPERATION, "MULTIPLY"), + EntityExtra(ActionEntity.EXTRA_VARIABLE_VALUE, "2"), + ), + ) + + assertThat(ActionDataEntityMapper.fromEntity(entity), `is`(nullValue())) + } + @Test fun `open app action with no app name extra is loaded with a null saved app name`() { val entity = ActionEntity( diff --git a/base/src/test/java/io/github/sds100/keymapper/base/actions/PerformActionsUseCaseTest.kt b/base/src/test/java/io/github/sds100/keymapper/base/actions/PerformActionsUseCaseTest.kt index 35531f1687..867f126b5e 100644 --- a/base/src/test/java/io/github/sds100/keymapper/base/actions/PerformActionsUseCaseTest.kt +++ b/base/src/test/java/io/github/sds100/keymapper/base/actions/PerformActionsUseCaseTest.kt @@ -94,6 +94,7 @@ class PerformActionsUseCaseTest { notificationAdapter = mock(), settingsAdapter = mock(), vibratorAdapter = mock(), + variablesUseCase = mock(), ) } diff --git a/base/src/test/java/io/github/sds100/keymapper/base/constraints/ConstraintEntityMapperTest.kt b/base/src/test/java/io/github/sds100/keymapper/base/constraints/ConstraintEntityMapperTest.kt index b3fdbad8ac..d054faf441 100644 --- a/base/src/test/java/io/github/sds100/keymapper/base/constraints/ConstraintEntityMapperTest.kt +++ b/base/src/test/java/io/github/sds100/keymapper/base/constraints/ConstraintEntityMapperTest.kt @@ -1,5 +1,6 @@ package io.github.sds100.keymapper.base.constraints +import io.github.sds100.keymapper.base.variables.VariableComparison import io.github.sds100.keymapper.common.utils.valueOrNull import io.github.sds100.keymapper.data.entities.ConstraintEntity import io.github.sds100.keymapper.data.entities.EntityExtra @@ -348,6 +349,53 @@ class ConstraintEntityMapperTest { assertThat(ConstraintEntityMapper.fromEntity(entity), `is`(constraint)) } + @Test + fun `variable constraint round trips through the entity`() { + val constraint = Constraint( + uid = UID, + data = ConstraintData.Variable( + name = "counter", + comparison = VariableComparison.GREATER_THAN, + value = -5, + ), + ) + + val entity = ConstraintEntityMapper.toEntity(constraint) + + assertThat( + entity.extras.getData(ConstraintEntity.EXTRA_VARIABLE_NAME).valueOrNull(), + `is`("counter"), + ) + assertThat(ConstraintEntityMapper.fromEntity(entity), `is`(constraint)) + } + + @Test + fun `variable constraint with a value that is not a number falls back to zero`() { + // A backup file can be edited by hand, and throwing while a key is being handled would + // take down the accessibility service. + val entity = ConstraintEntity( + uid = UID, + type = ConstraintEntity.VARIABLE, + EntityExtra(ConstraintEntity.EXTRA_VARIABLE_NAME, "counter"), + EntityExtra(ConstraintEntity.EXTRA_VARIABLE_COMPARISON, "GREATER_THAN"), + EntityExtra(ConstraintEntity.EXTRA_VARIABLE_VALUE, "not a number"), + ) + + assertThat( + ConstraintEntityMapper.fromEntity(entity), + `is`( + Constraint( + uid = UID, + data = ConstraintData.Variable( + name = "counter", + comparison = VariableComparison.GREATER_THAN, + value = 0, + ), + ), + ), + ) + } + private fun assertMigratedToNot(entity: ConstraintEntity, expectedData: ConstraintData) { assertThat( ConstraintEntityMapper.fromEntity(entity), diff --git a/base/src/test/java/io/github/sds100/keymapper/base/utils/TestConstraintSnapshot.kt b/base/src/test/java/io/github/sds100/keymapper/base/utils/TestConstraintSnapshot.kt index 7a01439985..fd86fa73e7 100644 --- a/base/src/test/java/io/github/sds100/keymapper/base/utils/TestConstraintSnapshot.kt +++ b/base/src/test/java/io/github/sds100/keymapper/base/utils/TestConstraintSnapshot.kt @@ -4,6 +4,7 @@ import io.github.sds100.keymapper.base.constraints.Constraint import io.github.sds100.keymapper.base.constraints.ConstraintData import io.github.sds100.keymapper.base.constraints.ConstraintSnapshot import io.github.sds100.keymapper.base.constraints.NotificationConstraintMatcher +import io.github.sds100.keymapper.base.variables.VariableComparison import io.github.sds100.keymapper.common.utils.Orientation import io.github.sds100.keymapper.common.utils.PhysicalOrientation import io.github.sds100.keymapper.common.utils.SizeKM @@ -41,6 +42,7 @@ class TestConstraintSnapshot( val isNotificationPanelShowing: Boolean = false, val displaySize: SizeKM = SizeKM(1080, 1920), val postedNotifications: List = emptyList(), + val variables: Map = emptyMap(), ) : ConstraintSnapshot { override fun isSatisfied(constraint: Constraint): Boolean { @@ -137,6 +139,16 @@ class TestConstraintSnapshot( hingeState is HingeState.Available && hingeState.isOpen() ConstraintData.NotificationPanelShowing -> isNotificationPanelShowing + + is ConstraintData.Variable -> { + val currentValue = variables[data.name] ?: 0L + + when (data.comparison) { + VariableComparison.EQUALS -> currentValue == data.value + VariableComparison.GREATER_THAN -> currentValue > data.value + VariableComparison.LESS_THAN -> currentValue < data.value + } + } } != constraint.isNot if (isSatisfied) { diff --git a/base/src/test/java/io/github/sds100/keymapper/base/variables/VariablesUseCaseTest.kt b/base/src/test/java/io/github/sds100/keymapper/base/variables/VariablesUseCaseTest.kt new file mode 100644 index 0000000000..e897a35aa3 --- /dev/null +++ b/base/src/test/java/io/github/sds100/keymapper/base/variables/VariablesUseCaseTest.kt @@ -0,0 +1,226 @@ +package io.github.sds100.keymapper.base.variables + +import io.github.sds100.keymapper.base.actions.Action +import io.github.sds100.keymapper.base.actions.ActionData +import io.github.sds100.keymapper.base.actions.ActionDataEntityMapper +import io.github.sds100.keymapper.base.constraints.Constraint +import io.github.sds100.keymapper.base.constraints.ConstraintData +import io.github.sds100.keymapper.base.constraints.ConstraintEntityMapper +import io.github.sds100.keymapper.base.constraints.ConstraintGroup +import io.github.sds100.keymapper.base.constraints.ConstraintState +import io.github.sds100.keymapper.base.keymaps.ConfigKeyMapState +import io.github.sds100.keymapper.base.keymaps.KeyMap +import io.github.sds100.keymapper.common.utils.KMError +import io.github.sds100.keymapper.common.utils.State +import io.github.sds100.keymapper.common.utils.Success +import io.github.sds100.keymapper.common.utils.valueOrNull +import io.github.sds100.keymapper.data.entities.KeyMapEntity +import io.github.sds100.keymapper.data.repositories.KeyMapRepository +import io.github.sds100.keymapper.data.repositories.VariableRepository +import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.first +import kotlinx.coroutines.test.runTest +import org.hamcrest.MatcherAssert.assertThat +import org.hamcrest.Matchers.`is` +import org.hamcrest.Matchers.nullValue +import org.junit.Before +import org.junit.Test +import org.mockito.kotlin.doReturn +import org.mockito.kotlin.mock + +class VariablesUseCaseTest { + + private lateinit var variableRepository: FakeVariableRepository + private lateinit var keyMapRepository: FakeKeyMapRepository + private lateinit var configKeyMap: MutableStateFlow> + private lateinit var useCase: VariablesUseCase + + @Before + fun init() { + variableRepository = FakeVariableRepository() + keyMapRepository = FakeKeyMapRepository() + configKeyMap = MutableStateFlow(State.Loading) + val configKeyMapState = mock { + on { keyMap } doReturn configKeyMap + } + useCase = VariablesUseCaseImpl(keyMapRepository, variableRepository, configKeyMapState) + } + + @Test + fun `suggestions include variables in the key map being configured before it is saved`() = + runTest { + configKeyMap.value = State.Data( + KeyMap( + actionList = listOf(Action(data = setVariable("counter"))), + constraintState = ConstraintState( + groups = listOf( + ConstraintGroup( + constraints = listOf(Constraint(data = variableConstraint("mode"))), + ), + ), + ), + ), + ) + + assertThat( + useCase.suggestions.first(), + `is`(listOf(VariableSuggestion("counter", 0), VariableSuggestion("mode", 0))), + ) + } + + @Test + fun `a variable that has never been set counts as zero`() { + assertThat(useCase.apply("counter", VariableOperation.ADD, 1).valueOrNull(), `is`(1L)) + } + + @Test + fun `adding and subtracting change the stored value`() { + useCase.apply("counter", VariableOperation.SET, 10) + useCase.apply("counter", VariableOperation.ADD, 5) + useCase.apply("counter", VariableOperation.SUBTRACT, 3) + + assertThat(useCase.getValues()["counter"], `is`(12L)) + } + + @Test + fun `setting replaces the value rather than combining with it`() { + useCase.apply("mode", VariableOperation.SET, 7) + useCase.apply("mode", VariableOperation.SET, 2) + + assertThat(useCase.getValues()["mode"], `is`(2L)) + } + + @Test + fun `adding past the maximum is an error and leaves the value alone`() { + useCase.apply("counter", VariableOperation.SET, Long.MAX_VALUE) + + val result = useCase.apply("counter", VariableOperation.ADD, 1) + + assertThat(result, `is`(KMError.NumberOverflow)) + assertThat(useCase.getValues()["counter"], `is`(Long.MAX_VALUE)) + } + + @Test + fun `subtracting past the minimum is an error and leaves the value alone`() { + useCase.apply("counter", VariableOperation.SET, Long.MIN_VALUE) + + val result = useCase.apply("counter", VariableOperation.SUBTRACT, 1) + + assertThat(result, `is`(KMError.NumberOverflow)) + assertThat(useCase.getValues()["counter"], `is`(Long.MIN_VALUE)) + } + + @Test + fun `resetting a variable makes it read as zero again`() { + useCase.apply("counter", VariableOperation.SET, 9) + + useCase.reset("counter") + + assertThat(useCase.getValues()["counter"], `is`(nullValue())) + assertThat(useCase.apply("counter", VariableOperation.ADD, 1), `is`(Success(1L))) + } + + @Test + fun `resetting everything clears a variable that no key map refers to`() { + useCase.apply("orphan", VariableOperation.SET, 5) + + useCase.resetAll() + + assertThat(useCase.getValues().isEmpty(), `is`(true)) + } + + @Test + fun `suggestions include names from both actions and constraints`() = runTest { + keyMapRepository.keyMaps.value = listOf( + keyMapEntity(actions = listOf(setVariable("counter"))), + keyMapEntity(constraints = listOf(variableConstraint("mode"))), + ) + + useCase.apply("counter", VariableOperation.SET, 3) + + assertThat( + useCase.suggestions.first(), + `is`(listOf(VariableSuggestion("counter", 3), VariableSuggestion("mode", 0))), + ) + } + + @Test + fun `a variable no key map refers to is not suggested but is still stored`() = runTest { + useCase.apply("orphan", VariableOperation.SET, 5) + + assertThat(useCase.suggestions.first().isEmpty(), `is`(true)) + assertThat(useCase.getValues()["orphan"], `is`(5L)) + } + + @Test + fun `the same name used by many key maps is only suggested once`() = runTest { + keyMapRepository.keyMaps.value = listOf( + keyMapEntity(actions = listOf(setVariable("counter"))), + keyMapEntity(actions = listOf(setVariable("counter"))), + ) + + assertThat(useCase.suggestions.first().size, `is`(1)) + } + + private fun setVariable(name: String): ActionData { + return ActionData.SetVariable(name, VariableOperation.ADD, 1) + } + + private fun variableConstraint(name: String): ConstraintData { + return ConstraintData.Variable(name, VariableComparison.EQUALS, 2) + } + + private fun keyMapEntity( + actions: List = emptyList(), + constraints: List = emptyList(), + ): KeyMapEntity { + return KeyMapEntity( + id = 0, + actionList = actions.map { ActionDataEntityMapper.toEntity(it) }, + constraintList = constraints.map { + ConstraintEntityMapper.toEntity(Constraint(data = it)) + }, + ) + } +} + +private class FakeVariableRepository : VariableRepository { + override val values = MutableStateFlow>(emptyMap()) + + override fun set(name: String, value: Long) { + values.value = values.value.plus(name to value) + } + + override fun delete(name: String) { + values.value = values.value.minus(name) + } + + override fun deleteAll() { + values.value = emptyMap() + } +} + +private class FakeKeyMapRepository : KeyMapRepository { + val keyMaps = MutableStateFlow>(emptyList()) + + override val keyMapList: Flow>> + get() = throw NotImplementedError() + + override fun getAll(): Flow> = keyMaps + override fun getByGroup(groupUid: String?): Flow> = keyMaps + override fun insert(vararg keyMap: KeyMapEntity) = Unit + override fun update(vararg keyMap: KeyMapEntity) = Unit + override suspend fun get(uid: String): KeyMapEntity? = null + override fun delete(vararg uid: String) = Unit + override suspend fun deleteAll() = Unit + override fun count(): Flow = throw NotImplementedError() + override fun duplicate(vararg uid: String) = Unit + override fun enableById(vararg uid: String) = Unit + override fun disableById(vararg uid: String) = Unit + override fun enableByGroup(groupUid: String?) = Unit + override fun disableByGroup(groupUid: String?) = Unit + override fun toggleByGroup(groupUid: String?) = Unit + override fun toggleById(vararg uid: String) = Unit + override fun moveToGroup(groupUid: String?, vararg uid: String) = Unit +} diff --git a/common/src/main/java/io/github/sds100/keymapper/common/utils/KMResult.kt b/common/src/main/java/io/github/sds100/keymapper/common/utils/KMResult.kt index f0759b76b6..ad2e8503c5 100644 --- a/common/src/main/java/io/github/sds100/keymapper/common/utils/KMResult.kt +++ b/common/src/main/java/io/github/sds100/keymapper/common/utils/KMResult.kt @@ -24,6 +24,11 @@ abstract class KMError : KMResult() { data object InvalidNumber : KMError() data class NumberTooBig(val max: Int) : KMError() data class NumberTooSmall(val min: Int) : KMError() + + /** + * A variable went outside the range of a signed Long. + */ + data object NumberOverflow : KMError() data object EmptyText : KMError() data object NoIncompatibleKeyboardsInstalled : KMError() data object NoMediaSessions : KMError() diff --git a/data/schemas/io.github.sds100.keymapper.data.db.AppDatabase/25.json b/data/schemas/io.github.sds100.keymapper.data.db.AppDatabase/25.json new file mode 100644 index 0000000000..a4d69927ea --- /dev/null +++ b/data/schemas/io.github.sds100.keymapper.data.db.AppDatabase/25.json @@ -0,0 +1,511 @@ +{ + "formatVersion": 1, + "database": { + "version": 25, + "identityHash": "52113a3206ef41cad91f5201d3fab2d7", + "entities": [ + { + "tableName": "keymaps", + "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `trigger` TEXT NOT NULL, `action_list` TEXT NOT NULL, `constraint_list` TEXT NOT NULL, `constraint_mode` INTEGER NOT NULL, `constraint_groups` TEXT NOT NULL DEFAULT '[]', `flags` INTEGER NOT NULL, `is_enabled` INTEGER NOT NULL, `uid` TEXT NOT NULL, `group_uid` TEXT, `name` TEXT, FOREIGN KEY(`group_uid`) REFERENCES `groups`(`uid`) ON UPDATE NO ACTION ON DELETE CASCADE )", + "fields": [ + { + "fieldPath": "id", + "columnName": "id", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "trigger", + "columnName": "trigger", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "actionList", + "columnName": "action_list", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "constraintList", + "columnName": "constraint_list", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "constraintMode", + "columnName": "constraint_mode", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "constraintGroups", + "columnName": "constraint_groups", + "affinity": "TEXT", + "notNull": true, + "defaultValue": "'[]'" + }, + { + "fieldPath": "flags", + "columnName": "flags", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "isEnabled", + "columnName": "is_enabled", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "uid", + "columnName": "uid", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "groupUid", + "columnName": "group_uid", + "affinity": "TEXT" + }, + { + "fieldPath": "name", + "columnName": "name", + "affinity": "TEXT" + } + ], + "primaryKey": { + "autoGenerate": true, + "columnNames": [ + "id" + ] + }, + "indices": [ + { + "name": "index_keymaps_uid", + "unique": true, + "columnNames": [ + "uid" + ], + "orders": [], + "createSql": "CREATE UNIQUE INDEX IF NOT EXISTS `index_keymaps_uid` ON `${TABLE_NAME}` (`uid`)" + } + ], + "foreignKeys": [ + { + "table": "groups", + "onDelete": "CASCADE", + "onUpdate": "NO ACTION", + "columns": [ + "group_uid" + ], + "referencedColumns": [ + "uid" + ] + } + ] + }, + { + "tableName": "fingerprintmaps", + "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER NOT NULL, `action_list` TEXT NOT NULL, `constraint_list` TEXT NOT NULL, `constraint_mode` INTEGER NOT NULL, `extras` TEXT NOT NULL, `flags` INTEGER NOT NULL, `is_enabled` INTEGER NOT NULL, PRIMARY KEY(`id`))", + "fields": [ + { + "fieldPath": "id", + "columnName": "id", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "actionList", + "columnName": "action_list", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "constraintList", + "columnName": "constraint_list", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "constraintMode", + "columnName": "constraint_mode", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "extras", + "columnName": "extras", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "flags", + "columnName": "flags", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "isEnabled", + "columnName": "is_enabled", + "affinity": "INTEGER", + "notNull": true + } + ], + "primaryKey": { + "autoGenerate": false, + "columnNames": [ + "id" + ] + } + }, + { + "tableName": "log", + "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `time` INTEGER NOT NULL, `severity` INTEGER NOT NULL, `message` TEXT NOT NULL)", + "fields": [ + { + "fieldPath": "id", + "columnName": "id", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "time", + "columnName": "time", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "severity", + "columnName": "severity", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "message", + "columnName": "message", + "affinity": "TEXT", + "notNull": true + } + ], + "primaryKey": { + "autoGenerate": true, + "columnNames": [ + "id" + ] + } + }, + { + "tableName": "floating_layouts", + "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`uid` TEXT NOT NULL, `name` TEXT NOT NULL, PRIMARY KEY(`uid`))", + "fields": [ + { + "fieldPath": "uid", + "columnName": "uid", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "name", + "columnName": "name", + "affinity": "TEXT", + "notNull": true + } + ], + "primaryKey": { + "autoGenerate": false, + "columnNames": [ + "uid" + ] + }, + "indices": [ + { + "name": "index_floating_layouts_name", + "unique": true, + "columnNames": [ + "name" + ], + "orders": [], + "createSql": "CREATE UNIQUE INDEX IF NOT EXISTS `index_floating_layouts_name` ON `${TABLE_NAME}` (`name`)" + } + ] + }, + { + "tableName": "floating_buttons", + "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`uid` TEXT NOT NULL, `layout_uid` TEXT NOT NULL, `text` TEXT NOT NULL, `button_size` INTEGER NOT NULL, `x` INTEGER NOT NULL, `y` INTEGER NOT NULL, `orientation` TEXT NOT NULL, `display_width` INTEGER NOT NULL, `display_height` INTEGER NOT NULL, `border_opacity` REAL, `background_opacity` REAL, `show_over_status_bar` INTEGER, `show_over_input_method` INTEGER, `position_locked` INTEGER, PRIMARY KEY(`uid`), FOREIGN KEY(`layout_uid`) REFERENCES `floating_layouts`(`uid`) ON UPDATE NO ACTION ON DELETE CASCADE )", + "fields": [ + { + "fieldPath": "uid", + "columnName": "uid", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "layoutUid", + "columnName": "layout_uid", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "text", + "columnName": "text", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "buttonSize", + "columnName": "button_size", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "x", + "columnName": "x", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "y", + "columnName": "y", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "orientation", + "columnName": "orientation", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "displayWidth", + "columnName": "display_width", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "displayHeight", + "columnName": "display_height", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "borderOpacity", + "columnName": "border_opacity", + "affinity": "REAL" + }, + { + "fieldPath": "backgroundOpacity", + "columnName": "background_opacity", + "affinity": "REAL" + }, + { + "fieldPath": "showOverStatusBar", + "columnName": "show_over_status_bar", + "affinity": "INTEGER" + }, + { + "fieldPath": "showOverInputMethod", + "columnName": "show_over_input_method", + "affinity": "INTEGER" + }, + { + "fieldPath": "isPositionLocked", + "columnName": "position_locked", + "affinity": "INTEGER" + } + ], + "primaryKey": { + "autoGenerate": false, + "columnNames": [ + "uid" + ] + }, + "indices": [ + { + "name": "index_floating_buttons_layout_uid", + "unique": false, + "columnNames": [ + "layout_uid" + ], + "orders": [], + "createSql": "CREATE INDEX IF NOT EXISTS `index_floating_buttons_layout_uid` ON `${TABLE_NAME}` (`layout_uid`)" + } + ], + "foreignKeys": [ + { + "table": "floating_layouts", + "onDelete": "CASCADE", + "onUpdate": "NO ACTION", + "columns": [ + "layout_uid" + ], + "referencedColumns": [ + "uid" + ] + } + ] + }, + { + "tableName": "groups", + "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`uid` TEXT NOT NULL, `name` TEXT NOT NULL, `constraints` TEXT NOT NULL, `constraint_mode` INTEGER NOT NULL, `parent_uid` TEXT, `last_opened_date` INTEGER, PRIMARY KEY(`uid`), FOREIGN KEY(`parent_uid`) REFERENCES `groups`(`uid`) ON UPDATE NO ACTION ON DELETE CASCADE )", + "fields": [ + { + "fieldPath": "uid", + "columnName": "uid", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "name", + "columnName": "name", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "constraintList", + "columnName": "constraints", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "constraintMode", + "columnName": "constraint_mode", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "parentUid", + "columnName": "parent_uid", + "affinity": "TEXT" + }, + { + "fieldPath": "lastOpenedDate", + "columnName": "last_opened_date", + "affinity": "INTEGER" + } + ], + "primaryKey": { + "autoGenerate": false, + "columnNames": [ + "uid" + ] + }, + "foreignKeys": [ + { + "table": "groups", + "onDelete": "CASCADE", + "onUpdate": "NO ACTION", + "columns": [ + "parent_uid" + ], + "referencedColumns": [ + "uid" + ] + } + ] + }, + { + "tableName": "accessibility_nodes", + "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `package_name` TEXT NOT NULL, `text` TEXT, `content_description` TEXT, `class_name` TEXT, `view_resource_id` TEXT, `unique_id` TEXT, `actions` INTEGER NOT NULL, `interacted` INTEGER NOT NULL DEFAULT false, `tooltip` TEXT DEFAULT NULL, `hint` TEXT DEFAULT NULL)", + "fields": [ + { + "fieldPath": "id", + "columnName": "id", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "packageName", + "columnName": "package_name", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "text", + "columnName": "text", + "affinity": "TEXT" + }, + { + "fieldPath": "contentDescription", + "columnName": "content_description", + "affinity": "TEXT" + }, + { + "fieldPath": "className", + "columnName": "class_name", + "affinity": "TEXT" + }, + { + "fieldPath": "viewResourceId", + "columnName": "view_resource_id", + "affinity": "TEXT" + }, + { + "fieldPath": "uniqueId", + "columnName": "unique_id", + "affinity": "TEXT" + }, + { + "fieldPath": "actions", + "columnName": "actions", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "interacted", + "columnName": "interacted", + "affinity": "INTEGER", + "notNull": true, + "defaultValue": "false" + }, + { + "fieldPath": "tooltip", + "columnName": "tooltip", + "affinity": "TEXT", + "defaultValue": "NULL" + }, + { + "fieldPath": "hint", + "columnName": "hint", + "affinity": "TEXT", + "defaultValue": "NULL" + } + ], + "primaryKey": { + "autoGenerate": true, + "columnNames": [ + "id" + ] + } + }, + { + "tableName": "variables", + "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`name` TEXT NOT NULL, `value` INTEGER NOT NULL, PRIMARY KEY(`name`))", + "fields": [ + { + "fieldPath": "name", + "columnName": "name", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "value", + "columnName": "value", + "affinity": "INTEGER", + "notNull": true + } + ], + "primaryKey": { + "autoGenerate": false, + "columnNames": [ + "name" + ] + } + } + ], + "setupQueries": [ + "CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)", + "INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '52113a3206ef41cad91f5201d3fab2d7')" + ] + } +} \ No newline at end of file diff --git a/data/src/main/java/io/github/sds100/keymapper/data/DataHiltModule.kt b/data/src/main/java/io/github/sds100/keymapper/data/DataHiltModule.kt index 7276456806..1f8a8e0752 100644 --- a/data/src/main/java/io/github/sds100/keymapper/data/DataHiltModule.kt +++ b/data/src/main/java/io/github/sds100/keymapper/data/DataHiltModule.kt @@ -18,6 +18,8 @@ import io.github.sds100.keymapper.data.repositories.RoomFloatingLayoutRepository import io.github.sds100.keymapper.data.repositories.RoomGroupRepository import io.github.sds100.keymapper.data.repositories.RoomKeyMapRepository import io.github.sds100.keymapper.data.repositories.RoomLogRepository +import io.github.sds100.keymapper.data.repositories.VariableRepository +import io.github.sds100.keymapper.data.repositories.VariableRepositoryImpl import javax.inject.Singleton @Module @@ -56,4 +58,8 @@ abstract class DataHiltModule { abstract fun provideFloatingLayoutRepository( impl: RoomFloatingLayoutRepository, ): FloatingLayoutRepository + + @Singleton + @Binds + abstract fun provideVariableRepository(impl: VariableRepositoryImpl): VariableRepository } diff --git a/data/src/main/java/io/github/sds100/keymapper/data/db/AppDatabase.kt b/data/src/main/java/io/github/sds100/keymapper/data/db/AppDatabase.kt index ec6eaddb5c..60b9bb068b 100644 --- a/data/src/main/java/io/github/sds100/keymapper/data/db/AppDatabase.kt +++ b/data/src/main/java/io/github/sds100/keymapper/data/db/AppDatabase.kt @@ -16,6 +16,7 @@ import io.github.sds100.keymapper.data.db.dao.FloatingLayoutDao import io.github.sds100.keymapper.data.db.dao.GroupDao import io.github.sds100.keymapper.data.db.dao.KeyMapDao import io.github.sds100.keymapper.data.db.dao.LogEntryDao +import io.github.sds100.keymapper.data.db.dao.VariableDao import io.github.sds100.keymapper.data.db.typeconverter.ActionListTypeConverter import io.github.sds100.keymapper.data.db.typeconverter.ConstraintListTypeConverter import io.github.sds100.keymapper.data.db.typeconverter.ExtraListTypeConverter @@ -28,6 +29,7 @@ import io.github.sds100.keymapper.data.entities.FloatingLayoutEntity import io.github.sds100.keymapper.data.entities.GroupEntity import io.github.sds100.keymapper.data.entities.KeyMapEntity import io.github.sds100.keymapper.data.entities.LogEntryEntity +import io.github.sds100.keymapper.data.entities.VariableEntity import io.github.sds100.keymapper.data.migration.AutoMigration14To15 import io.github.sds100.keymapper.data.migration.AutoMigration15To16 import io.github.sds100.keymapper.data.migration.AutoMigration16To17 @@ -54,6 +56,7 @@ import io.github.sds100.keymapper.data.migration.Migration9To10 KeyMapEntity::class, FingerprintMapEntity::class, LogEntryEntity::class, FloatingLayoutEntity::class, FloatingButtonEntity::class, GroupEntity::class, AccessibilityNodeEntity::class, + VariableEntity::class, ], version = DATABASE_VERSION, exportSchema = true, @@ -76,6 +79,8 @@ import io.github.sds100.keymapper.data.migration.Migration9To10 AutoMigration(from = 22, to = 23, spec = AutoMigration22To23::class), // Adds the name column to key maps AutoMigration(from = 23, to = 24, spec = AutoMigration23To24::class), + // Adds the variables table + AutoMigration(from = 24, to = 25), ], ) @TypeConverters( @@ -88,7 +93,7 @@ import io.github.sds100.keymapper.data.migration.Migration9To10 abstract class AppDatabase : RoomDatabase() { companion object { const val DATABASE_NAME = "key_map_database" - const val DATABASE_VERSION = 24 + const val DATABASE_VERSION = 25 val MIGRATION_1_2 = object : Migration(1, 2) { @@ -187,4 +192,5 @@ abstract class AppDatabase : RoomDatabase() { abstract fun floatingButtonDao(): FloatingButtonDao abstract fun groupDao(): GroupDao abstract fun accessibilityNodeDao(): AccessibilityNodeDao + abstract fun variableDao(): VariableDao } diff --git a/data/src/main/java/io/github/sds100/keymapper/data/db/AppDatabaseModule.kt b/data/src/main/java/io/github/sds100/keymapper/data/db/AppDatabaseModule.kt index e37ffd373b..a7a1138024 100644 --- a/data/src/main/java/io/github/sds100/keymapper/data/db/AppDatabaseModule.kt +++ b/data/src/main/java/io/github/sds100/keymapper/data/db/AppDatabaseModule.kt @@ -15,6 +15,7 @@ import io.github.sds100.keymapper.data.db.dao.FloatingLayoutDao import io.github.sds100.keymapper.data.db.dao.GroupDao import io.github.sds100.keymapper.data.db.dao.KeyMapDao import io.github.sds100.keymapper.data.db.dao.LogEntryDao +import io.github.sds100.keymapper.data.db.dao.VariableDao import javax.inject.Singleton @Module @@ -61,6 +62,11 @@ internal class AppDatabaseModule { return database.accessibilityNodeDao() } + @Provides + fun provideVariableDao(database: AppDatabase): VariableDao { + return database.variableDao() + } + private fun createDatabase(context: Context): AppDatabase = Room.databaseBuilder( context.applicationContext, AppDatabase::class.java, diff --git a/data/src/main/java/io/github/sds100/keymapper/data/db/dao/VariableDao.kt b/data/src/main/java/io/github/sds100/keymapper/data/db/dao/VariableDao.kt new file mode 100644 index 0000000000..a0dc01702b --- /dev/null +++ b/data/src/main/java/io/github/sds100/keymapper/data/db/dao/VariableDao.kt @@ -0,0 +1,32 @@ +package io.github.sds100.keymapper.data.db.dao + +import androidx.room.Dao +import androidx.room.Insert +import androidx.room.OnConflictStrategy +import androidx.room.Query +import androidx.room.Transaction +import io.github.sds100.keymapper.data.entities.VariableEntity + +@Dao +interface VariableDao { + companion object { + const val TABLE_NAME = "variables" + const val KEY_NAME = "name" + const val KEY_VALUE = "value" + } + + @Query("SELECT * FROM $TABLE_NAME") + suspend fun getAll(): List + + @Insert(onConflict = OnConflictStrategy.REPLACE) + suspend fun insertAll(entities: List) + + @Query("DELETE FROM $TABLE_NAME") + suspend fun deleteAll() + + @Transaction + suspend fun replaceAll(entities: List) { + deleteAll() + insertAll(entities) + } +} diff --git a/data/src/main/java/io/github/sds100/keymapper/data/entities/ActionEntity.kt b/data/src/main/java/io/github/sds100/keymapper/data/entities/ActionEntity.kt index 0609af345c..f71d95cde3 100644 --- a/data/src/main/java/io/github/sds100/keymapper/data/entities/ActionEntity.kt +++ b/data/src/main/java/io/github/sds100/keymapper/data/entities/ActionEntity.kt @@ -107,6 +107,10 @@ data class ActionEntity( const val VIBRATE_MODE_DURATION = "duration" const val VIBRATE_MODE_PREDEFINED = "predefined" + const val EXTRA_VARIABLE_NAME = "extra_variable_name" + const val EXTRA_VARIABLE_OPERATION = "extra_variable_operation" + const val EXTRA_VARIABLE_VALUE = "extra_variable_value" + // Accessibility node extras const val EXTRA_ACCESSIBILITY_PACKAGE_NAME = "extra_accessibility_package_name" const val EXTRA_ACCESSIBILITY_CONTENT_DESCRIPTION = @@ -225,6 +229,7 @@ data class ActionEntity( CREATE_NOTIFICATION, TOAST, VIBRATE, + SET_VARIABLE, } constructor( diff --git a/data/src/main/java/io/github/sds100/keymapper/data/entities/ConstraintEntity.kt b/data/src/main/java/io/github/sds100/keymapper/data/entities/ConstraintEntity.kt index 90c5d0628b..4e68f75beb 100644 --- a/data/src/main/java/io/github/sds100/keymapper/data/entities/ConstraintEntity.kt +++ b/data/src/main/java/io/github/sds100/keymapper/data/entities/ConstraintEntity.kt @@ -147,6 +147,8 @@ data class ConstraintEntity( const val TIME = "time" + const val VARIABLE = "constraint_variable" + const val EXTRA_PACKAGE_NAME = "extra_package_name" const val EXTRA_APP_NAME = "extra_app_name" const val EXTRA_BT_ADDRESS = "extra_bluetooth_device_address" @@ -169,6 +171,10 @@ data class ConstraintEntity( const val EXTRA_START_TIME = "extra_start_time" const val EXTRA_END_TIME = "extra_end_time" + const val EXTRA_VARIABLE_NAME = "extra_variable_name" + const val EXTRA_VARIABLE_COMPARISON = "extra_variable_comparison" + const val EXTRA_VARIABLE_VALUE = "extra_variable_value" + val DESERIALIZER = jsonDeserializer { val type by it.json.byString(NAME_TYPE) diff --git a/data/src/main/java/io/github/sds100/keymapper/data/entities/VariableEntity.kt b/data/src/main/java/io/github/sds100/keymapper/data/entities/VariableEntity.kt new file mode 100644 index 0000000000..098f9204aa --- /dev/null +++ b/data/src/main/java/io/github/sds100/keymapper/data/entities/VariableEntity.kt @@ -0,0 +1,15 @@ +package io.github.sds100.keymapper.data.entities + +import androidx.room.ColumnInfo +import androidx.room.Entity +import androidx.room.PrimaryKey +import io.github.sds100.keymapper.data.db.dao.VariableDao + +@Entity(tableName = VariableDao.TABLE_NAME) +data class VariableEntity( + @PrimaryKey + @ColumnInfo(name = VariableDao.KEY_NAME) + val name: String, + @ColumnInfo(name = VariableDao.KEY_VALUE) + val value: Long, +) diff --git a/data/src/main/java/io/github/sds100/keymapper/data/repositories/VariableRepository.kt b/data/src/main/java/io/github/sds100/keymapper/data/repositories/VariableRepository.kt new file mode 100644 index 0000000000..c9c1a06b3b --- /dev/null +++ b/data/src/main/java/io/github/sds100/keymapper/data/repositories/VariableRepository.kt @@ -0,0 +1,20 @@ +package io.github.sds100.keymapper.data.repositories + +import kotlinx.coroutines.flow.StateFlow + +/** + * Stores the user defined variables that key maps can manipulate and read. A variable that has + * never been set reads as 0 so there is no distinction between deleting a variable and setting + * it to 0. + */ +interface VariableRepository { + /** + * The values are kept in memory because they must be read synchronously while a key event + * is being handled. + */ + val values: StateFlow> + + fun set(name: String, value: Long) + fun delete(name: String) + fun deleteAll() +} diff --git a/data/src/main/java/io/github/sds100/keymapper/data/repositories/VariableRepositoryImpl.kt b/data/src/main/java/io/github/sds100/keymapper/data/repositories/VariableRepositoryImpl.kt new file mode 100644 index 0000000000..d49f5b2675 --- /dev/null +++ b/data/src/main/java/io/github/sds100/keymapper/data/repositories/VariableRepositoryImpl.kt @@ -0,0 +1,68 @@ +package io.github.sds100.keymapper.data.repositories + +import io.github.sds100.keymapper.data.db.dao.VariableDao +import io.github.sds100.keymapper.data.entities.VariableEntity +import javax.inject.Inject +import javax.inject.Singleton +import kotlin.time.Duration.Companion.milliseconds +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.FlowPreview +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.asStateFlow +import kotlinx.coroutines.flow.debounce +import kotlinx.coroutines.flow.drop +import kotlinx.coroutines.flow.launchIn +import kotlinx.coroutines.flow.onEach +import kotlinx.coroutines.flow.update +import kotlinx.coroutines.runBlocking + +@OptIn(FlowPreview::class) +@Singleton +class VariableRepositoryImpl @Inject constructor( + private val coroutineScope: CoroutineScope, + private val variableDao: VariableDao, +) : VariableRepository { + + companion object { + /** + * A variable can change as often as an action repeats so the values are only written to + * disk once they have settled. The in memory value is always the authoritative one. + */ + private const val PERSIST_DEBOUNCE_MS = 500L + } + + private val _values: MutableStateFlow> = MutableStateFlow(readFromDisk()) + override val values: StateFlow> = _values.asStateFlow() + + init { + _values + .drop(1) + .debounce(PERSIST_DEBOUNCE_MS.milliseconds) + .onEach { values -> + variableDao.replaceAll(values.map { VariableEntity(it.key, it.value) }) + } + .launchIn(coroutineScope) + } + + override fun set(name: String, value: Long) { + _values.update { it.plus(name to value) } + } + + override fun delete(name: String) { + _values.update { it.minus(name) } + } + + override fun deleteAll() { + _values.update { emptyMap() } + } + + /** + * This blocks so that a key event handled immediately after the process starts reads the + * persisted values rather than an empty map. It only happens once, when this repository is + * created. + */ + private fun readFromDisk(): Map { + return runBlocking { variableDao.getAll() }.associate { it.name to it.value } + } +} From a80df3aea991adacfae0a79236c2fee16a69db1b Mon Sep 17 00:00:00 2001 From: sds100 Date: Thu, 1 Oct 2026 14:53:18 +0200 Subject: [PATCH 38/64] feat: Rename "app in foreground" constraint to "app is open" --- CHANGELOG.md | 1 + base/src/main/res/values/strings.xml | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 18e4f5bf13..0c25898f6e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,7 @@ - #2252 redesigned the app bar when configuring a key map. Changes are saved automatically so there is no Done button, and the help button was removed. - Show side-by-side view when creating a key map on more devices - #2273 Constraints that the device can't support (e.g. no Bluetooth or hinge sensor) are now shown as unsupported when choosing a constraint. +- Rename "app in foreground" constraint to "app is open". ## Fixed diff --git a/base/src/main/res/values/strings.xml b/base/src/main/res/values/strings.xml index 854626ac63..1402ca9ce8 100644 --- a/base/src/main/res/values/strings.xml +++ b/base/src/main/res/values/strings.xml @@ -261,8 +261,8 @@ AND OR - App in foreground - App not in foreground + App is open + App not open Bluetooth device is connected Bluetooth device is disconnected Screen is on From a7176cfe2c16796d84881ecdcd2cfa1ad72259d5 Mon Sep 17 00:00:00 2001 From: sds100 Date: Thu, 1 Oct 2026 15:02:28 +0200 Subject: [PATCH 39/64] #2277 WIP: automatically create a screenshot with Roborazzi --- build.gradle.kts | 1 + gradle/libs.versions.toml | 5 + screenshots/build.gradle.kts | 71 ++++++++++ screenshots/output/key_map_list.png | Bin 0 -> 154652 bytes .../screenshots/KeyMapListScreenshot.kt | 131 ++++++++++++++++++ settings.gradle.kts | 1 + 6 files changed, 209 insertions(+) create mode 100644 screenshots/build.gradle.kts create mode 100644 screenshots/output/key_map_list.png create mode 100644 screenshots/src/test/java/io/github/sds100/keymapper/screenshots/KeyMapListScreenshot.kt diff --git a/build.gradle.kts b/build.gradle.kts index 78ed67584b..9aa1dc83fa 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -14,4 +14,5 @@ plugins { alias(libs.plugins.jlleitschuh.gradle.ktlint) apply false alias(libs.plugins.android.library) apply false alias(libs.plugins.dagger.hilt.android) apply false + alias(libs.plugins.roborazzi) apply false } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index cd18a7178b..ad19c4bc33 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -67,6 +67,7 @@ mockito-kotlin = "4.0.0" okhttp = "4.12.0" # Need the beta for SDK 37 support robolectric = "4.17-beta-4" +roborazzi = "1.76.0" shizuku = "13.1.5" splitties = "3.0.0" storage-anggrayudi = "0.8.1" @@ -135,6 +136,8 @@ androidx-compose-material3-adaptive-navigation = { group = "androidx.compose.mat androidx-compose-ui-android = { group = "androidx.compose.ui", name = "ui-android" } androidx-compose-ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling" } androidx-compose-ui-tooling-preview = { group = "androidx.compose.ui", name = "ui-tooling-preview-android" } +androidx-compose-ui-test-junit4 = { group = "androidx.compose.ui", name = "ui-test-junit4" } +androidx-compose-ui-test-manifest = { group = "androidx.compose.ui", name = "ui-test-manifest" } # Google google-accompanist-drawablepainter = { group = "com.google.accompanist", name = "accompanist-drawablepainter", version.ref = "google-accompanist-drawablepainter" } @@ -172,6 +175,7 @@ mockito-core = { group = "org.mockito", name = "mockito-core", version.ref = "mo mockito-kotlin = { group = "org.mockito.kotlin", name = "mockito-kotlin", version.ref = "mockito-kotlin" } robolectric = { group = "org.robolectric", name = "robolectric", version.ref = "robolectric" } hamcrest-all = { group = "org.hamcrest", name = "hamcrest-all", version = "1.3" } # No version variable +roborazzi-compose = { group = "io.github.takahirom.roborazzi", name = "roborazzi-compose", version.ref = "roborazzi" } # Other anggrayudi-storage = { group = "com.anggrayudi", name = "storage", version.ref = "storage-anggrayudi" } @@ -217,6 +221,7 @@ kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", versi android-library = { id = "com.android.library", version.ref = "android-gradle-plugin" } dagger-hilt-android = { id = "com.google.dagger.hilt.android", version.ref = "dagger-hilt-android" } mozilla-rust-android = { id = "org.mozilla.rust-android-gradle.rust-android", version.ref = "rust-android-gradle" } +roborazzi = { id = "io.github.takahirom.roborazzi", version.ref = "roborazzi" } [bundles] splitties = [ diff --git a/screenshots/build.gradle.kts b/screenshots/build.gradle.kts new file mode 100644 index 0000000000..1f0f5be410 --- /dev/null +++ b/screenshots/build.gradle.kts @@ -0,0 +1,71 @@ +// Renders app UI with dummy data to PNGs for the store listing. Nothing depends on this module +// so it is never part of the app build. Run: ./gradlew :screenshots:recordRoborazziDebug +plugins { + alias(libs.plugins.android.library) + alias(libs.plugins.kotlin.android) + alias(libs.plugins.kotlin.compose) + alias(libs.plugins.roborazzi) + alias(libs.plugins.jlleitschuh.gradle.ktlint) +} + +android { + namespace = "io.github.sds100.keymapper.screenshots" + compileSdk = libs.versions.compile.sdk.get().toInt() + + defaultConfig { + minSdk = libs.versions.min.sdk.get().toInt() + } + + buildFeatures { + compose = true + } + + compileOptions { + isCoreLibraryDesugaringEnabled = true + sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = JavaVersion.VERSION_11 + } + + kotlinOptions { + jvmTarget = "11" + } + + testOptions { + unitTests { + isIncludeAndroidResources = true + } + + // Needed for Roboelectric to work on Java 17+ + unitTests.all { + it.jvmArgs( + "--add-opens=java.base/java.lang=ALL-UNNAMED", + "--add-opens=java.base/java.util=ALL-UNNAMED", + "--add-opens=java.base/java.io=ALL-UNNAMED", + "--add-opens=java.base/java.net=ALL-UNNAMED", + "--add-opens=java.base/java.security=ALL-UNNAMED", + "--add-opens=java.base/java.text=ALL-UNNAMED", + "--add-opens=java.base/jdk.internal.access=ALL-UNNAMED", + "--add-opens=java.desktop/java.awt.font=ALL-UNNAMED", + "--add-opens=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED", + ) + } + } +} + +dependencies { + coreLibraryDesugaring(libs.desugar.jdk.libs) + + testImplementation(project(":base")) + testImplementation(project(":common")) + + testImplementation(platform(libs.androidx.compose.bom)) + testImplementation(libs.androidx.compose.material3) + testImplementation(libs.androidx.compose.material.icons.extended) + testImplementation(libs.androidx.compose.ui.test.junit4) + debugImplementation(platform(libs.androidx.compose.bom)) + debugImplementation(libs.androidx.compose.ui.test.manifest) + + testImplementation(libs.junit) + testImplementation(libs.robolectric) + testImplementation(libs.roborazzi.compose) +} diff --git a/screenshots/output/key_map_list.png b/screenshots/output/key_map_list.png new file mode 100644 index 0000000000000000000000000000000000000000..e0900b89c3d1e92ae50fdb96f4268b812209f75b GIT binary patch literal 154652 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
  • Y-d>Kfx>G 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 z%0D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 literal 0 HcmV?d00001 diff --git a/screenshots/src/test/java/io/github/sds100/keymapper/screenshots/KeyMapListScreenshot.kt b/screenshots/src/test/java/io/github/sds100/keymapper/screenshots/KeyMapListScreenshot.kt new file mode 100644 index 0000000000..7c53417d73 --- /dev/null +++ b/screenshots/src/test/java/io/github/sds100/keymapper/screenshots/KeyMapListScreenshot.kt @@ -0,0 +1,131 @@ +package io.github.sds100.keymapper.screenshots + +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.automirrored.outlined.Message +import androidx.compose.material.icons.automirrored.outlined.ShortText +import androidx.compose.material.icons.outlined.Add +import androidx.compose.material.icons.outlined.Fullscreen +import androidx.compose.material.icons.outlined.Map +import androidx.compose.material.icons.rounded.Abc +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.ui.graphics.vector.ImageVector +import com.github.takahirom.roborazzi.captureRoboImage +import io.github.sds100.keymapper.base.compose.KeyMapperTheme +import io.github.sds100.keymapper.base.constraints.ConstraintMode +import io.github.sds100.keymapper.base.groups.GroupListItemModel +import io.github.sds100.keymapper.base.home.HomeKeyMapListScreen +import io.github.sds100.keymapper.base.home.KeyMapAppBarState +import io.github.sds100.keymapper.base.home.KeyMapList +import io.github.sds100.keymapper.base.home.KeyMapListAppBar +import io.github.sds100.keymapper.base.home.KeyMapListHeader +import io.github.sds100.keymapper.base.trigger.KeyMapListItemModel +import io.github.sds100.keymapper.base.utils.ui.compose.CollapsableFloatingActionButton +import io.github.sds100.keymapper.base.utils.ui.compose.ComposeChipModel +import io.github.sds100.keymapper.base.utils.ui.compose.ComposeIconInfo +import io.github.sds100.keymapper.common.utils.State +import org.junit.Test +import org.junit.runner.RunWith +import org.robolectric.RobolectricTestRunner +import org.robolectric.annotation.Config +import org.robolectric.annotation.GraphicsMode + +@RunWith(RobolectricTestRunner::class) +@GraphicsMode(GraphicsMode.Mode.NATIVE) +@Config(qualifiers = "w400dp-h800dp-xxhdpi", sdk = [35]) +class KeyMapListScreenshot { + + @OptIn(ExperimentalMaterial3Api::class) + @Test + fun keyMapList() { + val appBarState = KeyMapAppBarState.RootGroup( + subGroups = listOf( + GroupListItemModel( + uid = "0", + name = "Navigation", + icon = ComposeIconInfo.Vector(Icons.Outlined.Map), + ), + GroupListItemModel(uid = "1", name = "Lockscreen"), + GroupListItemModel(uid = "2", name = "Gaming"), + ), + ) + + captureRoboImage("output/key_map_list.png") { + KeyMapperTheme { + HomeKeyMapListScreen( + appBarContent = { KeyMapListAppBar(state = appBarState) }, + listContent = { + KeyMapList( + listItems = State.Data(keyMaps()), + header = { + KeyMapListHeader(state = appBarState, extraContent = {}) + }, + ) + }, + floatingActionButton = { + CollapsableFloatingActionButton(text = "New key map", showText = true) + }, + selectionBottomSheet = {}, + ) + } + } + } + + private fun keyMaps(): List { + return listOf( + keyMap( + uid = "0", + triggerKeys = listOf("Ctrl Left (Gaming Keyboard)", "O (Gaming Keyboard)"), + actions = listOf( + chip("Type 'ø'", Icons.AutoMirrored.Outlined.ShortText), + ), + constraints = listOf( + chip("Messenger is open", Icons.AutoMirrored.Outlined.Message), + ), + ), + keyMap( + uid = "1", + triggerKeys = listOf("Long press Back (Wired Mouse)"), + actions = listOf(chip("Screenshot", Icons.Outlined.Fullscreen)), + options = listOf("Vibrate"), + ), + keyMap( + uid = "2", + triggerKeys = listOf("Button A (Wireless Controller)"), + actions = listOf( + chip("Input KEYCODE_SPACE • Repeat", Icons.Rounded.Abc), + ), + ), + ) + } + + private fun keyMap( + uid: String, + triggerKeys: List, + actions: List, + constraints: List = emptyList(), + options: List = emptyList(), + ): KeyMapListItemModel { + return KeyMapListItemModel( + isSelected = false, + KeyMapListItemModel.Content( + uid = uid, + triggerKeys = triggerKeys, + triggerSeparatorIcon = Icons.Outlined.Add, + actions = actions, + constraintMode = ConstraintMode.AND, + constraints = constraints, + options = options, + isEnabled = true, + hasError = false, + ), + ) + } + + private fun chip(text: String, icon: ImageVector): ComposeChipModel { + return ComposeChipModel.Normal( + id = text, + icon = ComposeIconInfo.Vector(icon), + text = text, + ) + } +} diff --git a/settings.gradle.kts b/settings.gradle.kts index 81636c377b..d383176327 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -32,3 +32,4 @@ include(":common") include(":data") include(":sysbridge") include(":evdev") +include(":screenshots") From 78df6fa3d6d8ae5510815e45f934e7fb9fc598b3 Mon Sep 17 00:00:00 2001 From: sds100 Date: Fri, 2 Oct 2026 14:54:40 +0200 Subject: [PATCH 40/64] #2281 feat: action text in the key map list is more concise and the delay between actions is shown as a timer chip --- CHANGELOG.md | 1 + .../keymapper/base/actions/ActionUiHelper.kt | 85 +++++++++++++------ .../keymapper/base/actions/ActionsScreen.kt | 11 ++- .../base/home/KeyMapListItemCreator.kt | 59 ++++++------- base/src/main/res/values/strings.xml | 10 +++ .../keymapper/common/utils/TimeUtils.kt | 13 +++ 6 files changed, 116 insertions(+), 63 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0c25898f6e..c64b31131b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ - #2252 undo and redo changes when configuring a key map. - #2155 the Expert Mode setup wizard now detects Samsung Auto Blocker and guides how to disable it, since it can silently block wireless debugging from staying enabled. - #2127 shut down and restart device actions. +- #2281 action text in the key map list is more concise and the delay between actions is shown as a timer chip. - Show constraint icons when collapsed. ## Changed diff --git a/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionUiHelper.kt b/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionUiHelper.kt index 0c2009bd9e..3f9bbb31d1 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionUiHelper.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionUiHelper.kt @@ -55,24 +55,11 @@ class ActionUiHelper( is ActionData.AppShortcut -> action.shortcutTitle is ActionData.InputKeyEvent -> { - val keyCodeString = if (action.keyCode > KeyEvent.getMaxKeyCode()) { - "Key Code ${action.keyCode}" - } else { - KeyEvent.keyCodeToString(action.keyCode) - } + val keyCodeString = getKeyCodeString(action) // only a key code can be inputted through the shell - val metaStateString = buildString { - for (label in KeyCodeStrings.MODIFIER_LABELS.entries) { - val modifier = label.key - val labelRes = label.value - - if (action.metaState.hasFlag(modifier)) { - append("${getString(labelRes)} + ") - } - } - } + val metaStateString = getMetaStateString(action) if (action.device != null) { val name = action.device.name.ifBlank { @@ -920,22 +907,68 @@ class ActionUiHelper( } } - fun getOptionLabels(keyMap: KeyMap, action: Action) = buildList { - getRepeatDescription(keyMap, action)?.let { add(it) } + private fun getKeyCodeString(action: ActionData.InputKeyEvent): String = + if (action.keyCode > KeyEvent.getMaxKeyCode()) { + "Key Code ${action.keyCode}" + } else { + KeyEvent.keyCodeToString(action.keyCode) + } - if (keyMap.isHoldingDownActionAllowed(action) && - action.holdDown && - !action.stopHoldDownWhenTriggerPressedAgain - ) { - add(getString(R.string.flag_hold_down)) + private fun getMetaStateString(action: ActionData.InputKeyEvent): String = buildString { + for (label in KeyCodeStrings.MODIFIER_LABELS.entries) { + if (action.metaState.hasFlag(label.key)) { + append("${getString(label.value)} + ") + } } + } - if (keyMap.isHoldingDownActionAllowed(action) && - action.holdDown && - action.stopHoldDownWhenTriggerPressedAgain + /** + * A concise title for the key map list that describes the repeat and hold down options in the + * name itself, e.g. "Repeat KEYCODE_0" instead of "Input KEYCODE_0 • Repeat until released". + * The repeat rate/delay and hold down duration are omitted. + */ + fun getChipTitle(keyMap: KeyMap, action: Action, showDeviceDescriptors: Boolean): String { + val repeat = keyMap.isRepeatingActionsAllowed() && action.repeat + val holdDown = keyMap.isHoldingDownActionAllowed(action) && action.holdDown + val toggle = action.stopHoldDownWhenTriggerPressedAgain + val pressedAgain = action.repeatMode == RepeatMode.TRIGGER_PRESSED_AGAIN + val limit = when { + action.repeatLimit != null -> action.repeatLimit + action.repeatMode == RepeatMode.LIMIT_REACHED -> 1 + else -> null + } + + val verb = when { + repeat && holdDown && pressedAgain -> getString(R.string.action_chip_toggle_hold_repeat) + + repeat && holdDown && limit != null -> + getString(R.string.action_chip_hold_repeat_limit, limit) + + repeat && holdDown -> getString(R.string.action_chip_hold_repeat) + + repeat && pressedAgain -> getString(R.string.action_chip_toggle_repeat) + + repeat && limit != null -> getString(R.string.action_chip_repeat_limit, limit) + + repeat -> getString(R.string.action_chip_repeat) + + holdDown && toggle -> getString(R.string.action_chip_toggle_hold) + + holdDown -> getString(R.string.action_chip_hold) + + else -> return getTitle(action, showDeviceDescriptors) + } + + // Replace the "Input" verb with the repeat/hold verb for key events. + val title = if (action.customName.isNullOrBlank() && + action.data is ActionData.InputKeyEvent ) { - add(getString(R.string.flag_hold_down_until_pressed_again)) + getMetaStateString(action.data) + getKeyCodeString(action.data) + } else { + getTitle(action, showDeviceDescriptors) } + + return "$verb $title" } /** diff --git a/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionsScreen.kt b/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionsScreen.kt index 499d51fa94..b43cee9154 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionsScreen.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionsScreen.kt @@ -64,6 +64,7 @@ import io.github.sds100.keymapper.base.utils.ui.compose.SliderOptionText import io.github.sds100.keymapper.base.utils.ui.compose.TextFieldDialog import io.github.sds100.keymapper.base.utils.ui.compose.rememberDragDropState import io.github.sds100.keymapper.common.utils.State +import io.github.sds100.keymapper.common.utils.TimeUtils import io.github.sds100.keymapper.system.camera.CameraLens import kotlinx.coroutines.flow.update @@ -450,12 +451,10 @@ private fun ActionLinkRow( if (delayBeforeNextAction < 1000) { Text(stringResource(R.string.action_title_wait_ms, delayBeforeNextAction)) } else { - val seconds = delayBeforeNextAction / 1000f - val secondsText = if (seconds % 1f == 0f) { - seconds.toInt().toString() - } else { - String.format(LocalLocale.current.platformLocale, "%.1f", seconds) - } + val secondsText = TimeUtils.formatSeconds( + delayBeforeNextAction, + LocalLocale.current.platformLocale, + ) Text( stringResource( diff --git a/base/src/main/java/io/github/sds100/keymapper/base/home/KeyMapListItemCreator.kt b/base/src/main/java/io/github/sds100/keymapper/base/home/KeyMapListItemCreator.kt index 5a1e52fd1a..ea6f233970 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/home/KeyMapListItemCreator.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/home/KeyMapListItemCreator.kt @@ -3,6 +3,7 @@ package io.github.sds100.keymapper.base.home import androidx.compose.material.icons.Icons import androidx.compose.material.icons.automirrored.outlined.ArrowForward import androidx.compose.material.icons.outlined.Add +import androidx.compose.material.icons.rounded.Timelapse import io.github.sds100.keymapper.base.R import io.github.sds100.keymapper.base.actions.ActionErrorSnapshot import io.github.sds100.keymapper.base.actions.ActionUiHelper @@ -35,6 +36,7 @@ import io.github.sds100.keymapper.base.utils.ui.compose.ComposeChipModel import io.github.sds100.keymapper.base.utils.ui.compose.ComposeIconInfo import io.github.sds100.keymapper.common.utils.InputDeviceUtils import io.github.sds100.keymapper.common.utils.KMError +import io.github.sds100.keymapper.common.utils.TimeUtils class KeyMapListItemCreator( private val displayMapping: DisplayKeyMapUseCase, @@ -118,44 +120,18 @@ class KeyMapListItemCreator( showDeviceDescriptors: Boolean, errorSnapshot: ActionErrorSnapshot, ): List = sequence { - val midDot = getString(R.string.middot) - val actionErrors = if (keyMap.isEnabled) { errorSnapshot.getErrors(keyMap.actionList.map { it.data }) } else { emptyMap() } - for (action in keyMap.actionList) { - val actionTitle: String = if (action.multiplier != null) { - "${action.multiplier}x ${actionUiHelper.getTitle(action, showDeviceDescriptors)}" + for ((index, action) in keyMap.actionList.withIndex()) { + val title = actionUiHelper.getChipTitle(keyMap, action, showDeviceDescriptors) + val chipText = if (action.multiplier != null) { + "${action.multiplier}x $title" } else { - actionUiHelper.getTitle(action, showDeviceDescriptors) - } - - val chipText = buildString { - append(actionTitle) - - actionUiHelper.getOptionLabels(keyMap, action).forEach { label -> - append(" $midDot ") - - append(label) - } - - if (keyMap.isDelayBeforeNextActionAllowed() && - action.delayBeforeNextAction != null - ) { - if (this@buildString.isNotBlank()) { - append(" $midDot ") - } - - append( - getString( - R.string.action_title_wait_ms, - action.delayBeforeNextAction, - ), - ) - } + title } val icon: ComposeIconInfo = actionUiHelper.getIcon(action.data) @@ -174,9 +150,30 @@ class KeyMapListItemCreator( } yield(chip) + + // A delay after the last action does nothing so do not show it. + if (keyMap.isDelayBeforeNextActionAllowed() && + action.delayBeforeNextAction != null && + index < keyMap.actionList.lastIndex + ) { + yield( + ComposeChipModel.Normal( + id = "${action.uid}-delay", + icon = ComposeIconInfo.Vector(Icons.Rounded.Timelapse), + text = delayText(action.delayBeforeNextAction), + isEnabled = keyMap.isEnabled && action.isEnabled, + ), + ) + } } }.toList() + private fun delayText(ms: Int): String = if (ms < 1000) { + getString(R.string.action_chip_delay_ms, ms) + } else { + getString(R.string.action_chip_delay_secs, TimeUtils.formatSeconds(ms)) + } + fun buildConstraintChipList( constraintState: ConstraintState, errorSnapshot: ConstraintErrorSnapshot, diff --git a/base/src/main/res/values/strings.xml b/base/src/main/res/values/strings.xml index 1402ca9ce8..114a6fc873 100644 --- a/base/src/main/res/values/strings.xml +++ b/base/src/main/res/values/strings.xml @@ -79,6 +79,16 @@ Wait %sms Wait %ss + %sms + %ss + Repeat + Repeat %dx + Toggle repeat + Hold + Toggle hold + Hold & repeat + Hold & repeat %dx + Toggle hold & repeat Start activity: %s Start service: %s diff --git a/common/src/main/java/io/github/sds100/keymapper/common/utils/TimeUtils.kt b/common/src/main/java/io/github/sds100/keymapper/common/utils/TimeUtils.kt index 450e438d9b..6412e3afd0 100644 --- a/common/src/main/java/io/github/sds100/keymapper/common/utils/TimeUtils.kt +++ b/common/src/main/java/io/github/sds100/keymapper/common/utils/TimeUtils.kt @@ -8,4 +8,17 @@ object TimeUtils { fun localeDateFormatter(style: FormatStyle): DateTimeFormatter { return DateTimeFormatter.ofLocalizedTime(style).withLocale(Locale.getDefault()) } + + /** + * @return the milliseconds as seconds without a trailing ".0", e.g. 1000 -> "1", 1500 -> "1.5". + */ + fun formatSeconds(ms: Int, locale: Locale = Locale.getDefault()): String { + val seconds = ms / 1000f + + return if (seconds % 1f == 0f) { + seconds.toInt().toString() + } else { + String.format(locale, "%.1f", seconds) + } + } } From fd4097f42667546af330d38292ef42695178e67f Mon Sep 17 00:00:00 2001 From: sds100 Date: Fri, 2 Oct 2026 14:58:18 +0200 Subject: [PATCH 41/64] fix backup manager tests --- .../io/github/sds100/keymapper/base/backup/BackupManager.kt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/base/src/main/java/io/github/sds100/keymapper/base/backup/BackupManager.kt b/base/src/main/java/io/github/sds100/keymapper/base/backup/BackupManager.kt index c9e5c10ceb..f8178ccfc7 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/backup/BackupManager.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/backup/BackupManager.kt @@ -270,6 +270,9 @@ class BackupManagerImpl @Inject constructor( // Do nothing. Adds the nullable name column to key maps. JsonMigration(23, 24) { json -> json }, + + // Do nothing. Adds the variables table. + JsonMigration(24, 25) { json -> json }, ) if (keyMapListJsonArray != null) { From 786938add26cb0851d090c1c7b29a1bf11450e69 Mon Sep 17 00:00:00 2001 From: sds100 Date: Fri, 2 Oct 2026 15:07:30 +0200 Subject: [PATCH 42/64] #2280 removed the confirmation dialogs when deleting actions, constraints and constraint groups because changes can now be undone --- CHANGELOG.md | 1 + .../keymapper/base/actions/ActionsScreen.kt | 29 +--------- .../base/constraints/ConstraintsScreen.kt | 58 +------------------ base/src/main/res/values/strings.xml | 10 ---- 4 files changed, 4 insertions(+), 94 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c64b31131b..d904f46dde 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,7 @@ ## Changed +- #2280 removed the confirmation dialogs when deleting actions, constraints and constraint groups because changes can now be undone. - #2252 redesigned the app bar when configuring a key map. Changes are saved automatically so there is no Done button, and the help button was removed. - Show side-by-side view when creating a key map on more devices - #2273 Constraints that the device can't support (e.g. no Bluetooth or hinge sensor) are now shown as unsupported when choosing a constraint. diff --git a/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionsScreen.kt b/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionsScreen.kt index b43cee9154..515d0e91b8 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionsScreen.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/actions/ActionsScreen.kt @@ -19,7 +19,6 @@ import androidx.compose.material.icons.rounded.FlashlightOn import androidx.compose.material.icons.rounded.MoreTime import androidx.compose.material.icons.rounded.Pinch import androidx.compose.material.icons.rounded.Timelapse -import androidx.compose.material3.AlertDialog import androidx.compose.material3.AssistChip import androidx.compose.material3.AssistChipDefaults import androidx.compose.material3.ButtonDefaults @@ -136,37 +135,11 @@ private fun ActionsScreen( onDelayChange: (String, Int) -> Unit = { _, _ -> }, onRenameAction: (String, String) -> Unit = { _, _ -> }, ) { - var actionToDelete by rememberSaveable { mutableStateOf(null) } var actionToRename by rememberSaveable { mutableStateOf(null) } var actionToSetDelay by rememberSaveable { mutableStateOf(null) } val actions = ((state as? State.Data)?.data as? ConfigActionsState.Loaded)?.actions.orEmpty() - if (actionToDelete != null) { - AlertDialog( - onDismissRequest = { actionToDelete = null }, - title = { - Text(stringResource(R.string.action_list_delete_dialog_title)) - }, - text = { Text(stringResource(R.string.action_list_delete_dialog_text)) }, - confirmButton = { - TextButton( - onClick = { - onRemoveClick(actionToDelete!!) - actionToDelete = null - }, - ) { - Text(stringResource(R.string.action_list_delete_yes)) - } - }, - dismissButton = { - TextButton(onClick = { actionToDelete = null }) { - Text(stringResource(R.string.action_list_delete_cancel)) - } - }, - ) - } - val renameModel = actions.find { it.id == actionToRename } if (renameModel != null) { @@ -207,7 +180,7 @@ private fun ActionsScreen( state = state.data, tipModel = tipModel, callback = callback, - onRemoveClick = { actionToDelete = it }, + onRemoveClick = onRemoveClick, onDelayClick = { actionToSetDelay = it }, onRenameClick = { actionToRename = it }, ) diff --git a/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintsScreen.kt b/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintsScreen.kt index b0865f16dd..f6a2fbc910 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintsScreen.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintsScreen.kt @@ -16,7 +16,6 @@ import androidx.compose.foundation.lazy.rememberLazyListState import androidx.compose.material.icons.Icons import androidx.compose.material.icons.outlined.Wifi import androidx.compose.material.icons.rounded.FlashlightOn -import androidx.compose.material3.AlertDialog import androidx.compose.material3.ButtonDefaults import androidx.compose.material3.CircularProgressIndicator import androidx.compose.material3.FilledTonalButton @@ -24,7 +23,6 @@ import androidx.compose.material3.MaterialTheme import androidx.compose.material3.SnackbarHostState import androidx.compose.material3.Surface import androidx.compose.material3.Text -import androidx.compose.material3.TextButton import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue @@ -113,60 +111,8 @@ private fun ConstraintsScreen( onExpandedChange: (groupUid: String, expanded: Boolean) -> Unit = { _, _ -> }, onMoveGroup: (fromIndex: Int, toIndex: Int) -> Unit = { _, _ -> }, ) { - var constraintToDelete by rememberSaveable { mutableStateOf(null) } - var groupToDelete by rememberSaveable { mutableStateOf(null) } var groupToRename by rememberSaveable { mutableStateOf(null) } - if (constraintToDelete != null) { - AlertDialog( - onDismissRequest = { constraintToDelete = null }, - title = { - Text(stringResource(R.string.constraint_list_delete_dialog_title)) - }, - text = { Text(stringResource(R.string.constraint_list_delete_dialog_text)) }, - confirmButton = { - TextButton( - onClick = { - onRemoveClick(constraintToDelete!!) - constraintToDelete = null - }, - ) { - Text(stringResource(R.string.constraint_list_delete_yes)) - } - }, - dismissButton = { - TextButton(onClick = { constraintToDelete = null }) { - Text(stringResource(R.string.constraint_list_delete_cancel)) - } - }, - ) - } - - if (groupToDelete != null) { - AlertDialog( - onDismissRequest = { groupToDelete = null }, - title = { - Text(stringResource(R.string.constraint_group_delete_dialog_title)) - }, - text = { Text(stringResource(R.string.constraint_group_delete_dialog_text)) }, - confirmButton = { - TextButton( - onClick = { - onRemoveGroupClick(groupToDelete!!) - groupToDelete = null - }, - ) { - Text(stringResource(R.string.constraint_list_delete_yes)) - } - }, - dismissButton = { - TextButton(onClick = { groupToDelete = null }) { - Text(stringResource(R.string.constraint_list_delete_cancel)) - } - }, - ) - } - val groups = ((state as? State.Data)?.data as? ConfigConstraintsState.Loaded) ?.groups .orEmpty() @@ -232,8 +178,8 @@ private fun ConstraintsScreen( modifier = Modifier.weight(1f), state = data, onAddToGroupClick = onAddToGroupClick, - onRemoveClick = { constraintToDelete = it }, - onRemoveGroupClick = { groupToDelete = it }, + onRemoveClick = onRemoveClick, + onRemoveGroupClick = onRemoveGroupClick, onNotClick = onNotClick, onEditClick = onEditClick, onFixErrorClick = onFixErrorClick, diff --git a/base/src/main/res/values/strings.xml b/base/src/main/res/values/strings.xml index 114a6fc873..e80154948e 100644 --- a/base/src/main/res/values/strings.xml +++ b/base/src/main/res/values/strings.xml @@ -1946,10 +1946,6 @@ Choose an action Search… Nothing here! - Delete action - Are you sure you want to delete this action? - Yes, delete - Cancel Run these actions when you trigger the key map: Repeating under 20 ms can lag! Adjust for your device and game. Action name @@ -2001,10 +1997,6 @@ Recently used constraints Remove Edit - Delete constraint - Are you sure you want to delete this constraint? - Yes, delete - Cancel This key map will only run if these constraints are met. NOT NOT %s @@ -2025,8 +2017,6 @@ Collapse constraint group Add constraint to group Delete constraint group - Delete constraint group - Are you sure you want to delete this group and all of its constraints? Group name Rename constraint group Combine groups with From 8243756b8f22dd27eccec7794c766183b2eb77b1 Mon Sep 17 00:00:00 2001 From: sds100 Date: Fri, 2 Oct 2026 15:12:03 +0200 Subject: [PATCH 43/64] #2276 fix: bottom key maps are obscured by selection bottom sheet --- CHANGELOG.md | 1 + .../sds100/keymapper/base/home/HomeKeyMapListScreen.kt | 7 +++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d904f46dde..ba804064c9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,6 +28,7 @@ - #2268 use trampoline when launching device assistant and settings apps when the device is locked so the lock screen dismisses. - #2271 brightness actions match brightness slider on Android 16.1+. - #1739 support multiple displays better. +- #2276 Bottom key maps are obscured by selection bottom sheet. ## [4.5.0](https://github.com/sds100/KeyMapper/releases/tag/v4.5.0) diff --git a/base/src/main/java/io/github/sds100/keymapper/base/home/HomeKeyMapListScreen.kt b/base/src/main/java/io/github/sds100/keymapper/base/home/HomeKeyMapListScreen.kt index c366eaedaa..7ee567ee17 100644 --- a/base/src/main/java/io/github/sds100/keymapper/base/home/HomeKeyMapListScreen.kt +++ b/base/src/main/java/io/github/sds100/keymapper/base/home/HomeKeyMapListScreen.kt @@ -40,7 +40,6 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment @@ -173,7 +172,11 @@ fun HomeKeyMapListScreen( val scrollBehavior = TopAppBarDefaults.pinnedScrollBehavior() val ctx = LocalContext.current - var keyMapListBottomPadding by remember { mutableStateOf(100.dp) } + val keyMapListBottomPadding = if (state.appBarState is KeyMapAppBarState.Selecting) { + 300.dp + } else { + 100.dp + } val lazyListState = rememberLazyListState() HomeKeyMapListScreen( From ad290901948b002edf36c32f1da7c9b35999ae31 Mon Sep 17 00:00:00 2001 From: sds100 Date: Fri, 2 Oct 2026 15:41:22 +0200 Subject: [PATCH 44/64] #2277 create device frame and text in screenshots --- .../en-US/images/phoneScreenshots/5.png | Bin 602173 -> 287884 bytes screenshots/output/key_map_list.png | Bin 154652 -> 0 bytes .../screenshots/KeyMapListScreenshot.kt | 45 +++-- .../screenshots/StoreScreenshotFrame.kt | 188 ++++++++++++++++++ 4 files changed, 214 insertions(+), 19 deletions(-) delete mode 100644 screenshots/output/key_map_list.png create mode 100644 screenshots/src/test/java/io/github/sds100/keymapper/screenshots/StoreScreenshotFrame.kt diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/5.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/5.png index 2d9d2acda1696302234497e33186480dae51b95a..0cf82379a53a1532786256c34d59956b94355459 100644 GIT binary patch literal 287884 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:T(1h7n#RRSP=O&w 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�Qib0;=A%pas`pg@;y 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

    vvU;vT3Oolr6ZhXm%T<%MS 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

    &O$=&-e&3{AKvf9j)dCUM`()k@YIN3H3h3}a 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 diff --git a/screenshots/output/key_map_list.png b/screenshots/output/key_map_list.png deleted file mode 100644 index e0900b89c3d1e92ae50fdb96f4268b812209f75b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 154652 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

  • Y-d>Kfx>G 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 z%0D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 diff --git a/screenshots/src/test/java/io/github/sds100/keymapper/screenshots/KeyMapListScreenshot.kt b/screenshots/src/test/java/io/github/sds100/keymapper/screenshots/KeyMapListScreenshot.kt index 7c53417d73..73ddd6ae37 100644 --- a/screenshots/src/test/java/io/github/sds100/keymapper/screenshots/KeyMapListScreenshot.kt +++ b/screenshots/src/test/java/io/github/sds100/keymapper/screenshots/KeyMapListScreenshot.kt @@ -8,6 +8,7 @@ import androidx.compose.material.icons.outlined.Fullscreen import androidx.compose.material.icons.outlined.Map import androidx.compose.material.icons.rounded.Abc import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.MaterialTheme import androidx.compose.ui.graphics.vector.ImageVector import com.github.takahirom.roborazzi.captureRoboImage import io.github.sds100.keymapper.base.compose.KeyMapperTheme @@ -31,7 +32,7 @@ import org.robolectric.annotation.GraphicsMode @RunWith(RobolectricTestRunner::class) @GraphicsMode(GraphicsMode.Mode.NATIVE) -@Config(qualifiers = "w400dp-h800dp-xxhdpi", sdk = [35]) +@Config(qualifiers = "w540dp-h960dp-xxhdpi", sdk = [35]) class KeyMapListScreenshot { @OptIn(ExperimentalMaterial3Api::class) @@ -49,23 +50,29 @@ class KeyMapListScreenshot { ), ) - captureRoboImage("output/key_map_list.png") { - KeyMapperTheme { - HomeKeyMapListScreen( - appBarContent = { KeyMapListAppBar(state = appBarState) }, - listContent = { - KeyMapList( - listItems = State.Data(keyMaps()), - header = { - KeyMapListHeader(state = appBarState, extraContent = {}) - }, - ) - }, - floatingActionButton = { - CollapsableFloatingActionButton(text = "New key map", showText = true) - }, - selectionBottomSheet = {}, - ) + captureRoboImage("../fastlane/metadata/android/en-US/images/phoneScreenshots/5.png") { + KeyMapperTheme(darkTheme = false) { + StoreScreenshotFrame( + headline = "Works with your device", + subtitle = "Use gamepads, keyboards and whatever you can connect", + statusBarColor = MaterialTheme.colorScheme.surface, + ) { + HomeKeyMapListScreen( + appBarContent = { KeyMapListAppBar(state = appBarState) }, + listContent = { + KeyMapList( + listItems = State.Data(keyMaps()), + header = { + KeyMapListHeader(state = appBarState, extraContent = {}) + }, + ) + }, + floatingActionButton = { + CollapsableFloatingActionButton(text = "New key map", showText = true) + }, + selectionBottomSheet = {}, + ) + } } } } @@ -92,7 +99,7 @@ class KeyMapListScreenshot { uid = "2", triggerKeys = listOf("Button A (Wireless Controller)"), actions = listOf( - chip("Input KEYCODE_SPACE • Repeat", Icons.Rounded.Abc), + chip("Repeat KEYCODE_SPACE", Icons.Rounded.Abc), ), ), ) diff --git a/screenshots/src/test/java/io/github/sds100/keymapper/screenshots/StoreScreenshotFrame.kt b/screenshots/src/test/java/io/github/sds100/keymapper/screenshots/StoreScreenshotFrame.kt new file mode 100644 index 0000000000..33105d41ce --- /dev/null +++ b/screenshots/src/test/java/io/github/sds100/keymapper/screenshots/StoreScreenshotFrame.kt @@ -0,0 +1,188 @@ +package io.github.sds100.keymapper.screenshots + +import androidx.compose.foundation.background +import androidx.compose.foundation.border +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.BoxScope +import androidx.compose.foundation.layout.BoxWithConstraints +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.aspectRatio +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.wrapContentHeight +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.rounded.BatteryFull +import androidx.compose.material.icons.rounded.SignalCellular4Bar +import androidx.compose.material.icons.rounded.SignalWifi4Bar +import androidx.compose.material3.Icon +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.CompositionLocalProvider +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.platform.LocalDensity +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.Density +import androidx.compose.ui.unit.Dp +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp + +private val PhoneShape = RoundedCornerShape(56.dp) +private val ScreenShape = RoundedCornerShape(44.dp) + +/** + * The width the app content is laid out at before being scaled to fit the phone screen. + */ +private const val APP_WIDTH_DP = 400f + +/** + * Decorates an app screen like the Play Store screenshots: headline, subtitle and a phone frame + * that bleeds off the bottom. Designed for a w540dp-h960dp-xxhdpi canvas (1620x2880). + * + * Must be inside a MaterialTheme because the fake status bar uses its colors. + */ +@Composable +fun StoreScreenshotFrame( + headline: String, + subtitle: String, + statusBarColor: Color, + modifier: Modifier = Modifier, + content: @Composable () -> Unit, +) { + Column( + modifier = modifier + .fillMaxSize() + .background(Color.White) + .padding(top = 48.dp), + horizontalAlignment = Alignment.CenterHorizontally, + ) { + Text( + text = headline, + modifier = Modifier.padding(horizontal = 48.dp), + color = Color.Black, + fontSize = 56.sp, + lineHeight = 64.sp, + fontWeight = FontWeight.Medium, + textAlign = TextAlign.Center, + ) + + Text( + text = subtitle, + modifier = Modifier.padding(horizontal = 24.dp, vertical = 8.dp), + color = Color.Black, + fontSize = 30.sp, + lineHeight = 40.sp, + textAlign = TextAlign.Center, + ) + + Spacer(Modifier.height(40.dp)) + + // The phone is taller than the remaining space so it bleeds off the bottom. + Box( + Modifier + .weight(1f) + .wrapContentHeight(Alignment.Top, unbounded = true) + .padding(horizontal = 28.dp), + ) { + Phone(statusBarColor = statusBarColor, content = content) + } + } +} + +@Composable +private fun Phone(statusBarColor: Color, content: @Composable () -> Unit) { + Box( + Modifier + .fillMaxWidth() + .aspectRatio(9f / 19.5f), + ) { + SideButton(top = 216.dp, height = 120.dp) + SideButton(top = 422.dp, height = 63.dp) + + Box( + Modifier + .fillMaxSize() + .padding(end = 3.dp) + .border(2.dp, Color(0xFF5F5F5F), PhoneShape) + .background(Color.Black, PhoneShape) + .padding(13.dp) + .clip(ScreenShape) + .background(statusBarColor), + ) { + BoxWithConstraints { + val density = LocalDensity.current + val scale = constraints.maxWidth / with(density) { APP_WIDTH_DP.dp.toPx() } + + CompositionLocalProvider( + LocalDensity provides Density(density.density * scale, density.fontScale), + ) { + Column { + StatusBar() + content() + } + } + } + } + } +} + +@Composable +private fun BoxScope.SideButton(top: Dp, height: Dp) { + Box( + Modifier + .align(Alignment.TopEnd) + .padding(top = top) + .size(width = 4.dp, height = height) + .background(Color(0xFF3A3A3A), RoundedCornerShape(topEnd = 2.dp, bottomEnd = 2.dp)), + ) +} + +@Composable +private fun StatusBar() { + val color = MaterialTheme.colorScheme.onSurface + + Box( + Modifier + .fillMaxWidth() + .height(40.dp) + .padding(horizontal = 24.dp), + ) { + Text( + text = "16:00", + modifier = Modifier.align(Alignment.CenterStart), + color = color, + fontSize = 14.sp, + ) + + Box( + Modifier + .align(Alignment.Center) + .size(20.dp) + .background(Color(0xFF111111), CircleShape), + ) + + Row( + modifier = Modifier.align(Alignment.CenterEnd), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(4.dp), + ) { + Icon(Icons.Rounded.SignalWifi4Bar, null, Modifier.size(16.dp), tint = color) + Text(text = "5G", color = color, fontSize = 14.sp) + Icon(Icons.Rounded.SignalCellular4Bar, null, Modifier.size(16.dp), tint = color) + Icon(Icons.Rounded.BatteryFull, null, Modifier.size(16.dp), tint = color) + Text(text = "100%", color = color, fontSize = 14.sp) + } + } +} From 0d261c8aa73c4a82dd536f2773f966c35f45b6f6 Mon Sep 17 00:00:00 2001 From: sds100 Date: Fri, 2 Oct 2026 15:41:34 +0200 Subject: [PATCH 45/64] #2277 create screenshots when releasing --- fastlane/Fastfile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/fastlane/Fastfile b/fastlane/Fastfile index bfe3fadcf8..57d80f4044 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -26,6 +26,9 @@ desc "Create and deploy production release" lane :production do prompt(text: "Did you write whats new?") + gradle(task: ":screenshots:recordRoborazziDebug") + prompt(text: "Check the new screenshots") + version_code = get_properties_value(key: "VERSION_CODE", path: "./app/version.properties") version_name = get_properties_value(key: "VERSION_NAME", path: "./app/version.properties") From ad96ddc2fcad500304a51956bdd0ef64b8506961 Mon Sep 17 00:00:00 2001 From: sds100 Date: Fri, 2 Oct 2026 15:57:24 +0200 Subject: [PATCH 46/64] #2277 use google maps icon in screenshot --- .../en-US/images/phoneScreenshots/5.png | Bin 287884 -> 290747 bytes .../src/main/res/drawable/google_maps.png | Bin 0 -> 30221 bytes .../screenshots/KeyMapListScreenshot.kt | 27 ++++++++++-------- 3 files changed, 15 insertions(+), 12 deletions(-) create mode 100644 screenshots/src/main/res/drawable/google_maps.png diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/5.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/5.png index 0cf82379a53a1532786256c34d59956b94355459..b0bd39fdaa5648b2f7f90d457a9480916ea6fb2d 100644 GIT binary patch delta 185468 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 z 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∓=f)EiNQTA(=Goc(hK_ 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 UuT`l0a^R_B=D+8fT)h2%06Z+_&Hw-a delta 182592 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

    o@BFZ9 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

    C$-jPOmP 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 z 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 literal 0 HcmV?d00001 diff --git a/screenshots/src/test/java/io/github/sds100/keymapper/screenshots/KeyMapListScreenshot.kt b/screenshots/src/test/java/io/github/sds100/keymapper/screenshots/KeyMapListScreenshot.kt index 73ddd6ae37..573d0b8474 100644 --- a/screenshots/src/test/java/io/github/sds100/keymapper/screenshots/KeyMapListScreenshot.kt +++ b/screenshots/src/test/java/io/github/sds100/keymapper/screenshots/KeyMapListScreenshot.kt @@ -5,11 +5,11 @@ import androidx.compose.material.icons.automirrored.outlined.Message import androidx.compose.material.icons.automirrored.outlined.ShortText import androidx.compose.material.icons.outlined.Add import androidx.compose.material.icons.outlined.Fullscreen -import androidx.compose.material.icons.outlined.Map import androidx.compose.material.icons.rounded.Abc import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.MaterialTheme import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.platform.LocalContext import com.github.takahirom.roborazzi.captureRoboImage import io.github.sds100.keymapper.base.compose.KeyMapperTheme import io.github.sds100.keymapper.base.constraints.ConstraintMode @@ -23,6 +23,7 @@ import io.github.sds100.keymapper.base.trigger.KeyMapListItemModel import io.github.sds100.keymapper.base.utils.ui.compose.CollapsableFloatingActionButton import io.github.sds100.keymapper.base.utils.ui.compose.ComposeChipModel import io.github.sds100.keymapper.base.utils.ui.compose.ComposeIconInfo +import io.github.sds100.keymapper.base.utils.ui.drawable import io.github.sds100.keymapper.common.utils.State import org.junit.Test import org.junit.runner.RunWith @@ -38,19 +39,21 @@ class KeyMapListScreenshot { @OptIn(ExperimentalMaterial3Api::class) @Test fun keyMapList() { - val appBarState = KeyMapAppBarState.RootGroup( - subGroups = listOf( - GroupListItemModel( - uid = "0", - name = "Navigation", - icon = ComposeIconInfo.Vector(Icons.Outlined.Map), + captureRoboImage("../fastlane/metadata/android/en-US/images/phoneScreenshots/5.png") { + val ctx = LocalContext.current + + val appBarState = KeyMapAppBarState.RootGroup( + subGroups = listOf( + GroupListItemModel( + uid = "0", + name = "Navigation", + icon = ComposeIconInfo.Drawable(ctx.drawable(R.drawable.google_maps)), + ), + GroupListItemModel(uid = "1", name = "Lockscreen"), + GroupListItemModel(uid = "2", name = "Gaming"), ), - GroupListItemModel(uid = "1", name = "Lockscreen"), - GroupListItemModel(uid = "2", name = "Gaming"), - ), - ) + ) - captureRoboImage("../fastlane/metadata/android/en-US/images/phoneScreenshots/5.png") { KeyMapperTheme(darkTheme = false) { StoreScreenshotFrame( headline = "Works with your device", From d12e88f9106ee5f38d62fc84dc484be5563a7e7e Mon Sep 17 00:00:00 2001 From: sds100 Date: Fri, 2 Oct 2026 16:03:14 +0200 Subject: [PATCH 47/64] #2277 create first screenshot --- .../en-US/images/phoneScreenshots/1.png | Bin 618311 -> 268307 bytes .../src/main/res/drawable/youtube_music.png | Bin 0 -> 12007 bytes .../keymapper/screenshots/Screenshot1.kt | 104 ++++++++++++++++++ ...KeyMapListScreenshot.kt => Screenshot5.kt} | 37 +------ .../keymapper/screenshots/ScreenshotModels.kt | 49 +++++++++ 5 files changed, 154 insertions(+), 36 deletions(-) create mode 100644 screenshots/src/main/res/drawable/youtube_music.png create mode 100644 screenshots/src/test/java/io/github/sds100/keymapper/screenshots/Screenshot1.kt rename screenshots/src/test/java/io/github/sds100/keymapper/screenshots/{KeyMapListScreenshot.kt => Screenshot5.kt} (78%) create mode 100644 screenshots/src/test/java/io/github/sds100/keymapper/screenshots/ScreenshotModels.kt diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/1.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/1.png index b8c37c7d86c205f1e6b945bec81891f3cb092e8c..2b92d2bd205ae9435a0ffa840fd424351454c10c 100644 GIT binary patch literal 268307 zcmeFZXH=7E*EWpfi1*lVfWd--jUpfjNFpF0iiHwD=}3_-B_L7-0xAju0@6!pQbGr5 zp@WVf(v=8E0HdH_s3N^2dG{4{?wRL)zVFw&*0X&wI z+rN#4g=MGmWu>buEUelrEZfiiixpmROzB!=VY$PitfZ*zX)-l@yMRxpTEUSaez@`e z<6VdE!@G{$J$vVn;xFuX58a4AwxjL9<12H&>^vgzFNt-akQdTPo7=o^@H8KbC4FHf)^lo-9+_mse?5C{gZ?!H_jLQWT|Fo_%?}yqSgdg5s7tzjdeWXSweBWqlKi ze|p+4C-34`J_hzO=(7x6UZ1aui`48?g5Md59eJBrE(SL6vYZrzM05Ve%SZcqEyCq= zhh0gS-UOQzgXu;Fz1JF#)h(=<$m=a_7rl0(^wp8FgO|HxXX|>?LqrWvR1V$hU7IX6 zovxWI>W#R>V~~tn8c4>Rx82%LRBDs5H8ebI{ycuW?w_CE%zhzSxVWx#ZN{VVTBlUM z(ZGiyQyA>+JS=g5Q1kWA?fG#gUdM+!e|!FqNqBupe7Fx=IjlR~us+ipeO#+_({S2+ zvzTuQ*}3JQtW&#MX72NU&IoRIa}eICq1w=;Q>sjH=&5y9jBcK2&6o5E7`wVc*K6?{ zR+ha7*L+!?r9oaUzj1`?YEMDkx3=C{KgRkKUyJ5{jv#V8)vuv!#areEK4;)YMrdAk zs;>+!{`@}&s`*YJ)#oZQjlFgAUHF~v_`OCXjeX{t&o2{$|FO<#X`aGXw8j2zR=cPZ zB{yl;oa$qIH}3v(RGhcE<(9Qg*Lvbg70H&E9rC80A0I57+;RV(Uv(#*HUHBy$8<|- zR$LLCzTB7{m@%uuzkA&G4LGMoym-1{$gg@FBs3a0UOZ?_7f81fU?n*K^==1gY zz%z$v*cu_)e(Qsjp7SI<)?OBtjPsQ6D@z%?G(p*Lyyae=$D89X1Ca6J++H?YN%1uZ zbmc62XC9){Ex+#I^>FRwkJ%D$gEz6NDsD-;6v*Rsqi^5A&jnBa+}3MfTp!CrXgK*} z(jQ5{0G?mf-1OzSc*}t(H>Jr1PKvQHZ^I}`t)8iw>^a{r^y6T*2m;XCD*_{Q_WB&7m)E?<^vvWPV#0+z z#^q$(@^HRzQB}Iv!kbI^R8n?!trP*~qqb(YVLi{KTds2LIh(KMiKowg8CV)rDPJ6N z>CUQsyZ=AGdgV(-c-~I*(8)<3V#MA<^lrw6#yB=ULDGg$+f&A-u<^8JzDritsbXRD z1b)_cxwaQ}T;j|{;s2PMmrr;@USEnBeYTmcz{GpHqI`A41olZ6UW_Uq-36yC3N^g# zKL)TrTy9B!(#h4Kw3UA|^%Z@!+pj3r*nPmkPlb1-W?zTP{AcS@PI2(qwUC3d$h*$M&{}KAyv}Blh05XM5BC_4M_*?N$f7*n`a5 z4tfklprkb=tvho1^esXiOjR?dE4BY~UUpx&Q(k6pq=cs(Vn-|r&6(moQ*HNr%bt#< zYTJ<$G3fW6N3lhF|6`~F58W=ns2U33!`aF1hU6j5>V+QFGMs3HWY_7V*u4McBd3?% zS(JrY2TfIthA~$Ph1ND_pav|X94Pp)d{dg8ed_T4JS2zamIj^lwu?MH+xNyH@dB4Y zX0L6r%G#tUBXQaax?(xBx;>mml|kOoF@sA=A*g`HwPnYm(1Ao>Bm(J^_V(OWzn*uu09Z<$|rk42gKV zj{iBl4=!ZEBTA0-i+$y}znK+Q^tH*Wl7>7eI9tiko%3lj+b$!g-;F_A)`KJ9?KT>U z*3~n`xh)P-=tN|R-TI9^bTrP)DcR&nPvE{j-`cxftnPI}tZ10=hGVA;q2I(CJMPE$ z$mW+bQ$3#2_2Fw_<$F8qG|#Q#`X$4~*XP;X2+JX-jUkXHry?uaw<`BAm2!y} z7fsiqpJ>?5<2_Z;%M zVW4O}d48S3XkebO@uiG#dBb}8+GK-E8ruTxVhEjrP(5Y@=pKN}E!$;HDySYyUReYJPFkwNPs)(lkY*V@2T6osAn_Npswy%SAQ z!|&ZEelv{w_dUk0R~AXB^m6ib|DAadP)^BOkG7tf@6akFlI?om=4$1`4$F|-?KfM$ z+`~`pX%}l8Iv%_6NkAdD&)8#_xp~8A`l};*8uf9D`KE=i?ZPLLT)L=34^wg|QJALA z@~XprFx7gL)h>@bF~8OJfs#ZmFx-?|o1fNYJ&hTP+P8n`AfLan?B`v5#JnfGFxwK_%eb`_#N(x_gZG8D4X&wptvX^{sSX zqWCdfNu%rPDRVZCQk`!^R^2X# z6?ab=nzr_8){tM#Bs-LKmdUk>~N{p>u>nDTz%1$mwky2FzqIUTWL0kR_(W>$_q`etW<4 zz1O5wYQC+ChV#jXif(5j_L8@MT?iJ}QxXc}Oi7B@h+J>sv*JKyt0o;FNI4 z38KE+L~gb&W4)1qpHbl_0Au*&`LL_fnv! zlPW$XC6MB2UbEUjhD2V9o8b5NjjXfWbU3)ZUdT=E(Uk?NqH?3606ZxkPp*jx-9*9IqeryU2TyT-X)ZH?@+PJk>T)|~%hbjZBz>cPm1ik9H zkn8I`*Sts8=_ry525b&kni~drZnn_R9ujmb5(9`rCD;h3d`r0LFHlr@x2V&mtbC4B+3TcZnBenSMS;KL8tHEs>ui7pf)G%% z*1t10E6zk_@(>DhCgRK+8dbxuOdltg)6)9&qJ#$*)gIzrW9O|7y#L_oou1U94+XyPLXgD~H|N>BEQEQ>FX|RUs$0_?0)fBUqK)xlBc=i{>!69 z9#rv3sX1BcoXS88>_b<-n$7@j$9PAgQ&A&*&B4#B^Q!8J-Y-64%+;#UV2EV{w{V7R zqRmL$Dm{Gwg(=wj+A{65$jF#J)z;VjompUc!bO!`T`%`@HnE^s8B_|dtGW1O(9H~K z-#wy@8{bm)a2?bh@p&j+6nLT41y@i#;M7Q4dUB?Jlz)WVsV-t>Msux2f&Qk=H3-8o zuF=7rYJxASovE3cT}m_)$!XeuV12sMlvw;CUS9x!tBH!jpRYpDo+|2{OCS8%2$+Rt z1R74ORtCurq%~~!TPjPnS|`~r4cMf*&Kn=UE%$cWKAcW@2hoUM6c&i#g2d+J7lfef zr~Dy3+ck^JdsJ*WLd&Id!tP#I+w_=TZ`OtybdZcji`xWIIm~%Uv=qT0yk6rI!P9e#3nUFjzb_je?^u&Nf8V}l_C>V**`;}nFD;}hDupWb zV##;`uCe4xA{*^;l0xJ9@N7@G#5eP~(FOg*M12Ij+A_HUf{c=N`+b+B{x!l%Pl0%oe%COjNbn9kMUz&``GGi{> zFNv0Hrq(ej_sHdI%l-p%MBSQ34)M7FC57?6l;p_qHQ+V$0r%0dwVB%46y&{Xp$mXM zaWgqP!sAPG7r1d)D-s4xb5LB!2$K<7pEr>dL9dJie1QxQJxx(+OLJUf%O`0l$jM%; zCoJGgN9Q)?yKUCr*t-wA^}Eg&hE(oX^=*{GwG%!qYEp{N&>Fq|8h#MBtL^wx+n0&z zHb?A63EFBwS}NTB6KwJ;X=KPdr3$=b4uB(Y3G=t>9IHMCq-&M$IInA971Nbo=YRE^ zQL0qTg&~%3{3JD%%|+M9xp|_Z-$XU6>w2;~*>=Epmp3e2S(k@#T}dR}pm<-vJ(a2R zLnk$su}Ap1EHtujaO;$a8hiP8bsh;3k!W$tB;SPmWd&pB(!YMUYt~U=`1W}6fbT*g ze68%TPd{@7+Ikq=yg!ci-rL0uYj%C&4vFzSW)hI>?Mu7gor2`=L00QlVapqxPJp2t zUoQ)KT(yeYfiTH*jnZ9O=4)w@Tb?^c!?r(BQ+1mY-Ahuy|0{^b6U*Jnmzp%|;XYs$ zm#%euXHD8S;M#ij1tk}WrX13N2i^78#4latJj->>p=4@hAyHqUI2A?lnRnn#`~>Gj z1%E@QHPAjxcBTrpyD+ldg)cFjHhygP>z`tLMjUk$Ma!ifMhKq~+Ifo4>3-}1?P7$) z0uP9xEeAy_K!l3%A^@&wK|e2XbwzzIDzFpn5$ zU9&V##GnQ;wGK>W!`@|A6^Wo#2E_u6D0bn%Y4Uh|d141E*ollJ=U$ttSiN>39B0Tb zu}#YpfD#jZry^VcZCJGs`lkRpQpc{5E`D@d{T!!(x5d=eizD1_{k7_dcdZg{)~Cgr z5|)o~jcJU2xxW@%D_gx&CII6C_%*xp^%4JxGkc6~Dtg5m?ir_9;w5WE#e20Br2FT0 z*vVvio^yj3)wN{vR`TJ!Hb_sBwiLBhA0~SK9A~PoK))Q+oyrquQr02So{4wDw7Lb$ zr$W*^g3bFQ{LHt@eeT5rj4m%X~z3JtH{-BQ{}u}&ZMbuQ|bhn;x~E&|~M zsKKqPdTYj-(g3H*aPd?70xJAjsjrTPcZ4YyGf8;oo;@0~+0(IYtlSQdQT@S@TRsuc zPi&m!l5lGS%iGud>H(O?S8;0JiQsbCnVtM6!2oCh$@<2?$(?zlK@~vN>&k9eb=cH@ zxVPQfFWVH6YI@H12BXFTG&nSjd0aZgd&_M}dB8kQ3_oD7Z|NLQ@h+0=r;FB3^~BAO z0$x_F;V%5rVzbZ5+$-Enx?fM<>_NjHr4+Bp!U3|N%$H$tq)t%3aIeu*>@1{1|9xaJ&KGeT!e>q4I za=IE!XsD`Tpz%tfVcWX@kyD~LJSckjgCd);u6Z`wl&Yur8P?B%MzG@C z2~=vXmg|Q42>%$yd9m?2n@_yMDiP;LTd+ERtTaHC3M9DtHzA1x=bURaJ_V5Koom=UaIT zd{Rx2>nFIUy{OBdD zO4ml##jwS$>0kN@ky;1d1CgMPdH03Sj&xt5%r;UPGy&QdM%E8%w$~Ot?5frG#39jh zTPS^^KTXE*UoAt62;->PE*FyBWigRbUU=13rg1*0Ny{Htrca+WNu>HyWHNpi_Mw3C zXl_e+Cp)!eRjj5f`ql9wqK-y{=~y+jK#m8| zktqA&C&*nfI1;%i~cx+GpH&w2o(C z(HI3n7`3IE2Ys98_NRz)>XDHkQv7x~Y?;!C^{~EHarEx($Fs4qYC{K{^7sDk;_U&~+!guy#*_y|BJ{lp zZ_NiRg3{X{S0q&oAIp&Gys=TBGQ8IqA`+={&+m=fu^Q8-gq`Wc!}8~I?LRY#Z$kvJ zIB?C^g2ZSixiiFIaZc)Q6MA+zM6aB*%Zk*L{%k=H??2%?WQpe^{Hbpq#8-;Dkrt{7d#jd=xTa;hx)Yj))YQc!b|-}j=Uo(#gbc3Lk3n2fMN=;0`_JPVOQ?)adF=Av zwi_zNwH}ZOq#1*2{u3a>R5)#(FfeCHnz=+O7uO7R+t=fsc+59|nZDKXMKkq2(f0^b5MVG1ex0iCOa*e%IQbJK=K`f!flU)p( zt;|drK@IP$;*3jiwvmw7Phrz@P+g0j5=4rY&iyJg9j_~cRnqSRdi6}@?DK5_BNt74 z4CGbEPvBu6q6f3tZS&K<(bs49FdQFM%Cb6hP$7hgc}dRVDI3=0rpum-y?SL(RZ^G! z9PK(E+N6C2Tev8xi|CozwQt_(Uc(|6MXq{T=?ri;KbwJGFCS*8{!oEW_Keu3m!BUv z+WYczr`tT;s;)@}QR^FEM2GC`6J2&BhrNeCzd|V}KxC z$x2tUx)(3wL-zFtNiULUwvq9>^2)1P9}~5X%n_RpT~M@tu@l{~ly6HG$}z$%_8MHn z%(t7;C9ni1m14!$OXgiKgx-Hs3BMo~)I6#hycpbrB6mRmi<`N4^a`htRI>>;Nh79# zXJS1RnCU-PLKc*qQshi%3oYnT72T*0v}zXv6*dkJW)qIf^%Nfw!}C=@dk#= zj&4**6(05km{^9hi`3GPlfs%Gi%w(}C1eI~`BPPzzA{>dT8m)fpO}Wkj)}a-wI=y|S(b z;Y0jOKSioqx8y6EKYkwzkRHUmyna(ZIT-(l#|c7%%5tGHQe+@>o+<@OXoWr1X`7uK zi;_HPx=!vdrP)WKwh3j0utkK3HJrv0W>N31`-8xSaj@rXzV@67Cx9>egS|!Kv$;>f z!bO)ovTWvLBOM##L;!|S2_b?ALE=`RHI|U9{}za}G!qU0`xqS?IjIj!tPE!#d5P!t zG3-6RkSznG(cWWNksW7LTU}@fw5wUYD~LPKfGn+s|6YRb3(Ko8*#!uMObMTI}rUQVD zNyF3uC_N-#8{?ErYj^S?Av44F$l|}J`P7z}Rx^oRd8#LVl@<0+ylQsjo%sIX3^^lJ{wL z;ZXni{h3$$+mV7MmEg@j`5<#}Mlbz3_XPs`NN1$$di^mjai{aGl!Lg&H>V=j{Eh=P zLW*)16YsTsI=OFaFX)CIL?;Zpi;JW;6qfYd>k>0Nx%cvQFPa_CnF7s!ph2n?;B*ha zm#$aDhgVPK#Ls}}hNk$Gt${)vUqL$d!gW-Ti(O;6xc>m;LF(A0KOuo79}F=mMXHCX zzH7EXAF+T>2Z$~B2V90ZhJZUu8SgQW#)+T< z5PYg4B}(pRyjp>LrZ_eT!<4%aI~{L9{L)5>GBC{69#yg76%76bo5GnvN3oy=wQEe( z<046E;%`7POSb3tEirWbBmW6g##%qJqKtJvhS>icshM2Ag3#eafQjRt=2Z&?HtvP~+k2jlTsKw(vx*g41FKtZx?mwN+! zvDn7%J%$Ij@W!&cX1>q~Cp>5^Rt@C{5@wIqH-PWxMELa@IVk zk=U|;602Xhx(JG%o`&3__BiVl?292CcMw^oJf)QJnyKVUq8c|tG~6cSvNY}FCp+jK1&YTB zTaNQ)FtgbyUUo3E)lg@Knf((OLDDpg7f5&_jQ0S9#(}vne26WfhU#o!5h_)R4MoGW zyVq1tfa2UmH$hiVmA3a_!rF<0j(BW-+!=7fKyDFY<`&U4zs0}kRaUlZkQyF!0viy! zPrKjd-PT^D5^hryUDhR&KX3gE)bs!8Vw=FT!>uq`sk=R=0fJN(OnATmV zKiqMEd38GJQ2jafeB6UQCZ`AcP0GMrLkM)X9D zz232>y?XcLvnDSMDzOIR<3}uHPVUVGhF8X45Ik4B2iXaLfPd_S7pHSl#4Rq4FY~cJ z2obHhLG0#`!tTmZMds5YgzBy$8o(1YkK4P`MKSAb)VGXi*hFZ#M@L7Yc$zZ?Hj1fu zSG<_-Tu3kEpeRS*FmtbbSJ~lDuu>TGfWhl}<&qO&7b+>TNX3_!Y|;~s&SFNKHC0Bj z^v~Qv2ER{&n;?D+N=X>}6D!u<#eD?DMX(KArA^r=2!G?8I!X9>z8#z;rG_1&5dH>> zYypd$U)R9_V;x|AyS3^r* z0#}hOG1TPNd?z{^FIoh0puVqDz?_$UB;8c{FItI+qzJ9tvd8E#>U{f-yh+I&{uA+R zwVw<(y-57IlqFKh4Fa9Oabr>9rvj?eBob1LX7plBeODJwhDEz{Neh6g^J!1x%7q%L zI4CaOq3>_tNr@-sIQ`a^Yn3aVf~Vls0aOj9?&Cbv|Gy6i1a;#zzt4X`-J+_I-~zz9 z;-PzKR+`4Cio5b4IydSaK{ZP5LI#LtSJo*)e0#;puZ$s`a%iNMPyT zMQdCFXB6VUIN6gvigy>pTdQmA@7d))v9`lp^C0@($nxP7UCgqLMD}0nmDTrqe2fWK z;7pv^iJT_P2iL)?sW6=<<)V-Bb>Z1V3@`nDw9j&1IP7oq`tm474aaGp)zP}#uv|Yy zaYL$=r-wf|)UQqC4>V5mA#k^bs>_VGF5%?x8Sbm6 zP;Wpui>Qzd{%b(^dn&V6H1|1hYSR&ssVfXq8MKHQd5)J}eTi;}pw-SV zjG+e_XZhVIAs}7~-ok-~rP_n3Bs9^xf*VXF5giauYmENkojK~15sGS)iNQdnxI2@n z`mdGC<;Z`$&ryoH^zTz8EcdzJvricun=!3_Y>DxcMig2Lk}BdgaV4eRhGGC{+!)ci zuYbBmS$KgeQ|3p(5GlUvu2GCE?cY}+VQHX;6PerOJ)+M2omJH#qQ|5*suM_dH0pc^ zG7DpAYkk+8I?48u;&B_`#kh)?GLoe!-7=E}6Tq}{2^hRC)55alN^R>d*{R2X4gU(? z-cZgin?@-sWIw0I0(uX=*Vc&mhXzWhd@e#>O@n)>lv#eUy07PITBQxK6}_b(9BUEO zsC5q{V)e!NY3O0==0Eh*(1Us3hx~;>^B_fm=Qm&*D7qEi%Wd3X!u@aqGcoN1_gs z1PmjJ)8B~Rs}Oh_L{W%S)7=CzV=wEAH9p?p@ss@mF#eZ!}dEY z+jnh9P^EJ4SjoG2WXrd$&o-uFuT5m6edEP!<0&hJ`b!pm`eCKqNMZQGY&e=3idqes z;Uw9Sy}xE4XiKx|(B8(+vDaX`P^JC)~$STNm$AP z1cnZ}V`Tym5*ZrR7vRk!O0wC>NBu7b-Z1dEzg@uxM$=Auxdo&ls}9TGNvAVYi)}{& ztd7I5kAwPxmq5yyed;8Uk|y@#Ezj3&kL>(`C)QU+!)4L#J=o<$&q$m*S|U)B&jp5wNtPgT7H< z&yuv|P`ibB|0O=gHLu`HV^b$(VKx+fg_GI~YG4eu7~f>bnG3F8fpzcUv1l!IW%OVT z^Bm2Q{wb(@^(z89b^*+&!pd{D9&7&0D(9yFSZ$Dzwh|*D5@>m89vt@|UyN$nm}acB zDD+sbng5(t7a|l~tOp$<*Joj4z5to*0Isw#yJ;aT9nnposbN|P(*MZ;BprzE7Sw2s% z;V>5YSAs8*aNO7d$s(pi4N$nTfdPWi@8pjGf=b>6 z0|Y{5P5w2?$mm+nd|F%`*q2hVlJCD=X86<@+0tO31x^o62l^*rgb1%8erro2U{_v>`ivj$c}+LM(`F`0jnTfl%o zZX?yXPl*7~yjqjSJ82Sa)EE+Emh9Ho+V#MZV@uy|`@>m&eHg^%V>w%c#;q;bK@Fyr zDEHn0YH_L9NvK71(d!1I*Se;4TPL41P*%P$I;H=Xj=nmHS9+1F9TN3@XoxugpLkM! z^;1+ArXS2&oiHzWR4*9QaG;|>g|pdVz1~_=>w(XErTv<5XZrup9xI^A{8rX}QdCU= z4o%hbD91+Ip;Pq7{$0xBr8P?bRq$VG zf5xG=*W7w_%BIn+h^rSRe)ENq=5Kf`(V*{Q)Q)zKGqic2TROm0{MzZX|XEBg4#MaB%M@ZEIpO6gCJ&-WNl;v@TCn5~-Z9h-bYH~mL|cR>(M zfj_vU?|f0>KsR$4-F!Y(cB&H)%41Y-JhJRN^DNBXgYa_;iU*mPh2fv;K5@|V!`*=; z{IL{PF{#fQ$6uIeN+VJiDv{sun4}?6PnbIM1qE5gdWlk_OwBDpk#A%agw9!m%dZ$N zuY9V}1Fu+gm&rH&=QKVB%U(l-n*=yWZiVHl@<+z!iO>#Ukfwu*TL+LhX{R~tniz3v zu4y*y=b6be;e0^?RTT1V5=v4NMsynzDvZb)0INFQEV33cq0gtK2AQkbV%BYussJ)J zqi_{QgGUB4iKqN?h7P^yOIru!PzAr=P`r2v6bU?dt))TD?;!*uFh5su5j5U7;P#F+ zR6==B10D&6Af~9)gDNLE=u1+%O9NXK2ERYvOf09V#PC)tUl|mP2r9u;`@IJduc(v_7P+%o42C}pce!N5E%vIAEL~H6LG4eJ37Ws~uziE!&c6j;*3M1mF;Gk9i z=rh3Cj-^H=#5hx)d*u7{;K1sMBnvZ7L%*LHWON>?rjqsXB6K16A5&LfG%L_h9>|Y4>X_w)fOkCbRK=*O{#1;7P$M0iJ(PPYOv7!N_f2mNv9yNDl9#VN=PMg&Cx(+7n7R#Ak@Qmk7LemZs}7e#w~J+RC;KW` zisMk|Q|92zbsw}^H#)+%)$KU&+h`g3c#?}cahiYMLiFL511@Sr4Gifghm$XP>`J~E zGz2wxTP@ro97s0;uPPKo$WYR+u#M5tZ6(_!>i16~9yUDpHu1$V5TiB*8fHpbczQw4 zO`=QHyndN@c~rU1tT)zko)25h8zg^=+kV9DpL=i#0%QS=|2AaspKUwhN#J`nuqjhQ z6qyOoh%du0VD_9oC@lWK@XT+0T*&bEYnwu~V}OXags8UvowjEs`17-wRivNHc%uQR zrOouIPKkCAt$M%{a49YjplsH)k6<~q&t03uV<85f*UMS?`hqPVOd))O{a}I1owr%w zFOn+pRrfL)>_S>GW>mzlI6Rt-Ebk=FD=_92s6`9LNTM;7qcyG})UO#IVvA^91;3p1 z1+m5AA^x1|i3;t$k0KFBPYo3CvU~Wq3bAg&?hri!LEVvTbmd1tS43d0^khLz6_UWA za7 zf#E|0piX()5n($5|F+f2XUsPIfE2*46gC9YwcdNcU}-2sWeav zD!-kYxR%dOs%qY$#&bVygRLHmwd2adD}?h?v}_K&w|N z?sx*y_9ceSMgrh1&0*b$lFnS-k&Dj|*|MP{m6vq9A`9VEJ;{0|x3ie(d`ab4SG%BN zC13EkIM(2r(-B{JEEnv5dt9fATJ9o{@~loGf0!QUEw5Eaq@6GyDQgZNbJ^X0j~EhM z*3&I@1krv9XvABP^0GSFl>P~`zT3h`8&LdI$8Wm61CGGx&6oRZER(x>g1Frf)|37E z4FQDdoV7RMzHir_9bv6Os!(JfX!c@WN8jxEq^RtqTPkyCqIq!OPSm?Y_Qi!8OO=fn zk0k=scvTmRqCYK{nOZ8v|BKEI5$safcoc4_30nA&o69RI8FP3 zc!3S@5Bjz;+ohOHY_P(!)&cZ9Xq!`SwMZ61IGL;1d)6E4)TQ{yV=08t#Z!q7DI|bv zm0zSKQx-<85d|-*V(=og1}1lLwD3{NeW33q4=$q65GnR9d3EZ6>vV#bv2uybY4I>u zmt^toB4T$er}j0;XwW=2pWvY<$m6`o8)u_897)UEOw_qBml8$vu8MwE~)lK8Ww}+cCl> z^Cis=1SdP%7-fpxrM5+@iFy4!{&jOANkhlxB!__o%Qim~+!m&%*3OwK)kSl~(^T+U zdSEF2L)%Ns%dbUcsA>oVyF9=u}II?PJUkKFGlzK^#?*OEIgF&nn z$Wk+E?SHf^1G|F~c^@FR)OwoTiY7jRXHcVS%lrFoa7JH}KW#BE6yX$r>KEeHS+^g8^iE;}IfeOh9fZ zMoP8a(+8h@f}Voc4?NxK3h{@d_?)ANO?atc1R_xt7m+r^iZ{AUF{XwU$*49pK`SC~ zlyKu0T{ajkJl+oDxi9(Rj3m}8{V(I4Y+{%*Fb_ahkLgcy91QxUeImd3ef5)lXmty( zr=EE6ZSR=Xrsb_MzJF*V-AD;DLfFRXrtZUiTSK-UR0ke20fwdmgmiali-~8`K$oK& zx0{CM=w$A2nxTkK#09S7-z=ANZme%gSTUZitSU*ExkPOm)OnH4By<}KjF$-O90*Fk zRKtel^QCYZ-gweQ)}*Fh80l2Fa|N2TUuRW0N4g*Rtgx?%L*<7ylFbSc=5xWp)pLuZ zyo}RwM$O-s6fx}DOt&@m6yH~$cWI29*oCvxuVj~*KiyrL>HrshGGcVYs^)`lA{H5o`w{^E5G!-Sr0 z;5lD{FpQRkN`@1W%^!N!Puf8p%!?C!vZw2lAhe+D=LF1AE}j#1JKExFJW*=G!0f>v zJ?C}QkQ!}Pf+9v*YKrQi$QLai$bS{7e06z|0lekxWl zI~sWI9Om`T08vGlm9;=${v#?6iMCe>g!U^?;(GlIKv%Mx;3aVYF0;=Zd45Gk00eOH z7NS@b)L&6otL|z4vv>3gQiHXf0S`p&yh7`tZ9>kppg+&mh(*bPp`l;1Ui{=6r0Ovs zej5-Q^}G6}KzyXA+&6_pgX?3IErz7uG;L1DLnTt^W1 zR-^#vrN7n&i66Tw+iB@Ck*x-wFD2uGMjOREj2LhPm5pG{N*fW@h^OMc~pgCD;= zL{5d~=m2E5PF2OeLaJG)UOi@|OM~wll<~7LJGGgJ%4vb|t-P1P-44c{nCTaXVDCNJ z5ApXGL>%sfPDg|BTcrZ5zAv63qhQO^kfCN4bOuEVia^&b-})@3r!T6GnZ0kNKTVlw z$+6bl60`dPvuPJ;577VW^VsQuIv2P-O-n5XPrcbQwahV*ds?A~W|yd=XDo%a{=keB zUfGOgifujvEigwkui>SI{n!=T5U83D_u1i}ysrMT>BA^eU+L`)ZIf2Kq+ z+M}N%^@11j0rsDmv{WY)RP-4pyKN2#0*bOGl|vus_Js;bLC^z#u&7YG8d_w|Qd7~b zuqToZBug+?^K*0PhO1wI6jD$g_dqqw_bAv$nhECIXA0p+M*}p~bb?n&A0!_OYD?x5 z1VhXAVI+2JDPE~J`C&&IbgVt`b5;|f*Gz*v!RW09UQ~vo+Wg$^_mBo8LvWy$b&V;h z7yNz`>AmK~EnHc1-r5CAO@q351KWBcI})!KA^rOiDbO3JyyTI{&*gBUka_mQZXn&O zT}$@y>`tVPLL{Oy;LRp^h>OT^Iww4Qvhy=~+d;?kj zRR4*aFg&hQl`L)ZX9-=-j3y2ZOTS{>N51WGUv1iI)o~bn*x;4xV2GWH=Tg;wz7vy&mL`S zB*MvP^+azRv=g2?^b$P0=u=LzYVKLVsR+rbq23KzG~+U`jBw!fZrx{-6yfMA7`_>zobut8@3nt*W5t#$rs2b@ZYZ; z2o3ZNh7f(BM^kTPET$L_7_zGQ+Wg`H66SZ=vCCU#pJ~_ROf+O7tz? zrrv8~%JJgb=0dSx45>>5_hcE4HvoENQGF`ZvMTvZg+LQ_r`jD+@j{}*EhZ8LPJ(fW zHc>%F=^M{0v~aJxZWjM?!7_kplPy1gbq8_$Kb7~>ijm;y(Q6^aNI z9_CMbyYISntn+BxX3VED)I4m6BiI60Zj1{PPoIMRFg-}Op5~_r$%cpmLBk5q%_B7> zd#7VDUNU~VBdsezA0TcPsVmSHCZK=bYiZwFGAux)^$Hqu;8-T$}~?D%dPqOOM-ej0eb0-kwp(p_#pICyhSSDuMyY(LBEYT0z!`wbpYPmpc1m$mn>qezRE3!?2Ca(_VXypqhFm1^qhdS-<1Mn$+V z8e6Q4bZjH7m5A-ae-7@MQcVVVIS<--EZ0qrApOzfdz(U|=a_D3>_TEykks!;3q!Fw z1oJMBOKS<_HfXff!$P-Z^0~pM>QN}6^e^wq*_J{~H;xQXJ!>8`$28gy)RPk(-ET09 zu+Z=6baTY40o)};6%|eCU)K=hDVFQ{Riw|I-FaS^b^n`>!{BMi13y{AyL(I9MXRpc z$Ws7DR@Fc(lHJaq9U^hA5$PH4h0*ri4i*azu7AH0^nhqlG=rF4v@-7p9qMANbSXdx zmT@Xt@N&7CU=^FY1RnLS&@!+GiDL=6t+~bKodH2JK+}pLXZ2NcIRS-BK2GZC9#BOp z!*+1Pg^8h)^>9Lr{O?9&G0=PGh?)nM<5>$^2Xld?T8`hn6F=~w*pFtPtTsZ|iA}ir9P{2bH~;)CSs{elgtTK$0BR^o0rR0o zgM?X=wjyGQLWr1$<1WUxxW*|pos*MB;rBj32P$dbv*y$mOshWI^Rr>Cha6p-Jluym z6lUw@Whmp$4J{rUfKVw0%STi0g=afin5-eB#|wB!Pp2ziN{5D1^r==vG(?FXZ@RZ6 z&P#{pHF84VF<;h_FSDR{&v$hTj8VcF+zJ_R{~n?Y6r1vy_s9X%`0n<)72Mc|%D-s^ zO>2DqFjveXxzbZhA`JUTfDM|`yTew2-1k=ZT}b@|O=2^g8Y53Ovj8|_xqeIzBz%J_ znaaRl>&t(Go2@Cs-Gx|KF207Ee*7O75-piXi)Do|P&*%gJa{8~bUpmHf&079{Y!lJ zy}M^m?mcw*^+Q&vf7$KeTn9_b&dT_-pL>Ci~wv{jT}@1?^w=D1Caj zcy^1i*yGQ;qq#p3d{>v~DO>WazoZo9rOZ&5g;y=he$ncc>?Y}GQD*F59Kq+9H_dx> zc;MUxvEX+~#Ef6z)=zg-F8+KuT@`tGiMaLeFDGCJiTk$vKIlVV9ru!izp!XtfwKw! zq~`%4!JqJNbFQ2}c*axH3At?`i_kXao%o*J-N}v0fyNg_Mt82u)I0HB0){(7&^*d< zxQ5z^yzy-F_uKjDuR#FOUSFE-l^##ZKw-(54ClNKJi1%(;k%1GH`$Q)#sJQNhwC3# z=0@$F-Pyzt7EOY>>jbDqZy1I`mp^9To*%oY*n|Qw81$YK`H1!b0E%#Z4_c!HxVNw# z&nqx(G-2dhp)FtS&L}2E)ZVh>7DwKg@c`|;D;0t2mjP<5XZuYWGT{`_A0 z1Kz;`gR+ZGyWpKHLhQ^rNmJU&#-j~muD)U<7z@xs8B1v}_DfJwOO+qKCZ1)}o#N$! zydSFc%qixpL2OJT=k($32qIE$6WVSoU(INr>)ut^$JM||edJr!5&Vbnf;Dn~#58l@ zB=D&66>tdmg9lfSuod`0;=fmGkXbzY{`<`s z&mE9)z3fKqX%-Y&3Ff?%`KqVH;*uLwJaV9y{mSA*udrYe(gKvHo-FgSQCSG0Oc=S= zqnOTxTvv#qG+`FY6@EXgvhu<&mIXI;s{c`@jgngd~4U2s2 z&QKcjV@eC)@!WSIpiU|5AoCLdQsHs;n-Ytbw@_iW;^Y>Rg9Cp@#&@HN?vA|WY|-~| ztK9tb>UTG&`|i6CsL~0EN=2M`FFE8^V=yn4SFi7t^D4jMlarYQEp2u^naZ46$mc&W zzR#Gs;nVAPk)RW5uGHrON=j~)YTQKNcH}+P-;dX8;#n=X`nn@2FZj*h~ zVI(fFaGqsu{;x{JU)K8@=~+CUA2#)7DsyDyTnRgcC2NQ7mr^N&lQt`gy!*qc?;H8I z$2L&~CiR9ePIY5wO}qHyh0T7HL(UBNG!~(`^87*RTS~M0k&hhug*oE0`(8<^0;H9b za(H(V>DN%y$=B@^yx)X@Nzh4^$GvR|;_yGx^(N!e;ux}~EPO!9;34xFowg2V7MC^F zom$MV7N5qt>p)J8$7~U_no9K6xJ`Z#jk*}RKR5QowLBtrFmKmEnH(NDuV2}sd12Ed zcbf*%~If<@8a#rpFm>_gqO6>Fn7%^=CL@tA9?U*uFwJI zuDEjwc|dHHEG(zLhi_ZtVT$?wo8JRP5AyJi8Bjj#W-fK+@9^*xdh1zOo*icXz-2I- zvs@2H!o;2P%pZ7s5gwlLFy9}@{DDKE@Nh@&|C0gT;pi(e<`yAVwKd?@7x=Fp7Hj#9 zWx?J&cCpfB01vU)AHed9q0aUw~|=yI3QE? z?>RkvSnNSS-2nlXL(sAF_v=@GrTXN5AIE=x;{WGIg%B(=dIl~R-9?6I_2eD+Do&P;s)B%wFk_^D5yPvgveV|GgL1B29iu3zdoH}at@qQvxNBxF2Ri&mf`_f|Ir z50=@48&*0dgV~z?N1fC5J)%3_w^zH2=K;>UgxtgI`Rtty(N~nH#_%@RuOAc_LE+1T zGM^C+il+?O+14|dG5c?|{4Ud*x9m@A}X_l5-_Po6>;O zsdb-564j$1Oa1+5$ATL7>HQ*ANLxXC5|W6Vc3qZRt&S1f4L6W@IPtC|BhRG1W^TSH zThX6&0)WP@Z6|I&4!9TWLyZ;t02C&AVxTNr2K>yS{c^^MQubUMwPr5@wwUfWc%^9c zeF}`tU%RFVCd9PdSXYc3xec#`4ynp}p zAJ6d|du?mopZjy)*Kl6vbzUfhv>@krGBi~t-VMKjl=%20>v3r-LV z3HA-pwA6n1vpMGai#gV7HS3Nr{^=>9#dr zDH*P9y^4Qn3k1gF6f7ahs)@d%Jw^HUK&8|>_vSTDTQ=UsSAbUB`2#^hLm`a6b{L02 zt$W1>9zeW&zSD!Qu#W%WGA*iWsDFBX*e7Zr$+)+qcmq$BtW83-+{}tCJaYW}mDV(k zZ?>m!H6iPe9wfuhr05hq8NnnT97-_a80cok8jfy?nSivN$(m?~1oh*2fwxlB!isD> z)fz`WXTA-(AhD^?PlTfUSKUkGg+&sc)1dekFiq%8ko2N98U7kG3dFK}f~jP{;xFK+ z91@dn@3)MR3Aj(J3Ap-GDkDw$ea*5Gx72&Uvs$65W#H&65WqMD#ZrcD4*J|Xp^L5u z`;YCSLA!MsxHeU%P3SZ}D0~Y(Y(=HOflZXe6qepH`<``XY34i1b1Y;fsLwjgk5Y9@ zapgN1mO&PN_v8!ITPINLf%h*@A_(GYZXU@f)XoY?FH|&yLwR+#bcSckrdjgH*BG~r z8LHZWA*KVXdswlhb*-iG1b1>lyb!7DN|bIT=03_n{673-^k(vir-KY0Il?ONXf|#f1^y5*0 z3iV}2trEw=Ch@Kss)qxN4&=Sii0t8H=S{9b8Em#&pFHwDm!_1LU$1Tm=>l&uk5on* zyx81ni@rffPTFxvGTh<}vhQ3ywcRfP@xS6AhdZy)*XTR)Z}@+9Q=W?t$NhEqCW-iqSt3%!s4Ea%{nD_-u4YE%;+Pt9ZF@ zt!C9poE_(kwYuBHt0||E<6Sr4x(@O5TnHHuYDgPg#PvyWq7RpsWe!rQ0Y06G=YAS- zvV-*Yf|XLe08=>bZTu^1)!PRT+X*X1z0vKkR#y&a{PAeWz|Q=s>9OR^A}a~sWe^fp zoG?`R>`FpfmuGZajwt*Dcxx_mlb`EJ^>+@o6Rz%PrQU+>aDxtEQa%=ezt~^v& z5Nh8i*A)(x5_>*_{uz_`t*q9fif;LyFkJCF;;O|A#y+M&%r@fjhrM1msnoqSP~)Z< zhg^19^|n?=ygSyX>|Q#>@J!0~|ML~Bd|azL zg(ab?jlApt```$5h7^tL`&GR>Hbe~_4cnR(2&7v8+%TFG{}N#5rd{y_C8-a8)Qopz zQ`p^C<;SH&GwL24h{;}wO60&_ zVe6`XMe*Bcyb8H?{kHG7i-TD6LaroJ!iVKo?XSI9A@ny`E9RHvCdkdsitDfHX~eay zMg%_^X=Zt>_4s~->8ilPA6NQ|73GQHRx_tYg0+?Jith2JJjnTUUxbK_z+RcInh2hO z1yG&r84fWcQnxeLT;~~UOMj3Pm8%UL!sJ3LKgoI{4ud9MPB{Hmf^t+HgYui!Apudn zTW2ROno(B;NsZn9FCm@UPPo@Vcmc`;2UfI`NvNurcF97#YkNBX&FCMoW|y9f zCkX}#(RR-}cSxCsE}B8Lzl@5(zDom>dNW;R`j;a0x!CwulJ!a2+~3J)d6{i7%e--$ zp<|Dx2s$Exb;Oz3fSTaA3>R)EX;03x*o>CmFo}oep08CJFn@cuffx0zbwJi9|1d}> zc4&pNv)-Cr*f%hSdiC{I0U{2OwtWX;{WKIIrAPhEi42@_SzwRuh-j@BW2}h{b8=is z=jnILKw0hMAE9fj$G^^ZEd=H0RUa9`>M!5c4(1U@?zqXEMPlLEx%PVoRR37@CNvu! zjC2U7SfH{Z(WNg~b7Tf!+-tfQf3zcW9cnGjz4TK;f|BwaLkYjb*St5n%LDjmM$!m` z$sl7mZK&~bPRp54C)?>V9P`4vMEx4Es3%<5dhWW^pZG7>M8yd2MSfD_?^!X^y{0M+ z$Rj+pg7Ct&&;BaLYKD*~ixaenY+~s894@SCQI!mYvu>m8K*pdn=z&lZAFufPJkP8( z7ui^}X6lOfm#)6#@+SUO-^ey*+<`Yx_E#eR*YTyEJzJ_xt)~C(gUjYdl}n>a-SWD$ zH-k7~Sd~T6lhcd(Tr(M6;u)_cAO*dczCCzxU~3!MY2duFLDX|`uSD0}c!#P5>jem; z5}O!sHK#54SWbC4WJ0{QJ_4)?5qs$wz&!>AGC08Q$af?UEy`*d= z(w>+7mr?G#<2(>m?h2*|sT&4ycT z+1^(a@KPx{QVZ^X39EW)M6v9e`=Fh>m}3f}&Xb3T_AaK3*vi$uep&(J2JpV|0;b=i zOAiy?ZQuXkRuYG((naII*2Zc>R>kn7QVii==dT|E%tIk0!E&_#nat(a7J-777(4&4 zQ*sOcgSIrTUcPK8ddG}X8#^WFI`o#_RR=lEj{s5J6^27*s26bTi!Gaj&FFfTkM{I{ zTQ~Vw|MErSM$j2ZK-Hu5iC>=EH##Ma`+G0&4_9K;;?kVO#F%WZrEBFYx}<*i@lT^! zRkp?{OsV#{M$$wp-@LV#(}GyYH`6h;o-|iugQa96VdD@TnbINzJ=!vfCjdYYU4dR$ z@4vnZ47?eJZRs9JOYS~i~NUs+rEi2m2?5rhJu{gsW?)j z{HC;_uKX(|Ki_s3}IEmp6^uS2905>8oOwb}@6zuF;MBEHS z;iDEI*1v7$Hvj{Y!uXBJ&t~L{LlhR%B-Qe0tPLZcqYBxFeA(J)sjQWAaDuBG7$3K& zWQ6)aypo^RFAa8^f}^h9HNCOlwCSz8Jye)l0HCE^7U`MnDRSFajRG4&lv6txvd6<; z&lHmuvh}-d+-3>pYZT=Zf~-Sv&^jZ(FAt*vb~kpDwH7>_C4@?i`X5{OUG1uQ#?1l! z6>d!>X4G7_q6PIPK*fo-bNX0lg{&4x+3KB7CS_`DUWVdV3zQ*V*F2MF?FKW_R`io( z$A24ZW%-4nz7O$No@xz^(i!@vE}E!4jMOQ0c50e!L2wu34C#Yka5RorUsY;Bq$fd5 zBo=CmS(aG}5o;rg%wV312Cv)m67{5*xrji)#aGhIk(h zD`#raLstgILZF?<2S8=SwAk`X(R^v{D`A%%@-&O>A2;coic_*Gc_rd0<$e4ZrRH3_ z9H%U@4I4P-YNlP4fWwGFG8ueff9D_y<8jl25U2BZ=6iJC?YEz5Jg1fSXJ%^t0OyRm zB*8jVt;63VQ}mBSr_}{1I_{trYtCCa-qZ|UuLrcV@?|x}^m+p~9QCI$d3zyL@gW4) z5J~%?(=7A-qmg?bO2%p!|5AdZQ(0Y@>@RnYf0%PxC{#BhEN&1hOQRMSy#cUjD%3qj zbUYO3Uvs(dkFt3pBjtNCS#aW&w&{=l(M{NM5tkoDTzU09-1b`Bj9#Ne>Xy(Lm28H}qZT!1cNA9PdyEsJ|fXYK>Ki9%29$CGq$IQsOO zct=Q9ze#2U2BvZw(78fdNkXRZ%4`o(qUiTh5{}%heni$;3_tLcOTUocWy7&G=>}8m zIcxw)bW&G%MH%D}j^Vh2$rabGp9!`N|D5@m`9i52L{wdNm~f#B3wzAZ;D<+6iayl_ zq}w>oynDz!WUi|fj9_CzO|uDt!^_*?$&tN-Zc}CO_a%FE>*rY$XU9TqhM9GL97W*1V<;G_2YDx`S|yD*Qdg+n!ANWJzl<7 zVl^PQ?sry&Jj#zUb+92KRdB-Fl!K9kw^#>j2WZ9|YXtIQVhtE~wRa?Xw$d+t^CzH#%}3V2gzfA-wVOvsOJ5eA9?MA<#Eyxpk!9 z!Fix4no;k4c&}5?3&An7qL-P5vUL&rxfzzYGY3|VG~aXN5~^=A6r%~tzS01S2evWO zgo2l%s@xt?WQDuxss)~~RU3kj8lIcJOuw5Q%5eVvU_MX$5se`(nD+v-Zj|$YqHs?I zi(OVM;klRS%5bc`>h0Qv{bKZY*c|TF_v|h~VUHN~IVYa)SV`()v&i}YteAKdz&@H& zQ`(+T7INrPBm&mdinDeF=d~mxNTnj{{`^~VT))2a+APt?M+e{_t)rfebsX z0fGD_Cr3Z&U7mnkG7}*Y6WDvDYw5!^jSLwpr;A?o6V5~vD!ZF*gy&{N6Vr~A)5dtC ziGI>Ku=TNm1BZU!x#l6)Vu=NH#ObM^yxaZTH7a9exEFPUD5?|jhv9PGe@H` z8x0r6JM2|Grl+~i)6yUeQP99==WTGfKR^GUN2qqig1O{Y z5U178p%R2}s7+VwSh4*)@5()j_99Y!57E@>>Z!h`yZ@L=AfE*baAMu^m@aacM$^LE zhw5}Y*-~)(Y~_4k2MXa>)8?jndyPH`K#chfC;Lj_8SzYveW@u^zTE1^-{xR0_YP0x zD`*9Rv63+VwYb!f@f6`X4wC=pD-sr;+of z6Kojv!{}dadEvaiLTgs(Ln%;q7gR5$bWNMnwFHYjy5H~_`c6B42TI4KvRVE*$%EmD zz23yrwZsWmT+%P|x3hoxXYH;GGUvSM$GIIKx^O4QfFi`}KFZ!_d2m)N9SCttAkQ~y zVvM!O3#im#*mhQ8)Z;9mew;#}y!UW@xyH?`-tMAKFx2i&IAwnsZi=11pSI({Ipe<` zO(2I$t!_MhvD9jv7Ack3Q+Nbg`w-Z=YW^VV1eraZd(t-uC9_u8e*8oTfd&VKPbmvV zL6Dr#`@oPlePM{B68d4Z+)fVyx*0Oowex@M8IXUVX z)n2?2De@dODFjX1brOM8+J<9K&7pztv9Ge)_RnacgPd1r*8l_H-FpRh=%kP`?BMe3 z5M8E45D*(QEz0E}V)GF&Rmr&Q`>96V%wE?FwZM*ixrKl}M=s5qGpcz%7wt zFzd6IKlVS@rU(*L*#l!e&CI4A;$*z+Zy@$$BJ zG2?YydRTnm>~;tsr<>LIUT)Ko7!zsF0Doo@JX>^jCxA_(Iq|k`24Z@=*Y5>F&HD}< zPP{w*0Z>%~ntaVb+ddZM)PnAmK|`~{QL$!$qEXTTgAj=Z=xA>{#8+iyZu=sXD7D8~ zxX4T%e2xBVy3=wNRo*SiJsr<9b!BalB}cpN>GbaHj+dwTpX+nfzA8kWrqbJr>Rt+MNpv0YNKDy!~==*a6ey;hvNn}&k4&jUl5K}R6zgR z%drPR_}+Vbml-1klNP?wIUHY`%F9R5A@FI&-C>%v55f4jbC= z9{6pd4B~md8|u)DMZrrrzMfNypflEc2;@Y;pnl<3Wlt^!w%M~q1(CXi+AWFEDq)~b z)n-(${`?Sax!Wk;mB_IKmnQ-NJq*pP|Gli>vse@iLDlEJ)4bQ%0V1Sf^Q>tA8dn*8 zVx6%!Mui#mM8#9Fy#iagh=S?%OBLn%Zm2;o#?Zd1RSL`@dy02E#vZS2#4h>TFK9W~ zNgE~a&#JLk4cgK)q_nu18VCIijq4ir%visiLv8UsjbB)KO4slNiH`U}FzWgYA=`1M z0i#5cp%Mgy3_gOhhUS$y#BjvOTkpn)Nk3f)u+up-1P^wKs4G}-I*C8?< z>3Oyfu+ocSq&R+)78wghs%A|HX00gxe%DW6w9j$3XiQtWR-)iBSwH&A-tC^a+r{=H zJQikg@X8eL$tAeZ z-iriq1MxRBksXAm+_rJxIot&lGau)=}l z9wJhz_0fTYX)@Pj#7@_fn8MHjbvi-wmLlIbsGQwjoL7qiQea4=BSRx-xgCir-_OW= zHqw@kBS<8HuWPrBCHpp6LvrbfcKK!0x`x#U54wJy8gzsPIW$1~IE&%o@tc_=i8QwMJk4BbG-)2Ed`#(bm-Y>#p}Fy9=uv41;na$-beR z&Fgo@Tzfk>kE;OEw#A`mma5>@axHqrialJnidd@!0hRQ+_ZuV4attZ#iqnh$cx!UO zAy~wMk$U@b--gT0$rGgnC?33YeW(}xzrFN+lPyy;z@D_9)^Ffyzr71S5E`J*yt9_4 zE)-*E2)ii%+wfSfZ}8FY{slOeKRL8pJqHAs2$k}79Q!b60P${^b#vYRaLdKc5Q>ac zv6peL#=LHwgsvD5SX@Ea9faxw9I*4A?dOK?!h6o}4f_9h#~h1|9Ww*<>acttXM;2N zv*pmpM1zV5>seMjJVT#=k}@;1K@-@vosqrrPggW)OEW(7+>(hbj4T_Nl>NPxnDv$U z)-C=+c)*LZqh_7VjTC8HFi*vQUlI_8^)BhGXtlK3&g1`ch2es1@0IbAum~XMS(2~D z((MD~fSK63wmduksV?_JIC_z_^{cuvn%fRVg$RWP!M&df0`^FM|5O9`$NjaU0wljW zA7WECe@YZ|)W933gT_eja47~cYy^*yZu^q$vz7=I9VuP2zEKm6ognKb1X*rew>sye_6-n%cDKR4L#}pIBKP_fdFM+XWX9aN&Z-RsgkVn4` zyL2N*<+A+!zm^NU7{L`23T*#=sJKmAnsYLzx<6Mjn1>u>%ajdaGX{sq4{{Ei>CfXz zkdL`G<)CQ|y*mj{N&;SykWwF?^1^_R7B2QslR+Gb8qw!MJ8s0E7ytOR7<-kE_Q+|h zJXN1nx$XOMpR)`uYwwyeF!U~Kmhe}X?B|Sr{Q_>5C6iWJ;eVaLWcAe7P3;8%sdhR$ zxTSvXSLKv6dI(kFoo##LW)Oer012m~CpW3E+ILS%cQQ6wK75>SM14*JUtz0c$_v!* z|9yo(0z1D~5|^e^bkla0D#;A@cOJu&d8?hEEl|M>Dy@XNG>Wh#XR5=|G2sU zYAZ?)Uz9p)8^4@8mkBVE!3PEbT2b4q9a~Lg{o9vFWhe_FcGX`O%n_eg@L0~z(L59& zP#2R{#Y1V}xLFqwr23k0GVwrSX&WxWK(mPngoQhA{8m;YUer+x0s#IMV~P%wioes& zzpoDjQ(Nw&*5vAd{>=Iaq{wPOO*!y{-QQAKyunH`(jY+EN-$vK_ID!4FTzcA2cvV` z55l7D%X84@_=WQ0$NQz|Po%BF1T&vf8o^j8pJrVGX@^$tKzf!+PMxbeDa{F|{94eD zNdF(PcJ+V|<49BN3xb5{{~p&spsjj38s$?oLW+&U>$zNb<%U@8j!a`$cSHzE&z zJS7x+=7Ux2FV2#MqU`+t2ygta0U#QD;e4k)u(1+9Y`nRk=Uqx6s0*sd9GMeAWBX1| zb>%BrFg^xV2ogwHXo18I%lUW85`}VWaQjY8(W`tC9cCR{phXG-@d|i$&m5+HGC54VHfWv=5?c z9LQE+VUqT3`Jaob1jPa?y{FzdpmXlc95IQ>1XHhRv2ML?O55SJgaT2%A zsIxEZl|)HnA|?!FB2O%Lsu=fX#wncqy>XCjkdO&LZ^HX&LrY$}8U5lS0%~SL-3G&6 z82#qgH#2AqCqK+80@eVf&5NB`wV)XAR`3S3#;u&RIg-`1)VW6K5}`4t9N8~n7bBcI z2DXuf0{Z$uuAMxYJ7X(PzJ9fmnJl2amyM>jt93Gir_Miu5#44%)tkR_f9kC4Y{s=X#7?)^}O@xeuVE zxzSd6i?>|(EF+B(2vV^lQH_AAdy93(K^kOF@i#u0K|{K=!YzolG39fTE+#%m93p*;0yU>_jse(5+N;g;o%rnQucY9M#*W?%!j@gz3*! zvw}@ltM+4P$8i+Fo%lGMYDO#+asXaZ0K0xrPsNZWO#oB(-Sadm1_Um5CO`5B7W zEtLP;@F7%d1;QFnhIWJ&7s5?dqHY{G;!G28cB~#VND8%lJ^~L8I>nSM68azyZM9`E zwSr3DDCWQMx6=a%T+)l?vO&qe4c`SIgh{!+zTlNHeHvrhf$?sj$jI;0(@BvP{OjpyypNz@Y}AFR#9Qjkyj;_x;usb$dR= z0>aJHBP4Ox;24hBmqogIYGsH=fmpm8?5*!f;kPiA)il;cz_=?fo#0Iojw|oq!GYDw z;l*=a78~4xmQteoX3UT1_G={PS@fC%vbj}Bm8c9NOhYyI24ETngl%Qk$mD zK=H6xt;&1Q-eA;Y6U>YW%lF%!wwmz*ZQ+Fe^HS6`QpNlvlb(SkjmkpiOPy9X`8t)$^Pj?C+L;;B11#7fnqIUR=nZm3)WqTmD@ae8( zwpo2$kHCSgQb@gk*g^2#?DjhqCH)HjGuOTU;v1Qp=)z9j>_DCf_V^o6yYY%v;>$#e zA&2BT!X{!z;jF6W=|2E(J)yJIrIet+xB*?)BE@erIU!Bd;h|Plwyd8YQVj-cqy?2s zK*{)4^yoUoKDRH>Z14O_(IgFExES{|zg0m+vYe%GfN~EdMqAliEhcVs3KW7O@Ej}o zA|yZX@;y=)FFhbOC>LJ8CN;A;?YCZ`#g$Y|HG$ok9Ns1Tjj~Ey10h1le!@cz~Twy?9 zJ`|YL10>hs@5jE_u?=-W`gdaeozFPK1nE%1FI4kJc+Uw4WC5dWhT!sdxw6lCD=Fuu zS=PBtq6^Vvbo32Hs}OH6e6LaqaC?EiB|sqSYRS;i0_%FiqE3XtrdzG@zaIl?ND<

    v5z9Sx!~AxBvE`kV%XNPa6Z1;scjaY$y(VgK3@)OMdlUe{_74ZxWi7RpBEQxzsR+gOqV&34thT((QlkS5D^iHaU_T3 z|7f(u5$gi4Y5(x6^0Co;EfYX5U@faoCHBKZFc_F8SdU#0NWzDOAC@$9~FQWqOMnnuav!|-*Yp)7gM2((<{3laY}Pl`Y{-`5J^{m zxSj{mAnbgLmQ@Hcyy&8er=d(e8ceSv1UIFonk^U<)gYk~n7ys3X^CDRR1%HQOtThP zZm>0Ub%jfc^9!^jdPeiFCH7>!7(9%Cp~0)_R_lg~dCinSr_zv^3)2yK;qIP$JoOYp za37E+zl$c)eEahX0G*ZVh)GbR!;fWoWBU3AOVcDJL_s!XQR66<`bW;GA&jQaM7S~s zryG}g0h*yp9Zt*jjh4dp>;ChH)UA;l9GgEo7|7w0j=TFvI&B{KZ?o3l;L|ewsKD5s`MEyexLO9YK16o52Xw(nXWr zZsb?xkcIxKq`T|Q?aWaWuwAN`y5RbH#vfakBGOkut{-3lb@ulcIL_~ss$1FuvU_Mp zGT;>CUS|*GgWC;2@5*^PI*;Qi26C7r5OrQtbP2=*`ef+s72Cx%978hhGm%LbjJW94 zM*k}%Z(N2j%a!g2s76}0Sp9B$N3#wEi=N-h;&Gh-2gH=rE%x`G6q8BV)g2u{PR%Hv zP`9PLA?skutI0TWBN_d{zsZ|)1UMh8ca|t?!OuyTIH!$=gwlgU9 z@j9i{S9h0ey^i-b^|wFi=60WWu*#;HJokh?KZ{ z|NNyulRNsyq^p|tdQ@Gd6~G_$4|d*CE9UT_Yc6GG)iI-kn39=kotEhrv;%&gUe*Ug zbCM#J(0t3E+js1Ie6b%dh=jPf0_C~T)uyS8hdVpXG-&}UV-x0&cnh`yflmb0CMi*4 z1S$z~xYX0{HI~yF^3I$UxG9)M6jm>lmZ!M`Ic}dLJ0AAn>$KdPz00eu=?J>(T<96N zm3=4Uy0)R2)#-usfDo*amD}B}@7DwBY8$&sQ8m1_tJS09RjJP9B;}J!eBId;Fc>%> zre1AiT(En88)4v%a2(StUP%)@=XckXQOE^vx0IhBOHA30b${V<1WUOsE<8~$|) z@7H`sjmEF-KuS{keWkDOl}?8f7>z<9+pi1mPtV5sorYFM|K(pkaDD;*#>p9(R6Mr& zYj4Kkbcz>%v_V?O_JjW*;9)uEG@tutlOL}@qYYRtd6G8$FuhvryO6p=5_UndE9jdrq9q075Ga)%t4Tr7d?l$i|E5YLzxL( zv=c+p69bjqGeI`#{);fvJuh72s%)^gL%c@l?wbaafuSL?Ig3uL;Gbs44~0Eg1l#6p z!rZ9PhCEBYrzpSkj&P+XG~deBwpgJcthrg{-esNS{<`;*hQ7AsXi2wYmY1rINKhjV z10x5X#0Qp{@Vaf*Rd@d@il;&v0|P6ZW#Dg_sl0+<*99vqXmr%|S=Yn_3ZNL}qUr!e zV0-Vg$N%Nm8=i(~`5w^Zqp9w&eR)MhPS(qRQl_Q<)$cjQ<8EBj?SS{cBMP6x@nqS;kR1>M zuKXYTGmg3;d@)f~y8YVr{+}NMk3%ADwZWC^RT9=4oYB80;rjcj4UKZ}GKa9{s)X{Q zD9nZ{E-JNhtw8_bMJkK_2UypHGqz@xIzw8HR|u;x?30bHXO$*xQg{E%(-*QU;q&imyuJpO|mwy|t$L}76f&tS)mMd1F6}axf+@$lYmd4oX6wa^Z26HUC zGg|mD9QGnr-=E~h$A7=aFH5T;GJQwt8mj-OPb7&c23$XT=?`K3p|1d$Czg1{^1b76 zfM2?0NAS5L%Bq34Hv+a_bLdf}e}pTVL^q3ylIm7 zvD9DR;_^5ja#%@Tqz_s`2|%7Wo{ZURI(Z-jqyDVb9X)DjG8}0b(fqCtoiVWE)^;9U2+E@=rHk81{5N9Xkb zl88<~*uxUfC~T9fvYzOLAcexoRxw@V)L$Q}PbfU0WGDp$X|gL`Q71CbOFw#^cV2LD ztiR2p8(%8PmnNe4aze4BR#VNO%wF#B(S3CThB@)+*&OoMt{)1J?+m0ffzj8Yp8zak z2&j}%R{OdH|3KH6h0_C6qo*3lteC>k(U4dS1<>pOb#;?KGl|HB2-4#(wGNv!^t8H8 z*GTtoDGK*c!2=GDnB1=U!2|uvwNNsByz{et065S za8puRfrMHD`9+rs02D0bO6Zyy)Kp?ey$$jZYkbJwG}d0vz$g8C#%BiBlh&(e=P0QI zJt>%7L6%;&zuQ*VkcDnWh1W)!XTI)52=eOy^~~*-{V7#+++BYBURBXmqSoH|;o=cX zCMDB9+%_G+39y}ek)IoQvZ`C_BbFalg~5zHG0#{6t(ef}fn}&qWel-+-)~+qk2o-U ziO_Ar(5n@R+pp1^gl z-s~7Hd~9ZfL?+RhmrX7=%qCP?JoT|GggqyE`u;(ObDb((4YtyWlcWV}D9^j;6&q}g z!72jo4j5XaonLTzX*eALI(T6;G8gKOwKF-&C~1lhuBGbA^rWyl*?e<8*Ry?g&?1#Mt|cY(s~e~tF^ z7o_$Qbw-C!3tF(o-v2>J0iizQiYKZN9xap%fRQ7I!=6pEz0#G2V$~-R#MkF>M|gep zfqzy*-%`kol{b%*G2VKbAzBMl*yoCuT&O8Vt8m`OAGjR~v@RO7?bcb3jb^=-gngHp zSw}(r4B)(>r6bmR{fmNpI)~7@?PdpE(7{1Vu@Y`CJjg1%Y(x8z_`nQbBJexiXe1Zl zh04_prrK=hFaIJh!Tz~lTt-oQ8xJ9YIhgfYmwJRVq4{MO8yS;Uz0W4k_4dkG^NiB! z+wb}=u0jnVnMdd{i8Zxt0h!DG5fv4#BjZYWkXg)qIdq<}N!wsc;_JuT;t5x>9T%(z zgb&_J{xK%E^YgeJ*XQHcJ6qgf0=PuQUuk7Qg^uQ)P?d5cU)xt8A|a>C6NE03K@g@( zqzX@N5=OTiPX1(G7sF_d`_26ag1sBTyXk4L1@!3?-G>3?I4NI#Kn3NTvhQ=UG)c^- zu^3LO0xioMSIu-@As;T%iiZLG)ucVgb`6yTS)1pJRM7|x0nREtZ`arNfx{`H> zdPMpwyBx_ZCbaB|Y3Afg{*@s@g>JDo26Q45emjy1JEA$)DOI=D#aIZFTQ6UN((0rJT0S?iHMi%=|@mU46V*^LAb&s*xX9hadW!t2$Z>+nvOMJ zi!uhl){yeM!6O7yPq<(Z8)pdDE9=XR@1wdoF-GJC z!}idCAq)tEl9GdYd#F4Op#YZK*nI~&EO0&%Bc~8-TTno+Zw^$ zzawH#ABGu)KKZPzd%f9*Vjxb*z~Y(+cL-01Qh9c9;Ph00YvvPRllBj7)_*_b0xnHb zGH(4(GWYKpVGoPxH~>*Wt>AvN&;{~UOz6$dtyoS-$0J-cS#DR2@nBvVpAA&3rYShN z5Xr`llN?3>Zp8XSd$W*99j{64O@q*f);ukGP`C&&4TDlfk|TNGUnv;4=ZquvwW&3D zw4#2C6b(o+O#5pm1+6^3msH>rCXAU}U0lCc>zz18VbO06)2av(`z>by`PDC&y0=Ht zH*rk&XGi`_Xkb85tnyO==T^K2KF#v#oxO1H$VTuMd~KQ6JCUdFQzrb^sxV}FQvy+oK#ZY6YvWflW==JqbitQYLM#o)E)87Lubo9y^V?W~6Yr;)gsQhTD{hVv3 zH;BFL_aEUf_G7N^>ZtLnS7hNuZw<5w+!`CJo14)97gq6wU6>nb#x;))?e_MT-OXn$ zodE0@H3r+@m-S&7jrP9biw6ok7YAu&Wq=YPA|;gstH1YJ=#tTZ#@Kavi43Un%LfSy zkZYgFA~b$ICux<}a=0u0EZ>U9B`VbW?-%gwe6EoG!*{BuX4ZUroA_^!r0e)6QQ{CD z6SQyaui3j;prX(3;xZ(2kglrT>-wGvZrt6*F{R`j?xB6JVlDu%t57Ed2P;e}mU5XJ zMNQ36lYomGuuc1bjC`i2>JDbBUmZS%B)v30@!AqB*`3r>sl=IGoU>A=Wf>Xg)UE*Z z6NDiK2r}o`SRWE;0JUIaZ*O4kji8-r?LZo60DoFSUl#coC<+w&-dpp4Xnntq2-TWr z&;~Za3m~xga<##JAF*lVqMB;crVwmDg@g6Gy<89;i-gRjBmf!!vW=k7;|6w<%O-Qf z&65`>RgZf0_jM(Kz-yu1*Vj#&4BhWDF8>xb4R}vI=~!Q_KMivUzOe1-`8AR8N}kPG z#>Id{Q6i`k{=h%1*@27%1qjc-m7wQE#+KUse0hH6c~^DDdc%eZAjW8Z1-W<2~4y@P=PH_wU&~ZA;x}!xZp5N0*cwIKIt1qDubtgEW50Vkqf|qzlmL z4wnn2Swi0A5#q!RwnoObNJ&bEfRI6LX#8uaS;YOxz!c8i?jfLVn+3et0CB3h`|oMl zo2%@ zFM5%TmA$r&Cp_2QUeTfBzg_@XKtx2{&kM}gse8~m3U#K#HBejttoLblZr(=S7}$ZL z0g#?MO9hG?5+EhIU6C3Zxoeu(f&nH38mM@o&issbsSd-lV}gO_$Wm-SHJUPChOgGAcF=kJSJ4!+dE+1q2*VuJEwv#4 z`>_k&R5w@96Sz6RQni6u2k5Sn44@TaN9wUzh0f+fc?vrZXV6E$(kwJH0;C;Ww8Iud zOh8};MoEvSA<@D-YJ;!XtUT z)pTYl#|2K9N^pKz)8*J8;2Z%BRmL6gxYudmXxJdsC^-NQ_>#{a!u{$I?44qE^Mp?o zs3cyr+XPM1$KG5^U?&8(?>4+Y(KEezV z6SU{h4s}x&%m6*IUf+bTmPeOkv}PMI57&V<1Si)k2&Cr#pULbeTFpcni;PI1Z9MuA zM1(B;{e3tU+7yy&gd?ucKFBwL)KYjTc0 zC3QPj;l8%#=Pb>P-(zYP@0Fpsc>~Jq#%;Kaxz~x8?-w~FF1}>m7_Vgh#wzEFb>U)v z1H`xuZ^m_(@Ka<4g*s!4>RbPOWQDJqk+Qdoci{@Jv{uYwVr7H5wA2+Wfxv=7$f`@7KIXU3=az!O&sgI8@D*aBkL68oG@IjN6|G37;HuoK5 zE}ypgKj4F}^tSB8jGK|7%>_v_*@osHf4@mIM5AJ~Y*_P^6Z54gqlmJ6wpns4r z+$B_XT)&@;J5<@j(K}kNi)%BgO84N76>xZO=nqvAtvCx<5?*8OZwKC-TumT3Qo66d&;bB=#V zGJpo{Cu_B+4vxfz1ES~!51C|7sXVV*|GPgT5L+8tq=I99aeHJ+A98Ue?sQaxG=&t| z;rqt$WfiV%k$LT0-DJppB(}_#ST8>5qnCL`L}OT*GPKEKf1vy#G^7POEE9H(X}Ot( zo|dtz38;9}XQZ!e|M7t*D3tW)1vpP^4+zwK>oRC$yg9uDufr_!>!CDBn$acHQAuOx zPP^xCyqplO5xTd_5O0ygUJ>&SWNXh@PFX9`S6lwJm;!{=8z^*KWpZVZR?!`!^`$QE zK!dFSIR)6_wPP#0DX{5OQ`fubhB28dU}AL2IRt6Qd^T=hsltNq7X7vq!rI;*ya-s` z8I=@U)g5x$xZKUv2kmj`@L0R=mDU!Z!u+O-p=)kzo9;y4*&9v?K2%Y$|6rxlAfh&9 zjx@XH8Y%kOyC01=8XoO_QXM}h;`t*c+~IO(#)m!<@_0Y?#@b}vj_}Zn7uAO6X!DS6o^@VpD`xQ>{han}%XULUSxa$`5@}aAy*&|3X?)Xfs!5wlvbOd- z*WvVBf+~SXY|wwK!4?viy82rN;E26)Ie@q-!zV|Qo&ydl{$OWt+Z}}sTI<1g_qqQj z-45o$F!v`*=njsM#aEs$sdwGiO_4l~uxe(!a9DVK=o}$OUU*j2q8)`JT~Fw4bJ<~S zN@DGVrfe{ZhS!fRh>l7|k)Lss3dDF2IA<&VfC!F(5qr9tENpz*$4iwki#7CqdR;NJbhnT`KxrOuAnSH9yv`|MTlS6BEsJmtV!MaRv8aUx=}!6R(S&*KB+ zak~Www42f z$H01kmzFF#w`p;e54_Efh5~xIt=)r9ms_XF;iNbTYd&0h?soC=;_u$TU-qj+9OskE zr_0UzZ)xKSdPj7NMy6m($X_Lwr?GmMdDZNCMQOd4Y0-MmtVbw6X+*6b;&YPRF}SXx zsii43>53;|=2AkTlCqF_(_s7xM*=JY`A4!K@q!*l9DKS4etI5Q;&xjuQP|Nn8AH+Bdc(|I7xH@6d!U|*!NU|g(cv61l?JVimAp1A z&)uyJiWp1@F5V6aQT|D_Wb0xPWWmJKG1ka1NrWwgPN@90Mm|ZhV5}hAoo<6WYcG!u zTwX7yV8q@RTxWY}1FQH9rI3_yAsC5^ZtsAk$m!K_+T4U`A}p9hd2knN&b+M+x6Y7&J=E}imL4cf>6yM5JZc!u&XeD(s@UxQ z(M2YeaAUM*iXZ4PLI-|eFb#t_$E1fc|8TH{Zg0bHKoufU)6~4~Jh#y0Opa^s^&JS- zl-&)D%e6J~FUyUYI(&1~@RBtg|^Jfx-$9??2>pF?k65nm9u6sa)T02x-SU9T5PNd-Mn zm(p`MnIrm6ca9nDaKGWHn!ZG4g64waCPA6-3kQv#-7aH5ZZS?nV5s@*)6dIG>fv8G z^CLxu%0KN-UCbhlRy75}dtN*h0za=Eds=^fsn}b+xY^mG*t(8z26EX)hAp^3bc@R& zJh>>PSFiYE?_*6n1;|-XOfp=G2$#8zau2TFCm&KK4IRAO=4>(kR#ZQ?pkr$4NnY`x z4^F(maZI;OcDak~QRH8<@y|%m#(XGE*8w~Ilt}X;wl9sxkpP`ULcPg%kH0LLW7I6E z|K=5gd-NJ56BD$0DBr`p`SNWN8 zaI;7#7#7v|JXP6KD)5@`S6##N3%&h+ZYfik&D&MF&8ntWUMUwb0tfDCU-=m3ZDV}$ zeirN$M`MCF8;_tPwy7(EgDAe!?-q_88T49KT7_)ff^6L3CB21UCXOvxYkg41R%j!4V^$5y9A z?mC)~n!2T_srheL9{&hgfq~;5)x_n z508tRZj0NZQR}+R4+oJdfhW))&8z^6hj#uDe zWafj$x1}yTmbCoiP0}p{L|+q0&YWsAB%S-5UJK3TkOqo;7H2rqF%lq+aM~St6T4%c zbKxx7w|ACzD0|td;L)a6+y2nEHYE6FFU#W#3gQQkHpR_;_0G9S%wA59Pin;}mZ}W+ zpfq+hJ$MF@DD-!T)>&5mgl0c3QOq=WfzzLW#P zQ|s-%-Mg5-P89c@zW^=DB0v%&|ii&Am~>3phz!ZJ?4fE~hu|t)@9n zJa9=eok~SYtLHA_;o|X=mzMl)pG#dHSZiae{?-W65U3B1_k00Ld1=m$s<;Sa$>scb z{bG%Uef8aEh#w3k2NiMlq`w_pRd1c#z9J=ln>@yGaqMRPot-ZE6i}_I<;f>E%VdEo zI)gNGIYMoEunynx^^>(Tej)V%E+;65f{X4EaTFKHd)ZKd3oFyXG%^f{v@C(}nWN>a zoL`YaWnMV_!m;(~bTYB`Go|RjCh!`?2ez2{16n~gBaQcF?F0{mh5>+zg1T3Y`O6S= z|5qjc;*n0Y?z}omy;>ap=~tzo;!TfZ`>-$T*G}Ppn(ThO;{N4%d^@~VXYLil%{-Y4 ziys3uFEC&5yLIgG_%&y+j@QW8>~J~VlZaQ{+^1?V@85Dt8e@rK1>g?g;gip}bd(~c zSs}Mx>EX=&#)ilkzUJ$)@WGQ%)!X-3diQI(!B&3KC6Q-{v$?}iY?W@*jBL18Ls!?p z(lBLc=pBC|U%ggnX?SDlOxYqkI}ye^0iO}}!GXEvLr4j!yxr&g*^9OsTPSNv24Fy<*(nm-*vJ4j^ zRNo8BTld(b4I@te*ky~oUiOuOGfHxEahwVy)T;snCzRh7S;{;?%M^Xv*r3}v(BN|y zza7l3q%7QnO5!yU-$btjo`i{}=$CKiGP=-{-5Tb-?D}O+1%_m!)GX(DhE;4t85&i@ z533(GauERp9x_4h6b>-_w|HjVs0H~|i121pK#$_L#oB~-i6t}eEmfGEHET@GGynaY z;s&wa2M$F5xT##e^<|A~O_e1p+VC2Sm3}E+v^(0Z%TWx~vJn%kF#L?om4PZd~`P{dryQa4H^PgslM7>s?dPThS zx8Qnc`h{vT0cAR_s}5c}p#PCQI}MV~^tRZ2lLOKgti0#YaPr>Vr?4 zSzC*oW{i%=S@KR};T^aOJc!ntm&dw;(}oUcqB8xL*Wm>InOAqF8r4J>?XYg=o)S<- zQu%ep1$L0H)%^7SsB&CP+)L&iODJ~yYp|qQ^L)ArXTw*>p2UD;Rx7he-E*I~(`wLvApoXc3vCa^xE0^z&QQJ|mf)1fp(( zrjPWL?H3YI^?dvNSsC?ILOOgd@RJAFT!=3i;>Z`k^3zxgCYeh607y$JIG`Eb>dBl8}XZ)E!yKVSW#%rd3nuJvA8vMus1TUKruT8 zD1_Zzsu-_&lHms1Nh_|FA+up86aw8Dx3S5<*WJq3(n8$iRoJ;loA;lMYG`)k#{*9- z8f*(JnRhRKVGW4_E`){{l-Z0{R$$WoHQf~}DY z#D*0Kx_34XKY`gqhTRqLS;Hu&y$#{i^W`V`+kcEcWke(@W}) zG@>*csEJrbpKtP6bsUYLZJ*SXxMDk>H^eaUBaeURU1u5*%+ssNw zQt&fk_<*@XAgAR+>!KKrME(g4bwLsh?khaC{#tpd(>)Y&25l4BX2{BFu=YaB2`0c% zyfm_{F?RoEv&lxFoxj*fCoeyxQ_#pbxn)y0kRYjus|k9`K7h4WAVj$pzH8UHUmy8G=9ZDuQIEA=M0vc9zs=qo?8 zD=J?Jx-h)D7j4s9PPomW`^>ud7NHv_LHd58KERM@ynZqwX(gwF@h(Qj&;MDjut+K7 zpI)3>tAe(*ar-2yxW^Vg9cjxKKD@9>{v}Q5*wEg^3yiRYSdo#)#E{*S*S1wG-u5#b zTt$}g%R1|=_I|xrGo4@OzPp#LgeboG{*KVj?)&M*Cm6{3zy|RWx0I=tskN2*zbV}x z{)WPP{QarQy~1VE+5GL5Uf+lcgRYM1=3*~6o*K0q)56|FXHA*nyq{5BPXyY?lUKV* z%TC#c%h$g!l0}545~X5Hn)p(Ww}(%HMfBUT&PGnrOE$z3YI+P2w8OZo%JD87iu(3p zB3v5` zh4U=Q)_QjwZ#r)TU7Lr~*pGepEF5pYJcEo_rqtIz#i<;Tkq1%2dVm)OIEZgz)XdC_ zc)VB9g!BVON8ba?X5sSfGmQ*w_O7ANDW_0pXPx$J-;WWjIR}UQVNQjzP2494-R!z< zy_KW*k)F^!x=tuJSD7broKPgu6!EJLi|Ws+&J*$Z6rY$TDWh3lrKpN-c{M@MG`xBS zW)iqSP8Qfp+0INN0f9NZ5mA@bdi}z9P?4;OnYu$AL$ zicrn-JE3R9MK!@CIEYd?BPXjovfHkQ<@sg&8)f?yyEO<#AMpx(AH>`S0zxbI#)k^# z8WieP{dOj~nd___jz%5^#xw{?;|Ncf`#>k!qT}{g5;M(|$uV2wRGLV-+GvL<*_km9 z>LE0!CF(FIDg6H1bCGQbdj|i2mxKzLqs481K^W^7;U%b0I z3?gD09^kaa+vy*LAlhTSxj`TKg`E~EY+xNqR;A7LJsqvFo-OViN8xV8Bvk5@Bavv` z;}((Lf7ev;`D73RS7>LFwM~ZETR6IvlUr$XubolMnuZqfcJ)FX1`c82-mNV@A^(8Q zeowQa;v8MVX*m$9EG$S(GdUw{)3d)FbUW(N6M{oV(s6goJu*HzVa4Z2h9(7!)^BIH zqX+H~^`fw^5+4;C33n$F!~-IpNo&TXG>SxE0Qw2h+cMElml<#)BL!!#vl$i^*JJ2pq{AVT4>g9?_X~cqW`j+S#gP39YhqxB zx?dgk--1^84-ecrh0DJH<>nKow9+998&0Yu2`6njf z@~(tMPZZaG(ruv2L?v2MyWaAxck5!WVaKeL*8p#jPTKzg^Tp;c-!j=)tsYkmgMC65 zXt1k$S4*JV@%t3hbY*2)yz|b5x?0;wJ8K&oym(W~IFm4GI-=LfpK(#H<2tBayuJBh z?oK?14?e{&=?u~g(pXb9Ux*`3;mMx9`@Y4|pl-q_XFNAijZ_r#4EqP0sa${URm%BG zL^!yF&#b@Za?VV|G{2=L1lDzP+G6bamMPbe#ypPQ$R>(2<(L3TD}Cqrl(pLY0c|Ep z`G~M@^fCny7E}5|(+}$--hKq?(&x7y$2WX!s+n8stbJi;?=geHw1t~+TlwU=$x9y}ANU336~m07`3#cNzdI5ic1 z)c`7kN1EFv8uxpR1~sL6ElhAXQf$du7$-O?Vyph%c?#M<2PWQwvIJ;tsrQ%MFcJ37 zKtrO>`O<(iS?DjE4c9*m4+rco_@e{5#|@&52)R&;RQzF^+2cA&pCRIa2gSY&}L*3R1j} zZvu@oY$az1UwHZUe1S?K?YaL$!P?eC>G^lm0^m% zxb;YYo)bg1O`zJx%{&6bA(T8a)$Gw$Q-nhM^|5rv_F#Xhg+Yj0@o!-Um) zP0gJ3%L;pTmx8L>0Z<0|`m19VN4&mU2x}3LnWNtRC{a8KA3y(Mf7b!*55+nxe25XIRAjY3e#j5b zcBC!OilY3AT>H5#^Q)ZI&J?L?rZYI}1)ps$k6&0`f^qn5$v%6syZmTqC1JGi%5}Uz zlw6Wky?niTH>b;XJ;H6e;XnR+3%$GR2tkt1zU~nxJ4MJA zF8FpqIm(w038|~E_%7lsk;=-*!|9;3bJJE_rE0@zEm-77-FpbVU#G2%Y^c$f31=I? z4jn)Uos52h{W=2TB0z$zzOPARoj`u@yZHnI8utrGTsUAB=pxd>#uoX7m8;YMhc_aS zp07$z&4^Y!?kCNW?6;cc^gje`+$~BoaEN)(3fmuhwV!%6dt2EHiCEa4y+Szrb;WGh zxHF*={enbiw@Z0IaR9o`y#b~zBMT~L+k*y+=Xm=B5VkUB)2)N zj?E24op0z9P4`s6;azr)g?X$B<6eg7|Kc~@^Kt2={Jdli^eaH(nRwr(d-EyOsTAlj zI&c4Vb*UKL{UzouRsH%i2!B5}k@c-=R9Fay>?_@e@Ej5oBOqbjtBzu;|2q0C%BR2S z(06b~RO}H0xH45fjj)Y2$w{9or@NfQES)INMl?X-VA4EaK@e7Xa9pU2hYcn*GHOQ{ zpvokwK(GPnB2O!2XOPwjYlTHM&kY77Ay$2n`(DAUQu<{HEzd}kK&v$-Pxu|O6pk`p zI2-PpQfG>+OR04ku>?9nUxf2Z%;R#{t-C;z|72+o2L@=p0)QI>BktuVwXQdf`gnlR zk9vcG7&LyEWT{#;1N4fLPmDint^*^cttv(a28d%MeFs_m07B&?25hKab2fQZsx(bY zuyQ?flzQC|Xxb5MM+l+*{fRG(4h;UYY+K4kb)M!*ircU5Zg2&!cS<}%l;(v1o18)D# z?c4{F{F)HZ3iAIY=tr6w-*vEUJ#O7iBCnT0{c;$g%`#V=kQEtF>Z7ycu#FP9+6U*> za$3EY-QPQhe@QVCg`&Qw#l4#y+T$&3X_}! zggL6Ecvs1(HMXsc{q;2+r#51rAb)n4BE*r^E+%aLdY&J%0Q+~w{g!NThT_`PPE;1J zf9O(2_x8v!WcmY5%GXZ+5O8l#K{2*B{xe&$y@R^+mR6-a#q)ZFpwZ6fLrpbYz%qpi z=z7=|zD{!~a+kV$BO{hbV(?UXU@P_pV3Q!LgjUJ38|J(x=5DTGAn9v($|)OK^UM3zd!0XXP521Ay7(` zF4EM>*t?tq+{=OXa>C9IH4cVg`S)4s0l<1s&Vza&Xa&+}^Fl(~6qaC-r9l-lPVsfF z#C_{|c5<>OaA={r{hVp1$gq(ugbx*aR1lh51!XkNyS|q)plja3y%I2lW?MrafX=5f z**;$H%qaQ8Ei<&)l8Z|{_X0r^)D-b!=QtP=q`d5+UF#P%)K+lNBEZAiOkaH=fF{1Q zuFoJ_yIK@Rd44YnNFN{<7#Y^xt!R~|cyhV|mOYkK{jyEH$TFXVFXiD;U|*;;j+tP~ z{CbVMb8P_I|8-|`;554udN{R@%Yn1d<2mck%X3P`-PqaVTX>8Z`Qzcv`zv5HX>IH* z1{UHBWH1B-)T;W%#C-mjH!u-4JV|wk`}Vj0Q(9No-i9yAet^m(wx4oAXN+2N-(m5O z`E|ONLzXC-LVl5WdGJdAv1T2rdLZY#@}isfiw>S&p^XOT_+2&A1O~c7WBi+l)RcQd zwZ0Y9pO4J_8KX9~Ir-DOeaDxM#?Y_KKeKiOhX;dah~%Q%Pn&7v}y+bySdLFP! z7DRqfQ*8hpAC!%g&=CR8uBl+dwTLg1jV7DTMD%!E9-OYJgK>w38Io_!Oo5LgOp=yw z=;l)uX(CO8H0RjFKSbb?c;W~&30nScEoD;x-y>jA+~b{E*Q@7B-d(w56!sSb&1!&F zF+tum-n6h4`OM1~^y?=mUU6Jam2Lr3QE2lk&^0c@Hz~)FE}=3_#%@DITWFL6j+&f9 zTTN)kzK8M!b}aA^bJ-${2^0Q5&9EwULi>Z@yGd+zjE81&W9VP>(yk}P+--}p z=O>MyKaL76Kk674fV~SHH)KlW%f(vE?stjf6b2q9K_)HFRT5S3vD4)#y5p&bjEMlI zs9_WCoqQYj@BdMCm0?k?TbooGq@_V(gi$&qBn0X1mJ%sxX^@Z(>6Vgilc#wwbnK@WAeA1=?H6W;)s_K0BAb80Q&7Uj12ezG^9O_ z?*&J;1A12(K1sQ-pi?Z8_Tsq#@fK5vRj5{D68gkxcJVDYaIbPdE@sZZeY;K0(XNCN zwViP!V?{B!3KA#c0LPD*#N2|LJSnh!Y(@3$;&r5!;0K6|I32sGL{AN>oNE40Yj`f$ z+r_4#m5!Y+-rL9H!h8eM=hB`nZC3TXel&PkFO!l4J5MHrfYja9AQ%|k?y+wNb5P)KuvwDitlkH3CJ=>)qd;St| z1;KrFtF<5nR71ErANy?(Nh$n-D`68~uHi?XPAQx79itTsrogZBg{~VUUnRbQ&1v*? z^ZcK4cEMpUn|oG!VSNkdWaYz>cT1#*K6ugz6;N_{t7k;-d0W@on{^5K)s3?u_#s^& zzA8~uOD+Ab>;tfJRvsgPnu1H#7!@{Qlkuppsf1rStYC$x5v!|<;<3pC@2$OKj-cgk z4+drZZqj5TW@hD;E|vF?DtYN}V*Y6sP{#EhSN!0N1JUHf7*td=&1b-OsuM4%>Qd(e zyB9C>yE#Pr#newN!}Xx;)(w#ADFD3hbW4S3JHDRE{_*Q>!yAvwdy;321p;^s=o!Lo z$&QKXMcE31yyVVK`X<2ByF0kMrHuJ(cj&L!cXHD3iTPhNBI6t9$eHC{j;o37F!uiK z4(8gYv-8^=SDFUbV>``;@`pi{aY6C^yF>vVl&ds!X2Tiw{@*`@O`*?M6!JbndQPtH zU5);o#jP)p<3#dGyR=lvA|B?MVTjEZLz>T&)Lq`BqXH_d%VBOkIc`q8n(?ET2JvIS zKHA)+T$270S!N+%fEz>yR2W`JQxl;Mgn}V`i#l+Z96z7G?2U?*`W!9(pnWyh=T%bHvV8)H`A;pEBJF`({6+6$ z@)@02P{RnsoYM5yvqg$WUjZ2-4AP@99Ti8u)_l?WNCa#Zp?Y7r^kU&q zn|OJBP+?z;-@QDly_0IzSf2a9Vp?_6R~2qE3$O^FozBm;7uh(E@k)2U8Y&BQtv+^l zL=Ny{-GBBAkogDBP8@+(^cv9cjJyM1e?jD#M>*LV0F{0e9$-j55Km(c_}Qy>x9$Rv z6sK0%Q&#}Cak#BOZ~PyXcMF?g0(>uP*#r)*h#AdGPrDd9ZnfKhKq@GP2e_lqYs>zr-xP#Dt2}PzZ5XL^jTt>$ z{rvVssWf4f8+*2i~80!Az_`*ehaD4DT*^M0aGyDt*g0_SIhOX3v{7I0K^`s z_0j46-G{}yy(w$!66aj@oJv0Uxmmp4^~ub4L6A_6jFUTX^-2@;Lf1}UmyZQh!8bhH zN$JxUw%{%SAV1@FrQAU0-S~fClI0bz&NGbooF%f|KPycnDt_aaUO;?maQhIXSH;K_g60Nab>v@X$SFhDFTh!(8+53(1lk)E z8wAZKB-9&st8DTca#bE10bW`d8!(JazrG7&0;EI0reY)A)9Cy<^8^&`UsEwkHH{JH zk6ry%KlsbRKeFi~4b8h4Lz1WZ0B^RtnPq)5VWpMO4n%f@dqm-V7c|LiK&wF!%`_-h z>9hSfT<%hANdGh1^m22?{MY5Zs5n;-N<4;;H(Wz&EE!{Ox$90>UDO6p<;G2&-F$^T zFNOs@?ZTw^0)3~}Z7{_~hx1)%V5t5(1P2Bh@@P2f=R6c>j9q6WQoJC8izf&d&w z#U7|ifhpQHK<)=dPZIFVC}VtM=m8s;gHLcM_ID7J_4%&*XF`nBxrPf$M@LTm$B@nu z3oc9G2|AU|7rthzEO8O0brXEC|FW|x*5uApcrW*Yq+pEqg(aFbG(!RU5Lwmz@h#MW<+ktOqCQ=!nM+HNh z$&!C--h_8ap1)aQb}k)Sy?*3$teyM9$LYPSS7NdhrN3F9SQuVY`eg?dPd(4qu@4U(TtiB*P%hUjoGNZ4{{RUE zL_N^M+K=Yo*Wt~O>)UZ_9xYw{msYhn3~GcDpi-I9EYGA&$mH6Gve!2TVVufwQh6M3 zD*L!OE5Yv0?ZWM+Pa9@8f#l}49c@CfKW^TdL6`wduK%ujA*tA@3Ra&DH(fmj~txtEyH5RbBO6QG% zimjgP77}KW#xLrXt;x>-*nGfoVp+`Y?^)WM(}tNs2!_|q3%!;jM{(s}JushFAPZf7 ze1t1P%sXAo+iQO~j4p;gTFUGh;C3cHzkXO~&05vu_#4WC0VuxDn~pHQYJ_>X*eXG+ zLC1#OcVVZK3_rAIoUu*mMoEDqtWn&5IdeqbY7WAhAW`9@nBR}aZhr_HsFG3V2%T!V zQk~~Z-Yh6D9=v?XbPi{T3))92@g2=+tsY+`3wkF+R1-0;0YQU3&c%)e;!28zNsEW` zx*UEW9YZT2HXJ}?`)O*?^dVZ%{%+YR3PtGPYfy`{ldVE7f8dQQl8qJ4NAYMt`Y7`u zMby$Z$W(dSvU>jkDBe8IA>iNzBx)RH;`8;bYGL!8q}Al3YlFNcW_qoIpP__ zw|dbWC-!vawz2tF_q*otW?Fz$zD{D~(jksWP|c;2Ehjej?(Y4)^LSmxQSiz0dC`LK z9?54@9(&bab$PAH+c+_LPs2}4K51w{B$bF`+#r?^ce7^0;(+1=KwT|H6! zjDRUDpQHSU6yq3_g9a$91rNEv=SFd5Kv9g9IR)GstY$BNH5pV8oo+yJEB^Tk1Xe&D zsWL0qGq#&~5SoX(6zToS%+?&ozi7ANbnX_DG?#aak|3Yx8L%(lDJ8yHqe86$q!^CZ z6K>bO2+>k;`Cp>6b@j9Lo@Q3hzR_u9*{ybt5TX*UboG;~iRvdXf97%f0wm=`FK|4h zmFCE@3s}t`$|+(VedE^~wGXg3@mv)#tJ+4Q`vSB3z*&jz|Hb$28f#<7(CC%xb?HUx z_2Uv-z`_TR(pWDC@EAQ@TFgN}O3d5eJtwfacWLGLesC{{O9dtgx_xpaDH{Ro()E*L()>Sb9(A6)y-2Fl8)eR;E(S69)l|$SE(;BsTw<^Ey6YWE@^04+}}z zL`Z|*@gyGjuysxN&w^?(z$nQGn-!rE=N}*JI^+z_?i>HvD*(!td@uP)FHMJs#c96+ zr7Dk-q94jB6aX=I5Se~ct2^xVl8^zYnBPvUFCO)ROl}S)h4e=hA-fr(&~)mtv7x6F?s>fFcDX6an7y zFHIbZxq4kQFCA>vtr=pq0d=39jZdatZ&Tx0^LS7bj;OHr4q>SV!E6A)5f_hpBBfb_P{#mrSSs!0*?eD-t2Y)`k6)<`%?#3NFd4r_=~-aim@^(N8ab$XlcoD(PRT^QYgO>e%3b?=nY&`F>8?8J5L$kh~ zNuWvX+Ly+U#+d9LMdnM!5PTq_j!DV^AQ6?f$0p=FMT^VNf13?iIlk;)zf4XN{C-}k zO0V)0IV9y3TNn7NuY5^O(FfNodZ~3DzPjF1IoffWS>r~wJr{`$79<&Z40i953@YJ~)aI`*X&n_Q={iT8$ z_QBn;k;5a1ux}uCx^r&P5e-51&yf?V`+hl7#c7~LoK3TIdI1CuAlVP~$C7~5?Y^;< zxiXJO{FRJ?sU+aG3TBNP=ZW@ebU*!Xqh}s1(@+`TM_}AOq;) zabl>xHjAiJ(Hp=O6%x9EGZ6XTrCBQqQgr(5hmPSZHhF{yo z$|jzYIxCaHr$2d0W+O_;^H@?6{ zVG=!OMqEkot+zYed!?gfs{@G%f%*!Bi54(nJH zwB`Ea?#@R$PeW$sSoh=k#5|yB6w(?*Z1>wDKLlnM(Z?hUHS^b$SpoStsrY>3+Xc&X z0su|UZ`zS>gv6z@0VkvN*5yu?H|yTe+mlz2oj!wI{>WjHS9Whe1%<&v&O}He23IOJ zmcGlo&3k@;P1O-y@B+!%n?&)m%br}KIDW`C-_N2OZ9`98eBOVWLr9j3blec$qME9b zBb3;s;C)F?);aZT-#_MCHUyw^!7R-AUWhMyBUOvlL2~2Q+3#;r!?O#3bK}+rH7Ew_=-S?N2rH@+kAj}3Cj#2(uYydVaANE-)D*SX1H8zi=V^sU`L-8;q&`>&E zy>xF31y4wUb+a%>6RqV3bYWo}1vQ|tM$;z)(Ls;@h%^)rE6|O@E8}%e%Z=_wBGf2Y zGFB`^8fe?|oy5_%@rdtxw;vH=2x~re&>~OYqQeETP!YB+pl*Pj41&+aKY^V>uicU3 z-ng17jMue~%NNi_EASgwB^$VaW=uyBV!!q6zFILuZ!faa*2ceFfF7=BvxguE$wo+v zA3*?^lIpBr3w+y0%ed(HCY_fLzC@r@m4LPpqIA*TJb{>z8`69fLSK<=-nm9#MWet=my z)Mve2%P8Sf*8>#ZQekr-Wol|c&JZHfc@ri6@yDxkx|{wD+!%6F+D}gOw9N)Sy#)WJ zwk@wjQO`D);d<;sK0$(RJSVOr!(1?3s;`KV542Ury$cbhKe_Vle9EIO|VI&@gq?C5v7lB2m z@Jt(u6|n>}5H_(_D90@7eK8kHN9A)kKbQ@nD`EyI1sIajx$bOO`8RoMJH#Xs=+X&| zDC1VPtwq^Au^oL5qPzuk8zE ziS}sV+c3$q=osOaiU}VYqH=O_>ZJHF=*0^q@S_pa7?^!p-Y{BGTkDuj5@gpD$}s=K z;Mqc0wpQX4XkrVIxzHM!6+q~;`&9fzOu`TP_#;v7Iv;)%jJ29KuxxMPsKyyP!R7^_ zxKwX1Da@(_lK#eazocQ_sUdAgC_=5FISpEJ@kQptnDX;I5Z+H9AENdN9tcGOZCpdk zZvg~deETHg`u0Is_wXADnS(2k_z|f&{HNqYYSU`v!lAwk5uL3YE9~44HrFt-KarB8 zREXS~cesEMI#bb-u-)NaQW1oq>}8?zOq(`D#9a4Tr9;ZFD1e<*RNq8Zzlc}wi}719 z#pR#iP5o(^#Di0H52va}cPh9=UEvdow3wU>&5wZI)1gn#!w5vBV-{z$yZmSXaaD># z(L@JO?UWeMEnhrZBOD%&&-73Q*-W-BJgNQd!Qf=UG^~-6<#%B z^ObMgRIb#t*b0>k$X(V8aVulWcP#A3pbPOMtoWtUZ-KtF>nrP-0fOHDqr7OwdY z<%N#htdJOumhj-H72WMAir((1&qB z0i0ZWSn6=)!OFw0Duq?0k&$n)aP)y;Ch{f&A3g^<%ejk|#o@?I#^XtR#%c{#5OvR6 zHxkRm@zsz$&eFNc5XYvtr)3fn6Rf2tK}QutFCBlc72Lw;VA|+lQ4G1dk;aa%@5TC& zl=c!oDg-MLJ;;6|88yG^BRL~E62IwZrYlu!5zL*yT4h6?utu*sAis&3f*RIONSDo- z6ECCX`7DgOSiM^3vWPUVRKbYjp!Rp7#t zm_-&dDcvi4XOy-|GKh~~uq|vOYIJfw%-8q9*J>9~aL@G2rJ}k%^4slGoG1=9r)Eza zT9(aS>b4+iuh4!L-k&3>@ZL!U5-94_MenXMQ3kXHaTT&{pL?5F*&zg;YKD-J?!A1u z!0~FxY(eE!NxSA9tfuh`L58OjW`fOX|CeWI2#icG4}UY&vQIDSCf*yKNP&_=;;c#Y zBC}s-eUX2uD-!_aUccd$BbR(eko<_CJ{z^uG?|qy+Z~7_($u<8Se|glu&{T8-qSEK z+92@r?H1>U21!;QhBZQphMxv=J6D7z(@K@!LJJ~@4c*$h?*HiB+}T>MM}qHza@av+ z<0XSk_DN%;%6CXXy8oi{gq~ah7tK;r`!b2s=*WwPu82fE!pPGYqvP(f79a^7JKr9GXxK8?-9V$ZKB{GP_Fl~mi)=`Ctu0<6 zlkKa^8-b*j8+3Q~`*r;A=D@)P-RBYWml3rMOkeNI+u@Sulrk7~R4%Nq)Yfnk|8VMK z9VGps*2lUzcXxsM#U(XJ2HaG zZ=RDA92(-V!#4So1kbZt7pLW!Q`qPfZ*W*5Biq$AJAm{)4x1@66C06|A&7tqH=&_g z(8!vzr+O6WZIj!zY|b`hpqPFP{b3kQ_G(12>EnVCqDO0l8@xVfep+VSTkflm7dLh7JpTrp*9P&n1 zMv9WRl$A++pmQUhqF~7d3o>k5W7AeOa99eG8c{JN-7r7I^b}=fbxv z{=S}>wy29D^~{Wb+YY09Sj($!0`zb_iq4Tf2*4nRD?mep>QjlG{kM-YgaWW>s1)hu ze}oK`QR&t3MMe(2g@kr!G5wKN%6sjW3&pyWUVs(295K9Cfzw zi-*g3+r6XbFy}H%X4qP-5Ugf8?o$DG67feCoxVh9@Iyp)2@yd?F?G}~Q^ZiHSOS7H zAx-caeV7?yo>?bblx7Yok4(x3b(mg1g!-1XFe{9Z()%? zFXf$Jw>#H+x3viyot1v;CSq&h^_m%Km_3=lq?J|}3M50X?EODQO_uEB?q=lXy13k# zXA2H&J2efU@W>4Y=IP=wAZFX8Nj)$q)e>chzO*z8{e5kPL~OWUn*a$_nj|$u%XZnp z)O^NXB&Mv^LIdv;>K z>xvy7t*U#GMzD4>dgIN@l?!jXEdJ|`@&hZp(Rq3dFZ+t7eqZ@7&5>P}4JO1|n1e=R zg|(g4Qls4urmaseCA<+Gh@+Nkg<5G!OeM(AVIBm`#01P68^}FXkyhQU{7Yee(+B79 zR_b*8_K|(Z;@}te&f^eEhT0~RcI6&h|GoX@w6zu;(1yer&uk+y#_mw}a!q0SoSPqm zOzG_e?7k=-Z9f3mU)9*Ob7AihZUk5)S3r*^5nsm81j`k`TVN>@uxG$Wo=-TjOWg$_Fd-;M{qWpbPS837ARF)xcx2j z69MQ?!-i$v8$d6O$56<=7>g=`chUZ5J-ipoT|Y^QtJzXqWVyKC;b?o|pM1G$QI4UV z#Al^2w7~{Km3A{5MLLeA_+17;NWx1m?FXoRReF!F%u*Pg^fz$q6p{jQ#v!eXNC?s~ zv>_@vXDzD^IG)sSiPv}M0j4l{tov-VvD{#-wun0yxA7Ah=&H?__EpnLgPI${a-*zQ zi~E%FN78!&3G}LLwNF82$!u8I31%Fdi-))bgB)4p4aHrl2-+Gn(kjTS3IT1ZeDEbd z`t*n+3qA*K2Uvl(vw`yLvkxBEJOd`EHvZD_KY-Z5MBPliC$1FuHQJXkbmfr7y*?@w zG&ICQPRXl$b|cVoXPI*E#T3i_7y5p{Me=26MF9(^{L3f;K6Jf}V7))Dw{0uG5v!h+ ze7Jr3mTBiqFwugN!p+)&?GjaUdVqMNMmc51qod5;P>UYj5~`t{3<3mSjS&<2)tUE? zy!DugS#DHOMBf(`eKajJy6-6pDVKjBF(d+xG+p*8Yg0CwsAn%eb6WmOaq$T@(dM$| zQVKtfq`G1Z^;8t__|X-SUBcW2~vG7@-zdm0H!Z4G)8 zVY-o8E8Hmn`zOyRQ?0LcD}ydrX%#&OC zA0?a~kvE>o)=i87?~VCP;TZF4<`Sk%I55ayp+x&U^Ec{bGn!&}nMLf7BAv&rrlj`( z(S>}X)gKgYsMLD@_DwwQeF^2P9%H=R9%^H)voQDKML!qc zDWhVyet(~LXnT(54V@4-l_X^QZv{dTLxJCbKlh4ltm#8bD2}#rWQP9-&^Dx0 zEx>|Iuka|cLXMyzFH5VhokJdBZQ*gHI8qfouNe=GN8z6va*?LA@{AUKr_o_s1p8)t zgPmnAQOiI04ak3d1*gqCQ68rQVu)giZQT0mt?6aQGrodKQbKNndc7&`xKPwLDL)SA zano;Zt!8`$+$Lemfn0=&?8G+5L*pE>7hS6#`(gEddc>_agQ~v-=Jwh}$^7@uxLu>aM6i zQ7ZbLUG(E*!Ask$QOwZ*Q$2zf?v4y%Z`llrgN8QGQ$LhheJg3nrKSgomPx~4kvqA< zkJ`lvA1HnX0eBr_;!H>=s29PB59)pg4?UDlaHEm}-*4Vw8`I>mGgTg-8Rv+%Kai-? z>sRPz+Ja)v0_h|r)HCW&v_xFfk6w}Q(n>gG=1cvk`~W3O?-pIUt6IhFV4e$9vBkKs zzNlv$EGDZXyxaZRD&Hwm2o@yqLz%@;YJ{sG2q&XUsOzqD4qXgaL6h=EryE@03o$_m z%1y^iE5bX~4h7b_NXJ!z%(c(q9v?<@6DFZ z=Q>$N(e%<%)y{2P@>&d-HD>K>PQM%^D~yo)9o*O|(S>*+mq9^)Bt)(lRsGz9lhu~T zz|&JUmdcyWf>;g;xo9UK&IVefcs_!!#=_ygG3f9}$k0LxhUN5ngQUjhO5w)=c@*|m zDgLQ_(R^SEXratWJi*HVeTGj=x&Y0;x`gDmroH-_lGF~xtz(hOouxq&$@<8OYe&xS zAQ=RlbCAeq34OORh>MF~`bBs)0TsYi!{*9;8?VUR*LXt7UNn><7Zug~k`u{4NyKh5 z{?j>qGo5nhBhd#IRrsm=CL!%~ekxy>iz==~*YlH6m+33$hr4A*XDDrazVmBOMSL>l zVLdWK!Pi6qt(zFm@-o{!Douu+hm(_AILXI1QL7xeAEu^X)l%JE9R0 zP3VNMVTHB}RD)tHip0c4SwN8m(Me!kt3lhiu(c9Eb1SrQE)efmTI>#D+6+L!Rh(=!i3RLs|QCg#+mr6z&8Ox@14Huop2pwZHR^o5Ym^5ZX{) z=`dP{NfW`vacv4hFwk@{NpkQ`@jdB&b&TIUhJ`IH6!xc9e08XS7RM;65IMwzwyujA zY4>LiDyH^XOl;H1;2R&Jbgi-qbsHl#o?w&d~77E>fBxja&U33X#E+K=h+Q zy3TfbZLsS?3?1~d(P4W+5ST^Hq$80xC4U{+@g6ezJ zSXqWYr)_0lZ^#8>!!vI20a(@ogAK~JlQGmr@|%i|0+vtY3eqYIw580sr67}18YG}~(fmzP1ZsU`5S@7H_Higap@al9T7)h-fS$#6-giOBu?-(3DbH!s$)g^QHfPq*NN*t73@X_o-JR`MsZLl^KB8?}Gn4o=|nydx(kj`=~wqA21 zF9sqOCywUlT6T|o=V(v_jPU!d+}VlTp#b$^{cm27rh{@eP$tl<)?=kf9Fxz0zJAGiM}V0pBZL>a@TZyhaticC2(bhr?`#20X)p z!|NHY^P9cqvYFjZ#)11n_bq|hHSxG_t9tdyrg#41txa*Wrgl|1upu5+Wp{-CW^3zp+mQCD4=lmJ_Yf;qJ|MNMe0u zgN)THvD|iF4fzQN!%3>E>RmM3UMtYOhh7?7DF7#u<{_%`f*SZR?355*fI2y{7J34>@0|MG&5)RotK(kuLl|_VFK`r$DbY^-&%!+gre!j%BTb% zSbaW3?3bnJq&IE~#BkRf_W70Nb0ESX5UFfa{2WvE;!|Dwn&TRjRM^rISL#h4fvBTxp3HDU=qJ~ zCGk5J|DFDm)gCn;IzzuN>NcnYsf_4Nv$(Sw6O(N4z5eGp32l@NbrIw#NSi7iJFJcZ z;`QhqSWBFa6hc(}_3us^voEU|Oo!g3HFRQ0f${zGWX}XdlwOunp)>1~X{-#+&Mb2k z8yB!^9Th8dB)n1A%_CyaR(XQfT)Qj-7heDQ(3`YMjln8VC~b{$@w80I9$f8S)0`7Y zBkt@UZA8q@gkLQ`>m)yIy>dsMBrj3csQ!0ez|nB3Rzq-jOQL46DX)=QfuS6>gX@Vt zWH7D5+A4C?7-fjg=7P@vU0!L4WM~C@^q&R~Va?GQick>#F8Pazh^LU}x4xeX1o%!Fj1)?SuGU?M4f@3cDL&%%F z+P20~nAf~RkmUh4wdBmOR(0O7(RY78e7XgiFnqoR8+MOB&DZ~YUX6S|;GM1RJr@G^ z4Ib~5gDq7`xe{F_L$AD* zQ%9y$qJvX_H^d)Yb?o62Im6rS;ijZ9K^ct2_3skVWzW?0>dp7ZR!AQV$q?DbbPM!9 zx9*l1*&^0>1iusu9NrOoH&1

    PW5sj<5Qt#ucsTx#=tqbg(E6<9PPvN1cK9%Ew?+ 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

    B9Nuh;>kM&yLQ8qU>w*VRj)Y#hy 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%0D0ufwpEMq>uF1;1b7zhTgKC47#&XiP4c^s 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

    d8nGB+Gec;yvcA_kc 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 E3&pB81ONa4 literal 618311 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,G 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Μmh7?yA8H2egoakk751O=CTTbV1Xl@9aTDa{sF80QmrS0+W z*4?6-ka|b|Zsq!l{GW&{lh&_d6QYQRIz9Y*?y;KXK_f_GZL&%~b>=5*PibimzcPjK z53QYuZ)j&(^jSR2MXM<9yygH`GPiP0@fs?+RjRc7a!gU^RyM9X$|J3CYR7 z0R(m0=OB;}+ua+fk35s*8N@+odi9EEklUhCXKiDnyrF?A>01;AfS}|)!y5-i$qGYJEQ5pv*+A6yr_@QEb72~-6MOKNKs=e)9vM8 zI--7gcjN{UVo!!)!HD3X?6w!GQ4e8VQ@!)f=NNT*$EIM~%w|r?@wUX_^4t}@JtR_T zY|8t4e+yfL`(8v?>juM2$x20{qrm;VSfadGuAe_6wRG#gpSCK@hf0jH9-6fEJ&eS4 zIoe11bkDWmu4~>|Q*6fV+@@Yy>Kw{@Q84ZOZGO9_B;FRdF=$8wquo;P`W zdwN!Mj+bwYO-y*MyVafx)&qV_vwG@1vcetOv9J-L%yB(wr`*K3N?$eqlW_vWclD1Q ziyCpZlWr!p91wFgdPgV5ek~iuKhIcQY72@al3)2&CdQgf8~gKtCe;h~=h5)jImb@% z{)8L|rVR0qP8hqq@OLj1s~!|Xcr-=DEM4A~wtx4XyS9})M(q_VTd^u@oQla7Zxe6T zgu?zo6@2?t2XFc8saEWtwdpx?$X*C5_A3k~9otsI!o52=2^6%r5d^X1FS8?`KE2T`;w94Md3=?VW>J3$HrZMe(lcw zlti7rS9kt!Hf8sGf9{D1_Qf*#R}KwI<@!cudu*?8SY+Ov{`8+XmjV<%Ix}HxwQ$)( zfRcNaq*-mP%Zb9VAvuJKdda&q3=J5ZW>u)Md6bEF8>Sx82XB~$Huoek5LTM}y_{vprq-pYxB6u`23oC&(5 zZ4VwewQaaovQ8E~;fxm1H1%ONqy5=y_l%VV|SswR@m3JRLfxVW|ruVUszq0ElB*BDQ$*>Lw@?w}SrK51rx@bNrzKsiIlzOJeI=arFxye zcYnRz*)dr&ytbg1F_zPx^K@oqe08Z5fZ0Nu9uFd=w7y(1fB1_N)%Fnw=a?WIF#Qvq zv+srQiq4JFPr;=UtdK{IaC>{LNBt6Rabd z-r%O7i_Db@&Bsgdy>%9^HzLgT_AfCoyeNtlIS`Dp$?iG-b46f+okQW4D6woN=jXw( znR^=xO8{=J*=XVKqj9ND137Q^H}VBpVr(3BD{&yxrvkp|YC zITXMWD^)%QK_9%gneU*1dBqXq@cd-sXi)fUaGBm4Go&o&AV4v@4Z;}eb~k6Bm@nj& z<7}v~`IB%On`&!oZ`T&L1oDRsH#GP*gsKeWP`1q44{5y-K96apT-ow6{vNyJrp}UG z@EDc+La8ZDrP%mJ$=W-5tR!P^<%K$^nBuG)yq(_^9rW!|m!)$)d>l;6R6G*q2piOO ziq9Q&yjGF;(za;pbfuc=)}P~ru1gCe@96Ky5hgFqk1FDy@|ic{N@EE)@+;I$@#I(2 za6abRh+1f7XtC2H>*nSgo%sEIp?GXcKYPkD;7-q3g#5erv;?p0^sqLG+Pe~Le~n%J zd@)Ybh9LZ|PPDN$Alo-$$nP&WX%9WDQsh@U zF*EcxYI_yiVgOjsj=p$M2Jn$nwD%Q&Xg7e*Ua@>2g z!hY^f9Cz9P1gz`0ilgL9bIepy{4X36 z!PD({;;@Bc)>)l6*~QcMWJ=9u3yW%bv1;;aG+ovJP(w|xX+&Ip)Rcle+*X(})X~Qa zZ<oGvVXo{<>QgzAIl398+Bm zRoQ}!l=DB8R@b-uK7Iwsjl=Q&WcDpY$KE7w9uc6z#-tm`kI#Y{lN9*ZfA>iwGRe)U zCs96Z02cQzZnI!iFf!2U>a;?Ydc zf{i`5)6&L$!*ckQdm|eFbp7hK)pacTn0xKfgSOO-Ho=WkH}nNhBHR3LU2hCd&-pws zwkc#v&fjQ*rGSK8Mm2KrUGDW<$KPG1Nys{_I6y5t0?*iU5kI#Cqr~h#WyU`H@qSL}T6?1D<=MEApq^MEj99jIWCXt1!b z($=14^aIfZkVuR5onkihgt;bnmcQstCpwHqS0|UQx6MM=_pXwPMyxK|Qa8yc&$@FW z43o0>7?Lgn3<`|z*N!Xx<`tpy!Jp6&ad|4~Ur@pBglYKfq$AABOV6_h zNX+ptXn`L#0047}CaQP~iXrBu2D>IKTGDVeW+l2PTJI}H+6=>8H)niKp053Q*=I9s zuSX_|uS`txkd!f6hEVA+G%U@^TnBHkPmHKuG5`D5aW$$525O}TT=fBYP02t07qnd- zt?Fq$UP6&g*}O0pOYF@CF){n+)K{f-=`9~14q0V8xE z$PJ7|xlGX(t#saLvM-dNOAtYL<`Sa3$mu&=$vdz4p}OLUW<*spQLbl;M9D(O4hR-!f!)r?S=v1pD41MJdUhCR>|9I2%@WcOUw5)+IGgSKUwW_U+@qbS zvf!~4^f;v)N%o;34Ldn_uf;0rUC=&xN(fl!*Y;)OE&8x@!wH@#=kW4DaX>?l1Rh_* znJhvMAf5Px#uv6+nqdM9=gmY9maAn^_oOT3V=~$vCkvm%0TJ47Q7yK!L$j5HDfQ4R%`YG0v*o2^;M=JzM)LuQ)f3B=M6S14CD-#bNY|Cba zb`rV1E;@3nNjo_zG1KOz(9mykePf-_Zfwtxy`*eX9QXMZRib9b*FkB6@}~U&_s02+ zMf_iLrOH9N#FFw559|IRBl#i~st1idUfmdcAk$97$~r@rOm1V-@PSys?A6&LMn!j80l=bXx!xQ`Mu4`He+lwcjc(`9Xrmv`?7n~V2t>Pf#C05QyM*lyt+nrV$W(k{MtIe9Nt~c6rUY(mr(SJg>rs! zY2(%>e}C)oLIyx{NT<;$9ckjb4r3e+fgHa=l>eUBlneV+2-n?pgP>be{u~Rl%^CAD zaH1R^zj;h7c{@QaNdI0Da-Qxr6J2P!Fb5?!?q0;o)w-9D5kA+amDQwuS{EI}n7bVe zjT1!%xv3_;a^E+VWuPV#zgMR65fOj41!HxXYXm{PbF$amqg6_!M@}F_vFolklKglc zI6AMJi3HTRG&s81G{wSSxo=Q)KKI_bvQ_;Sd3GD>rp74+#VEYiy<6dTYf9atunf*y zdjsdmrr9D*V!oR~iSAf`3tqHqa=7(``cI`t!oo%kf|3mJG;R%w_1}Njv6t)SC*L@# zpjW$TQ#8FW?VqB;6emNk=9^nhH68wP!r0+?a%SwrnoaQz6kLG#gNdYdio3hXq7ss| zX=8e#dm_9X5QWwgfaJG#`w=asay$M?YF^jOt3Ai^vXz?V)_!3tAR9)omNk&+`uUr? zE7cG?F_*sFC>{*V)F6%5yvY(5a#`rE5Qlr$@9yli4eK-uy@uB>C&yiVSy?_0+}t+F zeCi(MC}6EG=+XZ5m}|9CF7@Jtvh)W6%|Eugth-{k=-=IgdcH~?PE-8^I~oD?=gil! z)lDyK8e;YCeEZ$Wq$GbQZ?$j6eDw-oY}kPP$SQH4H&}3W2t3_quA2ddVrC73p;&9y zwuaj9ccfq1HbGc~a)Txehr6)*_gAicXWnIJoo``sZVn%Z1@LaND|tOA&cWWm^`MT}*@e2ISI}$Yog|kDrfY1!*(lp9A6?G^xxqP|&V=AhF6PQ?Zg{}X z_{P7O%d-CxaA*L0$l8sgkM^?znm)x@EMK}R@#&}|ak3Fb63$XBgZHLnysAyBbS;L! z?@P-$X;9H+YDViwJePa1jKSC>-Q15JKbq|*-xzg0dha~Z?3~!cpUy-O-gz&s3%hlg zV@xySCluundVC{ug%eb%Qf5cig9|1bx?SDETm=bayxkxqmU4@-J)2z|H$ewgBXhn; z@eCES7amEfZedU{zsucS{#8Esd($wOthXt1!uq5ogBC>H+S=pS@De|KOlC~_N%vj# z|IqXmP*rB#-zXs6NVhadcS?6$O1eQxx>HHHl(Zm?gmg%ka0vm)3j)$5Al)GK9p3qW zvzS@VTH}Dvea=36|7z=h1J4t9?*}(y#6teP9I>Sw^Vqo%0r*L6?R~6~4|NhJVPOpC ze}mr1Rei|4M(Iqs3p?@r!_4Wc88!A{>=^oJYkb@qO7em85-nLJ>7<~;r%H)oXwSP? zx-p71Waj~4_aHe#nxwuXNOo=md&Xe&FPRlErD||j%G{MidOW#f?W~yV^wln_spXrK z>q{q>_7AA3sMJ`08_)qXaeW{d((SjBexkI&n9T?Vp8S%D+cos)-kZcKcZw+I61noZ z?_9TIpoF0Jx!G=|-#PzNd3IR9oH)AiDZ|Lx!tJ@t44^i;cdy}0;OeK(wqzs zN=SK5RG%{><%jL*LeSCkrh~xljk7FHh?sP`nXXl-L#z&unplo3#7gY`ekP0RFzU~b z%wIME0dcij*U2w*_$mjES2;8~A2KUPh-Ivy?B!DG4)Pd*<|Cl<10d$EqsHu#;ri_v z>Zw*CY(9^ZwyCSB@855$*2Q3td?0nSKEIH0UT7WY-Czd~Q7H-0-X%)QKFK&Z)`?>b zKF}pK6U3QxzpJJ;R#?VecippX`03aB#??D8#uY)TBdq}|2YR*yBcD!l@8D=v#whw> z)X)dgl>U+*#8B&c>HVBI0WwXpPM|H5Yf?RvKUYy`A1v6#&Zeq1 zR$t?p+@sH(bp-7r06pct`e*n$qN;Yu%&ul-R>8SH=yP5F$?bXxOZ>KSTo*n!L=XR zgbzGdKn(Qg{a_J)CXtw!QuRh?p9U(kt6g z6F_4x0yp>vkXun&M#jM?h1(PEHYFWMAejo`F{}RV`f%lPX99{+V(l*`5RX2%6|6?X?O9JIhB^|l_w%>H9PYX)H zIf?FDV}^#>+c~}M{9ecIG{1KHQ^OKkbfVcb2h8=_7v2H@?ULbP$R6bq?CQDW4DO%$ zDHbj3uw9>Mljz9^JOT>3R)a=hZ3uonbK zP-N95#~Y{&+WLyM@PV-cbP@I7*a#=> zu>1A|u(gi)`tcYKr<5zhr9rX=sCE1y}6$B$m_Vtw8mK2kwnUG?$NWq%B7-y))IU9d*+{hp1pYd zg^%CG8M%O9PE^ux0W*X>HJVAwZV@2GO5cF$i<_jiA54s(JyvLNCpz$OV3%i1mcf;E zXgJjr*lnoZZq3TguIXx%dO?FEJ2B>!?!2%%dY21cV-+WJRvFye=t)%$4R$J~;(pM| zpEocCdlc>p3Oc`)xFqL-lYYU|W(5OKSclr^SbQxaOS`XF_tej)mt9xF9;Yhc%;fJH zB*|)hCUcYuQ5{HHp-$`Qwd+?AoSVlAa@YPSfE!f2T&Omt1PefUsrE*zwHt6+7@5_iW=M!*ZGzBvfHc-f(ZB zmH9UubD)cHS|>H>MHyMR(e;dAQuMO3wQ*juN1^@Q^N5TVWav5ppTkxb1ts{TKwTcR zJ$+%|_0X!q&CM;&7kcRDZ0G9d2ODpo@~@8C#WqWb%#X5-PY)Tu^z^vn{%7vbNcG0q zIfA_W5`bQ0b1l;$3DMTjj1~q=nXR)k(BV?ylB=o5;{axC16_`uh5IarVqg_OZ|j8} zt`!FOa{a^bh1OGKczsOpsshQ~TxqS)IsyE#(hq>Cp*4Pe7S!p9i7HM+E^akOa(g}b z50Ci12JtQ@m7DuFaw5B`-Qt8s2Bl+(~rk zY5_gqBAY!9*^nSBt}dcc1j}v5FWfp*3Q8hIwHKSr)IdCI;miMYrE`PyS<%d5>x}S6=7kC z6)=g;UE7@ejW7&fZw-c(Y<2k<=zX+CcGIciM3-`+!Jd9;JaD|JAilhE4+sW;5s73A zB++Z&U^H7{eN(~%%X4gLN%JBqz}!S=4N(6Qu`!r%b*FI$wE?=~9WAy_BG zH|;JrxCsMFCGa10djW5e_3->@DnAcz0{IU(5(uE3EKI)qA3KcLy2x>JbMvm6DSO2B zKWeza@S9;}&9G!HxWWH^T$o`_+Gzcn(v3W?5so5y^o-h!2}PjGHyN~SgbZXRw}gTS z26~E&41ld#-?SGSlhf1beZB3EUJzc^U!|IAOw!BanVc|?+>4JE?ro(Rji?KWHk%~h zH%s4_&rV)PG#oL!`aP%<+0yr%vE+>m@6GGGw}YOMJ1ufV=`OX$C(f3gyFsi;b#?F1hz8^Y zRl!EEq~7w{Y8uQzD3+zq4Z{{*KK|+pDL?nf0GyEi;|Y!uCI!jaPyb{#n7-;{MihNs zX!pw15xFrB&0D?{ zVnh<^+>My(-~>ziwTA1F(#z^nR)XYu_R0l$-F13xd&Ux55;nDugMTEWJ(gZG`kpOT z>xUeF(A%|KW6I?`S&7L#?b8U!g>_KI<6IW>iF;yw0C?enNW%j7D}%Mp;zU;lk`!y~{uM=;|?sdrhraIZ>Y;`zC#zLk4KE6`2U2a-VAa zI)z)=+7d^Rx!-7crPdRSYT&?Zu^=hTL`?b}rys3Zy((k19-6_$W)FIeR8b%iP}jgl zRAPu4nnO#iPu6skdG#vsc~|^%K1|0B=W%)mf;RVTKuKrk^K&W%BYvP)Zmxn29(Nwz zX;rWIaa`B(#0;1Je7VrvNXpk!66Yy0JT%g_fl;J+v8#)PS@^fC+W(%Jx+~^R1yu=v zjKKOVGvlQS|1#(FFR8IgMI;;CMv;g6D=Y6ztAXe}R(%CU_RHZ}eEzNoI2smP3pDwY zW`z6RqVz&Tnx zq#+v;|8`>kTU0Sb7DAUgM8^h0lVvA*W9uDVv}yE(SGf1PW+R`(AmHDXH@~v=#@b|n zo(>G0uw9-U#eeIU>)O4R!204syq-XsmiAf+hu+Gt8U{EN!)o3vk{0aLQ*FZ$|5*b@ z)ThbG9-t{sRxMsu{H0DP2Lw$jY~_ULMfo&)duJd0_r+Sb9~BfpK8P`2Hwy;ed3!S@ z?5GRNNT%0;>$Xe_^SZiEq`vR$Dj;f&r*f3LO<6;I85Ih+12I#KiXut`#~jd3qx{uG9omjoqy$qk3GUVj}6G2@oFmal#g5cy*OC9M<^#3 z*Y`AJa`*GF@l4-1KWIj!4e})b`!u=pGnE1~$&jyE*nUQUd*v{*wsdFAg5J=Egs~5U zWALY>>vmV{>V)`FkWrz35yYr)RS~Sp<(Uoe_RgC>oO6NKDe5K9gL57)*N`jT1BqLf zIj7(+vQvj5|FDvhwd(=t{GHhBjz9Pi=RVx*{+^n*%NGRs?pNmvrg`{0f|81rd5lH< zpFU+_ZCoa~@gB(N^Co<|NgkATu2$vL7=ELgK=`d?Wex@Ac{dpglm+N;M^n z4~BU9Bzxnr&Aqcvm2q2-Y$w?>D87~7wLpwYIgszK{_`*mV-q~o%E_XF@^a2|olS>7 z>zWA(yj~v0H@iDLukO3QylH6Ytb?%9P~J4GI}6gFSaE{@`(|RHc-Zl=o9BsyXBJTq z(xH%4!`sm@PH1JcEFIsM8Lw=;^5=h-p5zmmhD=-#A9!J$olFffCtuI_RT=-XFaf-s zC*$A7hpZ#k$OSKo%n^}*fX|>|K59v#hj3^lk$k$^W!ec;_ORRlq z7XR}byCpY&;9=-i1e|3?P6?o3JA<^DOD|G~WQmo-aZERW*oB>A@ylH4nux&7&HO## zi~`h`Zm?$(%X#@aDH?6L{aU7P=*21R7|hKC%p7e-y8!K)+`Ymw3}sGI{6fMOZPp=y3I1HcFo>0XGTEvrPZ*IT{L>ponU${KuYS)BN zpJsc<++||{>2o)iC-~XYsjY0i!Ec|~^`4zGvrD>faF0I zq8P;_!u|y#BO?$DAswz7Aqk6q5%yL7q@U&m7~<9frx4n2MTfgTL9-+V8_DP9Ad$sPd{;P`y^FXB%9$g z8*U8Kxc~j9s;cvCAgL@?Vm}y;Zvlvzo)kF^6!28(Z0-E^+X-eRgPQ}2MZEd!(EMG1 ze0o+Y@T5j3h5e_(9$Y=M&h;)i@2`6%{YqA-kznZ8P+cqyx`pMIpQ+t5&LN(pioD)6 z=0W;eolG588II4#K|jT|?a8RjGoL9p#Zkn(7?OJJN5gr+csOz{W;_G)Sj_uwxzb9U z%;)mgW?b^u&LGvIH!qzIT_7RY?*Jqh7mJ*=s>$FY-Mn4jQ`RL+1)`LLg&Q;vjA3Sn zy)a^$m&3i|{OrR3V%z&3{_o5;7w|UP;*wa=o3dhqCnqoal?i$|HraA^CxN=RiELFI zmnNOOP(RbRobG(ai-B2yYCQzwbSSX%$9{mB`{n&>@Xi$m?qET3vPl2^ zzI(Fqb*lxahwKamZ*%B}tv!&F2Aj@*K36QBTs>@@zn_Y!a`Y5=iD@FETm%#UHeCVV z;R{k4MF3rxaqwPc0=WkL;2(6LBH(HgR10%1QLCP(%^tbdwl7omvyAL3()C}&Zum=j zZW!^XxHGNhG0g$lBo5QOV7#-N3aVbWW`&*o6a%dZ&G)%uT7U|IOGBOz3CObaTqFUH z%>5BF;YZ3CX@*k{Xm$Zl+4`%EZkOLqdO4S@ee|`Bj@6C%-GzH{Kv%Hnc45J;2$1A> z&tD>|l)wqmi3xJ6cHM!SCA%3X7JyF!T$o|tFIP99@d1#Eo#L`{lg#3ddy6VN5eAdC zJn3YDVeD(ck@9t`u&$5{MN(C&^fZ@b>W_TTBfsw$eDA%~U|f6@1Km8BAv`v3va|Qo z!LtKhF|+ap27~ib``E_RUMi9$SAGmrQZGusi2^dweJ#*)@y0%>d}9DnEUIUAQCd15 z2tKu9nA}liKHU@&STsd}Peu1xbq2TX8mpFK-UhQ~Gvp|CoNqCsK5Yq149q9NXT77T zo7p#|&HZ0@0w&of=R>6b80J(%mS1>kwau<`TK)*8h2ZvCEGLhj>9s0?O+VZpSCgJU z*F6uKse7Lik8*~&$RtIGER}{Qi-wf=I*BE0MEY))6ldo2BLkXJTFqP04+>5?x>Bg| zg8CJ!nZl`n4-#1v*xcrcKEk6-9d+G3kf9j(Gxl))5M{qjovPHqtPDz+*wxw=JNsh0 zK<*XyYAeUSZP;Ch8lc%d)nwqU`Rs{RUO~$xoo2m1#ky|8x|A#`_;|Xwzfl=hi*9s* z6CarTcE?9Ssl(+}h_`!hq00j$xnqL;GruHerP#PQkDDcp=7*y)&mLopyiCT2uD{4+Gzzl4+@w`BA10cJv|At zzy0@y0(XRMJtdObRm=4`2tq0!%=A;iykd)bRH+DEGlrh-8zxJhPWt7clnJ3l& z#DpxV`?QAa`O-;Q(p;S(3^#JUTrX6%e(~5aONR@}6}d}S&veu!bU5T*KK)98z@m6h zVz;()lSzY0+-%9Jg=xY0(go9}i5 zK9jAd&_8q6b$N2>pDpm~odTFlsS&|7_nECGa9v=;HVza+I2G6ZeI7EhK|Yt>+7c|6 zo41MLhgs0o(=S`CpkQ72G|nzBOT$~6)xkB7yvt%M$>Rz87cn!4%rfUzml3=}Lj?-}Wtl`y) z*gQG+GdaB}_21uY-CH>aWibhW8YS>=hA%;jIOjCEdoFGD52W1uN@;3pDkQkfUw=df zn*b7;oSaP4oHA(5Q(6YKG59vWKQ1YUi&Qt~Wd4aMp6_#8ypZ4L&pj)jwl^cFHRv<4 zjp+EzFDO?%(2B({O-g|3%r#^l$6KDkcJ3*g;6V);uHzxy_PLmu;ZL`{7#f8Or8w%p z!XTFmT88bH=bIB{GjCB69b!yA-xxUJ#qq7gM)$6}`(r^VOq)N4`p5MNP#WX^C(IT1 z6wRi!+U)M|;)*_dI7jF{Jn+12*24VaAU@N#-ctc*5)~60=<}eUnD41ob%Fs5)cQzVA_%bn`Mk%xtFnX4n?0 zyqRL!L~cTlCn3TNRj%b51c<(R)4YYtn{4NjJE`SlW~lWkGJsv&c1MYUTFPb9;L7xr zHc+c!W_R3KFjC|K1qjet2nSeFOQg*rA+E+KOds(vV_2XkhW5N;r-1YXysyRfzwz+l zU0fCVLE?Te^h-25>2-Yw2CZmJ$#QM&MY!!s1|1vv`X-C>lK=O=l_-Gw(Ojya z3g+IaSxuLSb)ip)Z)IcI|GyR>+)mO~sh0o@#RM@-z?=jiB-Qe1*_i;;cLlwmV**8( zm!DU|J`i6iMM!AYc72n;p}|9J473{NZr6Hw3wTOFcO3cP-`xG#uM%&sXYrrHJvTbjgDt`VdbJZ@5kx$9cvJw3r~*(!8<_xGSR6Ch;UNfs%rQI;;^%X6XupRWBg&YUQ#1f!99rcY)5q5w(-Do@>ET ztA3_=;s^gu%(}l!xe)(oxwjrNucIBj_Z&i9JHi5r4g)GO(n~R%nH`k3rZjSvW{C|k z0|Y<1`j#1#PEwtz1Qko^B>oTng4#9w&1c`*y%>TExm3xq9+Ui2NV8f#@@oy@KXmzW7VoYW0jz04d#cWL_mmZz>IsJP|+w6 z*G8@jbswT6Gl$~tEiN_G)>D2I!J`X|{lJ6|G-K{tOB!5QVC0TVjMJ7R!XG5Wh!Je@ zcwhtkQ0|xX5B8aWNU86*ew1e_zBzfpG=CSca?~M(&p;26_O0viKN&;WB*!Y6V4ivSI8 zN!R&sP5+ncWg87XhGHD`ui4o#*k(5(kodrvoS&VZU;t^4wcPc~)1%dfZDhDJUltQI-hX2m3Utho$GNY-+U*`u25soZM3d_{toBh(>YCS-A} zj$>VyBV<@%0BE&5?sXCWEutl`7xWQlX}arX;3oF}E;|hZ|LOp_Uw>P%+q%QKWBKK1 zN#u_sFU-eIvHk`bP$B}xK+94}s<%%7b3-3ftVRv75MDe}k?)g9(t+LhbzOK=4(0O0 z4xvllj~7Uj=3%roxS79EB0HCkipBY|c`S8`7Aq`B3_TNNuY3u74J`aNi43bjZ{zO% zEu?7t!3rRMfBw8~_S&Kad=$0GF$7mO=_?<+9zzitn~&0&l%`ZYpTFo}nJKcb7Z!I8 zRJU({n(}iKHE>j!(dx=8eFw7eU6Ja&+7qz^)9T?zQPRCZS|X75 zcRpNH&l-j(zu?MCw~088W^rDAy#BhZD}?SRRGIIp^q$jM{!tKQhE|f1>w07}H20z4hYh+pfryK+G>;C-}5j~)?g^y2sqXPOsBLL0S z(G$b~n;^WjmL!x$KAAli_7@K+?e)P&^)0)pa+%&i8~05w{`nbks)nX3t#fYRXHTL> zCP?diE1Ro12*NXOKJBpELSQkhn0vii9MX560Yhagl++1S&#{Jm#!OiHKL5ZYk&Psa6B4SX zn1vNl;z?KnsV`BwbG}y_cnfUnCFq-OmSRxrq``J!p)_OnMpI0M+Nt@_-k0RGk=}~BRm)#p>U*DP1F)FjspwDt12=G2P1a64Pnp&1 zI7^Fx2&qG~=3^JW3;GpL!7Pz&Q_Pk>Xpk#+6>FQ9KaO9%;Pq6kjQM(A<2f>8c4^$a zm&@~NFFf)b@#e&4a?`6Xe^}{lIBM?i->LK&J^InWD`7=KHkKQ#Qa;^G*K#TWLcM?= z)hzHl;3sDlaAHX+uiHxD0{ukqQ$Oluq50fdPK{B`oKJrSFS~4g0>acwqHPSO%HKRX z@>Hw9Xcjzi#f++07g|tC@-Kq6(Ix}fWG{!%XuE!7s}@hd4NFHtNC6f(m$r=jfcKqK z%;-@jchdLbS5A;d`Sg*vwsi!+$C?g<2Z6dfHl69kSW3c1X8Lm*<}EK1V%T`CD*Tc; zU^j4;Zs)Xa_29y&W#4Z{k0gK?$c)zSRq z{EdR9t~E`74h0J1Kg7;lO|D^phqB4g85^5j@a+eF)e(6tlU<9sv}z=}VZcZOLKo1O z&I|1W8)xjb`gFH}bb*;9Y-ucMjNmhOE6TXkotfU;>Zr;Qbx_0xAQ(AtWm7Je+7<3qUAdx{X71O zGPn<2e=U3FS|=+jOFYgMldJBEwDcyMQq1pLfXds86qI^ZeR-cw2ZNeeY>|;?^m6ZM zlt<-pVDId|S$xZWV6R{2YiVNNg6q8!)StXFC2X5xT3lS!^WoUDP5IDMyI8A`yAY-x z8lVx`ViC&GZ*11B@AkAm?ozW{xAt~J!eRO(L(*H|_4kI|!?mIFd4Q!6uLVx}x!}_b zk7ApfB!FOk=_Ko^HjkiTckd$?=L$=gHw4+<TheKN-eF4cbtU&pxH|e-ZCtkc6ipv<1s{b}@rb(2o!K8^&Jhe448IEQQIAzS)smMn7Vyk>k`LbQSo}#nAgdw{lTMW(dqC4 z;+F6_WEZumC_K5t=Bz>zE=<80h_0T{wE;E_jq_D9NQa$g}gh* z$T}mhu;}ukMnsU0Np@0vAh@MX98QqdBTTvQfmF}bG&Ny?Ac?P3mOcRl+VG;BchEL- zi%-vD)qUPXmdOh=X%jxbPMmOF?<*5zss1%&=kr@ekoD~Fo;CGCvziiFfL=*nEazQ; z!;)n*{os#H^bZ5crmy-M-|9HpOp){3F`_t4)ONqvZHJowR(6`bbWK9$6vhZ+uX6_Wyibb_>7sDW zCV!fb$_JrER|ds8q*^11pMzPo78ykBuy@F>YWkdo)hEz?cy8eoFjK{p2&Hyr<*Dl9 z^yssr8LX;1wxS|2mqpedD;am(a~Li%o?|WdY}u>4IcaY9r4)1y0x_kC$4^~GwfQM| z>oI&q?h)oc@0Lzynd`JIN;hc9gEz9EY^lYcJ?)iPVvmLWGKOyo4i2b@>nX%~0mEHa z%PQ~;3auU0eW9{gKKz7IFV2S?_!~r#BVfCDBYPpg+Kej z+i?J*?|5PlT9cg{PGeB~a@3tFv*{&>CdiF?&B{Ok@HNUu>H2~-%LZ;&UGBV|xHs97j>fwY#ix3y`VtZg}p%vtTg6Duxs>{Yqxd+nO zR%^aRl_VU>%vdRwc>J(Fr63?)xZNyYT=DaL#h^dLR`%1l<~Z<(=fOW+G&0LAMPBS6 z_9cu9tnVCmXaM45V2r`d0VGV=8IWvOozm6MGBu;%&N}nk;4!T5ZG` zltSkuek-vm(V4?8g&Hqs??XPX@HaLk4q0n_TaooNU8pVDbyFSrSvcpEx9GgO`B%F{ zY>XwXfdJ`AX7T#uW_h#wz5qDvxGx0svS(U8PPqNc_#}_gN)@#rK67xnVBZ?=Yvx{@GMee9-GXcs}H`K#^Vzr0Y zft6bFn@20M;(DXfg{H87!^F)#m)h(;0mVW=i1dW=18)1jZkpZCDGB9cKGI*P`oWh7 zWTkq4DB|rN6Ejm&A-D<%q_u8++fjAizNu%&XfQ;MDnhKb4AWNTjFja;R)cq}8{x`Y z*S%0I0_uag@M)}43M#5R&zh)-wchA{k9vaviyeei<-wZ@JsqrLS@dJylinxKVO&7! z824EG8wF>^?VCQT76CZ)U5ko}A|qT~0~(j^dw+(9trAefPViOdnMZn+5Gng2)?gG$ zfbab+H^}v|lcaM=vr6-uRaMx`(8$<*C^>jGy8}Ac>}AQ68k4fPaeRgi~ppWm`A9{Q9ax zR#xTX<0vwWQE3Yk)qBFEsn3#rbhTTxo%5wXWUl2kZgtrV8v!ZR@g$&tqeW z^8417Y$|OD+C)Et3+cy(yniUy-F?u$9)_q9d8ux~<4mVlg zF?JHclA4y1%r13Jr_AXe)3(U6CJ>#*#C5u-P z9N1u8gz_6V`&CvTIs#!3-rfQl4a8Ap_Mbjw!lucaxWxm|hRAtv8rca(Y!OG~5gQzk zQ(=gF^DhCaN1M*(%g|P^v<0F{i+2b5+igg;uZC`g+9K%BnJvF?MK)KzuA0~}5Anf>Dhi5?(~u^N5~UVUBM_Yji`SJ+ zInCuDA4d{svPUnhEkP(IID*zy(f9~&Zh=l-!0Xf9b}ynn<#Zsa`IMOeCg(-QD5xJ+*AwY>4P@Y`^$t(J`P3DNoJnQ%YV#>M z<>%19!#dczZj@eGSf>FY%T5n(5_3UO=g8e;(u2X{W9(R z4nr|B-{183)^<)_KFtFz#SB$!a8f^hDQqGzfIuj6<>@lQX+$;!fySg!z|8W^8$|H& zfJmZzMzVAN=NjqMd4|Gg8~_9*VN(Y_!SjVEdL`yqb+Cn0Ds9u5K$IMOOtZ#jeG5el zfZEN^JSLSV*GNAE=D@bC`vGY3k4=m$dOW;|h*U+}RtDa}t%i~!hiGn#}Ji41$%ij*`lv~4A1{TGV*au4+bLeb>X zSN752y3jypLh9hN(@&qx{0n)S!2#)PKSfKUUW9dbbHu8XLyK4Ms_)pR91WM>4NYV% z3;n8>#qG;+w=H0%O&zrKbb1OL8V!a;0p#QXqVv8-nyLNmIpx4QtCsjoVC&9%T}c^8+g^%XN|@n3?cTZ0jnQ$_Vkb=O1571%yXr9l-OJ)LS(GP>VQr3%}=kq1di z-i^Nk7>7d<>YGWGz)5|3G+C%EH?IjQDkXr}=`wy-mM3na7Hzu|ljL%Pi73IULMS>h zv5*QZ)*#q*(BRBmS1YkK9;adEnV_k+tIb7fanszSXj;%@P+So0;R zfPfzCvsu@(5qU~ZQ?YL1+~C-f;md$g90n!%e6D!%rX_{eHv70GcFuI)H-MbN+?jEvd zt(C+r!5s!-Kn`8%RWSnEjC{{lVw_zW{ds1brfOR{p#eUUpz1`X+g32M0`)hyhybvU zlY){h$0H#TXYGFUCv!z?YEgKLBWX5mkvF%2-SO(*L#SZB@KDTi1W%txj5^F(BeI#B zzZgrikx%C9Xq1!Sj&f<^4t(ve64rKe&F4EJx}0QR)}aFr2j$-uTL0wcbs+5lU2v`E zInf_ZlVjzn_A;lccM)uYwZ5Bw*aSl*RKVN)dBlg8aql2N8^!3eTN;{`X)nfL^OcOCXt^DZGJyglSMD_x z<{N1FtS_3S=!pX?j(jCNtIi$GuTCC-TL6XFa=B z&G|+PmmGd@p%;`y_w-OFe@A zqk%d^ZUjqek-!vvnx2{%XO__lYV~fwReD>4abJ5u<-#y9?$xhlbG9tzk`F%0`=fA#Oyq z8CtK;3ZM#jmqhGWdWp3@AOl(><2AJbt{gCC8@F9koxHGG$dCi@pdq7R=)@W(p)Qy{ zDE+RIfKPX)BP3vj`n@ktbnP+Ab}b1Geyi((Uk&KjvvMLP?AKS! zi9hc$jRm?2DvX%5hC0qH2U%@(f%PCl5)qyv>nSL8SyUQDVdCtP!S8&&7-_Fft3_H ze@dr$`4V{l#V?VAkn69fJ}D{#RZL2B)({D|3AcbTstkw`Z7#YN*WnEe*oPOWrU6$T25 z2VC#|1Te>IL^+qnigX%PG71Rlf&YRM*x{uJ!8Rur{1iPDRTrMW)2dy! z&^T_#rzyb>(u6?Nu!}aR^mhE@%=^^3$ar#SWo2F}H!5PdoL3}dq@)pa<#u_$>aT@J zD9~&x!zc~P0`YtDMRVdaUOXtgkEZYccoM_?dY z?v)8GE30A07_qG{8Eh(G{%F&}B-$rAetSuJ`wsoa&dgYej@uhQ^$q5KPg`|u-P1SUEhJrF@WwjsCvkVFg{FxDz*FGlO#|rbRUe`j?r^u44M01@BqaA z=AaqwNePZ|^Z97hRa?RXex)tqyEy+2D9WXz!q;z6!x%H5T7S?PBE8Xk$y%w_VCZ+&YE^T6mWKoUm z?GGp>1fO^Es0)4xN$^|M?AtvYGdmcZOcbQBl`p? z1zLoUPZ>77+XP`&f8{SDNHACz+A}NE&-A9YqazwNNrh07@+;;|0;F6QV2Lr{kIBVj z7|yH&T#EWZwXvLsx2WZ88f{x>3cwP{B_Q$q`qSJVs`J7v8Nf9m)vql)<3n}9G<@)w=G#wM~&2BsaZ8?4Lpi=!9! z)dG*_mRBLNToD{c0k7C2!M*heG42ZRJ82x&xo^W5hD${PHI)OIf_#IX>v_($x%?+ zK<|PL(!?&WqhEX`e@~@>Ih`B1IwoTc?zWK z66brcxWU5kDTpIckiRZ4adl>#+PkG|Y!VoEXsl^!+c{I<#!6AS(RUUE8my<#HQ6RL zxNQC0D{!Rdn_lQbbO2y|wE}Y~;4&2ZWzIpRVY&17B@ls?zGlNk!rO7eZZUpRS0;ZS zbWl}G-X!s=4Im57EiVDfP_6qoO8_!Gf0z4166P$C2qhvI#=+{6`FsW_eq9TmaoaIR zl}Sjo5nO-!W&ykx3(eXCnL9 zI%=S)0OiT{5^2mJkK`<4j$F6)&cnpVC-<#PP4@1bJbAVQrC#}dmaj6ttWxNNb78Q4 zFfYMJMF!LupF1E;< zCcXxz*wd<(MD);0-#h`p5ohcwtonh1(4ZS$f-_M{&7Uk7i_N-;2v*Z0 zaGFVo4rwK3VLrb!2C*gGd|65TAh&VnwC%Rk)NK=)R9n$7`ssk2b7?f+;GSl`Iss zyiFbykSw*h#o8}B+>a#)me3giYz;bjJ(N*JupkiEf$PYo&Z%dh2g&->k7D+~h(CB% zd;AiWj!#X&Ef5`)-bZWzRNeA&4GWC#_xA$*&}0Opy+h~K>(c>!qadhv+vXW5S@!q6 z1uc!Qysgdh1B~rnbUvmI26`GhbK7I|wC-4f?7R%VMi9dMva;%mFZF(1)9w<)K%FcL z@%*!}m+xLhqAA=LJqY6a1aYkmE_iedE7N?AZV*}Tzboh<@jBr~@=Kw|ghC5Y;d~v* zh9JCHlY%-EZB3SD{|Z-Dv2LNsDLY`^SL}U8#;{$JA<(jeS<-)VknEh5?A&2_ zUL`5kxbt0K(dYkx{QzrkOIS=OvuBQtU(fdGdZLtcw6`OZf_(v^hYc$k!54PT{FbZ^ zPyo9tQ!e=80IY0LiQ2IMA8(?s$@iQx7MK|~hv2K3%<}?!2hlkNLtLte#r7atQ93P~ z9j~p8c|A8oIVn8<(y)ywqZoOZ4@7z+LBbiJxK4=s%2>7~h!9*FubUQBguk2UhF))? zateNE5|ZB607@!)^xzqSc-r^11|Lll@~v(umx1U`Fa`~;51sprI|z<<&YuX7$Sui3 zz`e8fH_nHfx9dp$LJf`AFzfLoO*l;*dtP_KNm}RWTRq36ck&)WwSgMj&GOk{(0&Ow zw=jk{(V<5?jdVgEmv{ha+FKb2KSMO=S15}HRmj|aiM`wR_6Qwa8Mi<(LC`OPz^guZ)MBSJ5dhUPTo@0W^=?{NgA@M#?N#pXw^|gt-47 zRo?+l_51!$wv6l>7DYCPU>^MgDI1V9Xk3)8{cO2XCfAsl% zKYjk^a=9*7y`S^E@8^E*`MU2r4(N|z>xqi$hPNO`lfs>>{xId;zzP~}QSx(uM19&~ z1j1_|5SiNaCA2v0`J9|~<0NQqD;GlsqS;3`{5rG=qwzn4&JMu3Hm_6>?nNaUmgS@C zUUt0&Hqr=pw&)uj&Q+ZpN%+PU2kBP(4}@Frq8DZNGlQa86lPEOs8qv!xIXS&!Y_Bm;I5fD&Z(yaIL^ zP#bjyt6Hn*@-i|`abC<}#IXH`oRW<(zZc<^gBK?K)(dPhx$KIbZ#Oyh1vd!4lI>?< zXE~~MR&hRqU`idj`-JH{!<1I7mqp{8#w(y!c_K?L>-NJzcbjPFQjc8L>9y=-MeIgv z^}7eS!J~z0Zm5yG$2I=;Mq5{Pc)>xHKUoS2RvVf=%!z>hbUY#s{B(rCP+yW*#bM@4 z69dq*h2C+4Z|1I4mZoZ>{ND#2KG`^8pZeh!1@@B2xEwmLcG%T-p9l_Z?fj!c#6daWFSc1tWWjT2P}z$MDE8I@>VAw>!u&tJAPh7 zrDXry?`ZO;s#)LGWgT+64Xl_a37HIxrND48uN;ot~8jKpTs+fy!wOA-TI#Ec79VB8a0M%vM=TPk^%!o zIp8b<78`f~Ma5?YDXLkUfD6MzQ1~7IUyBeMk*s8MVmeQRip-{gFb0Ef_QgD|q&*3T z!yODNlrZE<2`2>!nijuktPhy74EH2Z$dbglQY_DkQ_mWORitKS;;>`gjn${jG76yp_`*NiL)5U(MVVZl?KJ?}3V;wENVJ)l*$&uz zZD|OX%i9nuuxaO4W^Ef0N4#U9NiWF-W;Re*y7jIY>yCTul&U6fZuDi252}FZ1lKhy zTm#xx>+l7zF_4QfgA!ed@}4bolpQm*qc+E7K0Kc-t9Klv^Y3&+nV2b6b9nT(j<`qw z!me@ZRmfl*mQ+y5`nB9>@Iy~btOf-u=+`E#{X|oXU)hd3NXmzLF-L)0%EfKeJ(JG? z8qz`C7`Sk60OtlQ!t?lXOm}=MXajGT zNvxwqSbcD_!r^9mInXkO`t=~9>$2c*PoW(kph`-ZDW5Ow=QRmW&dU~NAXi$A6{}*+ z`9e4lb8z5SfgmJ21o`k0a1IA0Pto-scHAte?-sZ<`}U6QYd=_x;g$QW`vcEyYBbPw zF}?r3(&!;OLqnaF#@RtfQ11g*V)MX$(YnCssaen^abq~DfID?$mxbHjBwSV^BJHq? z?7=5$HSf*(7=lW#8zANP9@vRM?10I5MHB36Zh2ExoKHvHL3y}2pEm%+f}f%i56kss zRFy|bNuC-tFrB*&w=4jxMXih;GG$L6N1_~3-uXj(qKbD((4| zyXg{3$*RtEJLkm%5KZugtH^4BUI;IWIbW>PClr$dUBseb`GX5^dJ-VB%kr5ozzIgF zG`ZWC+Z;c54Qx%b#+7krK>`e--JMbV7bp(F1`nTt z=C+omY!i@!1T)8XJRunbaw$}1sEX^Kd&IgW3idFEaK7<{Fk0xaw3UO#nOHY3bdYi*8|26OFPB- zh5rgDPBpF+pgRFV0$7ITdT+qlKFbHqhv&oAt9 zPkOCowRin-3tij9*Ja5dc0!+gG;BSVNqDa$+)Xe-+LXTG{f&g4*yFm9=|@LhU96eM zD?2ERx(LNRpUah0(~P;0gOQ>t;~w*on;!uX9s2uyQ^6KWxkf*Zd-AdAljRR!IEhnX z{4}Rw0t@)}FVhZAFMbtRg;^94jI!_uJomeWisIvv!Yn?SK)bM`$5G$_*s6O);qlggkKn0PmJY-hO|4}`c` zRqSB3c5h;vEZEb&zgPINoDD5b5ep|{T7~lFM|(|WjXUA|H{#Nto?kso0T#lK{$p+# zC@w@NGo*=z9w%QMxbq;J0#H!8V z;Zcg!u?9pan71gap1aNqTD9!XpO;)&)~&wcOOs=MFU=(s3<9!W3?71vfn#{=qWPrz zbADD*5Tf;3@ayPVQ)SU8Jo;E~(KDO%07OirPAl9XSq}=PKmd$Vzds)KdmbRPhwS-{ zR@KqfKQyM%XFd|$8K~+FVNn1GPh)SwZo(3_=x7MGlh zz+8)OuB1MkZ=e6K#uaq-Lo?my0#b$cKU8(?!b2?_t3p?0yP_;3r`4RY~=`B12D$y z9Lb-9Ai{4f-@XPZaar}oVz|=^^IP(mV}~;@ZPpLz1y4sO$-*Kd*Cw{(oi|(J_k;pZ zudp}LMf2+~4tgsRpT2xuC2i|o$enJJ3dVxSa58wFrMY%?LV^Ze&C8gC_~I zg#Ga>dLB1?Q6`IM@-1TcV3L+xXPpo!YC&?geIvHFwP!_ce-6e5q5D!qe zb3+!b!J9V$CcD3@a~kVmG;`JI4RB$AD!=RN=|_>y;JdwAZG7tep2hkF!H*zaWC%n$BGp^MCZCP!1#!rJ#Dc;ShYdoaKM*mbOn zMe5exfG^|X^!zE|4o`kIb;H(m^gU?U=9Rkz4ZI5E>p+`KuR87K-h9d7FOsFz^ZldG>v4T^X_xOxg{u>?SwAEEh6 z8T66jH9Ipw_-Ih_RG6RwfvD7!^^;@^06=`@XLc5Mc8;koBPirrAbNFAp$lZFR+O&+b~req zDi5|aPS5XwdY4{^MLk9D0(5tC!c)Fm%@ z;NZ7p6%fTOaVg`{J6XgQO9|vYK#I1!tUo+@M?nG1PlQwJF7ma1_1mX~^Zk03at-$i zqL(zD6;@lBeb9#;J<8z$n z0ci#6Sei2^cCJx=fYb(~OS)G%L1v}0uFmuDQ!gLCa)^Z?Yl3IGkRUMfdzYP+^g8LBH}7tE>LN_^U9jp1e%RCv?^|RLJSER8803A4tZK_sQG5eGu+>v{L3a6`5C^Oy02=S) z=cwvO#B5)Xk)&So9oPy3pA-Abcqyx)kVqA_6z(UtzGe~b!fTGa z;8P|8WZ8heDINTIFfPmmmz^0Ny3p?@p6OD9j1@?s$Vs}bz=uTh={b@d*{xCD8gKN zZ{xm`A&KUEiV$G=>GCPT1-jpCA-lV`d1=tTWAJtC@ZQCS6Y3SGQ9}>aWxL5^cCfmS zKM-}dWELks3fa!le0+V>WUuCnqnF$=2l}cX+fR5t4?tIWTmeQmf=%;0UH$-|p1W=MEZeVmeAnzb487P04D|&F!gW$!@B1>B>{`TVQ>=yb@YWVX2#*uP!Re=)!w`9}QZB zY_>S|;R@yatW8848vT%U4>mvyfU2Kf6no7-Pasdv1r0+qwFs3d=Xz)fE@O#F1Ju;_ zRa0FY{^xqa_1SYbL_E3|I)%{C&nnIsfT?N+E>E#`>D)2k41?7Her2bMQ=G^^G;AD8 z*jQyiF;M&JfwZa297ArFMd1BO)L~@bm|Kq{uI?#~e!Zr#w^UMOl#TgLP+-TqtMj~^ zsB{0_?YAn19l@*~bsrE5Xwh_$U_fxC7b)x_K7bf@WDxi*>jtQqks((AO(>g`*YgD1 zjyKOc}|5dnKEeIFiLlID@lef?g zhMRh^hMCf^!*6?`(1kvm(%!}kM$=PgwlgEUW`%~=Q=p0H#SY^IF97ICo}J9Y*W7~c zWQ-p7HA^(M_%_?=8h& z-A?acOg9QoTEuUl{7CR2OE`|Z{-s3NP z_mSOmldHChELPNJm@3L!;mTFDpJ;tO&|m69AQ1pp80 zV8_|O-|jX>ox(uSLGdIB<5H73W1Ml8>C=pk%!e%qV=Iw>^&={{G?{U$BMJ6WQK!ind=wRvg6Pk)eMH<{-G_CRdOcSxBq7Q4Lvbj+`#RUwnL}y>XJ9wgW4olCI>!*G;`Bua1M->+4pAPYwGO@+8|z3j zz>r&8TV5Do!Ya4MSHhzDHvc{9oA!k%OVRDw7?ZD>+EOW|OJ7 z?o5rvu@$JkvPtje(^1SPHU9j%tvdG6!i1v-2D{@C2$~xaCz)1jUXb)l)f{0XU*gGW zU$a-F3J40BtZz6dsSGSy!H^s$I#-CRXhy#)RWLoP=|H6^Q1wFqoJ!P>Yv%m*;1*Rd z8VIZGl{sCp2P{$r5W&Z9p>BRBxiPuYJNcVmsuvM?=$N3CbAn zcniH`o!`&NJG0t|GKqo11K>wnkM}zGG|{|p{3r3U=tA*;i2&u6;XffbpW4iZlz{lb zKUe)QNtJ7KN(>CGDX_W{^*c`qyd8MNdUZqc1O+seZTO&S$m}X_J*F-!Cz1&lASr(u z%%iwabKF+|TgN38-+9Ls6EDg&ZsA`gNTG8=so3ix#a5#O*Q7M@oBwD0Is4Uqy zX&3N27DAyJpP$u%0LBw-&7HBk*Vj-Ze{=uM!9+m+>bXNOaR4JHRe?=9mFB)x5vK3! zjDjdIR>+X6n`%n{FeX7gPAxD?aKbtJx|w6u38S%Hb{~D#HlFlX0C9v@Pk=`VPB=wl zLNI*lR2GaXzX-%c^E=DiU4mY1!@8(ECAxa6E$WfY7p$2fc8VCmOw#HCGXYnH&YKev zCu6Tsx#oPIarT~J&){M2bo-U4 zcrA0F%FJmJwc(pryPud5o=x+O#~jhjnp(&oawmZKu~j+mlG_mG@!UIoG7d&jue`40M^O{})t8h?!@={!L#zgT$(GPEw z6cthzH62E%&FWKpG={o9=zl(trJqrngZhrn{Q@P~$kNYC;j<~AYGDbq$@uYny5A@l z0gR2&0BKnOdpnjPMlU?dgv}s$E>+J6n=9b79*jE{2`o?dWqJNw=Ii5*Tocw4nG-Qp zYv2x)>*KkszC_?jgg3pVpZT)eonX8g0z8+BrY7IR&}e3I**6Z;6`Xx^x8N^~;c%+0 z5K@83U|9S{wyWQh1NZ-J60r9Jq55H{)MbwQ4*;3Jx{Pr66M><;-9!OGKGu4aXoYuLAZ$;CxIlq)l9cj$a;>M#?|;SsSl|DB#^ePhN2;YH z>Luus-jGtb(bTHe`ogXalY&FXFczN{V66+No9vqY`YNQ|1M>H>&o)DB8v_F`z2hEFeH6kz6=>&#@M9w zZbqBz256nn0r&_G5O2pVEDE5wwXl3nho)XV#BpeQhLeVf=U=)(7T0|^t3K=SERY;E z70DgKmG`A~wzagxC-j*opXQIQgRIv6$5EO@qg^?MOVP)s zi#Xj7N$4T?N6h?L86xpBiX21>tCX>^)Pv8klrGTIE0m~!!N(S@^Sf_Wn6cUTYWeUC z1U%#b=pV0$fK~~GPJTgqA>ox#RAe>y3hxHy`ziMS9Rsj}FoixxlueyM=?Fex3bjSd z3f60H?ZUVDl&cGMgg8huxv@0|taH%!AgMdcrdJIRNP5Qy!q+$&^KwUmCI3!J^;Jh zT_7N;m1<{BH`RL>%!GC$HTOU3J%Pn-Ub5p6_L|YSF*@?dCa~;UU0qiFLY#u24mr@w zhxCUfB|hjB$0jK(J*B=>6rBX;8;sA?F}OZkMPIoBvV6nm7w`HWj zh~><{7l?~wEDD+x=RXulQ6-Tq`CEwnk?wOV4Z_(suGbKW@h;$|=CjuDopcDUV?5Li zN{k}4S5kGt28Z`-?}=x|2r;cQJVyxz_ey~MdH5fWSLq^zVEXDr>>qzQnxDJ!hq)Uc zmloJ`-(WXf@_z)l2&A1hhRN8Y)yS78+xFxs^3I9~N{!X-mzY!AF&);-Tn88Ctn@8(*JkFQ;D1yZy^a^1qw#hVA|ykJ50q~7ZV-&xSqI&|>&XK^MK zSstQ3Ko?B5gl^#oNV_`i3g)MnhjCN>Z*dZJ#vXH8G--rGNXBx6&E_q8dr7u>(q>i9 zI6ZZ8C~wPkT5|LMWPDoS6T*ye3IVi^o!67yL=vr>eM4WUjhU{=^ydSSFsqaq)ZgTx z2nn`pM@>gU*03zXr&xAjoRc5su7nG0e*beVEl@=kx(-cJ@b>}g-%Vu3Byl^i4V}g` z4@cnt5byeT5zIvOLs7J}Y0B}<#zWs`CSU?lV;jc`VFH=+H9Ptq?hPPmfhfe3IJ=Ut z4U!djB+|%bO!mLsFhfiaZ)TlbVK{$|dpg84LM;Kn7~lip z5_Hq_mC6z04x-OF6}aX+&ZL6E@d1PXmA1MNw(z57qCO@UZsMkZ$?db*!YjVMDxa#C zh6Oet(f3={XSVz6`dlWG?3BgP-rftRzNAD=3pr_mPp26|U~Ba2s=@fnSOd}B|A@4X zcPu^AoRapw5k;tp%K(P2Fc)JjEdcXq!z%(AomMqy+KJr!EEf6r2R8d50$MTF2L}S* z=b!#ZD4vEqxSTK!p$H95!Puky9&tIqT~9MVACKi6ECxS^AYukl4_;$DNVb3j4sMGU zWrDnDZ^u@fG&!7?hpim8#P|PyZwc?;Fl|w47o5aF1YOoem6(h{FLZQ!xJ4L^d2`J6 zX|`T3oQK>7F37qr>WP9T6U&y>)xsf;RXgqA&EQ*++W5C*qqzUxHg!h0`&a<{T}A5y z)I!9So#rxR!KbpM1UMoPwj=umD+-9v!lW=F1D4-T1ahKG3LRMd;SWZaiCC^o-fm3Y zKr1N#+sK($Mf*8@W4UKKBp1lt>i; zouuq}ZpZ%1I@Y?TEfo=Z2*Re9Fa|dDjP(wNc&U_w>j&3_(9UKH=5uiEg80`0&R)j< z`%q*%mTz__Qa;Lc#MRi%HFcmg5y|20A%>T4T>z-wJ+17D!%YjMfz>iQ3J>&XUwv=A^s#KeB?jw!_8d=Sw~X>?D*(&nrUx zZY?c}1Qv9(AKQYx%Y4Q~2vC8jVM5(i83LPc6JFm97B~)Xk(9b+qL=*I*F*g;_t8ch znB816=Kb~%Z-P6wFnH849)3Pm=V`H@JoEeeyxZ58ueR&tZsruy>r@mf!jwL+!RL7^ey?0d$ujvz zsI>+-wmdorzAo&xJh|!nC(iiK$+VDO`PlI|{~T1?PdWJQ6wEj_U^=vvUeE*TUxUz- zZi;wyKt7mC`i5kPYyQ1g;VYI|Cs;zQ5lH>0jTX{oMwnC@7_3P&t`a}NOzV?j5Yn&)$nSM&mHf88EyVU*$%^{M-pj;k<7%^~w4Ij`hXpXzHP7{d3g z9b0G2qJyBqG*~d0DTo3F-g)iHYF8qA`dPIbT=HA!G04~*YBMiuu_MN31;oWY?|KLw z^`WZi=$b^2=d#wb%Gte#>4p=Tnvb7VGd`&>A$`mIK+!LNLF;yZUt|Igjr zFkUKoXQU9PnmIYQ`^)dFIaRH}ti^WL-DieLiuc)z|CnCbh~i6WyV8ih&k{C<@R9nn z{L!T~kD=FOhQ<|y5Ca;hQT%qY$?2sPHp9O+ZrI|m=|%pyg`!W*eS5C+IX7gz^l~)e zi_!Az0;K+%Qms$ zSK9Pn94Ua0`Nm>lkp&VPnp{|8-d}l4K++euezu(3mIl+tQaxpI3kjhNpPI0(u zlj+@V2QN~J^90KB42s6U-!`fGm%!FMEeSOGiF3X+u0ymP+Y?Xo=jX%98Nqjb(wW$= zszK6Xl%p6jd&2};?!Surmk8EO`s2a0-2nzV@k(M4pj(Y_h?GT7XOCm8>`SDDMrv71c>NjVc)>}5TPj<1@KtA@2= z)GxsTj%-6;Nbl=Q4Lb!{mno`~=WkyAeU3jh;0KTO<&@7A6I8E|P0?6+cir-uq+gQl zYOtdx_$pN3h;{F{_}vN2zx*GGt--kJa2tk|({Mu;gx1Mraf62rQypph!re=?zxEu| z;atDA24V9A=Ce8@jI!&7z%w%2uVtCzc=uO)5znm6ORN_`j>iKRUiLrMI83fa^MQw7yEK%?P)7L zUxLu((J7cAGR$>VMjz)8E@w`hoQ!R)G-CX_YyUoV6PE{Op_wTQxV5NF|fMRsk}#+&Pkfj&Wt zsek4mJ+|)d{xTS}xR+w(S@@T!BDtR0HP>d3v$q)K8Gn=s{O6XuYwhz$Y}Yo9;qY#pbvC$eU7(&N>F-0_`iTg-ZYN*yLYL-R z#H7O|?<~)I*FUc$vOTF!(;r}*2X;wnPVgUt1@+~=%ooSqvAfHBWGlYw$=`A_IzoE| zuneHnT!{;7h4$1Te=Wncjl(VDS<`!pc2O05t=$$3@`w<;B)SP38(ljv*G`p#jjlSY z3_6|u@ZR5pK^+=AcosA9TEaaxSu0ZF`l|8{iOeEsBg>Sd&&rAs5B4E7Uz98~eEvSu z3i1R}x6W*5hwQ|3H+fT(M|g^VrybvP3@#nFqtTH}>v4SZWAcj;NAZZ$&;Jn`P~uB* z3BIg4T22|G;;V#D?qc;W7quu6q-2xUgN;HVp>FR#l0vG`T)r-|H5>bPS*b2#?o0r%Vs@vjaXcLVs zDE%^c=d#J)uT3e`ih5QWtF!44r;rqoKJ7^hqrfCuoWFm;U#?rnXNaH~(~sNEKn)Ze z{(T5zvqn09->OVT5sI*Gff)ok{84Y=3mb*82n$lqS-xETcsowXf>*>WbD~XW-_lh zyD6ISzwNY*YqCw+*_epPM^@e*>=y3w@)X>MM|!o%!`2^RE4S6(Y~HvMc5|-i)YiXEOpqos9{OmYXWB@O|A0EQ`+w+m{R=XnpV2FHRK8QFq*KQdJt15^u~|{m@#j0R^a{~7j#3@#h)K=U z^V?1;|9XeWvMeQ=%ms;O2}>Ge%$&#WO+2~3)7<*NzyZy54_}R=#Eg&sZpxae>{ZPy z>0SM(6cy;}w3Vam7Zg$D*g##}GSQbBZ?yddsZ(HFZut^iqp@fGkPg(dfB%oINtiQ= zd8DEc*OkN;%=AUPbzb49Omfo=v}bQO?|lf&3;}FCXrm_(dq|he8?_o0<5%Tu_;vw* zML4p!Qd38Kk@wrL6RGqOPv7l;`3y(!{W_nsIZa=ULMFD%CF5fCueRI_?DqcTsQ)~x z?o^iFgehhHyy{Ci=lXSd>OA{gYahxlky896Y3o?G zsew+y7Zk#Y?~~4Wt`XVxxx*bP#5GS&*sSh+$+Hs>*wEZ4owgefsdLBsA^SUA`9Egz zS%H=fZV^)6#@}#rFq56!-N&e|@|RKm*R_>v_L7=VJuMH|+12hU-RF(lMLekP`9IG7 zbB``ZX|u;^L&i&u-WNk%*tk`ebU#!3z1v2hINOoh zpMApHHYtVm6-dhnETO0eWrL<&3IB5Lnk%-RG9<}-U8inU;J%&k-1)WYisNc}ee9Dp zVf$f%X-DhDU!4-^)1;K}NrQWNw}pjs;7T&R)1(_&4c8fkE>yMNit#6kT3-W*a|P{Ll45GtJ;3X1z&8-f*UqFwW&drt$S zOP-L+QWIiR$6=?&f*(2XTlltzF6aG7$hSBJx951$2aT9zf<$Fxt2hqGq0Ls6{_SvO^xbqw5HG1F4WmKvWF$``0~eeY%Z@qaXW8D*;_ovSOuo+*1jLmvEQ&y*6(kS{ir zYA}>4esNxHSPT%=YqIFz{45hm?rUtTR`=l6O{3TK;iZh?70zN8juLT@amr-Bv@-}Z z>PeiaoH`qfhWL%_4m-S%m=yzz+>;~fQMYW?k~O+p#e4m#jTuy+EkKs>w{@oI8{F-H zYFttY79aX3$Ybt(dgLA2uD*3UYvF`H)R_g$)5cwfaH{zm$~kN}m5!o|jIoYPbh&|E zZlgBcx+a(!Wavt&v8G=oF`H(wW2Ol5hSAi`#{(dPvZc$?h4+zVJ@H0M)w3mJ$g?yF zVz8V2c4XDyu)Yg~A}4NeQ#)_>B31cXW_TVpYbLP#`YnqV)L|MTHQ0v+6ob^VtGC~b zWY>9;GX3prkbKU0Q4TRIlTP@gO1s9H-23eQqsb}ppeg(Icimy9QxC*^neNDtiTMQ4D!mKqd52+(_Z&>$aCG`*Bl!6K8&L=!F!` zaq+9)p91ngn#v4|7x<~WHoD}u7_-31e^*gn=p4nNW;gBZ;33eS*^4sU(&Rp*84#!lIJX- zP$Y+qoiq6dCwF`wUP~56q;Uw~ZELYGO_4Z7*jf(%PZYH-myU}o zWqWBIhZn3ls@jE`FY%KGW5s@Fpd53nQ5e5wr~TagLq%O+ zthvZ6squ|1500)I9jhVGF1vH_5-mK&VmDIpNCXy`kH@sm+<>LK(e)Y;vd13|He!HmOYI z6@MJ=l*MW0H%1)O`JGVK^T@YCvz&?i?IN;CpxLiFT35__PF}XX#|HOQnk1NMVR|+G zmdSPWqi9`NzgQ8Boj9rY3>9LWsBCD70mKT3&;{UZK=R?D2)4+6i^*|)?qtP$fGGI! zdZvI~LHMRT3BG(~lV_-vYVzJi52@w-Zj)-g`X3+ok4BN-bN<0w(YSs=Z3f#*=%`gM@7y%-B?hS@^`CdpVtg{V`k*q^*VQe6 zQb@^T10t=))wbrUUKy4;sHz3hT%4U@pf>9~LC0H%MAw8Ka@3_{fNTx>qN-#-NLwV;4eoNF#=F%u*|kEM zU77>xqEno7NTRyb$~?HYK{DzPf~(HmZgOj}Vw!i0E_i-5Y}{6AX;Di{^HcR>8HkGv zgcpo9e3k&>qj#S3eNe$DL4#CcqELNw^b9!rDU$y2^3M;Po9LBFhB{HDKrLwDg_+?M zT9MGxW2v(xGvSITsm7W5n2~cuwAcjSInLbKSb~O>6WJ&i946jc6y8mFljn&z#1dS4 zMH^Bz-Ah^~CtC)eI`OmQ=DwoQzK2(=N%>y)Mw&f?W8v+)0o)%|MClp=6teSQh^DdW zlsFuBn&H_8inZyQP-|Dycr+pPiPTD>59V_PF^cy?>-Cdz*lKc38fl{;Ki7T{M951$ zOPFzP3f2{i>R8ec^RGvPc8_abeJJ1cDl)o&B0uf@X5GtmCNK~^e@Iow?s|HI=&cG# z3@h(rh9G#`u3e)6uTHV1i!=GxK5*?10tlxJr4IbmK!r>7<7S_x;1ZTa*gAM zwFrJHV=loXTVG7jbJLv!W zS)uo^`TouUebZcBqlVd2yV%;wDz!Qa&N#_q(YJm3bAvH?1PE&T%o{SBE|-{Qc1(52 zM;o+CvDGNzCneD@Dq}kmnFMQ(oWTzKa&b#LV>`oW#C$4(ilc_hvpM`}fPnz^Ye&bp zcuWYl7j#YfhSMjSI2) zNsSYzFCD*VnLN|Jh((qTJe4OaOtIv0Crj9T^J5#!2VfA%m?&Ehjx3eQ39(MqBv zuNJYwBO*+AtM7}Fkj$370v*!J?|?n-uXNA~)_MSBs<&KC#RL`^u_r0B?)FG(Uhw2=R@HU9-ocj29H z(Xk~gQpptG`<2ELgv7$<`~9h(a2dCqk1PA>&bFiAc%Z-bs06+08mL$Ub(=s;?rrsu zHZxEir=hp9iYU7|ZF|oCIB%TZw7r}eTv|U^Wa|)E*S@P-`o>Q(O|cAi+?a_Crt7$P z(SLB&Y)OeQp&U~mJLtbSY~HpO zxvPI3GP12zu6c_bRdsY??h~SPj702e1O9bNBw`iyN zthMfKSbek^ik3Y*1^!qZ`b4q%g~i5>0JgT>yIM;rQL!{e6-LE;KB9Qro)5=;bf7*= z8TnjwupKwzm46@&ksou!ijlh;8S5ZB7~2E*3@*79)@dKyX=WL6!hPziJ7ns|8MNNx zLLQSJBNy+}!tj)V>VCKUqQ{ShFQ?dmnXEaZu26NxBn0y5JCD|oC&pLXgQ;M+kf!&I zs|u=PD$93$%j)b&xkc=lnM58<6dGiCdxQ;oS?_ly_LbDt*i%RdWPyUf_9=&yJhO5= zi4SZIW>HW>|E>~Oc|k=&;*SKAr3F)fctJ;@HtGCkL}dgsoP0kr;R3OonnvF}@{>MG z(kQrlDOAchym-fnL>wfPtZ0dgU#KU4f;mh8Jhs%dP)j`!4a&Bg$H zbaGlqg?r-9lc9X!ygOMhCz9DQFh>%c8)?axuio$izBv4VC_Z@aJUmrx-Scy<#mBlD z*LM@IMB~Ujefk}*zR<&T2wu|qW;G|@vB4qdo zWz|ip^?5|a->j-qF1m@-=Q?iuGAc%X8cA1Ywflg+iI^;6lx+4225tj?@{=0Fz;9rSPHL_=Vp`YtpyL!{n6t=Kzg8HfwsaHfpL;6dL5YFuKN6BY@J7306*jn zaxyA%jYC{jOY7H7Ec@-PC74lb_s$&2?}rv4?q~#Z7~%d;z0TGovLu@0hl3co3JHDu zccXBSQaXCccB`$n+o=zu%?y|e++*d*`%~$O+bpY1?8oAl#~tijSzF4=aQ~Vjc$dS$85j1lFlWkoSTxL;Y-lOF!4vf_M@Kxkq z%qEBU`?<-vj&Bvjjwu+ecQ7PZxsSeL@73S-x-dbPfYMDFGDJh#%mm@0zq%?saV^Qn zER98)`h!m!6m&T)L5=Y>Fe<^)q-TTT*nD={Znvy9Gygh`Faf^ZaEccpn*yIou<2(?b++BOY zo50FD^btSwsVtsy_rCz`WP!$k?;f<<^T8df+s*k+++X2DX*ND6W>(-M?ctw$2<@=s z?J%ut-#w5neC3_fRQVKR*%hnUt-yh^G{c-d#GY$#8}T|;s_=1f%lstm7ZLTsUCu^v z5KxN6*_GPeo$_k!PT{aA)no@ktHa4jyP~QUbo0PcNchn@WUtMUC87Vd{er(w%0J9p zPl}Dcqw9z(JlxP(#5N9dy-#e4mzrSDdv=egfvJZt2LLtRTeP+^L)hAvD>`iIq!NC` zC}7)5t9r^-YRZYdzxF-)Y$C?Z!i~szf4MBK=bhieM2{{pvpTNWZZ1GPw&u@j8<@L; z(m!JmEDgipm616dS0|?cR#RW;wC?oe@K%}`&l<_z`QBxn>fWVLJP)w-a=T?P^t9jg ztT?-oO0&=cuUaZsSGriUT-i%ai<$ttK9lIgj{)<-C>Bd@!S#noIot52Z2e0j-G`Q` zadMzi&66Vov?p+A@g9^WX?|%GG3yxCy&Mc@`Yjy5TBJ6v?;a!-e#N3d%ZC0G)~yfa z{c+~s!Z51evc|X6>2@Hz;r#sNN>FzWtsxL4sNn}jEe4&xe^7$9XCIPD`5{bg%dS7c zo1Uz!lgeF6IMzcyaP|ocvM>b@%l$2u zW@Te#2(m0bvMbTyI0h0)0wdZ#v~F9gcR8CZX)MLg;E!XxVh zy-D~${4Oc!R8JAaPe-Z4h{?$E>Ln%PdiK#~xa7MxY4e7I){A+cRowuEDMuZk51Zkr zE|{AsEJ0}M?LfDbcNZweu%55?k)8|fRF>5wj&)>(R*S9KD;3iwHC2I%yRVl}q-^@f zo{9->B_d<0Jx~LAbm#7s%-0{*GzG@iw8>98P}YAWy06(9yleP#Rq0Sb zjU21<1x*u9w-=B}yE=lPcF6Tq-=+ijfjnukw`9>BQ^<%@D050`q;fAi$bQ}IY@O>~ zuP`;U$Go3M65K|8ml*Jk_fcvgqM*g%Y}ShMSFqWj>JVh0Rr2p{gDne)>PnYQSD*R?r}kR4iIaGm6R^fxDI9KvW9t zMBXG@V7<4dht5My&BTBuhFRKq(HSs*A(03{IiW6rsd&0kR|6>t@)4~&kX5$Q!b(5F zdpWxMyrnKr+fb@7#QA1j?$K_kT}fg8;ALM98~(L@@;2D()Do-D&fr-ApPClMZnBVC z5(_nfkCJk17Q&p0_m{_FPlxYNX5hed6AoJn$IJO{dp z^CyuZdH;{5?+(QBf4|QjSy>5LSs@`Inb~{K?7jEO-g^|0k)53#vR9I1Wo3^iWQFYg zySzWY@1G^{-1lpo>zs3)YqY)(Js39FCq!R}&&gHKgIM%%V{VVXl{)3Jkv(cBE8`d+ zKiVVM2qhZz*30Y?=w)DLBUD@InnlQ4*QBAqtxH^6R zUSfB16W{C518rSi^GTXXUHaa^9^KUi;x^E1T~-`UxkFm+T}ayHq+|!)zyF;UhWi6@ zXDXrvhc8mbK=f2e_2YjF#mv~HiLt;d*k}ZoPRKq;Q}|kO7tQV23gpwsqSer6^G5J= z8VxU$wmpLJ0D2{PsueF1S7Lr5G3E!A?VQbr*TpQjG{(wmpsS0F-G<%4aSyklMoCE{ zQJF=9MuS15C}bojV#MmRRiLclcTagVDJI$r#3Zk_{(>k=W-H%1N94*FBbija4jphGFR(o*97(7%4100sJc6lMy|hZF{N{@9 z7TOMS0N+)u4u|mbD7RHC*%hvOPdpom;J}q(8g8_s0Pro5fN5wj^s`Zu0K1jpo8MqWG|0G2r?G)wJ6K zuVgm`^Z}uI3$|vobWO=mGv}a{-d97qdz26iukU6d!w{62`s)Ais@IVjR=~+$>+bKw z4$YNOG?-+#INh7hraOydkW5)~aW0z-#TkBC2HE{R<8Rx6{p+8{uc_b`drSnU*R6^bDd!ZB;}W7nJ-D!-)hEoGnqQpt4#eZ^2!;j{%eDd6i0kp zCC`xCFybcX+&b(K-U^y>Yb5GD>r()FnvYzHnNo~9OGHRZq<}?K42rckeo?poRpVz`y?^~hy2)@Y!>0k}0ixhu_x)B* zHvg9BX3*Q{@xq>q+_+8$_Peo}7v|Lx?dSLLZL%m3KPAo;V#FM++Bo)UxlFHOnVW2c z?a2pb7CfcklePZis+mU$$5DAyR1HL?LB_!R4jd~K)M82zNz*4i8X^H$VQTj4cEsFS zAJfoyX{Z^0h!b~^6?YJHNdZACTcCU1P#UN>CR#apgPh#wjojd$FTAE;OxjCIB83G8 z7Y1a!DV*2#S$!G%%^W^ESa|%+Vn6Z=A!c}9WDn8ZCu186DBi7@`JK0b1K)W~5p;(d z*`L~OV!Ex*Y;!y5F>$r0Q}F*Pg1hVT_1hN=Ndu;~KGbkf1f1DZzw5S`im~Pto z9N>r^UHXC;4X7Wh7`ddr$f5+&Jw$_2wU^^+j9#V;^n}WBr*zDBVkw5asgFtqXq|+} z_xkiHun#JVuYZ$R)YjQ}>W_Cf`;Q}gl3oi{H+llMpu-ouU=R>EU=u!IvF;^63Io#y zlZ1hP8qp@)6E9uo>`}#PK9|zgO$}OD3kvH!s!WG={{f56TB(>SUAA9mUV(G1V&W!P zK(|Ha-GcgVzgA7Vi8lsr3a4jV?~TTLJ<1I!cnp~8;nlq~&!3hY!$Z7b+KyCr|Ne z`+ljDhqd9sd5&;dyt?2<744XoL`&P+3E7Fxqalwo1?)RddpAqaAed&h!u(yG`7)R4 zI@^mkWWknq;A(|86giGD#HvxOJfqka$M`@G596YZ7FE*shMfYAL^8a!N?Tsga;m>3 zwi`j?;enrl{_4>C4pKY*5Y^-5tF9kR4C+wF1Iqn(#sd{$v3fwZihZqaH3x4L9BD6K zNN8w;K5zzR*8DmDT4qte8z8WP)H)fUuK^y~2`%ORB z7sY5b2%K|>2=Kzpf6xs@bI-wVGUNvafIR`CAG2og@$uVxXRr5h`tF-yQ8nBqz?fOX z4kLsaZ@^xoijC}t4((tiPh5&d=n{6>aZVDl_&@%N>@Oc1XXI;#D&}B0Nup5mk%lq~ zG2W~}pIA~jZUAdvkG)c-TT6wQk}8ufqrbtAlribf@oM3c%dh85>Z<^fZG#Q@P|_xcmn$Ky*vL4{(YsRe(2zI0<68f_mMV!()$Ulw?P*IQY3@qxNnA zHLys1)MZhpcXs~3ka>CF+#P<;!kJ7wpYqcW{YV-qDs0KN=c`K(@stLgyh%mj7^&8_ zq2Ra~R#ZkZPsnIl&Y?ccu-s~f_Nt7BX;NTBd& zM)Ot?uhx@f%Yt%cOhAe~nFZcW&-4U4uxmet6g?>A2vL!M8c88tC5Wfr?eF)rUt5n7 z$ByU~m5;^X0GotXSzGqR`SmY5O;~xUWE7%MlGLe&(O{G9`Ec?+iHfSeqy32V=sShc zj7PH)>$=PM+Rt*0=s!1lEBQgQscpHmb$R0gtJ6!Ll1~+GC6k-B_eGj*S;krDfUw?N z@wwq=t=LA6o^z`$YLb?segylEe9IbZ6&59~X3j0SC4O zD|c(_K3(=>k;LEeGfk>!*gag3Xa?6gT;aP`)<_Eh`3rj;yN@5{yFQl6&Rh}^x{o>^Bsn`v@ z+YyORS}U_(tFDf=4hMx)5#MbIW&2e$r;En);Z2x5@qVKQX}0 zVTWhVp-y|z>DO+RKtRc*q6+bEYzg3=;P>fnUQs|5Q+eCJlI5&XF8ggQ2GpJEw#JxT zT3#wa?T&pWxzsGOusMsc&Kzn!#_ucBVTbdb&ZFC~;h{teR8LlBe(U7r9j@i5Ro!-a zr%xTi^W84|%5KT7U;}A)gs*f{ocH4YU5aqbHgWK#^k|N|tKG2Z)23dLoa1|0(N@DV z>RO`!{Ot_Bt+G0rWImM|ktxt#1Vc=O0fg|9Jsuu#qV}ShwnB zU?quZkfWc5O}n>r7(}D^d2%0#jZCkW3-cQA)~8@me8BSCw5`Qh{m)3`7v$blK58W2 zKK0}4Ergsjl@2)!LcZ-KRF}uxY%HMIw_}?dcVLeR{l51@G85 zcUZmV;{s90*)117LNUno8<8QnK3k*S9T;WsnjIWuvd#-^TzCFxzqPoydpu4OO$Xsx z%O}5a0M6qzZ~x>}f2egQ{wsmN?S}Dl&qhjM*z~@XOtdSgB*)Zf)-5!9%$Qra7PGvD z%!i?OJA0dD_^`ZYEG|6rnORt5NphX+pY{Whd36wRcX(4mTBBtB_@n-Zhh)DeKfa^! zxpct2_C2Ly>Qpuy;HWc@($pZ1me``Eq9u-6{LK~{aDIw0o00wZL}#MD0W5$sSC1~Y zBg$vw*3(*)$Gwro$Nm2@FcA_*Gqk*Fk8i*JhYrg`on<_z-t_VqoKG*7n1PN0_Imd+ zhUsMe+!FJo6@|${O7H~}jHT@0763~7hvPXy|4C?;lppVP|jp}MT()4By2VT#>4%+En z+dp9QVU;6P47u|@EBuZ1t4FusYSC^IPH4ZnKp|aaH0DWTFTKyVr5T%Wws)~dcf;yj zU+x4*v1?iJFQ^lv!8z1fi@Ds#?JM@TqAbFm=QiAlyStr&A04-HwArrxg;bKANTVT( z04DDqNj0O8W6U*fTx`@^o0=5(-!E{t*9h=6B`nk$+EnaInc!SLTLVv3Hg&s9rO4kF z$#&*wjx_nyj0`bu@}8Ln$D8S$lbb4Rq|ecHZHL{-cmI6KD;V9ZiBcH=deu?r<5B}} zKQpOZx}hFk1nv;kqoo94A#iM*s6L5Y?_Y8GwRf-t)Oh&oft49qUI`OtV7j_5w&=h1 zUS!up7%=Ou!5Wfqj zXSV@A2DH{+h{aKj^@m-=f8skevN7+Bq+6= zB$|hsVzr!C1x@Z~!jNtZ*+T9B|3G>fzGt_WcG}y5`qxFck}f|iD5(&K=3@Z}2#0^@ z>`mIH&Q);fu0f2=U}ra>83@%d&Uv_z!^7&MaXqu_9ABjJ`T!wc&Srr8#)=Tghsdvq#hL|5)98Tqo%rp^j=W*-W4C4% zMQ4iv69Z4Qy~R6WCHWDocpUPdut%vqA%SjG?&7r9k%RZiE0w_k6CP6sZ{+K>>pe$~ zdkVYwKB@8`l~$(H_wn)J(WOY&Wimlva`sRhMvSY|GoN>@Z_Us^P=@h#^@v(#?9}&| zi#Lk9h0Ru8fC<7UDi0HC2>_xmQp_&S11^HysY!p~s(iLtMtO{n*k zBZhy>ywUD>NbU?_mEzMqa;@wG8xj05^yefJjaKo#cN;tlyyu^+Y-0<3w4)`CxAuS5 zsE;S0tJ^`{77%_qC6ij26U5=C19h~dlrIDuP(gGBXv!IcsPJ%lnJm4|jd3k%kxY@U zEvKY5%!_X1%8hLn9$rs~`kXnk&KO6|o^&-Ro5ao^!BiO*)g)Fg)i8VV>IX2IYw;(#shnb9Lme!fgR zFF|&`%=qc!NX0DyMOWy z-mcxJSJ!vlkXsz?Qq5+I8U313Pgh7W2ZixHdbj;bGo){Z`%#@l_;J+#c>CmD9Ozul z)nC(~-pT9(M0Ddh(S2#G!QODuR_9_OCg$KJ=m0fu>Y$dBx;fU0YB{PQ8{|yBv(;5l zEzz_sOMk0Nr^xh&gOfba;IaQtA-xLqs`}~>mx5qrdXH*H^0>M-7O0_s*pCg@6&o+5 z&jo$@4G>1(-@gmB5@Nrx&HTL&OtD0V;pSnt>GD7pYl^HnB_)QfpxQ*k8|i|_m)`60 zq#%bI4{y>w#Qr;=*lF`rj2MlNvW}~W?=fzt8D!`A4fJZuB;N4xbZHK{eIMb?xc%Y~ z;#bXJv*0+`4~9+pnz(T#T?DL1U6-f#09kh#H@FKVaFOF;#-7|5VJ19}fO|?GgrEyi zx-?N{^4`|4^{n>9ahuMIAN1kjv)_LIQr}rhvp~{ z?USc&MTz>Cj56fCUTNB=Ehmq><1n`Tzk9l~;!kV_H>){KJjwRdDbSSwM9@FUdPBl3 zN$a^bPkkh1o6qQ05*FzF*_u`n_ilX?at(}lGIsxTBIi~A?pbtETd(xJbHj{sbKtz| zMvCb6K(rUp_W`GQQu%JDs=9UZt^CNkO-M0dyIM7bc4|f!Xv|PUfavh&&|A7D7U~>n zwxE!1H9NoA-X-U%iIz5Ff)>C+=LjTUF$aKNClL|T7UJUwGha8b-Q_>RBB9A(U8E=L z$}e~Y%r8nnKng3#`>+T0C{e+R5hEQOUy&cwi7wkJ7Q@Qy&VSNkIAynKs3L4#qw@%~ zO%6f9p!E_J)NsG5DK-MMJBjKNJX#`bSzT9q4;2+(U`pkI_vSUdOs%-cb-SUx$mJqm zWCQhtv+wkK`I4PUAUReoi<}(&$%#xKI8EE%6k_W(t#06od$C03ahylq2Wjca3hldIDQWO47! zoRXpoZV&@hV9}oan{bI_U!=oC4iFb;Sh)`Jz>B!2t13b885z7ve}A0FH>yf7Q%Zo0 zonFO&$$!#91uS=`8P|dPyqY8W&Zik02Hyf*lO8i5xNVT-j@Q^3IowRS$d~qCaqtR8 zf#UAM=Ios9A|&$&2Km+T&l?Rx{bnk_0luFwvu<|~k|G&@0`H;S^jp>^uUWug?9341 z8Ke0;9DJc=cA5)AWgMOycjAJ^%ciV~)}9KrAMSWQbbKhoMR#*m z8ukkN`^0?ynrHwbQ%p}R;PH#i?6w<-VB53c46F=jsLPi+UlJdhxttafI)8sPFb5pC z*Ptb0a&vM1tsZ;A;Xnf9DFbS@ZW^-UHUV{*8YVi%6yY!3cLBo9kUM!|-HoH`R#^{f z!c0(O8kRsnQ)IyPjH9;B%nLqp$8>9$P3sKr61*{BklMPBJ|}r$04#^z$LKOv;%Lk; zx^HGRug$MTLLfgIKp`Dv{DVvf_6UXziP#fAkobAI2vP?~s_GkK=KQwJqWjl7mRrHM zmaqWk4PuMhbzhjC`sY^h-AjqK^Ho|XI}w1IZhpFuVdw=`pQBC+c*?-y=`&JWxc7Vz zBwhy#QNx>$BqSaHyqQJYMcxW~&#XTHa}I>0CV$a>2!Vu9Nbn&kVl# z1|HpZRa4kmar?Dc^>Rj*>MbkDA2gL(`Bb3U7B)M7cHw+1H(zqAEB7QqIjvzs{Gktp zs*eC$YDSYLO`Z`x@*@6%V0UeA45$qpWH`fE?Ve0(8b)Mda6@$O_r`$DF!uU1yM1Yw zK2q=MIQYfeU9CTtl%5r?lj8v%Aop!lce{4`u>`0dz&Sar^x|@9(c)PB0Jrjv7Zd4?pt? z$00_ad>Ay;0!3SRs|OKr8zhwRV-^CK==SW+f7*T=7KsD^8qr+kjb^D_8tl|8^4^hk z9k~}0qWqaR;xT=nJ;TcSra%LL@8r@@8;z#VRGef79OMTeJD+#lno->xQcNhj{zzh( zT~iwB>;wHFH$9t;o1(*fCwzZwQWUW=z6xigB+dmD7#+GuTjnx@5eBHMryri&8!(IR zcIXBp$wfbPd-oTwTZ~C>4CQ0>A!SKE9%I+ZnF>G-W;os5+PJ`JyIs)XfM*9He#!Yc zZ8WbMBT$1MxSjzu_@d4HwL(Ca84wMozULQrTBzQw+LTSFmj2BPP4N5{C+vHSx*~h; z)a1^TUEBKQauhw#mr#3!57?}0AN7MsJGlwr(M@D;q3gWy#hoQ9WVNJxr{?#5*DqN$ zu$H8efm1H=eajpTe+TC}EHIzJle6EqD@#KY&U^XrvS$e{RK@Nq{B6xUh4&Rio z#`pVbXoOjj0C+_LV^zdlI2`VvHL#B-NN9}5gpW6$Guf|{Y{*?*pY7wPW@iRo`X1>O znWoVEp^2nhEo6G#Px5+T6{zi>nnGKhCAnpaB0 z&UIkhm=grA1W@8VE)w}`QJA2F8dqYNWMh$t4tJVx-mom-PlI6zXc8(*``#R!Jjk_; z*Lz`S(VpcNdxuDf{QN0&s zhAy>+ATMx13#Pe|{L}h4p?n!UKeu|9lQ%fiFq4`%f!G}QO_4F?=@Zwl*in?xbJJlo zMI$<_lvb&z5JR55V6X9GvaPjD1M7|Ug+N+Oe3B97xXrmpL66DT#emNUV*~%+LwX%amdwtyyDxI0AWpcW#}E z_##TP0LZ|#@5UIwNi(B_U#waZn`Bg6E*#ru)p7C%Q}SZoRw;O*9~r2#2ZYuRFDh@4 zR2m2G^C-t`!LF`Z_1;i5ge#b&M~x$1O@N6vPnpg5l{-<1+Yw>A;dU1XWz-TIaS+?n zfXUMqDwy1fe|)!asp^68A{@k`K)bNawN!?6jl|FozcXMdZfn0! zm2GUfL(r#QxV`NCYxCwRg3*A2@bu53A6>p$c3f|}Qy_~5s~}^>=dSse4c00Us8iqb z_5As^+kV7%79@}>>u2OLfyjCFuaAKjy>w%)GW#SVz>8%p=n zod_^AGj(zpw7=|uidx)ckJT^XOgu5H@gW<#eD}7?f#6NU;=xm9EtW_Iwe;58_L{e6 z*)50mPbW;vz!$^Mg;UuZ_o5n8LItWEV{USEaziL9R5gNsss?L718(Kyq^9I?=KB%a z#p5mq+s7HKtk~FLbX=zb;bwPVYcfks}E_m92i$ zrnO5F!$6t&o;JhQAj*{M9@zNNL9^<5TB-Pk9tH}c17R%P@MD&j90zn*#NJQjRSPC` z*;1?*<&}M7C(Klj1`vNv4id4Fb-Rj`S)ev0dns!Z7k>h97dr)s$RE(pwu=!|`_!7# zNrGW7>>1Qb^wzb}|H|bu*NI<%WeFbgv=CE6ndad3NC=u&gn(bKrk_v7fCUh!5?ng0 zm0-9@j~{^^35*CPuTOmV8RIVNBwCXBNN|XHwR{SsO|T72ORoDMYh*@diX_}M;^q3H zfCVb?Ty2*94yQO!w!7Y-`oB6va$Kl1e8p8Dr0f>pkG|0E6)c6n+RXC}T87VbdvAjx zRyuC;(w*R4|DH^*Wd6vmOj(?{jN~p`uwL%4hoUu*n{LzRS93OgnD$jO_8jDg#p>j} z;_AfxB;Z=pB|#@Tj;U1eTb}rLhIg}w=R0Lyy2prfg^ku?Dh}m=S>0>z6Ax`nljEer zq+gt{ErS&LcJ@!!k}k+Cxao{U)h#kNm?UZOJG4BFMwII&6U2Y5ZfObw@elkwHY`MA zpIgOMz6`&<4HJHSj;nGjF4l5Ua){i(N)BkpiEk^t75$F|z#u5}_XcV)zOCH`_qR1a z+3IbeEVC9tUifJ71o=Um?PFmy5;y=(j!yIIn0zqkI-TmrvVQ+oWXUAjmYcuH3mvPoS9vbT+qekuw z_?Z|xV7JlYiyQAwNm?Xf87P&Ty-k5b@kQ>3XZzdz{2uCe;u)P>$R$e)nBEvv_5#uX z!#lKK=(DuBH%*Hi-FR6+JB(pcskjhgtN%o zcr=M`C=@s_Tk<0X`q3g6Fe)c;!LGiEm+&GtvKyiNQs~ol2j_=ZnoOIqp$x;g-~K=u@xh}tdo{Tn~+}g zf%P>V8TT!`4!?RGpYqlT43*!V&RgG%U}m8e{@cuRa_jnOaNLXMYHtvoePG7cjES}4 zi=0ZsgaGPc!9r$i%3iRP8u5^R{W{^Gh56};kn9S}5k5j&KdX6|F&x47V@R9;3r%u^ zQGusnm+2l?_r6rwIAd3VR$v7Tk|)`s{<`JX|hzdfU}X&~9JnkBZ!>)P(%z#*0+@tvOr2dG&76#qEW zlug}hdCMwKC)D=IsA6LJIIn1Zzw~hTO2hhN+u407{cC~aG*ndw4Eh`wG!*-{2;=Ga zNEMVn+(;iB-8-%7ruhV9mk*nj`1oXTtmR@|On(3Cc{yo`nk6P=i0rEB0B*rMYvZ`x z9NaAqOn)mMfe^mbvw0|FsnuLg^X9wBC4v;bz*gf`@O1rNc+fbVp^WA&h0#TAQnr2( zl>?z%$vKW3>$4J09ksVAU%KpwBc%EqM0)IsctBR*nnLz9Q2XPow=m(Z)?mIvBSdUe z^^GuZDKIV51sAW=yEY6V-c*T7XvCj=DTFUTHCa&Ghnf}AzaB^*y@pquI_QnZ&cw_0 z&133WlrdQqO2xEy&Q*%Sn&$iNtgTak@J;-5(I*b=bV=(93IA zdHYbC9QzDjuyXlCZmA)+jLji>eA0Rw?$E1M|8Q^+Ob>98-2E|aqC<*2lt8H!Zp=>& zv&Z63N}jp>F#4`S7q<3z9=r$%S|;zb&9KVkTu)Ydd$o1aLk3ug=7^DlL}+{)$T)J= zyM4$v%pSYxdnihAw2bpSJ-T`83E7^?73$}BC%cpp(%%xo8p&Fy)=nW+IT9J)xtOia zdh)66BP(*OVqaGtn2(`d0g5K(p(H}SsM$DmoHjmQO*=J?j+_xGS?0(C@%7NUUCBFh zzeV`juE+lCxjlQmEeyK!R;JKi+*D_z_kS1KJA>e1Y#gE|uCsAXT{PZLY*@dxs-KoN zci~g~0DgLzFQ+MNDQx{l{yf1xWih+ndSc$s@2=kv14uVkIx@i!fizhS0g36-S9)=@{sogbLwN6Lx z<}x*`w4T;_)-b23Th6mwf^)UE_OeBPL4+|Q`^;xoAY#1WnSjr~TV?(GcL$B=VSgeo z%{Wux_)<^r>Lu8hZK7|)kxmFZAgBY{dLrUL9Vuvwy^~_RxZkw5JC99z*W~WE7lj?J zY+mscRRIG(Ew}5D=Vx$%ym)?#0L7Szc--@tPaFea{m|Az|#+m=c#+r1dfGv1>a2B)b|D!-qkK z{G`COoCS}cJ}&8x=3nA{+?Q}uZNrlmG5;<ff*3u${>8lgxO=y(ay?^Ka{tc@py`;SS(&eCo1GCBlPJE^-FUMV}F-TwVrL}O3Xow$4k-HDe>0%t)nQ}x^UITXp1sv)d2^&x(3BP zvohZFZ!0l=1sH7%)6vnoQL)=6H15;tbD? z!0RXDI7F&cRr|v6!^L#U_s-6QFoOE=Jn(cu7PWJhw*57cr&DBELQOGD_&Z?k)Mx7+ z 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