Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package kf6-knotifications for 
openSUSE:Factory checked in at 2026-07-15 16:30:50
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kf6-knotifications (Old)
 and      /work/SRC/openSUSE:Factory/.kf6-knotifications.new.1991 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kf6-knotifications"

Wed Jul 15 16:30:50 2026 rev:29 rq:1365120 version:6.28.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/kf6-knotifications/kf6-knotifications.changes    
2026-06-16 13:56:02.299789512 +0200
+++ 
/work/SRC/openSUSE:Factory/.kf6-knotifications.new.1991/kf6-knotifications.changes
  2026-07-15 16:39:15.429693871 +0200
@@ -1,0 +2,12 @@
+Fri Jul 10 12:15:58 UTC 2026 - Christophe Marin <[email protected]>
+
+- Update to 6.28.0
+  * New feature release
+  * For more details please see:
+  * https://kde.org/announcements/frameworks/6/6.28.0
+- Changes since 6.27.0:
+  * Update dependency version to 6.28.0
+  * android: Modernize JNI code
+  * Update version to 6.28.0
+
+-------------------------------------------------------------------

Old:
----
  knotifications-6.27.0.tar.xz
  knotifications-6.27.0.tar.xz.sig

New:
----
  knotifications-6.28.0.tar.xz
  knotifications-6.28.0.tar.xz.sig

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ kf6-knotifications.spec ++++++
--- /var/tmp/diff_new_pack.wBiMXP/_old  2026-07-15 16:39:18.217788852 +0200
+++ /var/tmp/diff_new_pack.wBiMXP/_new  2026-07-15 16:39:18.217788852 +0200
@@ -28,11 +28,11 @@
 %define mypython_sitearch %{expand:%%%{mypython}_sitearch}
 %endif
 
-# Full KF6 version (e.g. 6.27.0)
+# Full KF6 version (e.g. 6.28.0)
 %{!?_kf6_version: %global _kf6_version %{version}}
 %bcond_without released
 Name:           kf6-knotifications
-Version:        6.27.0
+Version:        6.28.0
 Release:        0
 Summary:        KDE Desktop notifications
 License:        LGPL-2.1-or-later


++++++ knotifications-6.27.0.tar.xz -> knotifications-6.28.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/knotifications-6.27.0/CMakeLists.txt 
new/knotifications-6.28.0/CMakeLists.txt
--- old/knotifications-6.27.0/CMakeLists.txt    2026-06-05 17:48:22.000000000 
+0200
+++ new/knotifications-6.28.0/CMakeLists.txt    2026-07-03 12:58:08.000000000 
+0200
@@ -1,12 +1,12 @@
 cmake_minimum_required(VERSION 3.29)
 
-set(KF_VERSION "6.27.0") # handled by release scripts
-set(KF_DEP_VERSION "6.27.0") # handled by release scripts
+set(KF_VERSION "6.28.0") # handled by release scripts
+set(KF_DEP_VERSION "6.28.0") # handled by release scripts
 project(KNotifications VERSION ${KF_VERSION})
 
 # ECM setup
 include(FeatureSummary)
-find_package(ECM 6.27.0  NO_MODULE)
+find_package(ECM 6.28.0  NO_MODULE)
 set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake 
Modules." URL "https://commits.kde.org/extra-cmake-modules";)
 feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND 
FATAL_ON_MISSING_REQUIRED_PACKAGES)
 
@@ -107,7 +107,7 @@
 
 ecm_set_disabled_deprecation_versions(
     QT 6.11
-    KF 6.26
+    KF 6.27
 )
 
 add_subdirectory(src)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/knotifications-6.27.0/poqm/ia/knotifications6_qt.po 
new/knotifications-6.28.0/poqm/ia/knotifications6_qt.po
--- old/knotifications-6.27.0/poqm/ia/knotifications6_qt.po     2026-06-05 
17:48:23.000000000 +0200
+++ new/knotifications-6.28.0/poqm/ia/knotifications6_qt.po     2026-07-03 
12:58:08.000000000 +0200
@@ -945,7 +945,7 @@
 #~ msgstr "Patronos"
 
 #~ msgid "Wallpapers"
-#~ msgstr "Tapetes de papiro"
+#~ msgstr "Fundos de schermo"
 
 #~ msgid "XDG Application menu (.desktop files)"
 #~ msgstr "XDG Menu de applicationes (files .desktop)"
@@ -8604,7 +8604,7 @@
 
 #~ msgid "Too many requests to server. Please try again in a few minutes."
 #~ msgstr ""
-#~ "Troppo requestas a le servitor. Pro favor prova de nove inter pauc "
+#~ "Troppo requestas a le servitor. Pro favor prova de nove inter pauco "
 #~ "minutas."
 
 #~ msgid "Unknown Open Collaboration Service API error. (%1)"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/knotifications-6.27.0/poqm/nb/knotifications6_qt.po 
new/knotifications-6.28.0/poqm/nb/knotifications6_qt.po
--- old/knotifications-6.27.0/poqm/nb/knotifications6_qt.po     2026-06-05 
17:48:23.000000000 +0200
+++ new/knotifications-6.28.0/poqm/nb/knotifications6_qt.po     2026-07-03 
12:58:08.000000000 +0200
@@ -14,7 +14,7 @@
 "POT-Creation-Date: 2014-02-28 03:44+0000\n"
 "PO-Revision-Date: 2014-04-25 15:53+0200\n"
 "Last-Translator: Bjørn Steensrud <[email protected]>\n"
-"Language-Team: Norwegian Bokmål <[email protected]>\n"
+"Language-Team: Norwegian Bokmål <[email protected]>\n"
 "Language: nb\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/knotifications-6.27.0/poqm/nn/knotifications6_qt.po 
new/knotifications-6.28.0/poqm/nn/knotifications6_qt.po
--- old/knotifications-6.27.0/poqm/nn/knotifications6_qt.po     2026-06-05 
17:48:23.000000000 +0200
+++ new/knotifications-6.28.0/poqm/nn/knotifications6_qt.po     2026-07-03 
12:58:08.000000000 +0200
@@ -13,7 +13,7 @@
 "PO-Revision-Date: 2022-01-23 12:48+0100\n"
 "Last-Translator: Øystein Steffensen-Alværvik <oysteins.omsetting@protonmail."
 "com>\n"
-"Language-Team: Norwegian Nynorsk <[email protected]>\n"
+"Language-Team: Norwegian Nynorsk <[email protected]>\n"
 "Language: nn\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/knotifications-6.27.0/poqm/se/knotifications6_qt.po 
new/knotifications-6.28.0/poqm/se/knotifications6_qt.po
--- old/knotifications-6.27.0/poqm/se/knotifications6_qt.po     2026-06-05 
17:48:23.000000000 +0200
+++ new/knotifications-6.28.0/poqm/se/knotifications6_qt.po     2026-07-03 
12:58:08.000000000 +0200
@@ -8,7 +8,7 @@
 "POT-Creation-Date: 2014-02-28 03:44+0000\n"
 "PO-Revision-Date: 2012-05-30 23:19+0200\n"
 "Last-Translator: Børre Gaup <[email protected]>\n"
-"Language-Team: Northern Sami <[email protected]>\n"
+"Language-Team: Northern Sami <[email protected]>\n"
 "Language: se\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/knotifications-6.27.0/src/notifybyandroid.cpp 
new/knotifications-6.28.0/src/notifybyandroid.cpp
--- old/knotifications-6.27.0/src/notifybyandroid.cpp   2026-06-05 
17:48:23.000000000 +0200
+++ new/knotifications-6.28.0/src/notifybyandroid.cpp   2026-07-03 
12:58:08.000000000 +0200
@@ -17,6 +17,7 @@
 #include <QIcon>
 
 using namespace Qt::Literals;
+using namespace QtJniTypes;
 
 static NotifyByAndroid *s_instance = nullptr;
 
@@ -29,61 +30,43 @@
     }
 }
 
-static void notificationActionInvoked(JNIEnv *env, jobject that, jint id, 
jstring action)
+Q_DECLARE_JNI_NATIVE_METHOD(notificationFinished);
+
+static void notificationActionInvoked(JNIEnv *env, jobject that, jint id, 
const QString &action)
 {
     Q_UNUSED(env);
     Q_UNUSED(that);
     if (s_instance) {
-        const char *str = env->GetStringUTFChars(action, nullptr);
-        s_instance->notificationActionInvoked(id, QString::fromUtf8(str));
-        env->ReleaseStringUTFChars(action, str);
+        s_instance->notificationActionInvoked(id, action);
     }
 }
 
-static void notificationInlineReply(JNIEnv *env, jobject that, jint id, 
jstring text)
+Q_DECLARE_JNI_NATIVE_METHOD(notificationActionInvoked)
+
+static void notificationInlineReply(JNIEnv *env, jobject that, jint id, const 
QString &text)
 {
+    Q_UNUSED(env);
     Q_UNUSED(that);
     if (s_instance) {
-        const char *str = env->GetStringUTFChars(text, nullptr);
-        s_instance->notificationInlineReply(id, QString::fromUtf8(str));
-        env->ReleaseStringUTFChars(text, str);
+        s_instance->notificationInlineReply(id, text);
     }
 }
 
-static const JNINativeMethod methods[] = {
-    {"notificationFinished", "(I)V", (void *)notificationFinished},
-    {"notificationActionInvoked", "(ILjava/lang/String;)V", (void 
*)notificationActionInvoked},
-    {"notificationInlineReply", "(ILjava/lang/String;)V", (void 
*)notificationInlineReply},
-};
-
-KNOTIFICATIONS_EXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *)
-{
-    static bool initialized = false;
-    if (initialized) {
-        return JNI_VERSION_1_4;
-    }
-    initialized = true;
-
-    JNIEnv *env = nullptr;
-    if (vm->GetEnv((void **)&env, JNI_VERSION_1_4) != JNI_OK) {
-        qCWarning(LOG_KNOTIFICATIONS) << "Failed to get JNI environment.";
-        return -1;
-    }
-    jclass cls = env->FindClass("org/kde/knotifications/NotifyByAndroid");
-    if (env->RegisterNatives(cls, methods, sizeof(methods) / 
sizeof(JNINativeMethod)) < 0) {
-        qCWarning(LOG_KNOTIFICATIONS) << "Failed to register native 
functions.";
-        return -1;
-    }
-
-    return JNI_VERSION_1_4;
-}
+Q_DECLARE_JNI_NATIVE_METHOD(notificationInlineReply)
 
 NotifyByAndroid::NotifyByAndroid(QObject *parent)
     : KNotificationPlugin(parent)
 {
+    static bool nativeCallBacksInitialized = []() {
+        return NotifyByAndroidBackend::registerNativeMethods({
+            Q_JNI_NATIVE_METHOD(notificationFinished),
+            Q_JNI_NATIVE_METHOD(notificationActionInvoked),
+            Q_JNI_NATIVE_METHOD(notificationInlineReply)
+        });
+    }();
+
     s_instance = this;
-    QJniObject context = QNativeInterface::QAndroidApplication::context();
-    m_backend = QJniObject("org/kde/knotifications/NotifyByAndroid", 
"(Landroid/content/Context;)V", context.object<jobject>());
+    m_backend = 
NotifyByAndroidBackend(QNativeInterface::QAndroidApplication::context());
 }
 
 NotifyByAndroid::~NotifyByAndroid()
@@ -96,23 +79,23 @@
     return QStringLiteral("Popup");
 }
 
-QJniObject NotifyByAndroid::createAndroidNotification(KNotification 
*notification, const KNotifyConfig &notifyConfig) const
+KNotificationData NotifyByAndroid::createAndroidNotification(KNotification 
*notification, const KNotifyConfig &notifyConfig) const
 {
     QJniEnvironment env;
-    QJniObject n("org/kde/knotifications/KNotification", "()V");
+    KNotificationData n;
     n.setField("id", notification->id());
-    n.setField("text", 
QJniObject::fromString(stripRichText(notification->text())).object<jstring>());
-    n.setField("richText", 
QJniObject::fromString(notification->text()).object<jstring>());
-    n.setField("title", 
QJniObject::fromString(notification->title()).object<jstring>());
+    n.setField("text", stripRichText(notification->text()));
+    n.setField("richText", notification->text());
+    n.setField("title", notification->title());
     n.setField("urgency", (jint)(notification->urgency() == 
KNotification::DefaultUrgency ? KNotification::HighUrgency : 
notification->urgency()));
-    n.setField("visibility", 
QJniObject::fromString(notification->hints().value(QLatin1String("x-kde-visibility")).toString().toLower()).object<jstring>());
+    n.setField("visibility", 
notification->hints().value(QLatin1String("x-kde-visibility")).toString().toLower());
 
-    n.setField("channelId", 
QJniObject::fromString(notification->eventId()).object<jstring>());
-    n.setField("channelName", 
QJniObject::fromString(notifyConfig.readEntry(QLatin1String("Name"))).object<jstring>());
-    n.setField("channelDescription", 
QJniObject::fromString(notifyConfig.readEntry(QLatin1String("Comment"))).object<jstring>());
+    n.setField("channelId", notification->eventId());
+    n.setField("channelName", notifyConfig.readEntry(QLatin1String("Name")));
+    n.setField("channelDescription", 
notifyConfig.readEntry(QLatin1String("Comment")));
 
     if ((notification->flags() & KNotification::SkipGrouping) == 0) {
-        n.setField("group", 
QJniObject::fromString(notification->eventId()).object<jstring>());
+        n.setField("group", notification->eventId());
     }
 
     // icon
@@ -156,15 +139,12 @@
     // actions
     const auto actions = notification->actions();
     for (const KNotificationAction *action : actions) {
-        n.callMethod<void>("addAction",
-                           "(Ljava/lang/String;Ljava/lang/String;)V",
-                           
QJniObject::fromString(action->id()).object<jstring>(),
-                           
QJniObject::fromString(action->label()).object<jstring>());
+        n.callMethod<void>("addAction", action->id(), action->label());
     }
 
     if (notification->replyAction()) {
-        n.setField("inlineReplyLabel", 
QJniObject::fromString(notification->replyAction()->label()).object<jstring>());
-        n.setField("inlineReplyPlaceholder", 
QJniObject::fromString(notification->replyAction()->placeholderText()).object<jstring>());
+        n.setField("inlineReplyLabel", notification->replyAction()->label());
+        n.setField("inlineReplyPlaceholder", 
notification->replyAction()->placeholderText());
     }
 
     return n;
@@ -175,18 +155,18 @@
     const auto n = createAndroidNotification(notification, notifyConfig);
     m_notifications.insert(notification->id(), notification);
 
-    m_backend.callMethod<void>("notify", 
"(Lorg/kde/knotifications/KNotification;)V", n.object<jobject>());
+    m_backend.callMethod<void>("notify", n);
 }
 
 void NotifyByAndroid::update(KNotification *notification, const KNotifyConfig 
&notifyConfig)
 {
     const auto n = createAndroidNotification(notification, notifyConfig);
-    m_backend.callMethod<void>("notify", 
"(Lorg/kde/knotifications/KNotification;)V", n.object<jobject>());
+    m_backend.callMethod<void>("notify", n);
 }
 
 void NotifyByAndroid::close(KNotification *notification)
 {
-    m_backend.callMethod<void>("close", "(ILjava/lang/String;)V", 
notification->id(), 
QJniObject::fromString(notification->eventId()).object<jstring>());
+    m_backend.callMethod<void>("close", notification->id(), 
notification->eventId());
     KNotificationPlugin::close(notification);
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/knotifications-6.27.0/src/notifybyandroid.h 
new/knotifications-6.28.0/src/notifybyandroid.h
--- old/knotifications-6.27.0/src/notifybyandroid.h     2026-06-05 
17:48:23.000000000 +0200
+++ new/knotifications-6.28.0/src/notifybyandroid.h     2026-07-03 
12:58:08.000000000 +0200
@@ -10,8 +10,12 @@
 #include "knotificationplugin.h"
 
 #include <QJniObject>
+#include <QtJniTypes>
 #include <QPointer>
 
+Q_DECLARE_JNI_CLASS(NotifyByAndroidBackend, 
"org/kde/knotifications/NotifyByAndroid")
+Q_DECLARE_JNI_CLASS(KNotificationData, "org/kde/knotifications/KNotification")
+
 /* Android notification backend. */
 class NotifyByAndroid : public KNotificationPlugin
 {
@@ -32,9 +36,9 @@
     void notificationInlineReply(int id, const QString &text);
 
 private:
-    QJniObject createAndroidNotification(KNotification *notification, const 
KNotifyConfig &notifyConfig) const;
+    QtJniTypes::KNotificationData createAndroidNotification(KNotification 
*notification, const KNotifyConfig &notifyConfig) const;
 
-    QJniObject m_backend;
+    QtJniTypes::NotifyByAndroidBackend m_backend;
     QHash<int, QPointer<KNotification>> m_notifications;
 };
 

Reply via email to