Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 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
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
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 @@ -62,6 +62,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 @@ -119,7 +120,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 @@ -613,13 +614,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
329 changes: 166 additions & 163 deletions app/src/main/java/org/wikipedia/page/PageFragment.kt

Large diffs are not rendered by default.

293 changes: 0 additions & 293 deletions app/src/main/java/org/wikipedia/page/PageFragmentLoadState.kt

This file was deleted.

36 changes: 23 additions & 13 deletions app/src/main/java/org/wikipedia/page/PageViewModel.kt
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,30 @@ import org.wikipedia.dataclient.okhttp.OkHttpConnectionFactory
import org.wikipedia.history.HistoryEntry
import org.wikipedia.readinglist.database.ReadingListPage

class PageViewModel {

var page: Page? = null
var title: PageTitle? = null
var curEntry: HistoryEntry? = null
var readingListPage: ReadingListPage? = null
var hasWatchlistExpiry = false
var isWatched = false
var forceNetwork = false
var isReadMoreLoaded = false
data class PageViewModel(
var page: Page? = null,
var title: PageTitle? = null,
var curEntry: HistoryEntry? = null,
var readingListPage: ReadingListPage? = null,
var hasWatchlistExpiry: Boolean = false,
var isWatched: Boolean = false,
var forceNetwork: Boolean = false,
var isReadMoreLoaded: Boolean = false
) {
// Computed properties remain in the class body
val isInReadingList get() = readingListPage != null
val cacheControl get() = if (forceNetwork) OkHttpConnectionFactory.CACHE_CONTROL_FORCE_NETWORK else OkHttpConnectionFactory.CACHE_CONTROL_NONE

val cacheControl get() = if (forceNetwork)
OkHttpConnectionFactory.CACHE_CONTROL_FORCE_NETWORK
else
OkHttpConnectionFactory.CACHE_CONTROL_NONE

val shouldLoadAsMobileWeb get() =
title?.run { namespace() === Namespace.SPECIAL || isMainPage } ?: run { false } ||
page?.run { pageProperties.namespace !== Namespace.MAIN && pageProperties.namespace !== Namespace.USER &&
pageProperties.namespace !== Namespace.PROJECT && pageProperties.namespace !== Namespace.DRAFT || isMainPage } ?: run { false }
page?.run {
pageProperties.namespace !== Namespace.MAIN &&
pageProperties.namespace !== Namespace.USER &&
pageProperties.namespace !== Namespace.PROJECT &&
pageProperties.namespace !== Namespace.DRAFT || isMainPage
} ?: run { false }
}
Loading
Loading