diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 2472367e..a661108b 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -452,6 +452,7 @@ "custom_dns": "Custom DNS (leave blank to use system DNS)", "android_proxy_server": "Android Proxy Server (ApkBridge)", "get_apk_bridge": "Get ApkBridge", + "get_sync_server": "Get Sync Server here", "undefined": "undefined", "empty_extensions_repo": "You don't have any repository urls here. Click on the plus button to add one!", "add_extensions_repo": "Add repo URL", diff --git a/lib/l10n/generated/app_localizations.dart b/lib/l10n/generated/app_localizations.dart index 764a8b57..c8e48043 100644 --- a/lib/l10n/generated/app_localizations.dart +++ b/lib/l10n/generated/app_localizations.dart @@ -2787,6 +2787,12 @@ abstract class AppLocalizations { /// **'Get ApkBridge'** String get get_apk_bridge; + /// No description provided for @get_sync_server. + /// + /// In en, this message translates to: + /// **'Get Sync Server here'** + String get get_sync_server; + /// No description provided for @undefined. /// /// In en, this message translates to: diff --git a/lib/l10n/generated/app_localizations_ar.dart b/lib/l10n/generated/app_localizations_ar.dart index 7548b98f..468ae28d 100644 --- a/lib/l10n/generated/app_localizations_ar.dart +++ b/lib/l10n/generated/app_localizations_ar.dart @@ -1430,6 +1430,9 @@ class AppLocalizationsAr extends AppLocalizations { @override String get get_apk_bridge => 'Get ApkBridge'; + @override + String get get_sync_server => 'Get Sync Server here'; + @override String get undefined => 'غير محدد'; diff --git a/lib/l10n/generated/app_localizations_as.dart b/lib/l10n/generated/app_localizations_as.dart index d77408b7..24dfda39 100644 --- a/lib/l10n/generated/app_localizations_as.dart +++ b/lib/l10n/generated/app_localizations_as.dart @@ -1432,6 +1432,9 @@ class AppLocalizationsAs extends AppLocalizations { @override String get get_apk_bridge => 'Get ApkBridge'; + @override + String get get_sync_server => 'Get Sync Server here'; + @override String get undefined => 'undefined'; diff --git a/lib/l10n/generated/app_localizations_de.dart b/lib/l10n/generated/app_localizations_de.dart index 2f0f882c..2f519dbb 100644 --- a/lib/l10n/generated/app_localizations_de.dart +++ b/lib/l10n/generated/app_localizations_de.dart @@ -1441,6 +1441,9 @@ class AppLocalizationsDe extends AppLocalizations { @override String get get_apk_bridge => 'Get ApkBridge'; + @override + String get get_sync_server => 'Get Sync Server here'; + @override String get undefined => 'Nicht definiert'; diff --git a/lib/l10n/generated/app_localizations_en.dart b/lib/l10n/generated/app_localizations_en.dart index a3be3dd0..489460c8 100644 --- a/lib/l10n/generated/app_localizations_en.dart +++ b/lib/l10n/generated/app_localizations_en.dart @@ -1431,6 +1431,9 @@ class AppLocalizationsEn extends AppLocalizations { @override String get get_apk_bridge => 'Get ApkBridge'; + @override + String get get_sync_server => 'Get Sync Server here'; + @override String get undefined => 'undefined'; diff --git a/lib/l10n/generated/app_localizations_es.dart b/lib/l10n/generated/app_localizations_es.dart index fb161527..c5541f63 100644 --- a/lib/l10n/generated/app_localizations_es.dart +++ b/lib/l10n/generated/app_localizations_es.dart @@ -1445,6 +1445,9 @@ class AppLocalizationsEs extends AppLocalizations { @override String get get_apk_bridge => 'Get ApkBridge'; + @override + String get get_sync_server => 'Get Sync Server here'; + @override String get undefined => 'Indefinido'; diff --git a/lib/l10n/generated/app_localizations_fr.dart b/lib/l10n/generated/app_localizations_fr.dart index 1eb185a5..5570d62a 100644 --- a/lib/l10n/generated/app_localizations_fr.dart +++ b/lib/l10n/generated/app_localizations_fr.dart @@ -1448,6 +1448,9 @@ class AppLocalizationsFr extends AppLocalizations { @override String get get_apk_bridge => 'Get ApkBridge'; + @override + String get get_sync_server => 'Get Sync Server here'; + @override String get undefined => 'Indéfini'; diff --git a/lib/l10n/generated/app_localizations_hi.dart b/lib/l10n/generated/app_localizations_hi.dart index 65af21f1..2b0cea5f 100644 --- a/lib/l10n/generated/app_localizations_hi.dart +++ b/lib/l10n/generated/app_localizations_hi.dart @@ -1433,6 +1433,9 @@ class AppLocalizationsHi extends AppLocalizations { @override String get get_apk_bridge => 'Get ApkBridge'; + @override + String get get_sync_server => 'Get Sync Server here'; + @override String get undefined => 'undefined'; diff --git a/lib/l10n/generated/app_localizations_id.dart b/lib/l10n/generated/app_localizations_id.dart index 4fc46362..f3d08bb4 100644 --- a/lib/l10n/generated/app_localizations_id.dart +++ b/lib/l10n/generated/app_localizations_id.dart @@ -1437,6 +1437,9 @@ class AppLocalizationsId extends AppLocalizations { @override String get get_apk_bridge => 'Get ApkBridge'; + @override + String get get_sync_server => 'Get Sync Server here'; + @override String get undefined => 'Tidak terdefinisi'; diff --git a/lib/l10n/generated/app_localizations_it.dart b/lib/l10n/generated/app_localizations_it.dart index 4d4ba859..965a8aa9 100644 --- a/lib/l10n/generated/app_localizations_it.dart +++ b/lib/l10n/generated/app_localizations_it.dart @@ -1445,6 +1445,9 @@ class AppLocalizationsIt extends AppLocalizations { @override String get get_apk_bridge => 'Get ApkBridge'; + @override + String get get_sync_server => 'Get Sync Server here'; + @override String get undefined => 'Non definito'; diff --git a/lib/l10n/generated/app_localizations_pt.dart b/lib/l10n/generated/app_localizations_pt.dart index 585b9116..015c0c86 100644 --- a/lib/l10n/generated/app_localizations_pt.dart +++ b/lib/l10n/generated/app_localizations_pt.dart @@ -1442,6 +1442,9 @@ class AppLocalizationsPt extends AppLocalizations { @override String get get_apk_bridge => 'Get ApkBridge'; + @override + String get get_sync_server => 'Get Sync Server here'; + @override String get undefined => 'Indefinido'; diff --git a/lib/l10n/generated/app_localizations_ru.dart b/lib/l10n/generated/app_localizations_ru.dart index 08024fed..8a1dc0a9 100644 --- a/lib/l10n/generated/app_localizations_ru.dart +++ b/lib/l10n/generated/app_localizations_ru.dart @@ -1444,6 +1444,9 @@ class AppLocalizationsRu extends AppLocalizations { @override String get get_apk_bridge => 'Get ApkBridge'; + @override + String get get_sync_server => 'Get Sync Server here'; + @override String get undefined => 'Не определено'; diff --git a/lib/l10n/generated/app_localizations_th.dart b/lib/l10n/generated/app_localizations_th.dart index e7b1d12b..582d067e 100644 --- a/lib/l10n/generated/app_localizations_th.dart +++ b/lib/l10n/generated/app_localizations_th.dart @@ -1431,6 +1431,9 @@ class AppLocalizationsTh extends AppLocalizations { @override String get get_apk_bridge => 'Get ApkBridge'; + @override + String get get_sync_server => 'Get Sync Server here'; + @override String get undefined => 'ไม่ได้กำหนด'; diff --git a/lib/l10n/generated/app_localizations_tr.dart b/lib/l10n/generated/app_localizations_tr.dart index 812671ab..44f1a065 100644 --- a/lib/l10n/generated/app_localizations_tr.dart +++ b/lib/l10n/generated/app_localizations_tr.dart @@ -1437,6 +1437,9 @@ class AppLocalizationsTr extends AppLocalizations { @override String get get_apk_bridge => 'Get ApkBridge'; + @override + String get get_sync_server => 'Get Sync Server here'; + @override String get undefined => 'Tanımsız'; diff --git a/lib/l10n/generated/app_localizations_zh.dart b/lib/l10n/generated/app_localizations_zh.dart index ef018eb0..59f66528 100644 --- a/lib/l10n/generated/app_localizations_zh.dart +++ b/lib/l10n/generated/app_localizations_zh.dart @@ -1405,6 +1405,9 @@ class AppLocalizationsZh extends AppLocalizations { @override String get get_apk_bridge => 'Get ApkBridge'; + @override + String get get_sync_server => 'Get Sync Server here'; + @override String get undefined => '未定义'; diff --git a/lib/modules/manga/detail/widgets/migrate_screen.dart b/lib/modules/manga/detail/widgets/migrate_screen.dart index 336049fd..0c471750 100644 --- a/lib/modules/manga/detail/widgets/migrate_screen.dart +++ b/lib/modules/manga/detail/widgets/migrate_screen.dart @@ -663,6 +663,7 @@ class _MigrationMangaGlobalImageCardState widget.oldManga.imageUrl = widget.manga.imageUrl; widget.oldManga.lang = widget.source.lang; widget.oldManga.source = widget.source.name; + widget.oldManga.sourceId = widget.source.id; widget.oldManga.artist = preview.artist; widget.oldManga.author = preview.author; widget.oldManga.status = preview.status ?? widget.oldManga.status; diff --git a/lib/modules/more/settings/sync/sync.dart b/lib/modules/more/settings/sync/sync.dart index 97f01536..4135411f 100644 --- a/lib/modules/more/settings/sync/sync.dart +++ b/lib/modules/more/settings/sync/sync.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:isar/isar.dart'; +import 'package:mangayomi/eval/model/m_bridge.dart'; import 'package:mangayomi/main.dart'; import 'package:mangayomi/modules/more/settings/sync/providers/sync_providers.dart'; import 'package:mangayomi/utils/date.dart'; @@ -9,9 +10,13 @@ import 'package:mangayomi/modules/more/settings/sync/widgets/sync_listile.dart'; import 'package:mangayomi/providers/l10n_providers.dart'; import 'package:mangayomi/services/sync_server.dart'; import 'package:mangayomi/utils/extensions/build_context_extensions.dart'; +import 'package:mangayomi/utils/log/logger.dart'; import 'package:super_sliver_list/super_sliver_list.dart'; +import 'package:url_launcher/url_launcher.dart'; class SyncScreen extends ConsumerWidget { + static const serverUrl = "https://github.com/Schnitzel5/mangayomi-server"; + const SyncScreen({super.key}); @override @@ -182,6 +187,34 @@ class SyncScreen extends ConsumerWidget { } : null, ), + Padding( + padding: const EdgeInsets.only( + left: 15, + right: 15, + bottom: 10, + top: 10, + ), + child: Row( + children: [ + OutlinedButton.icon( + onPressed: () async { + if (!await launchUrl( + Uri.parse(serverUrl), + mode: LaunchMode.externalApplication, + )) { + AppLogger.log( + 'Could not launch $serverUrl', + logLevel: LogLevel.error, + ); + botToast('Could not launch $serverUrl'); + } + }, + label: Text(l10n.get_sync_server), + icon: const Icon(Icons.download_outlined), + ), + ], + ), + ), Padding( padding: const EdgeInsets.only( left: 15,