Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrate TimelineFragment and dependencies to new architecture #3436

Closed
wants to merge 196 commits into from
Closed

Migrate TimelineFragment and dependencies to new architecture #3436

wants to merge 196 commits into from

Commits on Mar 11, 2023

  1. Remove NetworkTimelineRemoteMediator

    The layering of this code was weird. There's paging sources and remote
    mediators making calls "up" in to the viewmodel, so they had a cyclic
    dependency on each other.
    
    And there's a remote mediator when there's no local database to cache to,
    which made things more complicated.
    
    So:
    
    1. Remove the remote mediator
    2. Put the code to fetch statuses in to the paging source
    3. Push the a variant of the "TimelineKind" type in to the paging source
       (probably not its final location), as this needs to be as low down the
       dependency tree as possible to avoid cycle.
       - Implement it as a sealed class instead of an enum, so that the
         subclasses can hold non-null Strings where necessary, instead of relying
         on `!!`
    4. Comment out some code that either needs to be deleted or refactored, I'm
       not sure which yet.
    
    This builds and runs, and shows network timelines (local, federated, etc).
    Some functionality it lost (e.g., retaining state about whether or not the
    user has expanded a status) but that will be restored in future commits.
    Nik Clayton committed Mar 11, 2023
    Configuration menu
    Copy the full SHA
    29ded40 View commit details
    Browse the repository at this point in the history
  2. Merge branch 'develop' into 3433-timeline-fragment-arch

    # Conflicts:
    #	app/src/main/java/com/keylesspalace/tusky/components/timeline/viewmodel/CachedTimelineViewModel.kt
    #	app/src/main/java/com/keylesspalace/tusky/components/timeline/viewmodel/NetworkTimelineViewModel.kt
    #	app/src/main/java/com/keylesspalace/tusky/components/timeline/viewmodel/TimelineViewModel.kt
    Nik Clayton committed Mar 11, 2023
    Configuration menu
    Copy the full SHA
    21f9ceb View commit details
    Browse the repository at this point in the history
  3. Introduce NetworkTimelineRepository, to mediate access to the timeline

    Use this in `NetworkTimelineViewModel`.
    Nik Clayton committed Mar 11, 2023
    Configuration menu
    Copy the full SHA
    2b07406 View commit details
    Browse the repository at this point in the history
  4. Move StatusDisplayOptions responsibility

    Move it from TimelineFragment to TimelinewViewModel.
    
    Update StatusDisplayOptions.kt to handle SHOW_CARDS_IN_TIMELINES pref
    Nik Clayton committed Mar 11, 2023
    Configuration menu
    Copy the full SHA
    464cd3e View commit details
    Browse the repository at this point in the history

Commits on Mar 12, 2023

  1. Push preference handling down to the view model

    Nik Clayton committed Mar 12, 2023
    Configuration menu
    Copy the full SHA
    d184510 View commit details
    Browse the repository at this point in the history
  2. Migrate reblog, favourite, bookmark, and vote

    Nik Clayton committed Mar 12, 2023
    Configuration menu
    Copy the full SHA
    a11bc64 View commit details
    Browse the repository at this point in the history

Commits on Mar 13, 2023

  1. Migrate from TimelineViewModel.Kind to TimelineKind

    The old type was an enum, the new type is a hierarchy of sealed classes.
    
    This allows each class to carry with it the information necessary for that
    timeline.
    
    For example, the PublicFederated timeline needs no additional data. But a
    timeline for a hashtag does.
    
    This simplifies TimelineFragment.newInstance(). Before the called had to
    know which optional parameters to pass in, or whether they should actually
    call newHashtagInstance.
    
    Now they just construct a timeline of the appropriate kind, with the correct
    data, and pass that in.
    
    This also means that initialisation of TimelineFragment does not need to
    unpack data from multiple extras in the launch intent, everything is in the
    parcelized TimelineKind.
    Nik Clayton committed Mar 13, 2023
    Configuration menu
    Copy the full SHA
    ea5b978 View commit details
    Browse the repository at this point in the history
  2. ktlint 11.3.1 and format

    Nik Clayton committed Mar 13, 2023
    Configuration menu
    Copy the full SHA
    60476d2 View commit details
    Browse the repository at this point in the history
  3. Merge branch 'develop' into 3433-timeline-fragment-arch

    # Conflicts:
    #	app/src/main/java/com/keylesspalace/tusky/components/timeline/TimelineFragment.kt
    #	app/src/main/java/com/keylesspalace/tusky/components/timeline/viewmodel/NetworkTimelinePagingSource.kt
    #	app/src/main/java/com/keylesspalace/tusky/components/timeline/viewmodel/NetworkTimelineRemoteMediator.kt
    #	app/src/main/java/com/keylesspalace/tusky/components/timeline/viewmodel/NetworkTimelineViewModel.kt
    Nik Clayton committed Mar 13, 2023
    Configuration menu
    Copy the full SHA
    cf4a58e View commit details
    Browse the repository at this point in the history

Commits on Apr 10, 2023

  1. Merge branch 'develop' into 3433-timeline-fragment-arch

    Nik Clayton committed Apr 10, 2023
    Configuration menu
    Copy the full SHA
    a3b772c View commit details
    Browse the repository at this point in the history
  2. Lint

    Nik Clayton committed Apr 10, 2023
    Configuration menu
    Copy the full SHA
    f435045 View commit details
    Browse the repository at this point in the history

Commits on Apr 15, 2023

  1. First pass at migrating CachedTimeline* to the new architecture

    - Add CachedTimelineRepository between CachedTimelineViewModel and CachedTimelineRemoteMediator
    - Update CachedTimelineViewModel to use the repository
    - Modify TImelineFragment to be closer to NotificationsFragment (easier to figure out what code can be reused)
    - Add DeveloperTools to clear the DB, and remove the most recent 40 statuses
    - Add many TODOs marking code to refactor or remove
    Nik Clayton committed Apr 15, 2023
    Configuration menu
    Copy the full SHA
    83ac6ba View commit details
    Browse the repository at this point in the history
  2. Fix typo

    Nik Clayton committed Apr 15, 2023
    Configuration menu
    Copy the full SHA
    728e6f1 View commit details
    Browse the repository at this point in the history
  3. Remove period

    Nik Clayton committed Apr 15, 2023
    Configuration menu
    Copy the full SHA
    4e965e2 View commit details
    Browse the repository at this point in the history
  4. Remove placeholder types

    - Remove StatusViewData.Placeholder
    - Move StatusViewData.Concrete into StatusViewData
    Nik Clayton committed Apr 15, 2023
    Configuration menu
    Copy the full SHA
    c633d99 View commit details
    Browse the repository at this point in the history
  5. Lint

    Nik Clayton committed Apr 15, 2023
    Configuration menu
    Copy the full SHA
    d2c4de2 View commit details
    Browse the repository at this point in the history
  6. Remove "Load more" handling from Timeline view models

    Nik Clayton committed Apr 15, 2023
    Configuration menu
    Copy the full SHA
    a326f31 View commit details
    Browse the repository at this point in the history
  7. Remove PlaceholderViewHolder

    - Delete the class
    - Update instantiation locations
    - Remove obsolete string resource
    Nik Clayton committed Apr 15, 2023
    Configuration menu
    Copy the full SHA
    26673ad View commit details
    Browse the repository at this point in the history

Commits on Apr 16, 2023

  1. Stop using the ReadingOrder preference

    Nik Clayton committed Apr 16, 2023
    Configuration menu
    Copy the full SHA
    98dba8d View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    f29c35d View commit details
    Browse the repository at this point in the history
  3. Remove unnecessary constant

    Nik Clayton committed Apr 16, 2023
    Configuration menu
    Copy the full SHA
    02cdbba View commit details
    Browse the repository at this point in the history
  4. Move cache pruning to a WorkManager worker

    CachedTimelineViewModel no longer needs an injected AppDatabase.
    
    To do this:
    
    - Extend what was `NotificationWorkerFactory` to `WorkerFactory`. This can construct arbitrary Workers as long as they provide their own Factory for construction.
    
    The per-Worker factory contains any injected components just for that worker type, keeping `WorkerFactory` clean.
    
    - Move `NotificationWorkerFactory` to the new model.
    
    - Implement `PruneCacheWorker`, and remove the code from `CachedTimelineViewModel`.
    
    - Create the periodic worker in `TuskyApplication`, ensuring that the database is only pruned when the device is idle.
    Nik Clayton committed Apr 16, 2023
    Configuration menu
    Copy the full SHA
    257074d View commit details
    Browse the repository at this point in the history
  5. Update timeline on mutes and blocks.

    Nik Clayton committed Apr 16, 2023
    Configuration menu
    Copy the full SHA
    322d2df View commit details
    Browse the repository at this point in the history
  6. AGP 8 / Java 17 (for Android Studio Flamingo)

    Nik Clayton committed Apr 16, 2023
    Configuration menu
    Copy the full SHA
    e4c1584 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    c91a931 View commit details
    Browse the repository at this point in the history
  8. Emit UiSuccess events when a status is composed or edited

    This pushes the last of the EventHub responsibility out of TimelineFragment in to TimelineViewModel
    Nik Clayton committed Apr 16, 2023
    Configuration menu
    Copy the full SHA
    00a8fc5 View commit details
    Browse the repository at this point in the history
  9. Move TimelineKind definition to a separate file

    Nik Clayton committed Apr 16, 2023
    Configuration menu
    Copy the full SHA
    56ea51f View commit details
    Browse the repository at this point in the history

Commits on Apr 17, 2023

  1. Skeleton code to save the user's reading position

    Doesn't actually save it (is consistent with current behaviour) but provides the hook from which to hang the future code.
    Nik Clayton committed Apr 17, 2023
    Configuration menu
    Copy the full SHA
    e784949 View commit details
    Browse the repository at this point in the history
  2. Lint

    Nik Clayton committed Apr 17, 2023
    Configuration menu
    Copy the full SHA
    579ff39 View commit details
    Browse the repository at this point in the history

Commits on Apr 18, 2023

  1. Handle filters with a repository and flows

    - Create a FiltersRepository
    - Move code to fetch filters in to the new repository
    - Fetch filters on startup, and when relevant preferences change
    - Expose errors that occur when loading filters in the UI
    
    This removes the API dependency from the timeline view models.
    Nik Clayton committed Apr 18, 2023
    Configuration menu
    Copy the full SHA
    cfc9dcc View commit details
    Browse the repository at this point in the history
  2. Use a channel for errors, update docs

    Nik Clayton committed Apr 18, 2023
    Configuration menu
    Copy the full SHA
    4522054 View commit details
    Browse the repository at this point in the history

Commits on Apr 19, 2023

  1. Implement load state adapter for timelines

    This is identical to the existing adapter for notifications, so rename that one and use it for both.
    Nik Clayton committed Apr 19, 2023
    Configuration menu
    Copy the full SHA
    4fd7a70 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    6c2147e View commit details
    Browse the repository at this point in the history

Commits on Apr 20, 2023

  1. Fetch network pages using min_id not since_id

    Nik Clayton committed Apr 20, 2023
    Configuration menu
    Copy the full SHA
    4a080fa View commit details
    Browse the repository at this point in the history
  2. Additional logging

    Nik Clayton committed Apr 20, 2023
    Configuration menu
    Copy the full SHA
    6f9291e View commit details
    Browse the repository at this point in the history
  3. Cache statuses from the network in the viewmodel

    Nik Clayton committed Apr 20, 2023
    Configuration menu
    Copy the full SHA
    1cf6781 View commit details
    Browse the repository at this point in the history
  4. Remove "flowOn" comment

    Retrofit and Room both run suspend functions on the appropriate dispatcher already
    Nik Clayton committed Apr 20, 2023
    Configuration menu
    Copy the full SHA
    285d3a2 View commit details
    Browse the repository at this point in the history

Commits on Apr 21, 2023

  1. Additional documentation for StatusViewData fields

    Nik Clayton committed Apr 21, 2023
    Configuration menu
    Copy the full SHA
    bf19e7f View commit details
    Browse the repository at this point in the history

Commits on Apr 22, 2023

  1. Fix typo

    Nik Clayton committed Apr 22, 2023
    Configuration menu
    Copy the full SHA
    52ea238 View commit details
    Browse the repository at this point in the history

Commits on Apr 23, 2023

  1. Initial in-memory cache for timeline data

    Nik Clayton committed Apr 23, 2023
    Configuration menu
    Copy the full SHA
    7146e4d View commit details
    Browse the repository at this point in the history
  2. Update network status cache in response to events

    Nik Clayton committed Apr 23, 2023
    Configuration menu
    Copy the full SHA
    70d71eb View commit details
    Browse the repository at this point in the history
  3. Remove more code that deals with placeholders

    Nik Clayton committed Apr 23, 2023
    Configuration menu
    Copy the full SHA
    c168cf2 View commit details
    Browse the repository at this point in the history
  4. Lint

    Nik Clayton committed Apr 23, 2023
    Configuration menu
    Copy the full SHA
    28f46e6 View commit details
    Browse the repository at this point in the history

Commits on Apr 24, 2023

  1. Translated using Weblate (Latvian)

    Currently translated at 90.8% (548 of 603 strings)
    
    Translated using Weblate (Latvian)
    
    Currently translated at 90.5% (546 of 603 strings)
    
    Translated using Weblate (Latvian)
    
    Currently translated at 90.3% (545 of 603 strings)
    
    Co-authored-by: Mārtiņš Bruņenieks <[email protected]>
    Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/lv/
    Translation: Tusky/Tusky
    papuass authored and weblate committed Apr 24, 2023
    Configuration menu
    Copy the full SHA
    0f0739d View commit details
    Browse the repository at this point in the history
  2. Translated using Weblate (Vietnamese)

    Currently translated at 100.0% (603 of 603 strings)
    
    Translated using Weblate (Vietnamese)
    
    Currently translated at 100.0% (603 of 603 strings)
    
    Co-authored-by: Hồ Nhất Duy <[email protected]>
    Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/vi/
    Translation: Tusky/Tusky
    mastoduy authored and weblate committed Apr 24, 2023
    Configuration menu
    Copy the full SHA
    97d50e3 View commit details
    Browse the repository at this point in the history
  3. Translated using Weblate (Welsh)

    Currently translated at 100.0% (603 of 603 strings)
    
    Co-authored-by: Rhoslyn Prys <[email protected]>
    Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/cy/
    Translation: Tusky/Tusky
    Meddal authored and weblate committed Apr 24, 2023
    Configuration menu
    Copy the full SHA
    1d37442 View commit details
    Browse the repository at this point in the history
  4. Translated using Weblate (Galician)

    Currently translated at 100.0% (603 of 603 strings)
    
    Co-authored-by: XoseM <[email protected]>
    Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/gl/
    Translation: Tusky/Tusky
    xmgz authored and weblate committed Apr 24, 2023
    Configuration menu
    Copy the full SHA
    20c03f4 View commit details
    Browse the repository at this point in the history
  5. Translated using Weblate (German)

    Currently translated at 100.0% (603 of 603 strings)
    
    Co-authored-by: Deleted User <[email protected]>
    Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/de/
    Translation: Tusky/Tusky
    Deleted User authored and weblate committed Apr 24, 2023
    Configuration menu
    Copy the full SHA
    b2b6be2 View commit details
    Browse the repository at this point in the history
  6. Translated using Weblate (Occitan)

    Currently translated at 99.6% (601 of 603 strings)
    
    Co-authored-by: Quentí <[email protected]>
    Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/oc/
    Translation: Tusky/Tusky
    Quentí authored and weblate committed Apr 24, 2023
    Configuration menu
    Copy the full SHA
    3b9f62c View commit details
    Browse the repository at this point in the history
  7. Translated using Weblate (Swedish)

    Currently translated at 97.8% (590 of 603 strings)
    
    Co-authored-by: Luna Jernberg <[email protected]>
    Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/sv/
    Translation: Tusky/Tusky
    bittin authored and weblate committed Apr 24, 2023
    Configuration menu
    Copy the full SHA
    ef2bdaf View commit details
    Browse the repository at this point in the history
  8. Merge remote-tracking branch 'weblate/develop' into develop

    # Conflicts:
    #	app/src/main/res/values-cy/strings.xml
    #	app/src/main/res/values-lv/strings.xml
    #	app/src/main/res/values-oc/strings.xml
    #	app/src/main/res/values-sv/strings.xml
    Nik Clayton committed Apr 24, 2023
    Configuration menu
    Copy the full SHA
    6511387 View commit details
    Browse the repository at this point in the history
  9. Merge branch 'tuskyapp:develop' into develop

    Nik Clayton authored Apr 24, 2023
    Configuration menu
    Copy the full SHA
    736b195 View commit details
    Browse the repository at this point in the history
  10. Merge branch 'tuskyapp:develop' into develop

    Nik Clayton authored Apr 24, 2023
    Configuration menu
    Copy the full SHA
    6e0bffd View commit details
    Browse the repository at this point in the history
  11. Revert "AGP 8 / Java 17 (for Android Studio Flamingo)"

    This reverts commit e4c1584.
    Nik Clayton committed Apr 24, 2023
    Configuration menu
    Copy the full SHA
    1f31697 View commit details
    Browse the repository at this point in the history
  12. Merge branch 'develop' into 3433-timeline-fragment-arch

    # Conflicts:
    #	app/src/main/java/com/keylesspalace/tusky/components/timeline/TimelineFragment.kt
    #	app/src/main/res/values-cy/strings.xml
    #	app/src/main/res/values-de/strings.xml
    #	app/src/main/res/values-lv/strings.xml
    #	app/src/main/res/values-oc/strings.xml
    #	app/src/main/res/values-sv/strings.xml
    #	app/src/main/res/values-zh-rCN/strings.xml
    Nik Clayton committed Apr 24, 2023
    Configuration menu
    Copy the full SHA
    8b68d88 View commit details
    Browse the repository at this point in the history

Commits on Apr 26, 2023

  1. Handle all preferences that update statusDisplayOptions

    Nik Clayton committed Apr 26, 2023
    Configuration menu
    Copy the full SHA
    234a5dc View commit details
    Browse the repository at this point in the history
  2. Merge branch 'develop' into 3433-timeline-fragment-arch

    Nik Clayton committed Apr 26, 2023
    Configuration menu
    Copy the full SHA
    970ea6d View commit details
    Browse the repository at this point in the history
  3. Lint

    Nik Clayton committed Apr 26, 2023
    Configuration menu
    Copy the full SHA
    cca3022 View commit details
    Browse the repository at this point in the history
  4. Derive alwaysShowSensitiveMedia and alwaysOpenSpoiler from StatusDisp…

    …layOptions
    Nik Clayton committed Apr 26, 2023
    Configuration menu
    Copy the full SHA
    b8a04aa View commit details
    Browse the repository at this point in the history
  5. Throttle clicks, instead of debouncing them

    This ensures that the click is acted on immediately, instead of waiting 500ms and then acting.
    Nik Clayton committed Apr 26, 2023
    Configuration menu
    Copy the full SHA
    2fdecca View commit details
    Browse the repository at this point in the history
  6. Remove "Reading order" preference

    Nik Clayton committed Apr 26, 2023
    Configuration menu
    Copy the full SHA
    a315566 View commit details
    Browse the repository at this point in the history

Commits on Apr 28, 2023

  1. Clear local caches on upgrade

    Nik Clayton committed Apr 28, 2023
    Configuration menu
    Copy the full SHA
    4ec02a3 View commit details
    Browse the repository at this point in the history
  2. Clean up all accounts, not just the active one.

    Nik Clayton committed Apr 28, 2023
    Configuration menu
    Copy the full SHA
    deab885 View commit details
    Browse the repository at this point in the history

Commits on May 8, 2023

  1. Merge branch 'develop' into 3433-timeline-fragment-arch

    # Conflicts:
    #	app/src/main/java/com/keylesspalace/tusky/components/timeline/TimelineFragment.kt
    #	app/src/main/java/com/keylesspalace/tusky/components/timeline/viewmodel/CachedTimelineViewModel.kt
    Nik Clayton committed May 8, 2023
    Configuration menu
    Copy the full SHA
    7fefbc9 View commit details
    Browse the repository at this point in the history

Commits on May 11, 2023

  1. Configuration menu
    Copy the full SHA
    b794229 View commit details
    Browse the repository at this point in the history
  2. Merge remote-tracking branch 'origin/develop' into 3433-timeline-frag…

    …ment-arch
    Nik Clayton committed May 11, 2023
    Configuration menu
    Copy the full SHA
    1608dae View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    075d3fc View commit details
    Browse the repository at this point in the history
  4. Wrap a debug block in BuildConfig.DEBUG check

    Nik Clayton committed May 11, 2023
    Configuration menu
    Copy the full SHA
    1321535 View commit details
    Browse the repository at this point in the history
  5. Update tests for NetworkTimelinePagingSource

    Nik Clayton committed May 11, 2023
    Configuration menu
    Copy the full SHA
    b714aa4 View commit details
    Browse the repository at this point in the history

Commits on May 12, 2023

  1. Add a comparator to the page cache

    - Ensures that status IDs (used as keys) are sorted correctly.
    - Update tests to use it
    - Add tests for gaps in the page cache
    - Add tests for fetching stuff outside the page cache
    Nik Clayton committed May 12, 2023
    Configuration menu
    Copy the full SHA
    e1e8fdc View commit details
    Browse the repository at this point in the history
  2. Update CachedTimelineRemoteMediatorTest

    - Use runTest instead of runBlocking
    - Account for different API calls in new remote mediator code
    - Remove bogus "endOfPaginationReached" check
    Nik Clayton committed May 12, 2023
    Configuration menu
    Copy the full SHA
    6a94592 View commit details
    Browse the repository at this point in the history
  3. Update NetworkTimelineRemoteMediator tests

    Nik Clayton committed May 12, 2023
    Configuration menu
    Copy the full SHA
    a56520e View commit details
    Browse the repository at this point in the history
  4. Lint

    Nik Clayton committed May 12, 2023
    Configuration menu
    Copy the full SHA
    7f36e93 View commit details
    Browse the repository at this point in the history
  5. Perform long running operations with an external scope

    Using the view model's scope for long running operations is a problem.
    If the user navigates away and the view model is killed the operation
    will be cancelled.
    
    This is OK when fetching data. But sending data using the API (e.g.,
    bookmarking a status) should continue in the background after the
    user navigates away.
    
    - Provide an ApplicationScope injectable
    - Inject it to the repositories that need it
    - Use the scope when performing potentially long-running operations
    Nik Clayton committed May 12, 2023
    Configuration menu
    Copy the full SHA
    4b35516 View commit details
    Browse the repository at this point in the history
  6. Remove obsolete TODO

    Nik Clayton committed May 12, 2023
    Configuration menu
    Copy the full SHA
    856b8f9 View commit details
    Browse the repository at this point in the history
  7. Lint

    Nik Clayton committed May 12, 2023
    Configuration menu
    Copy the full SHA
    730c790 View commit details
    Browse the repository at this point in the history

Commits on May 13, 2023

  1. Initial network timeline tests

    Similar to the ones for notifications.
    
    Refactored account preference handling so that they can be tested:
    
    - Renamed AccountPreferenceHandler to AccountPreferenceDataStore
    - Injected it in to components that need it
    - Mock it in tests
    
    Tests showed that PrefKEys.MEDIA_PREVIEW_ENABLED wasn't being handled,
    so update code to do that properly.
    Nik Clayton committed May 13, 2023
    Configuration menu
    Copy the full SHA
    807b06e View commit details
    Browse the repository at this point in the history
  2. Merge remote-tracking branch 'upstream/develop' into 3433-timeline-fr…

    …agment-arch
    Nik Clayton committed May 13, 2023
    Configuration menu
    Copy the full SHA
    8bd297d View commit details
    Browse the repository at this point in the history
  3. authorServerId can be non-null

    Requires a database migration
    Nik Clayton committed May 13, 2023
    Configuration menu
    Copy the full SHA
    ce76ce1 View commit details
    Browse the repository at this point in the history
  4. Save visible status ID only after knowing what the timeline kind is

    - Fixes a bug where the reading position could get reset
    - Confirm it stays fixed with tests
    Nik Clayton committed May 13, 2023
    Configuration menu
    Copy the full SHA
    60fbf62 View commit details
    Browse the repository at this point in the history
  5. Lint

    Nik Clayton committed May 13, 2023
    Configuration menu
    Copy the full SHA
    638118f View commit details
    Browse the repository at this point in the history
  6. Add equivalent tests for the CachedTimelineViewModel

    Nik Clayton committed May 13, 2023
    Configuration menu
    Copy the full SHA
    94d3498 View commit details
    Browse the repository at this point in the history
  7. Delete obsolete translations

    Nik Clayton committed May 13, 2023
    Configuration menu
    Copy the full SHA
    10d1aef View commit details
    Browse the repository at this point in the history

Commits on May 14, 2023

  1. Note the desired visibility for makeEmptyPageCache()

    Nik Clayton committed May 14, 2023
    Configuration menu
    Copy the full SHA
    628f9b3 View commit details
    Browse the repository at this point in the history
  2. Lint

    Nik Clayton committed May 14, 2023
    Configuration menu
    Copy the full SHA
    41f729e View commit details
    Browse the repository at this point in the history

Commits on Jun 12, 2023

  1. Merge tag 'v22.0-beta.3' into 3433-timeline-fragment-arch

    v22.0-beta.3
    
    # -----BEGIN PGP SIGNATURE-----
    #
    # iQIzBAABCAAdFiEEj23e8Mh/GILvvT0B+VJoFZwuyJcFAmRiJ0cACgkQ+VJoFZwu
    # yJdOlA/+JSHDKd6cpqYoP8UO1dRIUCr1btRREiDS6AC8hP5dZuyWUIcMzjQSEu5f
    # rU0/qH5nvyw2P2CHD4czVzqjAxtZxF6mosA5pTdbh/TGGkCD4l8cAqwpXIh2ZXhd
    # nKe/13Cadg6KGSpUHIz/+QXCSYq3hwEtJMqRiVT6X9wYM35vHna5RpYdEDOGCBXA
    # 7ravEQQVTAu/O6GXeQ12IaPVmy6R+ve9ZKOawcTt+TjApatbuWtACsRtLV1T6EG0
    # 86moNfrdofFF2JhtWblJg0+qjc54Vzay4HcVKfi/Rvs67BZPpnogpglC1hEaso5f
    # lXJ6gHuR2Mr09C7Y88ACleqonwcW9IcssCmtNaOo1ZPkTbS2WmQJue/coTWdPG7J
    # jGeyVB+dgI1GMTCpqV9+ZjspJDIYPcWi+1qgcVdlPwj4BmitAJb5p3SGywir+eWp
    # Ig87PQ+A2VbJs7ikdXA7dZDy8uibQ5RoeVywxx745irfy+AzY1C/Qdqaq87Lm2FQ
    # lWl2pv3+Xotd0Qs21Pyzj16uSXhqBwHpR+8Eze8E/nJtMjXwW5A2MZBMqnDL/H5G
    # pcJdT9bzHQoRDcIop1MCDuLxYv3sz/a8iyE/LZcCsC3Lw1nggic9YFMq/ayWH7Lu
    # kw59skaczZXp6CNdzsclpXGhE/LWDliI5nmK2MpSuOikEJKuwsA=
    # =IwZs
    # -----END PGP SIGNATURE-----
    # gpg: Signature made 15/05/2023 14:36:23 W. Europe Summer Time
    # gpg:                using RSA key 8F6DDEF0C87F1882EFBD3D01F95268159C2EC897
    # gpg: Good signature from "Nik Clayton <[email protected]>" [ultimate]
    Nik Clayton committed Jun 12, 2023
    Configuration menu
    Copy the full SHA
    68d3ad6 View commit details
    Browse the repository at this point in the history
  2. Merge tag 'v22.0-beta.4' into 3433-timeline-fragment-arch

    v22.0-beta.4
    
    # -----BEGIN PGP SIGNATURE-----
    #
    # iQIzBAABCAAdFiEEj23e8Mh/GILvvT0B+VJoFZwuyJcFAmRj1N4ACgkQ+VJoFZwu
    # yJctQg/7BMRmIl/PdAV7ENa81Mhb7w5egvunZsSfZqYsS0z6745phyCLDDGbzGe5
    # nKB/8SEtrlr/QUVQEeQG/ALDf+DKrbQMH/ADJWhbIb0Dv+y9VbF2HyFR60vGA/5I
    # vnBqXkfbBaROTyp5RTancr/wotufmOMl5Pln5gOgzYnNtF/E5CaF5NgYHdhI0c3z
    # HZLl0srcnqeF75RZRGhZIzAQlxmkcZlGaLYzFTLtvNyGcCiV656yriKSvWt+4q3Y
    # il8riz0riYfvWM8Kri8a0NqA4WwI9hYHJMjvHMpJYO83+lrGLVbovm1BpjTVcsgD
    # waBVHf0Sg9ZEcDOBvh9wxG7hD6spiqHD8XlKMRIUJ6CShN1syXrUpMKtIRhofZxi
    # 29bXFE1zRnvBa7Zkj46q3mpdDqygh3XeA8mhF1I5kFeZ6qjJ/7FEYxbE5IUGWH6m
    # VS4bviSCLOXCxD6ztsjFRIy/LHhZi61vPklWp21wusgQRTWzK33li3/fqgU4T81a
    # U6nu3Vnu51qsqpZuRs5mCF5dM3OUR25fbHcT6YEAvh1OLauNA5Fhc6jV3U6DaDUb
    # IbDzy8E9f1ZbcCkDuDyRPiQ8dg9W2XhobCWObwd1RVOvReWcyTSrSsQxXPf2CDuY
    # 3784IOi+hgWUVYt5ykks1HRREi5ZAbeyZkEI4JK1p2oakAQYLls=
    # =PSF4
    # -----END PGP SIGNATURE-----
    # gpg: Signature made 16/05/2023 21:09:18 W. Europe Summer Time
    # gpg:                using RSA key 8F6DDEF0C87F1882EFBD3D01F95268159C2EC897
    # gpg: Good signature from "Nik Clayton <[email protected]>" [ultimate]
    Nik Clayton committed Jun 12, 2023
    Configuration menu
    Copy the full SHA
    d40dc32 View commit details
    Browse the repository at this point in the history
  3. Merge tag 'v22.0-beta.5' into 3433-timeline-fragment-arch

    v22.0-beta.5
    
    # -----BEGIN PGP SIGNATURE-----
    #
    # iQIzBAABCAAdFiEEj23e8Mh/GILvvT0B+VJoFZwuyJcFAmRo0F8ACgkQ+VJoFZwu
    # yJdUdA//fX5iNyL7zxwBGklfuHpgtRSwjH4SVwzvcV7gHUp5EaAW5vKx9Fghu1iv
    # yuCbEndvH5akN3+5dZkoBPCQ6AkQfMIl4hhFx4HQvpnYkI4Kcl57vvGU6B3Gd4jj
    # Ws0EDp49tKNR42MlZqDm1uOZ2Hy/GZtRyOBLmIM5GIm9IGjaJkaCIzji5e8ainwZ
    # h6wg4r8tUuioCc8XItJrJyVbedGXPBGNrFAGqnNlQgNNe0i/S6HuF9XIHp9iKMk4
    # SWZXIoikeJvHPxGYhzvarf2rNKQtV/+zK92el4QO/MJBbaOafuoA32e+2kzPslEB
    # wzRKsl8VvbtJe1m1j+91oU4jTCb37KyqF3Boisk/3SnACeXV5rctmVRRBjL2tDv3
    # pXBQDttFtn6C2euBSKH1e21Ukywua75CRlZNZKYqLL4iUjNuN0zFEDPCVCX+dMJt
    # DEpmkzj0f5n0H+A7WfhMSKQ+7II9A1vZBmzAg8FrnRoDP0IoH7Y++gvEbO+a1sWx
    # fAstRDXiJci+7sq5LwkvAv5W2mTJqBdziWYPU3MhRkmrWWE1nrLjsFi2g7RSd2LP
    # 4XUB57TGNhiPGfV41W2MztVO5/U0jZXyrNOMbWKIg715wDDyVtlc5GgXzl3CGxzs
    # 89EnKqy268Tml6KhemlxX9feWUp8yNA91Fpm3d/1Fu7wBOEwI+k=
    # =pXd1
    # -----END PGP SIGNATURE-----
    # gpg: Signature made 20/05/2023 15:51:27 W. Europe Summer Time
    # gpg:                using RSA key 8F6DDEF0C87F1882EFBD3D01F95268159C2EC897
    # gpg: Good signature from "Nik Clayton <[email protected]>" [ultimate]
    
    # Conflicts:
    #	app/schemas/com.keylesspalace.tusky.db.AppDatabase/51.json
    Nik Clayton committed Jun 12, 2023
    Configuration menu
    Copy the full SHA
    0dddfce View commit details
    Browse the repository at this point in the history
  4. Merge tag 'v22.0-beta.6' into 3433-timeline-fragment-arch

    # -----BEGIN PGP SIGNATURE-----
    # Version: BCPG v1.72
    #
    # iQJDBAABCAAtBQJkbnazFiEEj23e8Mh/GILvvT0B+VJoFZwuyJcPHG5pa0BuZ28u
    # b3JnLnVrAAoJEPlSaBWcLsiXn6kQAJKtNw/sWu2WG8XqMIq2+CgCnE+su5kDLoYH
    # O66lfWkRyebiAnYWO6wot6w5oVkakfML70LtfocarAqW6TnYR5wy4typn8D5zyxg
    # yeEYBRcTjHPxsBIhMo8+QJqUsyDo+xbQaXsKYX6zc7MQE+bsO+4iBa3GT/vIlw/p
    # +PW11RAleunApwiV8aorsro9tAu0nKOSjZqATdwiSZVt35zYHYJEP5kVaofSAAWE
    # LS+Gp6tPVVRIfra0YpD1S+6Z++4QPYYQ7PO0CGh3fiFvp4f+FuGB4suE5Hi7pB2d
    # werA5TjesSujdLyjxHNep8fsEbc1b7G636dd6+t84ENjklINZgrSiNjzwFpxUrWh
    # ZpK8cx3KGLoMd36xmRjX/BO1qam8VYsmvIDGF6Ojx5G+6LVMtryhGO6C9sd8I3s4
    # f/dUKpQnKYLMaPvA+wU9oDj1EPAdzcf//ss6Vj8JR+w8MuS3lfl5DiEfWQJfh464
    # tHdiSAAKPGC9JF64Z7AtJYSD+52KA9xzvApCE23d3NWD7KwEWhbQptpypzuyk9TO
    # vsxQAKgV2XU938IGJnrGPqqPrXzE3/QlgTp07vb67Y1BtaUUYxPMPjGZuXzi4goq
    # PCfJ6QiSUn+Ob4tmcVE27cP37Wbyo72km7vObcKQ1Af0aH9RQLkXqTjNP9PYNoK7
    # 6oVWqdML
    # =sic4
    # -----END PGP SIGNATURE-----
    # gpg: Signature made 24/05/2023 22:42:27 W. Europe Summer Time
    # gpg:                using RSA key 8F6DDEF0C87F1882EFBD3D01F95268159C2EC897
    # gpg:                issuer "[email protected]"
    # gpg: Good signature from "Nik Clayton <[email protected]>" [ultimate]
    Nik Clayton committed Jun 12, 2023
    Configuration menu
    Copy the full SHA
    cb92d28 View commit details
    Browse the repository at this point in the history
  5. Merge tag 'v22.0-beta.7' into 3433-timeline-fragment-arch

    # -----BEGIN PGP SIGNATURE-----
    # Version: BCPG v1.72
    #
    # iQJDBAABCAAtBQJkfcE3FiEEj23e8Mh/GILvvT0B+VJoFZwuyJcPHG5pa0BuZ28u
    # b3JnLnVrAAoJEPlSaBWcLsiXp30QALZRVQq/bGQvpLNrONutURN/7QOhH7KimM0/
    # nxjEZsQ0yGYHq9L9t92XuE2IwgimpXFXB5LymCXGQPdnUvpl3VMWuln1Ax+0Jjmg
    # oPP7ty782e9ZEH9tZNX4qWsgqK5zEaPhV3IfZHiBYvFwAaNLX2pOxNp7yvTYGXlU
    # 93Kp3Me8MhAmMZou9eGQFFpTRV0CNw0d/XZK8SoVbHyq5O/PrbUaCOeBeBB3viG0
    # vqqEuiyxS0e4lI56OOM/ktCKO88L5beXtzXsjDBvqc4Je6iF9ChKgrFAUkV2keFH
    # dchRuecnOrN2tZk450iAktO/slZ6tifq0dk27ATMkH6+/Z355ESap5ZiI9LNwZ3u
    # W3UDsrkUu4ovMsytFb5fqtescLBoslIXka6pYy1BMPVpq6NbZXGInwOESPUOLvcG
    # xJ505AR1tPPbMZfmtTys6ENXqE9bPfr9MuUQNMlv2Ax+Gg7ch3qIZrarUfsSzx6c
    # FfiglSWJ9Dq8ltViWNPghXFmeGdTyyv97z1hY/xhOx2cM4JocGnih+Nv0OnY1X90
    # 0IyUJMKM/TpGUs9o2FotvmWm5JsIueBZjVMhPZ0I2nIcH+DIFEbU8OIAeGUhL5Ni
    # Fm0mqNvNzouZZFx06Hsb08xVQX3MK1ZwsOk/Eo1BIvpxORfzeoLtvDd/+inoLsBt
    # chyGobbZ
    # =6qUD
    # -----END PGP SIGNATURE-----
    # gpg: Signature made 05/06/2023 13:04:23 W. Europe Summer Time
    # gpg:                using RSA key 8F6DDEF0C87F1882EFBD3D01F95268159C2EC897
    # gpg:                issuer "[email protected]"
    # gpg: Good signature from "Nik Clayton <[email protected]>" [ultimate]
    
    # Conflicts:
    #	app/src/main/java/com/keylesspalace/tusky/components/notifications/NotificationsPagingSource.kt
    Nik Clayton committed Jun 12, 2023
    Configuration menu
    Copy the full SHA
    ff1e9d5 View commit details
    Browse the repository at this point in the history
  6. Merge tag 'v22.0' into 3433-timeline-fragment-arch

    v22.0
    
    # -----BEGIN PGP SIGNATURE-----
    # Version: BCPG v1.72
    #
    # iQJDBAABCAAtBQJkge+yFiEEj23e8Mh/GILvvT0B+VJoFZwuyJcPHG5pa0BuZ28u
    # b3JnLnVrAAoJEPlSaBWcLsiXuf0P/iEtmFxx7hB+Kk3k91xclQHUM7CVgJJfL4qu
    # PvLdlRkYzDIHr2LLCmEmWpXRceR5RJR6WPfiP5uIBmHF55RGcYUuTDUYEAbHNNoL
    # aZ4YRaPFKsbEn8WGJB/BBz5RXs5dp0bzxmZnE0I66f5D7HcKQ1VxON6+sQ52quN1
    # 4nBpJRoO6YQp1qTKqRjMt58CB4HBVC2kW+DtgILtY0npp7wNHpKJTRY9XLLCLeJJ
    # BUS3ede0sc9hRgYDEyNRvZJmQtblN3lhsrOZBY/DXmtBzo9yiM2Dg7gjfl3Vaz4Z
    # JJwjHsRsPS7pIhp+3KK8yNrFYFfOg0+T2cBiIWicjWIF+uruzEKt+oc4LaNmo6gp
    # aSJMTP7DONfmYamuxQJwAzc0Y8wiALjslwRpl5GRpHvQabu6twR0wNgBdfm1qGdA
    # QwAPVqpKqBU4b2r1v9FQVwqAEnXPxj0+7uYrQCNqEsIr9Y0u/rrZQlorvOSIptwf
    # Cs1h72xJt+EVMcoYtyn3TnB5hJcrg0vy2835NIeVNL1eRRrfXR6buzcfoake6ip8
    # CZLEg5MsXZDsPvzII+TDUBrAIzntdEzGzENgjfrkiNO30B+N88LfuZQ5tQGGX26y
    # 8bvn5sz+JGUiulwxXqnHunQittytDRXGD13d1OGibsLGblkeNi1SAyp/08d370jP
    # VIPdBE1D
    # =YDcR
    # -----END PGP SIGNATURE-----
    # gpg: Signature made 08/06/2023 17:11:46 W. Europe Summer Time
    # gpg:                using RSA key 8F6DDEF0C87F1882EFBD3D01F95268159C2EC897
    # gpg:                issuer "[email protected]"
    # gpg: Good signature from "Nik Clayton <[email protected]>" [ultimate]
    Nik Clayton committed Jun 12, 2023
    Configuration menu
    Copy the full SHA
    3d0ce79 View commit details
    Browse the repository at this point in the history
  7. Merge remote-tracking branch 'origin/develop' into 3433-timeline-frag…

    …ment-arch
    
    # Conflicts:
    #	app/lint-baseline.xml
    #	app/src/main/java/com/keylesspalace/tusky/TuskyApplication.kt
    #	app/src/main/java/com/keylesspalace/tusky/components/notifications/NotificationWorker.kt
    #	app/src/main/java/com/keylesspalace/tusky/components/notifications/NotificationsViewModel.kt
    #	app/src/main/java/com/keylesspalace/tusky/components/timeline/viewmodel/CachedTimelineViewModel.kt
    #	app/src/main/java/com/keylesspalace/tusky/di/WorkerModule.kt
    #	app/src/main/java/com/keylesspalace/tusky/util/FlowExtensions.kt
    #	gradle/libs.versions.toml
    Nik Clayton committed Jun 12, 2023
    Configuration menu
    Copy the full SHA
    1297498 View commit details
    Browse the repository at this point in the history
  8. Merge branch 'develop' into 3433-timeline-fragment-arch

    # Conflicts:
    #	app/src/main/java/com/keylesspalace/tusky/components/preference/AccountPreferencesFragment.kt
    #	app/src/main/java/com/keylesspalace/tusky/settings/AccountPreferenceDataStore.kt
    #	app/src/main/res/values-es/strings.xml
    #	app/src/main/res/values-fa/strings.xml
    #	app/src/main/res/values-lv/strings.xml
    Nik Clayton committed Jun 12, 2023
    Configuration menu
    Copy the full SHA
    fb869c5 View commit details
    Browse the repository at this point in the history
  9. Merge remote-tracking branch 'upstream/develop' into 3433-timeline-fr…

    …agment-arch
    Nik Clayton committed Jun 12, 2023
    Configuration menu
    Copy the full SHA
    6377bfa View commit details
    Browse the repository at this point in the history
  10. Make workerfactories private

    Nik Clayton committed Jun 12, 2023
    Configuration menu
    Copy the full SHA
    018ef0f View commit details
    Browse the repository at this point in the history

Commits on Jun 15, 2023

  1. Merge remote-tracking branch 'upstream/develop' into 3433-timeline-fr…

    …agment-arch
    Nik Clayton committed Jun 15, 2023
    Configuration menu
    Copy the full SHA
    7f68b81 View commit details
    Browse the repository at this point in the history
  2. Set initialLoadSize to match the page size

    Nik Clayton committed Jun 15, 2023
    Configuration menu
    Copy the full SHA
    2cedf78 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    f5a9836 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    cb4abe0 View commit details
    Browse the repository at this point in the history
  5. Use the pageSize parameter

    Nik Clayton committed Jun 15, 2023
    Configuration menu
    Copy the full SHA
    0931594 View commit details
    Browse the repository at this point in the history
  6. Move save visible ID functionality in to a function

    Nik Clayton committed Jun 15, 2023
    Configuration menu
    Copy the full SHA
    fc8fb77 View commit details
    Browse the repository at this point in the history
  7. Explicitly throw and catch timeline case errors

    Nik Clayton committed Jun 15, 2023
    Configuration menu
    Copy the full SHA
    fbba259 View commit details
    Browse the repository at this point in the history

Commits on Jun 16, 2023

  1. Don't set a state restoration policy explicitly, the base adapter alr…

    …eady does that.
    Nik Clayton committed Jun 16, 2023
    Configuration menu
    Copy the full SHA
    f380053 View commit details
    Browse the repository at this point in the history
  2. Initial "Load newest" implementation

    Nik Clayton committed Jun 16, 2023
    Configuration menu
    Copy the full SHA
    8a6c2cc View commit details
    Browse the repository at this point in the history

Commits on Jun 18, 2023

  1. Use show/hide instead of toggling isVisible

    Nik Clayton committed Jun 18, 2023
    Configuration menu
    Copy the full SHA
    b699624 View commit details
    Browse the repository at this point in the history
  2. WIP: Failure to load

    Nik Clayton committed Jun 18, 2023
    Configuration menu
    Copy the full SHA
    f14149b View commit details
    Browse the repository at this point in the history

Commits on Jun 19, 2023

  1. Merge remote-tracking branch 'upstream/develop' into 3433-timeline-fr…

    …agment-arch
    Nik Clayton committed Jun 19, 2023
    Configuration menu
    Copy the full SHA
    67a148e View commit details
    Browse the repository at this point in the history
  2. Simplify repeated code that shows errors

    Instead of repeating the same if/else check on the error type when setting up the background message, move this in to BackgroundMessageView.
    
    Provide different `setup()` variants, including one that just takes a throwable and a handler, and figures out the correct drawables and error message.
    
    Update and simplify call sites.
    Nik Clayton committed Jun 19, 2023
    Configuration menu
    Copy the full SHA
    f3a8834 View commit details
    Browse the repository at this point in the history
  3. Show errors as snackbar is the list has contents

    This allows the user to still view their content even if there are temporary network issues.
    Nik Clayton committed Jun 19, 2023
    Configuration menu
    Copy the full SHA
    61ab11a View commit details
    Browse the repository at this point in the history
  4. Remove unnecessary distinctUntilChanged

    The very first time data is fetched it transitions NotLoading -> NotLoading, but the first time adapter.itemCount = 0.
    
    If you have the distinctUntilChanged the second NotLoading state is ignored, so the initial "welcome view" remains displayed.
    Nik Clayton committed Jun 19, 2023
    Configuration menu
    Copy the full SHA
    05748ad View commit details
    Browse the repository at this point in the history
  5. Retry the adapter operation

    Retrying causes one Error -> Loading -> Error transition.
    
    Refreshing causes two, which meant the snackbar was dismissed, then shown, then shown again (which dismissed the first one), causing flickering.
    Nik Clayton committed Jun 19, 2023
    Configuration menu
    Copy the full SHA
    95b6120 View commit details
    Browse the repository at this point in the history
  6. Merge remote-tracking branch 'upstream/develop' into 3433-timeline-fr…

    …agment-arch
    
    # Conflicts:
    #	app/src/main/java/com/keylesspalace/tusky/components/timeline/TimelineFragment.kt
    Nik Clayton committed Jun 19, 2023
    Configuration menu
    Copy the full SHA
    9182cde View commit details
    Browse the repository at this point in the history

Commits on Jun 20, 2023

  1. Configuration menu
    Copy the full SHA
    aa84ad4 View commit details
    Browse the repository at this point in the history

Commits on Jun 21, 2023

  1. Update tests to be correct

    Nik Clayton committed Jun 21, 2023
    Configuration menu
    Copy the full SHA
    9c4aadb View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    4ef41ab View commit details
    Browse the repository at this point in the history

Commits on Jun 22, 2023

  1. Configuration menu
    Copy the full SHA
    d7a2e29 View commit details
    Browse the repository at this point in the history
  2. Set isRefreshing in refreshContent()

    Nik Clayton committed Jun 22, 2023
    Configuration menu
    Copy the full SHA
    e5287b8 View commit details
    Browse the repository at this point in the history
  3. Simplify the code to show/hide different views

    Nik Clayton committed Jun 22, 2023
    Configuration menu
    Copy the full SHA
    9602d59 View commit details
    Browse the repository at this point in the history
  4. Show error based on the mediator error state

    Nik Clayton committed Jun 22, 2023
    Configuration menu
    Copy the full SHA
    bba7c5d View commit details
    Browse the repository at this point in the history
  5. Correctly use refreshContent()

    Nik Clayton committed Jun 22, 2023
    Configuration menu
    Copy the full SHA
    431a7ea View commit details
    Browse the repository at this point in the history

Commits on Jun 23, 2023

  1. Index pages by prev

    Nik Clayton committed Jun 23, 2023
    Configuration menu
    Copy the full SHA
    e913fcb View commit details
    Browse the repository at this point in the history

Commits on Jun 28, 2023

  1. Use the last ID as the key not the first ID

    Nik Clayton committed Jun 28, 2023
    Configuration menu
    Copy the full SHA
    3cc000b View commit details
    Browse the repository at this point in the history
  2. notifyItemRangeChanged for all items

    Nik Clayton committed Jun 28, 2023
    Configuration menu
    Copy the full SHA
    269d8f1 View commit details
    Browse the repository at this point in the history
  3. Move the page cache to its own class

    Nik Clayton committed Jun 28, 2023
    Configuration menu
    Copy the full SHA
    1ae50b6 View commit details
    Browse the repository at this point in the history
  4. Remove debug code

    Nik Clayton committed Jun 28, 2023
    Configuration menu
    Copy the full SHA
    e7c2335 View commit details
    Browse the repository at this point in the history
  5. No need to synchronize

    Nik Clayton committed Jun 28, 2023
    Configuration menu
    Copy the full SHA
    e676bc8 View commit details
    Browse the repository at this point in the history
  6. WIP: Working on full refresh

    Nik Clayton committed Jun 28, 2023
    Configuration menu
    Copy the full SHA
    56bb11f View commit details
    Browse the repository at this point in the history

Commits on Jun 29, 2023

  1. Migrate "room" from "kapt" to "ksp"

    - Add ksp plugin
    - Switch room to use ksp instead of kapt
    - `ArrayList` -> `List` in a few places to fix errors about unbound generics
    Nik Clayton committed Jun 29, 2023
    Configuration menu
    Copy the full SHA
    a4ef7c7 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    12ef66d View commit details
    Browse the repository at this point in the history

Commits on Jul 1, 2023

  1. Load a huge page on refresh

    Tries to prevent jumping around during a refresh.
    
    More documentation
    Nik Clayton committed Jul 1, 2023
    Configuration menu
    Copy the full SHA
    31ae4aa View commit details
    Browse the repository at this point in the history
  2. Merge remote-tracking branch 'upstream/develop' into 3433-timeline-fr…

    …agment-arch
    
    # Conflicts:
    #	app/lint-baseline.xml
    Nik Clayton committed Jul 1, 2023
    Configuration menu
    Copy the full SHA
    bf685ec View commit details
    Browse the repository at this point in the history

Commits on Jul 2, 2023

  1. Configuration menu
    Copy the full SHA
    8b4d84b View commit details
    Browse the repository at this point in the history

Commits on Jul 3, 2023

  1. Load huge pages asynchronously

    Nik Clayton committed Jul 3, 2023
    Configuration menu
    Copy the full SHA
    770d23c View commit details
    Browse the repository at this point in the history

Commits on Jul 4, 2023

  1. Check for null when creating the huge page

    Nik Clayton committed Jul 4, 2023
    Configuration menu
    Copy the full SHA
    8bece6f View commit details
    Browse the repository at this point in the history
  2. Link to relevant bugs

    Nik Clayton committed Jul 4, 2023
    Configuration menu
    Copy the full SHA
    76bc564 View commit details
    Browse the repository at this point in the history
  3. Lint

    Nik Clayton committed Jul 4, 2023
    Configuration menu
    Copy the full SHA
    4ec61c7 View commit details
    Browse the repository at this point in the history

Commits on Jul 5, 2023

  1. Correct off-by-two error in state.anchorPosition

    Nik Clayton committed Jul 5, 2023
    Configuration menu
    Copy the full SHA
    af99ef4 View commit details
    Browse the repository at this point in the history
  2. Add scope to remote mediator tests

    Nik Clayton committed Jul 5, 2023
    Configuration menu
    Copy the full SHA
    d22658a View commit details
    Browse the repository at this point in the history
  3. Show the display name again

    Nik Clayton committed Jul 5, 2023
    Configuration menu
    Copy the full SHA
    bdeb681 View commit details
    Browse the repository at this point in the history
  4. Merge remote-tracking branch 'upstream/develop' into 3433-timeline-fr…

    …agment-arch
    Nik Clayton committed Jul 5, 2023
    Configuration menu
    Copy the full SHA
    7c00e7e View commit details
    Browse the repository at this point in the history
  5. Comments

    Nik Clayton committed Jul 5, 2023
    Configuration menu
    Copy the full SHA
    324220d View commit details
    Browse the repository at this point in the history
  6. RemoteKeys implementation for cached timeline

    Nik Clayton committed Jul 5, 2023
    Configuration menu
    Copy the full SHA
    4c44481 View commit details
    Browse the repository at this point in the history
  7. Lint

    Nik Clayton committed Jul 5, 2023
    Configuration menu
    Copy the full SHA
    54c5058 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    1a86e41 View commit details
    Browse the repository at this point in the history

Commits on Jul 6, 2023

  1. Configuration menu
    Copy the full SHA
    5c07689 View commit details
    Browse the repository at this point in the history
  2. Update tests

    Nik Clayton committed Jul 6, 2023
    Configuration menu
    Copy the full SHA
    86698e8 View commit details
    Browse the repository at this point in the history
  3. Fix lint issues in AppDatabase.java

    Nik Clayton committed Jul 6, 2023
    Configuration menu
    Copy the full SHA
    d662dc7 View commit details
    Browse the repository at this point in the history
  4. Merge branch 'lint-appdatabase' into 3433-timeline-fragment-arch

    # Conflicts:
    #	app/lint-baseline.xml
    #	app/src/main/java/com/keylesspalace/tusky/db/AppDatabase.java
    Nik Clayton committed Jul 6, 2023
    Configuration menu
    Copy the full SHA
    798e74a View commit details
    Browse the repository at this point in the history
  5. Merge remote-tracking branch 'upstream/develop' into 3433-timeline-fr…

    …agment-arch
    
    # Conflicts:
    #	app/lint-baseline.xml
    #	app/src/main/java/com/keylesspalace/tusky/db/AppDatabase.java
    Nik Clayton committed Jul 6, 2023
    Configuration menu
    Copy the full SHA
    d0ed7f3 View commit details
    Browse the repository at this point in the history

Commits on Jul 9, 2023

  1. Rename readingPosition to readingPositionId

    Nik Clayton committed Jul 9, 2023
    Configuration menu
    Copy the full SHA
    6f81830 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    ef92c1d View commit details
    Browse the repository at this point in the history
  3. Merge remote-tracking branch 'upstream/develop' into 3433-timeline-fr…

    …agment-arch
    
    # Conflicts:
    #	app/src/main/res/values-fa/strings.xml
    Nik Clayton committed Jul 9, 2023
    Configuration menu
    Copy the full SHA
    39bf9d9 View commit details
    Browse the repository at this point in the history

Commits on Jul 10, 2023

  1. Improve reload from newest in cached timelines, and other clean ups

    - Add presentation state
    - Dismiss snackbars when refreshing or retrying errors
    - Save the visible ID when tapping on the tab icon
    Nik Clayton committed Jul 10, 2023
    Configuration menu
    Copy the full SHA
    50c484f View commit details
    Browse the repository at this point in the history
  2. ItemSnapshotList's first item may not be at position 0

    If it's not then the previous code wouldn't save the visible ID.
    Nik Clayton committed Jul 10, 2023
    Configuration menu
    Copy the full SHA
    7b22d3c View commit details
    Browse the repository at this point in the history

Commits on Jul 11, 2023

  1. Rejig presentation states

    Nik Clayton committed Jul 11, 2023
    Configuration menu
    Copy the full SHA
    0af9f1d View commit details
    Browse the repository at this point in the history
  2. Move FilterPrefs to the companion object.

    Nik Clayton committed Jul 11, 2023
    Configuration menu
    Copy the full SHA
    a4b6138 View commit details
    Browse the repository at this point in the history
  3. Include the exception message in the UI

    Nik Clayton committed Jul 11, 2023
    Configuration menu
    Copy the full SHA
    de1b5c8 View commit details
    Browse the repository at this point in the history
  4. Add an error case to PresentationState

    Nik Clayton committed Jul 11, 2023
    Configuration menu
    Copy the full SHA
    94944a9 View commit details
    Browse the repository at this point in the history

Commits on Jul 12, 2023

  1. Merge remote-tracking branch 'upstream/develop' into 3433-timeline-fr…

    …agment-arch
    Nik Clayton committed Jul 12, 2023
    Configuration menu
    Copy the full SHA
    d4fca64 View commit details
    Browse the repository at this point in the history
  2. Lint

    Nik Clayton committed Jul 12, 2023
    Configuration menu
    Copy the full SHA
    92ac56f View commit details
    Browse the repository at this point in the history

Commits on Jul 13, 2023

  1. Handle placeholder items in a timeline list

    This should not happen, as the lists do not use placeholders.
    
    Nevertheless, in use I've observed `getItem(position)` returning null.
    
    The documentation says this can happen if the item at that position is a placeholder.
    
    Without this change this manifests as a completely empty status, but with buttons for voting, an empty media preview, etc.
    
    With this change it's an effectively invisible view which is eventually replaced with the real one.
    Nik Clayton committed Jul 13, 2023
    Configuration menu
    Copy the full SHA
    1548218 View commit details
    Browse the repository at this point in the history
  2. Use withPresentationState for peeking behaviour

    Nik Clayton committed Jul 13, 2023
    Configuration menu
    Copy the full SHA
    95fe4bb View commit details
    Browse the repository at this point in the history
  3. Ditch listIsEmpty

    Nik Clayton committed Jul 13, 2023
    Configuration menu
    Copy the full SHA
    4318770 View commit details
    Browse the repository at this point in the history

Commits on Jul 24, 2023

  1. Merge remote-tracking branch 'upstream/develop' into 3433-timeline-fr…

    …agment-arch
    Nik Clayton committed Jul 24, 2023
    Configuration menu
    Copy the full SHA
    6f69eca View commit details
    Browse the repository at this point in the history
  2. Add snackbars to show why voting didn't happen

    Nik Clayton committed Jul 24, 2023
    Configuration menu
    Copy the full SHA
    75f9f7e View commit details
    Browse the repository at this point in the history

Commits on Jul 27, 2023

  1. Merge remote-tracking branch 'upstream/develop' into 3433-timeline-fr…

    …agment-arch
    
    # Conflicts:
    #	app/schemas/com.keylesspalace.tusky.db.AppDatabase/52.json
    Nik Clayton committed Jul 27, 2023
    Configuration menu
    Copy the full SHA
    01150e3 View commit details
    Browse the repository at this point in the history
  2. Initialise the hashtag variable from the timeline kind

    Ensures that the mute/unmute follow/unfollow menu options are shown
    Nik Clayton committed Jul 27, 2023
    Configuration menu
    Copy the full SHA
    d6f9c76 View commit details
    Browse the repository at this point in the history

Commits on Jul 30, 2023

  1. Merge remote-tracking branch 'upstream/develop' into 3433-timeline-fr…

    …agment-arch
    Nik Clayton committed Jul 30, 2023
    Configuration menu
    Copy the full SHA
    edc0865 View commit details
    Browse the repository at this point in the history
  2. INITIAL can only transition to REMOTE_LOADING

    Nik Clayton committed Jul 30, 2023
    Configuration menu
    Copy the full SHA
    56ae1d3 View commit details
    Browse the repository at this point in the history
  3. Display the username again

    Nik Clayton committed Jul 30, 2023
    Configuration menu
    Copy the full SHA
    6e94bce View commit details
    Browse the repository at this point in the history

Commits on Aug 4, 2023

  1. Merge remote-tracking branch 'upstream/develop' into 3433-timeline-fr…

    …agment-arch
    
    # Conflicts:
    #	app/lint-baseline.xml
    #	app/src/main/java/com/keylesspalace/tusky/components/notifications/NotificationsViewModel.kt
    #	app/src/main/res/values-cy/strings.xml
    #	app/src/main/res/values-tr/strings.xml
    #	app/src/main/res/values/strings.xml
    Nik Clayton committed Aug 4, 2023
    Configuration menu
    Copy the full SHA
    38c52e9 View commit details
    Browse the repository at this point in the history

Commits on Aug 5, 2023

  1. Remove kapt flags

    Nik Clayton committed Aug 5, 2023
    Configuration menu
    Copy the full SHA
    33092a2 View commit details
    Browse the repository at this point in the history

Commits on Aug 6, 2023

  1. Merge remote-tracking branch 'upstream/develop' into 3433-timeline-fr…

    …agment-arch
    
    # Conflicts:
    #	app/lint-baseline.xml
    #	app/src/main/java/com/keylesspalace/tusky/components/notifications/NotificationsFragment.kt
    Nik Clayton committed Aug 6, 2023
    Configuration menu
    Copy the full SHA
    ddd5170 View commit details
    Browse the repository at this point in the history
  2. Merge remote-tracking branch 'upstream/develop' into 3433-timeline-fr…

    …agment-arch
    Nik Clayton committed Aug 6, 2023
    Configuration menu
    Copy the full SHA
    243fc56 View commit details
    Browse the repository at this point in the history
  3. Merge remote-tracking branch 'upstream/develop' into 3433-timeline-fr…

    …agment-arch
    Nik Clayton committed Aug 6, 2023
    Configuration menu
    Copy the full SHA
    63c3da1 View commit details
    Browse the repository at this point in the history

Commits on Aug 7, 2023

  1. Transition to PRESENTED when refresh has stopped

    Seen loadstate.source.refresh transition to NotLoading while loadstate.mediator.refresh was Loading
    Nik Clayton committed Aug 7, 2023
    Configuration menu
    Copy the full SHA
    f9e0e85 View commit details
    Browse the repository at this point in the history
  2. Use when with PresentationState instead of if chains

    Nik Clayton committed Aug 7, 2023
    Configuration menu
    Copy the full SHA
    91ba338 View commit details
    Browse the repository at this point in the history
  3. Remove duplicate file (PruneCacheWorker)

    Nik Clayton committed Aug 7, 2023
    Configuration menu
    Copy the full SHA
    245ea37 View commit details
    Browse the repository at this point in the history
  4. Update app/src/main/java/com/keylesspalace/tusky/components/timeline/…

    …viewmodel/TimelineViewModel.kt
    Nik Clayton authored Aug 7, 2023
    Configuration menu
    Copy the full SHA
    f893dc2 View commit details
    Browse the repository at this point in the history

Commits on Aug 8, 2023

  1. Get the poll from the "actionable" status, in case this was a poll in…

    … a reblogged status
    Nik Clayton committed Aug 8, 2023
    Configuration menu
    Copy the full SHA
    c25e9c3 View commit details
    Browse the repository at this point in the history
  2. Fix poll bug in NotificationsFragment too

    Nik Clayton committed Aug 8, 2023
    Configuration menu
    Copy the full SHA
    e5c5c73 View commit details
    Browse the repository at this point in the history

Commits on Aug 10, 2023

  1. Merge remote-tracking branch 'upstream/develop' into 3433-timeline-fr…

    …agment-arch
    
    # Conflicts:
    #	app/build.gradle
    Nik Clayton committed Aug 10, 2023
    Configuration menu
    Copy the full SHA
    98a0e18 View commit details
    Browse the repository at this point in the history

Commits on Aug 13, 2023

  1. Correct anchorPosition, peeking, and progress indicators

    - Calculate itemsBefore and itemsAfter, get correct anchorPosition
    - Updating peeking and "show / hide the progress indicators" algorithm
    Nik Clayton committed Aug 13, 2023
    Configuration menu
    Copy the full SHA
    211cadd View commit details
    Browse the repository at this point in the history
  2. Correctly pass arguments when creating a hashtag tab

    Nik Clayton committed Aug 13, 2023
    Configuration menu
    Copy the full SHA
    a3567a2 View commit details
    Browse the repository at this point in the history

Commits on Aug 15, 2023

  1. Don't compare against the previous top ID, it might not be loaded in …

    …to the adapter at the time of the check
    Nik Clayton committed Aug 15, 2023
    Configuration menu
    Copy the full SHA
    5f8e8a9 View commit details
    Browse the repository at this point in the history
  2. Track the first prepend more accurately

    Nik Clayton committed Aug 15, 2023
    Configuration menu
    Copy the full SHA
    d854f70 View commit details
    Browse the repository at this point in the history
  3. Remove unnecessary \n

    Nik Clayton committed Aug 15, 2023
    Configuration menu
    Copy the full SHA
    2a5d858 View commit details
    Browse the repository at this point in the history

Commits on Aug 16, 2023

  1. Track source and mediator prepends

    Nik Clayton committed Aug 16, 2023
    Configuration menu
    Copy the full SHA
    2a42b7a View commit details
    Browse the repository at this point in the history
  2. Revert "Don't compare against the previous top ID, it might not be lo…

    …aded in to the adapter at the time of the check"
    
    This reverts commit 5f8e8a9.
    
    This seems to work better with the new prepend/refresh code
    Nik Clayton committed Aug 16, 2023
    Configuration menu
    Copy the full SHA
    f325a83 View commit details
    Browse the repository at this point in the history
  3. Merge remote-tracking branch 'upstream/develop' into 3433-timeline-fr…

    …agment-arch
    Nik Clayton committed Aug 16, 2023
    Configuration menu
    Copy the full SHA
    e3c9d81 View commit details
    Browse the repository at this point in the history

Commits on Aug 17, 2023

  1. Remove "huge page" support now that prepend isn't jumping all over th…

    …e place
    Nik Clayton committed Aug 17, 2023
    Configuration menu
    Copy the full SHA
    4524681 View commit details
    Browse the repository at this point in the history
  2. Make PageCache.debug() easier to optimise out

    Nik Clayton committed Aug 17, 2023
    Configuration menu
    Copy the full SHA
    9998621 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    e0b38e6 View commit details
    Browse the repository at this point in the history
  4. Start/stop UI coroutines on the viewlifecycle

    Previous code started/stopped on the fragment lifecycle.
    
    So if you left the fragment the UI code would continue running (collecting from flows, ticking to update an invisible UI, etc).
    Nik Clayton committed Aug 17, 2023
    Configuration menu
    Copy the full SHA
    5d0b301 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    cc65333 View commit details
    Browse the repository at this point in the history

Commits on Aug 22, 2023

  1. Merge remote-tracking branch 'upstream/develop' into 3433-timeline-fr…

    …agment-arch
    
    # Conflicts:
    #	app/lint-baseline.xml
    #	app/schemas/com.keylesspalace.tusky.db.AppDatabase/53.json
    #	app/src/main/java/com/keylesspalace/tusky/TabData.kt
    #	app/src/main/java/com/keylesspalace/tusky/TuskyApplication.kt
    #	app/src/main/java/com/keylesspalace/tusky/db/AppDatabase.java
    #	app/src/main/java/com/keylesspalace/tusky/di/AppModule.kt
    #	app/src/main/java/com/keylesspalace/tusky/settings/SettingsConstants.kt
    Nik Clayton committed Aug 22, 2023
    Configuration menu
    Copy the full SHA
    2664406 View commit details
    Browse the repository at this point in the history