Fork Aux to make Torch

This commit is contained in:
Kgothatso Ngako
2026-06-17 18:10:06 +03:00
parent 3df0b9ba4c
commit bad1b0eb31
343 changed files with 2747 additions and 3382 deletions

View File

@@ -7,7 +7,7 @@
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<application
android:name=".InomboloApplication"
android:name=".TorchApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
@@ -16,7 +16,7 @@
android:theme="@android:style/Theme.Material.Light.NoActionBar">
<activity
android:exported="true"
android:name="ac.cord.auxiliary.android.MainActivity">
android:name="at.torch.android.MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

View File

@@ -1,8 +1,8 @@
package ac.cord.auxiliary.android
package at.torch.android
import ac.cord.auxiliary.compose.AuxApp
import ac.cord.auxiliary.compose.AuxGlobal
import ac.cord.auxiliary.compose.PlatformContext
import at.torch.auxiliary.compose.AuxApp
import at.torch.auxiliary.compose.AuxGlobal
import at.torch.compose.PlatformContext
import android.content.Intent
import android.nfc.NfcAdapter
import android.os.Bundle
@@ -48,8 +48,9 @@ class MainActivity : ComponentActivity() {
}
fun stopNfcReader() {
if (NfcStateRepository.isReading()) {
NfcStateRepository.updateState(NfcState.Inactive)
if (_root_ide_package_.com.machankura.compose.ui.composable.widgets.nfc.NfcStateRepository.isReading()) {
_root_ide_package_.com.machankura.compose.ui.composable.widgets.nfc.NfcStateRepository.updateState(
_root_ide_package_.com.machankura.compose.ui.composable.widgets.nfc.NfcState.Inactive)
}
nfcAdapter?.disableReaderMode(this@MainActivity)
}

View File

@@ -1,4 +1,4 @@
package ac.cord.auxiliary.android
package at.torch.android
import android.app.Application
import android.content.Context
@@ -7,14 +7,13 @@ import androidx.datastore.preferences.core.Preferences
import androidx.datastore.preferences.preferencesDataStore
import fr.acinq.phoenix.PhoenixGlobal
import fr.acinq.phoenix.android.BusinessManager
import fr.acinq.phoenix.utils.Logging
import fr.acinq.phoenix.utils.PlatformContext
import fr.acinq.phoenix.utils.preferences.GlobalPrefs
/** This datastore persists preferences across node ids. */
val Context.globalPrefs: DataStore<Preferences> by preferencesDataStore(name = "globalprefs")
class InomboloApplication: Application() {
class TorchApplication: Application() {
lateinit var globalPrefs: GlobalPrefs
lateinit var phoenixGlobal: PhoenixGlobal

View File

@@ -1,6 +1,6 @@
package ac.cord.auxiliary.compose
package at.torch.compose
import ac.cord.auxiliary.android.BuildConfig
import at.torch.auxiliary.android.BuildConfig
actual object AppVersion {
actual val versionName: String

View File

@@ -1,4 +1,4 @@
package ac.cord.auxiliary.compose
package at.torch.compose
import android.os.Build
@@ -6,4 +6,4 @@ class AndroidPlatform : Platform {
override val name: String = "Android ${Build.VERSION.SDK_INT}"
}
actual fun getPlatform(): Platform = AndroidPlatform()
actual fun getPlatform(): Platform = _root_ide_package_.at.torch.compose.AndroidPlatform()

View File

@@ -1,4 +1,4 @@
package ac.cord.auxiliary.compose
package at.torch.compose
import android.content.Context

View File

@@ -1,22 +1,22 @@
package ac.cord.auxiliary.compose.database.builder
package at.torch.compose.database.builder
import ac.cord.auxiliary.compose.PlatformContext
import ac.cord.auxiliary.compose.database.AuxDatabase
import at.torch.compose.PlatformContext
import at.torch.compose.database.TorchDatabase
import androidx.room3.Room
import androidx.room3.RoomDatabase
actual object PlatformDatabaseBuilder {
actual fun getDatabaseBuilder(platformContext: PlatformContext): RoomDatabase.Builder<AuxDatabase> {
actual fun getDatabaseBuilder(platformContext: PlatformContext): RoomDatabase.Builder<TorchDatabase> {
val appContext = platformContext.applicationContext
val dbFile = appContext.getDatabasePath("aux.db")
return Room.databaseBuilder<AuxDatabase>(
return Room.databaseBuilder<TorchDatabase>(
context = appContext,
name = dbFile.absolutePath
)
}
actual fun getInMemoryDatabaseBuilder(platform: PlatformContext): RoomDatabase.Builder<AuxDatabase> {
actual fun getInMemoryDatabaseBuilder(platform: PlatformContext): RoomDatabase.Builder<TorchDatabase> {
return Room.inMemoryDatabaseBuilder(
context = platform.applicationContext
)

View File

@@ -1,6 +1,6 @@
package ac.cord.auxiliary.compose.extensions
package at.torch.compose.extensions
import ac.cord.auxiliary.android.InomboloApplication
import at.torch.android.TorchApplication
import fr.acinq.phoenix.PhoenixGlobal
import fr.acinq.phoenix.android.BusinessManager
import fr.acinq.phoenix.android.services.ChannelsWatcher
@@ -23,11 +23,11 @@ actual fun schedulePlatformLogic(phoenixGlobal: PhoenixGlobal) {
ContactsPhotoCleaner.schedule(phoenixGlobal.ctx.applicationContext)
}
actual fun getShowIntroFlow(phoenixGlobal: PhoenixGlobal): Flow<Boolean> {
val machankuraApplication = phoenixGlobal.ctx.applicationContext as InomboloApplication
val machankuraApplication = phoenixGlobal.ctx.applicationContext as TorchApplication
return machankuraApplication.globalPrefs.getShowIntro
}
actual fun getGlobalPrefs(phoenixGlobal: PhoenixGlobal): GlobalPrefs {
val machankuraApplication = phoenixGlobal.ctx.applicationContext as InomboloApplication
val machankuraApplication = phoenixGlobal.ctx.applicationContext as TorchApplication
return machankuraApplication.globalPrefs
}

View File

@@ -1,4 +1,4 @@
package ac.cord.auxiliary.compose.ui.theme
package at.torch.compose.ui.theme
import android.os.Build
import androidx.compose.material3.ColorScheme

View File

@@ -1,7 +1,7 @@
package ac.cord.auxiliary.compose.ui.view.model
package at.torch.compose.ui.view.model
import ac.cord.auxiliary.android.InomboloApplication
import ac.cord.auxiliary.compose.AppVersion
import at.torch.android.TorchApplication
import at.torch.auxiliary.compose.AppVersion
import co.touchlab.kermit.Logger
import fr.acinq.bitcoin.MnemonicCode
import fr.acinq.lightning.crypto.LocalKeyManager
@@ -35,12 +35,12 @@ actual fun loadAndDecryptSeed(phoenixGlobal: PhoenixGlobal): DecryptSeedResult {
}
actual fun getAvailableWalletsMeta(phoenixGlobal: PhoenixGlobal): Flow<Map<WalletId, UserWalletMetadata>> {
val machankuraApplication = phoenixGlobal.ctx.applicationContext as InomboloApplication
val machankuraApplication = phoenixGlobal.ctx.applicationContext as TorchApplication
return machankuraApplication.globalPrefs.getAvailableWalletsMeta
}
actual suspend fun saveAvailableWalletMeta(phoenixGlobal: PhoenixGlobal, metadata: UserWalletMetadata) {
val machankuraApplication = phoenixGlobal.ctx.applicationContext as InomboloApplication
val machankuraApplication = phoenixGlobal.ctx.applicationContext as TorchApplication
machankuraApplication.globalPrefs.saveAvailableWalletMeta(metadata)
}
@@ -51,7 +51,7 @@ actual suspend fun saveAvailableWalletMeta(
avatar: String,
isHidden: Boolean
) {
val machankuraApplication = phoenixGlobal.ctx.applicationContext as InomboloApplication
val machankuraApplication = phoenixGlobal.ctx.applicationContext as TorchApplication
machankuraApplication.globalPrefs.saveAvailableWalletMeta(
walletId = walletId,
name = name,

View File

@@ -16,9 +16,9 @@
package fr.acinq.phoenix.android
import ac.cord.auxiliary.android.InomboloApplication
import ac.cord.auxiliary.compose.AppVersion
import ac.cord.auxiliary.compose.ui.composable.widgets.wallet.WalletAvatars
import at.torch.android.TorchApplication
import at.torch.auxiliary.compose.AppVersion
import at.torch.auxiliary.compose.ui.composable.widgets.wallet.WalletAvatars
import android.content.Context
import android.text.format.DateUtils
import fr.acinq.lightning.LiquidityEvents
@@ -34,10 +34,8 @@ import fr.acinq.phoenix.data.StartupParams
import fr.acinq.phoenix.data.WalletId
import fr.acinq.phoenix.data.inFlightPaymentsCount
import fr.acinq.phoenix.managers.AppConnectionsDaemon
import fr.acinq.phoenix.managers.DataStoreManager
import fr.acinq.phoenix.managers.NodeParamsManager
import fr.acinq.phoenix.managers.PeerManager
import fr.acinq.phoenix.managers.WalletManager
import fr.acinq.phoenix.managers.global.CurrencyManager
import fr.acinq.phoenix.utils.MnemonicLanguage
import fr.acinq.phoenix.utils.SystemNotificationHelper
@@ -47,7 +45,6 @@ import fr.acinq.phoenix.utils.preferences.UserWalletMetadata
import fr.acinq.phoenix.utils.preferences.getByWalletIdOrDefault
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.Job
import kotlinx.coroutines.SupervisorJob
import kotlinx.coroutines.delay
import kotlinx.coroutines.flow.MutableStateFlow
@@ -70,7 +67,7 @@ object BusinessManager {
// No memory leaks because this can only contain the application context.
private lateinit var appContext: Context
private val application by lazy { appContext as InomboloApplication }
private val application by lazy { appContext as TorchApplication }
/** A map of (walletId -> active businesses) */
private val _businessFlow = MutableStateFlow<Map<WalletId, BusinessRunning>>(emptyMap())

View File

@@ -16,7 +16,7 @@
package fr.acinq.phoenix.android.services
import ac.cord.auxiliary.android.BuildConfig
import at.torch.auxiliary.android.BuildConfig
import android.content.Context
import androidx.work.CoroutineWorker
import androidx.work.ExistingPeriodicWorkPolicy

View File

@@ -16,7 +16,7 @@
package fr.acinq.phoenix.android.services
import ac.cord.auxiliary.android.BuildConfig
import at.torch.auxiliary.android.BuildConfig
import android.content.Context
import androidx.work.CoroutineWorker
import androidx.work.ExistingPeriodicWorkPolicy

View File

@@ -16,7 +16,7 @@
package fr.acinq.phoenix.android.services
import ac.cord.auxiliary.android.BuildConfig
import at.torch.auxiliary.android.BuildConfig
import android.content.Context
import androidx.work.CoroutineWorker
import androidx.work.ExistingPeriodicWorkPolicy

View File

@@ -16,8 +16,8 @@
package fr.acinq.phoenix.android.services
import ac.cord.auxiliary.android.BuildConfig
import ac.cord.auxiliary.android.InomboloApplication
import at.torch.auxiliary.android.BuildConfig
import at.torch.android.TorchApplication
import android.content.Context
import android.os.Build
import androidx.work.CoroutineWorker
@@ -95,7 +95,7 @@ class InflightPaymentsWatcher(context: Context, workerParams: WorkerParameters)
}
val watchResult = userWallets.map { (walletId, wallet) ->
val walletMetadata = (applicationContext as InomboloApplication).globalPrefs.getAvailableWalletsMeta.first().getByWalletIdOrDefault(walletId)
val walletMetadata = (applicationContext as TorchApplication).globalPrefs.getAvailableWalletsMeta.first().getByWalletIdOrDefault(walletId)
watchWallet(walletId, walletMetadata, wallet.words)
}

View File

@@ -1,16 +1,12 @@
package fr.acinq.phoenix.android.services
import ac.cord.auxiliary.android.BuildConfig
import ac.cord.auxiliary.android.InomboloApplication
import android.app.Notification
import at.torch.auxiliary.android.BuildConfig
import at.torch.android.TorchApplication
import android.app.Service
import android.content.Intent
import android.content.pm.ServiceInfo
import android.os.Build
import android.os.Handler
import android.os.Looper
import androidx.core.app.NotificationManagerCompat
import androidx.core.app.ServiceCompat
import fr.acinq.lightning.utils.Connection
import fr.acinq.phoenix.PhoenixBusiness
import fr.acinq.phoenix.PhoenixGlobal
@@ -104,7 +100,7 @@ class PaymentsForegroundService : Service() {
is DecryptSeedResult.Failure -> {
log.info("unable to read seed, ignoring background message (reason=$reason)")
serviceScope.launch {
val walletMetadataMap = (application as InomboloApplication).globalPrefs.getAvailableWalletsMeta.first()
val walletMetadataMap = (application as TorchApplication).globalPrefs.getAvailableWalletsMeta.first()
val metadata = walletMetadataMap.getByWalletIdOrDefault(walletId)
when (reason) {
"IncomingPayment" -> SystemNotificationHelper.notifyPaymentMissedAppUnavailable(applicationContext, metadata)

View File

@@ -1,6 +1,6 @@
package fr.acinq.phoenix.utils
import ac.cord.auxiliary.android.BuildConfig
import at.torch.auxiliary.android.BuildConfig
import android.content.Context
import android.graphics.Bitmap
import android.graphics.BitmapFactory

View File

@@ -16,12 +16,11 @@
package fr.acinq.phoenix.utils
import ac.cord.auxiliary.android.BuildConfig
import ac.cord.auxiliary.android.MainActivity
import ac.cord.auxiliary.android.R
import at.torch.auxiliary.android.BuildConfig
import at.torch.android.MainActivity
import at.torch.auxiliary.android.R
import android.Manifest
import android.app.Notification
import android.app.NotificationChannel
import android.app.NotificationManager
import android.app.PendingIntent
import android.content.Context

View File

@@ -16,7 +16,7 @@
package fr.acinq.phoenix.utils.extensions
import ac.cord.auxiliary.android.MainActivity
import at.torch.android.MainActivity
import android.content.Context
import android.content.ContextWrapper