[KA] Do not reset icon tint for keyboard accessory icons.

This CL refactors the keyboard accessory view binder to use
ChipView::setIconWithTint(Drawable), which doesn't modify the icon's
tint. ChipView::setIcon(Drawable, false) resets the icon's tint (which
is defined as android:tint attribute in the XML).

To make sure this CL is a no-op from the UI perspective, every
icon used by the keyboard accessory needs to be inspected to make
sure it's android:tint attribute won't change the UI. Here is the
list of keyboard accessory icons as per autofill_resource_utils.cc:

PNG icons that don't have android:tint because they are not vectory
drawables:

* amex_metadata_card
* diners_metadata_card
* discover_metadata_card
* elo_metadata_card
* ic_metadata_credit_card
* jcb_metadata_card
* mc_metadata_card
* mir_metadata_card
* troy_metadata_card
* unionpay_metadata_card
* verve_metadata_card
* visa_metadata_card

Vector drawable icons that don't have tint:

* iban_icon
* bnpl_icon_generic
* ic_plus_addresses_logo_16dp

Vector drawable icons that have tint:

* ic_offer_tag - this one wasn't displayed correctly in light mode:
  - Before light mode: screen/7PQoJDbhKxYMNLJ ( <- bug )
  - Before dark mode: screen/nMBdcPcaqTBQWPp
  - After light mode: screen/AJ7EsorBqZU2RWe
  - After dark mode: screen/C8yK3REEaWvX9NC

* ic_android_messages_icon - refactored the icon to set android:tint
  attribute
  - Before light mode: screen/4py2yjbvjNeP5AC
  - Before dark mode: screen/AeWzTwgkkUBoYVL
  - After light mode: screen/4pWx9UQRH9J28Nz
  - After dark mode: screen/9TszHGxE9HKAdxA

* ic_photo_camera_black - tint attribute now works, removed the
  temporary icon, see the attached bug
  - Before light mode: screen/9Lr9sGdM3gddfWH
  - Before dark mode: screen/5fvoUj8U7megbQr
  - After light mode: screen/qvrQHz2Mnf9EkFb
  - After dark mode: screen/4ZNkXxqZ7mdKovv

* ic_history_24dp:
  - Before light mode: screen/Ax4J9nR725H58rM
  - Before dark mode: screen/4uW9V7rodVxp25A
  - After light mode: screen/BUMVzLAEWAJcyc5
  - After dark mode: screen/5hM6ZfNSoFXFiyH

* home_logo and work_logo - refactored the android:tint attribute:
  - Before light mode: screen/58q2TiFvVdcvMB4
  - Before dark mode: screen/bffkFuTbnem48eC
  - After light mode: screen/Bi7zsX496zoyEac
  - After dark mode: screen/4EZFk8y5erEaLpA

Change-Id: I3cee5cb0ed4a71f5cbc9e050062a45fa8d241441
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7079816
Reviewed-by: Luchen Peng <luchenpeng@google.com>
Commit-Queue: Timofey Chudakov <tchudakov@google.com>
Reviewed-by: Lijin Shen <lazzzis@google.com>
Cr-Commit-Position: refs/heads/main@{#1541241}
7 files changed
tree: 660a1d4c7c54590fb69b3b2bce3ca45d0d20fb73
  1. .gemini/
  2. .github/
  3. agents/
  4. android_webview/
  5. apps/
  6. ash/
  7. base/
  8. build/
  9. build_overrides/
  10. buildtools/
  11. cc/
  12. chrome/
  13. chromecast/
  14. chromeos/
  15. codelabs/
  16. components/
  17. content/
  18. crypto/
  19. dbus/
  20. device/
  21. docs/
  22. extensions/
  23. fuchsia_web/
  24. gin/
  25. google_apis/
  26. gpu/
  27. headless/
  28. infra/
  29. ios/
  30. ipc/
  31. media/
  32. mojo/
  33. net/
  34. pdf/
  35. printing/
  36. remoting/
  37. rlz/
  38. sandbox/
  39. services/
  40. skia/
  41. sql/
  42. storage/
  43. styleguide/
  44. testing/
  45. third_party/
  46. tools/
  47. ui/
  48. url/
  49. webkit/
  50. .clang-format
  51. .clang-tidy
  52. .clangd
  53. .cursorignore
  54. .geminiignore
  55. .git-blame-ignore-revs
  56. .gitallowed
  57. .gitattributes
  58. .gitignore
  59. .gitmodules
  60. .gn
  61. .mailmap
  62. .rustfmt.toml
  63. .vpython3
  64. .yapfignore
  65. ATL_OWNERS
  66. AUTHORS
  67. BUILD.gn
  68. CODE_OF_CONDUCT.md
  69. codereview.settings
  70. CPPLINT.cfg
  71. CRYPTO_OWNERS
  72. DEPS
  73. DIR_METADATA
  74. LICENSE
  75. LICENSE.chromium_os
  76. OWNERS
  77. PRESUBMIT.py
  78. PRESUBMIT_test.py
  79. PRESUBMIT_test_mocks.py
  80. README.md
  81. SECURITY_OWNERS
  82. WATCHLISTS
README.md

Logo Chromium

Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.

The project's web site is https://www.chromium.org.

To check out the source code locally, don't use git clone! Instead, follow the instructions on how to get the code.

Documentation in the source is rooted in docs/README.md.

Learn how to Get Around the Chromium Source Code Directory Structure.

For historical reasons, there are some small top level directories. Now the guidance is that new top level directories are for product (e.g. Chrome, Android WebView, Ash). Even if these products have multiple executables, the code should be in subdirectories of the product.

If you found a bug, please file it at https://crbug.com/new.