Skip to content

Commit c01d47e

Browse files
CDRussellsubsymbolic
authored andcommitted
Save "duckduckgo" cookies from being deleted when fire action invoked
1 parent 47570f5 commit c01d47e

File tree

5 files changed

+59
-10
lines changed

5 files changed

+59
-10
lines changed

app/src/main/java/com/duckduckgo/app/browser/BrowserActivity.kt

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ import android.view.Menu
3232
import android.view.MenuItem
3333
import android.view.View
3434
import android.view.inputmethod.EditorInfo.IME_ACTION_DONE
35+
import android.webkit.CookieManager
3536
import android.webkit.WebSettings.MIXED_CONTENT_COMPATIBILITY_MODE
3637
import android.widget.TextView
3738
import android.widget.Toast
@@ -52,13 +53,15 @@ import org.jetbrains.anko.toast
5253
import org.jetbrains.anko.uiThread
5354
import timber.log.Timber
5455
import javax.inject.Inject
56+
import javax.inject.Provider
5557

5658

5759
class BrowserActivity : DuckDuckGoActivity() {
5860

5961
@Inject lateinit var webViewClient: BrowserWebViewClient
6062
@Inject lateinit var webChromeClient: BrowserChromeClient
6163
@Inject lateinit var viewModelFactory: ViewModelFactory
64+
@Inject lateinit var cookieManagerProvider: Provider<CookieManager>
6265

6366
private lateinit var popupMenu: BrowserPopupMenu
6467

@@ -337,11 +340,11 @@ class BrowserActivity : DuckDuckGoActivity() {
337340
}
338341

339342
private fun launchFire() {
340-
FireDialog(this, {
341-
finishActivityAnimated()
342-
}, {
343-
applicationContext.toast(R.string.fireDataCleared)
344-
}).show()
343+
FireDialog(context = this,
344+
clearStarted = { finishActivityAnimated() },
345+
clearComplete = { applicationContext.toast(R.string.fireDataCleared) },
346+
cookieManager = cookieManagerProvider.get()
347+
).show()
345348
}
346349

347350
private fun launchPopupMenu() {

app/src/main/java/com/duckduckgo/app/di/AppComponent.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ import javax.inject.Singleton
3838
(DatabaseModule::class),
3939
(JsonModule::class),
4040
(StringModule::class),
41+
(BrowserModule::class),
4142
(BrowserAutoCompleteModule::class)
4243
])
4344
interface AppComponent : AndroidInjector<DuckDuckGoApplication> {
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
/*
2+
* Copyright (c) 2018 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.app.di
18+
19+
import android.webkit.CookieManager
20+
import dagger.Module
21+
import dagger.Provides
22+
23+
@Module
24+
class BrowserModule {
25+
26+
@Provides
27+
fun cookieManager(): CookieManager = CookieManager.getInstance()
28+
}

app/src/main/java/com/duckduckgo/app/global/view/FireDialog.kt

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,10 @@ import android.webkit.WebView
2424
import com.duckduckgo.app.browser.R
2525
import kotlinx.android.synthetic.main.sheet_fire_clear_data.*
2626

27-
class FireDialog(context: Context, clearStarted: (() -> Unit), clearComplete: (() -> Unit)) : BottomSheetDialog(context) {
27+
class FireDialog(context: Context,
28+
private val cookieManager: CookieManager,
29+
clearStarted: (() -> Unit),
30+
clearComplete: (() -> Unit)) : BottomSheetDialog(context) {
2831

2932
init {
3033
val contentView = View.inflate(getContext(), R.layout.sheet_fire_clear_data, null)
@@ -47,8 +50,15 @@ class FireDialog(context: Context, clearStarted: (() -> Unit), clearComplete: ((
4750
}
4851

4952
private fun clearCookies(clearAllCallback: (() -> Unit)) {
50-
CookieManager.getInstance().removeAllCookies {
53+
val ddgCookie = cookieManager.getCookie(DDG_URL)
54+
55+
cookieManager.removeAllCookies {
56+
cookieManager.setCookie(DDG_URL, ddgCookie)
5157
clearAllCallback()
5258
}
5359
}
60+
61+
companion object {
62+
private const val DDG_URL = "duckduckgo.com"
63+
}
5464
}

app/src/main/java/com/duckduckgo/app/home/HomeActivity.kt

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import android.support.v7.app.AppCompatActivity
2424
import android.view.Menu
2525
import android.view.MenuItem
2626
import android.view.View
27+
import android.webkit.CookieManager
2728
import com.duckduckgo.app.about.AboutDuckDuckGoActivity
2829
import com.duckduckgo.app.bookmarks.ui.BookmarksActivity
2930
import com.duckduckgo.app.browser.BrowserActivity
@@ -36,11 +37,16 @@ import kotlinx.android.synthetic.main.activity_home.*
3637
import kotlinx.android.synthetic.main.content_home.*
3738
import kotlinx.android.synthetic.main.popup_window_brower_menu.view.*
3839
import org.jetbrains.anko.toast
40+
import javax.inject.Inject
41+
import javax.inject.Provider
3942

4043
class HomeActivity : AppCompatActivity() {
4144

4245
private lateinit var popupMenu: BrowserPopupMenu
4346

47+
@Inject
48+
lateinit var cookieManagerProvider: Provider<CookieManager>
49+
4450
override fun onCreate(savedInstanceState: Bundle?) {
4551
super.onCreate(savedInstanceState)
4652
setContentView(R.layout.activity_home)
@@ -104,9 +110,10 @@ class HomeActivity : AppCompatActivity() {
104110
}
105111

106112
private fun launchFire() {
107-
FireDialog(this, {}, {
108-
toast(R.string.fireDataCleared)
109-
}).show()
113+
FireDialog(context = this,
114+
cookieManager = cookieManagerProvider.get(),
115+
clearStarted = {},
116+
clearComplete = { toast(R.string.fireDataCleared) }).show()
110117
}
111118

112119
private fun launchPopupMenu() {

0 commit comments

Comments
 (0)