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