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

Update Settings: Update sub-screens #5334

Merged
merged 18 commits into from
Dec 12, 2024

Conversation

mikescamell
Copy link
Contributor

@mikescamell mikescamell commented Nov 29, 2024

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
  • Open Private Search screen
  • Screen should default to device transition and no longer crossfade
  • Check new header image is visible
  • Check Status Indicator is visible and "Always On"
  • Check copy has been updated
  • Check against designs

UI changes

Before After
Alt Text Alt Text

Web Tracking Protection

  • Designs
  • Open Web Tracking Protection screen
  • Screen should default to device transition and no longer crossfade
  • Check new header image is visible
  • Check Status Indicator is visible and "Always On"
  • Check copy has been updated
  • Check against designs

UI changes

Before After
Alt Text Alt Text

Cookie Pop-Up Protection

  • Designs
  • Open Cookie Pop-Up Protection screen
  • Screen should default to device transition and no longer crossfade
  • Check new header image is visible
  • Check Status Indicator is visible and is "On" or "Off" depending on the toggle
  • Turn toggle on/off
  • Check header image changes to either on/off version
  • Check Status Indicator turns to on/off
  • Check copy
  • Press "Learn More"
  • Tracking Protections website should open
  • Press back
  • Check against designs

UI changes

Before After

App Tracking Protection

  • Open App Tracking Protection screen
  • Screen should default to device transition and no longer crossfade
  • No other changes made to this screen

Email Protection

  • Open Email Protection screen
  • Screen should default to device transition and no longer crossfade
  • No other changes made to this screen

General

  • Open General screen
  • Screen should default to device transition and no longer crossfade
  • No other changes made to this screen

Sync & Backup

  • Designs
  • Open Sync & Backup screen
  • Screen should default to device transition and no longer crossfade
  • Check "Single Device Setup" heading is now "Other Options"
  • Check against designs

UI changes

Before After

Appearance

  • Designs
  • Open Appearance screen
  • Screen should default to device transition and no longer crossfade
  • The App Icon should now be aligned to the right of the screen

UI changes

Before After

Passwords & Autofill

  • Open Passwords & Autofill screen
  • Screen should default to device transition and no longer crossfade
  • The toolbar title should be "Passwords & Autofill"

UI changes

Before After

Accessibility

  • Designs
  • Open Accessibility screen
  • Screen should default to device transition and no longer crossfade
  • Check screen top padding has been increased

UI changes

Before After

Permissions

  • Open Permissions screen
  • Screen should default to device transition and no longer crossfade
  • No other changes made to this screen

Data Clearing

  • Designs
  • Open Data Clearing screen
  • Screen should default to device transition and no longer crossfade
  • Order of items should be 1. "Fire Button Animation" 2. Divider 3. "Fireproof Sites" 4. "Automatically Clear Data..." 5. "Clear On..."
  • Check against designs

UI changes

Before After

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
  • 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

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

Screen_recording_20241129_163452.mp4

Copy link
Contributor Author

mikescamell commented Nov 29, 2024

@mikescamell mikescamell force-pushed the feature/mike/update-settings/update_subscreens branch 2 times, most recently from 9cbd91e to a3873ed Compare November 29, 2024 16:50
@mikescamell mikescamell marked this pull request as ready for review November 29, 2024 16:51
@mikescamell mikescamell force-pushed the feature/mike/update-settings/rearrange-settings-screen branch from b062abb to ac87252 Compare December 2, 2024 09:27
@mikescamell mikescamell force-pushed the feature/mike/update-settings/update_subscreens branch from a3873ed to f9ee2ee Compare December 2, 2024 09:27
@mikescamell mikescamell force-pushed the feature/mike/update-settings/rearrange-settings-screen branch from ac87252 to 600bd64 Compare December 2, 2024 13:44
@mikescamell mikescamell force-pushed the feature/mike/update-settings/update_subscreens branch from f9ee2ee to 8cf3693 Compare December 2, 2024 13:44
Base automatically changed from feature/mike/update-settings/rearrange-settings-screen to develop December 3, 2024 08:51
@mikescamell mikescamell force-pushed the feature/mike/update-settings/update_subscreens branch from 8cf3693 to f740a42 Compare December 3, 2024 08:52
Copy link
Contributor

@malmstein malmstein left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added a couple comments, nothing blocking.

override fun updateDrawState(ds: TextPaint) {
super.updateDrawState(ds)
if (newSettingsFeature.self().isEnabled()) {
ds.color = ContextCompat.getColor(applicationContext, CommonR.color.blue50)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the blue color is wrong, use accentBlue here instead.

context.getColorFromAttr(R.attr.daxColorAccentBlue)

@@ -20,6 +20,7 @@ import android.content.Context
import android.util.AttributeSet
import android.widget.LinearLayout
import com.duckduckgo.common.ui.viewbinding.viewBinding
import com.duckduckgo.mobile.android.R
import com.duckduckgo.mobile.android.databinding.ViewStatusIndicatorBinding

class StatusIndicator @JvmOverloads constructor(
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you rename this to StatusIndicatorView instead? Just to follow other conventions.

@mikescamell mikescamell force-pushed the feature/mike/update-settings/update_subscreens branch from f740a42 to b8ef962 Compare December 9, 2024 10:54
@malmstein malmstein self-assigned this Dec 9, 2024
Copy link
Contributor

@malmstein malmstein left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nice work @mikescamell !

@mikescamell mikescamell enabled auto-merge (squash) December 9, 2024 20:52
The new "Learn More" link text does not have an underline and is our own blue color

We need to ensure that "Learn More" is placed on a newline after we create the Spannable

The Cookie Image is slightly different in on/off scenarios (spikey cookie ends, checkmark sizing) and I will ask about this
We have one more state "Always On" which we need for a couple of sub screens.

It makes more sense now to add this as an emum and allow setting from XML

We can make a function that allows us to easily set on/off which we need in most cases that calls to the new setStatus function that takes a "Status"
It seemed easiest to add new views and just hide/show based on the flag
Similar to AutoConsent and I've made a note to extract the clickable span when I come back to tidy up
I purposefully did not flag the minor margin changes for the divider, I didn't think it was worth it.
Again not flagging purposefully as it's such a minor change
not flagging this as it's a simple change
We don't need to use makeSceneTransitionAnimation as we're not doing SharedElementTransitions

This looks like it became a c/p for all the screens, resulting in some weird cross-fading
I didn't realise that adding new strings would mean that anyone asking for translations would get them, i now know to add them to donottranslate during development, but adding translatable=false for now to save moving them about
@mikescamell mikescamell force-pushed the feature/mike/update-settings/update_subscreens branch from 2ceafcb to 203d7c1 Compare December 12, 2024 09:54
@mikescamell mikescamell merged commit 4023cbe into develop Dec 12, 2024
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants