diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index fb346f27be0b..0ffb0ea589c9 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -1,4 +1,3 @@
-
Task/Issue URL:
### Description
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index ff20a8b05310..bb71973e93d6 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -450,11 +450,6 @@
android:label="@string/downloadsActivityTitle"
android:parentActivityName=".BrowserActivity" />
-
-
{
// https://app.asana.com/0/0/1204697337057464/f
// during the initial migration of favourites we didn't properly add them to bookmarks
diff --git a/app/src/main/java/com/duckduckgo/app/job/AppConfigurationJobService.kt b/app/src/main/java/com/duckduckgo/app/job/AppConfigurationJobService.kt
deleted file mode 100644
index 4a8c02088586..000000000000
--- a/app/src/main/java/com/duckduckgo/app/job/AppConfigurationJobService.kt
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (c) 2017 DuckDuckGo
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.duckduckgo.app.job
-
-import android.app.job.JobParameters
-import android.app.job.JobScheduler
-import android.app.job.JobService
-import com.duckduckgo.anvil.annotations.InjectWith
-import com.duckduckgo.di.scopes.ActivityScope
-import dagger.android.AndroidInjection
-import javax.inject.Inject
-import timber.log.Timber
-
-@Deprecated(
- "This is the old sync service which uses JobScheduler. " +
- "A new version, `AppConfigurationWorker` uses WorkManager and should be used going forwards.",
-)
-@InjectWith(ActivityScope::class)
-class AppConfigurationJobService : JobService() {
-
- @Inject
- lateinit var jobScheduler: JobScheduler
-
- override fun onCreate() {
- AndroidInjection.inject(this)
- super.onCreate()
- }
-
- override fun onStartJob(params: JobParameters?): Boolean {
- Timber.i("Deprecated AppConfigurationJobService running. Unscheduling future syncs using this job")
- jobScheduler.cancel(LEGACY_APP_CONFIGURATION_JOB_ID)
- return false
- }
-
- override fun onStopJob(params: JobParameters?): Boolean = false
-
- companion object {
- const val LEGACY_APP_CONFIGURATION_JOB_ID = 1
- }
-}
diff --git a/app/version/version.properties b/app/version/version.properties
index 6d1c58d10000..b89e6db9db01 100644
--- a/app/version/version.properties
+++ b/app/version/version.properties
@@ -1 +1 @@
-VERSION=5.195.0
\ No newline at end of file
+VERSION=5.195.1
\ No newline at end of file
diff --git a/subscriptions/subscriptions-impl/src/main/java/com/duckduckgo/subscriptions/impl/billing/RealBillingClientAdapter.kt b/subscriptions/subscriptions-impl/src/main/java/com/duckduckgo/subscriptions/impl/billing/RealBillingClientAdapter.kt
index 7f6970bdd985..e0a72aba1b9a 100644
--- a/subscriptions/subscriptions-impl/src/main/java/com/duckduckgo/subscriptions/impl/billing/RealBillingClientAdapter.kt
+++ b/subscriptions/subscriptions-impl/src/main/java/com/duckduckgo/subscriptions/impl/billing/RealBillingClientAdapter.kt
@@ -40,11 +40,12 @@ import com.squareup.anvil.annotations.ContributesBinding
import dagger.SingleInstanceIn
import java.lang.IllegalArgumentException
import javax.inject.Inject
-import kotlinx.coroutines.ExperimentalCoroutinesApi
-import kotlinx.coroutines.suspendCancellableCoroutine
+import kotlin.coroutines.resume
+import kotlin.coroutines.suspendCoroutine
import kotlinx.coroutines.withContext
+import logcat.LogPriority.WARN
+import logcat.logcat
-@OptIn(ExperimentalCoroutinesApi::class)
@ContributesBinding(AppScope::class)
@SingleInstanceIn(AppScope::class)
class RealBillingClientAdapter @Inject constructor(
@@ -71,7 +72,7 @@ class RealBillingClientAdapter @Inject constructor(
}
.build()
- return suspendCancellableCoroutine { continuation ->
+ return suspendCoroutine { continuation ->
billingClient?.startConnection(
object : BillingClientStateListener {
override fun onBillingServiceDisconnected() {
@@ -84,7 +85,11 @@ class RealBillingClientAdapter @Inject constructor(
else -> Failure(billingError = p0.responseCode.toBillingError())
}
- continuation.resume(result, onCancellation = null)
+ try {
+ continuation.resume(result)
+ } catch (e: IllegalStateException) {
+ logcat(priority = WARN) { "onBillingSetupFinished() invoked more than once" }
+ }
}
},
)