adding observer that sets requestedOrientation

This commit is contained in:
Sir-Photch 2023-02-03 22:01:18 +01:00
parent e492a4975d
commit 10d027951d
6 changed files with 18 additions and 6 deletions

View File

@ -12,8 +12,7 @@
android:theme="@style/LauncherTheme"
android:stateNotNeeded="true"
android:resumeWhilePausing="true"
android:windowSoftInputMode="stateHidden|adjustResize"
android:screenOrientation="portrait">
android:windowSoftInputMode="stateHidden|adjustResize">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

View File

@ -67,6 +67,7 @@ class LauncherScaffoldVM : ViewModel(), KoinComponent {
val bottomSearchBar = dataStore.data.map { it.layout.bottomSearchBar }.asLiveData()
val reverseSearchResults = dataStore.data.map { it.layout.reverseSearchResults }.asLiveData()
val fixedSearchBar = dataStore.data.map { it.layout.fixedSearchBar }.asLiveData()
val fixedRotation = dataStore.data.map { it.layout.fixedRotation }.asLiveData()
val isSearchOpen = MutableLiveData(false)
val isWidgetEditMode = MutableLiveData(false)

View File

@ -1,6 +1,7 @@
package de.mm20.launcher2.ui.launcher
import android.app.WallpaperManager
import android.content.pm.ActivityInfo
import android.content.res.Configuration
import android.content.res.Resources
import android.os.Bundle
@ -35,6 +36,7 @@ import androidx.compose.ui.unit.dp
import androidx.core.view.WindowCompat
import androidx.core.view.WindowInsetsControllerCompat
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.Observer
import androidx.lifecycle.flowWithLifecycle
import com.google.accompanist.systemuicontroller.rememberSystemUiController
import de.mm20.launcher2.globalactions.GlobalActionsService
@ -132,6 +134,15 @@ abstract class SharedLauncherActivity(
val reverseSearchResults by viewModel.reverseSearchResults.observeAsState(false)
val fixedSearchBar by viewModel.fixedSearchBar.observeAsState(false)
viewModel.fixedRotation.observe(this) { fixedRotation ->
requestedOrientation = if (fixedRotation) {
ActivityInfo.SCREEN_ORIENTATION_PORTRAIT + ActivityInfo.SCREEN_ORIENTATION_NOSENSOR
} else {
ActivityInfo.SCREEN_ORIENTATION_SENSOR
}
}
val systemUiController = rememberSystemUiController()
val enterTransitionProgress = remember { mutableStateOf(1f) }

View File

@ -1,6 +1,5 @@
package de.mm20.launcher2.ui.settings.layout
import android.content.pm.ActivityInfo
import androidx.lifecycle.ViewModel
import androidx.lifecycle.asLiveData
import androidx.lifecycle.viewModelScope
@ -59,7 +58,7 @@ class LayoutSettingsScreenVM: ViewModel(), KoinComponent {
}
}
val fixedRotation = dataStore.data.map { it.layout.fixedRoation }.asLiveData()
val fixedRotation = dataStore.data.map { it.layout.fixedRotation }.asLiveData()
fun setFixedRotation(fixedRotation: Boolean) {
viewModelScope.launch {
dataStore.updateData {

View File

@ -568,4 +568,6 @@
<string name="gesture_failed_message">Sie haben eine „%1$s“-Geste ausgeführt. Diese Geste ist momentan konfiguriert, eine „%2$s“-Aktion auszulösen. Diese Aktion konnte aus dem folgenden Grund nicht durchgeführt werden:</string>
<string name="preference_layout_fixed_search_bar">Angeheftete Suchleiste</string>
<string name="preference_layout_fixed_search_bar_summary">Suchleiste nicht aus dem Sichtbereich herausscrollen</string>
<string name="preference_layout_fixed_rotation">Fixierte Bildschirmausrichtung</string>
<string name="preference_layout_fixed_rotation_summary">Erzwingt Porträtmodus des Launchers</string>
</resources>

View File

@ -734,8 +734,8 @@
<string name="search_results_order_bottom_up">Bottom-up</string>
<string name="preference_layout_fixed_search_bar">Fixed search bar</string>
<string name="preference_layout_fixed_search_bar_summary">Don\'t scroll the search bar out of view</string>
<string name="preference_layout_fixed_rotation">Fixed rotation</string>
<string name="preference_layout_fixed_rotation_summary">Lock rotation to portrait mode</string>
<string name="preference_layout_fixed_rotation">Fixed screen rotation</string>
<string name="preference_layout_fixed_rotation_summary">Lock screen rotation to portrait mode</string>
<string name="preference_screen_gestures">Gestures</string>
<string name="preference_screen_gestures_summary">Gestures and gesture actions</string>
<string name="preference_gesture_swipe_down">Swipe down</string>