Skip to content

Commit 753864e

Browse files
authored
Clean up app stack
1 parent 79a8c23 commit 753864e

File tree

12 files changed

+51
-143
lines changed

12 files changed

+51
-143
lines changed

app/src/androidTest/java/com/duckduckgo/app/browser/BrowserViewModelTest.kt

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,6 @@ class BrowserViewModelTest {
7070

7171
private var lastNetworkLeaderboardEntry: NetworkLeaderboardEntry? = null
7272

73-
private val testStringResolver: StringResolver = object : StringResolver {}
74-
7573
private val testNetworkLeaderboardDao: NetworkLeaderboardDao = object : NetworkLeaderboardDao {
7674
override fun insert(leaderboardEntry: NetworkLeaderboardEntry) {
7775
lastNetworkLeaderboardEntry = leaderboardEntry
@@ -122,7 +120,6 @@ class BrowserViewModelTest {
122120
termsOfServiceStore = mockTermsOfServiceStore,
123121
trackerNetworks = TrackerNetworks(),
124122
privacyMonitorRepository = PrivacyMonitorRepository(),
125-
stringResolver = testStringResolver,
126123
networkLeaderboardDao = testNetworkLeaderboardDao,
127124
autoCompleteApi = mockAutoCompleteApi,
128125
appSettingsPreferencesStore = mockSettingsStore,
@@ -151,15 +148,6 @@ class BrowserViewModelTest {
151148
assertEquals("nytimes.com", testee.viewState.value!!.omnibarText)
152149
}
153150

154-
@Test
155-
fun whenBookmarksResultCodeIsOpenUrlThenNavigate() {
156-
testee.receivedBookmarksResult(BookmarksActivity.OPEN_URL_RESULT_CODE, "www.example.com")
157-
val captor: ArgumentCaptor<Command> = ArgumentCaptor.forClass(Command::class.java)
158-
verify(mockNavigationObserver).onChanged(captor.capture())
159-
assertNotNull(captor.value)
160-
assertTrue(captor.value is Navigate)
161-
}
162-
163151
@Test
164152
fun whenUrlPresentThenAddBookmarkButtonEnabled() {
165153
testee.urlChanged("www.example.com")

app/src/main/AndroidManifest.xml

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@
1111
android:allowBackup="false"
1212
android:icon="@mipmap/ic_launcher"
1313
android:label="@string/appName"
14+
android:networkSecurityConfig="@xml/network_security_config"
1415
android:supportsRtl="true"
1516
android:theme="@style/AppTheme"
16-
android:networkSecurityConfig="@xml/network_security_config"
1717
tools:ignore="GoogleAppIndexingWarning">
1818

1919
<meta-data
@@ -57,7 +57,6 @@
5757
<activity
5858
android:name=".BrowserActivity"
5959
android:configChanges="keyboardHidden|orientation|screenSize"
60-
android:launchMode="singleTask"
6160
android:parentActivityName="com.duckduckgo.app.home.HomeActivity" />
6261

6362
<activity
@@ -82,20 +81,17 @@
8281

8382
<activity
8483
android:name="com.duckduckgo.app.settings.SettingsActivity"
85-
android:label="@string/settingsActivityTitle"
86-
android:parentActivityName=".BrowserActivity" />
84+
android:label="@string/settingsActivityTitle" />
8785

8886
<activity
8987
android:name="com.duckduckgo.app.about.AboutDuckDuckGoActivity"
9088
android:label="@string/aboutActivityTitle"
9189
android:parentActivityName="com.duckduckgo.app.settings.SettingsActivity"
92-
9390
android:theme="@style/AppTheme" />
9491

9592
<activity
9693
android:name="com.duckduckgo.app.bookmarks.ui.BookmarksActivity"
97-
android:label="@string/bookmarksActivityTitle"
98-
android:parentActivityName=".BrowserActivity" />
94+
android:label="@string/bookmarksActivityTitle" />
9995

10096
<service
10197
android:name="com.duckduckgo.app.job.AppConfigurationJobService"

app/src/main/java/com/duckduckgo/app/about/AboutDuckDuckGoActivity.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import android.content.Intent
2121
import android.os.Bundle
2222
import android.support.v7.app.AppCompatActivity
2323
import com.duckduckgo.app.browser.R
24+
import com.duckduckgo.app.home.HomeActivity
2425
import kotlinx.android.synthetic.main.content_about_duck_duck_go.*
2526
import kotlinx.android.synthetic.main.include_toolbar.*
2627

@@ -32,7 +33,7 @@ class AboutDuckDuckGoActivity : AppCompatActivity() {
3233
configureActionBar()
3334

3435
learnMoreLink.setOnClickListener {
35-
setResult(RESULT_CODE_LOAD_ABOUT_DDG_WEB_PAGE)
36+
startActivity(HomeActivity.intent(this, getString(R.string.aboutUrl)))
3637
finish()
3738
}
3839
}

app/src/main/java/com/duckduckgo/app/bookmarks/ui/BookmarksActivity.kt

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ import com.duckduckgo.app.bookmarks.db.BookmarkEntity
3333
import com.duckduckgo.app.browser.R
3434
import com.duckduckgo.app.global.DuckDuckGoActivity
3535
import com.duckduckgo.app.global.ViewModelFactory
36+
import com.duckduckgo.app.home.HomeActivity
3637
import kotlinx.android.synthetic.main.content_bookmarks.*
3738
import kotlinx.android.synthetic.main.include_toolbar.*
3839
import kotlinx.android.synthetic.main.view_bookmark_entry.view.*
@@ -85,8 +86,7 @@ class BookmarksActivity : DuckDuckGoActivity() {
8586
}
8687

8788
private fun openBookmark(bookmark: BookmarkEntity) {
88-
val intent = Intent(bookmark.url)
89-
setResult(OPEN_URL_RESULT_CODE, intent)
89+
startActivity(HomeActivity.intent(this, bookmark.url))
9090
finish()
9191
}
9292

@@ -116,8 +116,6 @@ class BookmarksActivity : DuckDuckGoActivity() {
116116
fun intent(context: Context): Intent {
117117
return Intent(context, BookmarksActivity::class.java)
118118
}
119-
120-
val OPEN_URL_RESULT_CODE = Activity.RESULT_FIRST_USER
121119
}
122120

123121
class BookmarksAdapter(val context: Context, val viewModel: BookmarksViewModel) : Adapter<BookmarksViewHolder>() {

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

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ class BrowserActivity : DuckDuckGoActivity() {
130130
configureAutoComplete()
131131

132132
if (savedInstanceState == null) {
133-
consumeSharedTextExtra()
133+
consumeSharedQuery()
134134
}
135135
}
136136

@@ -147,8 +147,8 @@ class BrowserActivity : DuckDuckGoActivity() {
147147
autoCompleteSuggestionsList.adapter = autoCompleteSuggestionsAdapter
148148
}
149149

150-
private fun consumeSharedTextExtra() {
151-
val sharedText = intent.getStringExtra(SHARED_TEXT_EXTRA)
150+
private fun consumeSharedQuery() {
151+
val sharedText = intent.getStringExtra(QUERY_EXTRA)
152152
if (sharedText != null) {
153153
viewModel.onSharedTextReceived(sharedText)
154154
}
@@ -397,19 +397,16 @@ class BrowserActivity : DuckDuckGoActivity() {
397397
}
398398

399399
private fun launchSettingsView() {
400-
startActivityForResult(SettingsActivity.intent(this), SETTINGS_REQUEST_CODE)
400+
startActivity(SettingsActivity.intent(this))
401401
}
402402

403403
private fun launchBookmarksView() {
404-
startActivityForResult(BookmarksActivity.intent(this), BOOKMARKS_REQUEST_CODE)
404+
startActivity(BookmarksActivity.intent(this))
405405
}
406406

407407
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
408-
when (requestCode) {
409-
DASHBOARD_REQUEST_CODE -> viewModel.receivedDashboardResult(resultCode)
410-
SETTINGS_REQUEST_CODE -> viewModel.receivedSettingsResult(resultCode)
411-
BOOKMARKS_REQUEST_CODE -> viewModel.receivedBookmarksResult(resultCode, data?.action)
412-
else -> super.onActivityResult(requestCode, resultCode, data)
408+
if (requestCode == DASHBOARD_REQUEST_CODE ) {
409+
viewModel.receivedDashboardResult(resultCode)
413410
}
414411
}
415412

@@ -441,16 +438,14 @@ class BrowserActivity : DuckDuckGoActivity() {
441438

442439
companion object {
443440

444-
fun intent(context: Context, sharedText: String? = null): Intent {
441+
fun intent(context: Context, queryExtra: String? = null): Intent {
445442
val intent = Intent(context, BrowserActivity::class.java)
446-
intent.putExtra(SHARED_TEXT_EXTRA, sharedText)
443+
intent.putExtra(QUERY_EXTRA, queryExtra)
447444
return intent
448445
}
449446

450-
private const val SHARED_TEXT_EXTRA = "SHARED_TEXT_EXTRA"
451-
private const val SETTINGS_REQUEST_CODE = 100
452-
private const val DASHBOARD_REQUEST_CODE = 101
453-
private const val BOOKMARKS_REQUEST_CODE = 102
447+
private const val QUERY_EXTRA = "QUERY_EXTRA"
448+
private const val DASHBOARD_REQUEST_CODE = 100
454449
}
455450

456451
}

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

Lines changed: 2 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,11 @@ import android.net.Uri
2323
import android.support.annotation.AnyThread
2424
import android.support.annotation.VisibleForTesting
2525
import android.support.annotation.WorkerThread
26-
import com.duckduckgo.app.about.AboutDuckDuckGoActivity.Companion.RESULT_CODE_LOAD_ABOUT_DDG_WEB_PAGE
2726
import com.duckduckgo.app.autocomplete.api.AutoCompleteApi
2827
import com.duckduckgo.app.autocomplete.api.AutoCompleteApi.AutoCompleteResult
2928
import com.duckduckgo.app.bookmarks.db.BookmarkEntity
3029
import com.duckduckgo.app.bookmarks.db.BookmarksDao
31-
import com.duckduckgo.app.bookmarks.ui.BookmarksActivity.Companion.OPEN_URL_RESULT_CODE
3230
import com.duckduckgo.app.browser.BrowserViewModel.Command.Navigate
33-
import com.duckduckgo.app.browser.BrowserViewModel.Command.Refresh
3431
import com.duckduckgo.app.browser.omnibar.OmnibarEntryConverter
3532
import com.duckduckgo.app.global.SingleLiveEvent
3633
import com.duckduckgo.app.global.StringResolver
@@ -43,7 +40,6 @@ import com.duckduckgo.app.privacymonitor.model.improvedGrade
4340
import com.duckduckgo.app.privacymonitor.store.PrivacyMonitorRepository
4441
import com.duckduckgo.app.privacymonitor.store.TermsOfServiceStore
4542
import com.duckduckgo.app.privacymonitor.ui.PrivacyDashboardActivity.Companion.RELOAD_RESULT_CODE
46-
import com.duckduckgo.app.privacymonitor.ui.PrivacyDashboardActivity.Companion.TOSDR_RESULT_CODE
4743
import com.duckduckgo.app.settings.db.AppConfigurationDao
4844
import com.duckduckgo.app.settings.db.AppConfigurationEntity
4945
import com.duckduckgo.app.settings.db.SettingsDataStore
@@ -61,7 +57,6 @@ class BrowserViewModel(
6157
private val termsOfServiceStore: TermsOfServiceStore,
6258
private val trackerNetworks: TrackerNetworks,
6359
private val privacyMonitorRepository: PrivacyMonitorRepository,
64-
private val stringResolver: StringResolver,
6560
private val networkLeaderboardDao: NetworkLeaderboardDao,
6661
private val bookmarksDao: BookmarksDao,
6762
private val autoCompleteApi: AutoCompleteApi,
@@ -284,7 +279,6 @@ class BrowserViewModel(
284279
if(hasQueryChanged && hasFocus && autoCompleteSuggestionsEnabled) {
285280
autoCompletePublishSubject.accept(query.trim())
286281
}
287-
288282
}
289283

290284
fun onSharedTextReceived(input: String) {
@@ -305,37 +299,14 @@ class BrowserViewModel(
305299
}
306300

307301
fun receivedDashboardResult(resultCode: Int) {
308-
when (resultCode) {
309-
RELOAD_RESULT_CODE -> command.value = Refresh()
310-
TOSDR_RESULT_CODE -> {
311-
val url = stringResolver.getString(R.string.tosdrUrl)
312-
openUrl(url)
313-
}
314-
}
315-
}
316-
317-
fun receivedSettingsResult(resultCode: Int) {
318-
when (resultCode) {
319-
RESULT_CODE_LOAD_ABOUT_DDG_WEB_PAGE -> {
320-
val url = stringResolver.getString(R.string.aboutUrl)
321-
openUrl(url)
322-
}
323-
}
302+
if (resultCode == RELOAD_RESULT_CODE) command.value = Command.Refresh()
324303
}
325304

326305
@WorkerThread
327306
fun addBookmark(title: String?, url: String?) {
328307
bookmarksDao.insert(BookmarkEntity(title = title, url = url!!))
329308
}
330-
331-
fun receivedBookmarksResult(resultCode: Int, action: String?) {
332-
when (resultCode) {
333-
OPEN_URL_RESULT_CODE -> {
334-
openUrl(action ?: return)
335-
}
336-
}
337-
}
338-
309+
339310
private fun openUrl(url: String) {
340311
command.value = Navigate(url)
341312
}

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

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ package com.duckduckgo.app.global
1818

1919
import android.os.Bundle
2020
import android.support.v7.app.AppCompatActivity
21+
import android.view.MenuItem
2122
import dagger.android.AndroidInjection
2223

2324

@@ -27,4 +28,14 @@ abstract class DuckDuckGoActivity : AppCompatActivity() {
2728
AndroidInjection.inject(this)
2829
super.onCreate(savedInstanceState)
2930
}
31+
32+
override fun onOptionsItemSelected(item: MenuItem): Boolean {
33+
when (item.itemId) {
34+
android.R.id.home -> {
35+
onBackPressed()
36+
return true
37+
}
38+
}
39+
return super.onOptionsItemSelected(item)
40+
}
3041
}

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,6 @@ class ViewModelFactory @Inject constructor(
7979
termsOfServiceStore = termsOfServiceStore,
8080
trackerNetworks = trackerNetworks,
8181
privacyMonitorRepository = privacyMonitorRepository,
82-
stringResolver = stringResolver,
8382
networkLeaderboardDao = networkLeaderboardDao,
8483
bookmarksDao = bookmarksDao,
8584
appSettingsPreferencesStore = appSettingsPreferencesStore,

0 commit comments

Comments
 (0)