Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Matthew Finkel
fenix
Commits
5faa22d6
Unverified
Commit
5faa22d6
authored
Feb 06, 2020
by
Tiger Oakes
Committed by
GitHub
Feb 06, 2020
Browse files
Use createBlendModeColorFilterCompat (#8129)
parent
5515f1ba
Changes
6
Hide whitespace changes
Inline
Side-by-side
app/src/main/java/org/mozilla/fenix/collections/SaveCollectionListAdapter.kt
View file @
5faa22d6
...
...
@@ -4,10 +4,11 @@
package
org.mozilla.fenix.collections
import
android.graphics.PorterDuff.Mode.SRC_IN
import
android.view.LayoutInflater
import
android.view.View
import
android.view.ViewGroup
import
androidx.core.graphics.BlendModeColorFilterCompat.createBlendModeColorFilterCompat
import
androidx.core.graphics.BlendModeCompat.SRC_IN
import
androidx.recyclerview.widget.RecyclerView
import
kotlinx.android.synthetic.main.collections_list_item.view.*
import
mozilla.components.feature.tab.collections.TabCollection
...
...
@@ -52,11 +53,8 @@ class CollectionViewHolder(view: View) : RecyclerView.ViewHolder(view) {
fun
bind
(
collection
:
TabCollection
)
{
itemView
.
collection_item
.
text
=
collection
.
title
itemView
.
collection_description
.
text
=
collection
.
description
(
itemView
.
context
)
itemView
.
collection_icon
.
setColorFilter
(
collection
.
getIconColor
(
itemView
.
context
),
SRC_IN
)
itemView
.
collection_icon
.
colorFilter
=
createBlendModeColorFilterCompat
(
collection
.
getIconColor
(
itemView
.
context
),
SRC_IN
)
}
companion
object
{
...
...
app/src/main/java/org/mozilla/fenix/ext/Toolbar.kt
View file @
5faa22d6
...
...
@@ -5,13 +5,13 @@
package
org.mozilla.fenix.ext
import
android.graphics.ColorFilter
import
android.graphics.PorterDuff
import
android.graphics.PorterDuffColorFilter
import
android.widget.ActionMenuView
import
android.widget.ImageButton
import
androidx.annotation.ColorInt
import
androidx.appcompat.view.menu.ActionMenuItemView
import
androidx.appcompat.widget.Toolbar
import
androidx.core.graphics.BlendModeColorFilterCompat.createBlendModeColorFilterCompat
import
androidx.core.graphics.BlendModeCompat.SRC_IN
import
androidx.core.view.forEach
/**
...
...
@@ -22,7 +22,7 @@ fun Toolbar.setToolbarColors(@ColorInt foreground: Int, @ColorInt background: In
setBackgroundColor
(
background
)
setTitleTextColor
(
foreground
)
val
colorFilter
=
PorterDuff
ColorFilter
(
foreground
,
PorterDuff
.
Mode
.
SRC_IN
)
val
colorFilter
=
createBlendMode
ColorFilter
Compat
(
foreground
,
SRC_IN
)
overflowIcon
?.
colorFilter
=
colorFilter
forEach
{
child
->
when
(
child
)
{
...
...
@@ -33,7 +33,7 @@ fun Toolbar.setToolbarColors(@ColorInt foreground: Int, @ColorInt background: In
}
}
private
fun
themeActionMenuView
(
item
:
ActionMenuView
,
colorFilter
:
ColorFilter
)
{
private
fun
themeActionMenuView
(
item
:
ActionMenuView
,
colorFilter
:
ColorFilter
?
)
{
item
.
forEach
{
innerChild
->
if
(
innerChild
is
ActionMenuItemView
)
{
innerChild
.
compoundDrawables
.
forEach
{
drawable
->
...
...
app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/CollectionViewHolder.kt
View file @
5faa22d6
...
...
@@ -5,9 +5,10 @@
package
org.mozilla.fenix.home.sessioncontrol.viewholders
import
android.content.Context
import
android.graphics.PorterDuff.Mode.SRC_IN
import
android.view.View
import
android.view.ViewGroup
import
androidx.core.graphics.BlendModeColorFilterCompat.createBlendModeColorFilterCompat
import
androidx.core.graphics.BlendModeCompat.SRC_IN
import
androidx.recyclerview.widget.RecyclerView
import
kotlinx.android.extensions.LayoutContainer
import
kotlinx.android.synthetic.main.collection_home_list_row.*
...
...
@@ -89,7 +90,7 @@ class CollectionViewHolder(
view
.
collection_description
.
visibility
=
View
.
VISIBLE
}
view
.
collection_icon
.
set
ColorFilter
(
view
.
collection_icon
.
colorFilter
=
createBlendMode
ColorFilter
Compat
(
collection
.
getIconColor
(
view
.
context
),
SRC_IN
)
...
...
app/src/main/java/org/mozilla/fenix/search/awesomebar/AwesomeBarView.kt
View file @
5faa22d6
package
org.mozilla.fenix.search.awesomebar
/* This Source Code Form is subject to the terms of the Mozilla Public
License, v. 2.0. If a copy of the MPL was not distributed with this
file, You can obtain one at http://mozilla.org/MPL/2.0/. */
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
package
org.mozilla.fenix.search.awesomebar
import
android.graphics.PorterDuff.Mode.SRC_IN
import
android.graphics.PorterDuffColorFilter
import
android.view.LayoutInflater
import
android.view.View
import
android.view.ViewGroup
import
androidx.appcompat.content.res.AppCompatResources.getDrawable
import
androidx.core.graphics.BlendModeColorFilterCompat.createBlendModeColorFilterCompat
import
androidx.core.graphics.BlendModeCompat.SRC_IN
import
androidx.core.graphics.drawable.toBitmap
import
androidx.recyclerview.widget.RecyclerView
import
kotlinx.android.extensions.LayoutContainer
...
...
@@ -25,12 +26,12 @@ import mozilla.components.feature.awesomebar.provider.SessionSuggestionProvider
import
mozilla.components.feature.search.SearchUseCases
import
mozilla.components.feature.session.SessionUseCases
import
mozilla.components.feature.tabs.TabsUseCases
import
mozilla.components.support.ktx.android.content.getColorFromAttr
import
mozilla.components.support.ktx.android.view.hideKeyboard
import
org.mozilla.fenix.HomeActivity
import
org.mozilla.fenix.R
import
org.mozilla.fenix.ext.asActivity
import
org.mozilla.fenix.ext.components
import
org.mozilla.fenix.ext.getColorFromAttr
import
org.mozilla.fenix.search.SearchEngineSource
import
org.mozilla.fenix.search.SearchFragmentState
...
...
@@ -124,56 +125,56 @@ class AwesomeBarView(
init
{
view
.
itemAnimator
=
null
with
(
container
.
context
)
{
val
primaryTextColor
=
getColorFromAttr
(
R
.
attr
.
primaryText
)
val
draw
=
getDrawable
(
R
.
drawable
.
ic_link
)
!!
draw
.
setColorFilter
(
primaryTextColor
,
SRC_IN
)
sessionProvider
=
SessionSuggest
ionProvider
(
components
.
core
.
sessionManag
er
,
selectTabUseCase
,
components
.
core
.
icons
,
excludeSelectedSession
=
true
)
historyStorageProvider
=
H
istoryStorage
Suggestion
Provider
(
components
.
core
.
historyStorage
,
loadUrlUseCas
e
,
components
.
core
.
icons
)
bookmarksStorageSuggestionProvider
=
B
ookmarksStorageSuggestionProvider
(
components
.
core
.
bookmarksStorage
,
loadUrlUseCas
e
,
components
.
core
.
icons
)
val
searchDrawable
=
getDrawable
(
R
.
drawable
.
ic_search
)
!!
searchDrawable
.
setColorFilter
(
primaryTextColor
,
SRC_IN
)
defaultSearchSuggestionProvider
=
SearchSuggestionProvider
(
context
=
this
,
searchEngineManager
=
components
.
search
.
searchEngineManager
,
search
UseCase
=
search
U
se
Case
,
fetchClient
=
components
.
core
.
client
,
mode
=
SearchSuggestionProvider
.
Mode
.
MULTIPLE_SUGGESTIONS
,
limit
=
3
,
icon
=
searchDrawable
.
toBitmap
()
)
shortcutsEnginePickerProvider
=
ShortcutsSuggestion
Provider
(
components
.
search
.
p
rovider
,
this
,
interactor
::
onSearchShortcutEngineSelected
,
interactor
::
on
Click
SearchEngineSe
ttings
)
}
val
context
=
container
.
context
val
components
=
context
.
components
val
primaryTextColor
=
context
.
getColorFromAttr
(
R
.
attr
.
primaryText
)
val
draw
=
getDrawable
(
context
,
R
.
drawable
.
ic_link
)
!!
draw
.
colorFilter
=
createBlendModeColorFilterCompat
(
primaryTextColor
,
SRC_IN
)
sess
ionProvider
=
SessionSuggestionProvid
er
(
components
.
core
.
sessionManager
,
selectTabUseCase
,
components
.
core
.
icons
,
excludeSelectedSession
=
true
)
h
istoryStorageProvider
=
HistoryStorageSuggestionProvider
(
components
.
core
.
historyStorag
e
,
loadUrlUseCase
,
components
.
core
.
icons
)
b
ookmarksStorageSuggestionProvider
=
BookmarksStorageSuggestionProvider
(
components
.
core
.
bookmarksStorag
e
,
loadUrlUseCase
,
components
.
core
.
icons
)
val
searchDrawable
=
getDrawable
(
context
,
R
.
drawable
.
ic_search
)
!!
searchDrawable
.
colorFilter
=
createBlendModeColorFilterCompat
(
primaryTextColor
,
SRC_IN
)
default
SearchSuggestionProvider
=
SearchSuggestionProvider
(
context
=
context
,
search
EngineManager
=
components
.
search
.
se
archEngineManager
,
searchUseCase
=
searchUseCase
,
fetchClient
=
components
.
core
.
client
,
mode
=
SearchSuggestionProvider
.
Mode
.
MULTIPLE_SUGGESTIONS
,
limit
=
3
,
icon
=
searchDrawable
.
toBitmap
(
)
)
shortcutsEnginePicker
Provider
=
ShortcutsSuggestionP
rovider
(
searchEngineProvider
=
components
.
search
.
provider
,
context
=
context
,
selectShortcutEngine
=
interactor
::
onSearch
Shortcut
EngineSe
lected
,
selectShortcutEngineSettings
=
interactor
::
onClickSearchEngineSettings
)
searchSuggestionProviderMap
=
HashMap
()
search_shortcuts_button
.
setOnClickListener
{
...
...
@@ -324,25 +325,23 @@ class AwesomeBarView(
}
private
fun
getSuggestionProviderForEngine
(
engine
:
SearchEngine
):
SearchSuggestionProvider
?
{
if
(!
searchSuggestionProviderMap
.
containsKey
(
engine
))
{
with
(
container
.
context
)
{
val
draw
=
getDrawable
(
R
.
drawable
.
ic_search
)
draw
?.
colorFilter
=
PorterDuffColorFilter
(
getColorFromAttr
(
R
.
attr
.
primaryText
),
SRC_IN
)
searchSuggestionProviderMap
.
put
(
engine
,
SearchSuggestionProvider
(
components
.
search
.
provider
.
installedSearchEngines
(
this
).
list
.
find
{
it
.
name
==
engine
.
name
}
?:
components
.
search
.
provider
.
getDefaultEngine
(
this
),
shortcutSearchUseCase
,
components
.
core
.
client
,
limit
=
3
,
mode
=
SearchSuggestionProvider
.
Mode
.
MULTIPLE_SUGGESTIONS
,
icon
=
draw
?.
toBitmap
()
)
)
}
return
searchSuggestionProviderMap
.
getOrPut
(
engine
)
{
val
context
=
container
.
context
val
components
=
context
.
components
val
primaryTextColor
=
context
.
getColorFromAttr
(
R
.
attr
.
primaryText
)
val
draw
=
getDrawable
(
context
,
R
.
drawable
.
ic_search
)
draw
?.
colorFilter
=
createBlendModeColorFilterCompat
(
primaryTextColor
,
SRC_IN
)
SearchSuggestionProvider
(
components
.
search
.
provider
.
installedSearchEngines
(
context
).
list
.
find
{
it
.
name
==
engine
.
name
}
?:
components
.
search
.
provider
.
getDefaultEngine
(
context
),
shortcutSearchUseCase
,
components
.
core
.
client
,
limit
=
3
,
mode
=
SearchSuggestionProvider
.
Mode
.
MULTIPLE_SUGGESTIONS
,
icon
=
draw
?.
toBitmap
()
)
}
return
searchSuggestionProviderMap
[
engine
]
}
}
app/src/main/java/org/mozilla/fenix/share/viewholders/AccountDeviceViewHolder.kt
View file @
5faa22d6
...
...
@@ -5,10 +5,11 @@
package
org.mozilla.fenix.share.viewholders
import
android.content.Context
import
android.graphics.PorterDuff
import
android.view.View
import
androidx.annotation.VisibleForTesting
import
androidx.core.content.ContextCompat
import
androidx.core.content.ContextCompat.getColor
import
androidx.core.graphics.BlendModeColorFilterCompat.createBlendModeColorFilterCompat
import
androidx.core.graphics.BlendModeCompat.SRC_IN
import
androidx.recyclerview.widget.RecyclerView
import
kotlinx.android.synthetic.main.account_share_list_item.view.*
import
mozilla.components.concept.sync.DeviceType
...
...
@@ -51,8 +52,8 @@ class AccountDeviceViewHolder(
itemView
.
deviceIcon
.
apply
{
setImageResource
(
drawableRes
)
background
.
setC
olorFilter
(
Context
Compat
.
getColor
(
context
,
colorRes
),
PorterDuff
.
Mode
.
SRC_IN
)
drawable
.
setTint
(
ContextCompat
.
getColor
(
context
,
R
.
color
.
device_foreground
))
background
.
c
olorFilter
=
createBlendModeColorFilter
Compat
(
getColor
(
context
,
colorRes
),
SRC_IN
)
drawable
.
setTint
(
getColor
(
context
,
R
.
color
.
device_foreground
))
}
itemView
.
isClickable
=
option
!=
SyncShareOption
.
Offline
itemView
.
deviceName
.
text
=
name
...
...
app/src/main/java/org/mozilla/fenix/utils/ClearableEditText.kt
View file @
5faa22d6
...
...
@@ -6,13 +6,13 @@ package org.mozilla.fenix.utils
import
android.annotation.SuppressLint
import
android.content.Context
import
android.graphics.PorterDuff.Mode.SRC_IN
import
android.graphics.PorterDuffColorFilter
import
android.util.AttributeSet
import
android.view.MotionEvent
import
android.view.MotionEvent.ACTION_UP
import
androidx.appcompat.content.res.AppCompatResources
import
androidx.appcompat.widget.AppCompatEditText
import
androidx.core.graphics.BlendModeColorFilterCompat.createBlendModeColorFilterCompat
import
androidx.core.graphics.BlendModeCompat.SRC_IN
import
mozilla.components.support.ktx.android.view.putCompoundDrawablesRelativeWithIntrinsicBounds
import
org.mozilla.fenix.R
import
org.mozilla.fenix.ext.getColorFromAttr
...
...
@@ -46,10 +46,9 @@ class ClearableEditText @JvmOverloads constructor(
* Displays a clear icon if text has been entered.
*/
override
fun
onTextChanged
(
text
:
CharSequence
?,
start
:
Int
,
lengthBefore
:
Int
,
lengthAfter
:
Int
)
{
super
.
onTextChanged
(
text
,
start
,
lengthBefore
,
lengthAfter
)
val
drawable
=
if
(
shouldShowClearButton
(
lengthAfter
))
{
AppCompatResources
.
getDrawable
(
context
,
R
.
drawable
.
ic_clear
)
?.
apply
{
colorFilter
=
PorterDuff
ColorFilter
(
context
.
getColorFromAttr
(
R
.
attr
.
primaryText
),
SRC_IN
)
colorFilter
=
createBlendMode
ColorFilter
Compat
(
context
.
getColorFromAttr
(
R
.
attr
.
primaryText
),
SRC_IN
)
}
}
else
{
null
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment