Fix tablet mode falsely triggered on phones with low DPI
This commit is contained in:
@@ -271,6 +271,7 @@ dependencies {
|
||||
|
||||
"playImplementation"(composeBom23)
|
||||
"playImplementation"("androidx.compose.material3:material3")
|
||||
"playImplementation"("androidx.compose.material3.adaptive:adaptive")
|
||||
"playImplementation"("androidx.compose.ui:ui")
|
||||
"playImplementation"("androidx.compose.ui:ui-tooling-preview")
|
||||
"playImplementation"("androidx.compose.material:material-icons-extended")
|
||||
@@ -281,6 +282,7 @@ dependencies {
|
||||
|
||||
"otherImplementation"(composeBom23)
|
||||
"otherImplementation"("androidx.compose.material3:material3")
|
||||
"otherImplementation"("androidx.compose.material3.adaptive:adaptive")
|
||||
"otherImplementation"("androidx.compose.ui:ui")
|
||||
"otherImplementation"("androidx.compose.ui:ui-tooling-preview")
|
||||
"otherImplementation"("androidx.compose.material:material-icons-extended")
|
||||
@@ -296,6 +298,7 @@ dependencies {
|
||||
|
||||
"otherLegacyImplementation"(composeBom21)
|
||||
"otherLegacyImplementation"("androidx.compose.material3:material3")
|
||||
"otherLegacyImplementation"("androidx.compose.material3.adaptive:adaptive")
|
||||
"otherLegacyImplementation"("androidx.compose.ui:ui")
|
||||
"otherLegacyImplementation"("androidx.compose.ui:ui-tooling-preview")
|
||||
"otherLegacyImplementation"("androidx.compose.material:material-icons-extended")
|
||||
|
||||
@@ -3,7 +3,6 @@ package io.nekohasekai.sfa.compose
|
||||
import android.Manifest
|
||||
import android.annotation.SuppressLint
|
||||
import android.content.Intent
|
||||
import android.content.res.Configuration
|
||||
import android.net.VpnService
|
||||
import android.os.Build
|
||||
import android.os.Bundle
|
||||
@@ -53,6 +52,7 @@ import androidx.compose.material3.SnackbarHostState
|
||||
import androidx.compose.material3.Surface
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.material3.TextButton
|
||||
import androidx.compose.material3.adaptive.currentWindowAdaptiveInfo
|
||||
import androidx.compose.material3.rememberModalBottomSheetState
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.CompositionLocalProvider
|
||||
@@ -66,7 +66,6 @@ import androidx.compose.runtime.rememberCoroutineScope
|
||||
import androidx.compose.runtime.setValue
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.platform.LocalConfiguration
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.text.font.FontWeight
|
||||
import androidx.compose.ui.unit.dp
|
||||
@@ -79,6 +78,7 @@ import androidx.navigation.NavDestination.Companion.hierarchy
|
||||
import androidx.navigation.NavGraph.Companion.findStartDestination
|
||||
import androidx.navigation.compose.currentBackStackEntryAsState
|
||||
import androidx.navigation.compose.rememberNavController
|
||||
import androidx.window.core.layout.WindowSizeClass
|
||||
import dev.jeziellago.compose.markdowntext.MarkdownText
|
||||
import io.nekohasekai.libbox.Libbox
|
||||
import io.nekohasekai.sfa.Application
|
||||
@@ -279,9 +279,9 @@ class MainActivity :
|
||||
val currentRoute = currentDestination?.route
|
||||
val scope = rememberCoroutineScope()
|
||||
|
||||
val configuration = LocalConfiguration.current
|
||||
val windowSizeClass = currentWindowAdaptiveInfo().windowSizeClass
|
||||
val useNavigationRail =
|
||||
configuration.isLayoutSizeAtLeast(Configuration.SCREENLAYOUT_SIZE_LARGE)
|
||||
windowSizeClass.isWidthAtLeastBreakpoint(WindowSizeClass.WIDTH_DP_MEDIUM_LOWER_BOUND)
|
||||
|
||||
// Snackbar state
|
||||
val snackbarHostState = remember { SnackbarHostState() }
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package io.nekohasekai.sfa.compose.component.qr
|
||||
|
||||
import android.content.Intent
|
||||
import android.content.res.Configuration
|
||||
import android.graphics.Color
|
||||
import android.net.Uri
|
||||
import androidx.compose.foundation.Image
|
||||
@@ -33,6 +32,7 @@ import androidx.compose.material3.OutlinedButton
|
||||
import androidx.compose.material3.Slider
|
||||
import androidx.compose.material3.Surface
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.material3.adaptive.currentWindowAdaptiveInfo
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.DisposableEffect
|
||||
import androidx.compose.runtime.LaunchedEffect
|
||||
@@ -46,12 +46,12 @@ import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.graphics.asImageBitmap
|
||||
import androidx.compose.ui.layout.ContentScale
|
||||
import androidx.compose.ui.platform.LocalConfiguration
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.window.Dialog
|
||||
import androidx.compose.ui.window.DialogProperties
|
||||
import androidx.window.core.layout.WindowSizeClass
|
||||
import io.nekohasekai.sfa.R
|
||||
import io.nekohasekai.sfa.qrs.QRSConstants
|
||||
import io.nekohasekai.sfa.qrs.QRSEncoder
|
||||
@@ -60,8 +60,8 @@ import kotlinx.coroutines.delay
|
||||
@Composable
|
||||
fun QRSDialog(profileData: ByteArray, profileName: String, onDismiss: () -> Unit) {
|
||||
val context = LocalContext.current
|
||||
val configuration = LocalConfiguration.current
|
||||
val isTablet = configuration.isLayoutSizeAtLeast(Configuration.SCREENLAYOUT_SIZE_LARGE)
|
||||
val windowSizeClass = currentWindowAdaptiveInfo().windowSizeClass
|
||||
val isTablet = windowSizeClass.isWidthAtLeastBreakpoint(WindowSizeClass.WIDTH_DP_MEDIUM_LOWER_BOUND)
|
||||
val coroutineScope = rememberCoroutineScope()
|
||||
var fps by remember { mutableIntStateOf(QRSConstants.DEFAULT_FPS) }
|
||||
var sliceSize by remember { mutableIntStateOf(QRSConstants.DEFAULT_SLICE_SIZE) }
|
||||
|
||||
@@ -2,7 +2,6 @@ package io.nekohasekai.sfa.compose.screen.connections
|
||||
|
||||
import androidx.compose.foundation.ScrollState
|
||||
import androidx.compose.foundation.layout.Arrangement
|
||||
import androidx.compose.foundation.text.selection.SelectionContainer
|
||||
import androidx.compose.foundation.layout.Box
|
||||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.ColumnScope
|
||||
@@ -13,6 +12,7 @@ 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.text.selection.SelectionContainer
|
||||
import androidx.compose.foundation.verticalScroll
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.automirrored.filled.ArrowBack
|
||||
|
||||
@@ -2,7 +2,6 @@ package io.nekohasekai.sfa.compose.screen.log
|
||||
|
||||
import android.content.ClipData
|
||||
import android.content.Intent
|
||||
import android.content.res.Configuration
|
||||
import android.os.Build
|
||||
import android.widget.Toast
|
||||
import androidx.activity.compose.rememberLauncherForActivityResult
|
||||
@@ -68,6 +67,7 @@ import androidx.compose.material3.Surface
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.material3.TextButton
|
||||
import androidx.compose.material3.TopAppBar
|
||||
import androidx.compose.material3.adaptive.currentWindowAdaptiveInfo
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.LaunchedEffect
|
||||
import androidx.compose.runtime.collectAsState
|
||||
@@ -81,7 +81,6 @@ 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.platform.LocalConfiguration
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.compose.ui.platform.LocalFocusManager
|
||||
import androidx.compose.ui.res.stringResource
|
||||
@@ -91,6 +90,7 @@ import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.sp
|
||||
import androidx.core.content.FileProvider
|
||||
import androidx.lifecycle.viewmodel.compose.viewModel
|
||||
import androidx.window.core.layout.WindowSizeClass
|
||||
import io.nekohasekai.sfa.Application
|
||||
import io.nekohasekai.sfa.R
|
||||
import io.nekohasekai.sfa.compose.topbar.OverrideTopBar
|
||||
@@ -118,8 +118,8 @@ fun LogScreen(
|
||||
val resolvedViewModel = viewModel ?: viewModel<LogViewModel>()
|
||||
val uiState by resolvedViewModel.uiState.collectAsState()
|
||||
val context = LocalContext.current
|
||||
val configuration = LocalConfiguration.current
|
||||
val isTablet = configuration.isLayoutSizeAtLeast(Configuration.SCREENLAYOUT_SIZE_LARGE)
|
||||
val windowSizeClass = currentWindowAdaptiveInfo().windowSizeClass
|
||||
val isTablet = windowSizeClass.isWidthAtLeastBreakpoint(WindowSizeClass.WIDTH_DP_MEDIUM_LOWER_BOUND)
|
||||
val listState = rememberLazyListState()
|
||||
val coroutineScope = rememberCoroutineScope()
|
||||
val resolvedTitle = title ?: stringResource(R.string.title_log)
|
||||
|
||||
@@ -3,7 +3,6 @@ package io.nekohasekai.sfa.compose.screen.profileoverride
|
||||
import android.content.pm.PackageInfo
|
||||
import android.content.pm.PackageManager
|
||||
import android.os.Build
|
||||
import io.nekohasekai.sfa.Application
|
||||
import android.util.Log
|
||||
import android.widget.Toast
|
||||
import androidx.compose.animation.AnimatedVisibility
|
||||
@@ -76,6 +75,7 @@ import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.window.Dialog
|
||||
import androidx.compose.ui.window.DialogProperties
|
||||
import com.android.tools.smali.dexlib2.dexbacked.DexBackedDexFile
|
||||
import io.nekohasekai.sfa.Application
|
||||
import io.nekohasekai.sfa.R
|
||||
import io.nekohasekai.sfa.compose.shared.AppSelectionCard
|
||||
import io.nekohasekai.sfa.compose.shared.PackageCache
|
||||
|
||||
Reference in New Issue
Block a user