From 0c0e7950d045870dd451029ac26eda031363a617 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Gonz=C3=A1lez?= Date: Mon, 9 Jan 2023 16:09:33 +0100 Subject: [PATCH 01/21] feature/david/ads/lint_rules --- .../lint/registry/DuckDuckGoIssueRegistry.kt | 5 +- ...recatedAndroidWidgetsUsedInXmlDetector.kt} | 37 +++----- .../lint/ui/DesignSystemLintExtensions.kt | 85 +++++++++++++++++++ ...tedAndroidWidgetsUsedInXmlDetectorTest.kt} | 6 +- .../lint/ui/MissingDividerDetectorTest.kt | 30 ------- 5 files changed, 103 insertions(+), 60 deletions(-) rename lint-rules/src/main/java/com/duckduckgo/lint/ui/{DeprecatedAndroidButtonUsedInXmlDetector.kt => DeprecatedAndroidWidgetsUsedInXmlDetector.kt} (54%) create mode 100644 lint-rules/src/main/java/com/duckduckgo/lint/ui/DesignSystemLintExtensions.kt rename lint-rules/src/test/java/com/duckduckgo/lint/ui/{DeprecatedAndroidButtonUsedInXmlDetectorTest.kt => DeprecatedAndroidWidgetsUsedInXmlDetectorTest.kt} (95%) diff --git a/lint-rules/src/main/java/com/duckduckgo/lint/registry/DuckDuckGoIssueRegistry.kt b/lint-rules/src/main/java/com/duckduckgo/lint/registry/DuckDuckGoIssueRegistry.kt index 2107fe025fc5..b33c186b0a60 100644 --- a/lint-rules/src/main/java/com/duckduckgo/lint/registry/DuckDuckGoIssueRegistry.kt +++ b/lint-rules/src/main/java/com/duckduckgo/lint/registry/DuckDuckGoIssueRegistry.kt @@ -30,7 +30,7 @@ import com.duckduckgo.lint.NoSystemLoadLibraryDetector.Companion.NO_SYSTEM_LOAD_ import com.duckduckgo.lint.strings.MissingInstructionDetector.Companion.MISSING_INSTRUCTION import com.duckduckgo.lint.strings.PlaceholderDetector.Companion.PLACEHOLDER_MISSING_POSITION import com.duckduckgo.lint.ui.DaxTextViewStylingDetector.Companion.INVALID_DAX_TEXT_VIEW_PROPERTY -import com.duckduckgo.lint.ui.DeprecatedAndroidButtonUsedInXmlDetector.Companion.DEPRECATED_BUTTON_IN_XML +import com.duckduckgo.lint.ui.DeprecatedAndroidWidgetsUsedInXmlDetector.Companion.DEPRECATED_WIDGET_IN_XML import com.duckduckgo.lint.ui.DeprecatedSwitchUsedInXmlDetector.Companion.DEPRECATED_SWITCH_IN_XML import com.duckduckgo.lint.ui.MissingDividerDetector.Companion.MISSING_HORIZONTAL_DIVIDER import com.duckduckgo.lint.ui.MissingDividerDetector.Companion.MISSING_VERTICAL_DIVIDER @@ -53,7 +53,7 @@ class DuckDuckGoIssueRegistry : IssueRegistry() { NO_RETROFIT_CREATE_CALL, // Android Design System - DEPRECATED_BUTTON_IN_XML, + DEPRECATED_WIDGET_IN_XML, STYLE_IN_DESIGN_SYSTEM_COMPONENT, NO_DESIGN_SYSTEM_DIALOG, DEPRECATED_SWITCH_IN_XML, @@ -61,6 +61,7 @@ class DuckDuckGoIssueRegistry : IssueRegistry() { MISSING_HORIZONTAL_DIVIDER, NO_BOTTOM_SHEET, INVALID_DAX_TEXT_VIEW_PROPERTY, + ) override val api: Int diff --git a/lint-rules/src/main/java/com/duckduckgo/lint/ui/DeprecatedAndroidButtonUsedInXmlDetector.kt b/lint-rules/src/main/java/com/duckduckgo/lint/ui/DeprecatedAndroidWidgetsUsedInXmlDetector.kt similarity index 54% rename from lint-rules/src/main/java/com/duckduckgo/lint/ui/DeprecatedAndroidButtonUsedInXmlDetector.kt rename to lint-rules/src/main/java/com/duckduckgo/lint/ui/DeprecatedAndroidWidgetsUsedInXmlDetector.kt index 59dac00ecaa4..678bd0827f1e 100644 --- a/lint-rules/src/main/java/com/duckduckgo/lint/ui/DeprecatedAndroidButtonUsedInXmlDetector.kt +++ b/lint-rules/src/main/java/com/duckduckgo/lint/ui/DeprecatedAndroidWidgetsUsedInXmlDetector.kt @@ -16,7 +16,6 @@ package com.duckduckgo.lint.ui -import com.android.resources.ResourceFolderType import com.android.tools.lint.detector.api.Category.Companion.CUSTOM_LINT_CHECKS import com.android.tools.lint.detector.api.Implementation import com.android.tools.lint.detector.api.Issue @@ -25,16 +24,13 @@ import com.android.tools.lint.detector.api.Scope import com.android.tools.lint.detector.api.Severity import com.android.tools.lint.detector.api.TextFormat import com.android.tools.lint.detector.api.XmlContext +import com.duckduckgo.lint.ui.DesignSystemLintExtensions.Companion.DEPRECATED_WIDGETS import org.w3c.dom.Element @Suppress("UnstableApiUsage") -class DeprecatedAndroidButtonUsedInXmlDetector : LayoutDetector() { +class DeprecatedAndroidWidgetsUsedInXmlDetector : LayoutDetector() { - override fun getApplicableElements() = BUTTON_WIDGETS - - override fun appliesTo(folderType: ResourceFolderType): Boolean { - return folderType == ResourceFolderType.LAYOUT - } + override fun getApplicableElements() = DEPRECATED_WIDGETS override fun visitElement( context: XmlContext, @@ -48,37 +44,28 @@ class DeprecatedAndroidButtonUsedInXmlDetector : LayoutDetector() { element: Element ) { context.report( - issue = DEPRECATED_BUTTON_IN_XML, + issue = DEPRECATED_WIDGET_IN_XML, location = context.getNameLocation(element), - message = DEPRECATED_BUTTON_IN_XML.getExplanation(TextFormat.RAW) + message = DEPRECATED_WIDGET_IN_XML.getExplanation(TextFormat.RAW), ) } companion object { - private const val LEGACY_PRIMARY_LOWERCASE_BUTTON = "com.duckduckgo.mobile.android.ui.view.button.ButtonPrimaryLowercase" - private const val LEGACY_PRIMARY_ROUNDED_BUTTON = "com.duckduckgo.mobile.android.ui.view.button.ButtonPrimaryRounded" - private const val LEGACY_SECONDARY_ROUNDED_BUTTON = "com.duckduckgo.mobile.android.ui.view.button.ButtonSecondaryRounded" - - private const val LEGACY_ANDROID_BUTTON = "Button" - private const val MATERIAL_BUTTON = "com.google.android.material.button.MaterialButton" - - // this list will also contain the depreacated DS buttons that we are using until the migration is complete - val BUTTON_WIDGETS = listOf(LEGACY_ANDROID_BUTTON, MATERIAL_BUTTON) - val DEPRECATED_BUTTON_IN_XML = Issue + val DEPRECATED_WIDGET_IN_XML = Issue .create( - id = "AndroidButtonInXml", - briefDescription = "Default Android Button Widget used instead of Design System Component", - explanation = "Always favor the use of the Design System Component. ButtonPrimaryLarge, ButtonSecondaryLarge, etc...", + id = "DeprecatedWidgetInXml", + briefDescription = "Default Android Widget used instead of Design System Component", + explanation = "Always favor the use of the Design System Component", moreInfo = "https://app.asana.com/0/1202857801505092/list", category = CUSTOM_LINT_CHECKS, priority = 10, severity = Severity.ERROR, androidSpecific = true, implementation = Implementation( - DeprecatedAndroidButtonUsedInXmlDetector::class.java, - Scope.RESOURCE_FILE_SCOPE - ) + DeprecatedAndroidWidgetsUsedInXmlDetector::class.java, + Scope.RESOURCE_FILE_SCOPE, + ), ) } } diff --git a/lint-rules/src/main/java/com/duckduckgo/lint/ui/DesignSystemLintExtensions.kt b/lint-rules/src/main/java/com/duckduckgo/lint/ui/DesignSystemLintExtensions.kt new file mode 100644 index 000000000000..fe311a9ee559 --- /dev/null +++ b/lint-rules/src/main/java/com/duckduckgo/lint/ui/DesignSystemLintExtensions.kt @@ -0,0 +1,85 @@ +/* + * Copyright (c) 2023 DuckDuckGo + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.duckduckgo.lint.ui + +import com.android.tools.lint.detector.api.getChildren +import org.w3c.dom.Attr +import org.w3c.dom.Element + +class DesignSystemLintExtensions { + + companion object { + // Buttons + private const val LEGACY_PRIMARY_LOWERCASE_BUTTON = "com.duckduckgo.mobile.android.ui.view.button.ButtonPrimaryLowercase" + private const val LEGACY_PRIMARY_ROUNDED_BUTTON = "com.duckduckgo.mobile.android.ui.view.button.ButtonPrimaryRounded" + private const val LEGACY_SECONDARY_ROUNDED_BUTTON = "com.duckduckgo.mobile.android.ui.view.button.ButtonSecondaryRounded" + + private const val LEGACY_ANDROID_BUTTON = "Button" + private const val APP_COMPAT_BUTTON = "AppCompatButton" + private const val MATERIAL_BUTTON = "com.google.android.material.button.MaterialButton" + + // TextView + private const val TEXT_VIEW = "TextView" + private const val APPCOMPAT__TEXT_VIEW = "AppCompatTextView" + private const val MATERIAL_TEXT_VIEW = "com.google.android.material.textview.MaterialTextView" + + private val DEPRECATED_BUTTON_WIDGETS = listOf( + LEGACY_ANDROID_BUTTON, + APP_COMPAT_BUTTON, + MATERIAL_BUTTON, + LEGACY_PRIMARY_LOWERCASE_BUTTON, + LEGACY_PRIMARY_ROUNDED_BUTTON, + LEGACY_SECONDARY_ROUNDED_BUTTON, + ) + + private val DEPRECATED_TEXT_WIDGETS = listOf( + TEXT_VIEW, + APPCOMPAT__TEXT_VIEW, + MATERIAL_TEXT_VIEW + ) + + // Switch + private const val APP_COMPAT_SWITCH = "androidx.appcompat.widget.SwitchCompat" + private const val MATERIAL_SWITCH = "com.google.android.material.switchmaterial.SwitchMaterial" + private const val SWITCH = "Switch" + + private val DEPRECATED_SWITCHES = listOf(APP_COMPAT_SWITCH, MATERIAL_SWITCH, SWITCH) + + val DEPRECATED_WIDGETS = DEPRECATED_BUTTON_WIDGETS.plus(DEPRECATED_TEXT_WIDGETS).plus(DEPRECATED_SWITCHES) + } +} + + +internal fun Attr.belongsToItem() = ownerElement.nodeName == "item" + +internal fun Element.belongsToStyle() = parentNode.nodeName == "style" + +internal fun Element.belongsToThemeOrThemeOverlay() = belongsToStyle() + && parentNode.attributes.getNamedItem("name").nodeValue.startsWith("Theme") + +/** + * Looks for VALUE in a - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + """, + ).indented(), + ) + .issues(WrongStyleDetector.WRONG_STYLE_NAME) + .run() + .expectClean() + } + + @Test + fun whenStyleNameIsWrongThenFail() { + lint().files( + xml( + "res/xml/style.xml", + """ + + """, + ).indented(), + ) + .issues(WrongStyleDetector.WRONG_STYLE_NAME) + .run() + .expect( + """ + res/xml/style.xml:1: Error: Style names should follow the convention and start with Widget.DuckDuckGo. [WrongStyleName] + + """, + ).indented(), + ) + .issues(WrongStyleDetector.WRONG_STYLE_NAME) + .run() + .expectClean() + } + + @Test + fun whenStyleHasHeighthenFail() { + lint().files( + xml( + "res/xml/style.xml", + """ + + """, + ).indented(), + ) + .issues(WrongStyleDetector.WRONG_STYLE_NAME) + .run() + .expectClean() + } +} From 6f1a028476ae49ab6db57cd310fb754687935977 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Gonz=C3=A1lez?= Date: Tue, 24 Jan 2023 17:24:48 +0100 Subject: [PATCH 13/21] added lint rule to avoid height and width in styles --- .../duckduckgo/lint/ui/WrongStyleDetector.kt | 52 +++++++++++++++++-- .../DeprecatedSwitchUsedInXmlDetectorTest.kt | 27 ---------- .../lint/ui/WrongStyleDetectorTest.kt | 22 ++++++-- 3 files changed, 67 insertions(+), 34 deletions(-) delete mode 100644 lint-rules/src/test/java/com/duckduckgo/lint/ui/DeprecatedSwitchUsedInXmlDetectorTest.kt diff --git a/lint-rules/src/main/java/com/duckduckgo/lint/ui/WrongStyleDetector.kt b/lint-rules/src/main/java/com/duckduckgo/lint/ui/WrongStyleDetector.kt index f22c2651d4b4..1dd4c26aeaa1 100644 --- a/lint-rules/src/main/java/com/duckduckgo/lint/ui/WrongStyleDetector.kt +++ b/lint-rules/src/main/java/com/duckduckgo/lint/ui/WrongStyleDetector.kt @@ -16,9 +16,11 @@ package com.duckduckgo.lint.ui +import com.android.SdkConstants import com.android.SdkConstants.ATTR_NAME import com.android.SdkConstants.ATTR_STYLE import com.android.resources.ResourceFolderType +import com.android.resources.ResourceUrl import com.android.tools.lint.detector.api.Category import com.android.tools.lint.detector.api.Implementation import com.android.tools.lint.detector.api.Issue @@ -27,7 +29,9 @@ import com.android.tools.lint.detector.api.Scope import com.android.tools.lint.detector.api.Severity import com.android.tools.lint.detector.api.TextFormat import com.android.tools.lint.detector.api.XmlContext -import com.duckduckgo.lint.ui.DeprecatedAndroidWidgetsUsedInXmlDetector.Companion +import com.android.tools.lint.detector.api.XmlScannerConstants +import com.android.utils.iterator +import org.w3c.dom.Attr import org.w3c.dom.Document import org.w3c.dom.Element @@ -43,12 +47,27 @@ class WrongStyleDetector: ResourceXmlDetector() { if (ATTR_STYLE == root.tagName) { val value = root.getAttribute(ATTR_NAME) if (!value.startsWith(PREFIX_DDG_STYLE)){ - reportIssue(context, root) + reportWrongStyleNameIssue(context, root) } + checkSizeParameters(context, root) } + } + private fun checkSizeParameters(context: XmlContext, parameters: Element) { + for (parameter in parameters) { + if (parameter.attributes.getNamedItem(ATTR_NAME) != null){ + val attribute = parameter.attributes.getNamedItem(ATTR_NAME) + if (attribute.nodeValue == "android:layout_width"){ + reportWrongStyleParameterIssue(context, parameter) + } + if (attribute.nodeValue == "android:layout_height"){ + reportWrongStyleParameterIssue(context, parameter) + } + } + } } - private fun reportIssue( + + private fun reportWrongStyleNameIssue( context: XmlContext, element: Element ) { @@ -59,6 +78,17 @@ class WrongStyleDetector: ResourceXmlDetector() { ) } + private fun reportWrongStyleParameterIssue( + context: XmlContext, + element: Element + ) { + context.report( + issue = WRONG_STYLE_PARAMETER, + location = context.getNameLocation(element), + message = WRONG_STYLE_PARAMETER.getExplanation(TextFormat.RAW), + ) + } + companion object { const val PREFIX_DDG_STYLE = "Widget.DuckDuckGo." @@ -77,6 +107,22 @@ class WrongStyleDetector: ResourceXmlDetector() { Scope.RESOURCE_FILE_SCOPE, ), ) + + val WRONG_STYLE_PARAMETER = Issue + .create( + id = "WrongStyleParameter", + briefDescription = "Styles should not modify android:layout_height or android:layout_width", + explanation = "Styles should not modify android:layout_height or android:layout_width", + moreInfo = "https://app.asana.com/0/1202857801505092/list", + category = Category.CUSTOM_LINT_CHECKS, + priority = 10, + severity = Severity.ERROR, + androidSpecific = true, + implementation = Implementation( + WrongStyleDetector::class.java, + Scope.RESOURCE_FILE_SCOPE, + ), + ) } diff --git a/lint-rules/src/test/java/com/duckduckgo/lint/ui/DeprecatedSwitchUsedInXmlDetectorTest.kt b/lint-rules/src/test/java/com/duckduckgo/lint/ui/DeprecatedSwitchUsedInXmlDetectorTest.kt deleted file mode 100644 index de0c7a056e22..000000000000 --- a/lint-rules/src/test/java/com/duckduckgo/lint/ui/DeprecatedSwitchUsedInXmlDetectorTest.kt +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright (c) 2022 DuckDuckGo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.duckduckgo.lint.ui - -import com.android.tools.lint.checks.infrastructure.TestFiles -import com.android.tools.lint.checks.infrastructure.TestLintTask.lint -import org.junit.Test - -@Suppress("UnstableApiUsage") -class DeprecatedSwitchUsedInXmlDetectorTest { - - -} diff --git a/lint-rules/src/test/java/com/duckduckgo/lint/ui/WrongStyleDetectorTest.kt b/lint-rules/src/test/java/com/duckduckgo/lint/ui/WrongStyleDetectorTest.kt index 73b69cb2ab46..9b696abb2044 100644 --- a/lint-rules/src/test/java/com/duckduckgo/lint/ui/WrongStyleDetectorTest.kt +++ b/lint-rules/src/test/java/com/duckduckgo/lint/ui/WrongStyleDetectorTest.kt @@ -84,9 +84,16 @@ class WrongStyleDetectorTest { """, ).indented(), ) - .issues(WrongStyleDetector.WRONG_STYLE_NAME) + .issues(WrongStyleDetector.WRONG_STYLE_PARAMETER) .run() - .expectClean() + .expect( + """ + res/xml/style.xml:2: Error: Styles should not modify android:layout_height or android:layout_width [WrongStyleParameter] + match_parent + ~~~~ + 1 errors, 0 warnings + """, + ) } @Test @@ -103,8 +110,15 @@ class WrongStyleDetectorTest { """, ).indented(), ) - .issues(WrongStyleDetector.WRONG_STYLE_NAME) + .issues(WrongStyleDetector.WRONG_STYLE_PARAMETER) .run() - .expectClean() + .expect( + """ + res/xml/style.xml:2: Error: Styles should not modify android:layout_height or android:layout_width [WrongStyleParameter] + match_parent + ~~~~ + 1 errors, 0 warnings + """, + ) } } From cf55d49d4f1c1aaf797fd4217d19f197de59ffff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Gonz=C3=A1lez?= Date: Wed, 25 Jan 2023 16:32:05 +0100 Subject: [PATCH 14/21] added new style detector to the registry --- .../duckduckgo/lint/registry/DuckDuckGoIssueRegistry.kt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lint-rules/src/main/java/com/duckduckgo/lint/registry/DuckDuckGoIssueRegistry.kt b/lint-rules/src/main/java/com/duckduckgo/lint/registry/DuckDuckGoIssueRegistry.kt index 39c7b5d213e1..aa29a92e2b21 100644 --- a/lint-rules/src/main/java/com/duckduckgo/lint/registry/DuckDuckGoIssueRegistry.kt +++ b/lint-rules/src/main/java/com/duckduckgo/lint/registry/DuckDuckGoIssueRegistry.kt @@ -38,6 +38,10 @@ import com.duckduckgo.lint.ui.NoAlertDialogDetector.Companion.NO_DESIGN_SYSTEM_D import com.duckduckgo.lint.ui.NoBottomSheetDialogDetector.Companion.NO_BOTTOM_SHEET import com.duckduckgo.lint.ui.NoStyleAppliedToDesignSystemComponentDetector.Companion.STYLE_IN_DESIGN_SYSTEM_COMPONENT import com.duckduckgo.lint.ui.SkeletonViewBackgroundDetector.Companion.INVALID_SKELETON_VIEW_BACKGROUND +import com.duckduckgo.lint.ui.WrongStyleDetector +import com.duckduckgo.lint.ui.WrongStyleDetector.Companion +import com.duckduckgo.lint.ui.WrongStyleDetector.Companion.WRONG_STYLE_NAME +import com.duckduckgo.lint.ui.WrongStyleDetector.Companion.WRONG_STYLE_PARAMETER @Suppress("UnstableApiUsage") class DuckDuckGoIssueRegistry : IssueRegistry() { @@ -62,7 +66,9 @@ class DuckDuckGoIssueRegistry : IssueRegistry() { NO_BOTTOM_SHEET, INVALID_DAX_TEXT_VIEW_PROPERTY, INVALID_DAX_BUTTON_PROPERTY, - INVALID_SKELETON_VIEW_BACKGROUND + INVALID_SKELETON_VIEW_BACKGROUND, + WRONG_STYLE_PARAMETER, + WRONG_STYLE_NAME ) From 2ab54c5d09b5c6e89c0a9dcb2d4b4e9fb2b9ea4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Gonz=C3=A1lez?= Date: Thu, 26 Jan 2023 16:56:59 +0100 Subject: [PATCH 15/21] added new rule for colors --- .../lint/registry/DuckDuckGoIssueRegistry.kt | 5 +- .../lint/ui/ColorAttributeInXmlDetector.kt | 106 ++++++++++++++++++ .../lint/ui/DesignSystemLintExtensions.kt | 9 ++ 3 files changed, 119 insertions(+), 1 deletion(-) create mode 100644 lint-rules/src/main/java/com/duckduckgo/lint/ui/ColorAttributeInXmlDetector.kt diff --git a/lint-rules/src/main/java/com/duckduckgo/lint/registry/DuckDuckGoIssueRegistry.kt b/lint-rules/src/main/java/com/duckduckgo/lint/registry/DuckDuckGoIssueRegistry.kt index aa29a92e2b21..845823bf9e4a 100644 --- a/lint-rules/src/main/java/com/duckduckgo/lint/registry/DuckDuckGoIssueRegistry.kt +++ b/lint-rules/src/main/java/com/duckduckgo/lint/registry/DuckDuckGoIssueRegistry.kt @@ -29,6 +29,8 @@ import com.duckduckgo.lint.NoSingletonDetector.Companion.NO_SINGLETON_ISSUE import com.duckduckgo.lint.NoSystemLoadLibraryDetector.Companion.NO_SYSTEM_LOAD_LIBRARY import com.duckduckgo.lint.strings.MissingInstructionDetector.Companion.MISSING_INSTRUCTION import com.duckduckgo.lint.strings.PlaceholderDetector.Companion.PLACEHOLDER_MISSING_POSITION +import com.duckduckgo.lint.ui.ColorAttributeInXmlDetector +import com.duckduckgo.lint.ui.ColorAttributeInXmlDetector.Companion.INVALID_COLOR_ATTRIBUTE import com.duckduckgo.lint.ui.DaxButtonStylingDetector.Companion.INVALID_DAX_BUTTON_PROPERTY import com.duckduckgo.lint.ui.DaxTextViewStylingDetector.Companion.INVALID_DAX_TEXT_VIEW_PROPERTY import com.duckduckgo.lint.ui.DeprecatedAndroidWidgetsUsedInXmlDetector.Companion.DEPRECATED_WIDGET_IN_XML @@ -68,7 +70,8 @@ class DuckDuckGoIssueRegistry : IssueRegistry() { INVALID_DAX_BUTTON_PROPERTY, INVALID_SKELETON_VIEW_BACKGROUND, WRONG_STYLE_PARAMETER, - WRONG_STYLE_NAME + WRONG_STYLE_NAME, + INVALID_COLOR_ATTRIBUTE ) diff --git a/lint-rules/src/main/java/com/duckduckgo/lint/ui/ColorAttributeInXmlDetector.kt b/lint-rules/src/main/java/com/duckduckgo/lint/ui/ColorAttributeInXmlDetector.kt new file mode 100644 index 000000000000..9d56076ac979 --- /dev/null +++ b/lint-rules/src/main/java/com/duckduckgo/lint/ui/ColorAttributeInXmlDetector.kt @@ -0,0 +1,106 @@ +/* + * Copyright (c) 2023 DuckDuckGo + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.duckduckgo.lint.ui + +import com.android.resources.ResourceFolderType +import com.android.tools.lint.detector.api.Category +import com.android.tools.lint.detector.api.Implementation +import com.android.tools.lint.detector.api.Issue +import com.android.tools.lint.detector.api.ResourceXmlDetector +import com.android.tools.lint.detector.api.Scope +import com.android.tools.lint.detector.api.Severity +import com.android.tools.lint.detector.api.TextFormat +import com.android.tools.lint.detector.api.XmlContext +import com.android.tools.lint.detector.api.XmlScannerConstants +import org.w3c.dom.Attr + +/** + * Prohibits use of hardcoded colors in XML layouts and color resources. + * + * A hardcoded color includes: + * + * - a reference to a color resource which doesn't include "dax" in the name. + * "dax" is used as an allowlist filter, where we'll assume that the resource contains theme-friendly colors + * or it's an exception to the rule. + * - a color hexcode + * + */ +internal class ColorAttributeInXmlDetector : ResourceXmlDetector() { + + override fun appliesTo(folderType: ResourceFolderType) = + folderType == ResourceFolderType.LAYOUT || folderType == ResourceFolderType.VALUES || folderType == ResourceFolderType.COLOR + + override fun getApplicableAttributes(): Collection = XmlScannerConstants.ALL + + override fun visitAttribute( + context: XmlContext, + attribute: Attr + ) { + when (context.resourceFolderType) { + ResourceFolderType.COLOR, ResourceFolderType.LAYOUT -> if (attribute.value.isColorHexcode() || attribute.value.isHardcodedColorResInXml()) { + reportIssue(context, attribute) + } + + ResourceFolderType.VALUES -> { + // we're only interested in style resources + val item = if (attribute.belongsToItem()) attribute.ownerElement else return + if (item.belongsToThemeOrThemeOverlay()) { + // we define attributes in themes/theme overlays so it's normal to have hardcoded colors here + // kind of, maybe + return + } + if (item.belongsToStyle()) { + val value = item.firstChild.nodeValue + if (value.isColorHexcode() || value.isHardcodedColorResInXml()) { + reportIssue(context, attribute) + } + } + } + + else -> return + } + } + + private fun reportIssue( + context: XmlContext, + attribute: Attr + ) { + context.report( + issue = INVALID_COLOR_ATTRIBUTE, + location = context.getNameLocation(attribute), + message = INVALID_COLOR_ATTRIBUTE.getExplanation(TextFormat.RAW), + ) + } + + companion object { + val INVALID_COLOR_ATTRIBUTE = Issue + .create( + id = "InvalidColorAttribute", + briefDescription = "@colors are not allowed, used ?attr/daxColor instead", + explanation = "@colors are not allowed, used ?attr/daxColor instead", + moreInfo = "https://app.asana.com/0/1202857801505092/1202928695963077", + category = Category.CUSTOM_LINT_CHECKS, + priority = 10, + severity = Severity.ERROR, + androidSpecific = true, + implementation = Implementation( + ColorAttributeInXmlDetector::class.java, + Scope.RESOURCE_FILE_SCOPE, + ), + ) + } +} diff --git a/lint-rules/src/main/java/com/duckduckgo/lint/ui/DesignSystemLintExtensions.kt b/lint-rules/src/main/java/com/duckduckgo/lint/ui/DesignSystemLintExtensions.kt index ce9b905887da..31bc075e40d9 100644 --- a/lint-rules/src/main/java/com/duckduckgo/lint/ui/DesignSystemLintExtensions.kt +++ b/lint-rules/src/main/java/com/duckduckgo/lint/ui/DesignSystemLintExtensions.kt @@ -89,6 +89,15 @@ class DesignSystemLintExtensions { } } +private val REGEX_HEX_COLOR = Regex("^#[0-9a-fA-F]{8}$|#[0-9a-fA-F]{6}$|#[0-9a-fA-F]{4}$|#[0-9a-fA-F]{3}$") + +internal fun String.isColorHexcode() = REGEX_HEX_COLOR.containsMatchIn(this) + +/** + * "mds" is used as an allowlist filter, where we'll assume that the resource contains theme-friendly colors + * or it's an exception to the rule. + */ +internal fun String.isHardcodedColorResInXml() = startsWith("@color/") && !contains("dax") internal fun Attr.belongsToItem() = ownerElement.nodeName == "item" From 498a6dc5d4c3c4606aa3d2e6c9a7c75b295eebb4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Gonz=C3=A1lez?= Date: Fri, 27 Jan 2023 13:31:30 +0100 Subject: [PATCH 16/21] ADS: Code and Attributes cleanup (#2746) Task/Issue URL: https://app.asana.com/0/1174433894299346/1203720277615468 ### Description ### Steps to test this PR Background Task to track the work of removing unnecessary code in the app Scope: Attributes no longer in use Remove old ButtonPrimaryRounded, ButtonSecondaryRounded, etc Remove unused styles --- .../DeviceShieldTrackerActivity.kt | 2 +- .../main/res/color/device_tracker_color.xml | 7 - .../res/drawable/background_blue_button.xml | 27 -- .../res/drawable/background_white_card.xml | 26 -- ...ield_onboarding_page_three_header_dark.png | Bin 32846 -> 0 bytes .../src/main/res/drawable/ic_arrow_down.xml | 2 +- .../src/main/res/drawable/ic_block.xml | 2 +- .../src/main/res/drawable/ic_green_key.xml | 2 +- .../main/res/drawable/ic_oval_background.xml | 2 +- .../ic_report_breakage_down_arrow_24dp.xml | 25 -- .../res/drawable/ic_signal_advertising_id.xml | 2 +- .../src/main/res/drawable/ic_signal_app.xml | 2 +- .../main/res/drawable/ic_signal_battery.xml | 2 +- .../res/drawable/ic_signal_brightness.xml | 2 +- .../main/res/drawable/ic_signal_cookie.xml | 2 +- .../main/res/drawable/ic_signal_device.xml | 2 +- .../src/main/res/drawable/ic_signal_gps.xml | 2 +- .../res/drawable/ic_signal_identifiers.xml | 2 +- .../src/main/res/drawable/ic_signal_os.xml | 2 +- .../main/res/drawable/ic_signal_person.xml | 2 +- .../src/main/res/drawable/ic_signal_pin.xml | 2 +- .../main/res/drawable/ic_signal_sensor.xml | 4 +- .../main/res/drawable/ic_signal_settings.xml | 2 +- .../main/res/drawable/ic_signal_storage.xml | 2 +- .../src/main/res/drawable/ic_signal_time.xml | 2 +- .../main/res/drawable/ic_signal_volume.xml | 2 +- .../src/main/res/drawable/ic_signal_wifi.xml | 2 +- ...ed_top_corners_bottom_sheet_background.xml | 2 +- .../include_company_trackers_toolbar.xml | 2 +- .../res/layout/include_trackers_toolbar.xml | 2 +- .../res/layout/exception_rule_domain_view.xml | 2 +- .../src/main/res/values/donottranslate.xml | 1 - .../animations/TrackersLottieAssetDelegate.kt | 2 +- .../app/global/view/FaviconImageView.kt | 2 +- .../duckduckgo/app/global/view/FireDialog.kt | 2 +- .../app/icon/ui/ChangeIconActivity.kt | 2 +- .../app/systemsearch/SystemSearchActivity.kt | 2 +- .../widget/FavoritesWidgetService.kt | 2 +- .../main/res/drawable-h400dp/logo_full.xml | 2 +- .../drawable/background_add_widget_number.xml | 2 +- app/src/main/res/drawable/ic_apptp_icon.xml | 74 ---- .../res/drawable/ic_autocomplete_bookmark.xml | 25 -- app/src/main/res/drawable/ic_bookmarks.xml | 2 +- app/src/main/res/drawable/ic_circle_pulse.xml | 2 +- app/src/main/res/drawable/ic_counter.xml | 57 --- app/src/main/res/drawable/ic_dragon.xml | 230 ---------- .../drawable/ic_keepboth_brownish_24dp.xml | 25 -- .../main/res/drawable/ic_more_trackers.xml | 2 +- app/src/main/res/drawable/ic_newtab.xml | 2 +- .../res/drawable/ic_open_brownish_24dp.xml | 25 -- .../res/drawable/ic_other_domains_banner.xml | 26 -- .../res/drawable/ic_other_domains_info.xml | 10 - .../drawable/ic_other_domains_info_green.xml | 10 - app/src/main/res/drawable/ic_overflow.xml | 25 -- .../main/res/drawable/ic_overflow_12dp.xml | 25 -- .../res/drawable/ic_replace_brownish_24dp.xml | 25 -- app/src/main/res/drawable/ic_share.xml | 2 +- .../res/drawable/ic_triangle_bubble_white.xml | 28 -- .../main/res/drawable/loading_progress.xml | 2 +- app/src/main/res/drawable/logo_full.xml | 2 +- .../main/res/drawable/network_logo_adform.xml | 2 +- .../res/drawable/network_logo_adobe_inc.xml | 2 +- .../network_logo_amazon_technologies_inc.xml | 2 +- .../res/drawable/network_logo_amobee_inc.xml | 2 +- .../drawable/network_logo_appnexus_inc.xml | 2 +- .../main/res/drawable/network_logo_blank.xml | 2 +- .../res/drawable/network_logo_centro_inc.xml | 2 +- .../res/drawable/network_logo_chartbeat.xml | 2 +- .../res/drawable/network_logo_cloudflare.xml | 2 +- .../drawable/network_logo_comscore_inc.xml | 2 +- .../drawable/network_logo_conversant_llc.xml | 2 +- .../res/drawable/network_logo_critero_sa.xml | 2 +- .../res/drawable/network_logo_dataxu_inc.xml | 2 +- .../drawable/network_logo_facebook_inc.xml | 2 +- .../res/drawable/network_logo_google_ads.xml | 2 +- .../network_logo_google_analytics.xml | 2 +- .../res/drawable/network_logo_google_llc.xml | 2 +- .../res/drawable/network_logo_hotjar_ltd.xml | 2 +- .../network_logo_index_exchange_inc.xml | 2 +- .../res/drawable/network_logo_instagram.xml | 6 +- .../drawable/network_logo_iponweb_gmbh.xml | 2 +- .../res/drawable/network_logo_linkedin.xml | 2 +- .../network_logo_lotame_solutions_inc.xml | 2 +- .../drawable/network_logo_mediamath_inc.xml | 2 +- .../network_logo_microsoft_corporation.xml | 2 +- .../drawable/network_logo_mixpanel_inc.xml | 2 +- .../main/res/drawable/network_logo_more.xml | 2 +- .../res/drawable/network_logo_neustar_inc.xml | 2 +- .../res/drawable/network_logo_new_relic.xml | 2 +- .../network_logo_openx_technologies_inc.xml | 2 +- .../network_logo_oracle_corporation.xml | 2 +- .../res/drawable/network_logo_outbrain.xml | 10 +- .../drawable/network_logo_pubmatic_inc.xml | 2 +- .../network_logo_quantcast_corporation.xml | 2 +- ...k_logo_rubicon_the_rubicon_project_inc.xml | 2 +- .../network_logo_salesforcecom_inc.xml | 2 +- .../network_logo_smartadserver_sas.xml | 2 +- .../res/drawable/network_logo_spotx_inc.xml | 2 +- .../res/drawable/network_logo_stackpath.xml | 2 +- .../drawable/network_logo_taboolacom_ltd.xml | 2 +- .../res/drawable/network_logo_tapad_inc.xml | 2 +- .../network_logo_the_nielsen_company.xml | 2 +- .../network_logo_the_trade_desk_inc.xml | 2 +- .../res/drawable/network_logo_towerdata.xml | 2 +- .../res/drawable/network_logo_twitter_inc.xml | 2 +- .../drawable/network_logo_verizon_media.xml | 2 +- .../main/res/drawable/network_logo_xaxis.xml | 2 +- .../network_logo_yahoo_japan_corporation.xml | 8 +- .../res/drawable/network_logo_yandex_llc.xml | 2 +- .../res/drawable/network_logo_youtube.xml | 4 +- .../res/drawable/tab_unread_indicator.xml | 4 +- .../main/res/layout/activity_app_icons.xml | 2 +- .../main/res/layout/activity_bookmarks.xml | 4 +- .../main/res/layout/activity_downloads.xml | 4 +- .../res/layout/activity_system_search.xml | 6 +- .../content_feedback_open_ended_feedback.xml | 2 +- .../dialog_radio_group_selector_fragment.xml | 67 --- .../res/layout/include_omnibar_toolbar.xml | 4 +- .../layout/include_omnibar_toolbar_mockup.xml | 2 +- .../item_autocomplete_bookmark_suggestion.xml | 1 - .../search_favorites_widget_dark_auto.xml | 6 +- .../search_favorites_widget_dark_col2.xml | 6 +- .../search_favorites_widget_dark_col3.xml | 6 +- .../search_favorites_widget_dark_col4.xml | 6 +- .../search_favorites_widget_dark_col5.xml | 6 +- .../search_favorites_widget_dark_col6.xml | 6 +- .../search_favorites_widget_daynight_auto.xml | 6 +- .../search_favorites_widget_daynight_col2.xml | 6 +- .../search_favorites_widget_daynight_col3.xml | 6 +- .../search_favorites_widget_daynight_col4.xml | 6 +- .../search_favorites_widget_daynight_col5.xml | 6 +- .../search_favorites_widget_daynight_col6.xml | 6 +- ...earch_favorites_widget_empty_hint_dark.xml | 6 +- ...h_favorites_widget_empty_hint_daylight.xml | 6 +- ...arch_favorites_widget_empty_hint_light.xml | 6 +- .../search_favorites_widget_light_auto.xml | 6 +- .../search_favorites_widget_light_col2.xml | 6 +- .../search_favorites_widget_light_col3.xml | 6 +- .../search_favorites_widget_light_col4.xml | 6 +- .../search_favorites_widget_light_col5.xml | 6 +- .../search_favorites_widget_light_col6.xml | 6 +- ...earch_favorites_widget_search_bar_dark.xml | 10 +- ...h_favorites_widget_search_bar_daynight.xml | 10 +- ...arch_favorites_widget_search_bar_light.xml | 10 +- .../main/res/layout/search_widget_dark.xml | 10 +- .../main/res/layout/search_widget_light.xml | 10 +- .../layout/view_favorite_widget_dark_item.xml | 6 +- .../view_favorite_widget_daynight_item.xml | 6 +- .../view_favorite_widget_light_item.xml | 6 +- app/src/main/res/values-v27/styles.xml | 24 -- .../main/res/drawable/ic_baseline_add_24.xml | 2 +- .../res/drawable/ic_baseline_search_24.xml | 2 +- .../res/layout/activity_autofill_settings.xml | 4 +- ...t_autofill_update_existing_credentials.xml | 2 +- ...autofill_credentials_management_screen.xml | 2 +- .../src/main/res/values/styles.xml | 2 +- common-ui/lint-baseline.xml | 40 +- .../mobile/android/ui/view/InfoPanel.kt | 2 +- .../color/accent_blue_text_color_selector.xml | 2 +- .../color/broken_sites_button_background.xml | 22 - .../res/color/broken_sites_button_text.xml | 22 - .../color/broken_sites_dropdown_selector.xml | 22 - .../browser_icon_color_selector_dark.xml | 21 - .../browser_icon_color_selector_light.xml | 21 - .../src/main/res/color/browser_menu_text.xml | 22 - .../background_blue_button_primary.xml | 41 -- .../background_blue_button_rounded.xml | 41 -- ...und_transparent_button_rounded_corners.xml | 59 --- ...kground_white_button_secondary_rounded.xml | 41 -- .../main/res/drawable/button_primary_bg.xml | 24 -- .../main/res/drawable/button_secondary_bg.xml | 24 -- .../drawable/divider_shadow_background.xml | 66 --- .../res/drawable/ic_bookmark_solid_16.xml | 2 +- .../main/res/drawable/ic_colorize_24dp.xml | 26 -- .../main/res/drawable/ic_device_mobile_16.xml | 2 +- .../res/drawable/ic_device_shield_key.xml | 9 - .../res/drawable/ic_favorite_solid_16.xml | 2 +- .../main/res/drawable/ic_fireproofed_16.xml | 6 +- .../src/main/res/drawable/ic_gift_large.xml | 94 ----- common-ui/src/main/res/drawable/ic_list.xml | 54 --- .../src/main/res/drawable/ic_overflow.xml | 11 - .../main/res/drawable/ic_protections_16.xml | 4 +- common-ui/src/main/res/drawable/ic_union.xml | 2 +- .../drawable/info_panel_alert_background.xml | 2 +- .../info_panel_tooltip_background.xml | 2 +- .../list_item_circular_background_sample.xml | 26 -- .../res/drawable/network_logo_newrelic.xml | 2 +- .../res/drawable/network_logo_nielsen.xml | 2 +- .../res/layout/activity_app_components.xml | 2 +- .../main/res/layout/component_top_app_bar.xml | 2 +- .../res/layout/include_default_toolbar.xml | 2 +- common-ui/src/main/res/values-land/dimens.xml | 1 - .../main/res/values-sw600dp-land/dimens.xml | 2 - .../src/main/res/values-sw600dp/dimens.xml | 8 - .../attrs-app-tracking-protection.xml} | 12 +- .../src/main/res/values/attrs-info-panel.xml | 12 +- common-ui/src/main/res/values/attrs-lists.xml | 4 - common-ui/src/main/res/values/attrs.xml | 95 ----- common-ui/src/main/res/values/colors.xml | 117 ------ .../main/res/values/design-system-colors.xml | 36 ++ .../res/values/design-system-dimensions.xml | 23 + .../main/res/values/design-system-theming.xml | 202 ++------- common-ui/src/main/res/values/dimens.xml | 61 --- common-ui/src/main/res/values/styles.xml | 393 ------------------ common-ui/src/main/res/values/widgets.xml | 223 ++++++++-- ...ivity_privacy_config_internal_settings.xml | 4 +- .../src/main/res/drawable/ic_microphone.xml | 4 +- 207 files changed, 543 insertions(+), 2579 deletions(-) delete mode 100644 app-tracking-protection/vpn-impl/src/main/res/color/device_tracker_color.xml delete mode 100644 app-tracking-protection/vpn-impl/src/main/res/drawable/background_blue_button.xml delete mode 100644 app-tracking-protection/vpn-impl/src/main/res/drawable/background_white_card.xml delete mode 100644 app-tracking-protection/vpn-impl/src/main/res/drawable/device_shield_onboarding_page_three_header_dark.png delete mode 100644 app-tracking-protection/vpn-impl/src/main/res/drawable/ic_report_breakage_down_arrow_24dp.xml delete mode 100644 app/src/main/res/drawable/ic_apptp_icon.xml delete mode 100644 app/src/main/res/drawable/ic_autocomplete_bookmark.xml delete mode 100644 app/src/main/res/drawable/ic_counter.xml delete mode 100644 app/src/main/res/drawable/ic_dragon.xml delete mode 100644 app/src/main/res/drawable/ic_keepboth_brownish_24dp.xml delete mode 100644 app/src/main/res/drawable/ic_open_brownish_24dp.xml delete mode 100644 app/src/main/res/drawable/ic_other_domains_banner.xml delete mode 100644 app/src/main/res/drawable/ic_other_domains_info.xml delete mode 100644 app/src/main/res/drawable/ic_other_domains_info_green.xml delete mode 100644 app/src/main/res/drawable/ic_overflow.xml delete mode 100644 app/src/main/res/drawable/ic_overflow_12dp.xml delete mode 100644 app/src/main/res/drawable/ic_replace_brownish_24dp.xml delete mode 100644 app/src/main/res/drawable/ic_triangle_bubble_white.xml delete mode 100644 app/src/main/res/layout/dialog_radio_group_selector_fragment.xml delete mode 100644 app/src/main/res/values-v27/styles.xml delete mode 100644 common-ui/src/main/res/color/broken_sites_button_background.xml delete mode 100644 common-ui/src/main/res/color/broken_sites_button_text.xml delete mode 100644 common-ui/src/main/res/color/broken_sites_dropdown_selector.xml delete mode 100644 common-ui/src/main/res/color/browser_icon_color_selector_dark.xml delete mode 100644 common-ui/src/main/res/color/browser_icon_color_selector_light.xml delete mode 100644 common-ui/src/main/res/color/browser_menu_text.xml delete mode 100644 common-ui/src/main/res/drawable/background_blue_button_primary.xml delete mode 100644 common-ui/src/main/res/drawable/background_blue_button_rounded.xml delete mode 100644 common-ui/src/main/res/drawable/background_transparent_button_rounded_corners.xml delete mode 100644 common-ui/src/main/res/drawable/background_white_button_secondary_rounded.xml delete mode 100644 common-ui/src/main/res/drawable/button_primary_bg.xml delete mode 100644 common-ui/src/main/res/drawable/button_secondary_bg.xml delete mode 100644 common-ui/src/main/res/drawable/divider_shadow_background.xml delete mode 100644 common-ui/src/main/res/drawable/ic_colorize_24dp.xml delete mode 100644 common-ui/src/main/res/drawable/ic_device_shield_key.xml delete mode 100644 common-ui/src/main/res/drawable/ic_gift_large.xml delete mode 100644 common-ui/src/main/res/drawable/ic_list.xml delete mode 100644 common-ui/src/main/res/drawable/ic_overflow.xml delete mode 100644 common-ui/src/main/res/drawable/list_item_circular_background_sample.xml rename common-ui/src/main/res/{drawable/subtle_favicon_background.xml => values/attrs-app-tracking-protection.xml} (69%) delete mode 100644 common-ui/src/main/res/values/attrs.xml delete mode 100644 common-ui/src/main/res/values/colors.xml delete mode 100644 common-ui/src/main/res/values/dimens.xml delete mode 100644 common-ui/src/main/res/values/styles.xml diff --git a/app-tracking-protection/vpn-impl/src/main/java/com/duckduckgo/mobile/android/vpn/ui/tracker_activity/DeviceShieldTrackerActivity.kt b/app-tracking-protection/vpn-impl/src/main/java/com/duckduckgo/mobile/android/vpn/ui/tracker_activity/DeviceShieldTrackerActivity.kt index 047c1907baf7..b8c0bfcc32ea 100644 --- a/app-tracking-protection/vpn-impl/src/main/java/com/duckduckgo/mobile/android/vpn/ui/tracker_activity/DeviceShieldTrackerActivity.kt +++ b/app-tracking-protection/vpn-impl/src/main/java/com/duckduckgo/mobile/android/vpn/ui/tracker_activity/DeviceShieldTrackerActivity.kt @@ -635,7 +635,7 @@ class DeviceShieldTrackerActivity : private fun launchKonfetti() { val magenta = ResourcesCompat.getColor(getResources(), com.duckduckgo.mobile.android.R.color.magenta, null) - val blue = ResourcesCompat.getColor(getResources(), com.duckduckgo.mobile.android.R.color.accentBlue, null) + val blue = ResourcesCompat.getColor(getResources(), com.duckduckgo.mobile.android.R.color.blue30, null) val purple = ResourcesCompat.getColor(getResources(), com.duckduckgo.mobile.android.R.color.purple, null) val green = ResourcesCompat.getColor(getResources(), com.duckduckgo.mobile.android.R.color.green, null) val yellow = ResourcesCompat.getColor(getResources(), com.duckduckgo.mobile.android.R.color.yellow, null) diff --git a/app-tracking-protection/vpn-impl/src/main/res/color/device_tracker_color.xml b/app-tracking-protection/vpn-impl/src/main/res/color/device_tracker_color.xml deleted file mode 100644 index c989fc02b731..000000000000 --- a/app-tracking-protection/vpn-impl/src/main/res/color/device_tracker_color.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - \ No newline at end of file diff --git a/app-tracking-protection/vpn-impl/src/main/res/drawable/background_blue_button.xml b/app-tracking-protection/vpn-impl/src/main/res/drawable/background_blue_button.xml deleted file mode 100644 index 02085c12e665..000000000000 --- a/app-tracking-protection/vpn-impl/src/main/res/drawable/background_blue_button.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/app-tracking-protection/vpn-impl/src/main/res/drawable/background_white_card.xml b/app-tracking-protection/vpn-impl/src/main/res/drawable/background_white_card.xml deleted file mode 100644 index 14e77dcd0ea5..000000000000 --- a/app-tracking-protection/vpn-impl/src/main/res/drawable/background_white_card.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/app-tracking-protection/vpn-impl/src/main/res/drawable/device_shield_onboarding_page_three_header_dark.png b/app-tracking-protection/vpn-impl/src/main/res/drawable/device_shield_onboarding_page_three_header_dark.png deleted file mode 100644 index 0cc12569fa42e466bd975cbaaf7cacc777eff8c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32846 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̫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 diff --git a/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_block.xml b/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_block.xml index 8debec957a70..7ec61e7765a6 100644 --- a/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_block.xml +++ b/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_block.xml @@ -27,6 +27,6 @@ android:fillColor="@color/whiteFive"/> + android:fillColor="?attr/daxColorDestructive"/> \ No newline at end of file diff --git a/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_green_key.xml b/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_green_key.xml index 08cb89031da5..3ee0b78653a6 100644 --- a/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_green_key.xml +++ b/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_green_key.xml @@ -22,7 +22,7 @@ diff --git a/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_oval_background.xml b/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_oval_background.xml index 18f0c8cdb1a6..70e32ad3d69c 100644 --- a/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_oval_background.xml +++ b/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_oval_background.xml @@ -16,7 +16,7 @@ - + diff --git a/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_report_breakage_down_arrow_24dp.xml b/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_report_breakage_down_arrow_24dp.xml deleted file mode 100644 index 4684239257c5..000000000000 --- a/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_report_breakage_down_arrow_24dp.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - diff --git a/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_advertising_id.xml b/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_advertising_id.xml index 91c27d60edbc..3c9932f67a61 100644 --- a/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_advertising_id.xml +++ b/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_advertising_id.xml @@ -21,5 +21,5 @@ android:viewportHeight="16"> + android:fillColor="?attr/daxColorPrimaryIcon"/> \ No newline at end of file diff --git a/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_app.xml b/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_app.xml index 9a0aa616200f..ff99b42e9c37 100644 --- a/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_app.xml +++ b/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_app.xml @@ -21,5 +21,5 @@ android:viewportHeight="16"> + android:fillColor="?attr/daxColorPrimaryIcon"/> diff --git a/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_battery.xml b/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_battery.xml index 838b5d1f8fc1..61131339d843 100644 --- a/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_battery.xml +++ b/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_battery.xml @@ -21,5 +21,5 @@ android:viewportHeight="16"> + android:fillColor="?attr/daxColorPrimaryIcon"/> diff --git a/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_brightness.xml b/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_brightness.xml index 3a520e85c6e7..96d10ea6fdd8 100644 --- a/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_brightness.xml +++ b/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_brightness.xml @@ -21,5 +21,5 @@ android:viewportHeight="16"> + android:fillColor="?attr/daxColorPrimaryIcon"/> diff --git a/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_cookie.xml b/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_cookie.xml index cd5a46c1907d..553b94f37c02 100644 --- a/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_cookie.xml +++ b/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_cookie.xml @@ -21,5 +21,5 @@ android:viewportHeight="16"> + android:fillColor="?attr/daxColorPrimaryIcon"/> diff --git a/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_device.xml b/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_device.xml index 577038eacd8c..523e6d00bc53 100644 --- a/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_device.xml +++ b/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_device.xml @@ -21,5 +21,5 @@ android:viewportHeight="16"> + android:fillColor="?attr/daxColorPrimaryIcon"/> diff --git a/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_gps.xml b/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_gps.xml index 35f2110d2c36..212bbc11c5d0 100644 --- a/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_gps.xml +++ b/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_gps.xml @@ -21,5 +21,5 @@ android:viewportHeight="16"> + android:fillColor="?attr/daxColorPrimaryIcon"/> diff --git a/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_identifiers.xml b/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_identifiers.xml index 953028f1e28a..d89b070322c1 100644 --- a/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_identifiers.xml +++ b/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_identifiers.xml @@ -21,5 +21,5 @@ android:viewportHeight="16"> + android:fillColor="?attr/daxColorPrimaryIcon"/> diff --git a/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_os.xml b/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_os.xml index e1bfcf05c32c..42d549f66b7a 100644 --- a/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_os.xml +++ b/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_os.xml @@ -21,5 +21,5 @@ android:viewportHeight="16"> + android:fillColor="?attr/daxColorPrimaryIcon"/> diff --git a/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_person.xml b/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_person.xml index 6ee8f7b04241..0a047f692bd2 100644 --- a/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_person.xml +++ b/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_person.xml @@ -21,5 +21,5 @@ android:viewportHeight="16"> + android:fillColor="?attr/daxColorPrimaryIcon"/> diff --git a/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_pin.xml b/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_pin.xml index 48b4e191c885..ecd89fbb5930 100644 --- a/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_pin.xml +++ b/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_pin.xml @@ -5,6 +5,6 @@ android:viewportHeight="16"> diff --git a/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_sensor.xml b/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_sensor.xml index bc2fe6a27c2a..56490448df9f 100644 --- a/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_sensor.xml +++ b/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_sensor.xml @@ -21,8 +21,8 @@ android:viewportHeight="16"> + android:fillColor="?attr/daxColorPrimaryIcon"/> + android:fillColor="?attr/daxColorPrimaryIcon"/> diff --git a/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_settings.xml b/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_settings.xml index 65c02365a603..eedcc5149d19 100644 --- a/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_settings.xml +++ b/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_settings.xml @@ -21,5 +21,5 @@ android:viewportHeight="16"> + android:fillColor="?attr/daxColorPrimaryIcon"/> diff --git a/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_storage.xml b/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_storage.xml index c710a7ead4a5..e85880c7bad2 100644 --- a/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_storage.xml +++ b/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_storage.xml @@ -21,5 +21,5 @@ android:viewportHeight="16"> + android:fillColor="?attr/daxColorPrimaryIcon"/> diff --git a/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_time.xml b/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_time.xml index 992bae8bcbfb..523d33cb371f 100644 --- a/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_time.xml +++ b/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_time.xml @@ -21,5 +21,5 @@ android:viewportHeight="16"> + android:fillColor="?attr/daxColorPrimaryIcon"/> diff --git a/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_volume.xml b/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_volume.xml index 1d8bf6edefa2..12592401aa57 100644 --- a/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_volume.xml +++ b/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_volume.xml @@ -21,5 +21,5 @@ android:viewportHeight="16"> + android:fillColor="?attr/daxColorPrimaryIcon"/> diff --git a/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_wifi.xml b/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_wifi.xml index c480715101e8..9d62051a6099 100644 --- a/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_wifi.xml +++ b/app-tracking-protection/vpn-impl/src/main/res/drawable/ic_signal_wifi.xml @@ -21,5 +21,5 @@ android:viewportHeight="16"> + android:fillColor="?attr/daxColorPrimaryIcon"/> diff --git a/app-tracking-protection/vpn-impl/src/main/res/drawable/rounded_top_corners_bottom_sheet_background.xml b/app-tracking-protection/vpn-impl/src/main/res/drawable/rounded_top_corners_bottom_sheet_background.xml index 189df7c89926..29e8bdf53269 100644 --- a/app-tracking-protection/vpn-impl/src/main/res/drawable/rounded_top_corners_bottom_sheet_background.xml +++ b/app-tracking-protection/vpn-impl/src/main/res/drawable/rounded_top_corners_bottom_sheet_background.xml @@ -19,5 +19,5 @@ - + \ No newline at end of file diff --git a/app-tracking-protection/vpn-impl/src/main/res/layout/include_company_trackers_toolbar.xml b/app-tracking-protection/vpn-impl/src/main/res/layout/include_company_trackers_toolbar.xml index 51bcb6a0d4a7..94db3dc14314 100644 --- a/app-tracking-protection/vpn-impl/src/main/res/layout/include_company_trackers_toolbar.xml +++ b/app-tracking-protection/vpn-impl/src/main/res/layout/include_company_trackers_toolbar.xml @@ -27,7 +27,7 @@ android:id="@+id/default_toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" - android:background="?attr/toolbarBgColor" + android:background="?attr/daxColorSurface" android:theme="@style/Widget.DuckDuckGo.ToolbarTheme" app:popupTheme="@style/Widget.DuckDuckGo.PopUpOverflowMenu"> diff --git a/app-tracking-protection/vpn-impl/src/main/res/layout/include_trackers_toolbar.xml b/app-tracking-protection/vpn-impl/src/main/res/layout/include_trackers_toolbar.xml index 4fb1c6aaf322..95e7024f3585 100644 --- a/app-tracking-protection/vpn-impl/src/main/res/layout/include_trackers_toolbar.xml +++ b/app-tracking-protection/vpn-impl/src/main/res/layout/include_trackers_toolbar.xml @@ -28,7 +28,7 @@ android:id="@+id/trackers_toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" - android:background="?attr/toolbarBgColor" + android:background="?attr/daxColorSurface" android:theme="@style/Widget.DuckDuckGo.ToolbarTheme" app:popupTheme="@style/Widget.DuckDuckGo.PopUpOverflowMenu" /> diff --git a/app-tracking-protection/vpn-internal/src/main/res/layout/exception_rule_domain_view.xml b/app-tracking-protection/vpn-internal/src/main/res/layout/exception_rule_domain_view.xml index 3bede9293a73..19c2eb62dd19 100644 --- a/app-tracking-protection/vpn-internal/src/main/res/layout/exception_rule_domain_view.xml +++ b/app-tracking-protection/vpn-internal/src/main/res/layout/exception_rule_domain_view.xml @@ -45,6 +45,6 @@ android:layout_gravity="center" android:button="@null" android:drawableEnd="?android:attr/listChoiceIndicatorMultiple" - android:theme="@style/PopUpMenuCheckBoxTheme" /> + android:theme="@style/Widget.DuckDuckGo.PopUpMenuCheckBox" /> \ No newline at end of file diff --git a/app-tracking-protection/vpn-internal/src/main/res/values/donottranslate.xml b/app-tracking-protection/vpn-internal/src/main/res/values/donottranslate.xml index 61691bd877a8..530c09a5d61c 100644 --- a/app-tracking-protection/vpn-internal/src/main/res/values/donottranslate.xml +++ b/app-tracking-protection/vpn-internal/src/main/res/values/donottranslate.xml @@ -16,6 +16,5 @@ AppTp Dev Settings - AppTp Exception Rules Exclusion rules defaults will be restored automatically when VPN is turned OFF and back ON \ No newline at end of file diff --git a/app/src/main/java/com/duckduckgo/app/browser/omnibar/animations/TrackersLottieAssetDelegate.kt b/app/src/main/java/com/duckduckgo/app/browser/omnibar/animations/TrackersLottieAssetDelegate.kt index 122cdac3d895..fbe38a20e0ab 100644 --- a/app/src/main/java/com/duckduckgo/app/browser/omnibar/animations/TrackersLottieAssetDelegate.kt +++ b/app/src/main/java/com/duckduckgo/app/browser/omnibar/animations/TrackersLottieAssetDelegate.kt @@ -88,7 +88,7 @@ internal class TrackersLottieAssetDelegate( return object : Drawable() { private val backgroundPaint = Paint(Paint.ANTI_ALIAS_FLAG).apply { - color = context.getColorFromAttr(com.duckduckgo.mobile.android.R.attr.toolbarIconColor) + color = context.getColorFromAttr(com.duckduckgo.mobile.android.R.attr.daxColorPrimaryIcon) } private val textPaint = Paint(Paint.ANTI_ALIAS_FLAG).apply { diff --git a/app/src/main/java/com/duckduckgo/app/global/view/FaviconImageView.kt b/app/src/main/java/com/duckduckgo/app/global/view/FaviconImageView.kt index a4de5cfe2b0f..3a61c6c0d728 100644 --- a/app/src/main/java/com/duckduckgo/app/global/view/FaviconImageView.kt +++ b/app/src/main/java/com/duckduckgo/app/global/view/FaviconImageView.kt @@ -79,7 +79,7 @@ fun generateDefaultDrawable( private val letter get() = baseHost.firstOrNull()?.toString()?.uppercase(Locale.getDefault()) ?: "" - private val faviconDefaultCornerRadius = context.resources.getDimension(CommonR.dimen.savedSiteGridItemCornerRadiusFavicon) + private val faviconDefaultCornerRadius = context.resources.getDimension(CommonR.dimen.mediumShapeCornerRadius) private val faviconDefaultSize = context.resources.getDimension(CommonR.dimen.savedSiteGridItemFavicon) private val palette = listOf( diff --git a/app/src/main/java/com/duckduckgo/app/global/view/FireDialog.kt b/app/src/main/java/com/duckduckgo/app/global/view/FireDialog.kt index 98f57852b677..c72b96b6aaa5 100644 --- a/app/src/main/java/com/duckduckgo/app/global/view/FireDialog.kt +++ b/app/src/main/java/com/duckduckgo/app/global/view/FireDialog.kt @@ -64,7 +64,7 @@ class FireDialog( private val settingsDataStore: SettingsDataStore, private val userEventsStore: UserEventsStore, private val appCoroutineScope: CoroutineScope, -) : BottomSheetDialog(context, R.style.FireDialog), CoroutineScope by MainScope() { +) : BottomSheetDialog(context, com.duckduckgo.mobile.android.R.style.Widget_DuckDuckGo_FireDialog), CoroutineScope by MainScope() { private lateinit var binding: SheetFireClearDataBinding private lateinit var fireCtaBinding: IncludeDaxDialogCtaBinding diff --git a/app/src/main/java/com/duckduckgo/app/icon/ui/ChangeIconActivity.kt b/app/src/main/java/com/duckduckgo/app/icon/ui/ChangeIconActivity.kt index 3342733d4636..0780d63abd66 100644 --- a/app/src/main/java/com/duckduckgo/app/icon/ui/ChangeIconActivity.kt +++ b/app/src/main/java/com/duckduckgo/app/icon/ui/ChangeIconActivity.kt @@ -52,7 +52,7 @@ class ChangeIconActivity : DuckDuckGoActivity() { private fun configureRecycler() { binding.appIconsList.layoutManager = GridLayoutManager(this, 4) - binding.appIconsList.addItemDecoration(ItemOffsetDecoration(this, CommonR.dimen.changeAppIconListPadding)) + binding.appIconsList.addItemDecoration(ItemOffsetDecoration(this, CommonR.dimen.keyline_1)) binding.appIconsList.adapter = iconsAdapter } diff --git a/app/src/main/java/com/duckduckgo/app/systemsearch/SystemSearchActivity.kt b/app/src/main/java/com/duckduckgo/app/systemsearch/SystemSearchActivity.kt index a1976a1bf690..e13540c90742 100644 --- a/app/src/main/java/com/duckduckgo/app/systemsearch/SystemSearchActivity.kt +++ b/app/src/main/java/com/duckduckgo/app/systemsearch/SystemSearchActivity.kt @@ -317,7 +317,7 @@ class SystemSearchActivity : DuckDuckGoActivity() { refreshOnboardingToggleText(viewState.expanded) } else { systemSearchOnboarding.onboarding.visibility = View.GONE - binding.results.elevation = resources.getDimension(CommonR.dimen.systemSearchResultsElevation) + binding.results.elevation = resources.getDimension(CommonR.dimen.keyline_1) } } diff --git a/app/src/main/java/com/duckduckgo/widget/FavoritesWidgetService.kt b/app/src/main/java/com/duckduckgo/widget/FavoritesWidgetService.kt index 403ba9f82e98..e8aca15da6b8 100644 --- a/app/src/main/java/com/duckduckgo/widget/FavoritesWidgetService.kt +++ b/app/src/main/java/com/duckduckgo/widget/FavoritesWidgetService.kt @@ -70,7 +70,7 @@ class FavoritesWidgetService : RemoteViewsService() { ) private val faviconItemSize = context.resources.getDimension(CommonR.dimen.savedSiteGridItemFavicon).toInt() - private val faviconItemCornerRadius = context.resources.getDimension(CommonR.dimen.savedSiteGridItemCornerRadiusFavicon).toInt() + private val faviconItemCornerRadius = context.resources.getDimension(CommonR.dimen.mediumShapeCornerRadius).toInt() private val maxItems: Int get() { diff --git a/app/src/main/res/drawable-h400dp/logo_full.xml b/app/src/main/res/drawable-h400dp/logo_full.xml index 12f29e1efbd2..f938a6344d7d 100644 --- a/app/src/main/res/drawable-h400dp/logo_full.xml +++ b/app/src/main/res/drawable-h400dp/logo_full.xml @@ -47,6 +47,6 @@ android:fillColor="#2D4F8E" android:pathData="M80.74,51.9c0,-2.141 1.636,-3.779 3.777,-3.779s3.778,1.638 3.778,3.78c0,2.14 -1.637,3.778 -3.778,3.778 -2.015,0 -3.778,-1.763 -3.778,-3.779zM85.273,50.64c0,0.504 0.378,0.882 1.007,1.008 0.63,0 1.008,-0.504 1.008,-1.008 0,-0.63 -0.504,-1.007 -1.008,-1.007 -0.63,0 -1.007,0.504 -1.007,1.007zM106.556,49.633c0,-1.764 1.511,-3.276 3.275,-3.276 1.763,0 3.274,1.512 3.274,3.276 0,1.763 -1.511,3.275 -3.274,3.275 -1.89,0 -3.275,-1.512 -3.275,-3.275zM110.334,48.499a0.86,0.86 0,0 0,0.882 0.882,0.86 0.86,0 0,0 0.881,-0.882 0.86,0.86 0,0 0,-0.881 -0.882,0.86 0.86,0 0,0 -0.882,0.882zM85.65,40.94s-2.896,-1.259 -5.666,0.505c-2.771,1.763 -2.645,3.527 -2.645,3.527s-1.511,-3.276 2.393,-4.913c3.904,-1.638 5.919,0.882 5.919,0.882zM111.72,40.689s-2.015,-1.134 -3.653,-1.134c-3.274,0 -4.155,1.512 -4.155,1.512s0.503,-3.402 4.66,-2.772c2.392,0.378 3.148,2.394 3.148,2.394z" /> diff --git a/app/src/main/res/drawable/background_add_widget_number.xml b/app/src/main/res/drawable/background_add_widget_number.xml index 70cd8460146e..b430142c4b5f 100644 --- a/app/src/main/res/drawable/background_add_widget_number.xml +++ b/app/src/main/res/drawable/background_add_widget_number.xml @@ -17,7 +17,7 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/ic_autocomplete_bookmark.xml b/app/src/main/res/drawable/ic_autocomplete_bookmark.xml deleted file mode 100644 index c59b3eca9931..000000000000 --- a/app/src/main/res/drawable/ic_autocomplete_bookmark.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_bookmarks.xml b/app/src/main/res/drawable/ic_bookmarks.xml index 99d4ea4fe73d..b6acd1b22d08 100644 --- a/app/src/main/res/drawable/ic_bookmarks.xml +++ b/app/src/main/res/drawable/ic_bookmarks.xml @@ -5,5 +5,5 @@ android:viewportHeight="24"> + android:fillColor="?attr/daxColorPrimaryIcon"/> diff --git a/app/src/main/res/drawable/ic_circle_pulse.xml b/app/src/main/res/drawable/ic_circle_pulse.xml index a804ca3c79c5..76e3ded669d4 100644 --- a/app/src/main/res/drawable/ic_circle_pulse.xml +++ b/app/src/main/res/drawable/ic_circle_pulse.xml @@ -23,7 +23,7 @@ android:pathData="M36,36m-35,0a35,35 0,1 1,70 0a35,35 0,1 1,-70 0" android:strokeAlpha="0.3" android:strokeWidth="2" - android:fillColor="?toolbarIconColor" + android:fillColor="?daxColorPrimaryIcon" android:strokeColor="#FFFFFF" android:fillAlpha="0.15" android:fillType="evenOdd"/> diff --git a/app/src/main/res/drawable/ic_counter.xml b/app/src/main/res/drawable/ic_counter.xml deleted file mode 100644 index 61bbfffe0966..000000000000 --- a/app/src/main/res/drawable/ic_counter.xml +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/ic_dragon.xml b/app/src/main/res/drawable/ic_dragon.xml deleted file mode 100644 index c4e0ac7a361f..000000000000 --- a/app/src/main/res/drawable/ic_dragon.xml +++ /dev/null @@ -1,230 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/ic_keepboth_brownish_24dp.xml b/app/src/main/res/drawable/ic_keepboth_brownish_24dp.xml deleted file mode 100644 index 3aa857f93576..000000000000 --- a/app/src/main/res/drawable/ic_keepboth_brownish_24dp.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_more_trackers.xml b/app/src/main/res/drawable/ic_more_trackers.xml index d788392b5484..cf173a5abb1c 100644 --- a/app/src/main/res/drawable/ic_more_trackers.xml +++ b/app/src/main/res/drawable/ic_more_trackers.xml @@ -22,7 +22,7 @@ diff --git a/app/src/main/res/drawable/ic_newtab.xml b/app/src/main/res/drawable/ic_newtab.xml index 2859687cff6d..1cf8f625c3b7 100644 --- a/app/src/main/res/drawable/ic_newtab.xml +++ b/app/src/main/res/drawable/ic_newtab.xml @@ -5,5 +5,5 @@ android:viewportHeight="24"> + android:fillColor="?attr/daxColorPrimaryIcon"/> diff --git a/app/src/main/res/drawable/ic_open_brownish_24dp.xml b/app/src/main/res/drawable/ic_open_brownish_24dp.xml deleted file mode 100644 index a194836eb45d..000000000000 --- a/app/src/main/res/drawable/ic_open_brownish_24dp.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_other_domains_banner.xml b/app/src/main/res/drawable/ic_other_domains_banner.xml deleted file mode 100644 index 4ef84bb71c71..000000000000 --- a/app/src/main/res/drawable/ic_other_domains_banner.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - diff --git a/app/src/main/res/drawable/ic_other_domains_info.xml b/app/src/main/res/drawable/ic_other_domains_info.xml deleted file mode 100644 index 845347f010e8..000000000000 --- a/app/src/main/res/drawable/ic_other_domains_info.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_other_domains_info_green.xml b/app/src/main/res/drawable/ic_other_domains_info_green.xml deleted file mode 100644 index 1901f76974f7..000000000000 --- a/app/src/main/res/drawable/ic_other_domains_info_green.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_overflow.xml b/app/src/main/res/drawable/ic_overflow.xml deleted file mode 100644 index e13682fe200a..000000000000 --- a/app/src/main/res/drawable/ic_overflow.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - diff --git a/app/src/main/res/drawable/ic_overflow_12dp.xml b/app/src/main/res/drawable/ic_overflow_12dp.xml deleted file mode 100644 index 25e95963b121..000000000000 --- a/app/src/main/res/drawable/ic_overflow_12dp.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_replace_brownish_24dp.xml b/app/src/main/res/drawable/ic_replace_brownish_24dp.xml deleted file mode 100644 index e4a833c1b859..000000000000 --- a/app/src/main/res/drawable/ic_replace_brownish_24dp.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_share.xml b/app/src/main/res/drawable/ic_share.xml index ec43a54705d0..f9d8a7f0a8e8 100644 --- a/app/src/main/res/drawable/ic_share.xml +++ b/app/src/main/res/drawable/ic_share.xml @@ -21,6 +21,6 @@ android:viewportHeight="24"> diff --git a/app/src/main/res/drawable/ic_triangle_bubble_white.xml b/app/src/main/res/drawable/ic_triangle_bubble_white.xml deleted file mode 100644 index bb60d00450c9..000000000000 --- a/app/src/main/res/drawable/ic_triangle_bubble_white.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/loading_progress.xml b/app/src/main/res/drawable/loading_progress.xml index 4de517b4f678..49e25e60ee51 100644 --- a/app/src/main/res/drawable/loading_progress.xml +++ b/app/src/main/res/drawable/loading_progress.xml @@ -18,7 +18,7 @@ + android:color="?daxColorSurface" /> diff --git a/app/src/main/res/drawable/logo_full.xml b/app/src/main/res/drawable/logo_full.xml index c979b9f733d9..4765b835f79f 100644 --- a/app/src/main/res/drawable/logo_full.xml +++ b/app/src/main/res/drawable/logo_full.xml @@ -47,6 +47,6 @@ android:fillColor="#2D4F8E" android:pathData="M22.77,27.68c0,-1.142 0.873,-2.015 2.014,-2.015 1.14,0 2.013,0.873 2.013,2.015 0,1.142 -0.873,2.016 -2.013,2.016 -1.074,0 -2.013,-0.941 -2.013,-2.016zM25.186,27.008c0,0.269 0.202,0.47 0.537,0.538a0.53,0.53 0,0 0,0.537 -0.538,0.53 0.53,0 0,0 -0.537,-0.537 0.53,0.53 0,0 0,-0.537 0.537zM36.526,26.47c0,-0.94 0.805,-1.746 1.744,-1.746 0.94,0 1.745,0.806 1.745,1.747 0,0.94 -0.805,1.747 -1.745,1.747a1.734,1.734 0,0 1,-1.744 -1.747zM38.539,25.866c0,0.269 0.201,0.47 0.47,0.47 0.268,0 0.47,-0.201 0.47,-0.47a0.459,0.459 0,0 0,-0.47 -0.47,0.459 0.459,0 0,0 -0.47,0.47zM25.388,21.835s-1.544,-0.672 -3.02,0.269c-1.476,0.94 -1.409,1.88 -1.409,1.88s-0.805,-1.746 1.275,-2.62c2.08,-0.873 3.154,0.471 3.154,0.471zM39.277,21.7s-1.074,-0.604 -1.946,-0.604c-1.745,0 -2.214,0.806 -2.214,0.806s0.268,-1.814 2.482,-1.478a2.182,2.182 0,0 1,1.678 1.277z" /> diff --git a/app/src/main/res/drawable/network_logo_adform.xml b/app/src/main/res/drawable/network_logo_adform.xml index 21959feed87f..25789b4c0662 100644 --- a/app/src/main/res/drawable/network_logo_adform.xml +++ b/app/src/main/res/drawable/network_logo_adform.xml @@ -24,6 +24,6 @@ android:fillColor="?attr/daxColorSurface"/> diff --git a/app/src/main/res/drawable/network_logo_adobe_inc.xml b/app/src/main/res/drawable/network_logo_adobe_inc.xml index 1982a93f7f6f..3ea6bb27d57b 100644 --- a/app/src/main/res/drawable/network_logo_adobe_inc.xml +++ b/app/src/main/res/drawable/network_logo_adobe_inc.xml @@ -24,6 +24,6 @@ android:fillColor="?attr/daxColorSurface"/> diff --git a/app/src/main/res/drawable/network_logo_amazon_technologies_inc.xml b/app/src/main/res/drawable/network_logo_amazon_technologies_inc.xml index a79f6b46644f..1f9793726709 100644 --- a/app/src/main/res/drawable/network_logo_amazon_technologies_inc.xml +++ b/app/src/main/res/drawable/network_logo_amazon_technologies_inc.xml @@ -24,6 +24,6 @@ android:fillColor="?attr/daxColorSurface"/> diff --git a/app/src/main/res/drawable/network_logo_amobee_inc.xml b/app/src/main/res/drawable/network_logo_amobee_inc.xml index fb35421f5b4a..09b421013053 100644 --- a/app/src/main/res/drawable/network_logo_amobee_inc.xml +++ b/app/src/main/res/drawable/network_logo_amobee_inc.xml @@ -24,6 +24,6 @@ android:fillColor="?attr/daxColorSurface"/> diff --git a/app/src/main/res/drawable/network_logo_appnexus_inc.xml b/app/src/main/res/drawable/network_logo_appnexus_inc.xml index 239fdfb0c24b..e2dd8da4b36b 100644 --- a/app/src/main/res/drawable/network_logo_appnexus_inc.xml +++ b/app/src/main/res/drawable/network_logo_appnexus_inc.xml @@ -24,6 +24,6 @@ android:fillColor="?attr/daxColorSurface"/> diff --git a/app/src/main/res/drawable/network_logo_blank.xml b/app/src/main/res/drawable/network_logo_blank.xml index 3d6e39f7d42f..4b57dbecca59 100644 --- a/app/src/main/res/drawable/network_logo_blank.xml +++ b/app/src/main/res/drawable/network_logo_blank.xml @@ -5,6 +5,6 @@ android:viewportHeight="24"> diff --git a/app/src/main/res/drawable/network_logo_centro_inc.xml b/app/src/main/res/drawable/network_logo_centro_inc.xml index 354016c029f4..d5863919ea90 100644 --- a/app/src/main/res/drawable/network_logo_centro_inc.xml +++ b/app/src/main/res/drawable/network_logo_centro_inc.xml @@ -24,6 +24,6 @@ android:fillColor="?attr/daxColorSurface"/> diff --git a/app/src/main/res/drawable/network_logo_chartbeat.xml b/app/src/main/res/drawable/network_logo_chartbeat.xml index f04104cdc817..bb786c3b5d83 100644 --- a/app/src/main/res/drawable/network_logo_chartbeat.xml +++ b/app/src/main/res/drawable/network_logo_chartbeat.xml @@ -25,7 +25,7 @@ diff --git a/app/src/main/res/drawable/network_logo_cloudflare.xml b/app/src/main/res/drawable/network_logo_cloudflare.xml index 51c94e72b397..e9cddc3a4323 100644 --- a/app/src/main/res/drawable/network_logo_cloudflare.xml +++ b/app/src/main/res/drawable/network_logo_cloudflare.xml @@ -24,6 +24,6 @@ android:fillColor="?attr/daxColorSurface"/> diff --git a/app/src/main/res/drawable/network_logo_comscore_inc.xml b/app/src/main/res/drawable/network_logo_comscore_inc.xml index 5e2a752e8807..ce0247a56ca2 100644 --- a/app/src/main/res/drawable/network_logo_comscore_inc.xml +++ b/app/src/main/res/drawable/network_logo_comscore_inc.xml @@ -5,7 +5,7 @@ android:viewportHeight="24"> diff --git a/app/src/main/res/drawable/network_logo_critero_sa.xml b/app/src/main/res/drawable/network_logo_critero_sa.xml index 2ec623385751..794cc23b9fdb 100644 --- a/app/src/main/res/drawable/network_logo_critero_sa.xml +++ b/app/src/main/res/drawable/network_logo_critero_sa.xml @@ -24,6 +24,6 @@ android:fillColor="?attr/daxColorSurface"/> diff --git a/app/src/main/res/drawable/network_logo_dataxu_inc.xml b/app/src/main/res/drawable/network_logo_dataxu_inc.xml index 2cc09d69c753..78e38816b9ad 100644 --- a/app/src/main/res/drawable/network_logo_dataxu_inc.xml +++ b/app/src/main/res/drawable/network_logo_dataxu_inc.xml @@ -24,6 +24,6 @@ android:fillColor="?attr/daxColorSurface"/> diff --git a/app/src/main/res/drawable/network_logo_facebook_inc.xml b/app/src/main/res/drawable/network_logo_facebook_inc.xml index 9f63e22f163d..3688eb61c96d 100644 --- a/app/src/main/res/drawable/network_logo_facebook_inc.xml +++ b/app/src/main/res/drawable/network_logo_facebook_inc.xml @@ -24,6 +24,6 @@ android:fillColor="?attr/daxColorSurface"/> diff --git a/app/src/main/res/drawable/network_logo_google_ads.xml b/app/src/main/res/drawable/network_logo_google_ads.xml index 8d6336f39496..271a11615cd4 100644 --- a/app/src/main/res/drawable/network_logo_google_ads.xml +++ b/app/src/main/res/drawable/network_logo_google_ads.xml @@ -24,7 +24,7 @@ android:fillColor="?attr/daxColorSurface"/> diff --git a/app/src/main/res/drawable/network_logo_google_analytics.xml b/app/src/main/res/drawable/network_logo_google_analytics.xml index b1bb227fb6d3..2f4c85903981 100644 --- a/app/src/main/res/drawable/network_logo_google_analytics.xml +++ b/app/src/main/res/drawable/network_logo_google_analytics.xml @@ -24,7 +24,7 @@ android:fillColor="?attr/daxColorSurface"/> diff --git a/app/src/main/res/drawable/network_logo_google_llc.xml b/app/src/main/res/drawable/network_logo_google_llc.xml index 41c63aab891a..91c70b6251ff 100644 --- a/app/src/main/res/drawable/network_logo_google_llc.xml +++ b/app/src/main/res/drawable/network_logo_google_llc.xml @@ -24,6 +24,6 @@ android:fillColor="?attr/daxColorSurface"/> diff --git a/app/src/main/res/drawable/network_logo_hotjar_ltd.xml b/app/src/main/res/drawable/network_logo_hotjar_ltd.xml index 33428d71843f..636f22e310ca 100644 --- a/app/src/main/res/drawable/network_logo_hotjar_ltd.xml +++ b/app/src/main/res/drawable/network_logo_hotjar_ltd.xml @@ -24,6 +24,6 @@ android:fillColor="?attr/daxColorSurface"/> diff --git a/app/src/main/res/drawable/network_logo_index_exchange_inc.xml b/app/src/main/res/drawable/network_logo_index_exchange_inc.xml index 1f8e7d4c80a7..520e1782201f 100644 --- a/app/src/main/res/drawable/network_logo_index_exchange_inc.xml +++ b/app/src/main/res/drawable/network_logo_index_exchange_inc.xml @@ -24,6 +24,6 @@ android:fillColor="?attr/daxColorSurface"/> diff --git a/app/src/main/res/drawable/network_logo_instagram.xml b/app/src/main/res/drawable/network_logo_instagram.xml index 2dffac6c0dc3..5ef200a77fa1 100644 --- a/app/src/main/res/drawable/network_logo_instagram.xml +++ b/app/src/main/res/drawable/network_logo_instagram.xml @@ -24,17 +24,17 @@ android:fillColor="?attr/daxColorSurface"/> diff --git a/app/src/main/res/drawable/network_logo_iponweb_gmbh.xml b/app/src/main/res/drawable/network_logo_iponweb_gmbh.xml index 2f6ff55d19e7..6c2cac468252 100644 --- a/app/src/main/res/drawable/network_logo_iponweb_gmbh.xml +++ b/app/src/main/res/drawable/network_logo_iponweb_gmbh.xml @@ -24,6 +24,6 @@ android:fillColor="?attr/daxColorSurface"/> diff --git a/app/src/main/res/drawable/network_logo_linkedin.xml b/app/src/main/res/drawable/network_logo_linkedin.xml index ecbac42b5fea..eae62a137ab6 100644 --- a/app/src/main/res/drawable/network_logo_linkedin.xml +++ b/app/src/main/res/drawable/network_logo_linkedin.xml @@ -24,6 +24,6 @@ android:fillColor="?attr/daxColorSurface"/> diff --git a/app/src/main/res/drawable/network_logo_lotame_solutions_inc.xml b/app/src/main/res/drawable/network_logo_lotame_solutions_inc.xml index bf6450b6f05e..0584c98be43b 100644 --- a/app/src/main/res/drawable/network_logo_lotame_solutions_inc.xml +++ b/app/src/main/res/drawable/network_logo_lotame_solutions_inc.xml @@ -24,6 +24,6 @@ android:fillColor="?attr/daxColorSurface"/> diff --git a/app/src/main/res/drawable/network_logo_mediamath_inc.xml b/app/src/main/res/drawable/network_logo_mediamath_inc.xml index 8d8754703a1b..98fd53d4ede6 100644 --- a/app/src/main/res/drawable/network_logo_mediamath_inc.xml +++ b/app/src/main/res/drawable/network_logo_mediamath_inc.xml @@ -24,6 +24,6 @@ android:fillColor="?attr/daxColorSurface"/> diff --git a/app/src/main/res/drawable/network_logo_microsoft_corporation.xml b/app/src/main/res/drawable/network_logo_microsoft_corporation.xml index 0b2605c0b2ff..fa4b43640cc8 100644 --- a/app/src/main/res/drawable/network_logo_microsoft_corporation.xml +++ b/app/src/main/res/drawable/network_logo_microsoft_corporation.xml @@ -24,6 +24,6 @@ android:fillColor="?attr/daxColorSurface"/> diff --git a/app/src/main/res/drawable/network_logo_mixpanel_inc.xml b/app/src/main/res/drawable/network_logo_mixpanel_inc.xml index 3784a94eece3..887070376a33 100644 --- a/app/src/main/res/drawable/network_logo_mixpanel_inc.xml +++ b/app/src/main/res/drawable/network_logo_mixpanel_inc.xml @@ -25,7 +25,7 @@ diff --git a/app/src/main/res/drawable/network_logo_more.xml b/app/src/main/res/drawable/network_logo_more.xml index a8bb297cbaf0..12f1299f4694 100644 --- a/app/src/main/res/drawable/network_logo_more.xml +++ b/app/src/main/res/drawable/network_logo_more.xml @@ -21,5 +21,5 @@ android:viewportHeight="24"> + android:fillColor="?attr/daxColorPrimaryIcon"/> diff --git a/app/src/main/res/drawable/network_logo_neustar_inc.xml b/app/src/main/res/drawable/network_logo_neustar_inc.xml index 270712cc8c2d..db98f48a94ac 100644 --- a/app/src/main/res/drawable/network_logo_neustar_inc.xml +++ b/app/src/main/res/drawable/network_logo_neustar_inc.xml @@ -24,6 +24,6 @@ android:fillColor="?attr/daxColorSurface"/> diff --git a/app/src/main/res/drawable/network_logo_new_relic.xml b/app/src/main/res/drawable/network_logo_new_relic.xml index 6f80fc3031d7..c72ca53e9104 100644 --- a/app/src/main/res/drawable/network_logo_new_relic.xml +++ b/app/src/main/res/drawable/network_logo_new_relic.xml @@ -24,6 +24,6 @@ android:fillColor="?attr/daxColorSurface"/> diff --git a/app/src/main/res/drawable/network_logo_openx_technologies_inc.xml b/app/src/main/res/drawable/network_logo_openx_technologies_inc.xml index 862e3737196b..a8a631970fbd 100644 --- a/app/src/main/res/drawable/network_logo_openx_technologies_inc.xml +++ b/app/src/main/res/drawable/network_logo_openx_technologies_inc.xml @@ -24,6 +24,6 @@ android:fillColor="?attr/daxColorSurface"/> diff --git a/app/src/main/res/drawable/network_logo_oracle_corporation.xml b/app/src/main/res/drawable/network_logo_oracle_corporation.xml index ad31055f60db..b7c1a1dc2313 100644 --- a/app/src/main/res/drawable/network_logo_oracle_corporation.xml +++ b/app/src/main/res/drawable/network_logo_oracle_corporation.xml @@ -24,6 +24,6 @@ android:fillColor="?attr/daxColorSurface"/> diff --git a/app/src/main/res/drawable/network_logo_outbrain.xml b/app/src/main/res/drawable/network_logo_outbrain.xml index a8b4f169aea9..9e0a08c1371a 100644 --- a/app/src/main/res/drawable/network_logo_outbrain.xml +++ b/app/src/main/res/drawable/network_logo_outbrain.xml @@ -25,31 +25,31 @@ diff --git a/app/src/main/res/drawable/network_logo_pubmatic_inc.xml b/app/src/main/res/drawable/network_logo_pubmatic_inc.xml index 3ba5ff8fc942..fe6a750102c2 100644 --- a/app/src/main/res/drawable/network_logo_pubmatic_inc.xml +++ b/app/src/main/res/drawable/network_logo_pubmatic_inc.xml @@ -24,6 +24,6 @@ android:fillColor="?attr/daxColorSurface"/> diff --git a/app/src/main/res/drawable/network_logo_quantcast_corporation.xml b/app/src/main/res/drawable/network_logo_quantcast_corporation.xml index 1e2058c8af69..4db3117109ed 100644 --- a/app/src/main/res/drawable/network_logo_quantcast_corporation.xml +++ b/app/src/main/res/drawable/network_logo_quantcast_corporation.xml @@ -24,6 +24,6 @@ android:fillColor="?attr/daxColorSurface"/> diff --git a/app/src/main/res/drawable/network_logo_rubicon_the_rubicon_project_inc.xml b/app/src/main/res/drawable/network_logo_rubicon_the_rubicon_project_inc.xml index cb2b6934eca5..924daadbd4f2 100644 --- a/app/src/main/res/drawable/network_logo_rubicon_the_rubicon_project_inc.xml +++ b/app/src/main/res/drawable/network_logo_rubicon_the_rubicon_project_inc.xml @@ -24,6 +24,6 @@ android:fillColor="?attr/daxColorSurface"/> diff --git a/app/src/main/res/drawable/network_logo_salesforcecom_inc.xml b/app/src/main/res/drawable/network_logo_salesforcecom_inc.xml index 1cde7d7fdf58..6c8c2d8171cd 100644 --- a/app/src/main/res/drawable/network_logo_salesforcecom_inc.xml +++ b/app/src/main/res/drawable/network_logo_salesforcecom_inc.xml @@ -24,6 +24,6 @@ android:fillColor="?attr/daxColorSurface"/> diff --git a/app/src/main/res/drawable/network_logo_smartadserver_sas.xml b/app/src/main/res/drawable/network_logo_smartadserver_sas.xml index 35a7d4374944..fd5326e061ae 100644 --- a/app/src/main/res/drawable/network_logo_smartadserver_sas.xml +++ b/app/src/main/res/drawable/network_logo_smartadserver_sas.xml @@ -24,6 +24,6 @@ android:fillColor="?attr/daxColorSurface"/> diff --git a/app/src/main/res/drawable/network_logo_spotx_inc.xml b/app/src/main/res/drawable/network_logo_spotx_inc.xml index 599e106266f4..3752bfffa15e 100644 --- a/app/src/main/res/drawable/network_logo_spotx_inc.xml +++ b/app/src/main/res/drawable/network_logo_spotx_inc.xml @@ -24,6 +24,6 @@ android:fillColor="?attr/daxColorSurface"/> diff --git a/app/src/main/res/drawable/network_logo_stackpath.xml b/app/src/main/res/drawable/network_logo_stackpath.xml index 3cce5220c778..cdf9e6e37fe0 100644 --- a/app/src/main/res/drawable/network_logo_stackpath.xml +++ b/app/src/main/res/drawable/network_logo_stackpath.xml @@ -24,6 +24,6 @@ android:fillColor="?attr/daxColorSurface"/> diff --git a/app/src/main/res/drawable/network_logo_taboolacom_ltd.xml b/app/src/main/res/drawable/network_logo_taboolacom_ltd.xml index 33250b349944..3184d68b523c 100644 --- a/app/src/main/res/drawable/network_logo_taboolacom_ltd.xml +++ b/app/src/main/res/drawable/network_logo_taboolacom_ltd.xml @@ -24,6 +24,6 @@ android:fillColor="?attr/daxColorSurface"/> diff --git a/app/src/main/res/drawable/network_logo_tapad_inc.xml b/app/src/main/res/drawable/network_logo_tapad_inc.xml index 04197b1757c9..83ca94139df3 100644 --- a/app/src/main/res/drawable/network_logo_tapad_inc.xml +++ b/app/src/main/res/drawable/network_logo_tapad_inc.xml @@ -24,6 +24,6 @@ android:fillColor="?attr/daxColorSurface"/> diff --git a/app/src/main/res/drawable/network_logo_the_nielsen_company.xml b/app/src/main/res/drawable/network_logo_the_nielsen_company.xml index 7ba972efdc36..d4c9e4e410fb 100644 --- a/app/src/main/res/drawable/network_logo_the_nielsen_company.xml +++ b/app/src/main/res/drawable/network_logo_the_nielsen_company.xml @@ -24,6 +24,6 @@ android:fillColor="?attr/daxColorSurface"/> diff --git a/app/src/main/res/drawable/network_logo_the_trade_desk_inc.xml b/app/src/main/res/drawable/network_logo_the_trade_desk_inc.xml index 3dfe2cf4b619..39d2a957d09f 100644 --- a/app/src/main/res/drawable/network_logo_the_trade_desk_inc.xml +++ b/app/src/main/res/drawable/network_logo_the_trade_desk_inc.xml @@ -24,6 +24,6 @@ android:fillColor="?attr/daxColorSurface"/> diff --git a/app/src/main/res/drawable/network_logo_towerdata.xml b/app/src/main/res/drawable/network_logo_towerdata.xml index 69db8dab20bf..4b61a2b90c10 100644 --- a/app/src/main/res/drawable/network_logo_towerdata.xml +++ b/app/src/main/res/drawable/network_logo_towerdata.xml @@ -24,6 +24,6 @@ android:fillColor="?attr/daxColorSurface"/> diff --git a/app/src/main/res/drawable/network_logo_twitter_inc.xml b/app/src/main/res/drawable/network_logo_twitter_inc.xml index 99a449a13a6a..67d1cebf1cef 100644 --- a/app/src/main/res/drawable/network_logo_twitter_inc.xml +++ b/app/src/main/res/drawable/network_logo_twitter_inc.xml @@ -24,6 +24,6 @@ android:fillColor="?attr/daxColorSurface"/> diff --git a/app/src/main/res/drawable/network_logo_verizon_media.xml b/app/src/main/res/drawable/network_logo_verizon_media.xml index ee8069bafe7e..969488205601 100644 --- a/app/src/main/res/drawable/network_logo_verizon_media.xml +++ b/app/src/main/res/drawable/network_logo_verizon_media.xml @@ -24,6 +24,6 @@ android:fillColor="?attr/daxColorSurface"/> diff --git a/app/src/main/res/drawable/network_logo_xaxis.xml b/app/src/main/res/drawable/network_logo_xaxis.xml index a472d393599c..b67d915906fd 100644 --- a/app/src/main/res/drawable/network_logo_xaxis.xml +++ b/app/src/main/res/drawable/network_logo_xaxis.xml @@ -24,6 +24,6 @@ android:fillColor="?attr/daxColorSurface"/> diff --git a/app/src/main/res/drawable/network_logo_yahoo_japan_corporation.xml b/app/src/main/res/drawable/network_logo_yahoo_japan_corporation.xml index 8bba03ca22e1..f0701a2d1726 100644 --- a/app/src/main/res/drawable/network_logo_yahoo_japan_corporation.xml +++ b/app/src/main/res/drawable/network_logo_yahoo_japan_corporation.xml @@ -25,25 +25,25 @@ diff --git a/app/src/main/res/drawable/network_logo_yandex_llc.xml b/app/src/main/res/drawable/network_logo_yandex_llc.xml index 4216eaa9e82c..335353875530 100644 --- a/app/src/main/res/drawable/network_logo_yandex_llc.xml +++ b/app/src/main/res/drawable/network_logo_yandex_llc.xml @@ -25,7 +25,7 @@ diff --git a/app/src/main/res/drawable/network_logo_youtube.xml b/app/src/main/res/drawable/network_logo_youtube.xml index 93fed53089dd..ad49eb3fea60 100644 --- a/app/src/main/res/drawable/network_logo_youtube.xml +++ b/app/src/main/res/drawable/network_logo_youtube.xml @@ -24,12 +24,12 @@ android:fillColor="?attr/daxColorSurface"/> diff --git a/app/src/main/res/drawable/tab_unread_indicator.xml b/app/src/main/res/drawable/tab_unread_indicator.xml index c7bcb65245b2..553f4a80eda1 100644 --- a/app/src/main/res/drawable/tab_unread_indicator.xml +++ b/app/src/main/res/drawable/tab_unread_indicator.xml @@ -20,7 +20,7 @@ - + diff --git a/app/src/main/res/layout/activity_app_icons.xml b/app/src/main/res/layout/activity_app_icons.xml index 71a638f608be..57310e4eb46d 100644 --- a/app/src/main/res/layout/activity_app_icons.xml +++ b/app/src/main/res/layout/activity_app_icons.xml @@ -26,7 +26,7 @@ diff --git a/app/src/main/res/layout/activity_bookmarks.xml b/app/src/main/res/layout/activity_bookmarks.xml index a62100989c45..5a0d3a08d2c1 100644 --- a/app/src/main/res/layout/activity_bookmarks.xml +++ b/app/src/main/res/layout/activity_bookmarks.xml @@ -29,7 +29,7 @@ android:id="@+id/appBarLayout" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="?attr/toolbarBgColor" + android:background="?attr/daxColorSurface" android:theme="@style/Widget.DuckDuckGo.ToolbarTheme"> diff --git a/app/src/main/res/layout/activity_downloads.xml b/app/src/main/res/layout/activity_downloads.xml index 1055cd6ed0b3..37583a685843 100644 --- a/app/src/main/res/layout/activity_downloads.xml +++ b/app/src/main/res/layout/activity_downloads.xml @@ -27,7 +27,7 @@ app:layout_constraintTop_toTopOf="parent" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="?toolbarBgColor" + android:background="?daxColorSurface" android:theme="@style/Widget.DuckDuckGo.ToolbarTheme"> diff --git a/app/src/main/res/layout/activity_system_search.xml b/app/src/main/res/layout/activity_system_search.xml index 7d9999cbe07c..162031805410 100644 --- a/app/src/main/res/layout/activity_system_search.xml +++ b/app/src/main/res/layout/activity_system_search.xml @@ -31,7 +31,7 @@ android:id="@+id/toolbarContainer" android:layout_width="match_parent" android:layout_height="match_parent" - android:background="?toolbarBgColor"> + android:background="?daxColorSurface"> - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/include_omnibar_toolbar.xml b/app/src/main/res/layout/include_omnibar_toolbar.xml index 3484c7d0be76..2eaf445e82f7 100644 --- a/app/src/main/res/layout/include_omnibar_toolbar.xml +++ b/app/src/main/res/layout/include_omnibar_toolbar.xml @@ -33,13 +33,13 @@ android:id="@+id/toolbarContainer" android:layout_width="match_parent" android:layout_height="match_parent" - android:background="?toolbarBgColor"> + android:background="?daxColorSurface"> @@ -31,11 +31,11 @@ + style="@style/Widget.DuckDuckGo.SearchWidgetFavoritesGrid" /> diff --git a/app/src/main/res/layout/search_favorites_widget_dark_col2.xml b/app/src/main/res/layout/search_favorites_widget_dark_col2.xml index ebd156c2fee7..102a16caf6a5 100644 --- a/app/src/main/res/layout/search_favorites_widget_dark_col2.xml +++ b/app/src/main/res/layout/search_favorites_widget_dark_col2.xml @@ -17,7 +17,7 @@ @@ -29,12 +29,12 @@ diff --git a/app/src/main/res/layout/search_favorites_widget_dark_col3.xml b/app/src/main/res/layout/search_favorites_widget_dark_col3.xml index d78723ef967c..aeca485906b6 100644 --- a/app/src/main/res/layout/search_favorites_widget_dark_col3.xml +++ b/app/src/main/res/layout/search_favorites_widget_dark_col3.xml @@ -17,7 +17,7 @@ @@ -31,11 +31,11 @@ + style="@style/Widget.DuckDuckGo.SearchWidgetFavoritesGrid" /> diff --git a/app/src/main/res/layout/search_favorites_widget_dark_col4.xml b/app/src/main/res/layout/search_favorites_widget_dark_col4.xml index 16f6542768ee..4c4b0bcdebeb 100644 --- a/app/src/main/res/layout/search_favorites_widget_dark_col4.xml +++ b/app/src/main/res/layout/search_favorites_widget_dark_col4.xml @@ -17,7 +17,7 @@ @@ -31,11 +31,11 @@ + style="@style/Widget.DuckDuckGo.SearchWidgetFavoritesGrid" /> diff --git a/app/src/main/res/layout/search_favorites_widget_dark_col5.xml b/app/src/main/res/layout/search_favorites_widget_dark_col5.xml index 73dc35591f72..84d1fff90f8b 100644 --- a/app/src/main/res/layout/search_favorites_widget_dark_col5.xml +++ b/app/src/main/res/layout/search_favorites_widget_dark_col5.xml @@ -17,7 +17,7 @@ @@ -31,11 +31,11 @@ + style="@style/Widget.DuckDuckGo.SearchWidgetFavoritesGrid" /> diff --git a/app/src/main/res/layout/search_favorites_widget_dark_col6.xml b/app/src/main/res/layout/search_favorites_widget_dark_col6.xml index 98b66a17cab6..f0e1ede52f3d 100644 --- a/app/src/main/res/layout/search_favorites_widget_dark_col6.xml +++ b/app/src/main/res/layout/search_favorites_widget_dark_col6.xml @@ -17,7 +17,7 @@ @@ -31,11 +31,11 @@ + style="@style/Widget.DuckDuckGo.SearchWidgetFavoritesGrid" /> diff --git a/app/src/main/res/layout/search_favorites_widget_daynight_auto.xml b/app/src/main/res/layout/search_favorites_widget_daynight_auto.xml index 788e91f8d1a4..3539cdc7e34e 100644 --- a/app/src/main/res/layout/search_favorites_widget_daynight_auto.xml +++ b/app/src/main/res/layout/search_favorites_widget_daynight_auto.xml @@ -17,7 +17,7 @@ @@ -31,11 +31,11 @@ + style="@style/Widget.DuckDuckGo.SearchWidgetFavoritesGrid" /> diff --git a/app/src/main/res/layout/search_favorites_widget_daynight_col2.xml b/app/src/main/res/layout/search_favorites_widget_daynight_col2.xml index 04cc05ccd523..09021b7ed3ed 100644 --- a/app/src/main/res/layout/search_favorites_widget_daynight_col2.xml +++ b/app/src/main/res/layout/search_favorites_widget_daynight_col2.xml @@ -17,7 +17,7 @@ @@ -29,12 +29,12 @@ \ No newline at end of file diff --git a/app/src/main/res/layout/search_favorites_widget_daynight_col3.xml b/app/src/main/res/layout/search_favorites_widget_daynight_col3.xml index 4d7d7314bbab..934325fa92ea 100644 --- a/app/src/main/res/layout/search_favorites_widget_daynight_col3.xml +++ b/app/src/main/res/layout/search_favorites_widget_daynight_col3.xml @@ -17,7 +17,7 @@ @@ -31,11 +31,11 @@ + style="@style/Widget.DuckDuckGo.SearchWidgetFavoritesGrid" /> diff --git a/app/src/main/res/layout/search_favorites_widget_daynight_col4.xml b/app/src/main/res/layout/search_favorites_widget_daynight_col4.xml index 65af1116674f..bbbf4c1a0ada 100644 --- a/app/src/main/res/layout/search_favorites_widget_daynight_col4.xml +++ b/app/src/main/res/layout/search_favorites_widget_daynight_col4.xml @@ -17,7 +17,7 @@ @@ -31,11 +31,11 @@ + style="@style/Widget.DuckDuckGo.SearchWidgetFavoritesGrid" /> diff --git a/app/src/main/res/layout/search_favorites_widget_daynight_col5.xml b/app/src/main/res/layout/search_favorites_widget_daynight_col5.xml index b47367a52aa7..989640ce4263 100644 --- a/app/src/main/res/layout/search_favorites_widget_daynight_col5.xml +++ b/app/src/main/res/layout/search_favorites_widget_daynight_col5.xml @@ -17,7 +17,7 @@ @@ -31,11 +31,11 @@ + style="@style/Widget.DuckDuckGo.SearchWidgetFavoritesGrid" /> diff --git a/app/src/main/res/layout/search_favorites_widget_daynight_col6.xml b/app/src/main/res/layout/search_favorites_widget_daynight_col6.xml index 26b543ec3ff9..c2986b62677c 100644 --- a/app/src/main/res/layout/search_favorites_widget_daynight_col6.xml +++ b/app/src/main/res/layout/search_favorites_widget_daynight_col6.xml @@ -17,7 +17,7 @@ @@ -31,11 +31,11 @@ + style="@style/Widget.DuckDuckGo.SearchWidgetFavoritesGrid" /> diff --git a/app/src/main/res/layout/search_favorites_widget_empty_hint_dark.xml b/app/src/main/res/layout/search_favorites_widget_empty_hint_dark.xml index 0ebfefa39427..33a49c22a00e 100644 --- a/app/src/main/res/layout/search_favorites_widget_empty_hint_dark.xml +++ b/app/src/main/res/layout/search_favorites_widget_empty_hint_dark.xml @@ -17,18 +17,18 @@ \ No newline at end of file diff --git a/app/src/main/res/layout/search_favorites_widget_empty_hint_daylight.xml b/app/src/main/res/layout/search_favorites_widget_empty_hint_daylight.xml index 5bde4b0d4664..55a7ba29acbe 100644 --- a/app/src/main/res/layout/search_favorites_widget_empty_hint_daylight.xml +++ b/app/src/main/res/layout/search_favorites_widget_empty_hint_daylight.xml @@ -17,16 +17,16 @@ \ No newline at end of file diff --git a/app/src/main/res/layout/search_favorites_widget_empty_hint_light.xml b/app/src/main/res/layout/search_favorites_widget_empty_hint_light.xml index e220f906b4ed..4bac91b1a578 100644 --- a/app/src/main/res/layout/search_favorites_widget_empty_hint_light.xml +++ b/app/src/main/res/layout/search_favorites_widget_empty_hint_light.xml @@ -17,18 +17,18 @@ \ No newline at end of file diff --git a/app/src/main/res/layout/search_favorites_widget_light_auto.xml b/app/src/main/res/layout/search_favorites_widget_light_auto.xml index a7dda035e286..a9dfd94c8fa1 100644 --- a/app/src/main/res/layout/search_favorites_widget_light_auto.xml +++ b/app/src/main/res/layout/search_favorites_widget_light_auto.xml @@ -17,7 +17,7 @@ @@ -31,11 +31,11 @@ + style="@style/Widget.DuckDuckGo.SearchWidgetFavoritesGrid" /> diff --git a/app/src/main/res/layout/search_favorites_widget_light_col2.xml b/app/src/main/res/layout/search_favorites_widget_light_col2.xml index d3d10060ac2b..c607ab7c5b50 100644 --- a/app/src/main/res/layout/search_favorites_widget_light_col2.xml +++ b/app/src/main/res/layout/search_favorites_widget_light_col2.xml @@ -17,7 +17,7 @@ @@ -29,12 +29,12 @@ diff --git a/app/src/main/res/layout/search_favorites_widget_light_col3.xml b/app/src/main/res/layout/search_favorites_widget_light_col3.xml index 2c4b6ed5519c..4424406bba1f 100644 --- a/app/src/main/res/layout/search_favorites_widget_light_col3.xml +++ b/app/src/main/res/layout/search_favorites_widget_light_col3.xml @@ -17,7 +17,7 @@ @@ -31,11 +31,11 @@ + style="@style/Widget.DuckDuckGo.SearchWidgetFavoritesGrid" /> diff --git a/app/src/main/res/layout/search_favorites_widget_light_col4.xml b/app/src/main/res/layout/search_favorites_widget_light_col4.xml index 064309443aba..63f7e229bbe0 100644 --- a/app/src/main/res/layout/search_favorites_widget_light_col4.xml +++ b/app/src/main/res/layout/search_favorites_widget_light_col4.xml @@ -17,7 +17,7 @@ @@ -31,11 +31,11 @@ + style="@style/Widget.DuckDuckGo.SearchWidgetFavoritesGrid" /> diff --git a/app/src/main/res/layout/search_favorites_widget_light_col5.xml b/app/src/main/res/layout/search_favorites_widget_light_col5.xml index cfbed91176fe..c54738ad6699 100644 --- a/app/src/main/res/layout/search_favorites_widget_light_col5.xml +++ b/app/src/main/res/layout/search_favorites_widget_light_col5.xml @@ -17,7 +17,7 @@ @@ -31,11 +31,11 @@ + style="@style/Widget.DuckDuckGo.SearchWidgetFavoritesGrid" /> diff --git a/app/src/main/res/layout/search_favorites_widget_light_col6.xml b/app/src/main/res/layout/search_favorites_widget_light_col6.xml index 8e7f67d41cd2..6de5a85ca950 100644 --- a/app/src/main/res/layout/search_favorites_widget_light_col6.xml +++ b/app/src/main/res/layout/search_favorites_widget_light_col6.xml @@ -17,7 +17,7 @@ @@ -31,11 +31,11 @@ + style="@style/Widget.DuckDuckGo.SearchWidgetFavoritesGrid" /> diff --git a/app/src/main/res/layout/search_favorites_widget_search_bar_dark.xml b/app/src/main/res/layout/search_favorites_widget_search_bar_dark.xml index 688d381abdfc..84bd5e5771ed 100644 --- a/app/src/main/res/layout/search_favorites_widget_search_bar_dark.xml +++ b/app/src/main/res/layout/search_favorites_widget_search_bar_dark.xml @@ -17,18 +17,18 @@ \ No newline at end of file diff --git a/app/src/main/res/layout/search_favorites_widget_search_bar_daynight.xml b/app/src/main/res/layout/search_favorites_widget_search_bar_daynight.xml index 5603633e2bc3..6c6f9145af0a 100644 --- a/app/src/main/res/layout/search_favorites_widget_search_bar_daynight.xml +++ b/app/src/main/res/layout/search_favorites_widget_search_bar_daynight.xml @@ -17,18 +17,18 @@ \ No newline at end of file diff --git a/app/src/main/res/layout/search_favorites_widget_search_bar_light.xml b/app/src/main/res/layout/search_favorites_widget_search_bar_light.xml index fc9a5b9e6a64..e36ab2d079e1 100644 --- a/app/src/main/res/layout/search_favorites_widget_search_bar_light.xml +++ b/app/src/main/res/layout/search_favorites_widget_search_bar_light.xml @@ -17,18 +17,18 @@ \ No newline at end of file diff --git a/app/src/main/res/layout/search_widget_dark.xml b/app/src/main/res/layout/search_widget_dark.xml index 213b6c5a7d5e..12f6a9e6afd9 100644 --- a/app/src/main/res/layout/search_widget_dark.xml +++ b/app/src/main/res/layout/search_widget_dark.xml @@ -18,18 +18,18 @@ \ No newline at end of file diff --git a/app/src/main/res/layout/search_widget_light.xml b/app/src/main/res/layout/search_widget_light.xml index b1e99eb18a2e..39cebb35ed1f 100644 --- a/app/src/main/res/layout/search_widget_light.xml +++ b/app/src/main/res/layout/search_widget_light.xml @@ -18,18 +18,18 @@ \ No newline at end of file diff --git a/app/src/main/res/layout/view_favorite_widget_dark_item.xml b/app/src/main/res/layout/view_favorite_widget_dark_item.xml index 413ac87edd5e..94011213d6a8 100644 --- a/app/src/main/res/layout/view_favorite_widget_dark_item.xml +++ b/app/src/main/res/layout/view_favorite_widget_dark_item.xml @@ -17,18 +17,18 @@ diff --git a/app/src/main/res/layout/view_favorite_widget_daynight_item.xml b/app/src/main/res/layout/view_favorite_widget_daynight_item.xml index 6335bc450ef3..0f46594ee7bc 100644 --- a/app/src/main/res/layout/view_favorite_widget_daynight_item.xml +++ b/app/src/main/res/layout/view_favorite_widget_daynight_item.xml @@ -17,18 +17,18 @@ \ No newline at end of file diff --git a/app/src/main/res/layout/view_favorite_widget_light_item.xml b/app/src/main/res/layout/view_favorite_widget_light_item.xml index bcb7a24d6cb7..d749616890be 100644 --- a/app/src/main/res/layout/view_favorite_widget_light_item.xml +++ b/app/src/main/res/layout/view_favorite_widget_light_item.xml @@ -17,18 +17,18 @@ diff --git a/app/src/main/res/values-v27/styles.xml b/app/src/main/res/values-v27/styles.xml deleted file mode 100644 index 7947b6f4bd99..000000000000 --- a/app/src/main/res/values-v27/styles.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - \ No newline at end of file diff --git a/autofill/autofill-impl/src/main/res/drawable/ic_baseline_add_24.xml b/autofill/autofill-impl/src/main/res/drawable/ic_baseline_add_24.xml index cc5f746eadf7..9b4ca0a97ebb 100644 --- a/autofill/autofill-impl/src/main/res/drawable/ic_baseline_add_24.xml +++ b/autofill/autofill-impl/src/main/res/drawable/ic_baseline_add_24.xml @@ -20,6 +20,6 @@ android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android"> diff --git a/autofill/autofill-impl/src/main/res/drawable/ic_baseline_search_24.xml b/autofill/autofill-impl/src/main/res/drawable/ic_baseline_search_24.xml index 58d1ddf95f0b..c1765a703830 100644 --- a/autofill/autofill-impl/src/main/res/drawable/ic_baseline_search_24.xml +++ b/autofill/autofill-impl/src/main/res/drawable/ic_baseline_search_24.xml @@ -20,6 +20,6 @@ android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android"> diff --git a/autofill/autofill-impl/src/main/res/layout/activity_autofill_settings.xml b/autofill/autofill-impl/src/main/res/layout/activity_autofill_settings.xml index 471b2794c437..ee10d4573927 100644 --- a/autofill/autofill-impl/src/main/res/layout/activity_autofill_settings.xml +++ b/autofill/autofill-impl/src/main/res/layout/activity_autofill_settings.xml @@ -28,7 +28,7 @@ app:layout_constraintTop_toTopOf="parent" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="?toolbarBgColor" + android:background="?daxColorSurface" android:theme="@style/Widget.DuckDuckGo.ToolbarTheme"> diff --git a/autofill/autofill-impl/src/main/res/layout/content_autofill_update_existing_credentials.xml b/autofill/autofill-impl/src/main/res/layout/content_autofill_update_existing_credentials.xml index bae88448798d..793194c301e3 100644 --- a/autofill/autofill-impl/src/main/res/layout/content_autofill_update_existing_credentials.xml +++ b/autofill/autofill-impl/src/main/res/layout/content_autofill_update_existing_credentials.xml @@ -70,7 +70,7 @@ android:importantForAccessibility="no" android:importantForAutofill="no" android:textAlignment="center" - android:textColor="?attr/normalTextColor" + android:textColor="?attr/daxColorPrimaryText" android:textSize="14sp" app:layout_constraintEnd_toEndOf="@id/updateCredentialsButton" app:layout_constraintStart_toStartOf="@id/updateCredentialsButton" diff --git a/autofill/autofill-impl/src/main/res/layout/item_row_autofill_credentials_management_screen.xml b/autofill/autofill-impl/src/main/res/layout/item_row_autofill_credentials_management_screen.xml index 09cbd076f253..3af66a11a517 100644 --- a/autofill/autofill-impl/src/main/res/layout/item_row_autofill_credentials_management_screen.xml +++ b/autofill/autofill-impl/src/main/res/layout/item_row_autofill_credentials_management_screen.xml @@ -41,7 +41,7 @@ android:layout_width="0dp" android:layout_height="0dp" tools:text="duckduckgo.com" - android:textColor="?normalTextColor" + android:textColor="?daxColorPrimaryText" android:textSize="16sp" android:layout_marginStart="12dp" app:layout_constraintStart_toEndOf="@id/favicon" diff --git a/autofill/autofill-impl/src/main/res/values/styles.xml b/autofill/autofill-impl/src/main/res/values/styles.xml index 89dc87626543..e28e593f36dd 100644 --- a/autofill/autofill-impl/src/main/res/values/styles.xml +++ b/autofill/autofill-impl/src/main/res/values/styles.xml @@ -45,7 +45,7 @@ wrap_content 14sp bold - ?normalTextColor + ?daxColorPrimaryText + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/common-ui/src/main/res/values/widgets.xml b/common-ui/src/main/res/values/widgets.xml index 207e46d8ef67..50deb359bd06 100644 --- a/common-ui/src/main/res/values/widgets.xml +++ b/common-ui/src/main/res/values/widgets.xml @@ -22,6 +22,8 @@ + + - - - - - - - - - @@ -208,6 +183,20 @@ ?attr/textAppearanceBody1 + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/privacy-config/privacy-config-internal/src/main/res/layout/activity_privacy_config_internal_settings.xml b/privacy-config/privacy-config-internal/src/main/res/layout/activity_privacy_config_internal_settings.xml index 7f5f5b121753..144ec6dc3ad4 100644 --- a/privacy-config/privacy-config-internal/src/main/res/layout/activity_privacy_config_internal_settings.xml +++ b/privacy-config/privacy-config-internal/src/main/res/layout/activity_privacy_config_internal_settings.xml @@ -34,9 +34,9 @@ android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" - android:background="?attr/toolbarBgColor" + android:background="?attr/daxColorSurface" android:theme="@style/Widget.DuckDuckGo.ToolbarTheme" - app:popupTheme="@style/PopUpOverflowMenu" /> + app:popupTheme="@style/Widget.DuckDuckGo.PopUpOverflowMenu" /> From c2d535ec0a6cb67337169997b7bdcb43c3456453 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Gonz=C3=A1lez?= Date: Fri, 27 Jan 2023 16:05:54 +0100 Subject: [PATCH 17/21] ADS: Maestro (#2783) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Task/Issue URL: https://app.asana.com/0/1174433894299346/1203827857866586 ### Description Adds a Maestro test to open the ADS Preview pages whenever a change to a Component happens ### Steps to test this PR _Non Android 13 device_ - [ ] Fresh install InternalRelease or InternalDebug version - [ ] Run maestro tests locally (❯ maestro test .maestro/ads_preview_flows/1-_design-system-components.yaml) --- - To see the specific tasks where the Asana app for GitHub is being used, see below: - https://app.asana.com/0/0/1203827857866586 --- .github/workflows/ads-end-to-end.yml | 73 ++++++++++ .../1-_design-system-components.yaml | 126 ++++++++++++++++++ 2 files changed, 199 insertions(+) create mode 100644 .github/workflows/ads-end-to-end.yml create mode 100644 .maestro/ads_preview_flows/1-_design-system-components.yaml diff --git a/.github/workflows/ads-end-to-end.yml b/.github/workflows/ads-end-to-end.yml new file mode 100644 index 000000000000..a43e0bedadc9 --- /dev/null +++ b/.github/workflows/ads-end-to-end.yml @@ -0,0 +1,73 @@ +name: Android Design System End-to-End tests + +on: + schedule: + - cron: '0 5 * * *' # run at 5 AM UTC + workflow_dispatch: + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + instrumentation_tests: + runs-on: ubuntu-latest + name: End-to-End tests + + steps: + - name: Checkout repository + uses: actions/checkout@v3 + with: + submodules: recursive + + - name: Set up JDK 11 + uses: actions/setup-java@v3 + with: + java-version: '11' + distribution: 'adopt' + + - name: Create folder + if: always() + run: mkdir apk + + - name: Decode keys + uses: davidSchuppa/base64Secret-toFile-action@v2 + with: + secret: ${{ secrets.FAKE_RELEASE_PROPERTIES }} + fileName: ddg_android_build.properties + destination-path: $HOME/jenkins_static/com.duckduckgo.mobile.android/ + + - name: Decode key file + uses: davidSchuppa/base64Secret-toFile-action@v2 + with: + secret: ${{ secrets.FAKE_RELEASE_KEY }} + fileName: android + destination-path: $HOME/jenkins_static/com.duckduckgo.mobile.android/ + + - name: Assemble release APK + uses: gradle/gradle-build-action@v2 + with: + arguments: assembleInternalRelease + + - name: Move APK to new folder + if: always() + run: find . -name "*.apk" -exec mv '{}' apk/release.apk \; + + - name: ADS Preview Flows + uses: mobile-dev-inc/action-maestro-cloud@v1.1.1 + with: + api-key: ${{ secrets.MOBILE_DEV_API_KEY }} + name: ${{ github.sha }} + app-file: apk/release.apk + workspace: .maestro/ads_preview_flows + + - name: Create Asana task when workflow failed + if: ${{ failure() }} + uses: honeycombio/gha-create-asana-task@main + with: + asana-secret: ${{ secrets.GH_ASANA_SECRET }} + asana-workspace-id: ${{ secrets.GH_ASANA_WORKSPACE_ID }} + asana-project-id: ${{ secrets.GH_ASANA_AOR_PROJECT_ID }} + asana-section-id: ${{ secrets.GH_ASANA_INCOMING_ID }} + asana-task-name: GH Workflow Failure - ADS Preview test + asana-task-description: The ADS Preview end to end workflow has failed. See https://github.com/duckduckgo/Android/actions/runs/${{ github.run_id }} \ No newline at end of file diff --git a/.maestro/ads_preview_flows/1-_design-system-components.yaml b/.maestro/ads_preview_flows/1-_design-system-components.yaml new file mode 100644 index 000000000000..df42bdda7300 --- /dev/null +++ b/.maestro/ads_preview_flows/1-_design-system-components.yaml @@ -0,0 +1,126 @@ +appId: com.duckduckgo.mobile.android +--- +- launchApp: + clearState: true + stopApp: true +- assertVisible: + text: ".*Not to worry! Searching and browsing privately.*" +- tapOn: "let's do it!" +- tapOn: "cancel" +- assertVisible: + text: ".*I'll also upgrade the security of your connection if possible.*" +- tapOn: + id: "com.duckduckgo.mobile.android:id/browserMenuImageView" +- tapOn: + text: "Settings" + index: 0 +- scrollUntilVisible: + element: + text: "Set of components designed following our Design System" + direction: DOWN +- assertVisible: "Set of components designed following our Design System" +- tapOn: "App Components Design Preview" +- assertVisible: "COLOR PALETTE" +- tapOn: "TYPOGRAPHY" +- scrollUntilVisible: + element: + text: "Text Appearance Caption" + direction: DOWN +- tapOn: "BUTTONS" +- tapOn: "Primary Large" +- tapOn: "Secondary Small" +- tapOn: "Destructive Small" +- tapOn: "TEXT INPUT" +- tapOn: "DIALOGS" +- tapOn: "Text Alert Dialog With Image" +- assertVisible: "Keep Using" +- tapOn: "Keep Using" +- tapOn: "Stacked Text Alert Dialog With 4 buttons" +- assertVisible: "Keep Using" +- tapOn: "Keep Using" +- tapOn: "Single Choice Alert Dialog" +- assertVisible: "Option" +- tapOn: "Option" +- tapOn: "Keep Using" +- scrollUntilVisible: + element: + text: "Promo Bottom Sheet with image" + direction: DOWN +- tapOn: "Action Bottom Sheet" +- assertVisible: "Primary Item" +- tapOn: "Primary Item" +- tapOn: + id: "com.duckduckgo.mobile.android:id/touch_outside" +- tapOn: + id: "com.duckduckgo.mobile.android:id/actionBottomSheetButtonWithTitle" +- tapOn: + id: "com.duckduckgo.mobile.android:id/item_container" + index: 0 +- tapOn: + id: "com.duckduckgo.mobile.android:id/touch_outside" +- tapOn: + id: "com.duckduckgo.mobile.android:id/promoBottomSheetButtonWithTitle" +- tapOn: + id: "com.duckduckgo.mobile.android:id/bottomSheetPromoPrimaryButton" +- tapOn: + id: "com.duckduckgo.mobile.android:id/touch_outside" +- scrollUntilVisible: + element: + text: "Cookie Consent dialog with animation" + direction: DOWN +- tapOn: + id: "com.duckduckgo.mobile.android:id/animated_button" +- tapOn: + id: "com.duckduckgo.mobile.android:id/primaryCta" +- tapOn: + id: "com.duckduckgo.mobile.android:id/no_hide_button" +- tapOn: + id: "com.duckduckgo.mobile.android:id/primaryCta" +- tapOn: "CARDS" +- tapOn: "Primary" +- tapOn: "INTERACTIVE" +- tapOn: + id: "com.duckduckgo.mobile.android:id/switch_one" +- tapOn: + id: "com.duckduckgo.mobile.android:id/radio_button_two" +- tapOn: + id: "com.duckduckgo.mobile.android:id/checkbox_one" +- tapOn: + point: "50%,75%" +- tapOn: "MESSAGING" +- tapOn: + id: "com.duckduckgo.mobile.android:id/close" + index: 0 +- tapOn: + id: "com.duckduckgo.mobile.android:id/close" + index: 0 +- tapOn: + id: "com.duckduckgo.mobile.android:id/close" + index: 0 +- tapOn: + id: "com.duckduckgo.mobile.android:id/secondaryActionButton" + index: 0 +- tapOn: + id: "com.duckduckgo.mobile.android:id/primaryActionButton" + index: 0 +- tapOn: "LIST ITEMS" +- scrollUntilVisible: + element: + text: "This is a test" + direction: DOWN +- tapOn: "Others" +- scrollUntilVisible: + element: + text: "Enable Dark Theme" + direction: UP +- tapOn: + id: "com.duckduckgo.mobile.android:id/trailingSwitch" +- tapOn: "Typography" +- tapOn: "BUTTONS" +- tapOn: "TEXT INPUT" +- tapOn: "DIALOGS" +- tapOn: "CARDS" +- tapOn: "INTERACTIVE" +- tapOn: "MESSAGING" +- tapOn: "LIST ITEMS" +- tapOn: "OTHERS" \ No newline at end of file From c57810cb8f862ca96641bec34de87ab5efdc9a0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Gonz=C3=A1lez?= Date: Fri, 27 Jan 2023 16:12:39 +0100 Subject: [PATCH 18/21] remove old baselines --- .../vpn-impl/lint-baseline.xml | 3126 ---------- .../vpn-internal/lint-baseline.xml | 301 - app/lint-baseline.xml | 5304 ----------------- autofill/autofill-impl/lint-baseline.xml | 93 - common-ui/lint-baseline.xml | 3834 ------------ common/lint-baseline.xml | 26 - device-auth/device-auth-api/lint-baseline.xml | 4 - .../device-auth-impl/lint-baseline.xml | 4 - .../privacy-dashboard-api/lint-baseline.xml | 4 - .../privacy-dashboard-impl/lint-baseline.xml | 3 - .../remote-messaging-impl/lint-baseline.xml | 15 - .../secure-storage-api/lint-baseline.xml | 4 - .../secure-storage-impl/lint-baseline.xml | 4 - .../secure-storage-store/lint-baseline.xml | 4 - .../voice-search-impl/lint-baseline.xml | 125 - 15 files changed, 12851 deletions(-) delete mode 100644 app-tracking-protection/vpn-impl/lint-baseline.xml delete mode 100644 app-tracking-protection/vpn-internal/lint-baseline.xml delete mode 100644 app/lint-baseline.xml delete mode 100644 autofill/autofill-impl/lint-baseline.xml delete mode 100644 common-ui/lint-baseline.xml delete mode 100644 common/lint-baseline.xml delete mode 100644 device-auth/device-auth-api/lint-baseline.xml delete mode 100644 device-auth/device-auth-impl/lint-baseline.xml delete mode 100644 privacy-dashboard/privacy-dashboard-api/lint-baseline.xml delete mode 100644 privacy-dashboard/privacy-dashboard-impl/lint-baseline.xml delete mode 100644 remote-messaging/remote-messaging-impl/lint-baseline.xml delete mode 100644 secure-storage/secure-storage-api/lint-baseline.xml delete mode 100644 secure-storage/secure-storage-impl/lint-baseline.xml delete mode 100644 secure-storage/secure-storage-store/lint-baseline.xml delete mode 100644 voice-search/voice-search-impl/lint-baseline.xml diff --git a/app-tracking-protection/vpn-impl/lint-baseline.xml b/app-tracking-protection/vpn-impl/lint-baseline.xml deleted file mode 100644 index 2311c01cddcf..000000000000 --- a/app-tracking-protection/vpn-impl/lint-baseline.xml +++ /dev/null @@ -1,3126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app-tracking-protection/vpn-internal/lint-baseline.xml b/app-tracking-protection/vpn-internal/lint-baseline.xml deleted file mode 100644 index 294003a6ea09..000000000000 --- a/app-tracking-protection/vpn-internal/lint-baseline.xml +++ /dev/null @@ -1,301 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/lint-baseline.xml b/app/lint-baseline.xml deleted file mode 100644 index 62e1b0b90b9f..000000000000 --- a/app/lint-baseline.xml +++ /dev/null @@ -1,5304 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/autofill/autofill-impl/lint-baseline.xml b/autofill/autofill-impl/lint-baseline.xml deleted file mode 100644 index 3f2a6199800e..000000000000 --- a/autofill/autofill-impl/lint-baseline.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/common-ui/lint-baseline.xml b/common-ui/lint-baseline.xml deleted file mode 100644 index d460cd0b5aad..000000000000 --- a/common-ui/lint-baseline.xml +++ /dev/null @@ -1,3834 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/common/lint-baseline.xml b/common/lint-baseline.xml deleted file mode 100644 index d5c749fa9bdb..000000000000 --- a/common/lint-baseline.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - diff --git a/device-auth/device-auth-api/lint-baseline.xml b/device-auth/device-auth-api/lint-baseline.xml deleted file mode 100644 index 2578bb1afdb4..000000000000 --- a/device-auth/device-auth-api/lint-baseline.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/device-auth/device-auth-impl/lint-baseline.xml b/device-auth/device-auth-impl/lint-baseline.xml deleted file mode 100644 index 2578bb1afdb4..000000000000 --- a/device-auth/device-auth-impl/lint-baseline.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/privacy-dashboard/privacy-dashboard-api/lint-baseline.xml b/privacy-dashboard/privacy-dashboard-api/lint-baseline.xml deleted file mode 100644 index 2578bb1afdb4..000000000000 --- a/privacy-dashboard/privacy-dashboard-api/lint-baseline.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/privacy-dashboard/privacy-dashboard-impl/lint-baseline.xml b/privacy-dashboard/privacy-dashboard-impl/lint-baseline.xml deleted file mode 100644 index 8770f8cf5c10..000000000000 --- a/privacy-dashboard/privacy-dashboard-impl/lint-baseline.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/remote-messaging/remote-messaging-impl/lint-baseline.xml b/remote-messaging/remote-messaging-impl/lint-baseline.xml deleted file mode 100644 index 997ccb42e4bb..000000000000 --- a/remote-messaging/remote-messaging-impl/lint-baseline.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - diff --git a/secure-storage/secure-storage-api/lint-baseline.xml b/secure-storage/secure-storage-api/lint-baseline.xml deleted file mode 100644 index 2578bb1afdb4..000000000000 --- a/secure-storage/secure-storage-api/lint-baseline.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/secure-storage/secure-storage-impl/lint-baseline.xml b/secure-storage/secure-storage-impl/lint-baseline.xml deleted file mode 100644 index 2578bb1afdb4..000000000000 --- a/secure-storage/secure-storage-impl/lint-baseline.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/secure-storage/secure-storage-store/lint-baseline.xml b/secure-storage/secure-storage-store/lint-baseline.xml deleted file mode 100644 index 3edd7284cfb0..000000000000 --- a/secure-storage/secure-storage-store/lint-baseline.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/voice-search/voice-search-impl/lint-baseline.xml b/voice-search/voice-search-impl/lint-baseline.xml deleted file mode 100644 index 4f316f9ffffd..000000000000 --- a/voice-search/voice-search-impl/lint-baseline.xml +++ /dev/null @@ -1,125 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - From 59064047b67d0e12d692f427d64bcf36d713bd04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Gonz=C3=A1lez?= Date: Fri, 27 Jan 2023 16:19:11 +0100 Subject: [PATCH 19/21] updated baseline files --- .../vpn-impl/lint-baseline.xml | 3045 +++++++++ .../vpn-internal/lint-baseline.xml | 48 + app/lint-baseline.xml | 5427 +++++++++++++++++ autofill/autofill-impl/lint-baseline.xml | 246 + common-ui/lint-baseline.xml | 3581 +++++++++++ common/lint-baseline.xml | 70 + .../remote-messaging-impl/lint-baseline.xml | 15 + .../voice-search-impl/lint-baseline.xml | 81 + 8 files changed, 12513 insertions(+) create mode 100644 app-tracking-protection/vpn-impl/lint-baseline.xml create mode 100644 app-tracking-protection/vpn-internal/lint-baseline.xml create mode 100644 app/lint-baseline.xml create mode 100644 autofill/autofill-impl/lint-baseline.xml create mode 100644 common-ui/lint-baseline.xml create mode 100644 common/lint-baseline.xml create mode 100644 remote-messaging/remote-messaging-impl/lint-baseline.xml create mode 100644 voice-search/voice-search-impl/lint-baseline.xml diff --git a/app-tracking-protection/vpn-impl/lint-baseline.xml b/app-tracking-protection/vpn-impl/lint-baseline.xml new file mode 100644 index 000000000000..8d7252f6fdc8 --- /dev/null +++ b/app-tracking-protection/vpn-impl/lint-baseline.xml @@ -0,0 +1,3045 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app-tracking-protection/vpn-internal/lint-baseline.xml b/app-tracking-protection/vpn-internal/lint-baseline.xml new file mode 100644 index 000000000000..fc2d0352ef69 --- /dev/null +++ b/app-tracking-protection/vpn-internal/lint-baseline.xml @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/app/lint-baseline.xml b/app/lint-baseline.xml new file mode 100644 index 000000000000..559b979de3a6 --- /dev/null +++ b/app/lint-baseline.xml @@ -0,0 +1,5427 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/autofill/autofill-impl/lint-baseline.xml b/autofill/autofill-impl/lint-baseline.xml new file mode 100644 index 000000000000..fd73b69f1293 --- /dev/null +++ b/autofill/autofill-impl/lint-baseline.xml @@ -0,0 +1,246 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common-ui/lint-baseline.xml b/common-ui/lint-baseline.xml new file mode 100644 index 000000000000..1d14f1c59db0 --- /dev/null +++ b/common-ui/lint-baseline.xml @@ -0,0 +1,3581 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/lint-baseline.xml b/common/lint-baseline.xml new file mode 100644 index 000000000000..20d911a6eeb4 --- /dev/null +++ b/common/lint-baseline.xml @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/remote-messaging/remote-messaging-impl/lint-baseline.xml b/remote-messaging/remote-messaging-impl/lint-baseline.xml new file mode 100644 index 000000000000..a0e9b8757375 --- /dev/null +++ b/remote-messaging/remote-messaging-impl/lint-baseline.xml @@ -0,0 +1,15 @@ + + + + + + + + diff --git a/voice-search/voice-search-impl/lint-baseline.xml b/voice-search/voice-search-impl/lint-baseline.xml new file mode 100644 index 000000000000..7faca02be7b4 --- /dev/null +++ b/voice-search/voice-search-impl/lint-baseline.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From c4a953bbac748ac1277189e9b507404329a1f08b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Gonz=C3=A1lez?= Date: Mon, 30 Jan 2023 11:21:18 +0100 Subject: [PATCH 20/21] fixed lint tests --- .../res/layout/row_exclusion_list_filter.xml | 1 + .../lint/ui/DaxTextViewStylingDetector.kt | 2 +- .../lint/NoLifecycleObserverTest.kt | 9 +- .../lint/ui/DaxTextViewStylingDetectorTest.kt | 183 ++++++++++++------ ...atedAndroidWidgetsUsedInXmlDetectorTest.kt | 12 +- ...liedToDesignSystemComponentDetectorTest.kt | 12 +- 6 files changed, 147 insertions(+), 72 deletions(-) diff --git a/app-tracking-protection/vpn-impl/src/main/res/layout/row_exclusion_list_filter.xml b/app-tracking-protection/vpn-impl/src/main/res/layout/row_exclusion_list_filter.xml index 20187848d55a..97ae4396b980 100644 --- a/app-tracking-protection/vpn-impl/src/main/res/layout/row_exclusion_list_filter.xml +++ b/app-tracking-protection/vpn-impl/src/main/res/layout/row_exclusion_list_filter.xml @@ -24,6 +24,7 @@ android:layout_marginTop="@dimen/keyline_2" android:drawablePadding="@dimen/keyline_2" android:padding="@dimen/keyline_4" + android:fontFamily="@font/roboto_mono" app:drawableEndCompat="@drawable/ic_arrow_down" app:typography="body2" tools:text="Protection Enabled (11)" /> diff --git a/lint-rules/src/main/java/com/duckduckgo/lint/ui/DaxTextViewStylingDetector.kt b/lint-rules/src/main/java/com/duckduckgo/lint/ui/DaxTextViewStylingDetector.kt index 9b68b19b1403..39a3c980c671 100644 --- a/lint-rules/src/main/java/com/duckduckgo/lint/ui/DaxTextViewStylingDetector.kt +++ b/lint-rules/src/main/java/com/duckduckgo/lint/ui/DaxTextViewStylingDetector.kt @@ -79,7 +79,7 @@ class DaxTextViewStylingDetector : LayoutDetector() { private const val DAX_TEXT_VIEW = "com.duckduckgo.mobile.android.ui.view.text.DaxTextView" val INVALID_ATTRIBUTES = listOf(ATTR_TEXT_APPEARANCE, - ATTR_TEXT_ALL_CAPS, ATTR_TINT, ATTR_TEXT_SIZE, ATTR_FONT, ATTR_FONT_FAMILY) + ATTR_TEXT_ALL_CAPS, ATTR_TINT, ATTR_TEXT_SIZE, ATTR_TEXT_STYLE, ATTR_FONT_FAMILY) val INVALID_DAX_TEXT_VIEW_PROPERTY = Issue .create( diff --git a/lint-rules/src/test/java/com/duckduckgo/lint/NoLifecycleObserverTest.kt b/lint-rules/src/test/java/com/duckduckgo/lint/NoLifecycleObserverTest.kt index 7282c03b0b15..b8197e636961 100644 --- a/lint-rules/src/test/java/com/duckduckgo/lint/NoLifecycleObserverTest.kt +++ b/lint-rules/src/test/java/com/duckduckgo/lint/NoLifecycleObserverTest.kt @@ -46,7 +46,7 @@ class NoLifecycleObserverTest { } @Test - fun whenDefaultLifecycleObserverExtendedThenSucceed() { + fun whenDefaultLifecycleObserverExtendedThenFail() { lint() .files(kt(""" package com.duckduckgo.lint @@ -61,7 +61,12 @@ class NoLifecycleObserverTest { .allowCompilationErrors() .issues(NoLifecycleObserverDetector.NO_LIFECYCLE_OBSERVER_ISSUE) .run() - .expectClean() + .expect(""" + src/com/duckduckgo/lint/DefaultLifecycleObserver.kt:5: Error: LifecycleObserver should not be directly extended [NoLifecycleObserver] + class Duck : DefaultLifecycleObserver() { + ~~~~ + 1 errors, 0 warnings + """.trimMargin()) } @Test diff --git a/lint-rules/src/test/java/com/duckduckgo/lint/ui/DaxTextViewStylingDetectorTest.kt b/lint-rules/src/test/java/com/duckduckgo/lint/ui/DaxTextViewStylingDetectorTest.kt index 7767ef032332..0cec39002993 100644 --- a/lint-rules/src/test/java/com/duckduckgo/lint/ui/DaxTextViewStylingDetectorTest.kt +++ b/lint-rules/src/test/java/com/duckduckgo/lint/ui/DaxTextViewStylingDetectorTest.kt @@ -19,6 +19,7 @@ package com.duckduckgo.lint.ui import com.android.tools.lint.checks.infrastructure.TestFiles import com.android.tools.lint.checks.infrastructure.TestLintTask.lint import com.duckduckgo.lint.ui.DaxButtonStylingDetector.Companion.INVALID_DAX_BUTTON_PROPERTY +import com.duckduckgo.lint.ui.DaxTextViewStylingDetector.Companion.INVALID_DAX_TEXT_VIEW_PROPERTY import com.duckduckgo.lint.ui.NoStyleAppliedToDesignSystemComponentDetector.Companion.STYLE_IN_DESIGN_SYSTEM_COMPONENT import org.junit.Test @@ -48,7 +49,7 @@ class DaxTextViewStylingDetectorTest { app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/customDialogTitle" - android:textStyle="@style/Widget.DuckDuckGo.Button.Primary" + android:textStyle="@style/Typography.DuckDuckGo.Body1" app:textType="secondary" app:typography="body1" /> @@ -56,20 +57,20 @@ class DaxTextViewStylingDetectorTest { """ ).indented() ) - .issues(INVALID_DAX_BUTTON_PROPERTY) + .issues(INVALID_DAX_TEXT_VIEW_PROPERTY) .run() .expect( """ - res/layout/buttons.xml:9: Error: textStyle is defined by the DaxButton Component, you shouldn't change it [InvalidDaxButtonProperty] - - - + + """ ).indented() ) - .issues(INVALID_DAX_BUTTON_PROPERTY) + .issues(INVALID_DAX_TEXT_VIEW_PROPERTY) .run() .expect( """ - res/layout/buttons.xml:9: Error: textColor is defined by the DaxButton Component, you shouldn't change it [InvalidDaxButtonProperty] - - - + + """ ).indented() ) - .issues(INVALID_DAX_BUTTON_PROPERTY) + .issues(INVALID_DAX_TEXT_VIEW_PROPERTY) .run() .expect( """ - res/layout/buttons.xml:9: Error: textAppearance is defined by the DaxButton Component, you shouldn't change it [InvalidDaxButtonProperty] - + + + + + """ + ).indented() + ) + .issues(INVALID_DAX_TEXT_VIEW_PROPERTY) + .run() + .expect( + """ + res/layout/buttons.xml:9: Error: tint is defined by the DaxTextView Component, you shouldn't change it [InvalidDaxTextViewProperty] + - + """ ).indented() ) - .issues(INVALID_DAX_BUTTON_PROPERTY) + .issues(INVALID_DAX_TEXT_VIEW_PROPERTY) .run() .expect( """ - res/layout/buttons.xml:9: Error: textAllCaps is defined by the DaxButton Component, you shouldn't change it [InvalidDaxButtonProperty] - - + """ ).indented() ) - .issues(INVALID_DAX_BUTTON_PROPERTY) + .issues(INVALID_DAX_TEXT_VIEW_PROPERTY) .run() .expect( """ - res/layout/buttons.xml:9: Error: tint is defined by the DaxButton Component, you shouldn't change it [InvalidDaxButtonProperty] - - + """ ).indented() ) .allowCompilationErrors() - .issues(INVALID_DAX_BUTTON_PROPERTY) + .issues(INVALID_DAX_TEXT_VIEW_PROPERTY) .run() .expectClean() } diff --git a/lint-rules/src/test/java/com/duckduckgo/lint/ui/DeprecatedAndroidWidgetsUsedInXmlDetectorTest.kt b/lint-rules/src/test/java/com/duckduckgo/lint/ui/DeprecatedAndroidWidgetsUsedInXmlDetectorTest.kt index d895d7d367e4..879dedba8c32 100644 --- a/lint-rules/src/test/java/com/duckduckgo/lint/ui/DeprecatedAndroidWidgetsUsedInXmlDetectorTest.kt +++ b/lint-rules/src/test/java/com/duckduckgo/lint/ui/DeprecatedAndroidWidgetsUsedInXmlDetectorTest.kt @@ -61,10 +61,10 @@ class DeprecatedAndroidWidgetsUsedInXmlDetectorTest { .run() .expect( """ - res/layout/buttons.xml:17: Error: Always favor the use of the Design System Component. ButtonPrimaryLarge, ButtonSecondaryLarge, etc... [AndroidButtonInXml] + res/layout/buttons.xml:17: Error: Always favor the use of the Design System Component [DeprecatedWidgetInXml]