diff --git a/app/build.gradle b/app/build.gradle index 43af141..2065a25 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,10 +11,6 @@ android { versionCode computeVersionCode() versionName computeVersionName() - // Branch.io key from local.properties or environment variable - manifestPlaceholders = [ - BRANCH_KEY: readRawSecretOrNull('BRANCH_KEY') ?: "key_test_placeholder" - ] } signingConfigs { dev { diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index efd4320..d4c8443 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -127,17 +127,6 @@ - - - - - - - - - - - - - - - diff --git a/app/src/main/java/io/novafoundation/nova/app/App.kt b/app/src/main/java/io/novafoundation/nova/app/App.kt index 48060ea..c3b177b 100644 --- a/app/src/main/java/io/novafoundation/nova/app/App.kt +++ b/app/src/main/java/io/novafoundation/nova/app/App.kt @@ -15,7 +15,6 @@ import io.novafoundation.nova.common.di.FeatureContainer import io.novafoundation.nova.common.resources.ContextManager import io.novafoundation.nova.common.resources.LanguagesHolder import io.novafoundation.nova.common.utils.coroutines.RootScope -import io.novafoundation.nova.feature_deep_linking.presentation.handling.branchIo.BranchIOLinkHandler import io.novafoundation.nova.feature_wallet_connect_impl.BuildConfig import javax.inject.Inject @@ -57,8 +56,6 @@ open class App : Application(), FeatureContainer { appComponent.inject(this) - BranchIOLinkHandler.Initializer.init(this) - initializeWalletConnect() } diff --git a/app/src/main/java/io/novafoundation/nova/app/root/di/RootDependencies.kt b/app/src/main/java/io/novafoundation/nova/app/root/di/RootDependencies.kt index ec5522e..0861f02 100644 --- a/app/src/main/java/io/novafoundation/nova/app/root/di/RootDependencies.kt +++ b/app/src/main/java/io/novafoundation/nova/app/root/di/RootDependencies.kt @@ -42,7 +42,6 @@ import io.novafoundation.nova.feature_dapp_api.data.repository.BrowserTabExterna import io.novafoundation.nova.feature_dapp_api.data.repository.DAppMetadataRepository import io.novafoundation.nova.feature_dapp_api.di.deeplinks.DAppDeepLinks import io.novafoundation.nova.feature_deep_linking.presentation.handling.PendingDeepLinkProvider -import io.novafoundation.nova.feature_deep_linking.presentation.handling.branchIo.BranchIoLinkConverter import io.novafoundation.nova.feature_deep_linking.presentation.handling.common.DeepLinkingPreferences import io.novafoundation.nova.feature_gift_api.di.GiftDeepLinks import io.novafoundation.nova.feature_governance_api.data.MutableGovernanceState @@ -122,8 +121,6 @@ interface RootDependencies { val deepLinkingPreferences: DeepLinkingPreferences - val branchIoLinkConverter: BranchIoLinkConverter - val pendingDeepLinkProvider: PendingDeepLinkProvider val multisigExtrinsicValidationRequestBus: MultisigExtrinsicValidationRequestBus diff --git a/app/src/main/java/io/novafoundation/nova/app/root/di/deeplink/DeepLinksModule.kt b/app/src/main/java/io/novafoundation/nova/app/root/di/deeplink/DeepLinksModule.kt index 6ce2e98..786bb01 100644 --- a/app/src/main/java/io/novafoundation/nova/app/root/di/deeplink/DeepLinksModule.kt +++ b/app/src/main/java/io/novafoundation/nova/app/root/di/deeplink/DeepLinksModule.kt @@ -12,8 +12,6 @@ import io.novafoundation.nova.feature_dapp_api.di.deeplinks.DAppDeepLinks import io.novafoundation.nova.feature_deep_linking.presentation.handling.DeepLinkHandler import io.novafoundation.nova.feature_deep_linking.presentation.handling.PendingDeepLinkProvider import io.novafoundation.nova.feature_deep_linking.presentation.handling.RootDeepLinkHandler -import io.novafoundation.nova.feature_deep_linking.presentation.handling.branchIo.BranchIOLinkHandler -import io.novafoundation.nova.feature_deep_linking.presentation.handling.branchIo.BranchIoLinkConverter import io.novafoundation.nova.feature_gift_api.di.GiftDeepLinks import io.novafoundation.nova.feature_governance_api.di.deeplinks.GovernanceDeepLinks import io.novafoundation.nova.feature_multisig_operations.di.deeplink.MultisigDeepLinks @@ -65,11 +63,4 @@ class DeepLinksModule { ) } - @Provides - @FeatureScope - fun provideBranchIOLinkHandler( - branchIoLinkConverter: BranchIoLinkConverter - ): BranchIOLinkHandler { - return BranchIOLinkHandler(branchIoLinkConverter) - } } diff --git a/app/src/main/java/io/novafoundation/nova/app/root/presentation/RootActivity.kt b/app/src/main/java/io/novafoundation/nova/app/root/presentation/RootActivity.kt index 252ac95..4160cc7 100644 --- a/app/src/main/java/io/novafoundation/nova/app/root/presentation/RootActivity.kt +++ b/app/src/main/java/io/novafoundation/nova/app/root/presentation/RootActivity.kt @@ -19,7 +19,6 @@ import io.novafoundation.nova.common.utils.systemCall.SystemCallExecutor import io.novafoundation.nova.common.utils.updatePadding import io.novafoundation.nova.common.view.bottomSheet.action.observeActionBottomSheet import io.novafoundation.nova.common.view.dialog.dialog -import io.novafoundation.nova.feature_deep_linking.presentation.handling.branchIo.BranchIOLinkHandler import io.novafoundation.nova.feature_push_notifications.presentation.multisigsWarning.observeEnableMultisigPushesAlert import io.novafoundation.nova.splash.presentation.SplashBackgroundHolder @@ -36,9 +35,6 @@ class RootActivity : BaseActivity(), SplashB @Inject lateinit var contextManager: ContextManager - @Inject - lateinit var branchIOLinkHandler: BranchIOLinkHandler - override fun createBinding(): ActivityRootBinding { return ActivityRootBinding.inflate(LayoutInflater.from(this)) } @@ -92,7 +88,6 @@ class RootActivity : BaseActivity(), SplashB super.onNewIntent(intent) setIntent(intent) - branchIOLinkHandler.onActivityNewIntent(this, intent) processIntent(intent) } @@ -108,8 +103,6 @@ class RootActivity : BaseActivity(), SplashB override fun onStart() { super.onStart() - branchIOLinkHandler.onActivityStart(this, viewModel::handleDeepLink) - viewModel.noticeInForeground() } diff --git a/build.gradle b/build.gradle index 2c85f40..1e78e0f 100644 --- a/build.gradle +++ b/build.gradle @@ -220,8 +220,6 @@ buildscript { swipeRefershLayout = "androidx.swiperefreshlayout:swiperefreshlayout:1.2.0-alpha01" - branchIo = "io.branch.sdk.android:library:5.18.0" - playServiceIdentifier = "com.google.android.gms:play-services-ads-identifier:18.2.0" androidxWebKit = "androidx.webkit:webkit:1.14.0" diff --git a/common/src/main/res/values-ku/strings.xml b/common/src/main/res/values-ku/strings.xml index afd5f1d..daf3938 100644 --- a/common/src/main/res/values-ku/strings.xml +++ b/common/src/main/res/values-ku/strings.xml @@ -302,8 +302,6 @@ %s://polkadot/migration-accepted?key=%s access Bluetooth - pezkuwi-wallet.app.link - pezkuwi-wallet-alternate.app.link Press both buttons on yê te %s to approve addresses Press confirm button on yê te %s to approve addresses diff --git a/common/src/main/res/values/strings.xml b/common/src/main/res/values/strings.xml index c299a4f..f614b97 100644 --- a/common/src/main/res/values/strings.xml +++ b/common/src/main/res/values/strings.xml @@ -2759,8 +2759,6 @@ Scam alert Transfer details Yesterday - pezkuwi-wallet.app.link - pezkuwi-wallet-alternate.app.link Pezkuwi Trust Score diff --git a/feature-deep-linking/build.gradle b/feature-deep-linking/build.gradle index 91c5f7f..f105e17 100644 --- a/feature-deep-linking/build.gradle +++ b/feature-deep-linking/build.gradle @@ -24,7 +24,6 @@ dependencies { implementation androidDep implementation materialDep - implementation branchIo implementation playServiceIdentifier implementation coroutinesDep diff --git a/feature-deep-linking/src/main/java/io/novafoundation/nova/feature_deep_linking/di/DeepLinkingFeatureApi.kt b/feature-deep-linking/src/main/java/io/novafoundation/nova/feature_deep_linking/di/DeepLinkingFeatureApi.kt index 0230390..7744844 100644 --- a/feature-deep-linking/src/main/java/io/novafoundation/nova/feature_deep_linking/di/DeepLinkingFeatureApi.kt +++ b/feature-deep-linking/src/main/java/io/novafoundation/nova/feature_deep_linking/di/DeepLinkingFeatureApi.kt @@ -2,7 +2,6 @@ package io.novafoundation.nova.feature_deep_linking.di import io.novafoundation.nova.feature_deep_linking.presentation.configuring.LinkBuilderFactory import io.novafoundation.nova.feature_deep_linking.presentation.handling.PendingDeepLinkProvider -import io.novafoundation.nova.feature_deep_linking.presentation.handling.branchIo.BranchIoLinkConverter import io.novafoundation.nova.feature_deep_linking.presentation.handling.common.DeepLinkingPreferences interface DeepLinkingFeatureApi { @@ -10,7 +9,5 @@ interface DeepLinkingFeatureApi { val pendingDeepLinkProvider: PendingDeepLinkProvider - val branchIoLinkConverter: BranchIoLinkConverter - val linkBuilderFactory: LinkBuilderFactory } diff --git a/feature-deep-linking/src/main/java/io/novafoundation/nova/feature_deep_linking/di/DeepLinkingFeatureModule.kt b/feature-deep-linking/src/main/java/io/novafoundation/nova/feature_deep_linking/di/DeepLinkingFeatureModule.kt index 67bff2a..4b84dcb 100644 --- a/feature-deep-linking/src/main/java/io/novafoundation/nova/feature_deep_linking/di/DeepLinkingFeatureModule.kt +++ b/feature-deep-linking/src/main/java/io/novafoundation/nova/feature_deep_linking/di/DeepLinkingFeatureModule.kt @@ -8,7 +8,6 @@ import io.novafoundation.nova.common.resources.ResourceManager import io.novafoundation.nova.feature_deep_linking.R import io.novafoundation.nova.feature_deep_linking.presentation.configuring.LinkBuilderFactory import io.novafoundation.nova.feature_deep_linking.presentation.handling.PendingDeepLinkProvider -import io.novafoundation.nova.feature_deep_linking.presentation.handling.branchIo.BranchIoLinkConverter import io.novafoundation.nova.feature_deep_linking.presentation.handling.common.DeepLinkingPreferences @Module @@ -21,11 +20,7 @@ class DeepLinkingFeatureModule { ) = DeepLinkingPreferences( deepLinkScheme = resourceManager.getString(R.string.deep_linking_scheme), deepLinkHost = resourceManager.getString(R.string.deep_linking_host), - appLinkHost = resourceManager.getString(R.string.app_link_host), - branchIoLinkHosts = listOf( - resourceManager.getString(R.string.branch_io_link_host), - resourceManager.getString(R.string.branch_io_link_host_alternate) - ) + appLinkHost = resourceManager.getString(R.string.app_link_host) ) @Provides @@ -38,9 +33,4 @@ class DeepLinkingFeatureModule { return PendingDeepLinkProvider(preferences) } - @Provides - @FeatureScope - fun provideBranchIoLinkConverter( - deepLinkingPreferences: DeepLinkingPreferences - ) = BranchIoLinkConverter(deepLinkingPreferences) } diff --git a/feature-deep-linking/src/main/java/io/novafoundation/nova/feature_deep_linking/presentation/configuring/LinkBuilder.kt b/feature-deep-linking/src/main/java/io/novafoundation/nova/feature_deep_linking/presentation/configuring/LinkBuilder.kt index 26f31da..5ab67ac 100644 --- a/feature-deep-linking/src/main/java/io/novafoundation/nova/feature_deep_linking/presentation/configuring/LinkBuilder.kt +++ b/feature-deep-linking/src/main/java/io/novafoundation/nova/feature_deep_linking/presentation/configuring/LinkBuilder.kt @@ -2,7 +2,6 @@ package io.novafoundation.nova.feature_deep_linking.presentation.configuring import android.net.Uri import io.novafoundation.nova.common.utils.appendPathOrSkip -import io.novafoundation.nova.feature_deep_linking.presentation.handling.branchIo.BranchIOConstants import io.novafoundation.nova.feature_deep_linking.presentation.handling.common.DeepLinkingPreferences interface LinkBuilder { @@ -76,22 +75,26 @@ class AppLinkBuilderType( private val deepLinkingPreferences: DeepLinkingPreferences ) : LinkBuilder { + private var action: String? = null + private var entity: String? = null + private var screen: String? = null + private val urlBuilder = Uri.Builder() .scheme("https") - .authority(deepLinkingPreferences.branchIoLinkHosts.first()) + .authority(deepLinkingPreferences.appLinkHost) override fun setAction(action: String): LinkBuilder { - urlBuilder.appendQueryParameter(BranchIOConstants.ACTION_QUERY, action) + this.action = action return this } override fun setEntity(entity: String): LinkBuilder { - urlBuilder.appendQueryParameter(BranchIOConstants.ENTITY_QUERY, entity) + this.entity = entity return this } override fun setScreen(screen: String): LinkBuilder { - urlBuilder.appendQueryParameter(BranchIOConstants.SCREEN_QUERY, screen) + this.screen = screen return this } @@ -101,7 +104,14 @@ class AppLinkBuilderType( } override fun build(): Uri { - return urlBuilder.build() + val finalPath = Uri.Builder() + .appendPathOrSkip(action) + .appendPathOrSkip(entity) + .appendPathOrSkip(screen) + .build() + .path + + return urlBuilder.path(finalPath).build() } } diff --git a/feature-deep-linking/src/main/java/io/novafoundation/nova/feature_deep_linking/presentation/handling/branchIo/BranchIOConstants.kt b/feature-deep-linking/src/main/java/io/novafoundation/nova/feature_deep_linking/presentation/handling/branchIo/BranchIOConstants.kt deleted file mode 100644 index a4c5459..0000000 --- a/feature-deep-linking/src/main/java/io/novafoundation/nova/feature_deep_linking/presentation/handling/branchIo/BranchIOConstants.kt +++ /dev/null @@ -1,7 +0,0 @@ -package io.novafoundation.nova.feature_deep_linking.presentation.handling.branchIo - -object BranchIOConstants { - const val ACTION_QUERY = "action" - const val SCREEN_QUERY = "screen" - const val ENTITY_QUERY = "entity" -} diff --git a/feature-deep-linking/src/main/java/io/novafoundation/nova/feature_deep_linking/presentation/handling/branchIo/BranchIOLinkHandler.kt b/feature-deep-linking/src/main/java/io/novafoundation/nova/feature_deep_linking/presentation/handling/branchIo/BranchIOLinkHandler.kt deleted file mode 100644 index 77f7981..0000000 --- a/feature-deep-linking/src/main/java/io/novafoundation/nova/feature_deep_linking/presentation/handling/branchIo/BranchIOLinkHandler.kt +++ /dev/null @@ -1,56 +0,0 @@ -package io.novafoundation.nova.feature_deep_linking.presentation.handling.branchIo - -import android.app.Activity -import android.content.Context -import android.content.Intent -import android.net.Uri -import android.util.Log -import io.branch.referral.Branch -import io.branch.referral.Defines -import io.novafoundation.nova.common.utils.LOG_TAG -import io.novafoundation.nova.feature_deep_linking.BuildConfig - -class BranchIOLinkHandler( - private val deepLinkFactory: BranchIoLinkConverter -) { - - object Initializer { - fun init(context: Context) { - if (BuildConfig.DEBUG) { - Branch.enableLogging() - } - - val branchInstance = Branch.getAutoInstance(context) - branchInstance.setConsumerProtectionAttributionLevel(Defines.BranchAttributionLevel.REDUCED) - } - } - - fun onActivityStart(activity: Activity, deepLinkCallback: (Uri) -> Unit) { - Branch.sessionBuilder(activity) - .withCallback { branchUniversalObject, _, error -> - if (error != null) { - Log.e(LOG_TAG, error.toString()) - } - - if (branchUniversalObject != null) { - val deepLink = deepLinkFactory.formatToDeepLink(branchUniversalObject) - deepLinkCallback(deepLink) - } - } - .withData(activity.intent.data) - .init() - } - - fun onActivityNewIntent(activity: Activity, intent: Intent?) { - if (intent != null && intent.getBooleanExtra("branch_force_new_session", false)) { - Branch.sessionBuilder(activity) - .withCallback { _, error -> - if (error != null) { - Log.e(LOG_TAG, error.toString()) - } - } - .withData(intent.data) - .reInit() - } - } -} diff --git a/feature-deep-linking/src/main/java/io/novafoundation/nova/feature_deep_linking/presentation/handling/branchIo/BranchIoLinkConverter.kt b/feature-deep-linking/src/main/java/io/novafoundation/nova/feature_deep_linking/presentation/handling/branchIo/BranchIoLinkConverter.kt deleted file mode 100644 index d0a8e51..0000000 --- a/feature-deep-linking/src/main/java/io/novafoundation/nova/feature_deep_linking/presentation/handling/branchIo/BranchIoLinkConverter.kt +++ /dev/null @@ -1,44 +0,0 @@ -package io.novafoundation.nova.feature_deep_linking.presentation.handling.branchIo - -import android.net.Uri -import io.branch.indexing.BranchUniversalObject -import io.novafoundation.nova.common.utils.appendPathOrSkip -import io.novafoundation.nova.common.utils.appendQueries -import io.novafoundation.nova.feature_deep_linking.presentation.handling.common.DeepLinkingPreferences - -private val BRANCH_PARAMS_PREFIX = listOf("~", "$", "+") - -class BranchIoLinkConverter( - private val deepLinkingPreferences: DeepLinkingPreferences -) { - - fun formatToDeepLink(data: BranchUniversalObject): Uri { - val queries = data.contentMetadata.customMetadata - .excludeInternalIOQueries() - .toMutableMap() - - return Uri.Builder() - .scheme(deepLinkingPreferences.deepLinkScheme) - .authority(deepLinkingPreferences.deepLinkHost) - .appendPathOrSkip(queries.extractAction()) - .appendPathOrSkip(queries.extractSubject()) - .appendQueries(queries) - .build() - } - - private fun Map.excludeInternalIOQueries(): Map { - return filterKeys { key -> - val isBranchIOQuery = BRANCH_PARAMS_PREFIX.any { prefix -> key.startsWith(prefix) } - !isBranchIOQuery - } - } - - private fun MutableMap.extractAction(): String? { - return remove(BranchIOConstants.ACTION_QUERY) - } - - private fun MutableMap.extractSubject(): String? { - return remove(BranchIOConstants.SCREEN_QUERY) - ?: remove(BranchIOConstants.ENTITY_QUERY) - } -} diff --git a/feature-deep-linking/src/main/java/io/novafoundation/nova/feature_deep_linking/presentation/handling/common/DeepLinkingPreferences.kt b/feature-deep-linking/src/main/java/io/novafoundation/nova/feature_deep_linking/presentation/handling/common/DeepLinkingPreferences.kt index f443b8c..f3ee4ce 100644 --- a/feature-deep-linking/src/main/java/io/novafoundation/nova/feature_deep_linking/presentation/handling/common/DeepLinkingPreferences.kt +++ b/feature-deep-linking/src/main/java/io/novafoundation/nova/feature_deep_linking/presentation/handling/common/DeepLinkingPreferences.kt @@ -5,8 +5,7 @@ import android.net.Uri class DeepLinkingPreferences( val deepLinkScheme: String, val deepLinkHost: String, - val appLinkHost: String, - val branchIoLinkHosts: List + val appLinkHost: String ) fun Uri.isDeepLink(preferences: DeepLinkingPreferences): Boolean {