Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
b18f4f5
Merge pull request #2160 from p2p-org/release/v2.11.1
gslevinkov Feb 2, 2024
d39ed2e
ETH-781 - referral in history (#2165)
eduardmaximovich Feb 2, 2024
a5927c1
PWN-782 - Bugfixes for referral deeplink (#2166)
gslevinkov Feb 2, 2024
86ef985
PWN-777 - Bridge fixes (#2168)
gslevinkov Feb 2, 2024
7ba9c9c
ETH-855, ETH-770 - fixing empty tokens states for ref banner and pnl …
eduardmaximovich Feb 5, 2024
e3b37dd
ETH-854 - adjust action buttons for lowres (#2170)
eduardmaximovich Feb 5, 2024
8cf901b
PWN-794 - Add in-app updates (#2167)
gslevinkov Feb 5, 2024
4a3bc45
NO-TICKET - hotfix: make rentEpoch field BigInteger instead of int an…
eduardmaximovich Feb 5, 2024
042db53
NO-TICKET - fix rent from release hotfix (#2175)
gslevinkov Feb 5, 2024
52bd9f4
Merge branch 'develop' into release/v2.11.2
gslevinkov Feb 6, 2024
ee648e9
Merge pull request #2171 from p2p-org/release/v2.11.2
gslevinkov Feb 6, 2024
38741f9
ETH-843 - fix token2022 websocket subscription filter (#2176)
eduardmaximovich Feb 6, 2024
ece91d9
PWN-841 - Fix switching card when usd is selected (#2177)
gslevinkov Feb 6, 2024
150d644
PWN-877 - add PNL feature toggle (#2178)
gslevinkov Feb 6, 2024
aac11f0
PWN-878 - migrate to SolScan (#2180)
gslevinkov Feb 6, 2024
7d65908
PWN-839 - fix opening send on empty account (#2179)
gslevinkov Feb 6, 2024
c0e0488
ETH-842 - fix displaying free fee; fix fee layout (#2181)
eduardmaximovich Feb 7, 2024
7a7412b
PWN-897 - Add JS bridge for paste (#2182)
gslevinkov Feb 7, 2024
5dea117
NO-TICKET - disable local debug app update (#2183)
eduardmaximovich Feb 7, 2024
bc09802
PWN-896 - Fix logout crash (#2184)
gslevinkov Feb 7, 2024
01c5603
PWN-880 PWN-925 - add swap fee and fix selecting tokens (#2185)
gslevinkov Feb 7, 2024
6c30c14
ETH-840 - fix fee payer selection for non-compensating tokens (#2186)
eduardmaximovich Feb 8, 2024
7b673c5
PWN-897 - Fix webview paste button (#2187)
gslevinkov Feb 8, 2024
1f95526
PWN-933 - Focus Referral webview on resume (#2189)
gslevinkov Feb 9, 2024
bdce0fd
PWN-880 - Fix swap fee calculations (#2188)
gslevinkov Feb 9, 2024
98b9311
PWN-933 - Add terms of service to JS bridge (#2190)
gslevinkov Feb 12, 2024
1235116
PWN-947 - Swap fixes (#2191)
gslevinkov Feb 13, 2024
b2d545d
ETH-930 - disable svl deeplink handling (#2192)
eduardmaximovich Feb 13, 2024
5dd3763
ETH-951 - display full amount in send button (#2193)
eduardmaximovich Feb 14, 2024
dcd3b9a
PWN-961 - add Jupiter API as price source (#2195)
gslevinkov Feb 14, 2024
27a2c3a
PWN-945 - History and Send fixes (#2196)
gslevinkov Feb 14, 2024
9a492af
ETH-946 - save send fee payer (#2194)
eduardmaximovich Feb 14, 2024
a77087b
PWN-934 - Fix the rule of min swap in Swap (#2197)
gslevinkov Feb 15, 2024
3304d06
ETH-864 - fixed deeplinks handling (#2198)
eduardmaximovich Feb 15, 2024
944ed56
PWN-961 - Group prices requests and navigate to swap (#2199)
gslevinkov Feb 16, 2024
906e50f
PWN-978 PWN-864 - navigate to Home when ref, fix set_referent request…
gslevinkov Feb 16, 2024
674152b
PWN-983 - Add placeholder v2 (#2201)
gslevinkov Feb 16, 2024
f81f677
PWN-990 - Fix loading ETH tokens (#2203)
gslevinkov Feb 19, 2024
9e52f5a
PWN-989 - Swap fixes with slippage and LP (#2202)
gslevinkov Feb 19, 2024
f1b5a9d
PWN-991 - inject JS provider on reload (#2205)
gslevinkov Feb 19, 2024
048930c
ETH-975 - fixed use max when fee payer is the source token (#2204)
eduardmaximovich Feb 19, 2024
21d4682
PWN-991 - add coma for JS bridge (#2206)
gslevinkov Feb 20, 2024
472345b
PWN-999 - Retry on socket referral exception (#2207)
gslevinkov Feb 20, 2024
224dc34
PWN-990 PWN-1021 - Bridge fixes (#2208)
gslevinkov Feb 20, 2024
7c6abd5
bump app version to 2.12.0
gslevinkov Feb 20, 2024
f5ca887
NO-TICKET - handle send service failure and do not block send flow (#…
eduardmaximovich Feb 21, 2024
697f1bf
PWN-1048 - fix Bridge banner (#2211)
gslevinkov Feb 22, 2024
68b57ae
PWN-843 - reconnect socket on connection true (#2215)
gslevinkov Feb 23, 2024
089f6e3
ETH-1058 - fixed navigation infinite recursion (#2217)
eduardmaximovich Feb 26, 2024
d1db109
bump app build version
gslevinkov Feb 26, 2024
c9fa860
Merge pull request #2218 from p2p-org/feature/PWN-1058-navigation-fix
gslevinkov Feb 26, 2024
689ce97
ETH-1059 - send total fix (#2214)
eduardmaximovich Feb 26, 2024
d302363
ETH-1068 - send fees fix (#2216)
eduardmaximovich Feb 26, 2024
aa60e77
bump app build version
eduardmaximovich Feb 26, 2024
18f930b
Update buildSrc/src/main/java/AppVersions.kt
gslevinkov Feb 26, 2024
2ab28a5
Merge pull request #2219 from p2p-org/feature/ETH-1068-send-fees-over…
gslevinkov Feb 26, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@
# In this example, those users owns any file in an checking directory
# anywhere in your repository.

* @1sakov @Davran331122 @kabramovp2p @gslevinkov @eduardmaximovich
* @gslevinkov @eduardmaximovich
1 change: 1 addition & 0 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<uses-permission android:name="android.permission.ACCESS_MEDIA_LOCATION" />
<uses-permission android:name="android.permission.USE_BIOMETRIC" />

<uses-permission android:name="com.google.android.gms.permission.AD_ID" />

<application
Expand Down
31 changes: 31 additions & 0 deletions app/src/main/assets/referral_bridge_provider.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@

// we need this JS code to inject the ReferralBridge object into the global namespace
// and parse the result data into a JSON object instead of raw string
window.ReferralBridge = {
getUserPublicKeyAsync: async function() {
const result = await AndroidReferralBridge.getUserPublicKeyAsync();
return JSON.parse(result)
},
nativeLog: function(info) {
AndroidReferralBridge.nativeLog(info);
},
showShareDialog: function(link) {
AndroidReferralBridge.showShareDialog(link);
},
openTermsUrl: function(link) {
AndroidReferralBridge.openTermsUrl(link);
},
navigateToSwap: function() {
AndroidReferralBridge.navigateToSwap();
},
reloadPage: function() {
AndroidReferralBridge.reloadPage();
},
getClipboardContent: function() {
return JSON.parse(AndroidReferralBridge.getClipboardValue());
},
signMessageAsync: async function(message) {
const result = AndroidReferralBridge.signMessageAsync(message);
return JSON.parse(result)
}
}
4 changes: 4 additions & 0 deletions app/src/main/java/org/p2p/wallet/App.kt
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,10 @@ import org.p2p.wallet.utils.SolanajTimberLogger
import org.p2p.core.BuildConfig as CoreBuildConfig
import org.p2p.wallet.BuildConfig as AppBuildConfig

@Suppress("KotlinConstantConditions")
val isLocalDebugBuild: Boolean
get() = AppBuildConfig.DEBUG && AppBuildConfig.BUILD_TYPE == "debug"

class App : Application(), Configuration.Provider {
private val crashLoggerInitializer: CrashLoggerInitializer by inject()
private val crashLogger: CrashLogger by inject()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -176,8 +176,8 @@ class AlarmErrorsLogger(
error: Throwable,
noinline requestProvider: suspend T.() -> AlarmErrorsRequest,
) {
val isErrorShouldBeLogged = error is CancellationException || error.cause is CancellationException
if (!isLoggerEnabled || !isErrorShouldBeLogged) return
val isFilteredError = error is CancellationException || error.cause is CancellationException
if (!isLoggerEnabled || isFilteredError) return

appScope.launch {
try {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,18 @@ import android.content.SharedPreferences
import android.graphics.Bitmap
import timber.log.Timber
import java.io.File
import org.p2p.core.crashlytics.CrashLogger
import org.p2p.core.crypto.Base58String
import org.p2p.core.crypto.toBase58Instance
import org.p2p.wallet.auth.model.Username
import org.p2p.wallet.auth.repository.UserSignUpDetailsStorage
import org.p2p.wallet.auth.username.repository.UsernameRepository
import org.p2p.wallet.auth.username.repository.model.UsernameDetails
import org.p2p.core.crashlytics.CrashLogger
import org.p2p.wallet.common.feature_toggles.toggles.remote.RegisterUsernameEnabledFeatureToggle
import org.p2p.wallet.common.feature_toggles.toggles.remote.UsernameDomainFeatureToggle
import org.p2p.wallet.common.storage.FileRepository
import org.p2p.wallet.infrastructure.network.provider.TokenKeyProvider
import org.p2p.wallet.restore.interactor.KEY_IS_AUTH_BY_SEED_PHRASE
import org.p2p.core.crypto.Base58String
import org.p2p.core.crypto.toBase58Instance

const val KEY_USERNAME = "KEY_USERNAME"
const val KEY_USERNAME_DOMAIN = "KEY_USERNAME_DOMAIN"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,27 +1,28 @@
package org.p2p.wallet.auth.ui.pin.newcreate

import androidx.activity.addCallback
import android.os.Bundle
import android.view.View
import androidx.activity.addCallback
import org.koin.android.ext.android.inject
import javax.crypto.Cipher
import org.p2p.core.analytics.constants.ScreenNames
import org.p2p.uikit.organisms.UiKitToolbar
import org.p2p.wallet.R
import org.p2p.wallet.auth.ui.reserveusername.ReserveUsernameFragment
import org.p2p.wallet.auth.ui.reserveusername.ReserveUsernameOpenedFrom
import org.p2p.core.analytics.constants.ScreenNames
import org.p2p.wallet.common.analytics.interactor.ScreensAnalyticsInteractor
import org.p2p.wallet.common.mvp.BaseMvpFragment
import org.p2p.wallet.databinding.FragmentNewCreatePinBinding
import org.p2p.wallet.home.ui.container.MainContainerFragment
import org.p2p.wallet.home.ui.main.MainFragmentOnCreateAction
import org.p2p.wallet.home.ui.main.MainFragmentOnCreateAction.PlayAnimation
import org.p2p.wallet.intercom.IntercomService
import org.p2p.wallet.root.RootActivity
import org.p2p.wallet.utils.BiometricPromptWrapper
import org.p2p.wallet.utils.popAndReplaceFragment
import org.p2p.wallet.utils.popBackStack
import org.p2p.wallet.utils.vibrate
import org.p2p.wallet.utils.viewbinding.viewBinding
import javax.crypto.Cipher

private const val VIBRATE_DURATION = 10L

Expand Down Expand Up @@ -125,6 +126,7 @@ class NewCreatePinFragment :
} else {
arrayListOf()
}
(activity as? RootActivity)?.onSignInSuccess()
popAndReplaceFragment(
MainContainerFragment.create(actions),
inclusive = true
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,18 @@ import androidx.appcompat.app.AlertDialog
import android.os.Bundle
import android.view.View
import org.koin.android.ext.android.inject
import javax.crypto.Cipher
import org.p2p.wallet.R
import org.p2p.wallet.auth.ui.onboarding.root.OnboardingRootFragment
import org.p2p.wallet.common.mvp.BaseMvpFragment
import org.p2p.wallet.databinding.FragmentSignInPinBinding
import org.p2p.wallet.home.ui.container.MainContainerFragment
import org.p2p.wallet.intercom.IntercomService
import org.p2p.wallet.root.RootActivity
import org.p2p.wallet.utils.BiometricPromptWrapper
import org.p2p.wallet.utils.popAndReplaceFragment
import org.p2p.wallet.utils.vibrate
import org.p2p.wallet.utils.viewbinding.viewBinding
import javax.crypto.Cipher

class SignInPinFragment :
BaseMvpFragment<SignInPinContract.View, SignInPinContract.Presenter>(R.layout.fragment_sign_in_pin),
Expand Down Expand Up @@ -74,6 +75,7 @@ class SignInPinFragment :

override fun onSignInSuccess() {
binding.pinView.onSuccessPin()
(activity as? RootActivity)?.onSignInSuccess()
popAndReplaceFragment(MainContainerFragment.create(), inclusive = true)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,22 +4,22 @@ import android.graphics.Bitmap
import android.os.Bundle
import android.view.View
import org.koin.android.ext.android.inject
import java.io.File
import org.p2p.core.utils.Constants
import org.p2p.uikit.utils.SpanUtils.highlightPublicKey
import org.p2p.uikit.utils.toast
import org.p2p.wallet.R
import org.p2p.wallet.auth.model.Username
import org.p2p.wallet.common.analytics.interactor.ScreensAnalyticsInteractor
import org.p2p.wallet.databinding.FragmentUsernameBinding
import org.p2p.wallet.receive.analytics.ReceiveAnalytics
import org.p2p.wallet.receive.list.TokenListFragment
import org.p2p.wallet.receive.list.ReceiveTokenListFragment
import org.p2p.wallet.receive.widget.BaseQrCodeFragment
import org.p2p.wallet.receive.widget.ReceiveCardView
import org.p2p.core.utils.Constants
import org.p2p.wallet.utils.popBackStack
import org.p2p.wallet.utils.replaceFragment
import org.p2p.wallet.utils.shareScreenShot
import org.p2p.wallet.utils.viewbinding.viewBinding
import java.io.File

class UsernameFragment :
BaseQrCodeFragment<UsernameContract.View, UsernameContract.Presenter>(R.layout.fragment_username),
Expand All @@ -42,7 +42,7 @@ class UsernameFragment :
toolbar.setNavigationOnClickListener { popBackStack() }
receiveCardView.initReceiveCardView()
progressButton.setOnClickListener {
replaceFragment(TokenListFragment.create())
replaceFragment(ReceiveTokenListFragment.create())
}
}
presenter.loadData()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ class EthereumInteractor(
ethereumRepository.cacheWalletTokens(tokens)
}

suspend fun updateTokensRates(tokensRates: List<TokenServicePrice>) {
suspend fun saveTokensRates(tokensRates: List<TokenServicePrice>) {
ethereumRepository.updateTokensRates(tokensRates)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,25 @@ import org.p2p.wallet.common.feature_toggles.toggles.remote.EthAddressEnabledFea
import org.p2p.wallet.send.model.NetworkType
import org.p2p.wallet.send.model.SearchResult
import org.p2p.wallet.send.ui.NewSendFragment
import org.p2p.wallet.send.ui.SearchOpenedFromScreen
import org.p2p.wallet.send.ui.search.NewSearchFragment
import org.p2p.wallet.send.ui.stub.SendUnavailableFragment
import org.p2p.wallet.user.interactor.UserInteractor

class SendFragmentFactory(private val ethAddressEnabledFeatureToggle: EthAddressEnabledFeatureToggle) {
class SendFragmentFactory(
private val ethAddressEnabledFeatureToggle: EthAddressEnabledFeatureToggle,
private val userInteractor: UserInteractor
) {

suspend fun searchFragment(): Fragment? {
val isAccountEmpty = userInteractor.getNonZeroUserTokens().isEmpty()
return if (isAccountEmpty) {
val token = userInteractor.getSingleTokenForBuy() ?: return null
SendUnavailableFragment.create(token)
} else {
NewSearchFragment.create(SearchOpenedFromScreen.MAIN)
}
}

fun sendFragment(searchResult: SearchResult, initialToken: Token.Active?): Fragment {
return if (ethAddressEnabledFeatureToggle.isFeatureEnabled &&
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,14 @@ import org.p2p.core.common.TextContainer
import org.p2p.core.common.di.AppScope
import org.p2p.core.model.CurrencyMode
import org.p2p.core.token.Token
import org.p2p.core.utils.SOL_DECIMALS
import org.p2p.core.utils.asNegativeUsdTransaction
import org.p2p.core.utils.asUsd
import org.p2p.core.utils.formatTokenWithSymbol
import org.p2p.core.utils.isConnectionError
import org.p2p.core.utils.isZero
import org.p2p.core.utils.orZero
import org.p2p.core.utils.scaleShort
import org.p2p.core.utils.scaleTwo
import org.p2p.core.utils.toBigDecimalOrZero
import org.p2p.uikit.utils.text.TextViewCellModel
import org.p2p.wallet.R
Expand Down Expand Up @@ -241,7 +242,7 @@ class BridgeSendPresenter(
if (calculationMode.getCurrencyMode() is CurrencyMode.Fiat.Usd) {
switchCurrencyMode()
}
val newTextValue = inputAmount.scaleShort().toPlainString()
val newTextValue = inputAmount.scaleTwo().toPlainString()
updateInputValue(newTextValue, forced = true)
calculationMode.updateInputAmount(newTextValue)
disableInputs()
Expand Down Expand Up @@ -300,7 +301,7 @@ class BridgeSendPresenter(
}
is CurrencyMode.Token -> {
val tokenSymbol = mode.symbol
amountPlusTotalFee.formatTokenWithSymbol(tokenSymbol)
amountPlusTotalFee.formatTokenWithSymbol(tokenSymbol, SOL_DECIMALS)
}
else -> {
emptyString()
Expand Down
3 changes: 3 additions & 0 deletions app/src/main/java/org/p2p/wallet/common/InAppFeatureFlags.kt
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import org.p2p.wallet.common.feature_toggles.toggles.inapp.DebugTogglesFeatureFl
import org.p2p.wallet.common.feature_toggles.toggles.inapp.DevNetFeatureFlag
import org.p2p.wallet.common.feature_toggles.toggles.inapp.InAppFeatureFlag
import org.p2p.wallet.common.feature_toggles.toggles.inapp.PollingFeatureFlag
import org.p2p.wallet.common.feature_toggles.toggles.inapp.ReferralRewardTxMockFlag
import org.p2p.wallet.common.feature_toggles.toggles.inapp.StrigaEnableEmailFieldFlag
import org.p2p.wallet.common.feature_toggles.toggles.inapp.StrigaKycBannerMockFlag
import org.p2p.wallet.common.feature_toggles.toggles.inapp.StrigaSimulateIbanNotFilledFlag
Expand All @@ -16,6 +17,7 @@ import org.p2p.wallet.common.feature_toggles.toggles.inapp.StrigaSmsVerification
class InAppFeatureFlags(prefs: SharedPreferences) {
val isPollingEnabled = PollingFeatureFlag(prefs)
var isDevNetEnabled = DevNetFeatureFlag(prefs)
val referralRewardTxMockEnabled = ReferralRewardTxMockFlag(prefs)
val strigaSimulateWeb3Flag = StrigaSimulateWeb3Flag(prefs)
val strigaSimulateUserCreateFlag = StrigaSimulateUserCreateFlag(prefs)
val strigaSmsVerificationMockFlag = StrigaSmsVerificationMockFlag(prefs)
Expand All @@ -33,6 +35,7 @@ class InAppFeatureFlags(prefs: SharedPreferences) {
isPollingEnabled,
isDevNetEnabled,
isDebugRemoteConfigEnabled,
referralRewardTxMockEnabled,
/*
strigaSimulateWeb3Flag,
strigaSimulateUserCreateFlag,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,12 @@ import org.p2p.wallet.common.feature_toggles.remote_config.LocalFirebaseRemoteCo
import org.p2p.wallet.common.feature_toggles.remote_config.RemoteConfigValuesProvider
import org.p2p.wallet.common.feature_toggles.toggles.FeatureToggleProvider
import org.p2p.wallet.common.feature_toggles.toggles.remote.EthAddressEnabledFeatureToggle
import org.p2p.wallet.common.feature_toggles.toggles.remote.ForceUpdateVersionCodeFeatureToggle
import org.p2p.wallet.common.feature_toggles.toggles.remote.NetworkObservationDebounceFeatureToggle
import org.p2p.wallet.common.feature_toggles.toggles.remote.NetworkObservationFeatureToggle
import org.p2p.wallet.common.feature_toggles.toggles.remote.NetworkObservationFrequencyFeatureToggle
import org.p2p.wallet.common.feature_toggles.toggles.remote.NetworkObservationPercentFeatureToggle
import org.p2p.wallet.common.feature_toggles.toggles.remote.PnlEnabledFeatureToggle
import org.p2p.wallet.common.feature_toggles.toggles.remote.ReferralProgramEnabledFeatureToggle
import org.p2p.wallet.common.feature_toggles.toggles.remote.RegisterUsernameEnabledFeatureToggle
import org.p2p.wallet.common.feature_toggles.toggles.remote.RegisterUsernameSkipEnabledFeatureToggle
Expand All @@ -37,7 +39,7 @@ object FeatureTogglesModule : InjectionModule {
singleOf(::FeatureTogglesValuesSource) bind RemoteConfigValuesProvider::class

factory {
setOf(
listOf(
get<SslPinningFeatureToggle>(),
get<SettingsNetworkListFeatureToggle>(),
get<NetworkObservationFeatureToggle>(),
Expand All @@ -52,7 +54,9 @@ object FeatureTogglesModule : InjectionModule {
get<StrigaSignupEnabledFeatureToggle>(),
get<SwapRoutesRefreshFeatureToggle>(),
get<ReferralProgramEnabledFeatureToggle>(),
).toList()
get<ForceUpdateVersionCodeFeatureToggle>(),
get<PnlEnabledFeatureToggle>(),
)
}

factoryOf(::SslPinningFeatureToggle)
Expand All @@ -62,6 +66,7 @@ object FeatureTogglesModule : InjectionModule {
factoryOf(::NetworkObservationPercentFeatureToggle)
factoryOf(::NetworkObservationFrequencyFeatureToggle)
factoryOf(::NetworkObservationDebounceFeatureToggle)
factoryOf(::ForceUpdateVersionCodeFeatureToggle)
factoryOf(::UsernameDomainFeatureToggle)
factoryOf(::RegisterUsernameEnabledFeatureToggle)
factoryOf(::RegisterUsernameSkipEnabledFeatureToggle)
Expand All @@ -72,6 +77,7 @@ object FeatureTogglesModule : InjectionModule {
factoryOf(::SwapRoutesValidationEnabledFeatureToggle)
factoryOf(::StrigaSignupEnabledFeatureToggle)
factoryOf(::ReferralProgramEnabledFeatureToggle)
factoryOf(::PnlEnabledFeatureToggle)

singleOf(::FeatureToggleProvider)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ import kotlin.coroutines.resume
import kotlin.coroutines.resumeWithException
import kotlinx.coroutines.launch
import kotlinx.coroutines.suspendCancellableCoroutine
import org.p2p.wallet.BuildConfig
import org.p2p.core.common.di.AppScope
import org.p2p.wallet.BuildConfig
import org.p2p.wallet.utils.retryOnException

private const val NO_VALUE = ""
Expand Down Expand Up @@ -53,7 +53,6 @@ class AppFirebaseRemoteConfig(
remoteConfig.fetchAndActivate()
.addOnSuccessListener {
isFetchFailed = false

Timber.d("Remote config fetched and activated")
Timber.i("Remote config fetched toggles: ${allFeatureTogglesRaw()}")
continuation.resume(allFeatureTogglesRaw())
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package org.p2p.wallet.common.feature_toggles.toggles.inapp

import android.content.SharedPreferences
import org.p2p.wallet.common.BooleanPreference

class ReferralRewardTxMockFlag(prefs: SharedPreferences) : InAppFeatureFlag() {
private companion object {
private const val KEY_FLAG = "KEY_REFERRAL_REWARD_TX_MOCK"
}
override val featureName: String = KEY_FLAG
override var featureValue: Boolean by BooleanPreference(
preferences = prefs, key = KEY_FLAG, defaultValue = false
)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package org.p2p.wallet.common.feature_toggles.toggles.remote

import org.p2p.wallet.common.feature_toggles.remote_config.RemoteConfigValuesProvider

class ForceUpdateVersionCodeFeatureToggle(
valuesProvider: RemoteConfigValuesProvider
) : LongFeatureToggle(valuesProvider) {
companion object {
const val NOT_FETCHED = -1L
}

override val featureKey: String = "android_force_update_version_code"
override val featureDescription: String = "Version code to force update to"
override val defaultValue: Long = NOT_FETCHED
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package org.p2p.wallet.common.feature_toggles.toggles.remote

import org.p2p.wallet.common.feature_toggles.remote_config.RemoteConfigValuesProvider

class PnlEnabledFeatureToggle(
valuesProvider: RemoteConfigValuesProvider
) : BooleanFeatureToggle(valuesProvider) {
override val featureKey: String = "pnl_enabled"
override val featureDescription: String = "Enables PNL calculation"
override val defaultValue: Boolean = false
}
Loading