diff --git a/app/build.gradle b/app/build.gradle
index 96c77674a..b184f880f 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -25,6 +25,8 @@ android {
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
debug {
+ shrinkResources false
+ minifyEnabled false
applicationIdSuffix ".debug"
}
}
diff --git a/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt b/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt
index 61b805795..2d43bb5ea 100644
--- a/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt
+++ b/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt
@@ -17,14 +17,12 @@ import androidx.fragment.app.Fragment
import androidx.navigation.Navigation
import kotlinx.android.synthetic.main.fragment_home.*
import kotlinx.android.synthetic.main.fragment_home.view.*
-import kotlinx.android.synthetic.main.tab_list_header.view.*
import mozilla.components.browser.menu.BrowserMenu
import mozilla.components.browser.session.Session
import mozilla.components.browser.session.SessionManager
import org.mozilla.fenix.DefaultThemeManager
import org.mozilla.fenix.HomeActivity
import org.mozilla.fenix.R
-import org.mozilla.fenix.ext.increaseTapArea
import org.mozilla.fenix.ThemeManager
import org.mozilla.fenix.ext.requireComponents
import org.mozilla.fenix.home.sessions.SessionsComponent
@@ -92,12 +90,7 @@ class HomeFragment : Fragment() {
view.toolbar.setCompoundDrawablesWithIntrinsicBounds(searchIcon, null, null, null)
val roundToInt = (toolbarPaddingDp * Resources.getSystem().displayMetrics.density).roundToInt()
view.toolbar.compoundDrawablePadding = roundToInt
- view.toolbar.setOnClickListener { it ->
- val directions = HomeFragmentDirections.actionHomeFragmentToSearchFragment(null)
- Navigation.findNavController(it).navigate(directions)
- }
- view.add_tab_button.increaseTapArea(addTabButtonIncreaseDps)
- view.add_tab_button.setOnClickListener {
+ view.toolbar.setOnClickListener {
val directions = HomeFragmentDirections.actionHomeFragmentToSearchFragment(null)
Navigation.findNavController(it).navigate(directions)
}
@@ -210,6 +203,7 @@ class HomeFragment : Fragment() {
companion object {
const val addTabButtonIncreaseDps = 8
+ const val overflowButtonIncreaseDps = 8
const val toolbarPaddingDp = 12f
const val firstKeyTriggerFrame = 55
const val secondKeyTriggerFrame = 90
diff --git a/app/src/main/java/org/mozilla/fenix/home/sessions/CurrentSessionBottomSheetFragment.kt b/app/src/main/java/org/mozilla/fenix/home/sessions/CurrentSessionBottomSheetFragment.kt
new file mode 100644
index 000000000..9dc2b44db
--- /dev/null
+++ b/app/src/main/java/org/mozilla/fenix/home/sessions/CurrentSessionBottomSheetFragment.kt
@@ -0,0 +1,44 @@
+/* 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.home.sessions
+
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import com.google.android.material.bottomsheet.BottomSheetDialogFragment
+import kotlinx.android.extensions.LayoutContainer
+import kotlinx.android.synthetic.main.current_session_bottom_sheet.view.*
+import org.mozilla.fenix.R
+import org.mozilla.fenix.ext.requireComponents
+
+class CurrentSessionBottomSheetFragment : BottomSheetDialogFragment(), LayoutContainer {
+
+ override val containerView: View?
+ get() = view
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setStyle(BottomSheetDialogFragment.STYLE_NORMAL, R.style.CurrentSessionBottomSheetDialogTheme)
+ }
+
+ override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
+ val view = inflater.inflate(R.layout.current_session_bottom_sheet, container, false)
+
+ view.current_session_card_tab_list.text = requireComponents.core.sessionManager.sessions.joinToString(", ") {
+ if (it.title.length > maxTitleLength) it.title.substring(0, maxTitleLength) + "..." else it.title
+ }
+
+ view.delete_session_button.setOnClickListener {
+ requireComponents.core.sessionManager.removeAll()
+ dismiss()
+ }
+ return view
+ }
+
+ companion object {
+ const val maxTitleLength = 20
+ }
+}
diff --git a/app/src/main/java/org/mozilla/fenix/home/tabs/TabsUIView.kt b/app/src/main/java/org/mozilla/fenix/home/tabs/TabsUIView.kt
index ca7dc3099..cd4afe841 100644
--- a/app/src/main/java/org/mozilla/fenix/home/tabs/TabsUIView.kt
+++ b/app/src/main/java/org/mozilla/fenix/home/tabs/TabsUIView.kt
@@ -4,17 +4,25 @@
package org.mozilla.fenix.home.tabs
+import android.app.Activity
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.constraintlayout.widget.ConstraintLayout
+import androidx.fragment.app.FragmentActivity
+import androidx.navigation.Navigation
import androidx.recyclerview.widget.DefaultItemAnimator
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import io.reactivex.Observable
import io.reactivex.Observer
import io.reactivex.functions.Consumer
+import kotlinx.android.synthetic.main.tab_list_header.view.*
import org.mozilla.fenix.R
+import org.mozilla.fenix.ext.increaseTapArea
+import org.mozilla.fenix.home.HomeFragment
+import org.mozilla.fenix.home.HomeFragmentDirections
+import org.mozilla.fenix.home.sessions.CurrentSessionBottomSheetFragment
import org.mozilla.fenix.mvi.UIView
class TabsUIView(
@@ -40,10 +48,28 @@ class TabsUIView(
adapter = tabsAdapter
itemAnimator = DefaultItemAnimator()
}
+ header.add_tab_button.increaseTapArea(HomeFragment.addTabButtonIncreaseDps)
+ header.add_tab_button.setOnClickListener {
+ val directions = HomeFragmentDirections.actionHomeFragmentToSearchFragment(null)
+ Navigation.findNavController(it).navigate(directions)
+ }
+ header.tabs_overflow_button.increaseTapArea(HomeFragment.overflowButtonIncreaseDps)
+ header.tabs_overflow_button.setOnClickListener {
+ if (view.context as? Activity != null) {
+ CurrentSessionBottomSheetFragment().show(
+ (view.context as FragmentActivity).supportFragmentManager,
+ overflowFragmentTag
+ )
+ }
+ }
}
override fun updateView() = Consumer
%1$s is produced by Mozilla. Our mission is to foster a healthy, open Internet.
]]>
+
+
+