Skip to content

Commit 0f0bb6c

Browse files
authored
Merge pull request #2013 from keymapperorg/develop
Version 4.0.2
2 parents cc06a17 + 6e8158a commit 0f0bb6c

File tree

18 files changed

+1615
-251
lines changed

18 files changed

+1615
-251
lines changed

CHANGELOG.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,15 @@
1+
## [4.0.2](https://github.com/sds100/KeyMapper/releases/tag/v4.0.2)
2+
3+
#### 04 February 2026
4+
5+
## Added
6+
7+
- Added Chinese Simplified translations.
8+
9+
## Removed
10+
11+
- [#1973](https://github.com/keymapperorg/KeyMapper/issues/1973) [#2006](https://github.com/keymapperorg/KeyMapper/issues/2006) Removed language switching feature due to crash with no solution.
12+
113
## [4.0.1](https://github.com/sds100/KeyMapper/releases/tag/v4.0.1)
214

315
#### 01 February 2026

app/build.gradle.kts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -91,10 +91,6 @@ android {
9191
}
9292
}
9393

94-
androidResources {
95-
generateLocaleConfig = true
96-
}
97-
9894
buildFeatures {
9995
dataBinding = true
10096
aidl = true

app/src/main/res/resources.properties

Lines changed: 0 additions & 1 deletion
This file was deleted.

app/version.properties

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
VERSION_NAME=4.0.1
2-
VERSION_CODE=241
1+
VERSION_NAME=4.0.2
2+
VERSION_CODE=242

base/src/main/AndroidManifest.xml

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
<uses-permission android:name="android.permission.USE_FINGERPRINT" />
77
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
8-
<uses-permission android:name="android.permission.READ_LOGS" />
8+
<uses-permission android:name="android.permission.READ_LOGS"/>
99

1010
<uses-permission
1111
android:name="android.permission.QUERY_ALL_PACKAGES"
@@ -117,14 +117,5 @@
117117
android:name="android.support.FILE_PROVIDER_PATHS"
118118
android:resource="@xml/provider_paths" />
119119
</provider>
120-
121-
<service
122-
android:name="androidx.appcompat.app.AppLocalesMetadataHolderService"
123-
android:enabled="false"
124-
android:exported="false">
125-
<meta-data
126-
android:name="autoStoreLocales"
127-
android:value="true" />
128-
</service>
129120
</application>
130121
</manifest>

base/src/main/java/io/github/sds100/keymapper/base/BaseMainActivity.kt

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ import io.github.sds100.keymapper.base.input.InputEventDetectionSource
2929
import io.github.sds100.keymapper.base.input.InputEventHubImpl
3030
import io.github.sds100.keymapper.base.keymaps.ConfigKeyMapStateImpl
3131
import io.github.sds100.keymapper.base.onboarding.OnboardingUseCase
32-
import io.github.sds100.keymapper.base.settings.AppLocaleAdapterImpl
3332
import io.github.sds100.keymapper.base.system.accessibility.AccessibilityServiceAdapterImpl
3433
import io.github.sds100.keymapper.base.system.permissions.RequestPermissionDelegate
3534
import io.github.sds100.keymapper.base.utils.navigation.NavigationProvider
@@ -105,9 +104,6 @@ abstract class BaseMainActivity : AppCompatActivity() {
105104
@Inject
106105
lateinit var configKeyMapState: ConfigKeyMapStateImpl
107106

108-
@Inject
109-
lateinit var appLocaleAdapter: AppLocaleAdapterImpl
110-
111107
private lateinit var requestPermissionDelegate: RequestPermissionDelegate
112108

113109
private val currentNightMode: Int
@@ -205,7 +201,6 @@ abstract class BaseMainActivity : AppCompatActivity() {
205201
systemBridgeSetupController.invalidateSettings()
206202
networkAdapter.invalidateState()
207203
onboardingUseCase.handledMigrateScreenOffKeyMapsNotification()
208-
appLocaleAdapter.invalidate()
209204
}
210205

211206
override fun onSaveInstanceState(outState: Bundle) {

base/src/main/java/io/github/sds100/keymapper/base/BaseSingletonHiltModule.kt

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,6 @@ import io.github.sds100.keymapper.base.onboarding.OnboardingUseCase
3030
import io.github.sds100.keymapper.base.onboarding.OnboardingUseCaseImpl
3131
import io.github.sds100.keymapper.base.onboarding.SetupAccessibilityServiceDelegate
3232
import io.github.sds100.keymapper.base.onboarding.SetupAccessibilityServiceDelegateImpl
33-
import io.github.sds100.keymapper.base.settings.AppLocaleAdapter
34-
import io.github.sds100.keymapper.base.settings.AppLocaleAdapterImpl
3533
import io.github.sds100.keymapper.base.system.accessibility.AccessibilityServiceAdapterImpl
3634
import io.github.sds100.keymapper.base.system.accessibility.ControlAccessibilityServiceUseCase
3735
import io.github.sds100.keymapper.base.system.accessibility.ControlAccessibilityServiceUseCaseImpl
@@ -210,8 +208,4 @@ abstract class BaseSingletonHiltModule {
210208
@Binds
211209
@Singleton
212210
abstract fun bindClock(impl: ClockImpl): Clock
213-
214-
@Binds
215-
@Singleton
216-
abstract fun bindAppLocaleAdapter(impl: AppLocaleAdapterImpl): AppLocaleAdapter
217211
}

base/src/main/java/io/github/sds100/keymapper/base/expertmode/ExpertModeScreen.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -516,7 +516,7 @@ private fun IncompatibleUsbModeCard(modifier: Modifier = Modifier) {
516516
SettingsUtils.launchSettingsScreen(
517517
ctx,
518518
Settings.ACTION_APPLICATION_DEVELOPMENT_SETTINGS,
519-
fragmentArg = "default_usb_configuration",
519+
"default_usb_configuration",
520520
)
521521
},
522522
)

base/src/main/java/io/github/sds100/keymapper/base/settings/AppLocaleAdapter.kt

Lines changed: 0 additions & 121 deletions
This file was deleted.

base/src/main/java/io/github/sds100/keymapper/base/settings/ConfigSettingsUseCase.kt

Lines changed: 0 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,10 @@
11
package io.github.sds100.keymapper.base.settings
22

3-
import android.os.Build
4-
import androidx.annotation.RequiresApi
53
import androidx.datastore.preferences.core.Preferences
6-
import dagger.hilt.android.scopes.ViewModelScoped
74
import io.github.sds100.keymapper.base.actions.sound.SoundFileInfo
85
import io.github.sds100.keymapper.base.actions.sound.SoundsManager
96
import io.github.sds100.keymapper.base.system.inputmethod.KeyMapperImeHelper
107
import io.github.sds100.keymapper.base.system.inputmethod.SwitchImeInterface
11-
import io.github.sds100.keymapper.base.utils.ui.ResourceProvider
128
import io.github.sds100.keymapper.common.BuildConfigProvider
139
import io.github.sds100.keymapper.common.utils.InputDeviceInfo
1410
import io.github.sds100.keymapper.common.utils.KMResult
@@ -34,7 +30,6 @@ import kotlinx.coroutines.flow.channelFlow
3430
import kotlinx.coroutines.flow.collectLatest
3531
import kotlinx.coroutines.flow.map
3632

37-
@ViewModelScoped
3833
class ConfigSettingsUseCaseImpl @Inject constructor(
3934
private val preferences: PreferenceRepository,
4035
private val permissionAdapter: PermissionAdapter,
@@ -47,8 +42,6 @@ class ConfigSettingsUseCaseImpl @Inject constructor(
4742
private val devicesAdapter: DevicesAdapter,
4843
private val buildConfigProvider: BuildConfigProvider,
4944
private val notificationAdapter: NotificationAdapter,
50-
private val appLocaleAdapter: AppLocaleAdapter,
51-
private val resourceProvider: ResourceProvider,
5245
) : ConfigSettingsUseCase {
5346

5447
private val imeHelper by lazy {
@@ -201,20 +194,6 @@ class ConfigSettingsUseCaseImpl @Inject constructor(
201194
override fun openNotificationChannelSettings(channelId: String) {
202195
notificationAdapter.openChannelSettings(channelId)
203196
}
204-
205-
override val currentLocaleDisplayName: StateFlow<String?> =
206-
appLocaleAdapter.currentLocaleDisplayName
207-
208-
override fun launchAppLocaleSettingsScreen(): Boolean =
209-
appLocaleAdapter.launchAppLocaleSettingsScreen()
210-
211-
@RequiresApi(Build.VERSION_CODES.TIRAMISU)
212-
override fun getSupportedLocales(): List<AppLocaleOption> =
213-
appLocaleAdapter.getSupportedLocales()
214-
215-
override fun setLocale(localeTag: String?) {
216-
appLocaleAdapter.setLocale(localeTag)
217-
}
218197
}
219198

220199
interface ConfigSettingsUseCase {
@@ -260,13 +239,4 @@ interface ConfigSettingsUseCase {
260239

261240
val connectedInputDevices: StateFlow<State<List<InputDeviceInfo>>>
262241
fun resetAllSettings()
263-
264-
// Locale settings (Android 13+ only)
265-
val currentLocaleDisplayName: StateFlow<String?>
266-
fun launchAppLocaleSettingsScreen(): Boolean
267-
268-
@RequiresApi(Build.VERSION_CODES.TIRAMISU)
269-
fun getSupportedLocales(): List<AppLocaleOption>
270-
271-
fun setLocale(localeTag: String?)
272242
}

0 commit comments

Comments
 (0)