mirror of
https://github.com/fork-maintainers/iceraven-browser
synced 2024-11-17 15:26:23 +00:00
86dc299949
* For https://github.com/mozilla-mobile/fenix/issues/5799: add architecture document outline for review * For 5799: update architecture doc outline - Remove references to old architecture (Soon it will all have been replaced. No need for the additional cognitive load) - Add some subheadings - 'Simplified Example' seems like a good idea. Update the language to clarify that it will be done * For 5799: add additional known limitations * For 5799: wrote first draft for architecture 'overview' and 'important objects' * For 5799: wrote first draft for arch doc 'important notes' * For 5799: wrote arch doc 'known limitations' section * For 5799: wrote example code for architecture doc * For 5799: added example app wireframe for arch docs * For 5799: update arch docs 'Simplified Example section' * For 5799: improve formatting for architecture docs * For 5799: minor tweaks to architecture docs * For 5799: link 'simplified example' section to example code * For 5799: update arch doc per review
48 lines
1.5 KiB
Kotlin
48 lines
1.5 KiB
Kotlin
/* 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/. */
|
|
|
|
|
|
// This is example code for the 'Simplified Example' section of
|
|
// /docs/architecture-overview.md
|
|
class ContactsFragment : Fragment() {
|
|
|
|
lateinit var contactsStore: ContactsStore
|
|
lateinit var contactsView: ContactsView
|
|
|
|
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
|
|
val view = inflater.inflate(R.layout.fragment_contacts, container, false)
|
|
|
|
// Create the various components and hook them up to each other
|
|
val initialState = ContactsState(
|
|
contacts = emptyList(),
|
|
theme = Theme.ORANGE
|
|
)
|
|
|
|
contactsStore = ContactsStore(initialState = initialState)
|
|
|
|
val contactsController = ContactsController(
|
|
store = store,
|
|
navController = findNavController()
|
|
)
|
|
|
|
val themeController = ThemeController(
|
|
store = store
|
|
)
|
|
|
|
val interactor = ContactsInteractor(
|
|
contactsController = contactsController,
|
|
themeController = themeController
|
|
)
|
|
|
|
contactsView = ContactsView(view.contains_container, interactor)
|
|
}
|
|
|
|
override onViewCreated(view: View, savedInstanceState: Bundle?) {
|
|
// Whenever State is updated, pass it to the View
|
|
consumeFrom(contactsStore) { state ->
|
|
contactsView.update(state)
|
|
}
|
|
}
|
|
}
|