Update to make use of lightning-kmp-appp

This commit is contained in:
Kgothatso Ngako
2026-08-02 20:43:30 +02:00
parent e9510c4ea5
commit 2f06485ec5
11 changed files with 66 additions and 40 deletions

View File

@@ -7,13 +7,14 @@ import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge
import androidx.navigation.compose.rememberNavController
import fr.acinq.phoenix.NFCActivity
import press.mantra.compose.PlatformContext
import press.mantra.compose.MantraApp
import press.mantra.compose.MantraGlobal
import fr.acinq.phoenix.PhoenixGlobal
import fr.acinq.phoenix.android.services.HceService
class MainActivity : ComponentActivity() {
class MainActivity : ComponentActivity(), NFCActivity {
private var nfcAdapter: NfcAdapter? = null
@@ -41,11 +42,11 @@ class MainActivity : ComponentActivity() {
}
}
fun stopHceService() {
override fun stopHceService() {
stopService(Intent(this@MainActivity, HceService::class.java))
}
fun stopNfcReader() {
override fun stopNfcReader() {
if (com.machankura.compose.ui.composable.widgets.nfc.NfcStateRepository.isReading()) {
com.machankura.compose.ui.composable.widgets.nfc.NfcStateRepository.updateState(
com.machankura.compose.ui.composable.widgets.nfc.NfcState.Inactive)

View File

@@ -7,22 +7,31 @@ 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.android.LightningApplication
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 MantraApplication: Application() {
lateinit var globalPrefs: GlobalPrefs
lateinit var phoenixGlobal: PhoenixGlobal
class MantraApplication: Application(), LightningApplication {
private lateinit var globalPrefs: GlobalPrefs
private lateinit var phoenixGlobal: PhoenixGlobal
override fun onCreate() {
super.onCreate()
phoenixGlobal = PhoenixGlobal(PlatformContext(applicationContext))
globalPrefs = GlobalPrefs(applicationContext.globalPrefs)
BusinessManager.initialize(applicationContext)
BusinessManager.initialize(this)
}
override fun getGlobalPrefs(): GlobalPrefs {
return globalPrefs
}
override fun getPhoenixGlobal(): PhoenixGlobal {
return phoenixGlobal
}
}

View File

@@ -24,10 +24,10 @@ actual fun schedulePlatformLogic(phoenixGlobal: PhoenixGlobal) {
}
actual fun getShowIntroFlow(phoenixGlobal: PhoenixGlobal): Flow<Boolean> {
val machankuraApplication = phoenixGlobal.ctx.applicationContext as MantraApplication
return machankuraApplication.globalPrefs.getShowIntro
return machankuraApplication.getGlobalPrefs().getShowIntro
}
actual fun getGlobalPrefs(phoenixGlobal: PhoenixGlobal): GlobalPrefs {
val machankuraApplication = phoenixGlobal.ctx.applicationContext as MantraApplication
return machankuraApplication.globalPrefs
return machankuraApplication.getGlobalPrefs()
}

View File

@@ -36,12 +36,12 @@ actual fun loadAndDecryptSeed(phoenixGlobal: PhoenixGlobal): DecryptSeedResult {
actual fun getAvailableWalletsMeta(phoenixGlobal: PhoenixGlobal): Flow<Map<WalletId, UserWalletMetadata>> {
val machankuraApplication = phoenixGlobal.ctx.applicationContext as MantraApplication
return machankuraApplication.globalPrefs.getAvailableWalletsMeta
return machankuraApplication.getGlobalPrefs().getAvailableWalletsMeta
}
actual suspend fun saveAvailableWalletMeta(phoenixGlobal: PhoenixGlobal, metadata: UserWalletMetadata) {
val machankuraApplication = phoenixGlobal.ctx.applicationContext as MantraApplication
machankuraApplication.globalPrefs.saveAvailableWalletMeta(metadata)
machankuraApplication.getGlobalPrefs().saveAvailableWalletMeta(metadata)
}
actual suspend fun saveAvailableWalletMeta(
@@ -52,7 +52,7 @@ actual suspend fun saveAvailableWalletMeta(
isHidden: Boolean
) {
val machankuraApplication = phoenixGlobal.ctx.applicationContext as MantraApplication
machankuraApplication.globalPrefs.saveAvailableWalletMeta(
machankuraApplication.getGlobalPrefs().saveAvailableWalletMeta(
walletId = walletId,
name = name,
avatar = avatar,