1
0
Fork 0

Closes #537: Refactors private sessions (#629)

master
Sawyer Blatz 2019-02-22 09:49:02 -08:00 committed by GitHub
parent da474bd572
commit 53f391de60
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 14 additions and 39 deletions

View File

@ -89,7 +89,7 @@ open class HomeActivity : AppCompatActivity() {
private fun openToBrowser() { private fun openToBrowser() {
val sessionId = SafeIntent(intent).getStringExtra(IntentProcessor.ACTIVE_SESSION_ID) val sessionId = SafeIntent(intent).getStringExtra(IntentProcessor.ACTIVE_SESSION_ID)
val host = supportFragmentManager.findFragmentById(R.id.container) as NavHostFragment val host = supportFragmentManager.findFragmentById(R.id.container) as NavHostFragment
val directions = NavGraphDirections.actionGlobalBrowser(sessionId, browsingModeManager.isPrivate) val directions = NavGraphDirections.actionGlobalBrowser(sessionId)
host.navController.navigate(directions) host.navController.navigate(directions)
} }

View File

@ -54,7 +54,6 @@ class BrowserFragment : Fragment(), BackHandler {
private val findInPageIntegration = ViewBoundFeatureWrapper<FindInPageIntegration>() private val findInPageIntegration = ViewBoundFeatureWrapper<FindInPageIntegration>()
private val customTabsToolbarFeature = ViewBoundFeatureWrapper<CustomTabsToolbarFeature>() private val customTabsToolbarFeature = ViewBoundFeatureWrapper<CustomTabsToolbarFeature>()
private val toolbarIntegration = ViewBoundFeatureWrapper<ToolbarIntegration>() private val toolbarIntegration = ViewBoundFeatureWrapper<ToolbarIntegration>()
private var isPrivate = false
var sessionId: String? = null var sessionId: String? = null
override fun onCreateView( override fun onCreateView(
@ -64,14 +63,13 @@ class BrowserFragment : Fragment(), BackHandler {
): View? { ): View? {
require(arguments != null) require(arguments != null)
sessionId = BrowserFragmentArgs.fromBundle(arguments!!).sessionId sessionId = BrowserFragmentArgs.fromBundle(arguments!!).sessionId
isPrivate = BrowserFragmentArgs.fromBundle(arguments!!).isPrivateTab
val view = inflater.inflate(R.layout.fragment_browser, container, false) val view = inflater.inflate(R.layout.fragment_browser, container, false)
toolbarComponent = ToolbarComponent( toolbarComponent = ToolbarComponent(
view.browserLayout, view.browserLayout,
ActionBusFactory.get(this), sessionId, ActionBusFactory.get(this), sessionId,
isPrivate, (activity as HomeActivity).browsingModeManager.isPrivate,
SearchState("", isEditing = false) SearchState("", isEditing = false)
) )
@ -179,9 +177,7 @@ class BrowserFragment : Fragment(), BackHandler {
is SearchAction.ToolbarTapped -> Navigation.findNavController(toolbarComponent.getView()) is SearchAction.ToolbarTapped -> Navigation.findNavController(toolbarComponent.getView())
.navigate( .navigate(
BrowserFragmentDirections.actionBrowserFragmentToSearchFragment( BrowserFragmentDirections.actionBrowserFragmentToSearchFragment(
requireComponents.core.sessionManager.selectedSession?.id, requireComponents.core.sessionManager.selectedSession?.id)
(activity as HomeActivity).browsingModeManager.isPrivate
)
) )
is SearchAction.ToolbarMenuItemTapped -> handleToolbarItemInteraction(it) is SearchAction.ToolbarMenuItemTapped -> handleToolbarItemInteraction(it)
} }
@ -229,8 +225,7 @@ class BrowserFragment : Fragment(), BackHandler {
.selectedSession?.url?.apply { requireContext().share(this) } .selectedSession?.url?.apply { requireContext().share(this) }
ToolbarMenu.Item.NewPrivateTab -> { ToolbarMenu.Item.NewPrivateTab -> {
val directions = BrowserFragmentDirections val directions = BrowserFragmentDirections
.actionBrowserFragmentToSearchFragment(requireComponents.core.sessionManager.selectedSession?.id, .actionBrowserFragmentToSearchFragment(requireComponents.core.sessionManager.selectedSession?.id)
(activity as HomeActivity).browsingModeManager.isPrivate)
Navigation.findNavController(view!!).navigate(directions) Navigation.findNavController(view!!).navigate(directions)
(activity as HomeActivity).browsingModeManager.mode = BrowsingModeManager.Mode.Private (activity as HomeActivity).browsingModeManager.mode = BrowsingModeManager.Mode.Private
} }
@ -245,8 +240,7 @@ class BrowserFragment : Fragment(), BackHandler {
} }
ToolbarMenu.Item.NewTab -> { ToolbarMenu.Item.NewTab -> {
val directions = BrowserFragmentDirections val directions = BrowserFragmentDirections
.actionBrowserFragmentToSearchFragment(null, .actionBrowserFragmentToSearchFragment(null)
(activity as HomeActivity).browsingModeManager.isPrivate)
Navigation.findNavController(view!!).navigate(directions) Navigation.findNavController(view!!).navigate(directions)
(activity as HomeActivity).browsingModeManager.mode = BrowsingModeManager.Mode.Normal (activity as HomeActivity).browsingModeManager.mode = BrowsingModeManager.Mode.Normal
} }

View File

@ -79,8 +79,7 @@ class HomeFragment : Fragment() {
val roundToInt = (toolbarPaddingDp * Resources.getSystem().displayMetrics.density).roundToInt() val roundToInt = (toolbarPaddingDp * Resources.getSystem().displayMetrics.density).roundToInt()
view.toolbar.compoundDrawablePadding = roundToInt view.toolbar.compoundDrawablePadding = roundToInt
view.toolbar.setOnClickListener { view.toolbar.setOnClickListener {
val directions = HomeFragmentDirections.actionHomeFragmentToSearchFragment(null, val directions = HomeFragmentDirections.actionHomeFragmentToSearchFragment(null)
(activity as HomeActivity).browsingModeManager.isPrivate)
Navigation.findNavController(it).navigate(directions) Navigation.findNavController(it).navigate(directions)
} }
@ -112,10 +111,7 @@ class HomeFragment : Fragment() {
override fun onTransitionCompleted(p0: MotionLayout?, p1: Int) { } override fun onTransitionCompleted(p0: MotionLayout?, p1: Int) { }
}) })
view.toolbar_wrapper.isPrivateModeEnabled = (requireActivity() as HomeActivity) view.toolbar_wrapper.isPrivateModeEnabled = (activity as HomeActivity).browsingModeManager.isPrivate
.themeManager
.currentTheme
.isPrivate()
privateBrowsingButton.setOnClickListener { privateBrowsingButton.setOnClickListener {
val browsingModeManager = (activity as HomeActivity).browsingModeManager val browsingModeManager = (activity as HomeActivity).browsingModeManager
@ -135,10 +131,7 @@ class HomeFragment : Fragment() {
is TabsAction.Select -> { is TabsAction.Select -> {
val session = requireComponents.core.sessionManager.findSessionById(it.sessionId) val session = requireComponents.core.sessionManager.findSessionById(it.sessionId)
requireComponents.core.sessionManager.select(session!!) requireComponents.core.sessionManager.select(session!!)
val directions = HomeFragmentDirections.actionHomeFragmentToBrowserFragment( val directions = HomeFragmentDirections.actionHomeFragmentToBrowserFragment(it.sessionId)
it.sessionId,
(activity as HomeActivity).browsingModeManager.isPrivate
)
Navigation.findNavController(view!!).navigate(directions) Navigation.findNavController(view!!).navigate(directions)
} }
is TabsAction.Close -> { is TabsAction.Close -> {

View File

@ -51,8 +51,7 @@ class TabsUIView(
} }
header.add_tab_button.increaseTapArea(HomeFragment.addTabButtonIncreaseDps) header.add_tab_button.increaseTapArea(HomeFragment.addTabButtonIncreaseDps)
header.add_tab_button.setOnClickListener { header.add_tab_button.setOnClickListener {
val directions = HomeFragmentDirections.actionHomeFragmentToSearchFragment(null, val directions = HomeFragmentDirections.actionHomeFragmentToSearchFragment(null)
isPrivate)
Navigation.findNavController(it).navigate(directions) Navigation.findNavController(it).navigate(directions)
} }
header.tabs_overflow_button.increaseTapArea(HomeFragment.overflowButtonIncreaseDps) header.tabs_overflow_button.increaseTapArea(HomeFragment.overflowButtonIncreaseDps)

View File

@ -21,7 +21,6 @@ import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.Job import kotlinx.coroutines.Job
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import mozilla.components.support.base.feature.BackHandler import mozilla.components.support.base.feature.BackHandler
import org.mozilla.fenix.HomeActivity
import org.mozilla.fenix.R import org.mozilla.fenix.R
import org.mozilla.fenix.ext.requireComponents import org.mozilla.fenix.ext.requireComponents
import org.mozilla.fenix.mvi.ActionBusFactory import org.mozilla.fenix.mvi.ActionBusFactory
@ -58,8 +57,7 @@ class HistoryFragment : Fragment(), CoroutineScope, BackHandler {
private fun selectItem(item: HistoryItem) { private fun selectItem(item: HistoryItem) {
Navigation.findNavController(requireActivity(), R.id.container).apply { Navigation.findNavController(requireActivity(), R.id.container).apply {
navigate( navigate(
HistoryFragmentDirections.actionGlobalBrowser(null, HistoryFragmentDirections.actionGlobalBrowser(null),
(activity as HomeActivity).browsingModeManager.isPrivate),
NavOptions.Builder().setPopUpTo(R.id.homeFragment, false).build() NavOptions.Builder().setPopUpTo(R.id.homeFragment, false).build()
) )
} }

View File

@ -40,7 +40,7 @@ class SearchFragment : Fragment() {
savedInstanceState: Bundle? savedInstanceState: Bundle?
): View? { ): View? {
val sessionId = SearchFragmentArgs.fromBundle(arguments!!).sessionId val sessionId = SearchFragmentArgs.fromBundle(arguments!!).sessionId
val isPrivate = SearchFragmentArgs.fromBundle(arguments!!).isPrivateTab val isPrivate = (activity as HomeActivity).browsingModeManager.isPrivate
val view = inflater.inflate(R.layout.fragment_search, container, false) val view = inflater.inflate(R.layout.fragment_search, container, false)
val url = sessionId?.let { val url = sessionId?.let {
requireComponents.core.sessionManager.findSessionById(it)?.let { requireComponents.core.sessionManager.findSessionById(it)?.let {
@ -105,7 +105,7 @@ class SearchFragment : Fragment() {
// We should move this logic into a place that makes more sense. // We should move this logic into a place that makes more sense.
private fun load(text: String) { private fun load(text: String) {
val sessionId = SearchFragmentArgs.fromBundle(arguments!!).sessionId val sessionId = SearchFragmentArgs.fromBundle(arguments!!).sessionId
val isPrivate = SearchFragmentArgs.fromBundle(arguments!!).isPrivateTab val isPrivate = (activity as HomeActivity).browsingModeManager.isPrivate
val loadUrlUseCase = if (sessionId == null) { val loadUrlUseCase = if (sessionId == null) {
if (isPrivate) { if (isPrivate) {
@ -131,8 +131,7 @@ class SearchFragment : Fragment() {
private fun transitionToBrowser() { private fun transitionToBrowser() {
val sessionId = SearchFragmentArgs.fromBundle(arguments!!).sessionId val sessionId = SearchFragmentArgs.fromBundle(arguments!!).sessionId
val directions = SearchFragmentDirections.actionSearchFragmentToBrowserFragment(sessionId, val directions = SearchFragmentDirections.actionSearchFragmentToBrowserFragment(sessionId)
(activity as HomeActivity).browsingModeManager.isPrivate)
Navigation.findNavController(view!!.search_layout).navigate(directions) Navigation.findNavController(view!!.search_layout).navigate(directions)
} }

View File

@ -86,11 +86,7 @@ class SettingsFragment : PreferenceFragmentCompat() {
requireComponents.useCases.tabsUseCases.addTab.invoke(aboutURL, true) requireComponents.useCases.tabsUseCases.addTab.invoke(aboutURL, true)
view?.let { view?.let {
Navigation.findNavController(it) Navigation.findNavController(it)
.navigate( .navigate(SettingsFragmentDirections.actionGlobalBrowser(null))
SettingsFragmentDirections.actionGlobalBrowser(
null, false
)
)
} }
true true
} }

View File

@ -38,7 +38,6 @@
app:destination="@id/browserFragment" app:destination="@id/browserFragment"
app:popUpTo="@id/homeFragment" /> app:popUpTo="@id/homeFragment" />
<argument android:name="session_id" app:argType="string" app:nullable="true"/> <argument android:name="session_id" app:argType="string" app:nullable="true"/>
<argument android:name="is_private_tab" app:argType="boolean"/>
</fragment> </fragment>
<fragment <fragment
@ -57,9 +56,6 @@
android:name="session_id" android:name="session_id"
app:argType="string" app:argType="string"
app:nullable="true" /> app:nullable="true" />
<argument
android:name="is_private_tab"
app:argType="boolean"/>
<action <action
android:id="@+id/action_browserFragment_to_settingsFragment" android:id="@+id/action_browserFragment_to_settingsFragment"
app:destination="@id/settingsFragment" /> app:destination="@id/settingsFragment" />