Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[pull] develop from duckduckgo:develop #350

Open
wants to merge 3,655 commits into
base: develop
Choose a base branch
from

Conversation

pull[bot]
Copy link

@pull pull bot commented Aug 19, 2021

See Commits and Changes for more details.


Created by pull[bot]

Can you help keep this open source service alive? 💖 Please sponsor : )

CDRussell and others added 23 commits December 6, 2024 13:56
…eyboard (#5357)

Task/Issue URL:
https://app.asana.com/0/488551667048375/1208921164205364/f

### Description
Replace the instances where we look for a soft keyboard button with a
specific ID and directly press enter key

**Before**
```
tapOn:
     id: "com.google.android.inputmethod.latin:id/key_pos_ime_action"
```

**After**
```
- pressKey: Enter
```

### Steps to test this PR

- QA optional as long as
https://github.com/duckduckgo/Android/actions/runs/12197659365 passes
- If you want to test, run one or more of the changed test files

Co-authored-by: Craig Russell <[email protected]>
Task/Issue URL:
https://app.asana.com/0/1201870266890790/1208769785329643/f

### Description
We're implementing the simplified broken site reporting flow that
already exists on other platforms here, prompting users to report site
breakage on URLs where they toggle off protections.

### Steps to test this PR

_Toggle Reports_
- [x] Set up your local environment by checking out the
[privacy-dashboard
branch](https://github.com/duckduckgo/privacy-dashboard/tree/pr-releases/pr-196)
and editing `app/build.gradle` to point to its location ([replacing this
bit](https://github.com/duckduckgo/Android/blob/4677ba3e51108db4d4f20071977c73baaaa5bb40/app/build.gradle#L44)).
- [x] Navigate to any non-DuckDuckGo site and tap the privacy shield,
then toggle off protections
   - [x] Confirm that you're shown the report prompting screen
- [x] Click on "See what's sent" and confirm the data details expand
into view
- [x] Tap "Send report" and confirm that the
`m_protection-toggled-off-breakage-report` pixel is sent with
`reportFlow=on_protections_off_dashboard_main`
- [x] Re-enable protections
- [x] Tap the 3-dot menu and then "Disable privacy protection"
   - [x] Confirm that you're again shown the prompt screen
- [x] Tap "Send report" and confirm that the above pixel is sent with
`reportFlow=on_protections_off_menu`
- [x] Re-enable protections
- [x] Toggle off protections again from either entry point and confirm
that you are again show the prompt
   - [x] Tap "Don't send"
- [x] Confirm that you are no longer shown the prompt from either
toggle-off point (block should last 48 hours, but that value can be
overridden by the remote privacy config -- there is [an existing
JSONblob](https://jsonblob.com/api/1306645031426056192) with both
intervals set to 2 minutes if you'd like to test more exhaustively, as I
did)

---------

Co-authored-by: Aitor Viana <[email protected]>
Task/Issue URL:
https://app.asana.com/0/1208921166781775/1208921166781775
Autoconsent Release:
https://github.com/duckduckgo/autoconsent/releases/tag/v12.2.0


## Description
Updates Autoconsent to version
[v12.2.0](https://github.com/duckduckgo/autoconsent/releases/tag/v12.2.0).

### Autoconsent v12.2.0 release notes
See release notes
[here](https://github.com/duckduckgo/autoconsent/blob/v12.2.0/CHANGELOG.md)

## Steps to test
This release has been tested during Autoconsent development. You can
check the release notes for more information.
1. Make sure that there's no unexpected failures in CI checks
2. (optional) smoke test some of the sites mentioned in the release
notes
3. If there are problems, reach out to a CPM DRI

Co-authored-by: muodov <[email protected]>
Task/Issue URL:
https://app.asana.com/0/1202552961248957/1208930104860728/f

### Description
Added a return statement after handling shortcut URLs to prevent
unintended processing of the same URL through multiple paths.

### Steps to test this PR

_Shortcut Handling_
- [ ] Set Show on App Launch to New Tab Page or Specific Page: Settings
-> General -> Show on App Launch
- [ ] Open a website and add it as a shortcut
- [ ] Force close the app
- [ ] Open the shortcut you made earlier
- [ ] The New Tab Page or Specific Page you set earlier should **not**
open

### UI changes
No UI changes
Task/Issue URL:
https://app.asana.com/0/1205648422731273/1208929009317918/f

### Description

This PR fixes an issue where with auth v2 enabled, users may see an
error popup instead of the payment method selection if they cancel and
retry a subscription purchase.

### Steps to test this PR

QA-optional

### No UI changes
Task/Issue URL:
https://app.asana.com/0/1205648422731273/1208917047742017/f

### Description

This PR adds translations for string resources in
network-protection-impl module.

### Steps to test this PR

QA-optional

### UI changes

No UI changes other than translations.

---------

Co-authored-by: Dax The Translator <[email protected]>
Task/Issue URL:
https://app.asana.com/0/488551667048375/1208893765398547/f

### Description
Sets the ATB variant and origin for Aura installs in order to measure
retention.

### Steps to test this PR

_Point at the JSON Blob linked in the task_

_Feature enabled and new user Aura install_
- [x] Check out this branch
- [x] Change `installationSourceModern()` in
`RealInstallSourceExtractor` to return an Aura package (e.g.
`com.sec.android.app.samsungapps`)
- [x] On a fresh emulator, freshly install the app
- [x] Filter logcat by `Initialized ATB`
- [x] Verify that the variant is `mq`
- [x] Filter logcat by `m_android_install`
- [x] Verify that `origin=funnel_app_aurapaid_android`
- [x] Verify that `reinstall=false`

_Feature enabled and returning user Aura install_
- [x] On the same emulator, uninstall and freshly install the app
- [x] Filter logcat by `Initialized ATB`
- [x] Verify that the variant is `mq`
- [x] Filter logcat by `m_android_install`
- [x] Verify that `origin=funnel_app_aurapaid_android`
- [x] Verify that `reinstall=true`

_Feature disabled and new user Aura install_
- [x] Disable `auraExperiment` in the config
- [x] On a fresh emulator, freshly install the app
- [x] Filter logcat by `Initialized ATB`
- [x] Verify that the variant is set normally (Not `mq`)
- [x] Filter logcat by `m_android_install`
- [x] Verify that `origin=funnel_app_aurapaid_android` is **not** sent
- [x] Verify that `reinstall=false`

_Feature disabled and returning user Aura install_
- [x] On the same emulator, uninstall and freshly install the app
- [x] Filter logcat by `Initialized ATB`
- [x] Verify that the variant is set normally (Not `mq`)
- [x] Filter logcat by `m_android_install`
- [x] Verify that `origin=funnel_app_aurapaid_android` is **not** sent
- [x] Verify that `reinstall=true`

_Feature enabled and new user install (Not Aura)_
- [x] Re-enable `auraExperiment` in the config
- [x] Change `installationSourceModern()` in
`RealInstallSourceExtractor` to return something else (e.g.
`com.example`)
- [x] On a fresh emulator, freshly install the app
- [x] Filter logcat by `Initialized ATB`
- [x] Verify that the variant is set normally (Not `mq`)
- [x] Filter logcat by `m_android_install`
- [x] Verify that `origin=funnel_app_aurapaid_android` is **not** sent
- [x] Verify that `reinstall=false`

_Feature enabled and returning user install (Not Aura)_
- [x] On the same emulator, uninstall and freshly install the app
- [x] Filter logcat by `Initialized ATB`
- [x] Verify that the variant is set normally (Not `mq`)
- [x] Filter logcat by `m_android_install`
- [x] Verify that `origin=funnel_app_aurapaid_android` is **not** sent
- [x] Verify that `reinstall=true`
Task/Issue URL: https://app.asana.com/0/0/1208926527656098/f 

### Description
Enables nightly UI builds to execute in Robin. These are going to run in
parallel to the nightly UI builds in Maestro Cloud for some time
(probably a number of weeks).
- tests are pretty close to being all-green, but with a small amount of
flakiness
- waiting for `retry` functionality to become available which will help
them to be reliably green
- failure alerting is deliberately disabled for now (until `retry`
functionality available)

Can see an example of it running successfully here:
https://github.com/duckduckgo/Android/actions/runs/12236736123

### Steps to test this PR
- [ ] Check the new workflow and make sure it makes sense

Co-authored-by: Craig Russell <[email protected]>
Task/Issue URL:
https://app.asana.com/0/488551667048375/1208627799127675/f

### Description
Add auto exclude broken apps status in VPN feedback metadata +
restructure some other info in VPN feedback

### Steps to test this PR
QA-optional
…seconds (#5339)

Task/Issue URL: https://app.asana.com/0/0/1208889990660025/f 

### Description
Align reportFlow value with the spec. reportFlow ->
reload-three-times-within-20-seconds

### Steps to test this PR
n/a

### UI changes
n/a
Task/Issue URL:
https://app.asana.com/0/1202552961248957/1208851110314077/f

### Description

### Steps to test this PR
Smoke test Duck Player

### UI changes
| Before  | After |
| ------ | ----- |
!(Upload before screenshot)|(Upload after screenshot)|
Task/Issue URL:
https://app.asana.com/0/1205782002757341/1208820359395089/f

### Description

### Steps to test this PR
Looks at this task for different scenarios:
https://app.asana.com/0/1174433894299346/1208812333027437/f

_Pixel for clearing address bar - Site_
- [x] Navigate to a site
- [x] Tap into address bar
- [x] X to delete entry (don’t type anything new)
- [x] Swipe gesture to close keyboard 
- [x] Verify pixel `m_addressbar_focus_clear_entry_website` is fired
only once

_Pixel for clearing address bar - SERP_
- [x] Navigate to a site
- [x] Tap into address bar
- [x] X to delete entry (don’t type anything new)
- [x] Swipe gesture to close keyboard 
- [x] Verify pixel `m_addressbar_focus_clear_entry_serp ` is fired only
once

_Pixel for clearing address bar - NTP_
- [x] Navigate to a site
- [x] Tap into address bar
- [x] X to delete entry (don’t type anything new)
- [x] Swipe gesture to close keyboard 
- [x] Verify pixel `m_addressbar_focus_clear_entry_ntp ` is fired only
once

_Swipe gesture to close keyboard - Site_
- [x] Navigate to a site
- [x] Tap into address bar
- [x] X to delete entry (don’t type anything new)
- [x] Swipe gesture to close keyboard 
- [x] Verify Site url is displayed

_Swipe gesture to close keyboard - SERP_
- [x] Enter a search query on SERP
- [x] Tap into address bar
- [x] X to delete entry (don’t type anything new)
- [x] Swipe gesture to close keyboard 
- [x] Verify query is displayed

_Manually close keyboard  + Scroll- Site_
- [x] Navigate to a site
- [x] Tap into address bar
- [x] X to delete entry (don’t type anything new)
- [x] Manually close keyboard
- [x] Scroll down the site
- [x] Verify Site url is displayed

_Manually close keyboard  + Scroll- SERP_
- [x] Enter a search query on SERP
- [x] Tap into address bar
- [x] X to delete entry (don’t type anything new)
- [x] Manually close keyboard
- [x] Scroll down the site
- [x] Verify query is displayed

_Close keyboard - Site_
- [x] Ensure 3 button navigation is enabled (via device Settings)
- [x] Navigate to a site
- [x] Tap into address bar
- [x] X to delete entry (don’t type anything new)
- [x] Close keyboard (press back)
- [x] Verify Site url is displayed

_Close keyboard - SERP_
- [x] Ensure 3 button navigation is enabled (via device Settings)
- [x] Enter a search query on SERP
- [x] Tap into address bar
- [x] X to delete entry (don’t type anything new)
- [x] Close keyboard (press back)
- [x] Verify query is displayed
…ivacy toggle check screen (#5379)

Task/Issue URL:
https://app.asana.com/0/488551667048375/1208945103446235/f

### Description
Fixes the tests which are failing due to a new screen being presented
when privacy protections are disabled. The fix is simply backing out of
those screens as part of the test scripts.

### Steps to test this PR
- [x] Ensure privacy tests succeeded:
https://github.com/duckduckgo/Android/actions/runs/12275448579

Co-authored-by: Craig Russell <[email protected]>
Task/Issue URL:
https://app.asana.com/0/1207418217763355/1205772199506591/f

### Description

This fix prevents showing the find-in-page bar when changing the omnibar
position.

### Steps to test this PR

- [x] Go to any URL
- [x] Perform a find in page search for any text
- [x] Dismiss the find in page bar
- [x] Go into settings & switch omnibar to the opposite position
- [x] Notice the find in page toolbar is not visible
- [x] Switch the omnibar position again
Task/Issue URL:
https://app.asana.com/0/1207908166761516/1208785622935234/f
### Description

Makes design changes to all the settings sub-screens, including:

- Copy changes
- Padding/Margin changes
- Adding/Updating new header images
- Rearranging items (Data clearing screen only)

### Steps to test this PR

Prerequisites: `newSettings` flag is on

Designs: 

### _Private Search_
-
[Designs](https://www.figma.com/design/BOHDESHODUXK7wSRNBOHdu/%F0%9F%A4%96-Android-Components?node-id=12993-10537&m=dev)
- [x] Open Private Search screen
- [x] Screen should default to device transition and no longer crossfade
- [x] Check new header image is visible
- [x] Check Status Indicator is visible and "Always On"
- [x] Check copy has been updated
- [x] Check against designs

#### UI changes
| Before | After |
| - | - |
<img
src="https://github.com/user-attachments/assets/adab34f4-e03f-4b81-a066-2b1b5b80fbd6"
alt="Alt Text" width="300">|<img
src="https://github.com/user-attachments/assets/355bc950-c7d0-4a90-9289-2f05182c66c2"
alt="Alt Text" width="300">

### _Web Tracking Protection_
-
[Designs](https://www.figma.com/design/BOHDESHODUXK7wSRNBOHdu/%F0%9F%A4%96-Android-Components?node-id=12993-10580&m=dev)
- [x] Open Web Tracking Protection screen
- [x] Screen should default to device transition and no longer crossfade
- [x] Check new header image is visible
- [x] Check Status Indicator is visible and "Always On"
- [x] Check copy has been updated
- [x] Check against designs

#### UI changes
| Before | After |
| - | - |
<img
src="https://github.com/user-attachments/assets/7550238e-cc4e-429f-9d6f-12360f6c77b7"
alt="Alt Text" width="300">|<img
src="https://github.com/user-attachments/assets/6b0ec787-f8f3-477e-bed3-c7e6deb27291"
alt="Alt Text" width="300">

### _Cookie Pop-Up Protection_
-
[Designs](https://www.figma.com/design/BOHDESHODUXK7wSRNBOHdu/%F0%9F%A4%96-Android-Components?node-id=13010-29805&m=dev)
- [x] Open Cookie Pop-Up Protection screen
- [x] Screen should default to device transition and no longer crossfade
- [x] Check new header image is visible
- [x] Check Status Indicator is visible and is "On" or "Off" depending
on the toggle
- [x] Turn toggle on/off
- [x] Check header image changes to either on/off version
- [x] Check Status Indicator turns to on/off
- [x] Check copy 
- [x] Press "Learn More"
- [x] Tracking Protections website should open
- [x] Press back
- [x] Check against designs

#### UI changes
| Before | After |
| - | - |
<img
src="https://github.com/user-attachments/assets/3cb8424e-c1a7-4f93-a494-01f5d5b2852e"
width="300">|<img
src="https://github.com/user-attachments/assets/104f2f29-d3dd-4646-a429-89f1efaa4131"
width="300">

### _App Tracking Protection_
- [x] Open App Tracking Protection screen
- [x] Screen should default to device transition and no longer crossfade
- No other changes made to this screen

### _Email Protection_
- [x] Open Email Protection screen
- [x] Screen should default to device transition and no longer crossfade
- No other changes made to this screen

### _General_
- [x] Open General screen
- [x] Screen should default to device transition and no longer crossfade
- No other changes made to this screen

### _Sync & Backup_
-
[Designs](https://www.figma.com/design/BOHDESHODUXK7wSRNBOHdu/%F0%9F%A4%96-Android-Components?node-id=13280-39196&m=dev)
- [x] Open Sync & Backup screen
- [x] Screen should default to device transition and no longer crossfade
- [x] Check "Single Device Setup" heading is now "Other Options"
- [x] Check against designs

#### UI changes
| Before | After |
| - | - |
<img
src="https://github.com/user-attachments/assets/cb5a57b3-0355-4da4-bc48-6daf9d6a767e"
width="300">|<img
src="https://github.com/user-attachments/assets/5f742629-3b64-4b92-8b1f-6769bcc29f85"
width="300">

### _Appearance_
-
[Designs](https://www.figma.com/design/BOHDESHODUXK7wSRNBOHdu/%F0%9F%A4%96-Android-Components?node-id=12441-20931&m=dev)
- [x] Open Appearance screen
- [x] Screen should default to device transition and no longer crossfade
- [x] The App Icon should now be aligned to the right of the screen

#### UI changes
| Before | After |
| - | - |
<img
src="https://github.com/user-attachments/assets/c005bc33-ebc2-47a4-9fff-7dfe086b055a"
width="300">|<img
src="https://github.com/user-attachments/assets/10b1593b-3b3a-411d-939f-af4165497b3f"
width="300">

### _Passwords & Autofill_
- [x] Open Passwords & Autofill screen
- [x] Screen should default to device transition and no longer crossfade
- [x] The toolbar title should be "Passwords & Autofill"

#### UI changes
| Before | After |
| - | - |
<img
src="https://github.com/user-attachments/assets/6d8ca108-529a-478d-96ca-83be998ca296"
width="300">|<img
src="https://github.com/user-attachments/assets/ebbc844d-99a9-4b47-bffa-c626a6d7ff5a"
width="300">

### _Accessibility_
-
[Designs](https://www.figma.com/design/BOHDESHODUXK7wSRNBOHdu/%F0%9F%A4%96-Android-Components?node-id=11073-14078&m=dev)
- [x] Open Accessibility screen
- [x] Screen should default to device transition and no longer crossfade
- [x] Check screen top padding has been increased

#### UI changes
| Before | After |
| - | - |
<img
src="https://github.com/user-attachments/assets/40d78b41-35dc-4e04-9634-cf239943a077"
width="300">|<img
src="https://github.com/user-attachments/assets/d42670de-a6e2-4829-a777-3898fd1772d8"
width="300">

### _Permissions_
- [x] Open Permissions screen
- [x] Screen should default to device transition and no longer crossfade
- No other changes made to this screen

### _Data Clearing_
-
[Designs](https://www.figma.com/design/BOHDESHODUXK7wSRNBOHdu/%F0%9F%A4%96-Android-Components?node-id=12993-12784&m=dev)
- [x] Open Data Clearing screen
- [x] Screen should default to device transition and no longer crossfade
- [x] Order of items should be 1. "Fire Button Animation" 2. Divider 3.
"Fireproof Sites" 4. "Automatically Clear Data..." 5. "Clear On..."
- [x] Check against designs

#### UI changes
| Before | After |
| - | - |
<img
src="https://github.com/user-attachments/assets/c0e6fd1e-a221-48c8-bc51-39cc22ce475b"
width="300">|<img
src="https://github.com/user-attachments/assets/59ac1832-4ab9-4e77-a6af-15ddfba843e4"
width="300">

### _Duck Player_
- [ ] Open Duck Player screen
- [ ] Screen should default to device transition and no longer crossfade
- No other changes made to this screen

### _About_
-
[Designs](https://www.figma.com/design/BOHDESHODUXK7wSRNBOHdu/%F0%9F%A4%96-Android-Components?node-id=12993-10920&m=dev)
- [ ] Open About screen
- [ ] Screen should default to device transition and no longer crossfade
- [ ] Title in toolbar should be "About"
- [ ] Check about copy matches designs
- [ ] Check against designs

#### UI changes
| Before | After |
| - | - |
<img
src="https://github.com/user-attachments/assets/367f4768-4e9e-4395-b44f-e7c082bab1b8"
width="300">|<img
src="https://github.com/user-attachments/assets/434ccb4f-ab8a-4f56-a9fa-8d5d1ff557fc"
width="300">

_LegacySettings Screen_

Prerequisites: `newSettings` flag is off

- [ ] Smoke test, run through each item an ensure there are no major
visual changes e.g. two header images instead of 1

## Demo


https://github.com/user-attachments/assets/8c256538-816c-4ef5-a01b-d31260f6cb41
Task/Issue URL:
https://app.asana.com/0/1205648422731273/1208917047742015/f

### Description

This PR add translations for string resources in subscriptions-impl
module.

### Steps to test this PR

QA-optional

### UI changes

No UI changes other than translations.

---------

Co-authored-by: Dax The Translator <[email protected]>
Task/Issue URL:
https://app.asana.com/0/72649045549333/1208954147561552/f

### Description
Adds more baseline subfeatures

### Steps to test this PR
N/A
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]>
Task/Issue URL:
https://app.asana.com/0/1174433894299346/1208855071397751/f

### Description
Ensure that Navigational links can be shown as Top Hits

### Steps to test this PR
Check https://app.asana.com/0/1174433894299346/1208909865959915/f for
different scenarios
mikescamell and others added 30 commits February 14, 2025 17:19
Task/Issue URL: https://app.asana.com/0/488551667048375/1209407906356235

### Description
Added a new developer settings screen for managing tabs, allowing
developers to quickly create or clear multiple tabs for testing
purposes. The screen includes functionality to specify the number of
tabs to create and automatically generates tabs with random
privacy-focused URLs.

### Steps to test this PR

_Tab Management_
- [x] Access the new Tabs section from Developer Settings
- [x] Enter a number of tabs to create and tap "Add Tabs"
- [x] Verify tabs are created with random URLs from the predefined list
- [x] Verify the tab count header updates correctly
- [x] Test the "Clear Tabs" button removes all tabs
- [x] Verify navigation and toolbar functionality works as expected

### UI changes


https://github.com/user-attachments/assets/187de4a3-433d-497f-8782-f591a41ff59e
Task/Issue URL:
https://app.asana.com/0/1174433894299346/1209374778794798

### Description
This PR adds a new screen for Experimental UI under Settings.
Only visible for internal users

### Steps to test this PR

_Internal screen visible_
- [ ] Install app in Internal flavour
- [ ] Open Settings screen
- [ ] Verify “Enable Experimental UI” is visible
- [ ] Tap on it and verify the Experimental UI screen is visible
- [ ] Changing the toggle won’t affect anything

_Enable Experimental UI_
- [ ] Install app in Play flavour
- [ ] Open Settings screen
- [ ] Verify “Enable Experimental UI” is not visible
…5660)

Task/Issue URL:
https://app.asana.com/0/1207908166761516/1209412189883930

### Description
Introduces a new `TabSwitcherItem` sealed class to better represent
items in the tab switcher UI. This refactoring improves type safety and
prepares the codebase for future tab switcher UI enhancements. The
changes include:

- Refactored `TabSwitcherAdapter` to handle the new item type
- Updated view holders to better separate grid and list tab layouts
- Modified tab selection and deletion logic to work with the new item
structure

This refactoring was intentionally kept as small as possible and not
intended to change **everything** in regards to the TabSwitcher code.

### Steps to test this PR

_Tab Switcher Functionality_
- [x] Open multiple tabs and verify they display correctly in both grid
and list views
- [x] Confirm tab selection works properly and highlights the selected
tab
- [x] Test tab deletion (both swipe and close button) functions as
expected
- [x] Verify tab previews, favicons, and unread indicators display
correctly
- [x] Check that tab reordering via drag and drop still works
- [x] Confirm "Close All Tabs" functionality works as expected

### UI changes
No visual changes - this is an internal refactoring that maintains the
existing UI appearance.

### Demoes

**Tab Switching**


https://github.com/user-attachments/assets/a122cc27-e91e-4021-98e7-efa88d160d22


**Tab Swiping**


https://github.com/user-attachments/assets/b850bfb8-1429-4c16-beca-e2b06e3a0680
Task/Issue URL:
https://app.asana.com/0/488551667048375/1209428714920155/f

 ----- 
- Automated reference tests dependency update

This PR updates the reference tests dependency to the latest available
version and copies the necessary files.
If tests have failed, see https://app.asana.com/0/0/1203766026095653/f
for further information on what to do next.

- [x] All tests must pass

Co-authored-by: daxmobile <[email protected]>
Task/Issue URL: https://app.asana.com/0/414730916066338/1209407999578316

### Description

"Location", "Choose location" in the Edit bookmark dialog is wrongly
translated to Russian as "Геопозиция", "Выберите геопозицию"
("Geolocation", "Choose geolocation").

### Steps to test this PR

QA-optional

### No UI changes

---------

Co-authored-by: Dax The Translator <[email protected]>
Task/Issue URL:
https://app.asana.com/0/1207908166761516/1208302992661645

### Description
Removes pixel tracking for app launch settings options. This includes
removing the pixel firing logic from the ShowOnAppLaunchViewModel and
deleting the associated pixel names from AppPixelName.

### Steps to test this PR

_App Launch Settings_
- [x] Navigate to Settings > App Launch
- [x] Change between different launch options (Last Opened Tab, New Tab
Page, Specific Page)
- [x] Verify the functionality continues to work as expected
- [x] Verify no pixel tracking events are being sent when changing
options

### UI changes
No UI changes
Task/Issue URL:
https://app.asana.com/0/1207908166761516/1209441074191255

### Description

This reverts commit 1af0d49. There have been some Splashscreen issues
on Android 12L so we're reverting and going to try and fix for the next
release

### Steps to test this PR

_Splashscreen_
- [ ] Open app on a number of different SDK versions, a good sample is
26, 32, 35
- [ ] Check the static logo shows and the app launches (remember there
is a bug if you launch the app from Android Studio on to an Android 12L
device where you only see the logo if you launch from the home screen)

### UI changes

Back to previous static logo
…ng through Duck Player (#5664)

Task/Issue URL:
https://app.asana.com/0/1201870266890790/1209422420805301

### Description
We should check for duckplayer url when setting canReportSite

### Steps to test this PR

_Feature 1_
- [ ] Set "Open YouTube Videos in DuckPlayer" to **Always**
- [ ] Enable "Open DuckPlayer in a new tab" 
- [ ] Search for any video and click or enter a URL directly (e.g.,
https://youtu.be/3ml7yeKBUhc)
- [ ] Confirm that "Report Broken Site" is not showing in the
3-dot/overflow menu
- [ ] Disable "Open DuckPlayer in a new tab" and repeat check
- [ ] Set "Open YouTube Videos in DuckPlayer" to **Ask Every Time** and
repeat check
- [ ] Enable "Open DuckPlayer in a new tab" and repeat check
- [ ] Reset "Open YouTube Videos in DuckPlayer" to **Always**
- [ ] Use a note-taking or any other external app to open a YouTube link
directly and repeat check
- [ ] Disable "Open DuckPlayer in a new tab"
- [ ] Set "Open YouTube Videos in DuckPlayer" to **Ask Every Time** and
repeat check
- [ ] Enable "Open DuckPlayer in a new tab" and repeat check

### UI changes
| Before  | After |
| ------ | ----- |

![reportingEnabled](https://github.com/user-attachments/assets/e1fb147d-3f0c-43c6-b3cb-6410aa375cc6)|![after](https://github.com/user-attachments/assets/f8b70904-0e77-42df-85b2-dbdcae187cd2)
Task/Issue URL:
https://app.asana.com/0/1174433894299346/1209374778794798

### Description
This PR adds a new screen for Experimental UI under Settings.
Only visible for internal users

### Pre-requisites
Go to Appearance, enable light or dark mode (system default won’t work)

### Steps to test this PR

_Internal screen changes_
- [x] Install app in Internal flavour
- [x] Open Settings screen
- [x] Verify “Experimental UI Settings” is visible
- [x] Tap on it and verify the Experimental UI settings screen is
visible
- [x] Enable the “Enable all changes" toggle, this will select warm
colors by default
- [x] Restart the app for changes to take effect
- [x] Verify color changes (see design review task for changes)
- [x] Open the UI changes screen and toggle the colors switch, this will
enable cool colors
- [x] Restart the app for changes to take effect
- [x] Verify color changes (see design review task for changes)
- [x] Open the UI changes screen and toggle the “Enable all changes"
switch, this will disable color changes
- [x] Restart the app for changes to take effect
- [x] Verify colors haven’t changed from Production

_Enable Experimental UI_
- [x] Install app in Play flavour
- [x] Open Settings screen
- [x] Verify “Experimental UI Settings” is not visible

---
- To see the specific tasks where the Asana app for GitHub is being
used, see below:
  - https://app.asana.com/0/0/1209374780542507
…5654)

Task/Issue URL: https://app.asana.com/0/608920331025315/1209109157109863

### Description
The goal is to make the password management view’s scroll behaviour more
desirable, in that everything should scroll including the on/off toggle
and any password screen _promo_ cards (like for enabling sync or taking
autofill surveys).

The implementation to achieve the above is:
- both old and new implementations of that password management view is
available (and controllable with a feature flag)
- the _old_ legacy ones will be deleted later assuming this rolls out
smoothly
- make duplicates of the list mode fragment and recycler view adapter,
changing as little as possible in each
- rename existing `AutofillManagementListMode` to
`AutofillManagementListModeLegacy`
- rename existing `AutofillManagementRecyclerAdapter` to
`AutofillManagementRecyclerAdapterLegacy`
- rename existing `fragment_autofill_management_list_mode` to
`fragment_autofill_management_list_mode_legacy`
   
With the _new_ approach, everything is added as a recycler view list
item instead of there being a combination of native controls and list
items.


### Steps to test this PR

- [x] Install `internal` build 

**Empty state**
- Visit password management screen and ensure:
- [x] empty state placeholder shown (including import google passwords
if WebView new enough) and buttons work
    - [x] you can toggle autofill
    - [x] you can manually add an entry

**Populated state**
- [x] Add a password
- [x] Verify that you see the “sync promo” and that it works as expected
- [x] Perform a search and that it shows/hides matches as expected
- [x] Edit / delete (and undo) and make sure everything still working ok

**Add more passwords**
- [x] Add many passwords; dozens (manually, using import from Google or
autofill dev settings)
- [x] Check that scrolling works for _everything_, including the promos
that may show

**Check authentication**
- [x] Leave the screen and return; verify you are prompted to auth again
- [x] Background the app while in the screen and return; verify you are
prompted to auth again

**Delete all**
- [x] Delete all passwords and verify you see the empty state again

**Checking legacy works as expected**
- [x] Disable the `newScrollBehaviourInPasswordManagementScreen` flag
- [x] Smoke test password management view and ensure no regressions from
production

Co-authored-by: Craig Russell <[email protected]>
Task/Issue URL:
https://app.asana.com/0/488551667048375/1209461511113841/f

 ----- 
- Automated content scope scripts dependency update

This PR updates the content scope scripts dependency to the latest
available version and copies the necessary files.
If tests have failed, see
https://app.asana.com/0/1202561462274611/1203986899650836/f for further
information on what to do next.

- [x] All tests must pass

Co-authored-by: daxmobile <[email protected]>
Task/Issue URL:
https://app.asana.com/0/1209464247750219/1209464247750219
Autoconsent Release:
https://github.com/duckduckgo/autoconsent/releases/tag/v12.11.0


## Description
Updates Autoconsent to version
[v12.11.0](https://github.com/duckduckgo/autoconsent/releases/tag/v12.11.0).

### Autoconsent v12.11.0 release notes
See release notes
[here](https://github.com/duckduckgo/autoconsent/blob/v12.11.0/CHANGELOG.md)

## Steps to test
This release has been tested during Autoconsent development. You can
check the release notes for more information.
1. Make sure that there's no unexpected failures in CI checks
2. (optional) smoke test some of the sites mentioned in the release
notes
3. If there are problems, reach out to a CPM DRI

Co-authored-by: muodov <[email protected]>
Task/Issue URL:
https://app.asana.com/0/1209465117664023/1209465117664023
Autofill Release:
https://github.com/duckduckgo/duckduckgo-autofill/releases/tag/16.2.2


## Description
Updates Autofill to version
[16.2.2](https://github.com/duckduckgo/duckduckgo-autofill/releases/tag/16.2.2).

### Autofill 16.2.2 release notes
## What's Changed
* chore: update actions cache to v3 by @dbajpeyi in
duckduckgo/duckduckgo-autofill#759
* Update Apple project file references in the release workflow by
@samsymons in duckduckgo/duckduckgo-autofill#758
* Update release workflow to support Apple monorepo by @samsymons in
duckduckgo/duckduckgo-autofill#756
* [Formatters] Make fixes for credentials less restrictive by @dbajpeyi
in duckduckgo/duckduckgo-autofill#763

## New Contributors
* @samsymons made their first contribution in
duckduckgo/duckduckgo-autofill#758

**Full Changelog**:
duckduckgo/duckduckgo-autofill@16.2.1...16.2.2

## Steps to test
This release has been tested during autofill development. For smoke test
steps see [this
task](https://app.asana.com/0/1198964220583541/1200583647142330/f).

Co-authored-by: dbajpeyi <[email protected]>
Task/Issue URL:
https://app.asana.com/0/1205648422731273/1209434223230239

### Description

### Steps to test this PR

_Grant approximate location permission_
- [x] Fresh install and visit permission.site
- [x] Ask for Location permissions
- [x] Verify Location dialog appears
- [x] Allow permissions
- [x] Verify system dialog is shown
- [x] Allow access to **approximate** location
- [x] Verify location is granted (location button is green)

_Verify SERP can access approximate location_
- [x] Fresh install and search for "cafe nearby"
- [x] Verify Location dialog appears
- [x] Deny permissions
- [x] Verify results are based on IP geolocation and there is no blue
dot on the map indicating your position
- You might want to use VPN to be able to easily tell the difference
between IP geolocation and real approximate location
- [x] Tap on the location icon in the top right corner of the map
- [x] Tap "use location"
- [x] Verify Location dialog appears
- [x] Allow permissions
- [x] Verify system dialog is shown
- [x] Allow access to **approximate** location
- [x] Verify that map has reloaded and your approximate location is
marked with a blue dot.

#### Check following scenarios for regression - no behavior changes are
expected

_Precise location permission granted_
- [x] Fresh install and visit permission.site
- [x] Ask for Location permissions
- [x] Verify Location dialog appears
- [x] Allow permissions
- [x] Verify system dialog is shown
- [x] Allow access to **precise** location
- [x] Verify location is granted (location button is green)

_Location permission not granted_
- [x] Fresh install and visit permission.site
- [x] Ask for Location permissions
- [x] Verify Location dialog appears
- [x] Deny permissions
- [x] Verify location is not granted (location button is red)

_Location permission granted (not system granted)_
- [x] Fresh install and visit permission.site
- [x] Ask for Location permissions
- [x] Verify Location dialog appears
- [x] Allow permissions
- [x] Verify system dialog is shown
- [x] Deny permissions
- [x] Verify location is not granted (location button is red)
- [x] Verify Snackbar appears
- [x] Ask for Location permissions
- [x] Verify system dialog is shown
- [x] Deny permissions
- [x] Verify Settings dialog appears
- [x] Tap on Open Settings
- [x] Verify Device Settings screen opens

### No UI changes

---------

Co-authored-by: Noelia Alcala <[email protected]>
Task/Issue URL:
https://app.asana.com/0/1207908166761516/1209477417258773

### Description
Fixes a race condition in the tab switcher where the close button
position could become stale when tabs are being removed. The fix ensures
the correct tab position is always used when closing tabs by capturing
the position at click time rather than binding time.

### Steps to test this PR

_Tab Closing Behaviour_
- [ ] Add multiple tabs via the Developer settings menu
- [ ] Delete the tab BEFORE the last tab
- [ ] The tab should be deleted
- [ ] Delete the last tab
- [ ] The tab should be deleted 
- [ ] Verify behaviour in both grid and list view modes

_Tab Closing Smoke Test_
- [ ] Delete multiple tabs rapidly
- [ ] Delete all tabs
- [ ] Delete tabs via swipe
- [ ] Reorganise tabs and delete

### UI changes
No visual changes to the UI - this is a behavioural fix only.
Task/Issue URL:
https://app.asana.com/0/1207908166761516/1209477417258773

### Description
Fixes a race condition in the tab switcher where the close button
position could become stale when tabs are being removed. The fix ensures
the correct tab position is always used when closing tabs by capturing
the position at click time rather than binding time.

### Steps to test this PR

_Tab Closing Behaviour_
- [ ] Add multiple tabs via the Developer settings menu
- [ ] Delete the tab BEFORE the last tab
- [ ] The tab should be deleted
- [ ] Delete the last tab
- [ ] The tab should be deleted 
- [ ] Verify behaviour in both grid and list view modes

_Tab Closing Smoke Test_
- [ ] Delete multiple tabs rapidly
- [ ] Delete all tabs
- [ ] Delete tabs via swipe
- [ ] Reorganise tabs and delete

### UI changes
No visual changes to the UI - this is a behavioural fix only.
Task/Issue URL:
https://app.asana.com/0/1149059203486286/1209453476472064

### Description
Hide subtitle when string is empty, making suggestion a single line.

### Steps to test this PR

_Feature 1_
- [ ] from an api 29 device o no keyboard
- [ ] select ddg as autofill provider
- [ ] visit fill.dev on another browser
- [ ] focus a field to get suggestions
- [ ] they should show as dropdown
- [ ] ensure entry point to DDG is single line

### UI changes
| Before  | After |
| ------ | ----- |
!(Upload before screenshot)|(Upload after screenshot)|
Task/Issue URL: https://app.asana.com/0/414730916066338/1209489004733339

### Description
Add missing test in AboutDuckDuckGoViewModelTest

### Steps to test this PR

Verify that the test coverage has increases

### UI changes
| Before  | 
<img width="456" alt="Screenshot 2025-02-24 at 11 21 25 PM"
src="https://github.com/user-attachments/assets/aa919a75-d969-476e-bd62-62eef6cbaa73"
/>



After
<img width="489" alt="Screenshot 2025-02-24 at 11 23 41 PM"
src="https://github.com/user-attachments/assets/9ae39209-21b0-4762-8114-3af025e30112"
/>
Task/Issue URL: https://app.asana.com/0/488551667048375/1209453476472067

### Description
We introduce the same logic to dedup credentials and sorting for
Autofill Service.
That includes updating last used timestamp when we autofill outside our
app, to improve UX.

### Steps to test this PR

_Feature 1_
- [x] install this branch
- [x] Select DDG as autofill provider
- [x] Create a bunch of logins (same username and passwords) for
mlb.mlb.com, securea.mlb.com and www.mlb.com
- [x] Create another login for www.mlb.com with a different username
- [x] Visit www.mlb.com in our browser
- [x] You will see 2 logins suggested
- [x] Now go to another browser and visit the same site
- [x] Ensure you only get 2 logins, same order from the autofill
provider
- [x] Select the second one
- [x] Now go back to our browser
- [x] Trigger again the suggestions prompt
- [x] Ensure the order has changed now (since you selected the second
one in the previous step)

### UI changes
| Before  | After |
| ------ | ----- |
!(Upload before screenshot)|(Upload after screenshot)|
Task/Issue URL:
https://app.asana.com/0/488551667048375/1209492594044014/f

 ----- 
- Automated content scope scripts dependency update

This PR updates the content scope scripts dependency to the latest
available version and copies the necessary files.
If tests have failed, see
https://app.asana.com/0/1202561462274611/1203986899650836/f for further
information on what to do next.

- [ ] All tests must pass

Co-authored-by: daxmobile <[email protected]>
…5681)

Task/Issue URL: https://app.asana.com/0/608920331025315/1209378492776844

### Description
Adds a quick way to shortcut to the end of onboarding, offering a
one-tap way to become fully onboarded from the pre-onboarding flow. It
does this by surfacing a button to **Skip Onboarding**.

The skip button will only show up for builds which:
- are `internal` build type, 
- OR were built with the gradle flag `-Pskip-onboarding` 

The button will show up after the remote config has been successfully
downloaded.

### Steps to test this PR

ℹ️ Add logcat filter: `message~:"App configuration sync was successful”`

#### Play build type, no skip flag
- [x] Fresh install, with `play` type (no skip build flag). e.g.,
`./gradlew installPD`
- [x] Launch the app and wait for privacy config to download 
- [x] Verify the skip button does **not** appear

#### Play build type, with skip flag
- [x] Fresh install, with `play` type and include skip build flag. e.g.,
`/.gradlew installPD -Pskip-onboarding`
- [x] Launch the app and wait for the privacy config to download
- [x] Verify the skip button **does show**
- [x] Tap the skip button; verify you are taken to the new tab screen
with no more onboarding
- [x] Kill and relaunch the app; verify you don’t see onboarding 

#### Internal build type, no skip flag
- [x] Fresh install, with `internal` type (no skip build flag). e.g.,
`/.gradlew installID`
- [x] Launch the app and wait for the privacy config to download
- [x] Verify the skip button **does show**
- [x] For completeness, this time **do not** skip onboarding. Complete
onboarding as normal and verify everything works as usual.

#### Internal build type, with skip flag
- [x] Fresh install, with `internal` type and include skip build flag.
e.g., `/.gradlew installID -Pskip-onboarding`
- [x] Launch the app and wait for the privacy config to download
- [x] Verify the skip button **does show**


### UI changes
<img width="575" alt="Screenshot 2025-02-21 at 16 30 21"
src="https://github.com/user-attachments/assets/d1bad8a6-5740-4116-aba8-9cbd09673de1"
/>

Co-authored-by: Craig Russell <[email protected]>
Task/Issue URL:
https://app.asana.com/0/1142021229838617/1209495490720437

### Description
Updates copy for DDG app entry point (Autofill service suggestion)

### Steps to test this PR

_Feature 1_
- [ ] When getting suggestions in other apps
- [ ] ensure quick access to DDG says "Open Passwords"

### UI changes
| Before  | After |
| ------ | ----- |
!(Upload before screenshot)|(Upload after screenshot)|
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.