Skip to content

Commit fcb4a2a

Browse files
nichu42Copilot
andcommitted
fix: use AppCompatActivity for per-app locale support
AppCompatDelegate.setApplicationLocales() requires an AppCompatActivity to properly apply per-app locales and trigger configuration changes. - Change MainActivity and WidgetConfigActivity to extend AppCompatActivity. - Apply the saved locale in WidgetConfigActivity.onCreate before super.onCreate(). - Switch the app theme parent to Theme.AppCompat.DayNight.NoActionBar so AppCompatActivity is happy while Compose theming remains unchanged. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent 1352ccd commit fcb4a2a

3 files changed

Lines changed: 7 additions & 5 deletions

File tree

app/src/main/java/de/nichu42/boxviewer/MainActivity.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ import android.os.Bundle
66
import android.widget.Toast
77
import androidx.core.content.edit
88
import androidx.core.net.toUri
9-
import androidx.activity.ComponentActivity
109
import androidx.activity.compose.setContent
1110
import androidx.activity.enableEdgeToEdge
1211
import androidx.activity.viewModels
12+
import androidx.appcompat.app.AppCompatActivity
1313
import androidx.compose.foundation.layout.fillMaxSize
1414
import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen
1515
import androidx.compose.foundation.layout.padding
@@ -51,7 +51,7 @@ import androidx.compose.ui.res.stringResource
5151
import de.nichu42.boxviewer.R
5252
import kotlinx.coroutines.flow.MutableStateFlow
5353

54-
class MainActivity : ComponentActivity() {
54+
class MainActivity : AppCompatActivity() {
5555

5656
private val pendingBoxIdFromWidget = MutableStateFlow<String?>(null)
5757
private val pendingAddBoxId = MutableStateFlow<String?>(null)

app/src/main/java/de/nichu42/boxviewer/ui/WidgetConfigActivity.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,23 +3,25 @@ package de.nichu42.boxviewer.ui
33
import android.appwidget.AppWidgetManager
44
import android.content.Intent
55
import android.os.Bundle
6-
import androidx.activity.ComponentActivity
76
import androidx.activity.compose.setContent
87
import androidx.activity.enableEdgeToEdge
8+
import androidx.appcompat.app.AppCompatActivity
99
import androidx.compose.foundation.layout.fillMaxSize
1010
import androidx.compose.material3.MaterialTheme
1111
import androidx.compose.material3.Surface
1212
import androidx.compose.ui.Modifier
1313
import de.nichu42.boxviewer.data.db.SenseBoxDatabase
1414
import de.nichu42.boxviewer.data.repository.SenseBoxRepository
15+
import de.nichu42.boxviewer.util.LocaleHelper
1516

1617
import de.nichu42.boxviewer.ui.theme.MyApplicationTheme
1718

18-
class WidgetConfigActivity : ComponentActivity() {
19+
class WidgetConfigActivity : AppCompatActivity() {
1920

2021
private var appWidgetId = AppWidgetManager.INVALID_APPWIDGET_ID
2122

2223
override fun onCreate(savedInstanceState: Bundle?) {
24+
LocaleHelper.applySavedLocale(this)
2325
super.onCreate(savedInstanceState)
2426
enableEdgeToEdge()
2527

app/src/main/res/values/themes.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<resources>
33

4-
<style name="Theme.MyApplication" parent="android:Theme.DeviceDefault.NoActionBar">
4+
<style name="Theme.MyApplication" parent="Theme.AppCompat.DayNight.NoActionBar">
55
<item name="android:windowBackground">@color/splash_background</item>
66
</style>
77

0 commit comments

Comments
 (0)