Skip to content

Commit

Permalink
Improvements on signer implementation
Browse files Browse the repository at this point in the history
  • Loading branch information
tomastiminskas committed Sep 4, 2023
1 parent 20e3586 commit cba1aa1
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 40 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,7 @@ package chat.sphinx.concept_signer_manager
abstract class SignerManager {
abstract fun setupPhoneSigner()
abstract fun setupSignerHardware(signerCallback: SignerCallback)
abstract fun initWalletDataHandler(walletDataHandlerInstance: Any)
abstract fun initMoshi(moshiInstance: Any)
abstract fun initNetworkQueryCrypter(networkQueryCrypterInstance: Any)

abstract fun setWalletDataHandler(walletDataHandlerInstance: Any)
abstract fun setMoshi(moshiInstance: Any)
abstract fun setNetworkQueryCrypter(networkQueryCrypterInstance: Any)
}
Original file line number Diff line number Diff line change
Expand Up @@ -56,19 +56,19 @@ class SignerManagerImpl(
private lateinit var walletDataHandler: WalletDataHandler
private lateinit var networkQueryCrypter: NetworkQueryCrypter

override fun initWalletDataHandler(walletDataHandlerInstance: Any) {
override fun setWalletDataHandler(walletDataHandlerInstance: Any) {
(walletDataHandlerInstance as WalletDataHandler).let {
walletDataHandler = it
}
}

override fun initMoshi(moshiInstance: Any) {
override fun setMoshi(moshiInstance: Any) {
(moshiInstance as Moshi).let {
moshi = it
}
}

override fun initNetworkQueryCrypter(networkQueryCrypterInstance: Any) {
override fun setNetworkQueryCrypter(networkQueryCrypterInstance: Any) {
(networkQueryCrypterInstance as NetworkQueryCrypter).let {
networkQueryCrypter = it
}
Expand Down Expand Up @@ -562,10 +562,7 @@ class SignerManagerImpl(
val words = wordsArray.joinToString(" ")

words.toWalletMnemonic()?.let { walletMnemonic ->
if (walletDataHandler.persistWalletMnemonic(walletMnemonic)) {
// LOG.d("MNEMONIC WORDS SAVED" , words)
// LOG.d("MNEMONIC WORDS SAVED" , words)
}
walletDataHandler.persistWalletMnemonic(walletMnemonic)
walletMnemonic
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import chat.sphinx.concept_image_loader.ImageLoader
import chat.sphinx.concept_image_loader.ImageLoaderOptions
import chat.sphinx.concept_signer_manager.SignerCallback
import chat.sphinx.concept_signer_manager.SignerManager
import chat.sphinx.concept_wallet.WalletDataHandler
import chat.sphinx.insetter_activity.InsetterActivity
import chat.sphinx.insetter_activity.addNavigationBarPadding
import chat.sphinx.insetter_activity.addStatusBarPadding
Expand Down Expand Up @@ -98,7 +99,7 @@ internal class ProfileFragment: SideEffectFragment<
setupProfileHeader()
setupProfileTabs()
setupProfile()
setupSignerDependencies()
setupSignerManager()


bottomMenuPicture.initialize(
Expand Down Expand Up @@ -143,10 +144,8 @@ internal class ProfileFragment: SideEffectFragment<
}
}

private fun setupSignerDependencies(){
signerManager.initWalletDataHandler(viewModel.walletDataHandler)
signerManager.initMoshi(viewModel.moshi)
signerManager.initNetworkQueryCrypter(viewModel.networkQueryCrypter)
private fun setupSignerManager(){
viewModel.setSignerManager(signerManager)
}

private fun setupProfileHeader() {
Expand All @@ -165,6 +164,9 @@ internal class ProfileFragment: SideEffectFragment<
.addNavigationBarPadding(
includeLayoutMenuBottomProfilePic.includeLayoutMenuBottomOptions.root
)
.addNavigationBarPadding(
includeLayoutMenuBottomSigner.includeLayoutMenuBottomOptions.root
)

includeProfileNamePictureHolder.imageViewProfilePicture.setOnClickListener {
viewModel.pictureMenuHandler.viewStateContainer.updateViewState(MenuBottomViewState.Open)
Expand Down Expand Up @@ -296,7 +298,6 @@ internal class ProfileFragment: SideEffectFragment<
}

override fun onStopTrackingTouch(seekBar: SeekBar?) {
signerManager.initWalletDataHandler(viewModel.pictureMenuHandler)
viewModel.persistPINTimeout()
}
}
Expand Down Expand Up @@ -580,23 +581,6 @@ internal class ProfileFragment: SideEffectFragment<
}
}
}
onStopSupervisor.scope.launch(viewModel.mainImmediate) {
viewModel.signerViewStateContainer.collect { viewState ->
when (viewState) {
is SignerViewState.Idle -> {}
is SignerViewState.HardwareDevice -> {
signerManager.setupSignerHardware(viewModel)

viewModel.signerViewStateContainer.updateViewState(SignerViewState.Idle)
}
is SignerViewState.PhoneDevice -> {
signerManager.setupPhoneSigner()

viewModel.signerViewStateContainer.updateViewState(SignerViewState.Idle)
}
}
}
}
}

override suspend fun onSideEffectCollect(sideEffect: ProfileSideEffect) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import chat.sphinx.concept_repository_feed.FeedRepository
import chat.sphinx.concept_repository_lightning.LightningRepository
import chat.sphinx.concept_repository_media.RepositoryMedia
import chat.sphinx.concept_signer_manager.SignerCallback
import chat.sphinx.concept_signer_manager.SignerManager
import chat.sphinx.concept_view_model_coordinator.ViewModelCoordinator
import chat.sphinx.concept_wallet.WalletDataHandler
import chat.sphinx.kotlin_response.LoadResponse
Expand All @@ -37,6 +38,7 @@ import chat.sphinx.wrapper_common.lightning.Sat
import chat.sphinx.wrapper_common.message.SphinxCallLink
import chat.sphinx.wrapper_contact.Contact
import chat.sphinx.wrapper_contact.PrivatePhoto
import chat.sphinx.wrapper_feed.Feed
import chat.sphinx.wrapper_lightning.NodeBalance
import chat.sphinx.wrapper_relay.AuthorizationToken
import chat.sphinx.wrapper_relay.RelayUrl
Expand Down Expand Up @@ -126,6 +128,16 @@ internal class ProfileViewModel @Inject constructor(
const val BITCOIN_NETWORK_MAIN_NET = "mainnet"
}

private lateinit var signerManager: SignerManager

fun setSignerManager(signerManager: SignerManager) {
signerManager.setWalletDataHandler(walletDataHandler)
signerManager.setMoshi(moshi)
signerManager.setNetworkQueryCrypter(networkQueryCrypter)

this.signerManager = signerManager
}

val storageBarViewStateContainer: ViewStateContainer<StorageBarViewState> by lazy {
ViewStateContainer(StorageBarViewState.Loading)
}
Expand All @@ -134,10 +146,6 @@ internal class ProfileViewModel @Inject constructor(
ViewStateContainer(UpdatingImageViewState.Idle)
}

val signerViewStateContainer: ViewStateContainer<SignerViewState> by lazy {
ViewStateContainer(SignerViewState.Idle)
}

override val pictureMenuHandler: PictureMenuHandler by lazy {
PictureMenuHandler(
app = app,
Expand Down Expand Up @@ -185,11 +193,11 @@ internal class ProfileViewModel @Inject constructor(
}

override fun setupHardwareSigner() {
signerViewStateContainer.updateViewState(SignerViewState.HardwareDevice)
signerManager.setupSignerHardware(this)
}

override fun setupPhoneSigner() {
signerViewStateContainer.updateViewState(SignerViewState.PhoneDevice)
signerManager.setupPhoneSigner()
}

private fun setUpManageStorage(){
Expand Down

0 comments on commit cba1aa1

Please sign in to comment.