Skip to content

Commit

Permalink
Convert page last shown time to an Instant
Browse files Browse the repository at this point in the history
  • Loading branch information
Isira-Seneviratne committed Dec 1, 2023
1 parent 4e2a853 commit e88d321
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 13 deletions.
13 changes: 5 additions & 8 deletions app/src/main/java/org/wikipedia/main/MainFragment.kt
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,8 @@ import org.wikipedia.views.NotificationButtonView
import org.wikipedia.views.TabCountsView
import org.wikipedia.watchlist.WatchlistActivity
import java.io.File
import java.util.concurrent.TimeUnit
import java.time.Instant
import java.time.temporal.ChronoUnit

class MainFragment : Fragment(), BackPressedHandler, MenuProvider, FeedFragment.Callback, HistoryFragment.Callback, LinkPreviewDialog.Callback, MenuNavTabDialog.Callback {
interface Callback {
Expand Down Expand Up @@ -163,7 +164,7 @@ class MainFragment : Fragment(), BackPressedHandler, MenuProvider, FeedFragment.
super.onResume()
downloadReceiver.register(requireContext(), downloadReceiverCallback)
// reset the last-page-viewed timer
Prefs.pageLastShown = 0
Prefs.pageLastShown = Instant.EPOCH
maybeShowWatchlistTooltip()
}

Expand Down Expand Up @@ -304,7 +305,8 @@ class MainFragment : Fragment(), BackPressedHandler, MenuProvider, FeedFragment.
goToTab(NavTab.of(intent.getIntExtra(Constants.INTENT_EXTRA_GO_TO_SE_TAB, NavTab.EDITS.code())))
} else if (intent.hasExtra(Constants.INTENT_EXTRA_PREVIEW_SAVED_READING_LISTS)) {
goToTab(NavTab.READING_LISTS)
} else if (lastPageViewedWithin(1) && !intent.hasExtra(Constants.INTENT_RETURN_TO_MAIN) && WikipediaApp.instance.tabCount > 0) {
} else if (Prefs.pageLastShown.until(Instant.now(), ChronoUnit.DAYS) < 1 &&
!intent.hasExtra(Constants.INTENT_RETURN_TO_MAIN) && WikipediaApp.instance.tabCount > 0) {
startActivity(PageActivity.newIntent(requireContext()))
}
}
Expand Down Expand Up @@ -512,11 +514,6 @@ class MainFragment : Fragment(), BackPressedHandler, MenuProvider, FeedFragment.
FeedbackUtil.showMessage(this, R.string.address_copied)
}

@Suppress("SameParameterValue")
private fun lastPageViewedWithin(days: Int): Boolean {
return TimeUnit.MILLISECONDS.toDays(System.currentTimeMillis() - Prefs.pageLastShown) < days
}

private fun download(image: FeaturedImage) {
pendingDownloadImage = null
downloadReceiver.download(requireContext(), image)
Expand Down
3 changes: 1 addition & 2 deletions app/src/main/java/org/wikipedia/page/PageFragment.kt
Original file line number Diff line number Diff line change
Expand Up @@ -283,8 +283,7 @@ class PageFragment : Fragment(), BackPressedHandler, CommunicationBridge.Communi
addTimeSpentReading(activeTimer.elapsedSec)
pageFragmentLoadState.updateCurrentBackStackItem()
app.commitTabState()
val time = if (app.tabList.size >= 1 && !pageFragmentLoadState.backStackEmpty()) System.currentTimeMillis() else 0
Prefs.pageLastShown = time
Prefs.pageLastShown = if (app.tabList.size >= 1 && !pageFragmentLoadState.backStackEmpty()) Instant.now() else Instant.EPOCH
articleInteractionEvent?.pause()
metricsPlatformArticleEventToolbarInteraction.pause()
}
Expand Down
6 changes: 3 additions & 3 deletions app/src/main/java/org/wikipedia/settings/Prefs.kt
Original file line number Diff line number Diff line change
Expand Up @@ -183,9 +183,9 @@ object Prefs {
return PrefsIoUtil.getKey(R.string.preference_key_last_run_time_format, task)
}

var pageLastShown
get() = PrefsIoUtil.getLong(R.string.preference_key_page_last_shown, 0)
set(value) = PrefsIoUtil.setLong(R.string.preference_key_page_last_shown, value)
var pageLastShown: Instant
get() = Instant.ofEpochMilli(PrefsIoUtil.getLong(R.string.preference_key_page_last_shown, 0))
set(instant) = PrefsIoUtil.setLong(R.string.preference_key_page_last_shown, instant.toEpochMilli())

val isImageDownloadEnabled
get() = PrefsIoUtil.getBoolean(R.string.preference_key_show_images, true)
Expand Down

0 comments on commit e88d321

Please sign in to comment.