1
0
Fork 0

For #5213 - Use support library attributes

master
Tiger Oakes 2019-10-04 22:20:58 -07:00 committed by Emily Kager
parent 80a1e6dd2c
commit d028c97112
15 changed files with 54 additions and 113 deletions

View File

@ -18,18 +18,17 @@ import android.view.ViewGroup
import androidx.annotation.AttrRes import androidx.annotation.AttrRes
import androidx.annotation.ColorInt import androidx.annotation.ColorInt
import androidx.annotation.StringRes import androidx.annotation.StringRes
import androidx.core.content.ContextCompat
import androidx.fragment.app.FragmentActivity import androidx.fragment.app.FragmentActivity
import mozilla.components.browser.search.SearchEngineManager import mozilla.components.browser.search.SearchEngineManager
import mozilla.components.support.base.log.Log import mozilla.components.support.base.log.Log
import mozilla.components.support.base.log.Log.Priority.WARN import mozilla.components.support.base.log.Log.Priority.WARN
import mozilla.components.support.ktx.android.content.getColorFromAttr
import org.mozilla.fenix.BuildConfig import org.mozilla.fenix.BuildConfig
import org.mozilla.fenix.Config import org.mozilla.fenix.Config
import org.mozilla.fenix.FenixApplication import org.mozilla.fenix.FenixApplication
import org.mozilla.fenix.R import org.mozilla.fenix.R
import org.mozilla.fenix.components.Components import org.mozilla.fenix.components.Components
import org.mozilla.fenix.components.metrics.MetricController import org.mozilla.fenix.components.metrics.MetricController
import org.mozilla.fenix.theme.ThemeManager
import org.mozilla.fenix.utils.Settings import org.mozilla.fenix.utils.Settings
/** /**
@ -106,8 +105,7 @@ fun Context.getRootView(): View? =
* Returns the color int corresponding to the attribute. * Returns the color int corresponding to the attribute.
*/ */
@ColorInt @ColorInt
fun Context.getColorFromAttr(@AttrRes attr: Int) = fun Context.getColorFromAttr(@AttrRes attr: Int) = getColorFromAttr(attr)
ContextCompat.getColor(this, ThemeManager.resolveAttribute(attr, this))
fun Context.settings(isCrashReportEnabledInBuild: Boolean = BuildConfig.CRASH_REPORTING && Config.channel.isReleased) = fun Context.settings(isCrashReportEnabledInBuild: Boolean = BuildConfig.CRASH_REPORTING && Config.channel.isReleased) =
Settings.getInstance(this, isCrashReportEnabledInBuild) Settings.getInstance(this, isCrashReportEnabledInBuild)

View File

@ -19,9 +19,9 @@ import androidx.fragment.app.Fragment
import androidx.navigation.Navigation import androidx.navigation.Navigation
import kotlinx.android.synthetic.main.fragment_library.* import kotlinx.android.synthetic.main.fragment_library.*
import mozilla.appservices.places.BookmarkRoot import mozilla.appservices.places.BookmarkRoot
import mozilla.components.support.ktx.android.content.getColorFromAttr
import org.mozilla.fenix.R import org.mozilla.fenix.R
import org.mozilla.fenix.components.metrics.Event import org.mozilla.fenix.components.metrics.Event
import org.mozilla.fenix.ext.getColorFromAttr
import org.mozilla.fenix.ext.nav import org.mozilla.fenix.ext.nav
import org.mozilla.fenix.ext.requireComponents import org.mozilla.fenix.ext.requireComponents

View File

@ -21,9 +21,9 @@ import androidx.core.view.forEach
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import kotlinx.android.extensions.LayoutContainer import kotlinx.android.extensions.LayoutContainer
import kotlinx.android.synthetic.main.library_site_item.view.* import kotlinx.android.synthetic.main.library_site_item.view.*
import mozilla.components.support.ktx.android.content.getColorFromAttr
import org.mozilla.fenix.R import org.mozilla.fenix.R
import org.mozilla.fenix.ext.asActivity import org.mozilla.fenix.ext.asActivity
import org.mozilla.fenix.ext.getColorFromAttr
open class LibraryPageView( open class LibraryPageView(
override val containerView: ViewGroup override val containerView: ViewGroup
@ -40,8 +40,8 @@ open class LibraryPageView(
context.getColorFromAttr(R.attr.primaryText), context.getColorFromAttr(R.attr.primaryText),
context.getColorFromAttr(R.attr.foundation) context.getColorFromAttr(R.attr.foundation)
) )
libraryItemsList.children.forEach { libraryItemsList.children.forEach { item ->
item -> item.overflow_menu.visibility = View.VISIBLE item.overflow_menu.visibility = View.VISIBLE
} }
} }
@ -54,8 +54,8 @@ open class LibraryPageView(
ContextCompat.getColor(context, R.color.white_color), ContextCompat.getColor(context, R.color.white_color),
context.getColorFromAttr(R.attr.accentHighContrast) context.getColorFromAttr(R.attr.accentHighContrast)
) )
libraryItemsList.children.forEach { libraryItemsList.children.forEach { item ->
item -> item.overflow_menu.visibility = View.INVISIBLE item.overflow_menu.visibility = View.INVISIBLE
} }
} }

View File

@ -18,16 +18,16 @@ import androidx.lifecycle.lifecycleScope
import androidx.navigation.NavDirections import androidx.navigation.NavDirections
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import kotlinx.android.synthetic.main.fragment_bookmark.view.* import kotlinx.android.synthetic.main.fragment_bookmark.view.*
import kotlinx.coroutines.async
import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers.IO import kotlinx.coroutines.Dispatchers.IO
import kotlinx.coroutines.Dispatchers.Main import kotlinx.coroutines.Dispatchers.Main
import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.Job import kotlinx.coroutines.Job
import kotlinx.coroutines.ObsoleteCoroutinesApi import kotlinx.coroutines.ObsoleteCoroutinesApi
import kotlinx.coroutines.async
import kotlinx.coroutines.awaitAll
import kotlinx.coroutines.isActive import kotlinx.coroutines.isActive
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import kotlinx.coroutines.awaitAll
import kotlinx.coroutines.withContext import kotlinx.coroutines.withContext
import mozilla.appservices.places.BookmarkRoot import mozilla.appservices.places.BookmarkRoot
import mozilla.components.concept.storage.BookmarkNode import mozilla.components.concept.storage.BookmarkNode
@ -248,12 +248,9 @@ class BookmarkFragment : LibraryPageFragment<BookmarkNode>(), BackHandler {
private suspend fun deleteSelectedBookmarks(selected: Set<BookmarkNode>) { private suspend fun deleteSelectedBookmarks(selected: Set<BookmarkNode>) {
CoroutineScope(IO).launch { CoroutineScope(IO).launch {
val tempStorage = context?.bookmarkStorage val tempStorage = context?.bookmarkStorage
val deferreds = selected.map { selected.map {
async { async { tempStorage?.deleteNode(it.guid) }
tempStorage?.deleteNode(it.guid) }.awaitAll()
}
}
deferreds.awaitAll()
} }
} }

View File

@ -4,8 +4,6 @@
package org.mozilla.fenix.library.bookmarks.addfolder package org.mozilla.fenix.library.bookmarks.addfolder
import android.graphics.PorterDuff
import android.graphics.PorterDuffColorFilter
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.Menu import android.view.Menu
@ -26,7 +24,6 @@ import kotlinx.coroutines.launch
import mozilla.appservices.places.BookmarkRoot import mozilla.appservices.places.BookmarkRoot
import org.mozilla.fenix.R import org.mozilla.fenix.R
import org.mozilla.fenix.components.metrics.Event import org.mozilla.fenix.components.metrics.Event
import org.mozilla.fenix.ext.getColorFromAttr
import org.mozilla.fenix.ext.nav import org.mozilla.fenix.ext.nav
import org.mozilla.fenix.ext.requireComponents import org.mozilla.fenix.ext.requireComponents
import org.mozilla.fenix.library.bookmarks.BookmarksSharedViewModel import org.mozilla.fenix.library.bookmarks.BookmarksSharedViewModel
@ -73,9 +70,6 @@ class AddBookmarkFolderFragment : Fragment() {
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) { override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
inflater.inflate(R.menu.bookmarks_add_folder, menu) inflater.inflate(R.menu.bookmarks_add_folder, menu)
val textColor = requireContext().getColorFromAttr(R.attr.primaryText)
menu.findItem(R.id.confirm_add_folder_button).icon.colorFilter =
PorterDuffColorFilter(textColor, PorterDuff.Mode.SRC_IN)
} }
override fun onOptionsItemSelected(item: MenuItem): Boolean { override fun onOptionsItemSelected(item: MenuItem): Boolean {

View File

@ -5,8 +5,6 @@
package org.mozilla.fenix.library.bookmarks.edit package org.mozilla.fenix.library.bookmarks.edit
import android.content.DialogInterface import android.content.DialogInterface
import android.graphics.PorterDuff
import android.graphics.PorterDuffColorFilter
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.Menu import android.view.Menu
@ -42,7 +40,6 @@ import org.mozilla.fenix.R
import org.mozilla.fenix.components.FenixSnackbar import org.mozilla.fenix.components.FenixSnackbar
import org.mozilla.fenix.components.metrics.Event import org.mozilla.fenix.components.metrics.Event
import org.mozilla.fenix.ext.components import org.mozilla.fenix.ext.components
import org.mozilla.fenix.ext.getColorFromAttr
import org.mozilla.fenix.ext.getRootView import org.mozilla.fenix.ext.getRootView
import org.mozilla.fenix.ext.nav import org.mozilla.fenix.ext.nav
import org.mozilla.fenix.ext.requireComponents import org.mozilla.fenix.ext.requireComponents
@ -150,9 +147,6 @@ class EditBookmarkFragment : Fragment() {
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) { override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
inflater.inflate(R.menu.bookmarks_edit, menu) inflater.inflate(R.menu.bookmarks_edit, menu)
val textColor = requireContext().getColorFromAttr(R.attr.primaryText)
menu.findItem(R.id.delete_bookmark_button).icon.colorFilter =
PorterDuffColorFilter(textColor, PorterDuff.Mode.SRC_IN)
} }
override fun onOptionsItemSelected(item: MenuItem): Boolean { override fun onOptionsItemSelected(item: MenuItem): Boolean {

View File

@ -5,8 +5,6 @@
package org.mozilla.fenix.library.history package org.mozilla.fenix.library.history
import android.content.DialogInterface import android.content.DialogInterface
import android.graphics.PorterDuff.Mode.SRC_IN
import android.graphics.PorterDuffColorFilter
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.Menu import android.view.Menu
@ -14,9 +12,9 @@ import android.view.MenuInflater
import android.view.MenuItem import android.view.MenuItem
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.annotation.MenuRes
import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AlertDialog
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.core.content.ContextCompat
import androidx.lifecycle.Observer import androidx.lifecycle.Observer
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import kotlinx.android.synthetic.main.fragment_history.view.* import kotlinx.android.synthetic.main.fragment_history.view.*
@ -133,22 +131,15 @@ class HistoryFragment : LibraryPageFragment<HistoryItem>(), BackHandler {
} }
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) { override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
val mode = historyStore.state.mode @MenuRes
when (mode) { val menuRes = when (historyStore.state.mode) {
HistoryFragmentState.Mode.Normal -> R.menu.library_menu HistoryFragmentState.Mode.Normal -> R.menu.library_menu
is HistoryFragmentState.Mode.Editing -> R.menu.history_select_multi is HistoryFragmentState.Mode.Editing -> R.menu.history_select_multi
else -> null else -> return
}?.let { inflater.inflate(it, menu) }
if (mode is HistoryFragmentState.Mode.Editing) {
menu.findItem(R.id.share_history_multi_select)?.run {
isVisible = true
icon.colorFilter = PorterDuffColorFilter(
ContextCompat.getColor(context!!, R.color.white_color),
SRC_IN
)
}
} }
inflater.inflate(menuRes, menu)
menu.findItem(R.id.share_history_multi_select)?.isVisible = true
} }
override fun onOptionsItemSelected(item: MenuItem): Boolean = when (item.itemId) { override fun onOptionsItemSelected(item: MenuItem): Boolean = when (item.itemId) {

View File

@ -3,13 +3,11 @@
- License, v. 2.0. If a copy of the MPL was not distributed with this - 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/. --> - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
<menu xmlns:android="http://schemas.android.com/apk/res/android" <menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto">
xmlns:tools="http://schemas.android.com/tools">
<item <item
android:id="@+id/confirm_add_folder_button" android:id="@+id/confirm_add_folder_button"
android:icon="@drawable/mozac_ic_check" android:icon="@drawable/mozac_ic_check"
android:iconTint="?primaryText" app:iconTint="?primaryText"
android:title="@string/bookmark_add_folder" android:title="@string/bookmark_add_folder"
app:showAsAction="ifRoom" app:showAsAction="ifRoom" />
tools:targetApi="o" />
</menu> </menu>

View File

@ -3,14 +3,12 @@
- License, v. 2.0. If a copy of the MPL was not distributed with this - 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/. --> - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
<menu xmlns:android="http://schemas.android.com/apk/res/android" <menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto">
xmlns:tools="http://schemas.android.com/tools">
<item <item
android:id="@+id/delete_bookmark_button" android:id="@+id/delete_bookmark_button"
android:icon="@drawable/ic_delete" android:icon="@drawable/ic_delete"
android:iconTint="?primaryText" app:iconTint="?primaryText"
android:title="@string/bookmark_menu_delete_button" android:title="@string/bookmark_menu_delete_button"
android:contentDescription="@string/bookmark_menu_delete_button" android:contentDescription="@string/bookmark_menu_delete_button"
app:showAsAction="ifRoom" app:showAsAction="ifRoom" />
tools:targetApi="o" />
</menu> </menu>

View File

@ -3,20 +3,17 @@
- License, v. 2.0. If a copy of the MPL was not distributed with this - 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/. --> - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
<menu xmlns:android="http://schemas.android.com/apk/res/android" <menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto">
xmlns:tools="http://schemas.android.com/tools">
<item <item
android:id="@+id/add_bookmark_folder" android:id="@+id/add_bookmark_folder"
android:icon="@drawable/ic_folder_new" android:icon="@drawable/ic_folder_new"
android:iconTint="?primaryText" app:iconTint="?primaryText"
android:title="@string/bookmark_add_folder" android:title="@string/bookmark_add_folder"
app:showAsAction="ifRoom" app:showAsAction="ifRoom" />
tools:targetApi="o" />
<item <item
android:id="@+id/libraryClose" android:id="@+id/libraryClose"
android:icon="@drawable/ic_close" android:icon="@drawable/ic_close"
android:iconTint="?primaryText" app:iconTint="?primaryText"
android:title="@string/content_description_close_button" android:title="@string/content_description_close_button"
app:showAsAction="ifRoom" app:showAsAction="ifRoom" />
tools:targetApi="o" />
</menu> </menu>

View File

@ -3,13 +3,11 @@
- License, v. 2.0. If a copy of the MPL was not distributed with this - 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/. --> - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
<menu xmlns:android="http://schemas.android.com/apk/res/android" <menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto">
xmlns:tools="http://schemas.android.com/tools">
<item <item
android:id="@+id/add_folder_button" android:id="@+id/add_folder_button"
android:icon="@drawable/ic_new" android:icon="@drawable/ic_new"
android:iconTint="?primaryText" app:iconTint="?primaryText"
android:title="@string/bookmark_select_folder" android:title="@string/bookmark_select_folder"
app:showAsAction="ifRoom" app:showAsAction="ifRoom" />
tools:targetApi="o" />
</menu> </menu>

View File

@ -2,34 +2,24 @@
<!-- This Source Code Form is subject to the terms of the Mozilla Public <!-- 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 - 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/. --> - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" <menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"> xmlns:app="http://schemas.android.com/apk/res-auto">
<item <item
android:id="@+id/edit_bookmark_multi_select" android:id="@+id/edit_bookmark_multi_select"
android:icon="@drawable/ic_edit" android:icon="@drawable/ic_edit"
android:iconTint="@color/white_color" app:iconTint="@color/white_color"
android:title="@string/bookmark_edit" android:title="@string/bookmark_edit"
app:showAsAction="ifRoom" app:showAsAction="ifRoom" />
tools:targetApi="o" />
<item <item
android:id="@+id/open_bookmarks_in_new_tabs_multi_select" android:id="@+id/open_bookmarks_in_new_tabs_multi_select"
android:icon="@drawable/ic_new"
android:iconTint="?primaryText"
android:title="@string/bookmark_menu_open_in_new_tab_button" android:title="@string/bookmark_menu_open_in_new_tab_button"
app:showAsAction="never" app:showAsAction="never" />
tools:targetApi="o" />
<item <item
android:id="@+id/open_bookmarks_in_private_tabs_multi_select" android:id="@+id/open_bookmarks_in_private_tabs_multi_select"
android:icon="@drawable/ic_new"
android:iconTint="?primaryText"
android:title="@string/bookmark_menu_open_in_private_tab_button" android:title="@string/bookmark_menu_open_in_private_tab_button"
app:showAsAction="never" app:showAsAction="never" />
tools:targetApi="o" />
<item <item
android:id="@+id/delete_bookmarks_multi_select" android:id="@+id/delete_bookmarks_multi_select"
android:icon="@drawable/ic_new"
android:iconTint="?primaryText"
android:title="@string/bookmark_menu_delete_button" android:title="@string/bookmark_menu_delete_button"
app:showAsAction="never" app:showAsAction="never" />
tools:targetApi="o" />
</menu> </menu>

View File

@ -2,13 +2,12 @@
<!-- This Source Code Form is subject to the terms of the Mozilla Public <!-- 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 - 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/. --> - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" <menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"> xmlns:app="http://schemas.android.com/apk/res-auto">
<item <item
android:id="@+id/delete_bookmarks_multi_select" android:id="@+id/delete_bookmarks_multi_select"
android:icon="@drawable/mozac_ic_delete" android:icon="@drawable/mozac_ic_delete"
android:iconTint="?primaryText" app:iconTint="@color/white_color"
android:title="@string/bookmark_menu_delete_button" android:title="@string/bookmark_menu_delete_button"
app:showAsAction="ifRoom" app:showAsAction="ifRoom" />
tools:targetApi="o" />
</menu> </menu>

View File

@ -3,34 +3,23 @@
- License, v. 2.0. If a copy of the MPL was not distributed with this - 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/. --> - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
<menu xmlns:android="http://schemas.android.com/apk/res/android" <menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto">
xmlns:tools="http://schemas.android.com/tools">
<item <item
android:id="@+id/share_history_multi_select" android:id="@+id/share_history_multi_select"
android:icon="@drawable/ic_hollow_share" android:icon="@drawable/ic_hollow_share"
android:iconTint="?primaryText" app:iconTint="@color/white_color"
android:title="@string/browser_menu_share" android:title="@string/browser_menu_share"
app:showAsAction="ifRoom" app:showAsAction="ifRoom" />
tools:targetApi="o" />
<item <item
android:id="@+id/open_history_in_new_tabs_multi_select" android:id="@+id/open_history_in_new_tabs_multi_select"
android:icon="@drawable/ic_new"
android:iconTint="?primaryText"
android:title="@string/bookmark_menu_open_in_new_tab_button" android:title="@string/bookmark_menu_open_in_new_tab_button"
app:showAsAction="never" app:showAsAction="never" />
tools:targetApi="o" />
<item <item
android:id="@+id/open_history_in_private_tabs_multi_select" android:id="@+id/open_history_in_private_tabs_multi_select"
android:icon="@drawable/ic_new"
android:iconTint="?primaryText"
android:title="@string/bookmark_menu_open_in_private_tab_button" android:title="@string/bookmark_menu_open_in_private_tab_button"
app:showAsAction="never" app:showAsAction="never" />
tools:targetApi="o" />
<item <item
android:id="@+id/delete_history_multi_select" android:id="@+id/delete_history_multi_select"
android:icon="@drawable/ic_new"
android:iconTint="?primaryText"
android:title="@string/bookmark_menu_delete_button" android:title="@string/bookmark_menu_delete_button"
app:showAsAction="never" app:showAsAction="never" />
tools:targetApi="o" />
</menu> </menu>

View File

@ -3,13 +3,11 @@
- License, v. 2.0. If a copy of the MPL was not distributed with this - 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/. --> - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
<menu xmlns:android="http://schemas.android.com/apk/res/android" <menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto">
xmlns:tools="http://schemas.android.com/tools">
<item <item
android:id="@+id/libraryClose" android:id="@+id/libraryClose"
android:icon="@drawable/ic_close" android:icon="@drawable/ic_close"
android:iconTint="?primaryText" app:iconTint="?primaryText"
android:title="@string/content_description_close_button" android:title="@string/content_description_close_button"
app:showAsAction="ifRoom" app:showAsAction="ifRoom" />
tools:targetApi="o" />
</menu> </menu>