summaryrefslogtreecommitdiff
path: root/settings/accounts
diff options
context:
space:
mode:
authorAndrew Branson <andrew.branson@jolla.com>2026-03-19 16:48:51 +0100
committerAndrew Branson <andrew.branson@jolla.com>2026-03-19 16:48:51 +0100
commitc08a37b96fec1706a1eb560255d487ec6c8a05dc (patch)
tree5f2c3f059a5bce53e2bd189a40fd50c2a68d555d /settings/accounts
parent5fe5ede124da1824fd3b055ec480bf9ce4a5b83f (diff)
Sync with main
Diffstat (limited to 'settings/accounts')
-rw-r--r--settings/accounts/accounts.pro2
-rw-r--r--settings/accounts/services/mastodon-microblog.service2
-rw-r--r--settings/accounts/services/mastodon-notifications.service31
-rw-r--r--settings/accounts/ui/MastodonSettingsDisplay.qml25
-rw-r--r--settings/accounts/ui/mastodon-update.qml3
-rw-r--r--settings/accounts/ui/mastodon.qml5
6 files changed, 58 insertions, 10 deletions
diff --git a/settings/accounts/accounts.pro b/settings/accounts/accounts.pro
index d451438..190ee17 100644
--- a/settings/accounts/accounts.pro
+++ b/settings/accounts/accounts.pro
@@ -28,6 +28,7 @@ PRE_TARGETDEPS += ts engineering_english
OTHER_FILES += \
$$PWD/providers/mastodon.provider \
$$PWD/services/mastodon-microblog.service \
+ $$PWD/services/mastodon-notifications.service \
$$PWD/services/mastodon-sharing.service \
$$PWD/ui/MastodonSettingsDisplay.qml \
$$PWD/ui/mastodon.qml \
@@ -39,6 +40,7 @@ provider.path = /usr/share/accounts/providers/
services.files += \
$$PWD/services/mastodon-microblog.service \
+ $$PWD/services/mastodon-notifications.service \
$$PWD/services/mastodon-sharing.service
services.path = /usr/share/accounts/services/
diff --git a/settings/accounts/services/mastodon-microblog.service b/settings/accounts/services/mastodon-microblog.service
index 6b975f7..6151577 100644
--- a/settings/accounts/services/mastodon-microblog.service
+++ b/settings/accounts/services/mastodon-microblog.service
@@ -8,7 +8,7 @@
<provider>mastodon</provider>
<template>
- <setting name="sync_profile_templates" type="as">["mastodon.Posts", "mastodon.Notifications"]</setting>
+ <setting name="sync_profile_templates" type="as">["mastodon.Posts"]</setting>
<group name="auth">
<setting name="method">oauth2</setting>
<setting name="mechanism">web_server</setting>
diff --git a/settings/accounts/services/mastodon-notifications.service b/settings/accounts/services/mastodon-notifications.service
new file mode 100644
index 0000000..0c41e29
--- /dev/null
+++ b/settings/accounts/services/mastodon-notifications.service
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!-- Copyright (C) 2013-2026 Jolla Ltd. -->
+<service id="mastodon-notifications">
+ <type>microblogging</type>
+ <translations>/usr/share/translations/settings-accounts-mastodon</translations>
+ <name>Notifications</name>
+ <icon>image://theme/icon-l-mastodon</icon>
+ <provider>mastodon</provider>
+
+ <template>
+ <setting name="sync_profile_templates" type="as">["mastodon.Notifications"]</setting>
+ <group name="auth">
+ <setting name="method">oauth2</setting>
+ <setting name="mechanism">web_server</setting>
+ <group name="oauth2">
+ <group name="web_server">
+ <setting name="Host">mastodon.social</setting>
+ <setting name="AllowedSchemes" type="as">["https"]</setting>
+ <setting name="AuthPath">oauth/authorize</setting>
+ <setting name="TokenPath">oauth/token</setting>
+ <setting name="ResponseType">code</setting>
+ <setting name="Scope" type="as">["read","write"]</setting>
+ <setting name="RedirectUri">http://ipv4.jolla.com/online/status.html</setting>
+ </group>
+ </group>
+ </group>
+ <group name="api">
+ <setting name="Host">https://mastodon.social</setting>
+ </group>
+ </template>
+</service>
diff --git a/settings/accounts/ui/MastodonSettingsDisplay.qml b/settings/accounts/ui/MastodonSettingsDisplay.qml
index 1ee276e..c03221a 100644
--- a/settings/accounts/ui/MastodonSettingsDisplay.qml
+++ b/settings/accounts/ui/MastodonSettingsDisplay.qml
@@ -37,7 +37,8 @@ StandardAccountSettingsDisplay {
var providerDisplayName = root.accountProvider && root.accountProvider.displayName
? root.accountProvider.displayName.toString().trim()
: ""
- return providerDisplayName.length > 0 ? providerDisplayName : "Mastodon"
+ //% "Mastodon"
+ return providerDisplayName.length > 0 ? providerDisplayName : qsTrId("settings-accounts-mastodon-la-provider_name")
}
onAboutToSaveAccount: {
@@ -106,10 +107,20 @@ StandardAccountSettingsDisplay {
id: syncServicesRepeater
TextSwitch {
checked: model.enabled
- text: model.displayName
+ text: model.serviceName === "mastodon-microblog"
+ //% "Posts"
+ ? qsTrId("settings-accounts-mastodon-la-service_posts")
+ : (model.serviceName === "mastodon-notifications"
+ //% "Notifications"
+ ? qsTrId("settings-accounts-mastodon-la-service_notifications")
+ : model.displayName)
description: model.serviceName === "mastodon-microblog"
- ? "Show Mastodon posts in the Events view."
- : ""
+ //% "Show Mastodon posts in the Events view."
+ ? qsTrId("settings-accounts-mastodon-la-service_posts_description")
+ : (model.serviceName === "mastodon-notifications"
+ //% "Show Mastodon notifications."
+ ? qsTrId("settings-accounts-mastodon-la-service_notifications_description")
+ : "")
visible: text.length > 0
onCheckedChanged: {
if (checked) {
@@ -124,8 +135,10 @@ StandardAccountSettingsDisplay {
TextSwitch {
id: eventsSyncSwitch
- text: "Sync Mastodon feed automatically"
- description: "Fetch new posts periodically when browsing Events Mastodon feed."
+ //% "Sync Mastodon feed automatically"
+ text: qsTrId("settings-accounts-mastodon-la-auto_sync_feed")
+ //% "Fetch new posts periodically when browsing Events Mastodon feed."
+ description: qsTrId("settings-accounts-mastodon-la-auto_sync_feed_description")
onCheckedChanged: {
autoSyncConf.value = checked
diff --git a/settings/accounts/ui/mastodon-update.qml b/settings/accounts/ui/mastodon-update.qml
index 98dba8c..75c043d 100644
--- a/settings/accounts/ui/mastodon-update.qml
+++ b/settings/accounts/ui/mastodon-update.qml
@@ -175,7 +175,8 @@ AccountCredentialsAgent {
var clientId = _valueFromServiceConfig(config, "auth/oauth2/web_server/ClientId")
var clientSecret = _valueFromServiceConfig(config, "auth/oauth2/web_server/ClientSecret")
if (clientId.length === 0 || clientSecret.length === 0) {
- credentialsUpdateError("Missing Mastodon OAuth client credentials")
+ //% "Missing Mastodon OAuth client credentials"
+ credentialsUpdateError(qsTrId("settings-accounts-mastodon-la-missing_client_credentials"))
return
}
diff --git a/settings/accounts/ui/mastodon.qml b/settings/accounts/ui/mastodon.qml
index e7cf255..a32f336 100644
--- a/settings/accounts/ui/mastodon.qml
+++ b/settings/accounts/ui/mastodon.qml
@@ -366,12 +366,13 @@ AccountCreationAgent {
function configure() {
hasConfigured = true
- var services = ["mastodon-microblog", "mastodon-sharing"]
+ var services = ["mastodon-microblog", "mastodon-notifications", "mastodon-sharing"]
var providerDisplayName = root.accountProvider && root.accountProvider.displayName
? root.accountProvider.displayName.toString().trim()
: ""
if (providerDisplayName.length === 0) {
- providerDisplayName = "Mastodon"
+ //% "Mastodon"
+ providerDisplayName = qsTrId("settings-accounts-mastodon-la-provider_name")
}
newAccount.displayName = providerDisplayName