chore: Bump dependencies and migrate away from deprecated methods

This commit is contained in:
Artem Chepurnoy 2024-09-15 16:37:31 +03:00
parent 3714670287
commit d9b63d3aa2
No known key found for this signature in database
GPG Key ID: FAC37D0CF674043E
83 changed files with 186 additions and 145 deletions

View File

@ -126,6 +126,7 @@ kotlin {
api(libs.kodein.kodein.di.framework.compose) api(libs.kodein.kodein.di.framework.compose)
api(libs.androidx.lifecycle.common) api(libs.androidx.lifecycle.common)
api(libs.androidx.lifecycle.runtime) api(libs.androidx.lifecycle.runtime)
api(libs.androidx.lifecycle.runtime.compose)
api(libs.ktor.ktor.client.core) api(libs.ktor.ktor.client.core)
api(libs.ktor.ktor.client.logging) api(libs.ktor.ktor.client.logging)
api(libs.ktor.ktor.client.content.negotiation) api(libs.ktor.ktor.client.content.negotiation)

View File

@ -114,7 +114,7 @@ class KeyguardClipboardService : Service(), DIAware {
) : Args ) : Args
@Parcelize @Parcelize
object Cancel : Args data object Cancel : Args
} }
private data class CopyValueEvent( private data class CopyValueEvent(

View File

@ -44,12 +44,12 @@ class SubscriptionServiceAndroid(
private val billingManager: BillingManager, private val billingManager: BillingManager,
) : SubscriptionService { ) : SubscriptionService {
companion object { companion object {
private val SkuListSubscription = listOf( private val SkuListSubscription = setOf(
"premium", "premium",
"premium_3m", "premium_3m",
) )
private val SkuListProduct = listOf( private val SkuListProduct = setOf(
"premium_lifetime", "premium_lifetime",
) )
} }
@ -144,7 +144,7 @@ class SubscriptionServiceAndroid(
.run { .run {
val existingPurchase = receipts val existingPurchase = receipts
?.firstOrNull { ?.firstOrNull {
SkuListSubscription.intersect(it.products) it.products.intersect(SkuListSubscription)
.isNotEmpty() .isNotEmpty()
} }
if (existingPurchase != null && it.productId !in existingPurchase.products) { if (existingPurchase != null && it.productId !in existingPurchase.products) {

View File

@ -232,7 +232,7 @@ fun ChangePasswordScreen(
) { item -> ) { item ->
AppItem( AppItem(
modifier = Modifier modifier = Modifier
.animateItemPlacement(), .animateItem(),
item = item, item = item,
) )
} }

View File

@ -409,7 +409,7 @@ private fun getApps(
ApplicationInfo.FLAG_SYSTEM or ApplicationInfo.FLAG_UPDATED_SYSTEM_APP ApplicationInfo.FLAG_SYSTEM or ApplicationInfo.FLAG_UPDATED_SYSTEM_APP
applicationInfo.flags.and(mask) != 0 applicationInfo.flags.and(mask) != 0
} }
val label = info.loadLabel(pm)?.toString().orEmpty() val label = info.loadLabel(pm).toString()
val installTime = packageInfo.firstInstallTime val installTime = packageInfo.firstInstallTime
AppInfo( AppInfo(
packageName = info.activityInfo.packageName, packageName = info.activityInfo.packageName,

View File

@ -5,8 +5,8 @@ import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue import androidx.compose.runtime.getValue
import androidx.compose.runtime.rememberUpdatedState import androidx.compose.runtime.rememberUpdatedState
import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalLifecycleOwner
import androidx.fragment.app.FragmentActivity import androidx.fragment.app.FragmentActivity
import androidx.lifecycle.compose.LocalLifecycleOwner
import androidx.lifecycle.whenResumed import androidx.lifecycle.whenResumed
import arrow.core.left import arrow.core.left
import arrow.core.right import arrow.core.right

View File

@ -114,6 +114,7 @@ private fun getPermissionItems(context: Context) = kotlin.run {
val result = info val result = info
.requestedPermissions .requestedPermissions
.orEmpty()
.mapNotNull { permission -> .mapNotNull { permission ->
kotlin.runCatching { kotlin.runCatching {
val permissionInfo = pm.getPermissionInfo(permission, 0) val permissionInfo = pm.getPermissionInfo(permission, 0)

View File

@ -21,10 +21,10 @@ import androidx.compose.runtime.*
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip import androidx.compose.ui.draw.clip
import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.input.nestedscroll.nestedScroll
import androidx.compose.ui.platform.LocalLifecycleOwner
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.compose.ui.viewinterop.AndroidView import androidx.compose.ui.viewinterop.AndroidView
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.lifecycle.compose.LocalLifecycleOwner
import com.artemchep.keyguard.feature.navigation.NavigationIcon import com.artemchep.keyguard.feature.navigation.NavigationIcon
import com.artemchep.keyguard.feature.navigation.RouteResultTransmitter import com.artemchep.keyguard.feature.navigation.RouteResultTransmitter
import com.artemchep.keyguard.res.Res import com.artemchep.keyguard.res.Res
@ -172,7 +172,7 @@ private fun ScanQrCamera(
val preview = Preview.Builder() val preview = Preview.Builder()
.build() .build()
.also { .also {
it.setSurfaceProvider(previewView.surfaceProvider) it.surfaceProvider = previewView.surfaceProvider
} }
val imageAnalysis = ImageAnalysis.Builder() val imageAnalysis = ImageAnalysis.Builder()
.setBackpressureStrategy(ImageAnalysis.STRATEGY_KEEP_ONLY_LATEST) .setBackpressureStrategy(ImageAnalysis.STRATEGY_KEEP_ONLY_LATEST)

View File

@ -1,13 +1,17 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<network-security-config> <network-security-config xmlns:tools="http://schemas.android.com/tools">
<!-- <!--
Users can access their own servers even if Users can access their own servers even if
it's not though an HTTPS connection. it's not though an HTTPS connection.
--> -->
<base-config cleartextTrafficPermitted="true"> <base-config
cleartextTrafficPermitted="true"
tools:ignore="InsecureBaseConfiguration">
<trust-anchors> <trust-anchors>
<certificates src="system" /> <certificates src="system" />
<certificates src="user" /> <certificates
src="user"
tools:ignore="AcceptsUserCertificates" />
</trust-anchors> </trust-anchors>
</base-config> </base-config>
<!-- <!--

View File

@ -608,7 +608,7 @@ fun DSecret.gett(
return@forEach return@forEach
} }
val variant = variants.removeFirst() val variant = variants.removeAt(0)
val value = get( val value = get(
hint = variant.hint, hint = variant.hint,
getTotpCode = getTotpCode, getTotpCode = getTotpCode,

View File

@ -672,7 +672,7 @@ private fun AttachmentTextField(
placeholder = "File name", placeholder = "File name",
value = state.name, value = state.name,
keyboardOptions = KeyboardOptions( keyboardOptions = KeyboardOptions(
autoCorrect = false, autoCorrectEnabled = false,
keyboardType = KeyboardType.Text, keyboardType = KeyboardType.Text,
), ),
singleLine = true, singleLine = true,

View File

@ -139,7 +139,7 @@ fun AttachmentsScreen(
items(items, key = { it.key }) { item -> items(items, key = { it.key }) { item ->
Item( Item(
modifier = Modifier modifier = Modifier
.animateItemPlacement(), .animateItem(),
item = item, item = item,
) )
} }

View File

@ -416,7 +416,7 @@ private fun ColumnScope.LoginOtpScreenContentAuthenticator(
fontFamily = monoFontFamily, fontFamily = monoFontFamily,
), ),
keyboardOptions = KeyboardOptions( keyboardOptions = KeyboardOptions(
autoCorrect = false, autoCorrectEnabled = false,
keyboardType = KeyboardType.Number, keyboardType = KeyboardType.Number,
imeAction = ImeAction.Go, imeAction = ImeAction.Go,
), ),
@ -488,7 +488,7 @@ private fun ColumnScope.LoginOtpScreenContentEmail(
fontFamily = monoFontFamily, fontFamily = monoFontFamily,
), ),
keyboardOptions = KeyboardOptions( keyboardOptions = KeyboardOptions(
autoCorrect = false, autoCorrectEnabled = false,
keyboardType = KeyboardType.Number, keyboardType = KeyboardType.Number,
imeAction = ImeAction.Go, imeAction = ImeAction.Go,
), ),

View File

@ -267,7 +267,7 @@ private fun ConfirmationStringItem(
keyboardOptions = when { keyboardOptions = when {
item.password -> item.password ->
KeyboardOptions( KeyboardOptions(
autoCorrect = false, autoCorrectEnabled = false,
keyboardType = KeyboardType.Password, keyboardType = KeyboardType.Password,
) )

View File

@ -214,7 +214,7 @@ fun DuplicatesListScreen(
) { model -> ) { model ->
VaultListItem( VaultListItem(
modifier = Modifier modifier = Modifier
.animateItemPlacement(), .animateItem(),
item = model, item = model,
) )
} }

View File

@ -110,7 +110,7 @@ private fun FeedbackContent(
label = stringResource(Res.string.contactus_message_label), label = stringResource(Res.string.contactus_message_label),
value = state.message, value = state.message,
keyboardOptions = KeyboardOptions( keyboardOptions = KeyboardOptions(
autoCorrect = true, autoCorrectEnabled = true,
keyboardType = KeyboardType.Text, keyboardType = KeyboardType.Text,
), ),
) )

View File

@ -245,7 +245,7 @@ fun CipherFiltersListScreen(
) { item -> ) { item ->
FilterItem( FilterItem(
modifier = Modifier modifier = Modifier
.animateItemPlacement(), .animateItem(),
item = item, item = item,
) )
} }

View File

@ -226,7 +226,7 @@ fun EmailRelayListScreen(
) { item -> ) { item ->
AppItem( AppItem(
modifier = Modifier modifier = Modifier
.animateItemPlacement(), .animateItem(),
item = item, item = item,
) )
} }

View File

@ -131,7 +131,7 @@ private fun LazyListScope.populateGeneratorPaneMasterContent(
items(state.items, key = { it.id }) { item -> items(state.items, key = { it.id }) { item ->
GeneratorHistoryItem( GeneratorHistoryItem(
modifier = Modifier modifier = Modifier
.animateItemPlacement(), .animateItem(),
item = item, item = item,
) )
} }

View File

@ -250,7 +250,7 @@ fun WordlistListScreen(
) { item -> ) { item ->
WordlistItem( WordlistItem(
modifier = Modifier modifier = Modifier
.animateItemPlacement(), .animateItem(),
item = item, item = item,
) )
} }

View File

@ -256,7 +256,7 @@ fun WordlistViewScreen(
) { item -> ) { item ->
AppItem( AppItem(
modifier = Modifier modifier = Modifier
.animateItemPlacement(), .animateItem(),
item = item, item = item,
) )
} }

View File

@ -2,11 +2,12 @@ package com.artemchep.keyguard.feature.home.settings.component
import androidx.compose.foundation.layout.RowScope import androidx.compose.foundation.layout.RowScope
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
import androidx.compose.material3.LocalMinimumInteractiveComponentEnforcement import androidx.compose.material3.LocalMinimumInteractiveComponentSize
import androidx.compose.material3.Switch import androidx.compose.material3.Switch
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.ui.unit.Dp
import arrow.core.partially1 import arrow.core.partially1
import com.artemchep.keyguard.common.io.launchIn import com.artemchep.keyguard.common.io.launchIn
import com.artemchep.keyguard.common.usecase.GetAppIcons import com.artemchep.keyguard.common.usecase.GetAppIcons
@ -67,7 +68,7 @@ private fun SettingAppIcons(
leading = icon<RowScope>(Icons.Stub), leading = icon<RowScope>(Icons.Stub),
trailing = { trailing = {
CompositionLocalProvider( CompositionLocalProvider(
LocalMinimumInteractiveComponentEnforcement provides false, LocalMinimumInteractiveComponentSize provides Dp.Unspecified,
) { ) {
Switch( Switch(
checked = checked, checked = checked,

View File

@ -1,10 +1,11 @@
package com.artemchep.keyguard.feature.home.settings.component package com.artemchep.keyguard.feature.home.settings.component
import androidx.compose.material3.LocalMinimumInteractiveComponentEnforcement import androidx.compose.material3.LocalMinimumInteractiveComponentSize
import androidx.compose.material3.Switch import androidx.compose.material3.Switch
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.ui.unit.Dp
import arrow.core.partially1 import arrow.core.partially1
import com.artemchep.keyguard.common.io.launchIn import com.artemchep.keyguard.common.io.launchIn
import com.artemchep.keyguard.common.usecase.GetAutofillCopyTotp import com.artemchep.keyguard.common.usecase.GetAutofillCopyTotp
@ -64,7 +65,7 @@ private fun SettingAutofillCopyTotp(
FlatItem( FlatItem(
trailing = { trailing = {
CompositionLocalProvider( CompositionLocalProvider(
LocalMinimumInteractiveComponentEnforcement provides false, LocalMinimumInteractiveComponentSize provides Dp.Unspecified,
) { ) {
Switch( Switch(
checked = checked, checked = checked,

View File

@ -1,10 +1,11 @@
package com.artemchep.keyguard.feature.home.settings.component package com.artemchep.keyguard.feature.home.settings.component
import androidx.compose.material3.LocalMinimumInteractiveComponentEnforcement import androidx.compose.material3.LocalMinimumInteractiveComponentSize
import androidx.compose.material3.Switch import androidx.compose.material3.Switch
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.ui.unit.Dp
import arrow.core.partially1 import arrow.core.partially1
import com.artemchep.keyguard.common.io.launchIn import com.artemchep.keyguard.common.io.launchIn
import com.artemchep.keyguard.common.usecase.GetAutofillInlineSuggestions import com.artemchep.keyguard.common.usecase.GetAutofillInlineSuggestions
@ -61,7 +62,7 @@ private fun SettingAutofillInlineSuggestions(
FlatItem( FlatItem(
trailing = { trailing = {
CompositionLocalProvider( CompositionLocalProvider(
LocalMinimumInteractiveComponentEnforcement provides false, LocalMinimumInteractiveComponentSize provides Dp.Unspecified,
) { ) {
Switch( Switch(
checked = checked, checked = checked,

View File

@ -1,10 +1,11 @@
package com.artemchep.keyguard.feature.home.settings.component package com.artemchep.keyguard.feature.home.settings.component
import androidx.compose.material3.LocalMinimumInteractiveComponentEnforcement import androidx.compose.material3.LocalMinimumInteractiveComponentSize
import androidx.compose.material3.Switch import androidx.compose.material3.Switch
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.ui.unit.Dp
import arrow.core.partially1 import arrow.core.partially1
import com.artemchep.keyguard.common.io.launchIn import com.artemchep.keyguard.common.io.launchIn
import com.artemchep.keyguard.common.usecase.GetAutofillManualSelection import com.artemchep.keyguard.common.usecase.GetAutofillManualSelection
@ -61,7 +62,7 @@ private fun SettingAutofillManualSelection(
FlatItem( FlatItem(
trailing = { trailing = {
CompositionLocalProvider( CompositionLocalProvider(
LocalMinimumInteractiveComponentEnforcement provides false, LocalMinimumInteractiveComponentSize provides Dp.Unspecified,
) { ) {
Switch( Switch(
checked = checked, checked = checked,

View File

@ -3,13 +3,14 @@ package com.artemchep.keyguard.feature.home.settings.component
import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.height
import androidx.compose.material3.LocalContentColor import androidx.compose.material3.LocalContentColor
import androidx.compose.material3.LocalMinimumInteractiveComponentEnforcement import androidx.compose.material3.LocalMinimumInteractiveComponentSize
import androidx.compose.material3.MaterialTheme import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Switch import androidx.compose.material3.Switch
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import arrow.core.partially1 import arrow.core.partially1
import com.artemchep.keyguard.common.io.launchIn import com.artemchep.keyguard.common.io.launchIn
@ -70,7 +71,7 @@ private fun SettingAutofillRespectAutofillOff(
FlatItemLayout( FlatItemLayout(
trailing = { trailing = {
CompositionLocalProvider( CompositionLocalProvider(
LocalMinimumInteractiveComponentEnforcement provides false, LocalMinimumInteractiveComponentSize provides Dp.Unspecified,
) { ) {
Switch( Switch(
checked = checked, checked = checked,

View File

@ -1,10 +1,11 @@
package com.artemchep.keyguard.feature.home.settings.component package com.artemchep.keyguard.feature.home.settings.component
import androidx.compose.material3.LocalMinimumInteractiveComponentEnforcement import androidx.compose.material3.LocalMinimumInteractiveComponentSize
import androidx.compose.material3.Switch import androidx.compose.material3.Switch
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.ui.unit.Dp
import arrow.core.partially1 import arrow.core.partially1
import com.artemchep.keyguard.common.io.launchIn import com.artemchep.keyguard.common.io.launchIn
import com.artemchep.keyguard.common.usecase.GetAutofillSaveRequest import com.artemchep.keyguard.common.usecase.GetAutofillSaveRequest
@ -69,7 +70,7 @@ private fun SettingAutofillSaveRequest(
FlatItem( FlatItem(
trailing = { trailing = {
CompositionLocalProvider( CompositionLocalProvider(
LocalMinimumInteractiveComponentEnforcement provides false, LocalMinimumInteractiveComponentSize provides Dp.Unspecified,
) { ) {
Switch( Switch(
checked = checked, checked = checked,

View File

@ -1,10 +1,11 @@
package com.artemchep.keyguard.feature.home.settings.component package com.artemchep.keyguard.feature.home.settings.component
import androidx.compose.material3.LocalMinimumInteractiveComponentEnforcement import androidx.compose.material3.LocalMinimumInteractiveComponentSize
import androidx.compose.material3.Switch import androidx.compose.material3.Switch
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.ui.unit.Dp
import arrow.core.partially1 import arrow.core.partially1
import com.artemchep.keyguard.common.io.launchIn import com.artemchep.keyguard.common.io.launchIn
import com.artemchep.keyguard.common.usecase.GetAutofillSaveUri import com.artemchep.keyguard.common.usecase.GetAutofillSaveUri
@ -69,7 +70,7 @@ private fun SettingAutofillSaveUri(
FlatItem( FlatItem(
trailing = { trailing = {
CompositionLocalProvider( CompositionLocalProvider(
LocalMinimumInteractiveComponentEnforcement provides false, LocalMinimumInteractiveComponentSize provides Dp.Unspecified,
) { ) {
Switch( Switch(
checked = checked, checked = checked,

View File

@ -3,12 +3,13 @@ package com.artemchep.keyguard.feature.home.settings.component
import androidx.compose.foundation.layout.RowScope import androidx.compose.foundation.layout.RowScope
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.outlined.Fingerprint import androidx.compose.material.icons.outlined.Fingerprint
import androidx.compose.material3.LocalMinimumInteractiveComponentEnforcement import androidx.compose.material3.LocalMinimumInteractiveComponentSize
import androidx.compose.material3.Switch import androidx.compose.material3.Switch
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.runtime.remember import androidx.compose.runtime.remember
import androidx.compose.ui.unit.Dp
import arrow.core.partially1 import arrow.core.partially1
import com.artemchep.keyguard.common.io.launchIn import com.artemchep.keyguard.common.io.launchIn
import com.artemchep.keyguard.common.io.map import com.artemchep.keyguard.common.io.map
@ -144,7 +145,7 @@ private fun SettingBiometrics(
leading = icon<RowScope>(Icons.Outlined.Fingerprint), leading = icon<RowScope>(Icons.Outlined.Fingerprint),
trailing = { trailing = {
CompositionLocalProvider( CompositionLocalProvider(
LocalMinimumInteractiveComponentEnforcement provides false, LocalMinimumInteractiveComponentSize provides Dp.Unspecified,
) { ) {
Switch( Switch(
checked = checked, checked = checked,

View File

@ -1,10 +1,11 @@
package com.artemchep.keyguard.feature.home.settings.component package com.artemchep.keyguard.feature.home.settings.component
import androidx.compose.material3.LocalMinimumInteractiveComponentEnforcement import androidx.compose.material3.LocalMinimumInteractiveComponentSize
import androidx.compose.material3.Switch import androidx.compose.material3.Switch
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.ui.unit.Dp
import arrow.core.partially1 import arrow.core.partially1
import com.artemchep.keyguard.common.io.launchIn import com.artemchep.keyguard.common.io.launchIn
import com.artemchep.keyguard.common.model.BiometricStatus import com.artemchep.keyguard.common.model.BiometricStatus
@ -100,7 +101,7 @@ private fun SettingBiometricsRequireConfirmation(
FlatItem( FlatItem(
trailing = { trailing = {
CompositionLocalProvider( CompositionLocalProvider(
LocalMinimumInteractiveComponentEnforcement provides false, LocalMinimumInteractiveComponentSize provides Dp.Unspecified,
) { ) {
Switch( Switch(
checked = checked, checked = checked,

View File

@ -2,12 +2,13 @@ package com.artemchep.keyguard.feature.home.settings.component
import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
import androidx.compose.material3.LocalMinimumInteractiveComponentEnforcement import androidx.compose.material3.LocalMinimumInteractiveComponentSize
import androidx.compose.material3.Switch import androidx.compose.material3.Switch
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.Dp
import arrow.core.partially1 import arrow.core.partially1
import com.artemchep.keyguard.common.io.launchIn import com.artemchep.keyguard.common.io.launchIn
import com.artemchep.keyguard.common.usecase.GetCheckPasskeys import com.artemchep.keyguard.common.usecase.GetCheckPasskeys
@ -59,7 +60,7 @@ private fun SettingCheckPasskeys(
FlatItem( FlatItem(
trailing = { trailing = {
CompositionLocalProvider( CompositionLocalProvider(
LocalMinimumInteractiveComponentEnforcement provides false, LocalMinimumInteractiveComponentSize provides Dp.Unspecified,
) { ) {
Switch( Switch(
checked = checked, checked = checked,

View File

@ -2,12 +2,13 @@ package com.artemchep.keyguard.feature.home.settings.component
import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
import androidx.compose.material3.LocalMinimumInteractiveComponentEnforcement import androidx.compose.material3.LocalMinimumInteractiveComponentSize
import androidx.compose.material3.Switch import androidx.compose.material3.Switch
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import arrow.core.partially1 import arrow.core.partially1
import com.artemchep.keyguard.common.io.launchIn import com.artemchep.keyguard.common.io.launchIn
@ -60,7 +61,7 @@ private fun SettingCheckPwnedPasswords(
FlatItem( FlatItem(
trailing = { trailing = {
CompositionLocalProvider( CompositionLocalProvider(
LocalMinimumInteractiveComponentEnforcement provides false, LocalMinimumInteractiveComponentSize provides Dp.Unspecified,
) { ) {
Switch( Switch(
checked = checked, checked = checked,

View File

@ -2,12 +2,13 @@ package com.artemchep.keyguard.feature.home.settings.component
import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
import androidx.compose.material3.LocalMinimumInteractiveComponentEnforcement import androidx.compose.material3.LocalMinimumInteractiveComponentSize
import androidx.compose.material3.Switch import androidx.compose.material3.Switch
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.Dp
import arrow.core.partially1 import arrow.core.partially1
import com.artemchep.keyguard.common.io.launchIn import com.artemchep.keyguard.common.io.launchIn
import com.artemchep.keyguard.common.usecase.GetCheckPwnedServices import com.artemchep.keyguard.common.usecase.GetCheckPwnedServices
@ -59,7 +60,7 @@ private fun SettingCheckPwnedServices(
FlatItem( FlatItem(
trailing = { trailing = {
CompositionLocalProvider( CompositionLocalProvider(
LocalMinimumInteractiveComponentEnforcement provides false, LocalMinimumInteractiveComponentSize provides Dp.Unspecified,
) { ) {
Switch( Switch(
checked = checked, checked = checked,

View File

@ -2,12 +2,13 @@ package com.artemchep.keyguard.feature.home.settings.component
import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
import androidx.compose.material3.LocalMinimumInteractiveComponentEnforcement import androidx.compose.material3.LocalMinimumInteractiveComponentSize
import androidx.compose.material3.Switch import androidx.compose.material3.Switch
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.Dp
import arrow.core.partially1 import arrow.core.partially1
import com.artemchep.keyguard.common.io.launchIn import com.artemchep.keyguard.common.io.launchIn
import com.artemchep.keyguard.common.usecase.GetCheckTwoFA import com.artemchep.keyguard.common.usecase.GetCheckTwoFA
@ -60,7 +61,7 @@ private fun SettingCheckTwoFA(
FlatItem( FlatItem(
trailing = { trailing = {
CompositionLocalProvider( CompositionLocalProvider(
LocalMinimumInteractiveComponentEnforcement provides false, LocalMinimumInteractiveComponentSize provides Dp.Unspecified,
) { ) {
Switch( Switch(
checked = checked, checked = checked,

View File

@ -3,11 +3,12 @@ package com.artemchep.keyguard.feature.home.settings.component
import androidx.compose.foundation.layout.RowScope import androidx.compose.foundation.layout.RowScope
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.outlined.CloseFullscreen import androidx.compose.material.icons.outlined.CloseFullscreen
import androidx.compose.material3.LocalMinimumInteractiveComponentEnforcement import androidx.compose.material3.LocalMinimumInteractiveComponentSize
import androidx.compose.material3.Switch import androidx.compose.material3.Switch
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.ui.unit.Dp
import arrow.core.partially1 import arrow.core.partially1
import com.artemchep.keyguard.common.io.launchIn import com.artemchep.keyguard.common.io.launchIn
import com.artemchep.keyguard.common.usecase.GetCloseToTray import com.artemchep.keyguard.common.usecase.GetCloseToTray
@ -73,7 +74,7 @@ private fun SettingCloseToTray(
leading = icon<RowScope>(Icons.Outlined.CloseFullscreen), leading = icon<RowScope>(Icons.Outlined.CloseFullscreen),
trailing = { trailing = {
CompositionLocalProvider( CompositionLocalProvider(
LocalMinimumInteractiveComponentEnforcement provides false, LocalMinimumInteractiveComponentSize provides Dp.Unspecified,
) { ) {
Switch( Switch(
checked = checked, checked = checked,

View File

@ -4,11 +4,12 @@ import androidx.compose.animation.Crossfade
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.outlined.Visibility import androidx.compose.material.icons.outlined.Visibility
import androidx.compose.material.icons.outlined.VisibilityOff import androidx.compose.material.icons.outlined.VisibilityOff
import androidx.compose.material3.LocalMinimumInteractiveComponentEnforcement import androidx.compose.material3.LocalMinimumInteractiveComponentSize
import androidx.compose.material3.Switch import androidx.compose.material3.Switch
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.ui.unit.Dp
import arrow.core.partially1 import arrow.core.partially1
import com.artemchep.keyguard.common.io.launchIn import com.artemchep.keyguard.common.io.launchIn
import com.artemchep.keyguard.common.usecase.GetConcealFields import com.artemchep.keyguard.common.usecase.GetConcealFields
@ -72,7 +73,7 @@ private fun SettingScreenshotsFields(
}, },
trailing = { trailing = {
CompositionLocalProvider( CompositionLocalProvider(
LocalMinimumInteractiveComponentEnforcement provides false, LocalMinimumInteractiveComponentSize provides Dp.Unspecified,
) { ) {
Switch( Switch(
checked = checked, checked = checked,

View File

@ -3,11 +3,12 @@ package com.artemchep.keyguard.feature.home.settings.component
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.outlined.BugReport import androidx.compose.material.icons.outlined.BugReport
import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.LocalMinimumInteractiveComponentEnforcement import androidx.compose.material3.LocalMinimumInteractiveComponentSize
import androidx.compose.material3.Switch import androidx.compose.material3.Switch
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.ui.unit.Dp
import arrow.core.partially1 import arrow.core.partially1
import com.artemchep.keyguard.platform.crashlyticsIsEnabledFlow import com.artemchep.keyguard.platform.crashlyticsIsEnabledFlow
import com.artemchep.keyguard.platform.crashlyticsSetEnabled import com.artemchep.keyguard.platform.crashlyticsSetEnabled
@ -63,7 +64,7 @@ private fun SettingCrashlytics(
valueOrNull = checked, valueOrNull = checked,
) { ) {
CompositionLocalProvider( CompositionLocalProvider(
LocalMinimumInteractiveComponentEnforcement provides false, LocalMinimumInteractiveComponentSize provides Dp.Unspecified,
) { ) {
Switch( Switch(
checked = it, checked = it,

View File

@ -3,11 +3,12 @@ package com.artemchep.keyguard.feature.home.settings.component
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.outlined.AccountCircle import androidx.compose.material.icons.outlined.AccountCircle
import androidx.compose.material3.Icon import androidx.compose.material3.Icon
import androidx.compose.material3.LocalMinimumInteractiveComponentEnforcement import androidx.compose.material3.LocalMinimumInteractiveComponentSize
import androidx.compose.material3.Switch import androidx.compose.material3.Switch
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.ui.unit.Dp
import arrow.core.partially1 import arrow.core.partially1
import com.artemchep.keyguard.common.io.launchIn import com.artemchep.keyguard.common.io.launchIn
import com.artemchep.keyguard.common.usecase.GetGravatar import com.artemchep.keyguard.common.usecase.GetGravatar
@ -70,7 +71,7 @@ private fun SettingGravatar(
}, },
trailing = { trailing = {
CompositionLocalProvider( CompositionLocalProvider(
LocalMinimumInteractiveComponentEnforcement provides false, LocalMinimumInteractiveComponentSize provides Dp.Unspecified,
) { ) {
Switch( Switch(
checked = checked, checked = checked,

View File

@ -1,10 +1,11 @@
package com.artemchep.keyguard.feature.home.settings.component package com.artemchep.keyguard.feature.home.settings.component
import androidx.compose.material3.LocalMinimumInteractiveComponentEnforcement import androidx.compose.material3.LocalMinimumInteractiveComponentSize
import androidx.compose.material3.Switch import androidx.compose.material3.Switch
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.ui.unit.Dp
import arrow.core.partially1 import arrow.core.partially1
import com.artemchep.keyguard.common.io.launchIn import com.artemchep.keyguard.common.io.launchIn
import com.artemchep.keyguard.common.usecase.GetKeepScreenOn import com.artemchep.keyguard.common.usecase.GetKeepScreenOn
@ -62,7 +63,7 @@ private fun SettingKeepScreenOn(
FlatItem( FlatItem(
trailing = { trailing = {
CompositionLocalProvider( CompositionLocalProvider(
LocalMinimumInteractiveComponentEnforcement provides false, LocalMinimumInteractiveComponentSize provides Dp.Unspecified,
) { ) {
Switch( Switch(
checked = checked, checked = checked,

View File

@ -5,7 +5,7 @@ import androidx.compose.foundation.layout.RowScope
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.outlined.TextFormat import androidx.compose.material.icons.outlined.TextFormat
import androidx.compose.material3.LocalMinimumInteractiveComponentEnforcement import androidx.compose.material3.LocalMinimumInteractiveComponentSize
import androidx.compose.material3.Switch import androidx.compose.material3.Switch
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.material3.TextButton import androidx.compose.material3.TextButton
@ -14,6 +14,7 @@ import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.runtime.getValue import androidx.compose.runtime.getValue
import androidx.compose.runtime.rememberUpdatedState import androidx.compose.runtime.rememberUpdatedState
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import arrow.core.partially1 import arrow.core.partially1
import com.artemchep.keyguard.common.io.launchIn import com.artemchep.keyguard.common.io.launchIn
@ -86,7 +87,7 @@ private fun SettingMarkdown(
leading = icon<RowScope>(Icons.Outlined.TextFormat), leading = icon<RowScope>(Icons.Outlined.TextFormat),
trailing = { trailing = {
CompositionLocalProvider( CompositionLocalProvider(
LocalMinimumInteractiveComponentEnforcement provides false, LocalMinimumInteractiveComponentSize provides Dp.Unspecified,
) { ) {
Switch( Switch(
checked = checked, checked = checked,

View File

@ -3,11 +3,12 @@ package com.artemchep.keyguard.feature.home.settings.component
import androidx.compose.foundation.layout.RowScope import androidx.compose.foundation.layout.RowScope
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.automirrored.outlined.Label import androidx.compose.material.icons.automirrored.outlined.Label
import androidx.compose.material3.LocalMinimumInteractiveComponentEnforcement import androidx.compose.material3.LocalMinimumInteractiveComponentSize
import androidx.compose.material3.Switch import androidx.compose.material3.Switch
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.ui.unit.Dp
import arrow.core.partially1 import arrow.core.partially1
import com.artemchep.keyguard.common.io.launchIn import com.artemchep.keyguard.common.io.launchIn
import com.artemchep.keyguard.common.usecase.GetNavLabel import com.artemchep.keyguard.common.usecase.GetNavLabel
@ -66,7 +67,7 @@ private fun SettingNavLabel(
leading = icon<RowScope>(Icons.AutoMirrored.Outlined.Label), leading = icon<RowScope>(Icons.AutoMirrored.Outlined.Label),
trailing = { trailing = {
CompositionLocalProvider( CompositionLocalProvider(
LocalMinimumInteractiveComponentEnforcement provides false, LocalMinimumInteractiveComponentSize provides Dp.Unspecified,
) { ) {
Switch( Switch(
checked = checked, checked = checked,

View File

@ -1,10 +1,11 @@
package com.artemchep.keyguard.feature.home.settings.component package com.artemchep.keyguard.feature.home.settings.component
import androidx.compose.material3.LocalMinimumInteractiveComponentEnforcement import androidx.compose.material3.LocalMinimumInteractiveComponentSize
import androidx.compose.material3.Switch import androidx.compose.material3.Switch
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.ui.unit.Dp
import arrow.core.partially1 import arrow.core.partially1
import com.artemchep.keyguard.common.io.launchIn import com.artemchep.keyguard.common.io.launchIn
import com.artemchep.keyguard.common.usecase.GetDebugScreenDelay import com.artemchep.keyguard.common.usecase.GetDebugScreenDelay
@ -55,7 +56,7 @@ private fun SettingDebugScreenDelay(
FlatItem( FlatItem(
trailing = { trailing = {
CompositionLocalProvider( CompositionLocalProvider(
LocalMinimumInteractiveComponentEnforcement provides false, LocalMinimumInteractiveComponentSize provides Dp.Unspecified,
) { ) {
Switch( Switch(
checked = checked, checked = checked,

View File

@ -3,11 +3,12 @@ package com.artemchep.keyguard.feature.home.settings.component
import androidx.compose.foundation.layout.RowScope import androidx.compose.foundation.layout.RowScope
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.outlined.Screenshot import androidx.compose.material.icons.outlined.Screenshot
import androidx.compose.material3.LocalMinimumInteractiveComponentEnforcement import androidx.compose.material3.LocalMinimumInteractiveComponentSize
import androidx.compose.material3.Switch import androidx.compose.material3.Switch
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.ui.unit.Dp
import arrow.core.partially1 import arrow.core.partially1
import com.artemchep.keyguard.common.io.launchIn import com.artemchep.keyguard.common.io.launchIn
import com.artemchep.keyguard.common.usecase.GetAllowScreenshots import com.artemchep.keyguard.common.usecase.GetAllowScreenshots
@ -70,7 +71,7 @@ private fun SettingScreenshotsFields(
leading = icon<RowScope>(Icons.Outlined.Screenshot), leading = icon<RowScope>(Icons.Outlined.Screenshot),
trailing = { trailing = {
CompositionLocalProvider( CompositionLocalProvider(
LocalMinimumInteractiveComponentEnforcement provides false, LocalMinimumInteractiveComponentSize provides Dp.Unspecified,
) { ) {
Switch( Switch(
checked = checked, checked = checked,

View File

@ -1,10 +1,11 @@
package com.artemchep.keyguard.feature.home.settings.component package com.artemchep.keyguard.feature.home.settings.component
import androidx.compose.material3.LocalMinimumInteractiveComponentEnforcement import androidx.compose.material3.LocalMinimumInteractiveComponentSize
import androidx.compose.material3.Switch import androidx.compose.material3.Switch
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.ui.unit.Dp
import arrow.core.partially1 import arrow.core.partially1
import com.artemchep.keyguard.common.io.launchIn import com.artemchep.keyguard.common.io.launchIn
import com.artemchep.keyguard.common.usecase.GetDebugPremium import com.artemchep.keyguard.common.usecase.GetDebugPremium
@ -55,7 +56,7 @@ private fun SettingDebugPremium(
FlatItem( FlatItem(
trailing = { trailing = {
CompositionLocalProvider( CompositionLocalProvider(
LocalMinimumInteractiveComponentEnforcement provides false, LocalMinimumInteractiveComponentSize provides Dp.Unspecified,
) { ) {
Switch( Switch(
checked = checked, checked = checked,

View File

@ -2,11 +2,12 @@ package com.artemchep.keyguard.feature.home.settings.component
import androidx.compose.foundation.layout.RowScope import androidx.compose.foundation.layout.RowScope
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
import androidx.compose.material3.LocalMinimumInteractiveComponentEnforcement import androidx.compose.material3.LocalMinimumInteractiveComponentSize
import androidx.compose.material3.Switch import androidx.compose.material3.Switch
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.ui.unit.Dp
import arrow.core.partially1 import arrow.core.partially1
import com.artemchep.keyguard.common.io.launchIn import com.artemchep.keyguard.common.io.launchIn
import com.artemchep.keyguard.common.usecase.GetThemeUseAmoledDark import com.artemchep.keyguard.common.usecase.GetThemeUseAmoledDark
@ -70,7 +71,7 @@ private fun SettingThemeUseAmoledDark(
leading = icon<RowScope>(Icons.Stub), leading = icon<RowScope>(Icons.Stub),
trailing = { trailing = {
CompositionLocalProvider( CompositionLocalProvider(
LocalMinimumInteractiveComponentEnforcement provides false, LocalMinimumInteractiveComponentSize provides Dp.Unspecified,
) { ) {
Switch( Switch(
checked = checked, checked = checked,

View File

@ -3,11 +3,12 @@ package com.artemchep.keyguard.feature.home.settings.component
import androidx.compose.foundation.layout.RowScope import androidx.compose.foundation.layout.RowScope
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.outlined.Tablet import androidx.compose.material.icons.outlined.Tablet
import androidx.compose.material3.LocalMinimumInteractiveComponentEnforcement import androidx.compose.material3.LocalMinimumInteractiveComponentSize
import androidx.compose.material3.Switch import androidx.compose.material3.Switch
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.ui.unit.Dp
import arrow.core.partially1 import arrow.core.partially1
import com.artemchep.keyguard.common.io.launchIn import com.artemchep.keyguard.common.io.launchIn
import com.artemchep.keyguard.common.usecase.GetAllowTwoPanelLayoutInLandscape import com.artemchep.keyguard.common.usecase.GetAllowTwoPanelLayoutInLandscape
@ -68,7 +69,7 @@ private fun SettingTwoPanelLayoutLandscape(
leading = icon<RowScope>(Icons.Outlined.Tablet), leading = icon<RowScope>(Icons.Outlined.Tablet),
trailing = { trailing = {
CompositionLocalProvider( CompositionLocalProvider(
LocalMinimumInteractiveComponentEnforcement provides false, LocalMinimumInteractiveComponentSize provides Dp.Unspecified,
) { ) {
Switch( Switch(
checked = checked, checked = checked,

View File

@ -3,11 +3,12 @@ package com.artemchep.keyguard.feature.home.settings.component
import androidx.compose.foundation.layout.RowScope import androidx.compose.foundation.layout.RowScope
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.outlined.PhoneAndroid import androidx.compose.material.icons.outlined.PhoneAndroid
import androidx.compose.material3.LocalMinimumInteractiveComponentEnforcement import androidx.compose.material3.LocalMinimumInteractiveComponentSize
import androidx.compose.material3.Switch import androidx.compose.material3.Switch
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.ui.unit.Dp
import arrow.core.partially1 import arrow.core.partially1
import com.artemchep.keyguard.common.io.launchIn import com.artemchep.keyguard.common.io.launchIn
import com.artemchep.keyguard.common.usecase.GetAllowTwoPanelLayoutInPortrait import com.artemchep.keyguard.common.usecase.GetAllowTwoPanelLayoutInPortrait
@ -68,7 +69,7 @@ private fun SettingTwoPanelLayoutPortrait(
leading = icon<RowScope>(Icons.Outlined.PhoneAndroid), leading = icon<RowScope>(Icons.Outlined.PhoneAndroid),
trailing = { trailing = {
CompositionLocalProvider( CompositionLocalProvider(
LocalMinimumInteractiveComponentEnforcement provides false, LocalMinimumInteractiveComponentSize provides Dp.Unspecified,
) { ) {
Switch( Switch(
checked = checked, checked = checked,

View File

@ -3,11 +3,12 @@ package com.artemchep.keyguard.feature.home.settings.component
import androidx.compose.foundation.layout.RowScope import androidx.compose.foundation.layout.RowScope
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.outlined.OpenInBrowser import androidx.compose.material.icons.outlined.OpenInBrowser
import androidx.compose.material3.LocalMinimumInteractiveComponentEnforcement import androidx.compose.material3.LocalMinimumInteractiveComponentSize
import androidx.compose.material3.Switch import androidx.compose.material3.Switch
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.ui.unit.Dp
import arrow.core.partially1 import arrow.core.partially1
import com.artemchep.keyguard.common.io.launchIn import com.artemchep.keyguard.common.io.launchIn
import com.artemchep.keyguard.common.usecase.GetUseExternalBrowser import com.artemchep.keyguard.common.usecase.GetUseExternalBrowser
@ -74,7 +75,7 @@ private fun SettingUseExternalBrowser(
leading = icon<RowScope>(Icons.Outlined.OpenInBrowser), leading = icon<RowScope>(Icons.Outlined.OpenInBrowser),
trailing = { trailing = {
CompositionLocalProvider( CompositionLocalProvider(
LocalMinimumInteractiveComponentEnforcement provides false, LocalMinimumInteractiveComponentSize provides Dp.Unspecified,
) { ) {
Switch( Switch(
checked = checked, checked = checked,

View File

@ -2,11 +2,12 @@ package com.artemchep.keyguard.feature.home.settings.component
import androidx.compose.foundation.layout.RowScope import androidx.compose.foundation.layout.RowScope
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
import androidx.compose.material3.LocalMinimumInteractiveComponentEnforcement import androidx.compose.material3.LocalMinimumInteractiveComponentSize
import androidx.compose.material3.Switch import androidx.compose.material3.Switch
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.ui.unit.Dp
import arrow.core.partially1 import arrow.core.partially1
import com.artemchep.keyguard.common.io.launchIn import com.artemchep.keyguard.common.io.launchIn
import com.artemchep.keyguard.common.usecase.GetVaultLockAfterReboot import com.artemchep.keyguard.common.usecase.GetVaultLockAfterReboot
@ -80,7 +81,7 @@ private fun SettingLockAfterReboot(
leading = icon<RowScope>(Icons.Stub), leading = icon<RowScope>(Icons.Stub),
trailing = { trailing = {
CompositionLocalProvider( CompositionLocalProvider(
LocalMinimumInteractiveComponentEnforcement provides false, LocalMinimumInteractiveComponentSize provides Dp.Unspecified,
) { ) {
Switch( Switch(
checked = checked, checked = checked,

View File

@ -3,11 +3,12 @@ package com.artemchep.keyguard.feature.home.settings.component
import androidx.compose.foundation.layout.RowScope import androidx.compose.foundation.layout.RowScope
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.outlined.MobileOff import androidx.compose.material.icons.outlined.MobileOff
import androidx.compose.material3.LocalMinimumInteractiveComponentEnforcement import androidx.compose.material3.LocalMinimumInteractiveComponentSize
import androidx.compose.material3.Switch import androidx.compose.material3.Switch
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.ui.unit.Dp
import arrow.core.partially1 import arrow.core.partially1
import com.artemchep.keyguard.common.io.launchIn import com.artemchep.keyguard.common.io.launchIn
import com.artemchep.keyguard.common.usecase.GetVaultLockAfterScreenOff import com.artemchep.keyguard.common.usecase.GetVaultLockAfterScreenOff
@ -75,7 +76,7 @@ private fun SettingLockAfterScreenOff(
leading = icon<RowScope>(Icons.Outlined.MobileOff), leading = icon<RowScope>(Icons.Outlined.MobileOff),
trailing = { trailing = {
CompositionLocalProvider( CompositionLocalProvider(
LocalMinimumInteractiveComponentEnforcement provides false, LocalMinimumInteractiveComponentSize provides Dp.Unspecified,
) { ) {
Switch( Switch(
checked = checked, checked = checked,

View File

@ -7,12 +7,13 @@ import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.outlined.Key import androidx.compose.material.icons.outlined.Key
import androidx.compose.material.icons.outlined.Memory import androidx.compose.material.icons.outlined.Memory
import androidx.compose.material.icons.outlined.Storage import androidx.compose.material.icons.outlined.Storage
import androidx.compose.material3.LocalMinimumInteractiveComponentEnforcement import androidx.compose.material3.LocalMinimumInteractiveComponentSize
import androidx.compose.material3.Switch import androidx.compose.material3.Switch
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import arrow.core.partially1 import arrow.core.partially1
import com.artemchep.keyguard.common.io.launchIn import com.artemchep.keyguard.common.io.launchIn
@ -80,7 +81,7 @@ private fun SettingVaultPersist(
leading = icon<RowScope>(Icons.Outlined.Key, secondaryIcon), leading = icon<RowScope>(Icons.Outlined.Key, secondaryIcon),
trailing = { trailing = {
CompositionLocalProvider( CompositionLocalProvider(
LocalMinimumInteractiveComponentEnforcement provides false, LocalMinimumInteractiveComponentSize provides Dp.Unspecified,
) { ) {
Switch( Switch(
checked = checked, checked = checked,

View File

@ -7,7 +7,7 @@ import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
import androidx.compose.material3.LocalContentColor import androidx.compose.material3.LocalContentColor
import androidx.compose.material3.LocalMinimumInteractiveComponentEnforcement import androidx.compose.material3.LocalMinimumInteractiveComponentSize
import androidx.compose.material3.MaterialTheme import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Switch import androidx.compose.material3.Switch
import androidx.compose.material3.Text import androidx.compose.material3.Text
@ -17,6 +17,7 @@ import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.runtime.getValue import androidx.compose.runtime.getValue
import androidx.compose.runtime.rememberUpdatedState import androidx.compose.runtime.rememberUpdatedState
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import arrow.core.partially1 import arrow.core.partially1
import com.artemchep.keyguard.common.io.launchIn import com.artemchep.keyguard.common.io.launchIn
@ -91,7 +92,7 @@ private fun SettingMarkdown(
leading = icon<RowScope>(Icons.Outlined.KeyguardWebsite), leading = icon<RowScope>(Icons.Outlined.KeyguardWebsite),
trailing = { trailing = {
CompositionLocalProvider( CompositionLocalProvider(
LocalMinimumInteractiveComponentEnforcement provides false, LocalMinimumInteractiveComponentSize provides Dp.Unspecified,
) { ) {
Switch( Switch(
checked = checked, checked = checked,

View File

@ -1,10 +1,11 @@
package com.artemchep.keyguard.feature.home.settings.component package com.artemchep.keyguard.feature.home.settings.component
import androidx.compose.material3.LocalMinimumInteractiveComponentEnforcement import androidx.compose.material3.LocalMinimumInteractiveComponentSize
import androidx.compose.material3.Switch import androidx.compose.material3.Switch
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.ui.unit.Dp
import arrow.core.partially1 import arrow.core.partially1
import com.artemchep.keyguard.common.io.launchIn import com.artemchep.keyguard.common.io.launchIn
import com.artemchep.keyguard.common.usecase.GetPurchased import com.artemchep.keyguard.common.usecase.GetPurchased
@ -56,7 +57,7 @@ private fun SettingWriteAccess(
FlatItem( FlatItem(
trailing = { trailing = {
CompositionLocalProvider( CompositionLocalProvider(
LocalMinimumInteractiveComponentEnforcement provides false, LocalMinimumInteractiveComponentSize provides Dp.Unspecified,
) { ) {
Switch( Switch(
checked = checked, checked = checked,

View File

@ -2632,7 +2632,7 @@ private suspend fun RememberStateFlowScope.produceCardState(
label = translate(Res.string.card_number), label = translate(Res.string.card_number),
initialValue = card?.number, initialValue = card?.number,
keyboardOptions = KeyboardOptions( keyboardOptions = KeyboardOptions(
autoCorrect = false, autoCorrectEnabled = false,
keyboardType = KeyboardType.Number, keyboardType = KeyboardType.Number,
), ),
visualTransformation = GenericSeparatorVisualTransformation(), visualTransformation = GenericSeparatorVisualTransformation(),
@ -2791,7 +2791,7 @@ private suspend fun RememberStateFlowScope.produceCardState(
initialValue = card?.code, initialValue = card?.code,
singleLine = true, singleLine = true,
keyboardOptions = KeyboardOptions( keyboardOptions = KeyboardOptions(
autoCorrect = false, autoCorrectEnabled = false,
keyboardType = KeyboardType.Number, keyboardType = KeyboardType.Number,
), ),
lens = CreateRequest.card.code, lens = CreateRequest.card.code,
@ -3049,7 +3049,7 @@ private suspend fun RememberStateFlowScope.produceIdentityState(
initialValue = args.autofill?.email ?: identity?.email, initialValue = args.autofill?.email ?: identity?.email,
singleLine = true, singleLine = true,
keyboardOptions = KeyboardOptions( keyboardOptions = KeyboardOptions(
autoCorrect = false, autoCorrectEnabled = false,
keyboardType = KeyboardType.Email, keyboardType = KeyboardType.Email,
), ),
lens = CreateRequest.identity.email, lens = CreateRequest.identity.email,
@ -3067,7 +3067,7 @@ private suspend fun RememberStateFlowScope.produceIdentityState(
initialValue = args.autofill?.phone ?: identity?.phone, initialValue = args.autofill?.phone ?: identity?.phone,
singleLine = true, singleLine = true,
keyboardOptions = KeyboardOptions( keyboardOptions = KeyboardOptions(
autoCorrect = false, autoCorrectEnabled = false,
keyboardType = KeyboardType.Phone, keyboardType = KeyboardType.Phone,
), ),
lens = CreateRequest.identity.phone, lens = CreateRequest.identity.phone,
@ -3113,7 +3113,7 @@ private suspend fun RememberStateFlowScope.produceIdentityState(
initialValue = identity?.passportNumber, initialValue = identity?.passportNumber,
singleLine = true, singleLine = true,
keyboardOptions = KeyboardOptions( keyboardOptions = KeyboardOptions(
autoCorrect = false, autoCorrectEnabled = false,
), ),
lens = CreateRequest.identity.passportNumber, lens = CreateRequest.identity.passportNumber,
) )

View File

@ -151,7 +151,7 @@ fun CollectionsScreenContent(
) { ) {
OrganizationsScreenItem( OrganizationsScreenItem(
modifier = Modifier modifier = Modifier
.animateItemPlacement(), .animateItem(),
item = it, item = it,
) )
} }

View File

@ -143,7 +143,7 @@ fun SearchTextField(
keyboardOptions = KeyboardOptions( keyboardOptions = KeyboardOptions(
keyboardType = KeyboardType.Text, keyboardType = KeyboardType.Text,
imeAction = ImeAction.Done, imeAction = ImeAction.Done,
autoCorrect = false, autoCorrectEnabled = false,
), ),
singleLine = true, singleLine = true,
) )

View File

@ -34,7 +34,7 @@ import androidx.compose.material3.DropdownMenu
import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.Icon import androidx.compose.material3.Icon
import androidx.compose.material3.LocalContentColor import androidx.compose.material3.LocalContentColor
import androidx.compose.material3.LocalMinimumInteractiveComponentEnforcement import androidx.compose.material3.LocalMinimumInteractiveComponentSize
import androidx.compose.material3.MaterialTheme import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.ProvideTextStyle import androidx.compose.material3.ProvideTextStyle
import androidx.compose.material3.Text import androidx.compose.material3.Text
@ -712,7 +712,7 @@ fun FlatItemLayout2(
) { ) {
if (leading != null) { if (leading != null) {
CompositionLocalProvider( CompositionLocalProvider(
LocalMinimumInteractiveComponentEnforcement provides false, LocalMinimumInteractiveComponentSize provides Dp.Unspecified,
) { ) {
leading() leading()
} }

View File

@ -162,7 +162,7 @@ fun FoldersScreenContent(
) { ) {
FoldersScreenItem( FoldersScreenItem(
modifier = Modifier modifier = Modifier
.animateItemPlacement(), .animateItem(),
item = it, item = it,
) )
} }

View File

@ -154,7 +154,7 @@ fun FoldersScreenContent(
) { ) {
OrganizationsScreenItem( OrganizationsScreenItem(
modifier = Modifier modifier = Modifier
.animateItemPlacement(), .animateItem(),
item = it, item = it,
) )
} }

View File

@ -553,7 +553,7 @@ fun VaultHomeScreenListPane(
if (model is VaultItem2.QuickFilters && !tabletUi) { if (model is VaultItem2.QuickFilters && !tabletUi) {
Box( Box(
modifier = Modifier modifier = Modifier
.animateItemPlacement(), .animateItem(),
) { ) {
val arg2 = LocalAppMode.current val arg2 = LocalAppMode.current
val llll = remember(state.filters) { val llll = remember(state.filters) {
@ -587,7 +587,7 @@ fun VaultHomeScreenListPane(
} else { } else {
VaultListItem( VaultListItem(
modifier = Modifier modifier = Modifier
.animateItemPlacement(), .animateItem(),
item = model, item = model,
) )
} }

View File

@ -34,7 +34,7 @@ data class VaultListState(
companion object; companion object;
sealed interface Content { sealed interface Content {
companion object companion object;
data object Skeleton : Content data object Skeleton : Content

View File

@ -230,7 +230,7 @@ fun JustDeleteMeListScreen(
) { item -> ) { item ->
AppItem( AppItem(
modifier = Modifier modifier = Modifier
.animateItemPlacement(), .animateItem(),
item = item, item = item,
) )
} }

View File

@ -231,7 +231,7 @@ fun JustGetMyDataListScreen(
) { item -> ) { item ->
AppItem( AppItem(
modifier = Modifier modifier = Modifier
.animateItemPlacement(), .animateItem(),
item = item, item = item,
) )
} }

View File

@ -194,7 +194,7 @@ private fun LogsScreenContent(
items(items, key = { it.id }) { item -> items(items, key = { it.id }) { item ->
LogItem( LogItem(
modifier = Modifier modifier = Modifier
.animateItemPlacement(), .animateItem(),
item = item, item = item,
) )
} }

View File

@ -228,7 +228,7 @@ fun PasskeysListScreen(
) { item -> ) { item ->
AppItem( AppItem(
modifier = Modifier modifier = Modifier
.animateItemPlacement(), .animateItem(),
item = item, item = item,
) )
} }

View File

@ -34,7 +34,7 @@ data class SendListState(
companion object; companion object;
sealed interface Content { sealed interface Content {
companion object companion object;
data object Skeleton : Content data object Skeleton : Content

View File

@ -400,7 +400,7 @@ private fun SendScreenContent(
) { model -> ) { model ->
VaultSendItemText( VaultSendItemText(
modifier = Modifier modifier = Modifier
.animateItemPlacement(), .animateItem(),
item = model, item = model,
) )
} }

View File

@ -237,7 +237,7 @@ fun SendViewScreen(
) { model -> ) { model ->
VaultViewItem( VaultViewItem(
modifier = Modifier modifier = Modifier
.animateItemPlacement(), .animateItem(),
item = model, item = model,
) )
} }

View File

@ -104,7 +104,7 @@ private fun SyncContent(
} }
TestK( TestK(
modifier = Modifier modifier = Modifier
.animateItemPlacement(), .animateItem(),
item = item, item = item,
) )
} }

View File

@ -228,7 +228,7 @@ fun TwoFaServiceListScreen(
) { item -> ) { item ->
AppItem( AppItem(
modifier = Modifier modifier = Modifier
.animateItemPlacement(), .animateItem(),
item = item, item = item,
) )
} }

View File

@ -204,7 +204,7 @@ fun EmailRelayListScreen(
) { item -> ) { item ->
UrlOverrideItem( UrlOverrideItem(
modifier = Modifier modifier = Modifier
.animateItemPlacement(), .animateItem(),
item = item, item = item,
) )
} }

View File

@ -171,7 +171,7 @@ private fun LazyListScope.populateGeneratorPaneMasterContent(
items(state.items, key = { it.id }) { item -> items(state.items, key = { it.id }) { item ->
GeneratorHistoryItem( GeneratorHistoryItem(
modifier = Modifier modifier = Modifier
.animateItemPlacement(), .animateItem(),
item = item, item = item,
) )
} }

View File

@ -145,7 +145,7 @@ fun YubiKeyManual(
label = stringResource(Res.string.verification_code), label = stringResource(Res.string.verification_code),
value = fieldState.value, value = fieldState.value,
keyboardOptions = KeyboardOptions( keyboardOptions = KeyboardOptions(
autoCorrect = true, autoCorrectEnabled = true,
keyboardType = KeyboardType.Text, keyboardType = KeyboardType.Text,
), ),
) )

View File

@ -3,9 +3,9 @@ package com.artemchep.keyguard.platform.lifecycle
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.DisposableEffect import androidx.compose.runtime.DisposableEffect
import androidx.compose.runtime.remember import androidx.compose.runtime.remember
import androidx.compose.ui.platform.LocalLifecycleOwner
import androidx.lifecycle.Lifecycle import androidx.lifecycle.Lifecycle
import androidx.lifecycle.LifecycleEventObserver import androidx.lifecycle.LifecycleEventObserver
import androidx.lifecycle.compose.LocalLifecycleOwner
import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.StateFlow

View File

@ -33,7 +33,7 @@ import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.Icon import androidx.compose.material3.Icon
import androidx.compose.material3.LocalAbsoluteTonalElevation import androidx.compose.material3.LocalAbsoluteTonalElevation
import androidx.compose.material3.LocalContentColor import androidx.compose.material3.LocalContentColor
import androidx.compose.material3.LocalMinimumInteractiveComponentEnforcement import androidx.compose.material3.LocalMinimumInteractiveComponentSize
import androidx.compose.material3.LocalTextStyle import androidx.compose.material3.LocalTextStyle
import androidx.compose.material3.MaterialTheme import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface import androidx.compose.material3.Surface
@ -521,7 +521,7 @@ fun FlatItemLayout(
) { ) {
if (leading != null) { if (leading != null) {
CompositionLocalProvider( CompositionLocalProvider(
LocalMinimumInteractiveComponentEnforcement provides false, LocalMinimumInteractiveComponentSize provides Dp.Unspecified,
) { ) {
leading() leading()
} }

View File

@ -3,6 +3,7 @@ package com.artemchep.keyguard.ui
//import androidx.compose.ui.awt.awtEventOrNull //import androidx.compose.ui.awt.awtEventOrNull
import androidx.compose.animation.core.MutableTransitionState import androidx.compose.animation.core.MutableTransitionState
import androidx.compose.animation.core.animateFloat import androidx.compose.animation.core.animateFloat
import androidx.compose.animation.core.rememberTransition
import androidx.compose.animation.core.tween import androidx.compose.animation.core.tween
import androidx.compose.animation.core.updateTransition import androidx.compose.animation.core.updateTransition
import androidx.compose.foundation.background import androidx.compose.foundation.background
@ -62,7 +63,7 @@ fun WunderPopup(
} }
// Menu open/close animation. // Menu open/close animation.
val transition = updateTransition(expandedStates, "DropDownMenu") val transition = rememberTransition(expandedStates, "DropDownMenu")
val alpha by transition.animateFloat( val alpha by transition.animateFloat(
transitionSpec = { transitionSpec = {
if (false isTransitioningTo true) { if (false isTransitioningTo true) {

View File

@ -83,7 +83,7 @@ class CipherEncryptorImpl(
"Cipher-text '$c.???' is not valid!" "Cipher-text '$c.???' is not valid!"
} }
val (cipherTypeRaw, cipherContent) = cipherSeq val (cipherTypeRaw, cipherContent) = cipherSeq
val cipherType = CipherEncryptor.Type.values() val cipherType = CipherEncryptor.Type.entries
.firstOrNull { it.type == cipherTypeRaw } .firstOrNull { it.type == cipherTypeRaw }
?: error("Cipher type $cipherTypeRaw is not supported!") ?: error("Cipher type $cipherTypeRaw is not supported!")
val cipherArgs = cipherContent val cipherArgs = cipherContent

View File

@ -57,7 +57,7 @@ class CipherInputStreamDecoder(
} }
val type = buffer[offset].let { byte -> val type = buffer[offset].let { byte ->
CipherEncryptor.Type.values() CipherEncryptor.Type.entries
.first { it.byte == byte } .first { it.byte == byte }
} }
return when (type) { return when (type) {

View File

@ -36,7 +36,7 @@ class FileEncryptorImpl(
key: ByteArray, key: ByteArray,
): ByteArray { ): ByteArray {
val type = data[0].let { byte -> val type = data[0].let { byte ->
CipherEncryptor.Type.values().first { it.byte == byte } CipherEncryptor.Type.entries.first { it.byte == byte }
} }
return when (type) { return when (type) {

View File

@ -81,7 +81,7 @@ class MessagePackHubProtocol : HubProtocol {
try { try {
MessagePack.newDefaultUnpacker(payload).use { unpacker -> MessagePack.newDefaultUnpacker(payload).use { unpacker ->
val itemCount = unpacker.unpackArrayHeader() val itemCount = unpacker.unpackArrayHeader()
val messageType = HubMessageType.values()[unpacker.unpackInt() - 1] val messageType = HubMessageType.entries[unpacker.unpackInt() - 1]
when (messageType) { when (messageType) {
HubMessageType.INVOCATION -> hubMessages.add( HubMessageType.INVOCATION -> hubMessages.add(
createInvocationMessage( createInvocationMessage(
@ -545,7 +545,7 @@ class MessagePackHubProtocol : HubProtocol {
if (itemClass == Short::class.java || itemClass == Short::class.javaPrimitiveType) { if (itemClass == Short::class.java || itemClass == Short::class.javaPrimitiveType) {
item = item.toShort() item = item.toShort()
} else if (itemClass == Char::class.java || itemClass == Char::class.javaPrimitiveType) { } else if (itemClass == Char::class.java || itemClass == Char::class.javaPrimitiveType) {
item = item.toShort().toChar() item = item.toInt().toChar()
} else if (itemClass == Byte::class.java || itemClass == Byte::class.javaPrimitiveType) { } else if (itemClass == Byte::class.java || itemClass == Byte::class.javaPrimitiveType) {
item = item.toByte() item = item.toByte()
} }

View File

@ -23,6 +23,7 @@ android.enableJetifier=false
kotlin.code.style=official kotlin.code.style=official
kotlin.daemon.jvmargs=-Xmx4096m kotlin.daemon.jvmargs=-Xmx4096m
kotlin.mpp.androidSourceSetLayoutVersion=2 kotlin.mpp.androidSourceSetLayoutVersion=2
kotlin.mpp.applyDefaultHierarchyTemplate=false
# Enables namespacing of each library's R class so that its R class includes only the # Enables namespacing of each library's R class so that its R class includes only the
# resources declared in the library itself and none from the library's dependencies, # resources declared in the library itself and none from the library's dependencies,
# thereby reducing the size of the R class for that library # thereby reducing the size of the R class for that library

View File

@ -2,9 +2,9 @@
# @keep # @keep
androidMinSdk = "26" androidMinSdk = "26"
# @keep # @keep
androidCompileSdk = "34" androidCompileSdk = "35"
# @keep # @keep
androidTargetSdk = "34" androidTargetSdk = "35"
# @keep # @keep
jdk = "17" jdk = "17"
# @keep # @keep
@ -12,32 +12,32 @@ appVersionName = "1.5.2"
# @keep # @keep
appVersionCode = "6" appVersionCode = "6"
# https://github.com/google/accompanist # https://github.com/google/accompanist
accompanist = "0.34.0" accompanist = "0.36.0"
androidBillingClient = "7.0.0" androidBillingClient = "7.0.0"
# https://mvnrepository.com/artifact/com.android.tools/desugar_jdk_libs # https://mvnrepository.com/artifact/com.android.tools/desugar_jdk_libs
androidDesugar = "2.0.4" androidDesugar = "2.1.2"
# https://mvnrepository.com/artifact/com.android.tools.build/gradle?repo=google # https://mvnrepository.com/artifact/com.android.tools.build/gradle?repo=google
androidPlugin = "8.5.2" androidPlugin = "8.6.0"
androidxActivity = "1.9.1" androidxActivity = "1.9.2"
androidxAppCompat = "1.7.0" androidxAppCompat = "1.7.0"
androidxAutofill = "1.3.0-alpha01" androidxAutofill = "1.3.0-alpha01"
androidxBaselineProfile = "1.2.4" androidxBaselineProfile = "1.3.0"
androidxBenchmarkMacroJUnit4 = "1.2.4" androidxBenchmarkMacroJUnit4 = "1.3.0"
androidxBiometricKtx = "1.2.0-alpha05" androidxBiometricKtx = "1.2.0-alpha05"
androidxBrowser = "1.8.0" androidxBrowser = "1.8.0"
androidxCamera = "1.4.0-rc01" androidxCamera = "1.4.0-rc01"
androidxCoreKtx = "1.13.1" androidxCoreKtx = "1.13.1"
androidxCoreSplash = "1.2.0-alpha01" androidxCoreSplash = "1.2.0-alpha02"
androidxCoreShortcuts = "1.1.0" androidxCoreShortcuts = "1.1.0"
androidxCredentials = "1.2.2" androidxCredentials = "1.2.2"
androidxDatastore = "1.1.1" androidxDatastore = "1.1.1"
androidxLifecycle = "2.8.4" androidxLifecycle = "2.8.5"
androidxProfileInstaller = "1.3.1" androidxProfileInstaller = "1.3.1"
androidxRoom = "2.6.1" androidxRoom = "2.6.1"
androidxSecurityCryptoKtx = "1.1.0-alpha06" androidxSecurityCryptoKtx = "1.1.0-alpha06"
androidxTestEspresso = "3.6.0-alpha01" androidxTestEspresso = "3.6.1"
androidxTestExtJUnit = "1.2.0-alpha01" androidxTestExtJUnit = "1.2.1"
androidxTestUiAutomator = "2.3.0-alpha05" androidxTestUiAutomator = "2.3.0"
androidxWork = "2.9.1" androidxWork = "2.9.1"
# https://github.com/harawata/appdirs # https://github.com/harawata/appdirs
appDirs = "1.2.2" appDirs = "1.2.2"
@ -50,14 +50,14 @@ buildkonfigPlugin = "0.15.1"
# https://mvnrepository.com/artifact/commons-codec/commons-codec # https://mvnrepository.com/artifact/commons-codec/commons-codec
commonsCodec = "1.17.1" commonsCodec = "1.17.1"
# https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 # https://mvnrepository.com/artifact/org.apache.commons/commons-lang3
commonsLang3 = "3.16.0" commonsLang3 = "3.17.0"
# https://github.com/JetBrains/compose-multiplatform # https://github.com/JetBrains/compose-multiplatform
composeMultiplatform = "1.7.0-beta01" composeMultiplatform = "1.7.0-beta02"
# https://github.com/DevSrSouza/compose-icons # https://github.com/DevSrSouza/compose-icons
composeOpenIcons = "1.1.0" composeOpenIcons = "1.1.0"
conscrypt = "2.5.2" conscrypt = "2.5.2"
crashlyticsPlugin = "3.0.2" crashlyticsPlugin = "3.0.2"
firebase = "33.2.0" firebase = "33.3.0"
# https://github.com/tfcporciuncula/flow-preferences # https://github.com/tfcporciuncula/flow-preferences
flowPreferences = "1.9.1" flowPreferences = "1.9.1"
# https://github.com/bumptech/glide # https://github.com/bumptech/glide
@ -74,16 +74,16 @@ kodeinDi = "7.22.0"
# https://github.com/JetBrains/kotlin # https://github.com/JetBrains/kotlin
kotlin = "2.0.20" kotlin = "2.0.20"
# https://github.com/Kotlin/kotlinx.collections.immutable # https://github.com/Kotlin/kotlinx.collections.immutable
kotlinCollections = "0.3.7" kotlinCollections = "0.3.8"
# https://github.com/Kotlin/kotlinx.coroutines # https://github.com/Kotlin/kotlinx.coroutines
kotlinCoroutines = "1.8.1" kotlinCoroutines = "1.9.0"
# https://github.com/Kotlin/kotlinx-datetime # https://github.com/Kotlin/kotlinx-datetime
kotlinDatetime = "0.6.1" kotlinDatetime = "0.6.1"
kotlinDsl = "4.3.0" kotlinDsl = "4.3.0"
# https://github.com/Kotlin/kotlinx.serialization # https://github.com/Kotlin/kotlinx.serialization
kotlinSerialization = "1.7.2" kotlinSerialization = "1.7.2"
# https://github.com/google/ksp/releases # https://github.com/google/ksp/releases
kspPlugin = "2.0.20-1.0.24" kspPlugin = "2.0.20-1.0.25"
# https://github.com/pinterest/ktlint/releases # https://github.com/pinterest/ktlint/releases
# @keep # @keep
ktlint = "0.50.0" ktlint = "0.50.0"
@ -93,7 +93,7 @@ ktlintPlugin = "12.1.1"
# Keep in sync with https://github.com/Kamel-Media/Kamel/blob/main/gradle/libs.versions.toml#L24 # Keep in sync with https://github.com/Kamel-Media/Kamel/blob/main/gradle/libs.versions.toml#L24
ktor = "2.3.12" ktor = "2.3.12"
# https://github.com/skydoves/landscapist # https://github.com/skydoves/landscapist
landscapist = "2.3.6" landscapist = "2.3.8"
# https://github.com/cashapp/licensee # https://github.com/cashapp/licensee
licenseCheckPlugin = "1.11.0" licenseCheckPlugin = "1.11.0"
# https://github.com/tony19/logback-android # https://github.com/tony19/logback-android
@ -133,7 +133,7 @@ versionsPlugin = "0.51.0"
# https://github.com/MayakaApps/ComposeWindowStyler # https://github.com/MayakaApps/ComposeWindowStyler
windowStyler = "0.3.2" windowStyler = "0.3.2"
# https://github.com/Yubico/yubikit-android # https://github.com/Yubico/yubikit-android
yubiKit = "2.6.0" yubiKit = "2.7.0"
# https://github.com/srikanth-lingala/zip4j # https://github.com/srikanth-lingala/zip4j
zip4j = "2.11.5" zip4j = "2.11.5"
# https://github.com/nulab/zxcvbn4j # https://github.com/nulab/zxcvbn4j
@ -167,6 +167,7 @@ androidx-espresso-core = { module = "androidx.test.espresso:espresso-core", vers
androidx-junit = { module = "androidx.test.ext:junit", version.ref = "androidxTestExtJUnit" } androidx-junit = { module = "androidx.test.ext:junit", version.ref = "androidxTestExtJUnit" }
androidx-lifecycle-common = { module = "androidx.lifecycle:lifecycle-common", version.ref = "androidxLifecycle" } androidx-lifecycle-common = { module = "androidx.lifecycle:lifecycle-common", version.ref = "androidxLifecycle" }
androidx-lifecycle-runtime = { module = "androidx.lifecycle:lifecycle-runtime", version.ref = "androidxLifecycle" } androidx-lifecycle-runtime = { module = "androidx.lifecycle:lifecycle-runtime", version.ref = "androidxLifecycle" }
androidx-lifecycle-runtime-compose = { module = "androidx.lifecycle:lifecycle-runtime-compose", version.ref = "androidxLifecycle" }
androidx-lifecycle-livedata-ktx = { module = "androidx.lifecycle:lifecycle-livedata-ktx", version.ref = "androidxLifecycle" } androidx-lifecycle-livedata-ktx = { module = "androidx.lifecycle:lifecycle-livedata-ktx", version.ref = "androidxLifecycle" }
androidx-lifecycle-process = { module = "androidx.lifecycle:lifecycle-process", version.ref = "androidxLifecycle" } androidx-lifecycle-process = { module = "androidx.lifecycle:lifecycle-process", version.ref = "androidxLifecycle" }
androidx-lifecycle-runtime-ktx = { module = "androidx.lifecycle:lifecycle-runtime-ktx", version.ref = "androidxLifecycle" } androidx-lifecycle-runtime-ktx = { module = "androidx.lifecycle:lifecycle-runtime-ktx", version.ref = "androidxLifecycle" }