Skip to content

Commit 274ba3f

Browse files
committed
Revert "#1973 add option to change app language on Android 13+"
This reverts commit 8e1ee50.
1 parent 0f681b0 commit 274ba3f

13 files changed

Lines changed: 10 additions & 246 deletions

File tree

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.

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
}

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

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ import androidx.compose.material.icons.outlined.Android
2424
import androidx.compose.material.icons.outlined.BugReport
2525
import androidx.compose.material.icons.outlined.FindInPage
2626
import androidx.compose.material.icons.outlined.Gamepad
27-
import androidx.compose.material.icons.outlined.Language
2827
import androidx.compose.material.icons.outlined.OfflineBolt
2928
import androidx.compose.material.icons.rounded.Code
3029
import androidx.compose.material.icons.rounded.Construction
@@ -79,12 +78,10 @@ import kotlinx.coroutines.launch
7978

8079
private val isExpertModeSupported = Build.VERSION.SDK_INT >= Constants.SYSTEM_BRIDGE_MIN_API
8180
private val isAutoSwitchImeSupported = Build.VERSION.SDK_INT >= Build.VERSION_CODES.R
82-
private val isLanguageSettingsSupported = Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU
8381

8482
@Composable
8583
fun SettingsScreen(modifier: Modifier = Modifier, viewModel: SettingsViewModel) {
8684
val state by viewModel.mainScreenState.collectAsStateWithLifecycle()
87-
val currentLocaleDisplayName by viewModel.currentLocaleDisplayName.collectAsStateWithLifecycle()
8885
val snackbarHostState = SnackbarHostState()
8986
var showAutomaticBackupDialog by remember { mutableStateOf(false) }
9087
val context = LocalContext.current
@@ -149,8 +146,6 @@ fun SettingsScreen(modifier: Modifier = Modifier, viewModel: SettingsViewModel)
149146
) {
150147
Content(
151148
state = state,
152-
currentLocaleDisplayName = currentLocaleDisplayName ?: "",
153-
onLanguageClick = viewModel::onLanguageClick,
154149
onThemeSelected = viewModel::onThemeSelected,
155150
onPauseResumeNotificationClick = viewModel::onPauseResumeNotificationClick,
156151
onDefaultOptionsClick = viewModel::onDefaultOptionsClick,
@@ -246,8 +241,6 @@ private fun SettingsScreen(
246241
private fun Content(
247242
modifier: Modifier = Modifier,
248243
state: MainSettingsState,
249-
currentLocaleDisplayName: String = "",
250-
onLanguageClick: () -> Unit = { },
251244
onThemeSelected: (Theme) -> Unit = { },
252245
onPauseResumeNotificationClick: () -> Unit = { },
253246
onDefaultOptionsClick: () -> Unit = { },
@@ -294,21 +287,6 @@ private fun Content(
294287
onStateSelected = onThemeSelected,
295288
)
296289

297-
OptionPageButton(
298-
title = stringResource(R.string.title_pref_language),
299-
text = if (isLanguageSettingsSupported) {
300-
currentLocaleDisplayName
301-
} else {
302-
stringResource(
303-
R.string.error_sdk_version_too_low,
304-
BuildUtils.getSdkVersionName(Build.VERSION_CODES.TIRAMISU),
305-
)
306-
},
307-
icon = Icons.Outlined.Language,
308-
onClick = onLanguageClick,
309-
enabled = isLanguageSettingsSupported,
310-
)
311-
312290
OptionPageButton(
313291
title = stringResource(R.string.title_pref_show_toggle_keymaps_notification),
314292
text = stringResource(R.string.summary_pref_show_toggle_keymaps_notification),
@@ -494,7 +472,6 @@ private fun Preview() {
494472
SettingsScreen(modifier = Modifier.fillMaxSize(), onBackClick = {}) {
495473
Content(
496474
state = MainSettingsState(),
497-
currentLocaleDisplayName = "System default",
498475
)
499476
}
500477
}

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

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -110,17 +110,6 @@ class SettingsViewModel @Inject constructor(
110110
)
111111
}.stateIn(viewModelScope, SharingStarted.Lazily, AutomaticChangeImeSettingsState())
112112

113-
/**
114-
* The display name of the currently selected locale, or null if not supported (Android < 13).
115-
*/
116-
val currentLocaleDisplayName: StateFlow<String?> = useCase.currentLocaleDisplayName
117-
118-
fun onLanguageClick() {
119-
viewModelScope.launch {
120-
useCase.launchAppLocaleSettingsScreen()
121-
}
122-
}
123-
124113
fun setAutomaticBackupLocation(uri: String) = useCase.setAutomaticBackupLocation(uri)
125114

126115
fun disableAutomaticBackup() = useCase.disableAutomaticBackup()
@@ -178,6 +167,10 @@ class SettingsViewModel @Inject constructor(
178167
}
179168
}
180169

170+
fun onRequestRootClick() {
171+
useCase.requestRootPermission()
172+
}
173+
181174
fun onExpertModeClick() {
182175
viewModelScope.launch {
183176
navigate("expert_mode_settings", NavDestination.ExpertMode)

0 commit comments

Comments
 (0)