Ещё чистка
This commit is contained in:
@@ -6,7 +6,6 @@ import com.github.nullptroma.wallenc.data.db.app.dao.StorageKeyMapDao
|
|||||||
import com.github.nullptroma.wallenc.data.db.app.dao.StorageMetaInfoDao
|
import com.github.nullptroma.wallenc.data.db.app.dao.StorageMetaInfoDao
|
||||||
import com.github.nullptroma.wallenc.data.db.app.repository.StorageKeyMapRepository
|
import com.github.nullptroma.wallenc.data.db.app.repository.StorageKeyMapRepository
|
||||||
import com.github.nullptroma.wallenc.data.db.app.repository.StorageMetaInfoRepository
|
import com.github.nullptroma.wallenc.data.db.app.repository.StorageMetaInfoRepository
|
||||||
import com.github.nullptroma.wallenc.data.storages.UnlockManager
|
|
||||||
import com.github.nullptroma.wallenc.data.tasks.TaskOrchestrator
|
import com.github.nullptroma.wallenc.data.tasks.TaskOrchestrator
|
||||||
import com.github.nullptroma.wallenc.data.vaults.VaultsManager
|
import com.github.nullptroma.wallenc.data.vaults.VaultsManager
|
||||||
import com.github.nullptroma.wallenc.domain.interfaces.IUnlockManager
|
import com.github.nullptroma.wallenc.domain.interfaces.IUnlockManager
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import android.app.NotificationManager
|
|||||||
import android.app.PendingIntent
|
import android.app.PendingIntent
|
||||||
import android.app.Service
|
import android.app.Service
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.os.Build
|
|
||||||
import android.os.IBinder
|
import android.os.IBinder
|
||||||
import androidx.core.app.NotificationCompat
|
import androidx.core.app.NotificationCompat
|
||||||
import com.github.nullptroma.wallenc.app.R
|
import com.github.nullptroma.wallenc.app.R
|
||||||
|
|||||||
@@ -1,10 +1,2 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources>
|
<resources />
|
||||||
<color name="purple_200">#FFBB86FC</color>
|
|
||||||
<color name="purple_500">#FF6200EE</color>
|
|
||||||
<color name="purple_700">#FF3700B3</color>
|
|
||||||
<color name="teal_200">#FF03DAC5</color>
|
|
||||||
<color name="teal_700">#FF018786</color>
|
|
||||||
<color name="black">#FF000000</color>
|
|
||||||
<color name="white">#FFFFFFFF</color>
|
|
||||||
</resources>
|
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ package com.github.nullptroma.wallenc.data.db.app.model
|
|||||||
|
|
||||||
import androidx.room.ColumnInfo
|
import androidx.room.ColumnInfo
|
||||||
import androidx.room.Entity
|
import androidx.room.Entity
|
||||||
import com.github.nullptroma.wallenc.data.db.app.repository.StorageKeyMapRepository
|
|
||||||
import com.github.nullptroma.wallenc.data.model.StorageKeyMap
|
import com.github.nullptroma.wallenc.data.model.StorageKeyMap
|
||||||
import com.github.nullptroma.wallenc.domain.datatypes.EncryptKey
|
import com.github.nullptroma.wallenc.domain.datatypes.EncryptKey
|
||||||
import java.util.UUID
|
import java.util.UUID
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ package com.github.nullptroma.wallenc.data.db.app.model
|
|||||||
import androidx.room.ColumnInfo
|
import androidx.room.ColumnInfo
|
||||||
import androidx.room.Entity
|
import androidx.room.Entity
|
||||||
import androidx.room.PrimaryKey
|
import androidx.room.PrimaryKey
|
||||||
import com.github.nullptroma.wallenc.domain.common.impl.CommonStorageMetaInfo
|
|
||||||
import java.util.UUID
|
import java.util.UUID
|
||||||
|
|
||||||
@Entity(tableName = "storage_meta_infos")
|
@Entity(tableName = "storage_meta_infos")
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package com.github.nullptroma.wallenc.data.model
|
package com.github.nullptroma.wallenc.data.model
|
||||||
|
|
||||||
import androidx.room.ColumnInfo
|
|
||||||
import com.github.nullptroma.wallenc.domain.datatypes.EncryptKey
|
import com.github.nullptroma.wallenc.domain.datatypes.EncryptKey
|
||||||
import java.util.UUID
|
import java.util.UUID
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package com.github.nullptroma.wallenc.data.storages.encrypt
|
package com.github.nullptroma.wallenc.data.storages.encrypt
|
||||||
|
|
||||||
import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
|
import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
|
||||||
import com.github.nullptroma.wallenc.data.db.app.repository.StorageMetaInfoRepository
|
|
||||||
import com.github.nullptroma.wallenc.domain.common.impl.CommonStorageMetaInfo
|
import com.github.nullptroma.wallenc.domain.common.impl.CommonStorageMetaInfo
|
||||||
import com.github.nullptroma.wallenc.domain.datatypes.EncryptKey
|
import com.github.nullptroma.wallenc.domain.datatypes.EncryptKey
|
||||||
import com.github.nullptroma.wallenc.domain.datatypes.StorageEncryptionInfo
|
import com.github.nullptroma.wallenc.domain.datatypes.StorageEncryptionInfo
|
||||||
@@ -13,15 +12,14 @@ import kotlinx.coroutines.CoroutineDispatcher
|
|||||||
import kotlinx.coroutines.CoroutineScope
|
import kotlinx.coroutines.CoroutineScope
|
||||||
import kotlinx.coroutines.DisposableHandle
|
import kotlinx.coroutines.DisposableHandle
|
||||||
import kotlinx.coroutines.Job
|
import kotlinx.coroutines.Job
|
||||||
|
import kotlinx.coroutines.ensureActive
|
||||||
import kotlinx.coroutines.flow.Flow
|
import kotlinx.coroutines.flow.Flow
|
||||||
import kotlinx.coroutines.flow.MutableStateFlow
|
import kotlinx.coroutines.flow.MutableStateFlow
|
||||||
import kotlinx.coroutines.flow.StateFlow
|
import kotlinx.coroutines.flow.StateFlow
|
||||||
import kotlinx.coroutines.flow.map
|
import kotlinx.coroutines.flow.map
|
||||||
import kotlinx.coroutines.ensureActive
|
|
||||||
import kotlinx.coroutines.withContext
|
import kotlinx.coroutines.withContext
|
||||||
import java.io.InputStream
|
import java.io.InputStream
|
||||||
import java.util.UUID
|
import java.util.UUID
|
||||||
import kotlin.coroutines.coroutineContext
|
|
||||||
|
|
||||||
class EncryptedStorage private constructor(
|
class EncryptedStorage private constructor(
|
||||||
private val source: IStorage,
|
private val source: IStorage,
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package com.github.nullptroma.wallenc.data.storages.encrypt
|
package com.github.nullptroma.wallenc.data.storages.encrypt
|
||||||
|
|
||||||
import com.github.nullptroma.wallenc.data.utils.CloseHandledStreamExtension.Companion.onClosed
|
|
||||||
import com.github.nullptroma.wallenc.data.utils.CloseHandledStreamExtension.Companion.onClosing
|
import com.github.nullptroma.wallenc.data.utils.CloseHandledStreamExtension.Companion.onClosing
|
||||||
import com.github.nullptroma.wallenc.domain.common.impl.CommonDirectory
|
import com.github.nullptroma.wallenc.domain.common.impl.CommonDirectory
|
||||||
import com.github.nullptroma.wallenc.domain.common.impl.CommonFile
|
import com.github.nullptroma.wallenc.domain.common.impl.CommonFile
|
||||||
|
|||||||
@@ -15,7 +15,6 @@ import kotlinx.coroutines.flow.StateFlow
|
|||||||
import kotlinx.coroutines.flow.map
|
import kotlinx.coroutines.flow.map
|
||||||
import kotlinx.coroutines.withContext
|
import kotlinx.coroutines.withContext
|
||||||
import java.io.InputStream
|
import java.io.InputStream
|
||||||
import kotlin.coroutines.coroutineContext
|
|
||||||
import java.util.UUID
|
import java.util.UUID
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -13,15 +13,17 @@ import com.github.nullptroma.wallenc.domain.tasks.TaskProgress
|
|||||||
import com.github.nullptroma.wallenc.domain.tasks.TaskRunState
|
import com.github.nullptroma.wallenc.domain.tasks.TaskRunState
|
||||||
import kotlinx.coroutines.CoroutineDispatcher
|
import kotlinx.coroutines.CoroutineDispatcher
|
||||||
import kotlinx.coroutines.CoroutineScope
|
import kotlinx.coroutines.CoroutineScope
|
||||||
|
import kotlinx.coroutines.Deferred
|
||||||
import kotlinx.coroutines.Job
|
import kotlinx.coroutines.Job
|
||||||
import kotlinx.coroutines.SupervisorJob
|
import kotlinx.coroutines.SupervisorJob
|
||||||
import kotlinx.coroutines.channels.Channel
|
import kotlinx.coroutines.channels.Channel
|
||||||
|
import kotlinx.coroutines.async
|
||||||
import kotlinx.coroutines.flow.MutableStateFlow
|
import kotlinx.coroutines.flow.MutableStateFlow
|
||||||
import kotlinx.coroutines.flow.StateFlow
|
import kotlinx.coroutines.flow.StateFlow
|
||||||
import kotlinx.coroutines.flow.asStateFlow
|
import kotlinx.coroutines.flow.asStateFlow
|
||||||
|
import kotlinx.coroutines.coroutineScope
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import kotlinx.coroutines.CancellationException
|
import kotlinx.coroutines.CancellationException
|
||||||
import kotlinx.coroutines.withContext
|
|
||||||
import java.util.Collections
|
import java.util.Collections
|
||||||
import java.util.concurrent.ConcurrentHashMap
|
import java.util.concurrent.ConcurrentHashMap
|
||||||
import java.util.concurrent.atomic.AtomicReference
|
import java.util.concurrent.atomic.AtomicReference
|
||||||
@@ -77,16 +79,18 @@ class TaskOrchestrator(
|
|||||||
}
|
}
|
||||||
emitState(id)
|
emitState(id)
|
||||||
|
|
||||||
val job = Job(pipelineSupervisor)
|
|
||||||
currentRunJob.set(job)
|
|
||||||
val ctx = TaskContextImpl(
|
val ctx = TaskContextImpl(
|
||||||
taskId = id,
|
taskId = id,
|
||||||
onRunningProgress = { p -> onRunningProgress(id, envelope.title, envelope.requiresForeground, p) },
|
onRunningProgress = { p -> onRunningProgress(id, envelope.title, envelope.requiresForeground, p) },
|
||||||
appendLog = { level, msg -> appendLogLine(level, msg) },
|
appendLog = { level, msg -> appendLogLine(level, msg) },
|
||||||
)
|
)
|
||||||
try {
|
try {
|
||||||
withContext(ioDispatcher + job) {
|
coroutineScope {
|
||||||
envelope.work.run(ctx)
|
val runJob: Deferred<Unit> = async(ioDispatcher) {
|
||||||
|
envelope.work.run(ctx)
|
||||||
|
}
|
||||||
|
currentRunJob.set(runJob)
|
||||||
|
runJob.await()
|
||||||
}
|
}
|
||||||
replaceTask(id) { it.copy(state = TaskRunState.Completed) }
|
replaceTask(id) { it.copy(state = TaskRunState.Completed) }
|
||||||
cancelRequested.remove(id)
|
cancelRequested.remove(id)
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
package com.github.nullptroma.wallenc.domain.common.impl
|
package com.github.nullptroma.wallenc.domain.common.impl
|
||||||
|
|
||||||
import com.github.nullptroma.wallenc.domain.datatypes.StorageEncryptionInfo
|
import com.github.nullptroma.wallenc.domain.datatypes.StorageEncryptionInfo
|
||||||
import com.github.nullptroma.wallenc.domain.interfaces.IMetaInfo
|
|
||||||
import com.github.nullptroma.wallenc.domain.interfaces.IStorage
|
|
||||||
import com.github.nullptroma.wallenc.domain.interfaces.IStorageMetaInfo
|
import com.github.nullptroma.wallenc.domain.interfaces.IStorageMetaInfo
|
||||||
import java.time.Clock
|
import java.time.Clock
|
||||||
import java.time.Instant
|
import java.time.Instant
|
||||||
|
|||||||
@@ -1,9 +1,6 @@
|
|||||||
package com.github.nullptroma.wallenc.domain.encrypt
|
package com.github.nullptroma.wallenc.domain.encrypt
|
||||||
|
|
||||||
import com.github.nullptroma.wallenc.domain.datatypes.EncryptKey
|
|
||||||
import com.github.nullptroma.wallenc.domain.datatypes.StorageEncryptionInfo
|
|
||||||
import com.github.nullptroma.wallenc.domain.encrypt.Encryptor.Companion.AES_SETTINGS
|
import com.github.nullptroma.wallenc.domain.encrypt.Encryptor.Companion.AES_SETTINGS
|
||||||
import com.github.nullptroma.wallenc.domain.encrypt.Encryptor.Companion.IV_LEN
|
|
||||||
import kotlinx.coroutines.DisposableHandle
|
import kotlinx.coroutines.DisposableHandle
|
||||||
import java.io.InputStream
|
import java.io.InputStream
|
||||||
import java.io.OutputStream
|
import java.io.OutputStream
|
||||||
@@ -14,7 +11,6 @@ import javax.crypto.SecretKey
|
|||||||
import javax.crypto.spec.IvParameterSpec
|
import javax.crypto.spec.IvParameterSpec
|
||||||
import kotlin.io.encoding.Base64
|
import kotlin.io.encoding.Base64
|
||||||
import kotlin.io.encoding.ExperimentalEncodingApi
|
import kotlin.io.encoding.ExperimentalEncodingApi
|
||||||
import kotlin.random.Random
|
|
||||||
|
|
||||||
class EncryptorWithStaticIv(private var secretKey: SecretKey, iv: ByteArray) : DisposableHandle {
|
class EncryptorWithStaticIv(private var secretKey: SecretKey, iv: ByteArray) : DisposableHandle {
|
||||||
private val ivSpec = IvParameterSpec(iv)
|
private val ivSpec = IvParameterSpec(iv)
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import com.github.nullptroma.wallenc.domain.interfaces.IStorage
|
|||||||
import com.github.nullptroma.wallenc.domain.interfaces.IStorageInfo
|
import com.github.nullptroma.wallenc.domain.interfaces.IStorageInfo
|
||||||
import com.github.nullptroma.wallenc.domain.interfaces.IUnlockManager
|
import com.github.nullptroma.wallenc.domain.interfaces.IUnlockManager
|
||||||
import com.github.nullptroma.wallenc.domain.interfaces.IVaultsManager
|
import com.github.nullptroma.wallenc.domain.interfaces.IVaultsManager
|
||||||
import java.util.UUID
|
|
||||||
|
|
||||||
class RemoveStorageUseCase(
|
class RemoveStorageUseCase(
|
||||||
private val vaultsManager: IVaultsManager,
|
private val vaultsManager: IVaultsManager,
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import kotlinx.coroutines.flow.MutableStateFlow
|
|||||||
import kotlinx.coroutines.flow.StateFlow
|
import kotlinx.coroutines.flow.StateFlow
|
||||||
|
|
||||||
abstract class ViewModelBase<TState>(initState: TState) : ViewModel() {
|
abstract class ViewModelBase<TState>(initState: TState) : ViewModel() {
|
||||||
private val _state = MutableStateFlow<TState>(initState)
|
private val _state = MutableStateFlow(initState)
|
||||||
|
|
||||||
val state: StateFlow<TState>
|
val state: StateFlow<TState>
|
||||||
get() = _state
|
get() = _state
|
||||||
|
|||||||
@@ -3,9 +3,6 @@ package com.github.nullptroma.wallenc.presentation
|
|||||||
import androidx.compose.animation.core.tween
|
import androidx.compose.animation.core.tween
|
||||||
import androidx.compose.animation.fadeIn
|
import androidx.compose.animation.fadeIn
|
||||||
import androidx.compose.animation.fadeOut
|
import androidx.compose.animation.fadeOut
|
||||||
import androidx.compose.foundation.background
|
|
||||||
import androidx.compose.foundation.layout.WindowInsets
|
|
||||||
import androidx.compose.foundation.layout.height
|
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.layout.wrapContentHeight
|
import androidx.compose.foundation.layout.wrapContentHeight
|
||||||
import androidx.compose.material.icons.Icons
|
import androidx.compose.material.icons.Icons
|
||||||
@@ -23,9 +20,7 @@ import androidx.compose.runtime.Composable
|
|||||||
import androidx.compose.runtime.getValue
|
import androidx.compose.runtime.getValue
|
||||||
import androidx.compose.runtime.remember
|
import androidx.compose.runtime.remember
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.graphics.Color
|
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
import androidx.compose.ui.unit.dp
|
|
||||||
import androidx.hilt.navigation.compose.hiltViewModel
|
import androidx.hilt.navigation.compose.hiltViewModel
|
||||||
import androidx.navigation.compose.NavHost
|
import androidx.navigation.compose.NavHost
|
||||||
import androidx.navigation.compose.composable
|
import androidx.navigation.compose.composable
|
||||||
@@ -35,8 +30,8 @@ import com.github.nullptroma.wallenc.presentation.navigation.rememberNavigationS
|
|||||||
import com.github.nullptroma.wallenc.presentation.screens.main.MainRoute
|
import com.github.nullptroma.wallenc.presentation.screens.main.MainRoute
|
||||||
import com.github.nullptroma.wallenc.presentation.screens.main.MainScreen
|
import com.github.nullptroma.wallenc.presentation.screens.main.MainScreen
|
||||||
import com.github.nullptroma.wallenc.presentation.screens.main.MainViewModel
|
import com.github.nullptroma.wallenc.presentation.screens.main.MainViewModel
|
||||||
import com.github.nullptroma.wallenc.presentation.screens.main.screens.tasks.TaskPipelineScreen
|
|
||||||
import com.github.nullptroma.wallenc.presentation.screens.main.screens.tasks.TaskPipelineRoute
|
import com.github.nullptroma.wallenc.presentation.screens.main.screens.tasks.TaskPipelineRoute
|
||||||
|
import com.github.nullptroma.wallenc.presentation.screens.main.screens.tasks.TaskPipelineScreen
|
||||||
import com.github.nullptroma.wallenc.presentation.screens.settings.SettingsRoute
|
import com.github.nullptroma.wallenc.presentation.screens.settings.SettingsRoute
|
||||||
import com.github.nullptroma.wallenc.presentation.screens.settings.SettingsScreen
|
import com.github.nullptroma.wallenc.presentation.screens.settings.SettingsScreen
|
||||||
import com.github.nullptroma.wallenc.presentation.screens.settings.SettingsViewModel
|
import com.github.nullptroma.wallenc.presentation.screens.settings.SettingsViewModel
|
||||||
@@ -100,7 +95,7 @@ fun WallencNavRoot(viewModel: WallencViewModel = hiltViewModel()) {
|
|||||||
label = { Text(stringResource(navBarItemData.nameStringResourceId)) },
|
label = { Text(stringResource(navBarItemData.nameStringResourceId)) },
|
||||||
selected = currentRoute?.startsWith(routeClassName) == true,
|
selected = currentRoute?.startsWith(routeClassName) == true,
|
||||||
onClick = {
|
onClick = {
|
||||||
var route = topLevelRoutes[navBarItemData.screenRouteClass]
|
val route = topLevelRoutes[navBarItemData.screenRouteClass]
|
||||||
if (route == null)
|
if (route == null)
|
||||||
throw NullPointerException("Route $route not found")
|
throw NullPointerException("Route $route not found")
|
||||||
if (currentRoute?.startsWith(routeClassName) != true) navState.changeTop(
|
if (currentRoute?.startsWith(routeClassName) != true) navState.changeTop(
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ class WallencViewModel @javax.inject.Inject constructor(savedStateHandle: SavedS
|
|||||||
@OptIn(SavedStateHandleSaveableApi::class)
|
@OptIn(SavedStateHandleSaveableApi::class)
|
||||||
var routes by savedStateHandle.saveable {
|
var routes by savedStateHandle.saveable {
|
||||||
mutableStateOf(
|
mutableStateOf(
|
||||||
mapOf<String, ScreenRoute>(
|
mapOf(
|
||||||
MainRoute::class.qualifiedName!! to MainRoute(),
|
MainRoute::class.qualifiedName!! to MainRoute(),
|
||||||
TaskPipelineRoute::class.qualifiedName!! to TaskPipelineRoute(),
|
TaskPipelineRoute::class.qualifiedName!! to TaskPipelineRoute(),
|
||||||
SettingsRoute::class.qualifiedName!! to SettingsRoute()
|
SettingsRoute::class.qualifiedName!! to SettingsRoute()
|
||||||
|
|||||||
@@ -1,10 +1,7 @@
|
|||||||
package com.github.nullptroma.wallenc.presentation.elements
|
package com.github.nullptroma.wallenc.presentation.elements
|
||||||
|
|
||||||
import android.widget.FrameLayout
|
|
||||||
import androidx.compose.foundation.BorderStroke
|
|
||||||
import androidx.compose.foundation.background
|
import androidx.compose.foundation.background
|
||||||
import androidx.compose.foundation.clickable
|
import androidx.compose.foundation.clickable
|
||||||
import androidx.compose.foundation.indication
|
|
||||||
import androidx.compose.foundation.interaction.MutableInteractionSource
|
import androidx.compose.foundation.interaction.MutableInteractionSource
|
||||||
import androidx.compose.foundation.layout.Box
|
import androidx.compose.foundation.layout.Box
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
@@ -16,7 +13,6 @@ import androidx.compose.foundation.layout.fillMaxWidth
|
|||||||
import androidx.compose.foundation.layout.height
|
import androidx.compose.foundation.layout.height
|
||||||
import androidx.compose.foundation.layout.offset
|
import androidx.compose.foundation.layout.offset
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
|
||||||
import androidx.compose.material.icons.Icons
|
import androidx.compose.material.icons.Icons
|
||||||
import androidx.compose.material.icons.filled.Lock
|
import androidx.compose.material.icons.filled.Lock
|
||||||
import androidx.compose.material.icons.filled.LockOpen
|
import androidx.compose.material.icons.filled.LockOpen
|
||||||
|
|||||||
@@ -1,19 +1,10 @@
|
|||||||
package com.github.nullptroma.wallenc.presentation.extensions
|
package com.github.nullptroma.wallenc.presentation.extensions
|
||||||
|
|
||||||
import androidx.compose.foundation.Indication
|
|
||||||
import androidx.compose.foundation.IndicationNodeFactory
|
|
||||||
import androidx.compose.foundation.LocalIndication
|
|
||||||
import androidx.compose.foundation.clickable
|
|
||||||
import androidx.compose.foundation.interaction.MutableInteractionSource
|
|
||||||
import androidx.compose.runtime.remember
|
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.composed
|
|
||||||
import androidx.compose.ui.input.pointer.PointerEventPass
|
import androidx.compose.ui.input.pointer.PointerEventPass
|
||||||
import androidx.compose.ui.input.pointer.PointerInputChange
|
import androidx.compose.ui.input.pointer.PointerInputChange
|
||||||
import androidx.compose.ui.input.pointer.pointerInput
|
import androidx.compose.ui.input.pointer.pointerInput
|
||||||
import androidx.compose.ui.layout.layout
|
import androidx.compose.ui.layout.layout
|
||||||
import androidx.compose.ui.platform.debugInspectorInfo
|
|
||||||
import androidx.compose.ui.semantics.Role
|
|
||||||
import androidx.compose.ui.unit.Dp
|
import androidx.compose.ui.unit.Dp
|
||||||
|
|
||||||
fun Modifier.ignoreHorizontalParentPadding(horizontal: Dp): Modifier {
|
fun Modifier.ignoreHorizontalParentPadding(horizontal: Dp): Modifier {
|
||||||
|
|||||||
@@ -3,10 +3,8 @@ package com.github.nullptroma.wallenc.presentation.screens.main
|
|||||||
import androidx.compose.animation.core.tween
|
import androidx.compose.animation.core.tween
|
||||||
import androidx.compose.animation.fadeIn
|
import androidx.compose.animation.fadeIn
|
||||||
import androidx.compose.animation.fadeOut
|
import androidx.compose.animation.fadeOut
|
||||||
import androidx.compose.foundation.background
|
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
import androidx.compose.foundation.layout.WindowInsets
|
import androidx.compose.foundation.layout.WindowInsets
|
||||||
import androidx.compose.foundation.layout.fillMaxHeight
|
|
||||||
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.material3.ExperimentalMaterial3Api
|
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||||
@@ -18,7 +16,6 @@ import androidx.compose.material3.Text
|
|||||||
import androidx.compose.runtime.getValue
|
import androidx.compose.runtime.getValue
|
||||||
import androidx.compose.runtime.remember
|
import androidx.compose.runtime.remember
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.graphics.Color
|
|
||||||
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.hilt.navigation.compose.hiltViewModel
|
import androidx.hilt.navigation.compose.hiltViewModel
|
||||||
|
|||||||
@@ -19,8 +19,8 @@ import androidx.compose.material3.Icon
|
|||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.material3.Scaffold
|
import androidx.compose.material3.Scaffold
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.getValue
|
|
||||||
import androidx.compose.runtime.LaunchedEffect
|
import androidx.compose.runtime.LaunchedEffect
|
||||||
|
import androidx.compose.runtime.getValue
|
||||||
import androidx.compose.ui.Alignment
|
import androidx.compose.ui.Alignment
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.draw.alpha
|
import androidx.compose.ui.draw.alpha
|
||||||
@@ -31,7 +31,6 @@ import androidx.hilt.navigation.compose.hiltViewModel
|
|||||||
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
||||||
import com.github.nullptroma.wallenc.presentation.elements.StorageTree
|
import com.github.nullptroma.wallenc.presentation.elements.StorageTree
|
||||||
import com.github.nullptroma.wallenc.presentation.extensions.gesturesDisabled
|
import com.github.nullptroma.wallenc.presentation.extensions.gesturesDisabled
|
||||||
import kotlinx.coroutines.flow.collect
|
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun LocalVaultScreen(
|
fun LocalVaultScreen(
|
||||||
|
|||||||
@@ -11,5 +11,5 @@ import androidx.hilt.navigation.compose.hiltViewModel
|
|||||||
@Composable
|
@Composable
|
||||||
fun RemoteVaultsScreen(modifier: Modifier = Modifier,
|
fun RemoteVaultsScreen(modifier: Modifier = Modifier,
|
||||||
viewModel: RemoteVaultsViewModel = hiltViewModel()) {
|
viewModel: RemoteVaultsViewModel = hiltViewModel()) {
|
||||||
Text("Remote vault screen")
|
Text("Remote vault screen", modifier = modifier)
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user