Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
0333c79
- refactor step1
Williamrai Jul 8, 2025
84f1f87
- refactor code fixes
Williamrai Jul 8, 2025
c2d4a82
- refactor code fixes step 3
Williamrai Jul 9, 2025
ae06ef4
- refactor code fixes step 4 (converting to viewModel)
Williamrai Jul 9, 2025
d98719f
- refactor code fixes step 5 (converting to viewModel)
Williamrai Jul 10, 2025
0d10fdc
- refactor code fixes step 6(converting to viewModel)
Williamrai Jul 10, 2025
2b5f418
- refactor code fixes step 7(converting to viewModel)
Williamrai Jul 10, 2025
ac7f826
- refactor code fixes step 8(converting to viewModel), separating the…
Williamrai Jul 11, 2025
6fa631f
Merge branch 'main' into page-fragment-refactor
Williamrai Jul 11, 2025
8085ce3
- refactor code fixes step 8(converting to viewModel), separating the…
Williamrai Jul 11, 2025
ebb4871
- refactor code fixes step 9(converting to viewModel), separating the…
Williamrai Jul 11, 2025
8c6298c
- code fixes
Williamrai Jul 14, 2025
fb51446
- refactors api load function
Williamrai Jul 15, 2025
343b7f3
- removes unused code
Williamrai Jul 15, 2025
a8dc11e
- code fix
Williamrai Jul 15, 2025
24c003e
- code fix
Williamrai Jul 15, 2025
dcae5dc
- code fix
Williamrai Jul 15, 2025
97b38e4
Merge branch 'main' into page-fragment-refactor
cooltey Jul 15, 2025
0d6a0d7
- code fixes
Williamrai Jul 16, 2025
b8ea7a3
Merge branch 'main' into page-fragment-refactor
Williamrai Jul 16, 2025
95aece1
- code fixes/ fetching logic changes
Williamrai Jul 16, 2025
366cda9
Merge branch 'main' into page-fragment-refactor
Williamrai Jul 16, 2025
b4c7b2c
Merge branch 'main' into page-fragment-refactor
Williamrai Jul 17, 2025
220aad3
Merge remote-tracking branch 'origin/main' into page-fragment-refactor
Williamrai Nov 24, 2025
9a1dd80
Merge branch 'main' into page-fragment-refactor
Williamrai Dec 23, 2025
e753fbf
- merge conflict fixes
Williamrai Dec 23, 2025
5bc81a7
- renames PageViewModel.kt data class for clarity
Williamrai Dec 23, 2025
c713f84
Merge branch 'main' into page-fragment-refactor
Williamrai Jan 6, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ import org.wikipedia.history.HistoryEntry
import org.wikipedia.page.LinkHandler
import org.wikipedia.page.PageActivity
import org.wikipedia.page.PageTitle
import org.wikipedia.page.PageViewModel
import org.wikipedia.page.PageViewState
import org.wikipedia.staticdata.MainPageNameData
import org.wikipedia.util.StringUtil
import org.wikipedia.util.UriUtil
Expand All @@ -48,7 +48,7 @@ class SingleWebViewActivity : BaseActivity() {
private var showBackButton = false
private var isWebForm = false
private var wasFormSubmitted = false
val blankModel = PageViewModel()
val blankModel = PageViewState()

@SuppressLint("SetJavaScriptEnabled")
public override fun onCreate(savedInstanceState: Bundle?) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ import org.wikipedia.dataclient.RestService
import org.wikipedia.dataclient.ServiceFactory
import org.wikipedia.json.JsonUtil
import org.wikipedia.page.PageTitle
import org.wikipedia.page.PageViewModel
import org.wikipedia.page.PageViewState
import org.wikipedia.util.UriUtil
import org.wikipedia.util.log.L

Expand All @@ -42,7 +42,7 @@ class CommunicationBridge constructor(private val communicationBridgeListener: C

interface CommunicationBridgeListener {
val webView: WebView
val model: PageViewModel
val model: PageViewState
val isPreview: Boolean
val toolbarMargin: Int
val messageCardHeight: Int
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import org.wikipedia.extensions.getStrings
import org.wikipedia.json.JsonUtil
import org.wikipedia.page.Namespace
import org.wikipedia.page.PageTitle
import org.wikipedia.page.PageViewModel
import org.wikipedia.page.PageViewState
import org.wikipedia.settings.Prefs
import org.wikipedia.util.DimenUtil
import java.util.Date
Expand Down Expand Up @@ -118,7 +118,7 @@ object JavaScriptActionHandler {
return "pcs.c1.Page.setEditButtons($isEditable, $isProtected)"
}

fun setFooter(model: PageViewModel): String {
fun setFooter(model: PageViewState): String {
if (model.page == null) {
return ""
}
Expand Down Expand Up @@ -152,7 +152,7 @@ object JavaScriptActionHandler {
"})"
}

fun appendReadMode(model: PageViewModel): String {
fun appendReadMode(model: PageViewState): String {
if (model.page == null) {
return ""
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import okhttp3.Response
import org.wikipedia.WikipediaApp
import org.wikipedia.dataclient.RestService
import org.wikipedia.page.LinkHandler
import org.wikipedia.page.PageViewModel
import org.wikipedia.page.PageViewState
import org.wikipedia.util.UriUtil
import org.wikipedia.util.log.L
import java.io.IOException
Expand All @@ -23,7 +23,7 @@ abstract class OkHttpWebViewClient : WebViewClient() {
They should not be made into general Interceptors.
*/

abstract val model: PageViewModel
abstract val model: PageViewState
abstract val linkHandler: LinkHandler

override fun shouldOverrideUrlLoading(view: WebView, url: String): Boolean {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ import org.wikipedia.page.ExclusiveBottomSheetPresenter
import org.wikipedia.page.LinkHandler
import org.wikipedia.page.PageActivity
import org.wikipedia.page.PageTitle
import org.wikipedia.page.PageViewModel
import org.wikipedia.page.PageViewState
import org.wikipedia.page.references.PageReferences
import org.wikipedia.page.references.ReferenceDialog
import org.wikipedia.staticdata.MainPageNameData
Expand All @@ -58,7 +58,7 @@ class EditPreviewFragment : Fragment(), CommunicationBridgeListener, ReferenceDi
val isActive get() = binding.editPreviewContainer.visibility == View.VISIBLE

override lateinit var linkHandler: LinkHandler
override val model = PageViewModel()
override val model = PageViewState()
override val webView get() = binding.editPreviewWebview
override val isPreview = true
override val toolbarMargin = 0
Expand Down
16 changes: 9 additions & 7 deletions app/src/main/java/org/wikipedia/page/PageActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ import org.wikipedia.navtab.NavTab
import org.wikipedia.notifications.AnonymousNotificationHelper
import org.wikipedia.notifications.NotificationActivity
import org.wikipedia.page.linkpreview.LinkPreviewDialog
import org.wikipedia.page.pageload.PageLoadOptions
import org.wikipedia.page.tabs.TabActivity
import org.wikipedia.readinglist.ReadingListActivity
import org.wikipedia.readinglist.ReadingListMode
Expand Down Expand Up @@ -122,7 +123,7 @@ class PageActivity : BaseActivity(), PageFragment.Callback, LinkPreviewDialog.Lo
// and reload the page...
pageFragment.model.title?.let { title ->
pageFragment.model.curEntry?.let { entry ->
pageFragment.loadPage(title, entry, pushBackStack = false, squashBackstack = false, isRefresh = true)
pageFragment.loadPage(title, entry, options = PageLoadOptions(pushBackStack = false, squashBackStack = false, isRefresh = true))
}
}
}
Expand Down Expand Up @@ -631,13 +632,14 @@ class PageActivity : BaseActivity(), PageFragment.Callback, LinkPreviewDialog.Lo
// Close the link preview, if one is open.
hideLinkPreview()
onPageCloseActionMode()
when (position) {
TabPosition.CURRENT_TAB -> pageFragment.loadPage(pageTitle, entry, pushBackStack = true, squashBackstack = false)
TabPosition.CURRENT_TAB_SQUASH -> pageFragment.loadPage(pageTitle, entry, pushBackStack = true, squashBackstack = true)
TabPosition.NEW_TAB_BACKGROUND -> pageFragment.openInNewBackgroundTab(pageTitle, entry)
TabPosition.NEW_TAB_FOREGROUND -> pageFragment.openInNewForegroundTab(pageTitle, entry)
else -> pageFragment.openFromExistingTab(pageTitle, entry)
val options = when (position) {
TabPosition.CURRENT_TAB -> PageLoadOptions(tabPosition = position)
TabPosition.CURRENT_TAB_SQUASH -> PageLoadOptions(tabPosition = position, squashBackStack = true)
TabPosition.NEW_TAB_BACKGROUND -> PageLoadOptions(tabPosition = position)
TabPosition.NEW_TAB_FOREGROUND -> PageLoadOptions(tabPosition = position, pushBackStack = false)
TabPosition.EXISTING_TAB -> PageLoadOptions(tabPosition = position, pushBackStack = true, squashBackStack = true)
}
pageFragment.loadPage(pageTitle, entry, options)
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,18 @@ package org.wikipedia.page
import org.wikipedia.Constants.InvokeSource
import org.wikipedia.LongPressHandler.WebViewMenuCallback
import org.wikipedia.history.HistoryEntry
import org.wikipedia.page.pageload.PageLoadOptions
import org.wikipedia.readinglist.ReadingListBehaviorsUtil
import org.wikipedia.readinglist.database.ReadingListPage

class PageContainerLongPressHandler(private val fragment: PageFragment) : WebViewMenuCallback {

override fun onOpenLink(entry: HistoryEntry) {
fragment.loadPage(entry.title, entry)
fragment.onPageLoadPage(entry.title, entry)
}

override fun onOpenInNewTab(entry: HistoryEntry) {
fragment.openInNewBackgroundTab(entry.title, entry)
fragment.loadPage(entry.title, entry, options = PageLoadOptions(tabPosition = PageActivity.TabPosition.NEW_TAB_BACKGROUND))
}

override fun onAddRequest(entry: HistoryEntry, addToDefault: Boolean) {
Expand Down
Loading
Loading