mirror of
https://gitlab.com/famedly/fluffychat.git
synced 2024-11-19 10:39:26 +01:00
fix: Enable gotify recommendations
This commit is contained in:
parent
183b4981e0
commit
9915b4693c
@ -1573,6 +1573,7 @@
|
|||||||
"type": "text",
|
"type": "text",
|
||||||
"placeholders": {}
|
"placeholders": {}
|
||||||
},
|
},
|
||||||
|
"link": "Link",
|
||||||
"serverRequiresEmail": "This server needs to validate your email address for registration.",
|
"serverRequiresEmail": "This server needs to validate your email address for registration.",
|
||||||
"optionalGroupName": "(Optional) Group name",
|
"optionalGroupName": "(Optional) Group name",
|
||||||
"@optionalGroupName": {
|
"@optionalGroupName": {
|
||||||
|
@ -1,62 +1,37 @@
|
|||||||
---
|
---
|
||||||
layout: default
|
layout: default
|
||||||
title: F-Droid Repository
|
title: Push
|
||||||
lang: en
|
lang: en
|
||||||
---
|
---
|
||||||
# F-Droid Repository
|
# Enable Push Notifications without Google Services
|
||||||
|
|
||||||
## Add Repository to F-Droid
|
You have two options to receive push notifications on FluffyChat without Google Services.
|
||||||
|
|
||||||
Easiest way to add the Repository is to either scan the QR-Code or if you are on your phone directly click it.
|
1. Unified Push
|
||||||
|
2. MicroG
|
||||||
|
|
||||||
{::nomarkdown}
|
## 1. Unified Push
|
||||||
<a href="fdroidrepos://fdroid.fluffychat.im/?fingerprint=8E2637AEF6697CC6DD486AF044A6EE45B1A742AE3EF56566E748CDE8BC65C1FB" >
|
|
||||||
<img src="{{site.assets}}/images/qr-code.svg" width="300" height="300"/>
|
|
||||||
</a>
|
|
||||||
{:/}
|
|
||||||
|
|
||||||
|
UnifiedPush is specifications and tools that let the user choose how push notifications are delivered. All in a free and open source way.
|
||||||
|
|
||||||
### If the QR-Code doesn't work:
|
### Use hosted (easy)
|
||||||
|
|
||||||
First check if you have f-droid installed. If not you can get it from: [https://f-droid.org/](https://f-droid.org/).
|
1. Go to: https://gotify1.unifiedpush.org/
|
||||||
After you made sure you installed it and you didn't have it installed before you can try again the QR-Code.
|
2. Register an account with a username+password
|
||||||
If this still isn't working follow the next steps:
|
3. Download UP-Gotify from F-Droid: https://f-droid.org/de/packages/com.github.gotify.up/
|
||||||
|
4. Login on https://gotify1.unifiedpush.org/ with your username+password
|
||||||
|
5. Restart FluffyChat
|
||||||
|
|
||||||
1. Open the f-droid App
|
From now on all push notifications will go through unified push.
|
||||||
2. Go to the `Settings` Tab in the Bottom bar
|
|
||||||
3. Click the `Repositories` Action
|
|
||||||
4. Click on the plus sign at the top.
|
|
||||||
5. Fill in `https://fdroid.fluffychat.im` into the top field and `8E2637AEF6697CC6DD486AF044A6EE45B1A742AE3EF56566E748CDE8BC65C1FB` in the bottom field.
|
|
||||||
|
|
||||||
## What is the fingerprint?
|
### Self-host (hard)
|
||||||
|
|
||||||
The fingerprint of the Repository is: `8E2637AEF6697CC6DD486AF044A6EE45B1A742AE3EF56566E748CDE8BC65C1FB`
|
For more privacy and protection of your meta data you can self host Gotify for unified push.
|
||||||
|
|
||||||
# Nightly Repository
|
Learn more about it here: https://unifiedpush.org/users/distributors/gotify/
|
||||||
|
|
||||||
## Add Repository to F-Droid
|
## 2. MicroG
|
||||||
|
|
||||||
Easiest way to add the Repository is to either scan the QR-Code or if you are on your phone directly click it.
|
You can use Firebase Cloud Messaging without Google Services using MicroG.
|
||||||
|
|
||||||
{::nomarkdown}
|
Learn more about it here: https://microg.org/
|
||||||
<a href="fdroidrepos://nightly.fdroid.fluffychat.im/?fingerprint=21A469657300576478B623DF99D8EB889A80BCD939ACA60A4074741BEAEC397D" >
|
|
||||||
<img src="{{site.assets}}/images/qr-code-nightly.svg" width="300" height="300"/>
|
|
||||||
</a>
|
|
||||||
{:/}
|
|
||||||
|
|
||||||
|
|
||||||
### If the QR-Code doesn't work:
|
|
||||||
|
|
||||||
First check if you have f-droid installed. If not you can get it from: [https://f-droid.org/](https://f-droid.org/).
|
|
||||||
After you made sure you installed it and you didn't have it installed before you can try again the QR-Code.
|
|
||||||
If this still isn't working follow the next steps:
|
|
||||||
|
|
||||||
1. Open the f-droid App
|
|
||||||
2. Go to the `Settings` Tab in the Bottom bar
|
|
||||||
3. Click the `Repositories` Action
|
|
||||||
4. Click on the plus sign at the top.
|
|
||||||
5. Fill in `https://nightly.fdroid.fluffychat.im` into the top field and `21A469657300576478B623DF99D8EB889A80BCD939ACA60A4074741BEAEC397D` in the bottom field.
|
|
||||||
|
|
||||||
## What is the fingerprint?
|
|
||||||
|
|
||||||
The fingerprint of the Repository is: `21A469657300576478B623DF99D8EB889A80BCD939ACA60A4074741BEAEC397D`
|
|
62
docs/en/push.md
Normal file
62
docs/en/push.md
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
---
|
||||||
|
layout: default
|
||||||
|
title: F-Droid Repository
|
||||||
|
lang: en
|
||||||
|
---
|
||||||
|
# F-Droid Repository
|
||||||
|
|
||||||
|
## Add Repository to F-Droid
|
||||||
|
|
||||||
|
Easiest way to add the Repository is to either scan the QR-Code or if you are on your phone directly click it.
|
||||||
|
|
||||||
|
{::nomarkdown}
|
||||||
|
<a href="fdroidrepos://fdroid.fluffychat.im/?fingerprint=8E2637AEF6697CC6DD486AF044A6EE45B1A742AE3EF56566E748CDE8BC65C1FB" >
|
||||||
|
<img src="{{site.assets}}/images/qr-code.svg" width="300" height="300"/>
|
||||||
|
</a>
|
||||||
|
{:/}
|
||||||
|
|
||||||
|
|
||||||
|
### If the QR-Code doesn't work:
|
||||||
|
|
||||||
|
First check if you have f-droid installed. If not you can get it from: [https://f-droid.org/](https://f-droid.org/).
|
||||||
|
After you made sure you installed it and you didn't have it installed before you can try again the QR-Code.
|
||||||
|
If this still isn't working follow the next steps:
|
||||||
|
|
||||||
|
1. Open the f-droid App
|
||||||
|
2. Go to the `Settings` Tab in the Bottom bar
|
||||||
|
3. Click the `Repositories` Action
|
||||||
|
4. Click on the plus sign at the top.
|
||||||
|
5. Fill in `https://fdroid.fluffychat.im` into the top field and `8E2637AEF6697CC6DD486AF044A6EE45B1A742AE3EF56566E748CDE8BC65C1FB` in the bottom field.
|
||||||
|
|
||||||
|
## What is the fingerprint?
|
||||||
|
|
||||||
|
The fingerprint of the Repository is: `8E2637AEF6697CC6DD486AF044A6EE45B1A742AE3EF56566E748CDE8BC65C1FB`
|
||||||
|
|
||||||
|
# Nightly Repository
|
||||||
|
|
||||||
|
## Add Repository to F-Droid
|
||||||
|
|
||||||
|
Easiest way to add the Repository is to either scan the QR-Code or if you are on your phone directly click it.
|
||||||
|
|
||||||
|
{::nomarkdown}
|
||||||
|
<a href="fdroidrepos://nightly.fdroid.fluffychat.im/?fingerprint=21A469657300576478B623DF99D8EB889A80BCD939ACA60A4074741BEAEC397D" >
|
||||||
|
<img src="{{site.assets}}/images/qr-code-nightly.svg" width="300" height="300"/>
|
||||||
|
</a>
|
||||||
|
{:/}
|
||||||
|
|
||||||
|
|
||||||
|
### If the QR-Code doesn't work:
|
||||||
|
|
||||||
|
First check if you have f-droid installed. If not you can get it from: [https://f-droid.org/](https://f-droid.org/).
|
||||||
|
After you made sure you installed it and you didn't have it installed before you can try again the QR-Code.
|
||||||
|
If this still isn't working follow the next steps:
|
||||||
|
|
||||||
|
1. Open the f-droid App
|
||||||
|
2. Go to the `Settings` Tab in the Bottom bar
|
||||||
|
3. Click the `Repositories` Action
|
||||||
|
4. Click on the plus sign at the top.
|
||||||
|
5. Fill in `https://nightly.fdroid.fluffychat.im` into the top field and `21A469657300576478B623DF99D8EB889A80BCD939ACA60A4074741BEAEC397D` in the bottom field.
|
||||||
|
|
||||||
|
## What is the fingerprint?
|
||||||
|
|
||||||
|
The fingerprint of the Repository is: `21A469657300576478B623DF99D8EB889A80BCD939ACA60A4074741BEAEC397D`
|
@ -16,6 +16,7 @@ abstract class AppConfig {
|
|||||||
static const Color secondaryColor = Color(0xFF41a2bc);
|
static const Color secondaryColor = Color(0xFF41a2bc);
|
||||||
static String _privacyUrl = 'https://fluffychat.im/en/privacy.html';
|
static String _privacyUrl = 'https://fluffychat.im/en/privacy.html';
|
||||||
static String get privacyUrl => _privacyUrl;
|
static String get privacyUrl => _privacyUrl;
|
||||||
|
static const String enablePushTutorial = 'https://fluffychat.im/en/push.html';
|
||||||
static const String appId = 'im.fluffychat.FluffyChat';
|
static const String appId = 'im.fluffychat.FluffyChat';
|
||||||
static const String appOpenUrlScheme = 'im.fluffychat';
|
static const String appOpenUrlScheme = 'im.fluffychat';
|
||||||
static String _webBaseUrl = 'https://fluffychat.im/web';
|
static String _webBaseUrl = 'https://fluffychat.im/web';
|
||||||
|
@ -51,8 +51,7 @@ class BackgroundPush {
|
|||||||
BuildContext context;
|
BuildContext context;
|
||||||
GlobalKey<VRouterState> router;
|
GlobalKey<VRouterState> router;
|
||||||
String _fcmToken;
|
String _fcmToken;
|
||||||
LoginState _loginState;
|
void Function(String errorMsg, {Uri link}) onFcmError;
|
||||||
void Function(String errorMsg) onFcmError;
|
|
||||||
L10n l10n;
|
L10n l10n;
|
||||||
Store _store;
|
Store _store;
|
||||||
Store get store => _store ??= Store();
|
Store get store => _store ??= Store();
|
||||||
@ -95,7 +94,7 @@ class BackgroundPush {
|
|||||||
|
|
||||||
factory BackgroundPush(
|
factory BackgroundPush(
|
||||||
Client _client, BuildContext _context, GlobalKey<VRouterState> router,
|
Client _client, BuildContext _context, GlobalKey<VRouterState> router,
|
||||||
{final void Function(String errorMsg) onFcmError}) {
|
{final void Function(String errorMsg, {Uri link}) onFcmError}) {
|
||||||
final instance = BackgroundPush.clientOnly(_client);
|
final instance = BackgroundPush.clientOnly(_client);
|
||||||
instance.context = _context;
|
instance.context = _context;
|
||||||
instance.router = router;
|
instance.router = router;
|
||||||
@ -109,7 +108,6 @@ class BackgroundPush {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void handleLoginStateChanged(LoginState state) {
|
void handleLoginStateChanged(LoginState state) {
|
||||||
_loginState = state;
|
|
||||||
setupPush();
|
setupPush();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -217,7 +215,7 @@ class BackgroundPush {
|
|||||||
|
|
||||||
Future<void> setupPush() async {
|
Future<void> setupPush() async {
|
||||||
await setupLocalNotificationsPlugin();
|
await setupLocalNotificationsPlugin();
|
||||||
if (_loginState != LoginState.loggedIn ||
|
if (client.loginState != LoginState.loggedIn ||
|
||||||
!PlatformInfos.isMobile ||
|
!PlatformInfos.isMobile ||
|
||||||
context == null) {
|
context == null) {
|
||||||
return;
|
return;
|
||||||
@ -250,9 +248,15 @@ class BackgroundPush {
|
|||||||
}
|
}
|
||||||
if (await store.getItemBool(SettingKeys.showNoGoogle, true)) {
|
if (await store.getItemBool(SettingKeys.showNoGoogle, true)) {
|
||||||
await loadLocale();
|
await loadLocale();
|
||||||
onFcmError?.call(PlatformInfos.isAndroid
|
if (PlatformInfos.isAndroid) {
|
||||||
? l10n.noGoogleServicesWarning
|
onFcmError?.call(
|
||||||
: l10n.oopsPushError);
|
l10n.noGoogleServicesWarning,
|
||||||
|
link: Uri.parse(
|
||||||
|
AppConfig.enablePushTutorial,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
onFcmError?.call(l10n.oopsPushError);
|
||||||
|
|
||||||
if (null == await store.getItem(SettingKeys.showNoGoogle)) {
|
if (null == await store.getItem(SettingKeys.showNoGoogle)) {
|
||||||
await store.setItemBool(SettingKeys.showNoGoogle, false);
|
await store.setItemBool(SettingKeys.showNoGoogle, false);
|
||||||
|
@ -519,8 +519,22 @@ class MatrixState extends State<Matrix> with WidgetsBindingObserver {
|
|||||||
client,
|
client,
|
||||||
context,
|
context,
|
||||||
widget.router,
|
widget.router,
|
||||||
onFcmError: (errorMsg) => ScaffoldMessenger.of(context)
|
onFcmError: (errorMsg, {Uri link}) => Timer(
|
||||||
.showSnackBar(SnackBar(content: Text(errorMsg))),
|
Duration(seconds: 1),
|
||||||
|
() {
|
||||||
|
final banner = SnackBar(
|
||||||
|
content: Text(errorMsg),
|
||||||
|
duration: Duration(seconds: 30),
|
||||||
|
action: link == null
|
||||||
|
? null
|
||||||
|
: SnackBarAction(
|
||||||
|
label: L10n.of(context).link,
|
||||||
|
onPressed: () => launch(link.toString()),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
ScaffoldMessenger.of(navigatorContext).showSnackBar(banner);
|
||||||
|
},
|
||||||
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user