Merge remote-tracking branch 'origin/master'

This commit is contained in:
2025-06-18 17:36:00 +01:00
4 changed files with 68 additions and 15 deletions

View File

@@ -72,9 +72,11 @@ class _HomeScreenState extends State<HomeScreen> {
void setDiscordRPC() async{
final bool discordEnabled = prefs.getBool("discord_rpc") ?? false;
if (discordEnabled) {
await discord.initDiscordRPC();
if (!discordEnabled) {
await discord.cleanup();
return;
}
await discord.initDiscordRPC(autoRetry: discordEnabled);
}
void goToLogin() {

View File

@@ -70,11 +70,10 @@ class _MangaDetailsScreenState extends State<MangaDetailsScreen> {
}
int getSavedSource() {
final List<String> sourcesNames = mangaSources.values.map((a) =>
a.getSourceName()).toList();
final List<String> sourcesNames = mangaSources.values.map((a) => a.getSourceName()).toList();
final String? savedSource = prefs.getString(_defaultMangaSourceKey);
if (savedSource != null && sourcesNames.contains(savedSource)) {
logger.i("Found saved previously saved source: $savedSource");
logger.i("Found previously saved source: $savedSource");
return sourcesNames.indexOf(savedSource);
}
return 0;

View File

@@ -128,7 +128,7 @@ class _SettingsScreenState extends State<SettingsScreen> {
prefs.setBool("discord_rpc", newValue);
});
if (newValue) {
await discord.initDiscordRPC();
await discord.initDiscordRPC(autoRetry: true);
} else {
await discord.cleanup();
}

View File

@@ -1,3 +1,4 @@
import 'dart:async';
import 'package:flutter_discord_rpc/flutter_discord_rpc.dart';
import 'package:unyo/models/models.dart';
import 'package:unyo/util/utils.dart';
@@ -7,9 +8,10 @@ class DiscordRPC {
bool _initialized = false;
DateTime initTime = DateTime.now();
bool discordConnected = false;
StreamSubscription<bool>? _connSub;
/// Initialize Discord RPC once
Future<void> initDiscordRPC() async {
Future<void> initDiscordRPC({bool autoRetry = false}) async {
try {
// only call initialize() once per process
if (!_initialized) {
@@ -24,7 +26,7 @@ class DiscordRPC {
}
// otherwise, connect and then set the initial activity
await FlutterDiscordRPC.instance.connect(autoRetry: true);
await FlutterDiscordRPC.instance.connect(autoRetry: autoRetry);
discordConnected = FlutterDiscordRPC.instance.isConnected;
logger.i('Discord RPC connected: $discordConnected');
@@ -36,19 +38,19 @@ class DiscordRPC {
}
// listen for reconnects (e.g. if the user restarts Discord)
FlutterDiscordRPC.instance.isConnectedStream.listen((connected) {
discordConnected = connected;
logger.i('Discord RPC connection status: $connected');
if (connected) {
setPageActivity('Home Screen');
}
});
_connSub = FlutterDiscordRPC.instance.isConnectedStream.listen((connected) {
discordConnected = connected;
logger.i('Discord RPC connection status: $connected');
if (connected) setPageActivity('Home Screen');
});
} catch (e) {
logger.e('Discord RPC initialization failed: $e');
}
}
Future<void> cleanup() async {
await _connSub?.cancel();
_connSub = null;
if (!discordConnected) return;
try {
await FlutterDiscordRPC.instance.clearActivity();
@@ -73,6 +75,16 @@ class DiscordRPC {
start: initTime.millisecondsSinceEpoch,
end: null,
),
buttons: [
const RPCButton(
label: "GitHub Repository",
url: "https://github.com/K3vinb5/Unyo",
),
const RPCButton(
label: "Download App",
url: "https://github.com/K3vinb5/Unyo/releases",
),
],
),
);
}
@@ -93,6 +105,16 @@ class DiscordRPC {
start: initTime.millisecondsSinceEpoch,
end: null,
),
buttons: [
const RPCButton(
label: "GitHub Repository",
url: "https://github.com/K3vinb5/Unyo",
),
const RPCButton(
label: "Download App",
url: "https://github.com/K3vinb5/Unyo/releases",
),
],
),
);
}
@@ -113,6 +135,16 @@ class DiscordRPC {
start: initTime.millisecondsSinceEpoch,
end: null,
),
buttons: [
const RPCButton(
label: "GitHub Repository",
url: "https://github.com/K3vinb5/Unyo",
),
const RPCButton(
label: "Download App",
url: "https://github.com/K3vinb5/Unyo/releases",
),
],
),
);
}
@@ -143,6 +175,16 @@ class DiscordRPC {
start: initTime.millisecondsSinceEpoch,
end: null,
),
buttons: [
const RPCButton(
label: "GitHub Repository",
url: "https://github.com/K3vinb5/Unyo",
),
const RPCButton(
label: "Download App",
url: "https://github.com/K3vinb5/Unyo/releases",
),
],
),
);
}
@@ -163,6 +205,16 @@ class DiscordRPC {
start: initTime.millisecondsSinceEpoch,
end: null,
),
buttons: [
const RPCButton(
label: "GitHub Repository",
url: "https://github.com/K3vinb5/Unyo",
),
const RPCButton(
label: "Download App",
url: "https://github.com/K3vinb5/Unyo/releases",
),
],
),
);
}