diff --git a/app/src/main/java/org/mozilla/fenix/components/metrics/Metrics.kt b/app/src/main/java/org/mozilla/fenix/components/metrics/Metrics.kt index c09c93add..48f5bde91 100644 --- a/app/src/main/java/org/mozilla/fenix/components/metrics/Metrics.kt +++ b/app/src/main/java/org/mozilla/fenix/components/metrics/Metrics.kt @@ -411,7 +411,8 @@ sealed class Event { SETTINGS, LIBRARY, HELP, DESKTOP_VIEW_ON, DESKTOP_VIEW_OFF, FIND_IN_PAGE, NEW_TAB, NEW_PRIVATE_TAB, SHARE, REPORT_SITE_ISSUE, BACK, FORWARD, RELOAD, STOP, OPEN_IN_FENIX, SAVE_TO_COLLECTION, ADD_TO_TOP_SITES, ADD_TO_HOMESCREEN, QUIT, READER_MODE_ON, - READER_MODE_OFF, OPEN_IN_APP, BOOKMARK, READER_MODE_APPEARANCE, ADDONS_MANAGER + READER_MODE_OFF, OPEN_IN_APP, BOOKMARK, READER_MODE_APPEARANCE, ADDONS_MANAGER, + BOOKMARKS, HISTORY } override val extras: Map? diff --git a/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarController.kt b/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarController.kt index f3b3ce6d8..887071805 100644 --- a/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarController.kt +++ b/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarController.kt @@ -16,6 +16,7 @@ import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.MainScope import kotlinx.coroutines.delay import kotlinx.coroutines.launch +import mozilla.appservices.places.BookmarkRoot import mozilla.components.browser.session.Session import mozilla.components.browser.session.SessionManager import mozilla.components.browser.state.selector.findTab @@ -156,10 +157,6 @@ class DefaultBrowserToolbarController( val directions = BrowserFragmentDirections.actionBrowserFragmentToSettingsFragment() navController.nav(R.id.browserFragment, directions) } - ToolbarMenu.Item.Library -> browserAnimator.captureEngineViewAndDrawStatically { - val directions = BrowserFragmentDirections.actionBrowserFragmentToLibraryFragment() - navController.nav(R.id.browserFragment, directions) - } is ToolbarMenu.Item.RequestDesktop -> sessionUseCases.requestDesktopSite.invoke( item.isChecked, currentSession @@ -310,6 +307,18 @@ class DefaultBrowserToolbarController( bookmarkTapped(it) } } + ToolbarMenu.Item.Bookmarks -> { + navController.nav( + R.id.browserFragment, + BrowserFragmentDirections.actionGlobalBookmarkFragment(BookmarkRoot.Mobile.id) + ) + } + ToolbarMenu.Item.History -> { + navController.nav( + R.id.browserFragment, + BrowserFragmentDirections.actionGlobalHistoryFragment() + ) + } } } @@ -350,7 +359,6 @@ class DefaultBrowserToolbarController( ToolbarMenu.Item.Reload -> Event.BrowserMenuItemTapped.Item.RELOAD ToolbarMenu.Item.Stop -> Event.BrowserMenuItemTapped.Item.STOP ToolbarMenu.Item.Settings -> Event.BrowserMenuItemTapped.Item.SETTINGS - ToolbarMenu.Item.Library -> Event.BrowserMenuItemTapped.Item.LIBRARY is ToolbarMenu.Item.RequestDesktop -> if (item.isChecked) { Event.BrowserMenuItemTapped.Item.DESKTOP_VIEW_ON @@ -378,6 +386,8 @@ class DefaultBrowserToolbarController( ToolbarMenu.Item.OpenInApp -> Event.BrowserMenuItemTapped.Item.OPEN_IN_APP ToolbarMenu.Item.Bookmark -> Event.BrowserMenuItemTapped.Item.BOOKMARK ToolbarMenu.Item.AddonsManager -> Event.BrowserMenuItemTapped.Item.ADDONS_MANAGER + ToolbarMenu.Item.Bookmarks -> Event.BrowserMenuItemTapped.Item.BOOKMARKS + ToolbarMenu.Item.History -> Event.BrowserMenuItemTapped.Item.HISTORY } activity.components.analytics.metrics.track(Event.BrowserMenuItemTapped(eventItem)) diff --git a/app/src/main/java/org/mozilla/fenix/components/toolbar/DefaultToolbarMenu.kt b/app/src/main/java/org/mozilla/fenix/components/toolbar/DefaultToolbarMenu.kt index 1bed2b308..8234266dd 100644 --- a/app/src/main/java/org/mozilla/fenix/components/toolbar/DefaultToolbarMenu.kt +++ b/app/src/main/java/org/mozilla/fenix/components/toolbar/DefaultToolbarMenu.kt @@ -184,7 +184,8 @@ class DefaultToolbarMenu( ) val menuItems = listOfNotNull( - library, + historyItem, + bookmarksItem, addons, settings, if (shouldDeleteDataOnQuit) deleteDataOnQuit else null, @@ -237,14 +238,6 @@ class DefaultToolbarMenu( onItemTapped.invoke(ToolbarMenu.Item.Settings) } - private val library = BrowserMenuImageText( - label = context.getString(R.string.browser_menu_library), - imageResource = R.drawable.ic_library, - iconTintColorResource = primaryTextColor() - ) { - onItemTapped.invoke(ToolbarMenu.Item.Library) - } - private val desktopMode = BrowserMenuImageSwitch( imageResource = R.drawable.ic_desktop, label = context.getString(R.string.browser_menu_desktop_site), @@ -356,6 +349,22 @@ class DefaultToolbarMenu( onItemTapped.invoke(ToolbarMenu.Item.OpenInApp) } + val historyItem = BrowserMenuImageText( + context.getString(R.string.library_history), + R.drawable.ic_history, + primaryTextColor() + ) { + onItemTapped.invoke(ToolbarMenu.Item.History) + } + + val bookmarksItem = BrowserMenuImageText( + context.getString(R.string.library_bookmarks), + R.drawable.ic_bookmark_filled, + primaryTextColor() + ) { + onItemTapped.invoke(ToolbarMenu.Item.Bookmarks) + } + @ColorRes private fun primaryTextColor() = ThemeManager.resolveAttribute(R.attr.primaryText, context) diff --git a/app/src/main/java/org/mozilla/fenix/components/toolbar/ToolbarMenu.kt b/app/src/main/java/org/mozilla/fenix/components/toolbar/ToolbarMenu.kt index 2335262b5..82224b52d 100644 --- a/app/src/main/java/org/mozilla/fenix/components/toolbar/ToolbarMenu.kt +++ b/app/src/main/java/org/mozilla/fenix/components/toolbar/ToolbarMenu.kt @@ -10,7 +10,6 @@ import mozilla.components.browser.menu.item.BrowserMenuItemToolbar interface ToolbarMenu { sealed class Item { object Settings : Item() - object Library : Item() data class RequestDesktop(val isChecked: Boolean) : Item() object FindInPage : Item() object Share : Item() @@ -30,6 +29,8 @@ interface ToolbarMenu { object OpenInApp : Item() object Bookmark : Item() object ReaderModeAppearance : Item() + object Bookmarks : Item() + object History : Item() } val menuBuilder: BrowserMenuBuilder diff --git a/app/src/main/java/org/mozilla/fenix/home/HomeMenu.kt b/app/src/main/java/org/mozilla/fenix/home/HomeMenu.kt index a5ceafd3b..ef782d798 100644 --- a/app/src/main/java/org/mozilla/fenix/home/HomeMenu.kt +++ b/app/src/main/java/org/mozilla/fenix/home/HomeMenu.kt @@ -11,7 +11,6 @@ import androidx.lifecycle.LifecycleOwner import mozilla.components.browser.menu.BrowserMenuBuilder import mozilla.components.browser.menu.BrowserMenuHighlight import mozilla.components.browser.menu.ext.getHighlight -import mozilla.components.browser.menu.item.BrowserMenuCategory import mozilla.components.browser.menu.item.BrowserMenuDivider import mozilla.components.browser.menu.item.BrowserMenuHighlightableItem import mozilla.components.browser.menu.item.BrowserMenuImageText @@ -37,7 +36,6 @@ class HomeMenu( object WhatsNew : Item() object Help : Item() object Settings : Item() - object Library : Item() object History : Item() object Bookmarks : Item() object Quit : Item() @@ -138,10 +136,6 @@ class HomeMenu( accountAuthItem, whatsNewItem, BrowserMenuDivider(), - BrowserMenuCategory( - context.getString(R.string.browser_menu_library), - textColorResource = menuCategoryTextColor - ), bookmarksItem, historyItem, BrowserMenuDivider(), @@ -158,10 +152,6 @@ class HomeMenu( settingsItem, accountAuthItem, BrowserMenuDivider(), - BrowserMenuCategory( - context.getString(R.string.browser_menu_library), - textColorResource = menuCategoryTextColor - ), bookmarksItem, historyItem, BrowserMenuDivider(), diff --git a/app/src/main/java/org/mozilla/fenix/library/LibraryFragment.kt b/app/src/main/java/org/mozilla/fenix/library/LibraryFragment.kt deleted file mode 100644 index da8112fd6..000000000 --- a/app/src/main/java/org/mozilla/fenix/library/LibraryFragment.kt +++ /dev/null @@ -1,82 +0,0 @@ -/* 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/. */ - -package org.mozilla.fenix.library - -import android.os.Bundle -import android.view.Menu -import android.view.MenuInflater -import android.view.View -import androidx.appcompat.app.AppCompatActivity -import androidx.appcompat.widget.Toolbar -import androidx.fragment.app.Fragment -import kotlinx.android.synthetic.main.fragment_library.* -import mozilla.appservices.places.BookmarkRoot -import mozilla.components.support.ktx.android.content.getColorFromAttr -import org.mozilla.fenix.R -import org.mozilla.fenix.components.metrics.Event -import org.mozilla.fenix.ext.nav -import org.mozilla.fenix.ext.requireComponents -import org.mozilla.fenix.ext.setToolbarColors -import org.mozilla.fenix.ext.showToolbar - -/** - * Displays buttons to navigate to library sections, such as bookmarks and history. - */ -class LibraryFragment : Fragment(R.layout.fragment_library) { - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - setHasOptionsMenu(true) - } - - override fun onResume() { - super.onResume() - initToolbar() - } - - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - super.onViewCreated(view, savedInstanceState) - - libraryHistory.setOnClickListener { - requireComponents.analytics.metrics - .track(Event.LibrarySelectedItem(Event.LibrarySelectedItem.LibraryItem.HISTORY)) - nav( - R.id.libraryFragment, - LibraryFragmentDirections.actionLibraryFragmentToHistoryFragment() - ) - } - - libraryBookmarks.setOnClickListener { - requireComponents.analytics.metrics - .track(Event.LibrarySelectedItem(Event.LibrarySelectedItem.LibraryItem.BOOKMARKS)) - nav( - R.id.libraryFragment, - LibraryFragmentDirections.actionLibraryFragmentToBookmarksFragment(BookmarkRoot.Mobile.id) - ) - } - - requireComponents.analytics.metrics.track(Event.LibraryOpened) - } - - override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) { - inflater.inflate(R.menu.library_menu, menu) - } - - override fun onDestroy() { - super.onDestroy() - requireComponents.analytics.metrics.track(Event.LibraryClosed) - } - - private fun initToolbar() { - (activity as? AppCompatActivity)?.let { activity -> - val toolbar = activity.findViewById(R.id.navigationToolbar) - toolbar?.setToolbarColors( - foreground = activity.getColorFromAttr(R.attr.primaryText), - background = activity.getColorFromAttr(R.attr.foundation) - ) - showToolbar(getString(R.string.library_title)) - } - } -} diff --git a/app/src/main/java/org/mozilla/fenix/library/LibraryListItem.kt b/app/src/main/java/org/mozilla/fenix/library/LibraryListItem.kt deleted file mode 100644 index aa2f429f9..000000000 --- a/app/src/main/java/org/mozilla/fenix/library/LibraryListItem.kt +++ /dev/null @@ -1,38 +0,0 @@ -/* 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/. */ - -package org.mozilla.fenix.library - -import android.content.Context -import android.util.AttributeSet -import android.view.LayoutInflater -import androidx.constraintlayout.widget.ConstraintLayout -import androidx.core.content.withStyledAttributes -import kotlinx.android.synthetic.main.library_list_item.view.libraryIcon -import kotlinx.android.synthetic.main.library_list_item.view.libraryItemTitle -import org.mozilla.fenix.R - -class LibraryListItem @JvmOverloads constructor( - context: Context, - attrs: AttributeSet? = null, - defStyleAttr: Int = 0 -) : ConstraintLayout(context, attrs, defStyleAttr) { - init { - LayoutInflater.from(context).inflate(R.layout.library_list_item, this, true) - - context.withStyledAttributes(attrs, R.styleable.LibraryListItem, defStyleAttr, 0) { - val id = getResourceId( - R.styleable.LibraryListItem_listItemIcon, - R.drawable.library_icon_reading_list_circle_background - ) - libraryIcon?.background = resources.getDrawable(id, context.theme) - libraryItemTitle?.text = resources.getString( - getResourceId( - R.styleable.LibraryListItem_listItemTitle, - R.string.browser_menu_library - ) - ) - } - } -} diff --git a/app/src/main/res/drawable/library_icon_reading_list_circle_background.xml b/app/src/main/res/drawable/library_icon_reading_list_circle_background.xml deleted file mode 100644 index e0ecf99a1..000000000 --- a/app/src/main/res/drawable/library_icon_reading_list_circle_background.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/app/src/main/res/layout/fragment_library.xml b/app/src/main/res/layout/fragment_library.xml deleted file mode 100644 index d913dd83e..000000000 --- a/app/src/main/res/layout/fragment_library.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - diff --git a/app/src/main/res/layout/library_list_item.xml b/app/src/main/res/layout/library_list_item.xml deleted file mode 100644 index 861d51847..000000000 --- a/app/src/main/res/layout/library_list_item.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - diff --git a/app/src/main/res/navigation/nav_graph.xml b/app/src/main/res/navigation/nav_graph.xml index 75d88f423..5493c5dc9 100644 --- a/app/src/main/res/navigation/nav_graph.xml +++ b/app/src/main/res/navigation/nav_graph.xml @@ -160,9 +160,6 @@ - @@ -194,19 +191,6 @@ app:nullable="true" /> - - - - - - - - - - diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index d9de93160..6fa2a6bd7 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -12,7 +12,6 @@ 8dp 7dp 56dp - 48dp 16dp 8dp 40dp diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 0d4d37c76..6ad5c8e3f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -408,8 +408,6 @@ Reading List Search - - Library Settings