Package: release.debian.org
Severity: normal
X-Debbugs-Cc: tokodon@packages.debian.org, Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
Control: affects -1 + src:tokodon
User: release.debian.org@packages.debian.org
Usertags: unblock
Dear Release Team,
please unblock package tokodon.
[ Reason ]
It contains the following changes:
* New upstream release (25.04.1).
- Clamp contentY when using the PageUp key. (kde#501936)
- Stop registering for push notifications despite them being disabled.
- Print out what the old endpoint was in the warning message.
- Don't spam network error log with push subscription checks.
- Don't bother updating push subscriptions if there is none.
- Remove annual_report from push notification rules.
- Call updatePushNotifications when toggling the notifications checkbox.
* New upstream release (25.04.2).
- ModerationTools: Fix opening some subpages.
The complete debdiff contains a huge amount of translation fixes so I’m
attaching a simple diff trimmed from these for your convenience:
diff -ur --exclude=po tokodon-25.04.[02]
[ Tests ]
- Tested connecting to mastodon with an existing account and browsing
through the various pages of the app.
- Upstream test suite passes in sbuild.
[ Risks ]
Upstream point releases only contain targetted commits. Further fixes
can easily be backported or the changes reverted.
[ Checklist ]
[x] all changes are documented in the d/changelog
[x] I reviewed all changes and I approve them
[x] attach debdiff against the package in testing
Thanks!
unblock tokodon/25.04.2-1
Attachment:
tokodon_25.04.0-1.dsc_tokodon_25.04.2-1.dsc.debdiff.gz
Description: application/gzip
diff -ur '--exclude=po' tokodon-25.04.0/CMakeLists.txt tokodon-25.04.2/CMakeLists.txt
--- tokodon-25.04.0/CMakeLists.txt 2025-04-10 05:11:52.000000000 +0200
+++ tokodon-25.04.2/CMakeLists.txt 2025-06-03 05:21:40.000000000 +0200
@@ -6,7 +6,7 @@
# KDE Applications version, managed by release script.
set(RELEASE_SERVICE_VERSION_MAJOR "25")
set(RELEASE_SERVICE_VERSION_MINOR "04")
-set(RELEASE_SERVICE_VERSION_MICRO "0")
+set(RELEASE_SERVICE_VERSION_MICRO "2")
set(RELEASE_SERVICE_VERSION "${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}.${RELEASE_SERVICE_VERSION_MICRO}")
project(tokodon VERSION ${RELEASE_SERVICE_VERSION})
diff -ur '--exclude=po' tokodon-25.04.0/debian/changelog tokodon-25.04.2/debian/changelog
--- tokodon-25.04.0/debian/changelog 2025-04-17 22:24:22.000000000 +0200
+++ tokodon-25.04.2/debian/changelog 2025-06-09 23:37:39.000000000 +0200
@@ -1,3 +1,19 @@
+tokodon (25.04.2-1) unstable; urgency=medium
+
+ [ Aurélien COUDERC ]
+ * New upstream release (25.04.1).
+ - Clamp contentY when using the PageUp key. (kde#501936)
+ - Stop registering for push notifications despite them being disabled.
+ - Print out what the old endpoint was in the warning message.
+ - Don't spam network error log with push subscription checks.
+ - Don't bother updating push subscriptions if there is none.
+ - Remove annual_report from push notification rules.
+ - Call updatePushNotifications when toggling the notifications checkbox.
+ * New upstream release (25.04.2).
+ - ModerationTools: Fix opening some subpages.
+
+ -- Aurélien COUDERC <coucouf@debian.org> Mon, 09 Jun 2025 23:37:39 +0200
+
tokodon (25.04.0-1) unstable; urgency=medium
[ Aurélien COUDERC ]
diff -ur '--exclude=po' tokodon-25.04.0/.gitlab-ci.yml tokodon-25.04.2/.gitlab-ci.yml
--- tokodon-25.04.0/.gitlab-ci.yml 2025-04-10 05:11:52.000000000 +0200
+++ tokodon-25.04.2/.gitlab-ci.yml 2025-06-03 05:21:40.000000000 +0200
@@ -6,7 +6,6 @@
file:
- /gitlab-templates/reuse-lint.yml
- /gitlab-templates/linux-qt6.yml
- - /gitlab-templates/linux-qt6-next.yml
- /gitlab-templates/freebsd-qt6.yml
- /gitlab-templates/android-qt6.yml
- /gitlab-templates/craft-android-qt6-apks.yml
diff -ur '--exclude=po' tokodon-25.04.0/org.kde.tokodon.appdata.xml tokodon-25.04.2/org.kde.tokodon.appdata.xml
--- tokodon-25.04.0/org.kde.tokodon.appdata.xml 2025-04-10 05:11:52.000000000 +0200
+++ tokodon-25.04.2/org.kde.tokodon.appdata.xml 2025-06-03 05:21:40.000000000 +0200
@@ -151,6 +151,8 @@
</screenshot>
</screenshots>
<releases>
+ <release version="25.04.2" date="2025-06-05"/>
+ <release version="25.04.1" date="2025-05-08"/>
<release version="25.04.0" date="2025-04-17"/>
<release version="24.12.3" date="2025-03-06"/>
<release version="24.12.2" date="2025-02-06"/>
diff -ur '--exclude=po' tokodon-25.04.0/org.kde.tokodon.desktop tokodon-25.04.2/org.kde.tokodon.desktop
--- tokodon-25.04.0/org.kde.tokodon.desktop 2025-04-10 05:11:52.000000000 +0200
+++ tokodon-25.04.2/org.kde.tokodon.desktop 2025-06-03 05:21:40.000000000 +0200
@@ -61,6 +61,7 @@
GenericName[ko]=연합우주 탐색하기
GenericName[lv]=Pārlūkojiet fediversu
GenericName[nl]=In de Fediverse bladeren
+GenericName[nn]=Bla gjennom Allheimen
GenericName[pl]=Przejrzyj Fediverse
GenericName[ru]=Просмотр Fediverse
GenericName[sa]=Fediverse ब्राउज् कुर्वन्तु
diff -ur '--exclude=po' tokodon-25.04.0/snapcraft.yaml tokodon-25.04.2/snapcraft.yaml
--- tokodon-25.04.0/snapcraft.yaml 2025-04-10 05:11:52.000000000 +0200
+++ tokodon-25.04.2/snapcraft.yaml 2025-06-03 05:21:40.000000000 +0200
@@ -18,26 +18,39 @@
- audio-record
- home
- password-manager-service
-environment:
- ALSA_CONFIG_PATH: "$SNAP/kf6/etc/asound.conf"
+ environment:
+ LD_LIBRARY_PATH: "$SNAP/ffmpeg-platform/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR:$SNAP/kf6/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR:$LD_LIBRARY_PATH"
+ PATH: $SNAP/ffmpeg-platform/usr/bin:$SNAP/usr/bin${PATH}
+ ALSA_CONFIG_PATH: "$SNAP/kf6/etc/asound.conf"
+ QT_MEDIA_BACKEND: "ffmpeg"
+ QT_PLUGIN_PATH: "$SNAP/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/marble/plugins:/snap/kf6-core24/current/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/plugins"
layout:
/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/alsa-lib:
bind: $SNAP/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/alsa-lib
+plugs:
+ ffmpeg-2404:
+ interface: content
+ target: ffmpeg-platform # the folder where this content snap will be mounted
+ default-provider: ffmpeg-2404
slots:
session-dbus-interface:
interface: dbus
name: org.kde.tokodon
bus: session
-package-repositories:
- - type: apt
- components:
- - main
- suites:
- - noble
- key-id: 444DABCF3667D0283F894EDDE6D4736255751E5D
- url: http://origin.archive.neon.kde.org/user
- key-server: keyserver.ubuntu.com
parts:
+ kunifiedpush:
+ source: https://invent.kde.org/libraries/kunifiedpush.git
+ plugin: cmake
+ build-packages:
+ - libssl-dev
+ build-environment:
+ - PATH: /snap/bin:${PATH}
+ - PYTHONPATH: ${CRAFT_STAGE}/lib/python3.12/site-packages:${CRAFT_STAGE}/usr/lib/python3/dist-packages
+ - LD_LIBRARY_PATH: "/snap/mesa-2404/current/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR:$CRAFT_STAGE/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR:/snap/kde-qt6-core24-sdk/current/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libproxy:$LD_LIBRARY_PATH"
+ cmake-parameters:
+ - -DCMAKE_INSTALL_PREFIX=/usr
+ - -DCMAKE_BUILD_TYPE=Release
+ - -DBUILD_TESTING=OFF
mpvqt:
plugin: cmake
source: https://invent.kde.org/libraries/mpvqt.git
@@ -64,6 +77,7 @@
tokodon:
after:
- mpvqt
+ - kunifiedpush
parse-info:
- usr/share/metainfo/org.kde.tokodon.appdata.xml
plugin: cmake
@@ -71,6 +85,9 @@
source-type: local
build-packages:
- libmpv-dev
+ - libfreetype-dev
+ build-snaps:
+ - ffmpeg-2404-sdk
stage-packages:
- libasound2
- libasound2-data
@@ -83,6 +100,8 @@
- gstreamer1.0-plugins-ugly
- libblas3
- libsecret-1-0
+ - libfreetype6
+ - libssl3t64
cmake-parameters:
- -DCMAKE_INSTALL_PREFIX=/usr
- -DCMAKE_BUILD_TYPE=Release
@@ -102,12 +121,9 @@
- -DCMAKE_LIBRARY_PATH=lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR
- "-DCMAKE_FIND_ROOT_PATH=$CRAFT_STAGE\\;/snap/kde-qt6-core24-sdk/current\\;/snap/kf6-core24-sdk/current/usr"
- "-DCMAKE_PREFIX_PATH=$CRAFT_STAGE\\;/snap/kde-qt6-core24-sdk/current\\;/snap/kf6-core24-sdk/current/usr"
- build-environment: &buildenvironment
- - PATH: /snap/kde-qt6-core24-sdk/current/usr/bin${PATH:+:$PATH}
- - PKG_CONFIG_PATH: /snap/kde-qt6-core24-sdk/current/usr/lib/${CRAFT_ARCH_TRIPLET_BUILD_FOR}/pkgconfig${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH}
- - XDG_DATA_DIRS: $CRAFT_STAGE/usr/share:/snap/kde-qt6-core24-sdk/current/usr/share:/usr/share${XDG_DATA_DIRS:+:$XDG_DATA_DIRS}
- - XDG_CONFIG_HOME: $CRAFT_STAGE/etc/xdg:/snap/kde-qt6-core24-sdk/current/etc/xdg:/etc/xdg${XDG_CONFIG_HOME:+:$XDG_CONFIG_HOME}
- - LD_LIBRARY_PATH: "/snap/kde-qt6-core24-sdk/current/usr/lib/${CRAFT_ARCH_TRIPLET_BUILD_FOR}:/snap/kde-qt6-core24-sdk/current/usr/lib/${CRAFT_ARCH_TRIPLET_BUILD_FOR}/libproxy:/snap/kde-qt6-core24-sdk/current/usr/lib:/snap/kf6-core24-sdk/current/usr/lib/${CRAFT_ARCH_TRIPLET_BUILD_FOR}:/snap/kf6-core24-sdk/current/usr/lib:$CRAFT_STAGE/usr/lib:$CRAFT_STAGE/lib/:$CRAFT_STAGE/usr/lib/${CRAFT_ARCH_TRIPLET_BUILD_FOR}${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
+ build-environment: &build-environment
+ - PKG_CONFIG_PATH: "$CRAFT_STAGE/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/pkgconfig:/snap/ffmpeg-2404-sdk/current/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/pkgconfig"
+ - LD_LIBRARY_PATH: "/snap/mesa-2404/current/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR:$CRAFT_STAGE/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR:/snap/ffmpeg-2404-sdk/current/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR:/snap/kde-qt6-core24-sdk/current/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libproxy:$LD_LIBRARY_PATH"
prime:
- -usr/lib/*/cmake/*
- -usr/include/*
@@ -135,7 +151,7 @@
- kf6-core24
override-prime: |
set -eux
- for snap in "core24" "kf6-core24"; do
+ for snap in "core24" "kf6-core24" "ffmpeg-2404"; do
cd "/snap/$snap/current" && find . -type f,l -exec rm -rf "${CRAFT_PRIME}/{}" \;
done
diff -ur '--exclude=po' tokodon-25.04.0/src/account/abstractaccount.h tokodon-25.04.2/src/account/abstractaccount.h
--- tokodon-25.04.0/src/account/abstractaccount.h 2025-04-10 05:11:52.000000000 +0200
+++ tokodon-25.04.2/src/account/abstractaccount.h 2025-06-03 05:21:40.000000000 +0200
@@ -301,12 +301,14 @@
* @param parent The parent object that calls get() or the callback belongs to.
* @param callback The callback that should be executed if the request is successful.
* @param errorCallback The callback that should be executed if the request is not successful.
+ * @param fallible Whether the request is okay with failing. If true, also reported in the error log.
*/
virtual void get(const QUrl &url,
bool authenticated,
QObject *parent,
std::function<void(QNetworkReply *)> callback,
- std::function<void(QNetworkReply *)> errorCallback = nullptr) = 0;
+ std::function<void(QNetworkReply *)> errorCallback = nullptr,
+ bool fallible = false) = 0;
/**
* @brief Make an HTTP POST request to the server.
diff -ur '--exclude=po' tokodon-25.04.0/src/account/account.cpp tokodon-25.04.2/src/account/account.cpp
--- tokodon-25.04.0/src/account/account.cpp 2025-04-10 05:11:52.000000000 +0200
+++ tokodon-25.04.2/src/account/account.cpp 2025-06-03 05:21:40.000000000 +0200
@@ -49,9 +49,11 @@
bool authenticated,
QObject *parent,
std::function<void(QNetworkReply *)> reply_cb,
- std::function<void(QNetworkReply *)> errorCallback)
+ std::function<void(QNetworkReply *)> errorCallback,
+ bool fallible)
{
QNetworkRequest request = makeRequest(url, authenticated);
+ request.setAttribute(QNetworkRequest::Attribute::User, fallible);
qCDebug(TOKODON_HTTP) << "GET" << url;
QNetworkReply *reply = m_qnam->get(request);
@@ -178,7 +180,9 @@
{
connect(reply, &QNetworkReply::finished, [reply, reply_cb, errorCallback]() {
reply->deleteLater();
- if (200 != reply->attribute(QNetworkRequest::HttpStatusCodeAttribute) && !reply->url().toString().contains("nodeinfo"_L1)) {
+ // these are usually (sometimes meant to be) fallible and end up spamming user logs with these errors
+ const auto fallible = reply->request().attribute(QNetworkRequest::Attribute::User).toBool();
+ if (200 != reply->attribute(QNetworkRequest::HttpStatusCodeAttribute) && !fallible) {
NetworkController::instance().logError(reply->url().toString(), reply->errorString());
if (errorCallback) {
errorCallback(reply);
@@ -318,17 +322,26 @@
Q_EMIT authenticated(true, {});
#ifdef HAVE_KUNIFIEDPUSH
+ // Query whether or not we have a valid push subscription from the server.
get(
apiUrl(QStringLiteral("/api/v1/push/subscription")),
true,
this,
[this](QNetworkReply *reply) {
+ // If the error code is success, then we *do* have a subscription.
m_hasPushSubscription = true;
const QJsonDocument doc = QJsonDocument::fromJson(reply->readAll());
+ // Sometimes - for some reason - we get a successful HTTP code but it's actually an error. Skip!
+ if (doc.object().contains("error"_L1)) {
+ m_hasPushSubscription = false;
+ return;
+ }
+
if (!NetworkController::instance().endpoint.isEmpty() && doc["endpoint"_L1] != NetworkController::instance().endpoint) {
- qWarning(TOKODON_LOG) << "KUnifiedPush endpoint has changed to" << NetworkController::instance().endpoint << ", resubscribing!";
+ qWarning(TOKODON_LOG) << "KUnifiedPush endpoint is now" << NetworkController::instance().endpoint << "and the old one was"
+ << doc["endpoint"_L1] << "resubscribing!";
deleteResource(apiUrl(QStringLiteral("/api/v1/push/subscription")), true, this, [this](QNetworkReply *reply) {
Q_UNUSED(reply)
@@ -341,9 +354,11 @@
},
[this](QNetworkReply *reply) {
Q_UNUSED(reply);
+ // Otherwise, no subscription.
m_hasPushSubscription = false;
- updatePushNotifications();
- });
+ },
+ true // otherwise it tends to spam your error log
+ );
#endif
},
[this](QNetworkReply *reply) {
@@ -536,7 +551,6 @@
addQuery(QStringLiteral("update"), cfg->notifyUpdate());
addQuery(QStringLiteral("admin.sign_up"), cfg->notifySignup());
addQuery(QStringLiteral("admin.report"), cfg->notifyReport());
- addQuery(QStringLiteral("annual_report"), cfg->notifyAnnualReport());
return formdata;
}
diff -ur '--exclude=po' tokodon-25.04.0/src/account/account.h tokodon-25.04.2/src/account/account.h
--- tokodon-25.04.0/src/account/account.h 2025-04-10 05:11:52.000000000 +0200
+++ tokodon-25.04.2/src/account/account.h 2025-06-03 05:21:40.000000000 +0200
@@ -25,7 +25,8 @@
bool authenticated,
QObject *parent,
std::function<void(QNetworkReply *)> callback,
- std::function<void(QNetworkReply *)> errorCallback = nullptr) override;
+ std::function<void(QNetworkReply *)> errorCallback = nullptr,
+ bool fallible = false) override;
void post(const QUrl &url,
const QJsonDocument &doc,
bool authenticated,
diff -ur '--exclude=po' tokodon-25.04.0/src/autotests/mockaccount.cpp tokodon-25.04.2/src/autotests/mockaccount.cpp
--- tokodon-25.04.0/src/autotests/mockaccount.cpp 2025-04-10 05:11:52.000000000 +0200
+++ tokodon-25.04.2/src/autotests/mockaccount.cpp 2025-06-03 05:21:40.000000000 +0200
@@ -34,11 +34,13 @@
bool authenticated,
QObject *parent,
std::function<void(QNetworkReply *)> callback,
- std::function<void(QNetworkReply *)> errorCallback)
+ std::function<void(QNetworkReply *)> errorCallback,
+ bool fallible)
{
Q_UNUSED(authenticated)
Q_UNUSED(parent)
Q_UNUSED(errorCallback)
+ Q_UNUSED(fallible)
if (m_getReplies.contains(url)) {
auto reply = m_getReplies[url];
diff -ur '--exclude=po' tokodon-25.04.0/src/autotests/mockaccount.h tokodon-25.04.2/src/autotests/mockaccount.h
--- tokodon-25.04.0/src/autotests/mockaccount.h 2025-04-10 05:11:52.000000000 +0200
+++ tokodon-25.04.2/src/autotests/mockaccount.h 2025-06-03 05:21:40.000000000 +0200
@@ -16,7 +16,8 @@
bool authenticated,
QObject *parent,
std::function<void(QNetworkReply *)> callback,
- std::function<void(QNetworkReply *)> errorCallback = nullptr) override;
+ std::function<void(QNetworkReply *)> errorCallback = nullptr,
+ bool fallible = false) override;
void post(const QUrl &url,
const QJsonDocument &doc,
diff -ur '--exclude=po' tokodon-25.04.0/src/content/ui/Components/TimelineView.qml tokodon-25.04.2/src/content/ui/Components/TimelineView.qml
--- tokodon-25.04.0/src/content/ui/Components/TimelineView.qml 2025-04-10 05:11:52.000000000 +0200
+++ tokodon-25.04.2/src/content/ui/Components/TimelineView.qml 2025-06-03 05:21:40.000000000 +0200
@@ -30,6 +30,9 @@
if (event.key === Qt.Key_PageUp && !root.atYBeginning) {
event.accepted = true;
root.contentY -= height;
+ if (root.contentY < 0) {
+ root.contentY = 0;
+ }
} else if (event.key === Qt.Key_PageDown && !root.atYEnd) {
event.accepted = true;
root.contentY += height;
diff -ur '--exclude=po' tokodon-25.04.0/src/content/ui/ModerationTools/AccountToolPage.qml tokodon-25.04.2/src/content/ui/ModerationTools/AccountToolPage.qml
--- tokodon-25.04.0/src/content/ui/ModerationTools/AccountToolPage.qml 2025-04-10 05:11:52.000000000 +0200
+++ tokodon-25.04.2/src/content/ui/ModerationTools/AccountToolPage.qml 2025-06-03 05:21:40.000000000 +0200
@@ -233,7 +233,7 @@
implicitWidth: ListView.view.width
Layout.fillWidth: true
- onClicked: applicationWindow().pageStack.layers.push(Qt.createComponent("org.kde.tokodon", "MainAccountToolPage"), {
+ onClicked: root.QQC2.ApplicationWindow.window.pageStack.layers.push(Qt.createComponent("org.kde.tokodon", "MainAccountToolPage"), {
identity: delegate.identity,
index: delegate.index,
model: accountView.model
diff -ur '--exclude=po' tokodon-25.04.0/src/content/ui/ModerationTools/FederationToolPage.qml tokodon-25.04.2/src/content/ui/ModerationTools/FederationToolPage.qml
--- tokodon-25.04.0/src/content/ui/ModerationTools/FederationToolPage.qml 2025-04-10 05:11:52.000000000 +0200
+++ tokodon-25.04.2/src/content/ui/ModerationTools/FederationToolPage.qml 2025-06-03 05:21:40.000000000 +0200
@@ -258,7 +258,7 @@
width: ListView.view.width
onClicked: if (root.isDomainBlock) {
- applicationWindow().pageStack.layers.push(Qt.createComponent("org.kde.tokodon", "MainFederationToolPage"), {
+ root.QQC2.ApplicationWindow.window.pageStack.layers.push(Qt.createComponent("org.kde.tokodon", "MainFederationToolPage"), {
index: delegate.index,
model: federationView.model,
id: delegate.id,
diff -ur '--exclude=po' tokodon-25.04.0/src/content/ui/ModerationTools/IpRulePage.qml tokodon-25.04.2/src/content/ui/ModerationTools/IpRulePage.qml
--- tokodon-25.04.0/src/content/ui/ModerationTools/IpRulePage.qml 2025-04-10 05:11:52.000000000 +0200
+++ tokodon-25.04.2/src/content/ui/ModerationTools/IpRulePage.qml 2025-06-03 05:21:40.000000000 +0200
@@ -163,7 +163,7 @@
width: ListView.view.width
- onClicked: applicationWindow().pageStack.layers.push(Qt.createComponent("org.kde.tokodon", "MainIpRulePage"),
+ onClicked: root.QQC2.ApplicationWindow.window.pageStack.layers.push(Qt.createComponent("org.kde.tokodon", "MainIpRulePage"),
{
index: delegate.index,
model: ipRuleView.model,
diff -ur '--exclude=po' tokodon-25.04.0/src/content/ui/Settings/NotificationsPage.qml tokodon-25.04.2/src/content/ui/Settings/NotificationsPage.qml
--- tokodon-25.04.0/src/content/ui/Settings/NotificationsPage.qml 2025-04-10 05:11:52.000000000 +0200
+++ tokodon-25.04.2/src/content/ui/Settings/NotificationsPage.qml 2025-06-03 05:21:40.000000000 +0200
@@ -41,6 +41,7 @@
onToggled: {
root.config.enableNotifications = checked;
root.saveConfig();
+ root.account.updatePushNotifications();
}
}
}
diff -ur '--exclude=po' tokodon-25.04.0/src/tokodon.notifyrc tokodon-25.04.2/src/tokodon.notifyrc
--- tokodon-25.04.0/src/tokodon.notifyrc 2025-04-10 05:11:52.000000000 +0200
+++ tokodon-25.04.2/src/tokodon.notifyrc 2025-06-03 05:21:40.000000000 +0200
@@ -649,11 +649,13 @@
Name[fr]=Rapport annuel
Name[gl]=Informe anual
Name[he]=דוח שנתי
+Name[hu]=Éves jelentés
Name[it]=Resoconto annuale
Name[ka]=წლიური ანგარიში
Name[ko]=연간 보고
Name[lv]=Ikgadējais ziņojums
Name[nl]=Jaarlijks rapport
+Name[nn]=Årsrapport
Name[pl]=Roczne sprawozdanie
Name[ru]=Годовой отчёт
Name[sa]=वार्षिक प्रतिवेदन
@@ -675,20 +677,23 @@
Comment[fr]=Dévoilez les moments forts et mémorables de l'année dans le Fediverse !
Comment[gl]=Revele o salientábel e memorábel do seu último ano no Fediverso!
Comment[he]=חשיפת הרגעים הבלתי נשכחים מהשנה שחלפה בפדיברס!
+Comment[hu]=Mutassa be az év fénypontjait és emlékezetes pillanatait a Fediverse-en!
Comment[it]=Scopri i momenti più belli e memorabili del tuo anno sul Fediverso!
Comment[ka]=გამოაქვეყნეთ თქვენი წლის მაჩვენებლები და დასამახსოვრებელი მომენტები Fediverse-ზე!
Comment[ko]=연합우주에서의 올해의 하이라이트와 기억에 남는 순간을 발견하세요!
Comment[lv]=Apskati savus gada Fediversa spilgtākos un atmiņā paliekošākos brīžus!
Comment[nl]=Onthul de hoogtepunten en memorabele momenten van uw jaar op Fediverse!
+Comment[nn]=Vis årets høgdepunkt og minneverdige augneblink på Allheimen!
Comment[pl]=Udostępnij swoje wyróżnione wydarzenia i pamiętne chwile na Fediverse!
Comment[ru]=Ваши самые яркие события и незабываемые моменты в Fediverse за год
Comment[sa]=Fediverse इत्यत्र स्वस्य वर्षस्य मुख्यविषयाणां स्मरणीयक्षणानाञ्च अनावरणं कुर्वन्तु!
Comment[sl]=Razkrijte vrhunce svojega leta in nepozabne trenutke na Fediverse!
-Comment[sq]=Zbuloni gjërat në pah dhe çastet e paharrueshme të vitit në Fedivers!
+Comment[sq]=Zbuloni kulmet tuaja për vitin dhe çaste të paharrueshme në Fedivers!
Comment[sv]=Avslöja årets höjdpunkter och minnesvärda ögonblick på Fediverse.
Comment[tr]=Mastodon’da geçtiğimiz yılın önemli noktalarını ve unutulmaz anlarını ortaya çıkarın!
Comment[uk]=Ознайомтеся із акцентами року та незабутніми моментами у Fediverse!
Comment[x-test]=xxUnveil your year's highlights and memorable moments on the Fediverse!xx
+Comment[zh_TW]=發現您今年在聯邦宇宙上的精選與回憶時光吧!
Action=Popup
[Event/other]
@@ -704,16 +709,18 @@
Name[fr]=Autre
Name[gl]=Outras
Name[he]=אחר
+Name[hu]=Egyéb
Name[it]=Altro
Name[ka]=სხვა
Name[ko]=기타
Name[lv]=Citi
Name[nl]=Overige
+Name[nn]=Andre
Name[pl]=Inne
Name[ru]=Прочее
Name[sa]=अन्ये
Name[sl]=Druge
-Name[sq]=Të tjera
+Name[sq]=Tjetër
Name[sv]=Övriga
Name[tr]=Diğer
Name[uk]=Інше
@@ -730,11 +737,13 @@
Comment[fr]=Notifications ne correspondant à aucune autre catégorie
Comment[gl]=Notificacións que non casan noutras categorías.
Comment[he]=התראות שלא מתאימות לקטגוריות אחרות
+Comment[hu]=Más kategóriákba nem illő értesítések
Comment[it]=Notifiche che non rientrano in altre categorie
Comment[ka]=შეტყობინებები, რომლებიც არ ჯდება სხვა კატეგორიებში
Comment[ko]=다른 모든 분류에 포함되지 않는 알림
Comment[lv]=Paziņojumi, kas neietilpst citā kategorijās.
Comment[nl]=Meldingen die niet passen in andere categorieën
+Comment[nn]=Varslingar som ikkje passar i andre kategoriar
Comment[pl]=Powiadomienia, które nie pasują do żadnej z pozostałych kategorii
Comment[ru]=Уведомления, которые не попадают в другие категории
Comment[sa]=अन्येषु वर्गेषु न उपयुज्यन्ते ये सूचनाः