2 Commits
Author | SHA1 | Message | Date |
---|---|---|---|
kyori19 |
4b9fb2f0bb
|
Merge remote-tracking branch 'tuskyapp/develop'
# Conflicts: # .gitignore # README.md # app/build.gradle # app/src/green/res/mipmap-hdpi/ic_launcher.png # app/src/green/res/mipmap-mdpi/ic_launcher.png # app/src/green/res/mipmap-xhdpi/ic_launcher.png # app/src/green/res/mipmap-xxhdpi/ic_launcher.png # app/src/green/res/mipmap-xxxhdpi/ic_launcher.png # app/src/main/java/com/keylesspalace/tusky/EditProfileActivity.kt # app/src/main/java/com/keylesspalace/tusky/MainActivity.kt # app/src/main/java/com/keylesspalace/tusky/StatusListActivity.kt # app/src/main/java/com/keylesspalace/tusky/TabData.kt # app/src/main/java/com/keylesspalace/tusky/adapter/NotificationsAdapter.java # app/src/main/java/com/keylesspalace/tusky/adapter/StatusBaseViewHolder.java # app/src/main/java/com/keylesspalace/tusky/appstore/Events.kt # app/src/main/java/com/keylesspalace/tusky/components/account/AccountActivity.kt # app/src/main/java/com/keylesspalace/tusky/components/compose/ComposeActivity.kt # app/src/main/java/com/keylesspalace/tusky/components/compose/ComposeViewModel.kt # app/src/main/java/com/keylesspalace/tusky/components/conversation/ConversationEntity.kt # app/src/main/java/com/keylesspalace/tusky/components/conversation/ConversationsFragment.kt # app/src/main/java/com/keylesspalace/tusky/components/preference/PreferencesActivity.kt # app/src/main/java/com/keylesspalace/tusky/components/preference/PreferencesFragment.kt # app/src/main/java/com/keylesspalace/tusky/components/report/fragments/ReportStatusesFragment.kt # app/src/main/java/com/keylesspalace/tusky/components/search/SearchViewModel.kt # app/src/main/java/com/keylesspalace/tusky/components/search/fragments/SearchStatusesFragment.kt # app/src/main/java/com/keylesspalace/tusky/components/timeline/TimelineFragment.kt # app/src/main/java/com/keylesspalace/tusky/components/timeline/TimelineTypeMappers.kt # app/src/main/java/com/keylesspalace/tusky/components/timeline/viewmodel/TimelineViewModel.kt # app/src/main/java/com/keylesspalace/tusky/components/viewthread/ViewThreadFragment.kt # app/src/main/java/com/keylesspalace/tusky/db/TimelineDao.kt # app/src/main/java/com/keylesspalace/tusky/db/TimelineStatusEntity.kt # app/src/main/java/com/keylesspalace/tusky/di/ActivitiesModule.kt # app/src/main/java/com/keylesspalace/tusky/di/FragmentBuildersModule.kt # app/src/main/java/com/keylesspalace/tusky/di/ViewModelFactory.kt # app/src/main/java/com/keylesspalace/tusky/entity/NewStatus.kt # app/src/main/java/com/keylesspalace/tusky/entity/Status.kt # app/src/main/java/com/keylesspalace/tusky/entity/TimelineAccount.kt # app/src/main/java/com/keylesspalace/tusky/fragment/NotificationsFragment.java # app/src/main/java/com/keylesspalace/tusky/service/SendStatusService.kt # app/src/main/java/com/keylesspalace/tusky/settings/SettingsConstants.kt # app/src/main/java/com/keylesspalace/tusky/util/StatusDisplayOptions.kt # app/src/main/java/com/keylesspalace/tusky/util/StatusParsingHelper.kt # app/src/main/res/layout/activity_about.xml # app/src/main/res/layout/activity_main.xml # app/src/main/res/layout/item_status.xml # app/src/main/res/layout/item_status_notification.xml # app/src/main/res/values-ar/strings.xml # app/src/main/res/values-be/strings.xml # app/src/main/res/values-bn-rBD/strings.xml # app/src/main/res/values-ca/strings.xml # app/src/main/res/values-cy/strings.xml # app/src/main/res/values-de/strings.xml # app/src/main/res/values-es/strings.xml # app/src/main/res/values-eu/strings.xml # app/src/main/res/values-fa/strings.xml # app/src/main/res/values-fr/strings.xml # app/src/main/res/values-gd/strings.xml # app/src/main/res/values-gl/strings.xml # app/src/main/res/values-hu/strings.xml # app/src/main/res/values-in/strings.xml # app/src/main/res/values-is/strings.xml # app/src/main/res/values-it/strings.xml # app/src/main/res/values-ja/strings.xml # app/src/main/res/values-lv/strings.xml # app/src/main/res/values-nb-rNO/strings.xml # app/src/main/res/values-night/theme_colors.xml # app/src/main/res/values-oc/strings.xml # app/src/main/res/values-pl/strings.xml # app/src/main/res/values-pt-rBR/strings.xml # app/src/main/res/values-ru/strings.xml # app/src/main/res/values-sa/strings.xml # app/src/main/res/values-sv/strings.xml # app/src/main/res/values-tr/strings.xml # app/src/main/res/values-uk/strings.xml # app/src/main/res/values-vi/strings.xml # app/src/main/res/values-zh-rCN/strings.xml # app/src/main/res/values/attrs.xml # app/src/main/res/values/styles.xml # app/src/main/res/values/theme_colors.xml # app/src/test/java/com/keylesspalace/tusky/BottomSheetActivityTest.kt # app/src/test/java/com/keylesspalace/tusky/FilterV1Test.kt # app/src/test/java/com/keylesspalace/tusky/components/timeline/StatusMocker.kt # app/src/test/java/com/keylesspalace/tusky/db/TimelineDaoTest.kt # app/src/test/java/com/keylesspalace/tusky/usecase/TimelineCasesTest.kt # app/src/test/java/com/keylesspalace/tusky/util/RickRollTest.kt # assets/tusky_banner.xcf # fastlane/metadata/android/ca/changelogs/58.txt # fastlane/metadata/android/ca/full_description.txt # fastlane/metadata/android/de/changelogs/58.txt # fastlane/metadata/android/de/changelogs/61.txt # fastlane/metadata/android/de/changelogs/67.txt # fastlane/metadata/android/de/changelogs/68.txt # fastlane/metadata/android/de/changelogs/70.txt # fastlane/metadata/android/de/changelogs/72.txt # fastlane/metadata/android/de/changelogs/74.txt # fastlane/metadata/android/de/changelogs/77.txt # fastlane/metadata/android/de/changelogs/80.txt # fastlane/metadata/android/de/changelogs/82.txt # fastlane/metadata/android/de/changelogs/83.txt # fastlane/metadata/android/de/changelogs/87.txt # fastlane/metadata/android/de/changelogs/89.txt # fastlane/metadata/android/de/changelogs/94.txt # fastlane/metadata/android/de/full_description.txt # fastlane/metadata/android/de/short_description.txt # fastlane/metadata/android/fa/changelogs/58.txt # fastlane/metadata/android/it/changelogs/58.txt # gradle.properties # gradle/libs.versions.toml # instance-build.gradle |
|
Nik Clayton |
81b15e72f3
|
Only fetch and display a given notification once (#3626)
When fetching: - Maintain a marker with the position of the newest fetched notification - Use the marker to determine which notifications to fetch - Fetch notifications with min_id to ensure that none are lost - Update the marker as necessary - Perform a one-time immediate fetch of notifications on startup When creating notifications: - Identify each notification with tag=${MastodonNotificationId}, id=${account.id} - Remove activeNotifications field, it's no longer necessary - Use the tag/id tuple to reliably identify existing notifications and avoid creating duplicates - Cancelling notifications for an account must iterate over all the notifications, and individually remove the notifications that exist for that account. - Limit notifications to a maximum of 40 (excluding summary notifications) - Remove notifications (oldest first) to get under this limit - Rate limit notification creation to 1 per second, so the OS won't drop them Adjust the summary notification: - Ensure the summary notification and the child notifications have the same group key - Dismiss the summary notification if there is only one child notification NotificationClearBroadcastReceiver is no longer needed, so remove it, and the need for deletePendingIntent. Fixes #3625, #3539 |