diff --git a/app/src/main/java/com/tangem/tap/common/extensions/Context.kt b/app/src/main/java/com/tangem/tap/common/extensions/Context.kt new file mode 100644 index 0000000000..60345e1ab7 --- /dev/null +++ b/app/src/main/java/com/tangem/tap/common/extensions/Context.kt @@ -0,0 +1,16 @@ +package com.tangem.tap.common.extensions + +import android.content.Context + +fun Context.readFile(fileName: String): String = + this.openFileInput(fileName).bufferedReader().readText() + +fun Context.rewriteFile(content: String, fileName: String) { + this.openFileOutput(fileName, Context.MODE_PRIVATE).use { + it.write(content.toByteArray(), 0, content.length) + } +} + +fun Context.readAssetAsString(fileName: String): String { + return this.assets.open("$fileName.json").bufferedReader().readText() +} \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/domain/configurable/config/ConfigLoaders.kt b/app/src/main/java/com/tangem/tap/domain/configurable/config/ConfigLoaders.kt index a47e8fec1c..4c19bab889 100644 --- a/app/src/main/java/com/tangem/tap/domain/configurable/config/ConfigLoaders.kt +++ b/app/src/main/java/com/tangem/tap/domain/configurable/config/ConfigLoaders.kt @@ -6,6 +6,7 @@ import com.google.firebase.remoteconfig.ktx.remoteConfig import com.squareup.moshi.JsonAdapter import com.squareup.moshi.Moshi import com.tangem.tap.common.analytics.FirebaseAnalyticsHandler +import com.tangem.tap.common.extensions.readAssetAsString import com.tangem.tap.domain.configurable.Loader import timber.log.Timber @@ -22,8 +23,8 @@ class FeaturesLocalLoader( val featureAdapter: JsonAdapter = moshi.adapter(FeatureModel::class.java) val valuesAdapter: JsonAdapter = moshi.adapter(ConfigValueModel::class.java) - val jsonFeatures = readAssetAsString(Loader.featuresName) - val jsonConfigValues = readAssetAsString(Loader.configValuesName) + val jsonFeatures = context.readAssetAsString(Loader.featuresName) + val jsonConfigValues = context.readAssetAsString(Loader.configValuesName) ConfigModel(featureAdapter.fromJson(jsonFeatures), valuesAdapter.fromJson(jsonConfigValues)) } catch (ex: Exception) { @@ -32,10 +33,6 @@ class FeaturesLocalLoader( } onComplete(config) } - - private fun readAssetAsString(fileName: String): String { - return context.assets.open("$fileName.json").bufferedReader().readText() - } } class FeaturesRemoteLoader( diff --git a/app/src/main/java/com/tangem/tap/domain/twins/CreateSecondTwinWalletTask.kt b/app/src/main/java/com/tangem/tap/domain/twins/CreateSecondTwinWalletTask.kt index 69b8426358..8224293d18 100644 --- a/app/src/main/java/com/tangem/tap/domain/twins/CreateSecondTwinWalletTask.kt +++ b/app/src/main/java/com/tangem/tap/domain/twins/CreateSecondTwinWalletTask.kt @@ -54,7 +54,7 @@ class CreateSecondTwinWalletTask( session.environment.card = session.environment.card?.changeStatusToLoaded() WriteProtectedIssuerDataTask( - firstPublicKey.hexToBytes(), TwinCardsManager.issuerKeys + firstPublicKey.hexToBytes(), issuerKeys ).run(session) { writeResult -> when (writeResult) { is CompletionResult.Success -> callback(result) diff --git a/app/src/main/java/com/tangem/tap/features/details/redux/DetailsAction.kt b/app/src/main/java/com/tangem/tap/features/details/redux/DetailsAction.kt index f37ef1c696..756d836287 100644 --- a/app/src/main/java/com/tangem/tap/features/details/redux/DetailsAction.kt +++ b/app/src/main/java/com/tangem/tap/features/details/redux/DetailsAction.kt @@ -1,5 +1,6 @@ package com.tangem.tap.features.details.redux +import android.content.Context import com.tangem.Message import com.tangem.blockchain.common.Wallet import com.tangem.commands.common.card.Card @@ -62,7 +63,9 @@ sealed class DetailsAction : Action { object Confirm : CreateTwinWalletAction() } - data class LaunchFirstStep(val message: Message) : CreateTwinWalletAction() { + data class LaunchFirstStep( + val message: Message, val context: Context + ) : CreateTwinWalletAction() { object Success : CreateTwinWalletAction() object Failure : CreateTwinWalletAction() } diff --git a/app/src/main/java/com/tangem/tap/features/details/redux/twins/CreateTwinWalletMiddleware.kt b/app/src/main/java/com/tangem/tap/features/details/redux/twins/CreateTwinWalletMiddleware.kt index e99f7c7ad6..fa81ea9a18 100644 --- a/app/src/main/java/com/tangem/tap/features/details/redux/twins/CreateTwinWalletMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/details/redux/twins/CreateTwinWalletMiddleware.kt @@ -49,7 +49,7 @@ class CreateTwinWalletMiddleware { } is DetailsAction.CreateTwinWalletAction.LaunchFirstStep -> { store.state.globalState.scanNoteResponse?.let { - twinsManager = TwinCardsManager(it) + twinsManager = TwinCardsManager(it, action.context) } scope.launch { val result = twinsManager?.createFirstWallet(action.message) diff --git a/app/src/main/java/com/tangem/tap/features/details/ui/twins/CreateTwinWalletFragment.kt b/app/src/main/java/com/tangem/tap/features/details/ui/twins/CreateTwinWalletFragment.kt index 50d87de052..f8a09c7131 100644 --- a/app/src/main/java/com/tangem/tap/features/details/ui/twins/CreateTwinWalletFragment.kt +++ b/app/src/main/java/com/tangem/tap/features/details/ui/twins/CreateTwinWalletFragment.kt @@ -97,11 +97,12 @@ class CreateTwinWalletFragment : Fragment(R.layout.fragment_details_twin_cards), v_step_3.setBackgroundColor(defaultColor) btn_tap.setOnClickListener { store.dispatch(DetailsAction.CreateTwinWalletAction.LaunchFirstStep( - Message(getString( - R.string.details_twins_recreate_title_format, - twinCardNumberString - ) - ))) + Message(getString( + R.string.details_twins_recreate_title_format, + twinCardNumberString + )), + requireContext() + )) } btn_tap.text = getString(R.string.details_twins_recreate_button_format, twinCardNumber.number.toString())