Skip to content

Commit b5fe6cb

Browse files
CDRussellsubsymbolic
authored andcommitted
Fix for corrupted DB crashes (#338)
* Possibly fix for corrupted DB crashes * Move https upgrader initialization to its own method
1 parent 8cc63c5 commit b5fe6cb

File tree

2 files changed

+13
-7
lines changed

2 files changed

+13
-7
lines changed

app/src/main/java/com/duckduckgo/app/global/DuckDuckGoApplication.kt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import com.duckduckgo.app.fire.FireActivity
3131
import com.duckduckgo.app.global.install.AppInstallStore
3232
import com.duckduckgo.app.global.notification.NotificationRegistrar
3333
import com.duckduckgo.app.global.shortcut.AppShortcutCreator
34+
import com.duckduckgo.app.httpsupgrade.HttpsUpgrader
3435
import com.duckduckgo.app.job.AppConfigurationSyncer
3536
import com.duckduckgo.app.migration.LegacyMigration
3637
import com.duckduckgo.app.statistics.api.StatisticsUpdater
@@ -48,6 +49,7 @@ import io.reactivex.schedulers.Schedulers
4849
import org.jetbrains.anko.doAsync
4950
import timber.log.Timber
5051
import javax.inject.Inject
52+
import kotlin.concurrent.thread
5153

5254
open class DuckDuckGoApplication : HasActivityInjector, HasServiceInjector, HasSupportFragmentInjector, Application(), LifecycleObserver {
5355

@@ -87,6 +89,9 @@ open class DuckDuckGoApplication : HasActivityInjector, HasServiceInjector, HasS
8789
@Inject
8890
lateinit var appShortcutCreator: AppShortcutCreator
8991

92+
@Inject
93+
lateinit var httpsUpgrader: HttpsUpgrader
94+
9095
override fun onCreate() {
9196
super.onCreate()
9297

@@ -110,6 +115,9 @@ open class DuckDuckGoApplication : HasActivityInjector, HasServiceInjector, HasS
110115

111116
migrateLegacyDb()
112117
notificationRegistrar.registerApp()
118+
119+
initializeHttpsUpgrader()
120+
113121
}
114122

115123
private fun recordInstallationTimestamp() {
@@ -164,6 +172,10 @@ open class DuckDuckGoApplication : HasActivityInjector, HasServiceInjector, HasS
164172
statisticsUpdater.initializeAtb()
165173
}
166174

175+
private fun initializeHttpsUpgrader() {
176+
thread { httpsUpgrader.reloadData() }
177+
}
178+
167179
/**
168180
* Immediately syncs data. Upon completion (successful or error),
169181
* it will schedule a recurring job to keep the data in sync.

app/src/main/java/com/duckduckgo/app/httpsupgrade/HttpsUpgrader.kt

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ import com.duckduckgo.app.httpsupgrade.api.HttpsBloomFilterFactory
2424
import com.duckduckgo.app.httpsupgrade.db.HttpsWhitelistDao
2525
import timber.log.Timber
2626
import java.util.concurrent.locks.ReentrantLock
27-
import kotlin.concurrent.thread
2827

2928
interface HttpsUpgrader {
3029

@@ -35,6 +34,7 @@ interface HttpsUpgrader {
3534
return uri.buildUpon().scheme(UrlScheme.https).build()
3635
}
3736

37+
@WorkerThread
3838
fun reloadData()
3939
}
4040

@@ -46,12 +46,6 @@ class HttpsUpgraderImpl(
4646
private var httpsBloomFilter: BloomFilter? = null
4747
private val dataReloadLock = ReentrantLock()
4848

49-
init {
50-
thread {
51-
reloadData()
52-
}
53-
}
54-
5549
@WorkerThread
5650
override fun shouldUpgrade(uri: Uri): Boolean {
5751

0 commit comments

Comments
 (0)