Optimize imports

This commit is contained in:
Kgothatso Ngako committed 2026-06-20 14:31:44 +02:00
1 parent 94723eca6a
commit 6c2609254d
172 files changed
+516 -501

No files matched your search

@@ -1,6 +1,5 @@
package at.torch.android
import at.torch.compose.PlatformContext
import android.content.Intent
import android.nfc.NfcAdapter
import android.os.Bundle
@@ -8,10 +7,9 @@ import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge
import androidx.navigation.compose.rememberNavController
import at.torch.compose.PlatformContext
import at.torch.compose.TorchApp
import at.torch.compose.TorchGlobal
import com.machankura.compose.ui.composable.widgets.nfc.NfcState
import com.machankura.compose.ui.composable.widgets.nfc.NfcStateRepository
import fr.acinq.phoenix.PhoenixGlobal
import fr.acinq.phoenix.android.services.HceService
@@ -1,9 +1,9 @@
package at.torch.compose.database.builder
import at.torch.compose.PlatformContext
import at.torch.compose.database.TorchDatabase
import androidx.room3.Room
import androidx.room3.RoomDatabase
import at.torch.compose.PlatformContext
import at.torch.compose.database.TorchDatabase
actual object PlatformDatabaseBuilder {
actual fun getDatabaseBuilder(platformContext: PlatformContext): RoomDatabase.Builder<TorchDatabase> {
@@ -16,12 +16,10 @@
package com.machankura.compose.ui.composable.widgets.nfc
import androidx.compose.foundation.Image
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.size
import androidx.compose.material3.FilledTonalButton
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
@@ -30,10 +28,7 @@ import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.getValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.ColorFilter
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import com.machankura.compose.ui.composable.widgets.dialogs.ModalBottomSheet
import fr.acinq.phoenix.utils.extensions.findActivitySafe
@@ -16,12 +16,10 @@
package com.machankura.compose.ui.composable.widgets.nfc
import androidx.compose.foundation.Image
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.material3.Button
import androidx.compose.material3.FilledTonalButton
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
@@ -30,10 +28,7 @@ import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.getValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.ColorFilter
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import com.machankura.compose.ui.composable.widgets.dialogs.ModalBottomSheet
import fr.acinq.phoenix.utils.extensions.findActivitySafe
@@ -16,11 +16,11 @@
package fr.acinq.phoenix.android
import android.content.Context
import android.text.format.DateUtils
import at.torch.android.TorchApplication
import at.torch.compose.AppVersion
import at.torch.compose.ui.composable.widgets.wallet.WalletAvatars
import android.content.Context
import android.text.format.DateUtils
import fr.acinq.lightning.LiquidityEvents
import fr.acinq.lightning.PaymentEvents
import fr.acinq.lightning.utils.Connection
@@ -16,7 +16,6 @@
package fr.acinq.phoenix.android.services
import at.torch.android.BuildConfig
import android.content.Context
import androidx.work.CoroutineWorker
import androidx.work.ExistingPeriodicWorkPolicy
@@ -26,6 +25,7 @@ import androidx.work.Operation
import androidx.work.PeriodicWorkRequest
import androidx.work.WorkManager
import androidx.work.WorkerParameters
import at.torch.android.BuildConfig
import fr.acinq.lightning.channel.states.Closing
import fr.acinq.lightning.utils.currentTimestampMillis
import fr.acinq.phoenix.PhoenixGlobal
@@ -16,7 +16,6 @@
package fr.acinq.phoenix.android.services
import at.torch.android.BuildConfig
import android.content.Context
import androidx.work.CoroutineWorker
import androidx.work.ExistingPeriodicWorkPolicy
@@ -25,6 +24,7 @@ import androidx.work.OneTimeWorkRequest
import androidx.work.PeriodicWorkRequest
import androidx.work.WorkManager
import androidx.work.WorkerParameters
import at.torch.android.BuildConfig
import fr.acinq.phoenix.PhoenixGlobal
import fr.acinq.phoenix.android.BusinessManager
import fr.acinq.phoenix.data.StartBusinessResult
@@ -16,7 +16,6 @@
package fr.acinq.phoenix.android.services
import at.torch.android.BuildConfig
import android.content.Context
import androidx.work.CoroutineWorker
import androidx.work.ExistingPeriodicWorkPolicy
@@ -26,6 +25,7 @@ import androidx.work.Operation
import androidx.work.PeriodicWorkRequest
import androidx.work.WorkManager
import androidx.work.WorkerParameters
import at.torch.android.BuildConfig
import fr.acinq.lightning.utils.Connection
import fr.acinq.phoenix.PhoenixGlobal
import fr.acinq.phoenix.android.BusinessManager
@@ -16,8 +16,6 @@
package fr.acinq.phoenix.android.services
import at.torch.android.BuildConfig
import at.torch.android.TorchApplication
import android.content.Context
import android.os.Build
import androidx.work.CoroutineWorker
@@ -28,17 +26,19 @@ import androidx.work.Operation
import androidx.work.PeriodicWorkRequest
import androidx.work.WorkManager
import androidx.work.WorkerParameters
import at.torch.android.BuildConfig
import at.torch.android.TorchApplication
import fr.acinq.lightning.channel.states.Syncing
import fr.acinq.lightning.utils.Connection
import fr.acinq.phoenix.PhoenixGlobal
import fr.acinq.phoenix.android.BusinessManager
import fr.acinq.phoenix.data.StartBusinessResult
import fr.acinq.phoenix.managers.SeedManager
import fr.acinq.phoenix.data.LocalChannelInfo
import fr.acinq.phoenix.data.StartBusinessResult
import fr.acinq.phoenix.data.WalletId
import fr.acinq.phoenix.data.inFlightPaymentsCount
import fr.acinq.phoenix.managers.DataStoreManager
import fr.acinq.phoenix.managers.NodeParamsManager.Companion.chain
import fr.acinq.phoenix.managers.SeedManager
import fr.acinq.phoenix.utils.PlatformContext
import fr.acinq.phoenix.utils.SystemNotificationHelper
import fr.acinq.phoenix.utils.preferences.UserWalletMetadata
@@ -1,21 +1,21 @@
package fr.acinq.phoenix.android.services
import at.torch.android.BuildConfig
import at.torch.android.TorchApplication
import android.app.Service
import android.content.Intent
import android.os.Handler
import android.os.Looper
import androidx.core.app.NotificationManagerCompat
import at.torch.android.BuildConfig
import at.torch.android.TorchApplication
import fr.acinq.lightning.utils.Connection
import fr.acinq.phoenix.PhoenixBusiness
import fr.acinq.phoenix.PhoenixGlobal
import fr.acinq.phoenix.android.BusinessManager
import fr.acinq.phoenix.data.StartBusinessResult
import fr.acinq.phoenix.data.DecryptSeedResult
import fr.acinq.phoenix.data.StartBusinessResult
import fr.acinq.phoenix.data.WalletId
import fr.acinq.phoenix.managers.SeedManager
import fr.acinq.phoenix.managers.AppConnectionsDaemon
import fr.acinq.phoenix.managers.SeedManager
import fr.acinq.phoenix.utils.PlatformContext
import fr.acinq.phoenix.utils.SystemNotificationHelper
import fr.acinq.phoenix.utils.preferences.getByWalletIdOrDefault
@@ -1,6 +1,5 @@
package fr.acinq.phoenix.utils
import at.torch.android.BuildConfig
import android.content.Context
import android.graphics.Bitmap
import android.graphics.BitmapFactory
@@ -10,6 +9,7 @@ import android.net.Uri
import androidx.compose.ui.graphics.ImageBitmap
import androidx.compose.ui.graphics.asImageBitmap
import androidx.core.content.FileProvider
import at.torch.android.BuildConfig
import fr.acinq.lightning.utils.currentTimestampMillis
import org.slf4j.LoggerFactory
import java.io.File
@@ -16,9 +16,6 @@
package fr.acinq.phoenix.utils
import at.torch.android.BuildConfig
import at.torch.android.MainActivity
import at.torch.android.R
import android.Manifest
import android.app.Notification
import android.app.NotificationManager
@@ -33,6 +30,9 @@ import androidx.core.app.NotificationCompat
import androidx.core.app.NotificationManagerCompat
import androidx.core.app.TaskStackBuilder
import androidx.core.net.toUri
import at.torch.android.BuildConfig
import at.torch.android.MainActivity
import at.torch.android.R
import fr.acinq.bitcoin.Satoshi
import fr.acinq.lightning.LiquidityEvents
import fr.acinq.lightning.MilliSatoshi
@@ -19,7 +19,6 @@ package fr.acinq.phoenix.utils.converters
import android.annotation.SuppressLint
import android.text.format.DateUtils
import androidx.compose.runtime.Composable
import androidx.compose.ui.res.stringResource
import java.text.DateFormat
import java.text.SimpleDateFormat
import java.util.Date
@@ -16,9 +16,9 @@
package fr.acinq.phoenix.utils.extensions
import at.torch.android.MainActivity
import android.content.Context
import android.content.ContextWrapper
import at.torch.android.MainActivity
fun Context.findActivitySafe(): MainActivity? {
var context = this
@@ -20,9 +20,9 @@ import android.nfc.NdefMessage
import android.nfc.NfcAdapter
import android.nfc.Tag
import android.nfc.tech.IsoDep
import fr.acinq.lightning.utils.toByteVector
import com.machankura.compose.ui.composable.widgets.nfc.NfcState
import com.machankura.compose.ui.composable.widgets.nfc.NfcStateRepository
import fr.acinq.lightning.utils.toByteVector
import fr.acinq.phoenix.android.services.HceService
import org.slf4j.LoggerFactory
@@ -1,12 +1,12 @@
package at.torch.compose
import at.torch.compose.ui.composable.navigation.TorchNavHost
import at.torch.compose.ui.theme.TorchTheme
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material3.Surface
import androidx.compose.runtime.*
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.navigation.NavHostController
import at.torch.compose.ui.composable.navigation.TorchNavHost
import at.torch.compose.ui.theme.TorchTheme
import fr.acinq.phoenix.PhoenixGlobal
@Composable
@@ -7,7 +7,6 @@ import androidx.room3.immediateTransaction
import androidx.room3.useWriterConnection
import at.torch.compose.database.dao.MarmotKeyPackageBundleDao
import at.torch.compose.database.dao.MarmotKeyPackageDao
import at.torch.compose.database.model.MarmotKeyPackageBundle
import kotlin.time.Instant
val GENESIS_AT = Instant.fromEpochMilliseconds(1231006505000L)
@@ -1,12 +1,8 @@
package at.torch.compose.database.dao
import androidx.room3.Dao
import androidx.room3.Insert
import androidx.room3.OnConflictStrategy.Companion.IGNORE
import androidx.room3.Upsert
import at.torch.compose.database.model.MarmotKeyPackage
import at.torch.compose.database.model.MarmotKeyPackageBundle
import at.torch.compose.database.model.Mention
@Dao
interface MarmotKeyPackageBundleDao {
@@ -1,11 +1,8 @@
package at.torch.compose.database.dao
import androidx.room3.Dao
import androidx.room3.Insert
import androidx.room3.OnConflictStrategy.Companion.IGNORE
import androidx.room3.Upsert
import at.torch.compose.database.model.MarmotKeyPackage
import at.torch.compose.database.model.Mention
@Dao
interface MarmotKeyPackageDao {
@@ -1,5 +1,7 @@
package at.torch.compose.database.dao
import androidx.room3.Dao
import androidx.room3.Transaction
import at.torch.compose.database.GENESIS_AT
import at.torch.compose.database.model.BroadcastNostrEventReceipt
import at.torch.compose.database.model.BroadcastNostrEventRequest
@@ -19,8 +21,6 @@ import at.torch.compose.exceptions.GiftWrapImpersonationException
import at.torch.compose.exceptions.GiftWrapSealDecryptionException
import at.torch.compose.exceptions.GiftWrapUnsealException
import at.torch.compose.extensions.toHex
import androidx.room3.Dao
import androidx.room3.Transaction
import co.touchlab.kermit.Logger
import com.vitorpamplona.quartz.nip01Core.crypto.KeyPair
import com.vitorpamplona.quartz.nip01Core.metadata.MetadataEvent
@@ -1,5 +1,7 @@
package at.torch.compose.database.dao
import androidx.room3.Dao
import androidx.room3.Transaction
import at.torch.compose.database.GENESIS_AT
import at.torch.compose.database.model.BroadcastNostrEventRequest
import at.torch.compose.database.model.ChatMessageBroadcastNostrEventRequestRelation
@@ -10,8 +12,6 @@ import at.torch.compose.database.model.GiftWrapSeal
import at.torch.compose.database.model.NostrEvent
import at.torch.compose.database.model.Participant
import at.torch.compose.database.model.intermdiate.LocalChatRoom
import androidx.room3.Dao
import androidx.room3.Transaction
import co.touchlab.kermit.Logger
import com.vitorpamplona.quartz.nip01Core.core.HexKey
import com.vitorpamplona.quartz.nip01Core.tags.people.PTag
@@ -1,6 +1,5 @@
package at.torch.compose.database.dao
import at.torch.compose.database.GENESIS_AT
import androidx.room3.Dao
import androidx.room3.Insert
import androidx.room3.Query
@@ -1,9 +1,9 @@
package at.torch.compose.database.dao
import at.torch.compose.database.model.Zap
import androidx.room3.Dao
import androidx.room3.Query
import androidx.room3.Upsert
import at.torch.compose.database.model.Zap
import kotlinx.coroutines.flow.Flow
@Dao
@@ -1,12 +1,12 @@
package at.torch.compose.database.model
import at.torch.compose.database.model.traits.NostrEventEntity
import at.torch.compose.database.model.traits.TimestampedEntity
import at.torch.compose.database.model.traits.UnsignedNostrEventEntity
import androidx.room3.Entity
import androidx.room3.ForeignKey
import androidx.room3.Index
import androidx.room3.PrimaryKey
import at.torch.compose.database.model.traits.NostrEventEntity
import at.torch.compose.database.model.traits.TimestampedEntity
import at.torch.compose.database.model.traits.UnsignedNostrEventEntity
import com.vitorpamplona.quartz.nip01Core.core.HexKey
import kotlin.time.Clock
import kotlin.time.Instant
@@ -1,12 +1,12 @@
package at.torch.compose.database.model
import androidx.room3.Entity
import androidx.room3.ForeignKey
import androidx.room3.PrimaryKey
import at.torch.compose.database.model.traits.LocalStoreEntity
import at.torch.compose.database.model.traits.SoftDeletableEntity
import at.torch.compose.database.model.traits.TimestampedEntity
import at.torch.compose.database.model.traits.UserViewableEntity
import androidx.room3.Entity
import androidx.room3.ForeignKey
import androidx.room3.PrimaryKey
import kotlin.time.Clock
import kotlin.time.Instant
@@ -1,10 +1,10 @@
package at.torch.compose.database.model
import at.torch.compose.network.serialization.encodeToJsonString
import androidx.room3.Entity
import androidx.room3.ForeignKey
import androidx.room3.Index
import androidx.room3.PrimaryKey
import at.torch.compose.network.serialization.encodeToJsonString
import com.vitorpamplona.quartz.nip01Core.core.HexKey
import com.vitorpamplona.quartz.utils.sha256.sha256
import io.ktor.utils.io.core.toByteArray
@@ -27,7 +27,6 @@ import kotlinx.serialization.json.JsonPrimitive
import kotlinx.serialization.json.buildJsonObject
import kotlinx.serialization.json.put
import kotlinx.serialization.json.putJsonArray
import kotlin.String
import kotlin.time.Clock
import kotlin.time.Instant
@@ -1,10 +1,10 @@
package at.torch.compose.database.model
import at.torch.compose.database.model.traits.NostrEventEntity
import at.torch.compose.database.model.traits.TimestampedEntity
import androidx.room3.Entity
import androidx.room3.ForeignKey
import androidx.room3.Index
import at.torch.compose.database.model.traits.NostrEventEntity
import at.torch.compose.database.model.traits.TimestampedEntity
import com.vitorpamplona.quartz.nip01Core.core.HexKey
import kotlin.time.Clock
import kotlin.time.Instant
@@ -1,5 +1,9 @@
package at.torch.compose.database.model
import androidx.room3.Entity
import androidx.room3.ForeignKey
import androidx.room3.Index
import androidx.room3.PrimaryKey
import at.torch.compose.database.model.traits.BroadcastableEntity
import at.torch.compose.database.model.traits.LocalStoreEntity
import at.torch.compose.database.model.traits.NostrEventEntity
@@ -8,10 +12,6 @@ import at.torch.compose.database.model.traits.ReplyingToEntity
import at.torch.compose.database.model.traits.SoftDeletableEntity
import at.torch.compose.database.model.traits.TimestampedEntity
import at.torch.compose.database.model.traits.UserViewableEntity
import androidx.room3.Entity
import androidx.room3.ForeignKey
import androidx.room3.Index
import androidx.room3.PrimaryKey
import com.vitorpamplona.quartz.nip01Core.core.HexKey
import kotlin.time.Clock
import kotlin.time.Instant
@@ -1,7 +1,5 @@
package at.torch.compose.database.model
import at.torch.compose.ui.composable.navigation.routes.NostrEventDetailRoute
import at.torch.compose.ui.composable.widgets.profile.ProfileAvatar
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
@@ -1,11 +1,11 @@
package at.torch.compose.database.model
import at.torch.compose.database.model.traits.OptionalNostrEventEntity
import at.torch.compose.database.model.traits.TimestampedEntity
import androidx.room3.Entity
import androidx.room3.ForeignKey
import androidx.room3.Index
import androidx.room3.PrimaryKey
import at.torch.compose.database.model.traits.OptionalNostrEventEntity
import at.torch.compose.database.model.traits.TimestampedEntity
import com.vitorpamplona.quartz.nip01Core.core.HexKey
import kotlin.time.Clock
import kotlin.time.Instant
@@ -5,7 +5,6 @@ import androidx.room3.Index
import androidx.room3.PrimaryKey
import com.vitorpamplona.quartz.nip01Core.core.HexKey
import com.vitorpamplona.quartz.nip01Core.core.Kind
import kotlin.String
import kotlin.time.Clock
import kotlin.time.Instant
@@ -1,7 +1,5 @@
package at.torch.compose.database.model.intermdiate
import at.torch.compose.ui.composable.widgets.profile.ProfileAvatar
import at.torch.compose.extensions.toFormattedTimeAndDateString
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
@@ -17,6 +15,7 @@ import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp
import androidx.room3.Embedded
import androidx.room3.Relation
import at.torch.compose.extensions.toFormattedTimeAndDateString
data class LocalInReplyToNostrEvent(
@Embedded val inReplyToRelation: at.torch.compose.database.model.InReplyToRelation,
@@ -1,8 +1,5 @@
package at.torch.compose.database.model.intermdiate
import at.torch.compose.ui.composable.widgets.content.RichContent
import at.torch.compose.ui.composable.widgets.profile.ProfileAvatar
import at.torch.compose.extensions.toFormattedTimeAndDateString
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
@@ -16,6 +13,7 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import androidx.room3.Embedded
import androidx.room3.Relation
import at.torch.compose.extensions.toFormattedTimeAndDateString
import com.vitorpamplona.quartz.nip01Core.core.HexKey
data class LocalNostrEvent(
@@ -1,9 +1,9 @@
package at.torch.compose.database.model.intermdiate
import at.torch.compose.database.model.Post
import at.torch.compose.database.model.Profile
import androidx.room3.Embedded
import androidx.room3.Relation
import at.torch.compose.database.model.Post
import at.torch.compose.database.model.Profile
data class LocalPost(
@Embedded val post: Post,
@@ -1,11 +1,5 @@
package at.torch.compose.database.model.intermdiate
import at.torch.compose.database.model.NostrEvent
import at.torch.compose.database.model.Profile
import at.torch.compose.database.model.QuotedRelation
import at.torch.compose.ui.composable.widgets.content.RichContent
import at.torch.compose.ui.composable.widgets.profile.ProfileAvatar
import at.torch.compose.extensions.toFormattedTimeAndDateString
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
@@ -21,6 +15,7 @@ import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.room3.Embedded
import androidx.room3.Relation
import at.torch.compose.extensions.toFormattedTimeAndDateString
import com.vitorpamplona.quartz.nip01Core.core.HexKey
data class LocalQuotedNostrEvent(
@@ -1,7 +1,5 @@
package at.torch.compose.database.model.intermdiate
import at.torch.compose.ui.composable.widgets.profile.ProfileAvatar
import at.torch.compose.extensions.toFormattedTimeAndDateString
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
@@ -17,6 +15,7 @@ import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp
import androidx.room3.Embedded
import androidx.room3.Relation
import at.torch.compose.extensions.toFormattedTimeAndDateString
data class LocalRepostedNostrEvent(
@Embedded val repostedRelation: at.torch.compose.database.model.RepostedRelation,
@@ -1,10 +1,6 @@
package at.torch.compose.database.repository
import at.torch.compose.database.GENESIS_AT
import at.torch.compose.database.model.ChatMessage
import at.torch.compose.database.model.GiftWrapPayload
import co.touchlab.kermit.Logger
import com.vitorpamplona.quartz.marmot.mls.group.MlsGroupState
import com.vitorpamplona.quartz.nip01Core.core.Event
import com.vitorpamplona.quartz.nip01Core.core.HexKey
import com.vitorpamplona.quartz.nip01Core.core.Kind
@@ -1,6 +1,5 @@
package at.torch.compose.database.repository
import at.torch.compose.database.model.MarmotKeyPackageBundle
import at.torch.compose.database.model.UnsignedNostrEvent
import at.torch.compose.nostr.Relays
import co.touchlab.kermit.Logger
@@ -8,7 +7,6 @@ import com.vitorpamplona.quartz.marmot.mip00KeyPackages.KeyPackageEvent
import com.vitorpamplona.quartz.marmot.mip00KeyPackages.KeyPackageRelayListEvent
import com.vitorpamplona.quartz.marmot.mip00KeyPackages.KeyPackageRotationManager.Companion.KEY_PACKAGE_LIFETIME_SECONDS
import com.vitorpamplona.quartz.marmot.mip00KeyPackages.KeyPackageUtils
import com.vitorpamplona.quartz.marmot.mls.codec.TlsWriter
import com.vitorpamplona.quartz.marmot.mls.crypto.Ed25519
import com.vitorpamplona.quartz.marmot.mls.crypto.MlsCryptoProvider
import com.vitorpamplona.quartz.marmot.mls.crypto.X25519
@@ -57,8 +55,6 @@ import kotlinx.coroutines.delay
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.sync.Mutex
import kotlinx.coroutines.sync.withLock
import kotlin.collections.emptyMap
import kotlin.collections.plus
import kotlin.io.encoding.Base64
import kotlin.time.Clock
import kotlin.time.Instant
@@ -1,6 +1,5 @@
package at.torch.compose.extensions
import at.torch.compose.exceptions.InvalidNostrPrivateKeyException
import co.touchlab.kermit.Logger
import com.vitorpamplona.quartz.nip19Bech32.bech32.Bech32
import fr.acinq.bitcoin.PrivateKey
@@ -1,7 +1,5 @@
package at.torch.compose.managers
import at.torch.compose.database.builder.getRoomDatabase
class AuxDatabaseManager(
torchGlobal: at.torch.compose.TorchGlobal
) {
@@ -1,21 +1,6 @@
package at.torch.compose.network.relays
import at.torch.compose.exceptions.NetworkException
import at.torch.compose.exceptions.NostrNoticeException
import androidx.annotation.VisibleForTesting
import kotlin.time.Duration.Companion.milliseconds
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.FlowPreview
import kotlinx.coroutines.IO
import kotlinx.coroutines.flow.MutableSharedFlow
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.asStateFlow
import kotlinx.coroutines.flow.first
import kotlinx.coroutines.flow.getAndUpdate
import kotlinx.coroutines.flow.timeout
import kotlinx.coroutines.flow.transform
import kotlinx.coroutines.launch
import at.torch.compose.network.dto.toRelayDTO
import at.torch.compose.network.sockets.filterByEventId
import at.torch.compose.network.sockets.filterBySubscriptionId
@@ -27,11 +12,24 @@ import com.vitorpamplona.quartz.nip01Core.relay.normalizer.NormalizedRelayUrl
import com.vitorpamplona.quartz.nip01Core.relay.normalizer.displayUrl
import com.vitorpamplona.quartz.nip77Negentropy.NegCloseCmd
import com.vitorpamplona.quartz.nip77Negentropy.NegOpenCmd
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.FlowPreview
import kotlinx.coroutines.IO
import kotlinx.coroutines.coroutineScope
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.MutableSharedFlow
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.asStateFlow
import kotlinx.coroutines.flow.first
import kotlinx.coroutines.flow.getAndUpdate
import kotlinx.coroutines.flow.timeout
import kotlinx.coroutines.flow.transform
import kotlinx.coroutines.flow.transformWhile
import kotlinx.coroutines.launch
import kotlinx.coroutines.sync.Mutex
import kotlinx.coroutines.sync.withLock
import kotlin.time.Duration.Companion.milliseconds
/**
* As seen in Primal
@@ -1,15 +1,7 @@
package at.torch.compose.network.relays
import co.touchlab.kermit.Logger
import kotlinx.coroutines.CancellationException
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.IO
import kotlinx.coroutines.Job
import kotlinx.coroutines.launch
import kotlinx.coroutines.sync.Mutex
import kotlinx.coroutines.sync.withLock
import at.torch.compose.network.dto.mapToRelayDTO
import co.touchlab.kermit.Logger
import com.vitorpamplona.quartz.nip01Core.core.HexKey
import com.vitorpamplona.quartz.nip01Core.relay.commands.toRelay.CloseCmd
import com.vitorpamplona.quartz.nip01Core.relay.commands.toRelay.ReqCmd
@@ -17,9 +9,17 @@ import com.vitorpamplona.quartz.nip77Negentropy.NegCloseCmd
import com.vitorpamplona.quartz.nip77Negentropy.NegOpenCmd
import fr.acinq.phoenix.data.ActiveWallet
import fr.acinq.phoenix.managers.nostrPublicKey
import kotlinx.coroutines.CancellationException
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.IO
import kotlinx.coroutines.Job
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.flow.collectLatest
import kotlinx.coroutines.launch
import kotlinx.coroutines.sync.Mutex
import kotlinx.coroutines.sync.withLock
/**
@@ -1,8 +1,5 @@
package at.torch.compose.network.sockets
import at.torch.compose.exceptions.NetworkException
import at.torch.compose.exceptions.NostrNoticeException
sealed class NostrIncomingMessage {
data class EventMessage(
@@ -1,6 +1,5 @@
package at.torch.compose.network.sockets
import at.torch.compose.network.serialization.SocketsJson
import at.torch.compose.network.serialization.decodeFromStringOrNull
import co.touchlab.kermit.Logger
import com.vitorpamplona.quartz.nip01Core.core.Event
@@ -1,8 +1,8 @@
package at.torch.compose.network.sockets
import kotlin.coroutines.cancellation.CancellationException
import kotlinx.coroutines.flow.SharedFlow
import kotlinx.serialization.json.JsonObject
import kotlin.coroutines.cancellation.CancellationException
interface NostrSocketClient {
val socketUrl: String
@@ -1,6 +1,5 @@
package at.torch.compose.network.sockets
import at.torch.compose.exceptions.NetworkException
import co.touchlab.kermit.Logger
import io.ktor.client.HttpClient
import io.ktor.client.plugins.websocket.webSocketSession
@@ -10,9 +9,6 @@ import io.ktor.websocket.WebSocketSession
import io.ktor.websocket.close
import io.ktor.websocket.readReason
import io.ktor.websocket.readText
import kotlin.coroutines.cancellation.CancellationException
import kotlin.time.Duration.Companion.milliseconds
import kotlin.uuid.Uuid
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.IO
@@ -32,7 +28,10 @@ import okio.Inflater
import okio.InflaterSource
import okio.buffer
import okio.use
import kotlin.coroutines.cancellation.CancellationException
import kotlin.time.Duration.Companion.milliseconds
import kotlin.uuid.ExperimentalUuidApi
import kotlin.uuid.Uuid
@OptIn(ExperimentalUuidApi::class)
internal class NostrSocketClientImpl(
@@ -1,8 +1,5 @@
package at.torch.compose.repository
import at.torch.compose.database.model.UnsignedNostrEvent
import at.torch.compose.exceptions.SigningKeyNotFoundException
import at.torch.compose.exceptions.SigningRejectedException
import at.torch.compose.cryptography.signOrThrow
import at.torch.compose.network.asClientTag
import com.vitorpamplona.quartz.nip19Bech32.toNsec
@@ -1,6 +1,5 @@
package at.torch.compose.repository
import at.torch.compose.network.dto.RelayDTO
import co.touchlab.kermit.Logger
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
@@ -1,7 +1,6 @@
package at.torch.compose.ui.composable
import androidx.compose.foundation.layout.Arrangement
import at.torch.compose.ui.composable.widgets.LoadingDataIndicator
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
@@ -30,8 +29,6 @@ import at.torch.compose.repository.ChatRepository
import at.torch.compose.repository.NostrRepository
import at.torch.compose.ui.composable.navigation.routes.Route
import at.torch.compose.ui.view.model.ChatRoomCreationViewModel
import at.torch.compose.ui.view.state.form.TextField
import com.vitorpamplona.quartz.nip01Core.core.HexKey
import fr.acinq.phoenix.data.ActiveWallet
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow
@@ -1,9 +1,5 @@
package at.torch.compose.ui.composable
import at.torch.compose.database.model.Profile
import at.torch.compose.ui.theme.BluePill
import at.torch.compose.ui.theme.RedPill
import at.torch.compose.ui.view.model.CreateProfileViewModel
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Spacer
@@ -36,6 +32,7 @@ import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.lifecycle.viewmodel.compose.viewModel
import at.torch.compose.repository.MarmotRepository
import at.torch.compose.ui.view.model.CreateProfileViewModel
import at.torch.compose.ui.view.state.CreateProfileUIState
@OptIn(ExperimentalMaterial3ExpressiveApi::class)
@@ -1,6 +1,5 @@
package at.torch.compose.ui.composable
import at.torch.compose.ui.composable.widgets.LoadingDataIndicator
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
@@ -1,11 +1,5 @@
package at.torch.compose.ui.composable
import at.torch.compose.database.model.NostrEvent
import at.torch.compose.database.model.Profile
import at.torch.compose.database.model.intermdiate.LocalNostrEvent
import at.torch.compose.ui.composable.widgets.LoadingDataIndicator
import at.torch.compose.ui.composable.widgets.detail.MetadataEventDetail
import at.torch.compose.ui.composable.widgets.detail.TextNoteEventDetail
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxSize
@@ -1,7 +1,5 @@
package at.torch.compose.ui.composable
import at.torch.compose.ui.composable.navigation.routes.NostrEventDetailRoute
import at.torch.compose.ui.composable.widgets.feed.ListView
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
@@ -51,6 +49,7 @@ import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.lifecycle.viewmodel.compose.viewModel
import at.torch.compose.ui.composable.widgets.feed.ListView
import kotlinx.coroutines.launch
@OptIn(ExperimentalMaterial3Api::class, ExperimentalMaterial3ExpressiveApi::class)
@@ -1,8 +1,5 @@
package at.torch.compose.ui.composable
import at.torch.compose.ui.composable.navigation.routes.NostrEventDetailRoute
import at.torch.compose.ui.composable.navigation.routes.SearchResultRoute
import at.torch.compose.ui.composable.widgets.profile.ProfileAvatar
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
@@ -1,7 +1,5 @@
package at.torch.compose.ui.composable
import at.torch.compose.ui.composable.widgets.LoadingDataIndicator
import at.torch.compose.ui.composable.widgets.wallet.WalletsSelector
import androidx.compose.foundation.layout.*
import androidx.compose.material3.HorizontalDivider
import androidx.compose.material3.MaterialTheme
@@ -27,7 +25,6 @@ import fr.acinq.phoenix.utils.preferences.UserPrefs
import fr.acinq.phoenix.utils.preferences.UserWalletMetadata
import fr.acinq.phoenix.utils.preferences.getByWalletIdOrDefault
import kotlinx.coroutines.flow.first
import kotlin.collections.get
@Composable
fun SovereignWalletStartupScreen(
@@ -1,6 +1,5 @@
package at.torch.compose.ui.composable
import at.torch.compose.ui.composable.widgets.LoadingDataIndicator
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Spacer
@@ -1,6 +1,5 @@
package at.torch.compose.ui.composable
import at.torch.compose.ui.composable.widgets.LoadingDataIndicator
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Spacer
@@ -1,6 +1,5 @@
package at.torch.compose.ui.composable
import at.torch.compose.ui.composable.widgets.LoadingDataIndicator
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Spacer
@@ -1,6 +1,5 @@
package at.torch.compose.ui.composable
import at.torch.compose.ui.composable.widgets.LoadingDataIndicator
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Spacer
@@ -1,6 +1,5 @@
package at.torch.compose.ui.composable
import at.torch.compose.ui.composable.widgets.LoadingDataIndicator
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Spacer
@@ -1,6 +1,5 @@
package at.torch.compose.ui.composable
import at.torch.compose.ui.composable.widgets.LoadingDataIndicator
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Spacer
@@ -1,15 +1,5 @@
package at.torch.compose.ui.composable
import at.torch.compose.database.model.Mention
import at.torch.compose.database.model.NostrEvent
import at.torch.compose.database.model.Profile
import at.torch.compose.database.model.intermdiate.LocalMention
import at.torch.compose.database.model.intermdiate.LocalNostrEvent
import at.torch.compose.database.model.intermdiate.LocalProfileWithFollowing
import at.torch.compose.ui.composable.widgets.LoadingDataIndicator
import at.torch.compose.ui.composable.widgets.content.RichContent
import at.torch.compose.ui.composable.widgets.profile.ProfileAvatar
import at.torch.compose.extensions.toFormattedTimeAndDateString
import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
@@ -49,6 +39,7 @@ import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.lifecycle.viewmodel.compose.viewModel
import at.torch.compose.extensions.toFormattedTimeAndDateString
import com.vitorpamplona.quartz.nip01Core.core.HexKey
import com.vitorpamplona.quartz.nip10Notes.TextNoteEvent
import kotlin.time.Clock
@@ -1,24 +1,23 @@
package at.torch.compose.ui.composable.navigation
import androidx.compose.runtime.Composable
import androidx.navigation.NavHostController
import androidx.navigation.compose.NavHost
import androidx.navigation.compose.composable
import androidx.navigation.toRoute
import at.torch.compose.ui.composable.navigation.routes.WriteNewNoteRoute
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material3.Surface
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.lifecycle.compose.LocalLifecycleOwner
import androidx.lifecycle.viewmodel.compose.viewModel
import androidx.navigation.NavHostController
import androidx.navigation.compose.NavHost
import androidx.navigation.compose.composable
import androidx.navigation.toRoute
import at.torch.compose.database.repository.DatabaseMarmotRepository
import at.torch.compose.ui.composable.ChatRoomCreationScreen
import at.torch.compose.ui.composable.ChatRoomDetailScreen
import at.torch.compose.ui.composable.HomeScreen
import at.torch.compose.ui.composable.navigation.routes.ChatRoomCreationRoute
import at.torch.compose.ui.composable.navigation.routes.WriteNewNoteRoute
import co.touchlab.kermit.Logger
import fr.acinq.phoenix.PhoenixGlobal
import kotlinx.coroutines.CoroutineExceptionHandler
@@ -23,14 +23,10 @@ import androidx.compose.foundation.combinedClickable
import androidx.compose.foundation.interaction.MutableInteractionSource
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.ButtonDefaults
import androidx.compose.material3.LocalContentColor
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.ProvideTextStyle
import androidx.compose.material3.Surface
import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.runtime.getValue
import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
@@ -1,6 +1,5 @@
package at.torch.compose.ui.composable.widgets.content
import at.torch.compose.ui.composable.widgets.profile.ProfileAvatar
import androidx.compose.foundation.BorderStroke
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Column
@@ -9,7 +8,6 @@ import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.width
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material3.CircularProgressIndicator
@@ -1,6 +1,5 @@
package at.torch.compose.ui.composable.widgets.content
import at.torch.compose.ui.composable.widgets.profile.ProfileAvatar
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
@@ -1,9 +1,5 @@
package at.torch.compose.ui.composable.widgets.content
import at.torch.compose.database.model.NostrEvent
import at.torch.compose.database.model.Profile
import at.torch.compose.database.model.QuotedRelation
import at.torch.compose.database.model.intermdiate.LocalQuotedNostrEvent
import androidx.compose.foundation.BorderStroke
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Row
@@ -1,11 +1,5 @@
package at.torch.compose.ui.composable.widgets.content
import at.torch.compose.database.model.Mention
import at.torch.compose.database.model.NostrEvent
import at.torch.compose.database.model.Profile
import at.torch.compose.database.model.QuotedRelation
import at.torch.compose.database.model.intermdiate.LocalMention
import at.torch.compose.database.model.intermdiate.LocalQuotedNostrEvent
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
@@ -1,11 +1,5 @@
package at.torch.compose.ui.composable.widgets.detail
import at.torch.compose.database.model.NostrEvent
import at.torch.compose.database.model.Profile
import at.torch.compose.database.model.intermdiate.LocalNostrEvent
import at.torch.compose.ui.composable.widgets.content.RichContent
import at.torch.compose.ui.composable.widgets.profile.ProfileAvatar
import at.torch.compose.extensions.toFormattedTimeAndDateString
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
@@ -50,6 +44,7 @@ import androidx.compose.ui.input.nestedscroll.nestedScroll
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.lifecycle.viewmodel.compose.viewModel
import at.torch.compose.extensions.toFormattedTimeAndDateString
import com.vitorpamplona.quartz.nip01Core.core.HexKey
import com.vitorpamplona.quartz.nip10Notes.TextNoteEvent
@@ -1,13 +1,5 @@
package at.torch.compose.ui.composable.widgets.feed
import at.torch.compose.database.model.InReplyToRelation
import at.torch.compose.database.model.NostrEvent
import at.torch.compose.database.model.Profile
import at.torch.compose.database.model.RepostedRelation
import at.torch.compose.database.model.intermdiate.LocalInReplyToNostrEvent
import at.torch.compose.database.model.intermdiate.LocalNostrEvent
import at.torch.compose.database.model.intermdiate.LocalRepostedNostrEvent
import at.torch.compose.extensions.toFormattedTimeAndDateString
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
@@ -26,6 +18,7 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import at.torch.compose.extensions.toFormattedTimeAndDateString
import com.vitorpamplona.quartz.nip01Core.core.HexKey
import com.vitorpamplona.quartz.nip10Notes.TextNoteEvent
import com.vitorpamplona.quartz.nip18Reposts.RepostEvent
@@ -1,16 +1,5 @@
package at.torch.compose.ui.composable.widgets.feed
import at.torch.compose.database.model.InReplyToRelation
import at.torch.compose.database.model.Mention
import at.torch.compose.database.model.NostrEvent
import at.torch.compose.database.model.Profile
import at.torch.compose.database.model.QuotedRelation
import at.torch.compose.database.model.intermdiate.LocalInReplyToNostrEvent
import at.torch.compose.database.model.intermdiate.LocalMention
import at.torch.compose.database.model.intermdiate.LocalQuotedNostrEvent
import at.torch.compose.ui.composable.widgets.content.RichContent
import at.torch.compose.ui.composable.widgets.profile.ProfileAvatar
import at.torch.compose.extensions.toFormattedTimeAndDateString
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
@@ -33,6 +22,7 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import at.torch.compose.extensions.toFormattedTimeAndDateString
import com.vitorpamplona.quartz.nip01Core.core.HexKey
@OptIn(ExperimentalMaterial3ExpressiveApi::class)
@@ -1,7 +1,5 @@
package at.torch.compose.ui.composable.widgets.profile
import at.torch.compose.database.model.Profile
import at.torch.compose.ui.composable.widgets.coil.forwardingPainter
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.shape.CircleShape
@@ -16,7 +16,6 @@
package at.torch.compose.ui.composable.widgets.wallet
import at.torch.compose.ui.composable.widgets.LoadingDataIndicator
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.IntrinsicSize
@@ -3,8 +3,8 @@ package at.torch.compose.ui.theme
import androidx.compose.foundation.isSystemInDarkTheme
import androidx.compose.material3.ColorScheme
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.lightColorScheme
import androidx.compose.material3.darkColorScheme
import androidx.compose.material3.lightColorScheme
import androidx.compose.runtime.Composable
import androidx.compose.runtime.Immutable
import androidx.compose.ui.graphics.Color
@@ -1,9 +1,5 @@
package com.example.ui.theme
import androidx.compose.material3.Typography
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.font.FontFamily
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.sp
val AuxTypography = Typography()
@@ -1,8 +1,5 @@
package at.torch.compose.ui.view.model
import at.torch.compose.database.model.NegentropySynchronizeRequest
import at.torch.compose.database.model.types.SynchronizationFilter
import at.torch.compose.extensions.toFormattedTimeAndDateString
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.BoxWithConstraints
import androidx.compose.foundation.layout.Column
@@ -45,6 +42,7 @@ import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.viewModelScope
import androidx.lifecycle.viewmodel.initializer
import androidx.lifecycle.viewmodel.viewModelFactory
import at.torch.compose.extensions.toFormattedTimeAndDateString
import co.touchlab.kermit.Logger
import com.vitorpamplona.quartz.nip17Dm.settings.ChatMessageRelayListEvent
import com.vitorpamplona.quartz.nip59Giftwrap.wraps.GiftWrapEvent
@@ -1,16 +1,16 @@
package at.torch.compose.ui.view.model
import at.torch.compose.repository.NostrRepository
import at.torch.compose.ui.view.state.CreateProfileUIState
import androidx.compose.runtime.MutableState
import androidx.compose.runtime.mutableStateOf
import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.viewModelScope
import androidx.lifecycle.viewmodel.initializer
import androidx.lifecycle.viewmodel.viewModelFactory
import at.torch.compose.ui.view.state.form.CreateProfileFormState
import androidx.lifecycle.viewModelScope
import at.torch.compose.repository.MarmotRepository
import at.torch.compose.repository.NostrRepository
import at.torch.compose.ui.view.state.CreateProfileUIState
import at.torch.compose.ui.view.state.form.CreateProfileFormState
import co.touchlab.kermit.Logger
import fr.acinq.bitcoin.Chain
import fr.acinq.bitcoin.MnemonicCode
@@ -1,8 +1,5 @@
package at.torch.compose.ui.view.model
import at.torch.compose.database.model.NegentropySynchronizeRequest
import at.torch.compose.ui.composable.navigation.routes.NostrEventDetailRoute
import at.torch.compose.ui.composable.widgets.feed.ListView
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Spacer
@@ -27,6 +24,7 @@ import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.viewModelScope
import androidx.lifecycle.viewmodel.initializer
import androidx.lifecycle.viewmodel.viewModelFactory
import at.torch.compose.ui.composable.widgets.feed.ListView
import co.touchlab.kermit.Logger
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.IO
@@ -1,6 +1,5 @@
package at.torch.compose.ui.view.model
import at.torch.compose.database.model.NegentropySynchronizeRequest
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Spacer
@@ -1,6 +1,5 @@
package at.torch.compose.ui.view.model
import at.torch.compose.database.model.NegentropySynchronizeRequest
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Spacer
@@ -1,6 +1,5 @@
package at.torch.compose.ui.view.model
import at.torch.compose.database.model.types.SynchronizationFilter
import androidx.compose.foundation.pager.PagerState
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
@@ -12,16 +11,7 @@ import androidx.lifecycle.viewmodel.initializer
import androidx.lifecycle.viewmodel.viewModelFactory
import co.touchlab.kermit.Logger
import com.vitorpamplona.quartz.nip01Core.core.HexKey
import com.vitorpamplona.quartz.nip02FollowList.ContactListEvent
import com.vitorpamplona.quartz.nip04Dm.messages.PrivateDmEvent
import com.vitorpamplona.quartz.nip10Notes.TextNoteEvent
import com.vitorpamplona.quartz.nip18Reposts.RepostEvent
import com.vitorpamplona.quartz.nip25Reactions.ReactionEvent
import com.vitorpamplona.quartz.nip57Zaps.LnZapEvent
import com.vitorpamplona.quartz.nip59Giftwrap.wraps.GiftWrapEvent
import com.vitorpamplona.quartz.nip65RelayList.AdvertisedRelayListEvent
import com.vitorpamplona.quartz.nip96FileStorage.config.FileServersEvent
import com.vitorpamplona.quartz.nipB7Blossom.BlossomServersEvent
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.IO
import kotlinx.coroutines.launch
@@ -1,9 +1,5 @@
package at.torch.compose.ui.view.model
import at.torch.compose.database.model.NegentropySynchronizeRequest
import at.torch.compose.database.model.types.SynchronizationFilter
import at.torch.compose.ui.composable.navigation.routes.NostrEventDetailRoute
import at.torch.compose.ui.composable.widgets.feed.ListView
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Spacer
@@ -28,6 +24,7 @@ import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.viewModelScope
import androidx.lifecycle.viewmodel.initializer
import androidx.lifecycle.viewmodel.viewModelFactory
import at.torch.compose.ui.composable.widgets.feed.ListView
import co.touchlab.kermit.Logger
import com.vitorpamplona.quartz.nip10Notes.TextNoteEvent
import com.vitorpamplona.quartz.nip18Reposts.RepostEvent
@@ -1,7 +1,5 @@
package at.torch.compose.ui.view.model
import at.torch.compose.database.model.UnsignedNostrEvent
import at.torch.compose.database.model.types.SynchronizationFilter
import androidx.compose.foundation.pager.PagerState
import androidx.compose.runtime.MutableState
import androidx.compose.runtime.getValue
@@ -1,7 +1,5 @@
package at.torch.compose.ui.view.model
import at.torch.compose.database.model.SynchronizeNostrEventRequest
import at.torch.compose.database.model.types.SynchronizationFilter
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.setValue
@@ -1,6 +1,5 @@
package at.torch.compose.ui.view.model
import at.torch.compose.database.model.NostrEvent
import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.viewmodel.initializer
@@ -1,7 +1,5 @@
package at.torch.compose.ui.view.model
import at.torch.compose.database.model.SynchronizeNostrEventRequest
import at.torch.compose.database.model.types.SynchronizationFilter
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.setValue
@@ -12,14 +10,6 @@ import androidx.lifecycle.viewmodel.initializer
import androidx.lifecycle.viewmodel.viewModelFactory
import co.touchlab.kermit.Logger
import com.vitorpamplona.quartz.nip01Core.metadata.MetadataEvent
import com.vitorpamplona.quartz.nip10Notes.TextNoteEvent
import com.vitorpamplona.quartz.nip18Reposts.RepostEvent
import com.vitorpamplona.quartz.nip23LongContent.LongTextNoteEvent
import com.vitorpamplona.quartz.nip25Reactions.ReactionEvent
import com.vitorpamplona.quartz.nip57Zaps.LnZapEvent
import com.vitorpamplona.quartz.nip68Picture.PictureEvent
import com.vitorpamplona.quartz.nip71Video.VideoNormalEvent
import com.vitorpamplona.quartz.nip71Video.VideoShortEvent
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.IO
import kotlinx.coroutines.flow.distinctUntilChanged
@@ -1,13 +1,12 @@
package at.torch.compose.ui.view.model
import at.torch.compose.ui.view.state.form.SignInToProfileFormState
import androidx.compose.runtime.MutableState
import androidx.compose.runtime.mutableStateOf
import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.viewModelScope
import androidx.lifecycle.viewmodel.initializer
import androidx.lifecycle.viewmodel.viewModelFactory
import androidx.lifecycle.viewModelScope
import co.touchlab.kermit.Logger
import com.vitorpamplona.quartz.nip19Bech32.Nip19Parser
import com.vitorpamplona.quartz.nip19Bech32.entities.Entity
@@ -1,8 +1,5 @@
package at.torch.compose.ui.view.model
import at.torch.compose.extensions.getShowIntroFlow
import at.torch.compose.extensions.platformStartupLogic
import at.torch.compose.extensions.schedulePlatformLogic
import androidx.compose.runtime.mutableStateOf
import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
@@ -1,6 +1,5 @@
package at.torch.compose.ui.view.model
import at.torch.compose.extensions.getGlobalPrefs
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.setValue
@@ -34,7 +33,6 @@ import kotlinx.coroutines.flow.asStateFlow
import kotlinx.coroutines.flow.first
import kotlinx.coroutines.flow.stateIn
import kotlinx.coroutines.launch
import kotlin.String
sealed class WritingSeedState {
data object Init : WritingSeedState()
@@ -1,15 +1,10 @@
package at.torch.compose.ui.view.model
import at.torch.compose.database.model.BroadcastNostrEventRequest
import at.torch.compose.database.model.SynchronizeNostrEventRequest
import at.torch.compose.database.model.types.SynchronizationFilter
import at.torch.compose.network.relays.RelaysSocketManager
import at.torch.compose.network.sockets.NostrSocketClientFactory
import at.torch.compose.network.dto.toRelayDTO
import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.viewmodel.initializer
import androidx.lifecycle.viewmodel.viewModelFactory
import at.torch.compose.network.dto.toRelayDTO
import co.touchlab.kermit.Logger
import com.vitorpamplona.negentropy.Negentropy
import com.vitorpamplona.negentropy.storage.StorageVector
@@ -1,14 +1,12 @@
package at.torch.compose.ui.view.model
import at.torch.compose.database.model.SynchronizeNostrEventRequest
import at.torch.compose.database.model.types.SynchronizationFilter
import androidx.compose.runtime.MutableState
import androidx.compose.runtime.mutableStateOf
import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.viewModelScope
import androidx.lifecycle.viewmodel.initializer
import androidx.lifecycle.viewmodel.viewModelFactory
import androidx.lifecycle.viewModelScope
import co.touchlab.kermit.Logger
import com.vitorpamplona.quartz.nip01Core.metadata.MetadataEvent
import com.vitorpamplona.quartz.nip02FollowList.ContactListEvent
@@ -1,17 +1,16 @@
package at.torch.compose.ui.view.model
import androidx.compose.runtime.MutableState
import androidx.compose.runtime.mutableStateOf
import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.viewmodel.initializer
import androidx.lifecycle.viewmodel.viewModelFactory
import at.torch.compose.ui.view.state.form.WriteNewNoteFormState
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateListOf
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.setValue
import androidx.compose.ui.text.TextRange
import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.viewModelScope
import androidx.lifecycle.viewmodel.initializer
import androidx.lifecycle.viewmodel.viewModelFactory
import co.touchlab.kermit.Logger
import com.vitorpamplona.quartz.nip01Core.core.HexKey
import com.vitorpamplona.quartz.nip19Bech32.entities.NProfile
@@ -2,7 +2,13 @@ package fr.acinq.phoenixd.conf
import fr.acinq.bitcoin.Chain
import fr.acinq.bitcoin.PublicKey
import fr.acinq.lightning.*
import fr.acinq.lightning.CltvExpiryDelta
import fr.acinq.lightning.DefaultSwapInParams
import fr.acinq.lightning.InvoiceDefaultRoutingFees
import fr.acinq.lightning.NodeUri
import fr.acinq.lightning.SwapInParams
import fr.acinq.lightning.TrampolineFees
import fr.acinq.lightning.WalletParams
import fr.acinq.lightning.utils.msat
import fr.acinq.lightning.utils.sat
@@ -22,8 +22,13 @@ import androidx.compose.runtime.compositionLocalOf
import androidx.compose.runtime.staticCompositionLocalOf
import androidx.navigation.NavController
import fr.acinq.phoenix.controllers.ControllerFactory
import fr.acinq.phoenix.data.*
import fr.acinq.phoenix.utils.preferences.GlobalPrefs
import fr.acinq.phoenix.data.BitcoinUnit
import fr.acinq.phoenix.data.CurrencyUnit
import fr.acinq.phoenix.data.ExchangeRate
import fr.acinq.phoenix.data.FiatCurrency
import fr.acinq.phoenix.data.PreferredFiatCurrencies
import fr.acinq.phoenix.data.UserTheme
import fr.acinq.phoenix.data.WalletId
import fr.acinq.phoenix.utils.preferences.InternalPrefs
import fr.acinq.phoenix.utils.preferences.PreferredBitcoinUnits
import fr.acinq.phoenix.utils.preferences.UserPrefs
@@ -23,18 +23,40 @@ import fr.acinq.lightning.io.TcpSocket
import fr.acinq.lightning.logging.LoggerFactory
import fr.acinq.lightning.logging.debug
import fr.acinq.lightning.logging.info
import fr.acinq.phoenix.controllers.*
import fr.acinq.phoenix.controllers.config.*
import fr.acinq.phoenix.controllers.CloseChannelsConfigurationController
import fr.acinq.phoenix.controllers.ConfigurationController
import fr.acinq.phoenix.controllers.ContentController
import fr.acinq.phoenix.controllers.ControllerFactory
import fr.acinq.phoenix.controllers.ElectrumConfigurationController
import fr.acinq.phoenix.controllers.HomeController
import fr.acinq.phoenix.controllers.InitializationController
import fr.acinq.phoenix.controllers.ReceiveController
import fr.acinq.phoenix.controllers.RestoreWalletController
import fr.acinq.phoenix.controllers.config.AppCloseChannelsConfigurationController
import fr.acinq.phoenix.controllers.config.AppConfigurationController
import fr.acinq.phoenix.controllers.config.AppElectrumConfigurationController
import fr.acinq.phoenix.controllers.init.AppInitController
import fr.acinq.phoenix.controllers.init.AppRestoreWalletController
import fr.acinq.phoenix.controllers.main.AppContentController
import fr.acinq.phoenix.controllers.main.AppHomeController
import fr.acinq.phoenix.controllers.payments.AppReceiveController
import fr.acinq.phoenix.data.StartupParams
import fr.acinq.phoenix.managers.*
import fr.acinq.phoenix.managers.AppConfigurationManager
import fr.acinq.phoenix.managers.AppConnectionsDaemon
import fr.acinq.phoenix.managers.BalanceManager
import fr.acinq.phoenix.managers.ConnectionsManager
import fr.acinq.phoenix.managers.DataStoreManager
import fr.acinq.phoenix.managers.DatabaseManager
import fr.acinq.phoenix.managers.LnurlManager
import fr.acinq.phoenix.managers.NodeParamsManager
import fr.acinq.phoenix.managers.NotificationsManager
import fr.acinq.phoenix.managers.PaymentsManager
import fr.acinq.phoenix.managers.PeerManager
import fr.acinq.phoenix.managers.SendManager
import fr.acinq.phoenix.managers.WalletManager
import fr.acinq.phoenix.managers.global.CurrencyManager
import fr.acinq.phoenix.managers.global.FeerateManager
import fr.acinq.phoenix.utils.*
import fr.acinq.phoenix.utils.BlockchainExplorer
import fr.acinq.phoenix.utils.logger.PhoenixLoggerConfig
import kotlinx.coroutines.Job
import kotlinx.coroutines.MainScope
@@ -2,10 +2,13 @@ package fr.acinq.phoenix.controllers
import fr.acinq.lightning.logging.LoggerFactory
import fr.acinq.lightning.logging.debug
import kotlinx.coroutines.*
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Job
import kotlinx.coroutines.MainScope
import kotlinx.coroutines.channels.Channel
import kotlinx.coroutines.channels.consumeEach
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.launch
abstract class AppController<M : MVI.Model, I : MVI.Intent>(
@@ -1,6 +1,8 @@
package fr.acinq.phoenix.controllers
import fr.acinq.phoenix.controllers.config.*
import fr.acinq.phoenix.controllers.config.CloseChannelsConfiguration
import fr.acinq.phoenix.controllers.config.Configuration
import fr.acinq.phoenix.controllers.config.ElectrumConfiguration
import fr.acinq.phoenix.controllers.init.Initialization
import fr.acinq.phoenix.controllers.init.RestoreWallet
import fr.acinq.phoenix.controllers.main.Content
@@ -1,27 +1,29 @@
package fr.acinq.phoenix.controllers.config
import fr.acinq.bitcoin.ByteVector
import fr.acinq.bitcoin.Chain
import fr.acinq.bitcoin.ByteVector32
import fr.acinq.bitcoin.Chain
import fr.acinq.lightning.blockchain.fee.FeeratePerByte
import fr.acinq.lightning.blockchain.fee.FeeratePerKw
import fr.acinq.lightning.channel.*
import fr.acinq.lightning.channel.states.*
import fr.acinq.lightning.channel.ChannelCommand
import fr.acinq.lightning.channel.states.Aborted
import fr.acinq.lightning.channel.states.ChannelState
import fr.acinq.lightning.channel.states.Closed
import fr.acinq.lightning.channel.states.Closing
import fr.acinq.lightning.channel.states.Normal
import fr.acinq.lightning.channel.states.Offline
import fr.acinq.lightning.channel.states.Syncing
import fr.acinq.lightning.io.WrappedChannelCommand
import fr.acinq.lightning.logging.LoggerFactory
import fr.acinq.lightning.logging.info
import fr.acinq.phoenix.PhoenixBusiness
import fr.acinq.phoenix.managers.PeerManager
import fr.acinq.phoenix.controllers.AppController
import fr.acinq.phoenix.controllers.config.CloseChannelsConfiguration.Model.ChannelInfoStatus
import fr.acinq.phoenix.managers.AppConfigurationManager
import fr.acinq.phoenix.managers.PeerManager
import fr.acinq.phoenix.managers.phoenixFinalWallet
import fr.acinq.phoenix.utils.Parser
import fr.acinq.phoenix.utils.extensions.localBalance
import fr.acinq.lightning.logging.info
import fr.acinq.phoenix.data.BitcoinUri
import fr.acinq.phoenix.managers.AppConfigurationManager
import fr.acinq.phoenix.managers.phoenixFinalWallet
import kotlinx.coroutines.CompletableDeferred
import kotlinx.coroutines.flow.filterNotNull
import kotlinx.coroutines.flow.first
import kotlinx.coroutines.launch
class AppCloseChannelsConfigurationController(
@@ -1,10 +1,9 @@
package fr.acinq.phoenix.controllers.config
import co.touchlab.kermit.Logger
import fr.acinq.lightning.logging.LoggerFactory
import fr.acinq.phoenix.PhoenixBusiness
import fr.acinq.phoenix.managers.WalletManager
import fr.acinq.phoenix.controllers.AppController
import fr.acinq.phoenix.managers.WalletManager
import kotlinx.coroutines.launch
Loaded 100 of 172 files, more files were not shown because too many files have changed in this diff. Show more