File tree Expand file tree Collapse file tree 8 files changed +74
-14
lines changed
androidTest/java/com/duckduckgo/app/browser
main/java/com/duckduckgo/app/browser
src/main/java/com/duckduckgo/subscriptions/api
src/main/java/com/duckduckgo/subscriptions/impl
subscriptions-impl/src/main/java/com/duckduckgo/subscriptions/impl/messaging Expand file tree Collapse file tree 8 files changed +74
-14
lines changed Original file line number Diff line number Diff line change @@ -276,9 +276,9 @@ import com.duckduckgo.site.permissions.api.SitePermissionsManager
276
276
import com.duckduckgo.site.permissions.api.SitePermissionsManager.LocationPermissionRequest
277
277
import com.duckduckgo.site.permissions.api.SitePermissionsManager.SitePermissionQueryResponse
278
278
import com.duckduckgo.site.permissions.api.SitePermissionsManager.SitePermissions
279
+ import com.duckduckgo.subscriptions.api.SUBSCRIPTIONS_FEATURE_NAME
279
280
import com.duckduckgo.subscriptions.api.Subscriptions
280
- import com.duckduckgo.subscriptions.impl.messaging.RealSubscriptionsJSHelper.Companion.SUBSCRIPTIONS_FEATURE_NAME
281
- import com.duckduckgo.subscriptions.impl.messaging.SubscriptionsJSHelper
281
+ import com.duckduckgo.subscriptions.api.SubscriptionsJSHelper
282
282
import com.duckduckgo.sync.api.favicons.FaviconsFetchingPrompt
283
283
import com.duckduckgo.voice.api.VoiceSearchAvailability
284
284
import com.duckduckgo.voice.api.VoiceSearchAvailabilityPixelLogger
Original file line number Diff line number Diff line change @@ -341,9 +341,9 @@ import com.duckduckgo.site.permissions.api.SitePermissionsManager
341
341
import com.duckduckgo.site.permissions.api.SitePermissionsManager.LocationPermissionRequest
342
342
import com.duckduckgo.site.permissions.api.SitePermissionsManager.SitePermissionQueryResponse
343
343
import com.duckduckgo.site.permissions.api.SitePermissionsManager.SitePermissions
344
+ import com.duckduckgo.subscriptions.api.SUBSCRIPTIONS_FEATURE_NAME
344
345
import com.duckduckgo.subscriptions.api.Subscriptions
345
- import com.duckduckgo.subscriptions.impl.messaging.RealSubscriptionsJSHelper.Companion.SUBSCRIPTIONS_FEATURE_NAME
346
- import com.duckduckgo.subscriptions.impl.messaging.SubscriptionsJSHelper
346
+ import com.duckduckgo.subscriptions.api.SubscriptionsJSHelper
347
347
import com.duckduckgo.sync.api.favicons.FaviconsFetchingPrompt
348
348
import dagger.Lazy
349
349
import io.reactivex.schedulers.Schedulers
Original file line number Diff line number Diff line change @@ -140,6 +140,7 @@ subprojects {
140
140
&& dependencyPath. endsWith(" api" )
141
141
&& dependencyPath != " :feature-toggles-api"
142
142
&& dependencyPath != " :navigation-api"
143
+ && dependencyPath != " :js-messaging-api"
143
144
) {
144
145
if (projectPath. endsWith(" :feature-toggles-api" ) &&
145
146
(dependencyPath == " :experiments-api"
Original file line number Diff line number Diff line change @@ -23,6 +23,7 @@ apply from: "$rootProject.projectDir/gradle/android-library.gradle"
23
23
24
24
dependencies {
25
25
implementation project(path : ' :navigation-api' )
26
+ implementation project(' :js-messaging-api' )
26
27
implementation KotlinX . coroutines. core
27
28
}
28
29
Original file line number Diff line number Diff line change
1
+ /*
2
+ * Copyright (c) 2025 DuckDuckGo
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ package com.duckduckgo.subscriptions.api
18
+
19
+ import com.duckduckgo.js.messaging.api.JsCallbackData
20
+ import org.json.JSONObject
21
+
22
+ interface SubscriptionsJSHelper {
23
+ suspend fun processJsCallbackMessage (
24
+ featureName : String ,
25
+ method : String ,
26
+ id : String? ,
27
+ data : JSONObject ? ,
28
+ ): JsCallbackData ?
29
+ }
30
+
31
+ const val SUBSCRIPTIONS_FEATURE_NAME = " subscriptions"
Original file line number Diff line number Diff line change @@ -27,6 +27,7 @@ dependencies {
27
27
implementation project(' :anvil-annotations' )
28
28
implementation project(' :di' )
29
29
implementation project(' :subscriptions-api' )
30
+ implementation project(' :js-messaging-api' )
30
31
31
32
implementation KotlinX . coroutines. android
32
33
implementation Google . dagger
Original file line number Diff line number Diff line change
1
+ /*
2
+ * Copyright (c) 2025 DuckDuckGo
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ package com.duckduckgo.subscriptions.impl
17
+
18
+ import com.duckduckgo.di.scopes.AppScope
19
+ import com.duckduckgo.js.messaging.api.JsCallbackData
20
+ import com.duckduckgo.subscriptions.api.SubscriptionsJSHelper
21
+ import com.squareup.anvil.annotations.ContributesBinding
22
+ import javax.inject.Inject
23
+ import org.json.JSONObject
24
+
25
+ @ContributesBinding(AppScope ::class )
26
+ class SubscriptionsJSHelperDummy @Inject constructor() : SubscriptionsJSHelper {
27
+ override suspend fun processJsCallbackMessage (
28
+ featureName : String ,
29
+ method : String ,
30
+ id : String? ,
31
+ data : JSONObject ? ,
32
+ ): JsCallbackData ? {
33
+ return null
34
+ }
35
+ }
Original file line number Diff line number Diff line change @@ -18,21 +18,13 @@ package com.duckduckgo.subscriptions.impl.messaging
18
18
19
19
import com.duckduckgo.di.scopes.AppScope
20
20
import com.duckduckgo.js.messaging.api.JsCallbackData
21
+ import com.duckduckgo.subscriptions.api.SubscriptionsJSHelper
21
22
import com.duckduckgo.subscriptions.impl.SubscriptionsManager
22
23
import com.squareup.anvil.annotations.ContributesBinding
23
24
import javax.inject.Inject
24
25
import org.json.JSONArray
25
26
import org.json.JSONObject
26
27
27
- interface SubscriptionsJSHelper {
28
- suspend fun processJsCallbackMessage (
29
- featureName : String ,
30
- method : String ,
31
- id : String? ,
32
- data : JSONObject ? ,
33
- ): JsCallbackData ?
34
- }
35
-
36
28
@ContributesBinding(AppScope ::class )
37
29
class RealSubscriptionsJSHelper @Inject constructor(
38
30
private val subscriptionsManager : SubscriptionsManager ,
@@ -77,7 +69,6 @@ class RealSubscriptionsJSHelper @Inject constructor(
77
69
}
78
70
79
71
companion object {
80
- const val SUBSCRIPTIONS_FEATURE_NAME = " subscriptions"
81
72
private const val METHOD_HANDSHAKE = " handshake"
82
73
private const val METHOD_SUBSCRIPTION_DETAILS = " subscriptionDetails"
83
74
private const val AVAILABLE_MESSAGES = " availableMessages"
You can’t perform that action at this time.
0 commit comments