|
|
@ -141,6 +141,7 @@ class HomeFragment : Fragment(), CoroutineScope {
|
|
|
|
(toolbarPaddingDp * Resources.getSystem().displayMetrics.density).roundToInt()
|
|
|
|
(toolbarPaddingDp * Resources.getSystem().displayMetrics.density).roundToInt()
|
|
|
|
view.toolbar.compoundDrawablePadding = roundToInt
|
|
|
|
view.toolbar.compoundDrawablePadding = roundToInt
|
|
|
|
view.toolbar.setOnClickListener {
|
|
|
|
view.toolbar.setOnClickListener {
|
|
|
|
|
|
|
|
invokePendingDeleteSessionJob()
|
|
|
|
val directions = HomeFragmentDirections.actionHomeFragmentToSearchFragment(null)
|
|
|
|
val directions = HomeFragmentDirections.actionHomeFragmentToSearchFragment(null)
|
|
|
|
Navigation.findNavController(it).navigate(directions)
|
|
|
|
Navigation.findNavController(it).navigate(directions)
|
|
|
|
|
|
|
|
|
|
|
@ -206,6 +207,7 @@ class HomeFragment : Fragment(), CoroutineScope {
|
|
|
|
showCollectionCreationFragment(action.selectedTabSessionId)
|
|
|
|
showCollectionCreationFragment(action.selectedTabSessionId)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
is TabAction.Select -> {
|
|
|
|
is TabAction.Select -> {
|
|
|
|
|
|
|
|
invokePendingDeleteSessionJob()
|
|
|
|
val session =
|
|
|
|
val session =
|
|
|
|
requireComponents.core.sessionManager.findSessionById(action.sessionId)
|
|
|
|
requireComponents.core.sessionManager.findSessionById(action.sessionId)
|
|
|
|
requireComponents.core.sessionManager.select(session!!)
|
|
|
|
requireComponents.core.sessionManager.select(session!!)
|
|
|
@ -241,6 +243,7 @@ class HomeFragment : Fragment(), CoroutineScope {
|
|
|
|
)
|
|
|
|
)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
is TabAction.Add -> {
|
|
|
|
is TabAction.Add -> {
|
|
|
|
|
|
|
|
invokePendingDeleteSessionJob()
|
|
|
|
val directions = HomeFragmentDirections.actionHomeFragmentToSearchFragment(null)
|
|
|
|
val directions = HomeFragmentDirections.actionHomeFragmentToSearchFragment(null)
|
|
|
|
Navigation.findNavController(view!!).navigate(directions)
|
|
|
|
Navigation.findNavController(view!!).navigate(directions)
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -250,6 +253,16 @@ class HomeFragment : Fragment(), CoroutineScope {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private fun invokePendingDeleteSessionJob() {
|
|
|
|
|
|
|
|
deleteSessionJob?.let {
|
|
|
|
|
|
|
|
launch {
|
|
|
|
|
|
|
|
it.invoke()
|
|
|
|
|
|
|
|
}.invokeOnCompletion {
|
|
|
|
|
|
|
|
deleteSessionJob = null
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Suppress("ComplexMethod")
|
|
|
|
@Suppress("ComplexMethod")
|
|
|
|
private fun handleCollectionAction(action: CollectionAction) {
|
|
|
|
private fun handleCollectionAction(action: CollectionAction) {
|
|
|
|
when (action) {
|
|
|
|
when (action) {
|
|
|
@ -298,13 +311,20 @@ class HomeFragment : Fragment(), CoroutineScope {
|
|
|
|
private fun setupHomeMenu() {
|
|
|
|
private fun setupHomeMenu() {
|
|
|
|
homeMenu = HomeMenu(requireContext()) {
|
|
|
|
homeMenu = HomeMenu(requireContext()) {
|
|
|
|
when (it) {
|
|
|
|
when (it) {
|
|
|
|
HomeMenu.Item.Settings -> Navigation.findNavController(homeLayout).navigate(
|
|
|
|
HomeMenu.Item.Settings -> {
|
|
|
|
HomeFragmentDirections.actionHomeFragmentToSettingsFragment()
|
|
|
|
invokePendingDeleteSessionJob()
|
|
|
|
)
|
|
|
|
Navigation.findNavController(homeLayout).navigate(
|
|
|
|
HomeMenu.Item.Library -> Navigation.findNavController(homeLayout).navigate(
|
|
|
|
HomeFragmentDirections.actionHomeFragmentToSettingsFragment()
|
|
|
|
HomeFragmentDirections.actionHomeFragmentToLibraryFragment()
|
|
|
|
)
|
|
|
|
)
|
|
|
|
}
|
|
|
|
|
|
|
|
HomeMenu.Item.Library -> {
|
|
|
|
|
|
|
|
invokePendingDeleteSessionJob()
|
|
|
|
|
|
|
|
Navigation.findNavController(homeLayout).navigate(
|
|
|
|
|
|
|
|
HomeFragmentDirections.actionHomeFragmentToLibraryFragment()
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
}
|
|
|
|
HomeMenu.Item.Help -> {
|
|
|
|
HomeMenu.Item.Help -> {
|
|
|
|
|
|
|
|
invokePendingDeleteSessionJob()
|
|
|
|
(activity as HomeActivity).openToBrowserAndLoad(
|
|
|
|
(activity as HomeActivity).openToBrowserAndLoad(
|
|
|
|
searchTermOrURL = SupportUtils.getSumoURLForTopic(
|
|
|
|
searchTermOrURL = SupportUtils.getSumoURLForTopic(
|
|
|
|
context!!,
|
|
|
|
context!!,
|
|
|
@ -367,7 +387,7 @@ class HomeFragment : Fragment(), CoroutineScope {
|
|
|
|
.map {
|
|
|
|
.map {
|
|
|
|
val selected =
|
|
|
|
val selected =
|
|
|
|
it == sessionManager.selectedSession
|
|
|
|
it == sessionManager.selectedSession
|
|
|
|
org.mozilla.fenix.home.sessioncontrol.Tab(
|
|
|
|
Tab(
|
|
|
|
it.id,
|
|
|
|
it.id,
|
|
|
|
it.url,
|
|
|
|
it.url,
|
|
|
|
it.url.urlToTrimmedHost(),
|
|
|
|
it.url.urlToTrimmedHost(),
|
|
|
@ -408,7 +428,7 @@ class HomeFragment : Fragment(), CoroutineScope {
|
|
|
|
.filter { (activity as HomeActivity).browsingModeManager.isPrivate == it.private }
|
|
|
|
.filter { (activity as HomeActivity).browsingModeManager.isPrivate == it.private }
|
|
|
|
.map {
|
|
|
|
.map {
|
|
|
|
val selected = it == sessionManager.selectedSession
|
|
|
|
val selected = it == sessionManager.selectedSession
|
|
|
|
org.mozilla.fenix.home.sessioncontrol.Tab(
|
|
|
|
Tab(
|
|
|
|
it.id,
|
|
|
|
it.id,
|
|
|
|
it.url,
|
|
|
|
it.url,
|
|
|
|
it.url.urlToTrimmedHost(),
|
|
|
|
it.url.urlToTrimmedHost(),
|
|
|
|