Skip to content

Commit db85ca9

Browse files
malmsteindaxmobile
andauthored
Site Permissions: Code Clean up (#5363)
Task/Issue URL: https://app.asana.com/0/72649045549333/1208702063802241/f ### Description This PR finishes cleaning up the code from Site Permissions. - Moves strings to site permissions module - Moves Activities to site permissions module - Removes old LocationPermissions ### Steps to test this PR Navigate to Site Permissions screen and smoke test it --------- Co-authored-by: Dax The Translator <[email protected]>
1 parent f48c80e commit db85ca9

File tree

194 files changed

+1866
-1131
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

194 files changed

+1866
-1131
lines changed

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

-21
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,6 @@ import com.duckduckgo.app.global.install.AppInstallStore
142142
import com.duckduckgo.app.global.model.PrivacyShield.PROTECTED
143143
import com.duckduckgo.app.global.model.Site
144144
import com.duckduckgo.app.global.model.SiteFactoryImpl
145-
import com.duckduckgo.app.location.GeoLocationPermissions
146145
import com.duckduckgo.app.location.data.LocationPermissionsDao
147146
import com.duckduckgo.app.onboarding.store.AppStage
148147
import com.duckduckgo.app.onboarding.store.AppStage.ESTABLISHED
@@ -370,8 +369,6 @@ class BrowserTabViewModelTest {
370369

371370
private val mockFileDownloader: FileDownloader = mock()
372371

373-
private val geoLocationPermissions: GeoLocationPermissions = mock()
374-
375372
private val fireproofDialogsEventHandler: FireproofDialogsEventHandler = mock()
376373

377374
private val mockEmailManager: EmailManager = mock()
@@ -3038,8 +3035,6 @@ class BrowserTabViewModelTest {
30383035
)
30393036

30403037
givenCurrentSite(domain)
3041-
givenDeviceLocationSharingIsEnabled(true)
3042-
givenLocationPermissionIsEnabled(true)
30433038

30443039
loadUrl("https://www.example.com", isBrowserShowing = true)
30453040

@@ -3055,8 +3050,6 @@ class BrowserTabViewModelTest {
30553050
)
30563051

30573052
givenCurrentSite(domain)
3058-
givenDeviceLocationSharingIsEnabled(true)
3059-
givenLocationPermissionIsEnabled(true)
30603053

30613054
loadUrl("https://www.example.com", isBrowserShowing = true)
30623055

@@ -3066,8 +3059,6 @@ class BrowserTabViewModelTest {
30663059
@Test
30673060
fun whenUserVisitsDomainWithoutLocationPermissionThenMessageIsNotShown() = runTest {
30683061
val domain = "https://www.example.com"
3069-
givenDeviceLocationSharingIsEnabled(true)
3070-
givenLocationPermissionIsEnabled(true)
30713062
givenCurrentSite(domain)
30723063
loadUrl("https://www.example.com", isBrowserShowing = true)
30733064

@@ -3077,8 +3068,6 @@ class BrowserTabViewModelTest {
30773068
@Test
30783069
fun whenUserVisitsDomainAndLocationIsNotEnabledThenMessageIsNotShown() = runTest {
30793070
val domain = "https://www.example.com"
3080-
givenDeviceLocationSharingIsEnabled(true)
3081-
givenLocationPermissionIsEnabled(false)
30823071
givenCurrentSite(domain)
30833072

30843073
loadUrl("https://www.example.com", isBrowserShowing = true)
@@ -3095,8 +3084,6 @@ class BrowserTabViewModelTest {
30953084
)
30963085

30973086
givenCurrentSite(domain)
3098-
givenDeviceLocationSharingIsEnabled(true)
3099-
givenLocationPermissionIsEnabled(true)
31003087

31013088
loadUrl("https://www.example.com", isBrowserShowing = true)
31023089
loadUrl("https://www.example.com", isBrowserShowing = true)
@@ -5901,14 +5888,6 @@ class BrowserTabViewModelTest {
59015888
dismissedCtaDaoChannel.send(listOf(DismissedCta(CtaId.DAX_DIALOG_TRACKERS_FOUND)))
59025889
}
59035890

5904-
private fun givenDeviceLocationSharingIsEnabled(state: Boolean) {
5905-
whenever(geoLocationPermissions.isDeviceLocationEnabled()).thenReturn(state)
5906-
}
5907-
5908-
private fun givenLocationPermissionIsEnabled(state: Boolean) {
5909-
whenever(mockSettingsStore.appLocationPermission).thenReturn(state)
5910-
}
5911-
59125891
private inline fun <reified T : Command> assertCommandIssued(instanceAssertions: T.() -> Unit = {}) {
59135892
verify(mockCommandObserver, atLeastOnce()).onChanged(commandCaptor.capture())
59145893
val issuedCommand = commandCaptor.allValues.find { it is T }

app/src/androidTest/java/com/duckduckgo/app/browser/favicon/DuckDuckGoFaviconManagerTest.kt

-6
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ import com.duckduckgo.app.browser.favicon.FileBasedFaviconPersister.Companion.NO
2929
import com.duckduckgo.app.fire.fireproofwebsite.data.FireproofWebsiteDao
3030
import com.duckduckgo.app.fire.fireproofwebsite.data.FireproofWebsiteRepositoryImpl
3131
import com.duckduckgo.app.location.data.LocationPermissionsDao
32-
import com.duckduckgo.app.location.data.LocationPermissionsRepositoryImpl
3332
import com.duckduckgo.autofill.api.store.AutofillStore
3433
import com.duckduckgo.common.test.CoroutineTestRule
3534
import com.duckduckgo.common.utils.faviconLocation
@@ -75,11 +74,6 @@ class DuckDuckGoFaviconManagerTest {
7574
faviconPersister = mockFaviconPersister,
7675
savedSitesDao = mockSavedSitesDao,
7776
fireproofWebsiteRepository = FireproofWebsiteRepositoryImpl(mockFireproofWebsiteDao, coroutineRule.testDispatcherProvider, mock()),
78-
locationPermissionsRepository = LocationPermissionsRepositoryImpl(
79-
mockLocationPermissionsDao,
80-
mock(),
81-
coroutineRule.testDispatcherProvider,
82-
),
8377
savedSitesRepository = mockSavedSitesRepository,
8478
faviconDownloader = mockFaviconDownloader,
8579
dispatcherProvider = coroutineRule.testDispatcherProvider,

app/src/androidTest/java/com/duckduckgo/app/global/view/ClearPersonalDataActionTest.kt

+1-4
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ import com.duckduckgo.app.fire.AppCacheClearer
2626
import com.duckduckgo.app.fire.UnsentForgetAllPixelStore
2727
import com.duckduckgo.app.fire.fireproofwebsite.data.FireproofWebsiteEntity
2828
import com.duckduckgo.app.fire.fireproofwebsite.data.FireproofWebsiteRepository
29-
import com.duckduckgo.app.location.GeoLocationPermissions
3029
import com.duckduckgo.app.settings.db.SettingsDataStore
3130
import com.duckduckgo.app.tabs.model.TabRepository
3231
import com.duckduckgo.cookies.api.DuckDuckGoCookieManager
@@ -56,7 +55,6 @@ class ClearPersonalDataActionTest {
5655
private val mockSettingsDataStore: SettingsDataStore = mock()
5756
private val mockCookieManager: DuckDuckGoCookieManager = mock()
5857
private val mockAppCacheClearer: AppCacheClearer = mock()
59-
private val mockGeoLocationPermissions: GeoLocationPermissions = mock()
6058
private val mockThirdPartyCookieManager: ThirdPartyCookieManager = mock()
6159
private val mockAdClickManager: AdClickManager = mock()
6260
private val mockFireproofWebsiteRepository: FireproofWebsiteRepository = mock()
@@ -78,7 +76,6 @@ class ClearPersonalDataActionTest {
7876
settingsDataStore = mockSettingsDataStore,
7977
cookieManager = mockCookieManager,
8078
appCacheClearer = mockAppCacheClearer,
81-
geoLocationPermissions = mockGeoLocationPermissions,
8279
thirdPartyCookieManager = mockThirdPartyCookieManager,
8380
adClickManager = mockAdClickManager,
8481
fireproofWebsiteRepository = mockFireproofWebsiteRepository,
@@ -131,7 +128,7 @@ class ClearPersonalDataActionTest {
131128
@Test
132129
fun whenClearCalledThenGeoLocationPermissionsAreCleared() = runTest {
133130
testee.clearTabsAndAllDataAsync(appInForeground = false, shouldFireDataClearPixel = false)
134-
verify(mockGeoLocationPermissions).clearAllButFireproofed()
131+
verify(mockSitePermissionsManager).clearAllButFireproof(any())
135132
}
136133

137134
@Test

app/src/androidTest/java/com/duckduckgo/app/location/GeoLocationPermissionsTest.kt

-163
This file was deleted.

app/src/main/AndroidManifest.xml

-9
Original file line numberDiff line numberDiff line change
@@ -376,15 +376,6 @@
376376
android:exported="false"
377377
android:label="@string/fireproofWebsitesActivityTitle"
378378
android:parentActivityName="com.duckduckgo.app.settings.SettingsActivity" />
379-
<activity
380-
android:name="com.duckduckgo.app.sitepermissions.SitePermissionsActivity"
381-
android:exported="false"
382-
android:label="@string/settingsSitePermissions"
383-
android:parentActivityName="com.duckduckgo.app.settings.SettingsActivity" />
384-
<activity
385-
android:name="com.duckduckgo.app.sitepermissions.permissionsperwebsite.PermissionsPerWebsiteActivity"
386-
android:exported="false"
387-
android:parentActivityName="com.duckduckgo.app.sitepermissions.SitePermissionsActivity" />
388379
<activity
389380
android:name="com.duckduckgo.app.fire.FireActivity"
390381
android:exported="false"

app/src/main/java/com/duckduckgo/app/appearance/AppearanceActivity.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ class AppearanceActivity : DuckDuckGoActivity() {
205205
),
206206
OmnibarPosition.entries.indexOf(position) + 1,
207207
)
208-
.setPositiveButton(R.string.dialogSave)
208+
.setPositiveButton(com.duckduckgo.mobile.android.R.string.dialogSave)
209209
.setNegativeButton(R.string.cancel)
210210
.addEventListener(
211211
object : RadioListAlertDialogBuilder.EventListener() {

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

+2-2
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,6 @@ import com.duckduckgo.app.pixels.AppPixelName
6060
import com.duckduckgo.app.pixels.AppPixelName.FIRE_DIALOG_CANCEL
6161
import com.duckduckgo.app.settings.SettingsActivity
6262
import com.duckduckgo.app.settings.db.SettingsDataStore
63-
import com.duckduckgo.app.sitepermissions.SitePermissionsActivity
6463
import com.duckduckgo.app.statistics.pixels.Pixel
6564
import com.duckduckgo.app.tabs.model.TabEntity
6665
import com.duckduckgo.appbuildconfig.api.AppBuildConfig
@@ -79,6 +78,7 @@ import com.duckduckgo.privacy.dashboard.api.ui.DashboardOpener
7978
import com.duckduckgo.privacy.dashboard.api.ui.PrivacyDashboardHybridScreenParams.PrivacyDashboardPrimaryScreen
8079
import com.duckduckgo.privacy.dashboard.api.ui.PrivacyDashboardHybridScreenParams.PrivacyDashboardToggleReportScreen
8180
import com.duckduckgo.savedsites.impl.bookmarks.BookmarksActivity.Companion.SAVED_SITE_URL_EXTRA
81+
import com.duckduckgo.site.permissions.impl.ui.SitePermissionScreenNoParams
8282
import javax.inject.Inject
8383
import kotlinx.coroutines.CoroutineScope
8484
import kotlinx.coroutines.Job
@@ -535,7 +535,7 @@ open class BrowserActivity : DuckDuckGoActivity() {
535535
}
536536

537537
fun launchSitePermissionsSettings() {
538-
startActivity(SitePermissionsActivity.intent(this))
538+
globalActivityStarter.start(this, SitePermissionScreenNoParams)
539539
}
540540

541541
fun launchBookmarks() {

app/src/main/java/com/duckduckgo/app/browser/favicon/DuckDuckGoFaviconManager.kt

-3
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ import com.duckduckgo.app.browser.favicon.FileBasedFaviconPersister.Companion.NO
2828
import com.duckduckgo.app.fire.fireproofwebsite.data.FireproofWebsiteRepository
2929
import com.duckduckgo.app.global.view.generateDefaultDrawable
3030
import com.duckduckgo.app.global.view.loadFavicon
31-
import com.duckduckgo.app.location.data.LocationPermissionsRepository
3231
import com.duckduckgo.autofill.api.store.AutofillStore
3332
import com.duckduckgo.common.utils.DispatcherProvider
3433
import com.duckduckgo.common.utils.baseHost
@@ -44,7 +43,6 @@ class DuckDuckGoFaviconManager constructor(
4443
private val faviconPersister: FaviconPersister,
4544
private val savedSitesDao: SavedSitesEntitiesDao,
4645
private val fireproofWebsiteRepository: FireproofWebsiteRepository,
47-
private val locationPermissionsRepository: LocationPermissionsRepository,
4846
private val savedSitesRepository: SavedSitesRepository,
4947
private val faviconDownloader: FaviconDownloader,
5048
private val dispatcherProvider: DispatcherProvider,
@@ -269,7 +267,6 @@ class DuckDuckGoFaviconManager constructor(
269267

270268
return withContext(dispatcherProvider.io()) {
271269
savedSitesDao.countEntitiesByUrl(query) +
272-
locationPermissionsRepository.permissionEntitiesCountByDomain(query) +
273270
fireproofWebsiteRepository.fireproofWebsitesCountByDomain(domain) +
274271
savedSitesRepository.getFavoritesCountByDomain(query) +
275272
autofillStore.getCredentials(domain).size

app/src/main/java/com/duckduckgo/app/browser/favicon/FaviconModule.kt

-3
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ package com.duckduckgo.app.browser.favicon
1818

1919
import android.content.Context
2020
import com.duckduckgo.app.fire.fireproofwebsite.data.FireproofWebsiteRepository
21-
import com.duckduckgo.app.location.data.LocationPermissionsRepository
2221
import com.duckduckgo.autofill.api.store.AutofillStore
2322
import com.duckduckgo.common.utils.DispatcherProvider
2423
import com.duckduckgo.di.scopes.AppScope
@@ -38,7 +37,6 @@ class FaviconModule {
3837
faviconPersister: FaviconPersister,
3938
bookmarksDao: SavedSitesEntitiesDao,
4039
fireproofWebsiteRepository: FireproofWebsiteRepository,
41-
locationPermissionsRepository: LocationPermissionsRepository,
4240
savedSitesRepository: SavedSitesRepository,
4341
faviconDownloader: FaviconDownloader,
4442
dispatcherProvider: DispatcherProvider,
@@ -50,7 +48,6 @@ class FaviconModule {
5048
faviconPersister,
5149
bookmarksDao,
5250
fireproofWebsiteRepository,
53-
locationPermissionsRepository,
5451
savedSitesRepository,
5552
faviconDownloader,
5653
dispatcherProvider,

0 commit comments

Comments
 (0)