mirror of
https://github.com/jagandeepbrar/lunasea.git
synced 2026-08-31 04:32:32 +00:00
feat(Links): [Android Only] Attach module headers when viewing web GUI
This commit is contained in:
@@ -33,7 +33,7 @@ extension StringExtension on String {
|
||||
}
|
||||
|
||||
extension StringLinksExtension on String {
|
||||
Future<void> _openLink(String url) async {
|
||||
Future<void> _openLink(String url, { Map<String, String> headers }) async {
|
||||
try {
|
||||
//Attempt to launch the link forced as a universal link
|
||||
if(await _launchUniversalLink(url)) return;
|
||||
@@ -41,7 +41,7 @@ extension StringLinksExtension on String {
|
||||
LunaBrowser _browser = LunaDatabaseValue.SELECTED_BROWSER.data;
|
||||
if(_browser != LunaBrowser.APPLE_SAFARI && await _launchCustomBrowser(_browser.formatted(url))) return;
|
||||
//If all else fails, just launch it in Safari/stock browser
|
||||
await _launch(url);
|
||||
await _launch(url, headers: headers);
|
||||
} catch (error, stack) {
|
||||
LunaLogger().error('Unable to open link: $url', error, stack);
|
||||
}
|
||||
@@ -49,10 +49,10 @@ extension StringLinksExtension on String {
|
||||
|
||||
Future<bool> _launchUniversalLink(String url) async => await launch(url, forceSafariVC: false, universalLinksOnly: true);
|
||||
Future<bool> _launchCustomBrowser(String url) async => await launch(url, forceSafariVC: false);
|
||||
Future<bool> _launch(String url) async => await launch(url);
|
||||
Future<bool> _launch(String url, { Map<String, String> headers }) async => await launch(url, headers: headers);
|
||||
|
||||
/// Attempt to open this string as a URL in a browser.
|
||||
Future<void> lunaOpenGenericLink() async => await _openLink(this);
|
||||
Future<void> lunaOpenGenericLink({ Map<dynamic, dynamic> headers }) async => await _openLink(this, headers: headers?.cast<String, String>());
|
||||
|
||||
/// Attach this string as an ID/title to IMDB and attempt to launch it as a URL.
|
||||
Future<void> lunaOpenIMDB() async => await _openLink('https://www.imdb.com/title/$this');
|
||||
|
||||
@@ -126,7 +126,10 @@ class _State extends State<Lidarr> {
|
||||
Future<void> _handlePopup() async {
|
||||
List<dynamic> values = await LidarrDialogs.globalSettings(context);
|
||||
if(values[0]) switch(values[1]) {
|
||||
case 'web_gui': await _api.host?.toString()?.lunaOpenGenericLink(); break;
|
||||
case 'web_gui':
|
||||
ProfileHiveObject profile = Database.currentProfileObject;
|
||||
await profile.lidarrHost?.lunaOpenGenericLink(headers: profile.lidarrHeaders);
|
||||
break;
|
||||
case 'update_library': await _api.updateLibrary()
|
||||
.then((_) => showLunaSuccessSnackBar(title: 'Updating Library...', message: 'Updating your library in the background'))
|
||||
.catchError((error) => showLunaErrorSnackBar(title: 'Failed to Update Library', error: error));
|
||||
|
||||
@@ -99,7 +99,10 @@ class _State extends State<NZBGet> {
|
||||
Future<void> _handlePopup() async {
|
||||
List<dynamic> values = await NZBGetDialogs.globalSettings(context);
|
||||
if(values[0]) switch(values[1]) {
|
||||
case 'web_gui': _api.host.lunaOpenGenericLink(); break;
|
||||
case 'web_gui':
|
||||
ProfileHiveObject profile = Database.currentProfileObject;
|
||||
await profile.nzbgetHost?.lunaOpenGenericLink(headers: profile.nzbgetHeaders);
|
||||
break;
|
||||
case 'add_nzb': _addNZB(); break;
|
||||
case 'sort': _sort(); break;
|
||||
case 'server_details': _serverDetails(); break;
|
||||
|
||||
@@ -44,7 +44,9 @@ extension RadarrGlobalSettingsTypeExtension on RadarrGlobalSettingsType {
|
||||
throw Exception('Invalid RadarrGlobalSettingsType');
|
||||
}
|
||||
|
||||
Future<void> _webGUI(BuildContext context) async => context.read<RadarrState>().host.lunaOpenGenericLink();
|
||||
Future<void> _webGUI(BuildContext context) async => context.read<RadarrState>().host.lunaOpenGenericLink(
|
||||
headers: context.read<RadarrState>().headers,
|
||||
);
|
||||
Future<void> _backupDatabase(BuildContext context) async => RadarrAPIHelper().backupDatabase(context: context);
|
||||
Future<void> _searchAllMissing(BuildContext context) async {
|
||||
bool result = await RadarrDialogs().searchAllMissingMovies(context);
|
||||
|
||||
@@ -99,7 +99,10 @@ class _State extends State<SABnzbd> {
|
||||
Future<void> _handlePopup() async {
|
||||
List<dynamic> values = await SABnzbdDialogs.globalSettings(context);
|
||||
if(values[0]) switch(values[1]) {
|
||||
case 'web_gui': _api.host.lunaOpenGenericLink(); break;
|
||||
case 'web_gui':
|
||||
ProfileHiveObject profile = Database.currentProfileObject;
|
||||
await profile.sabnzbdHost?.lunaOpenGenericLink(headers: profile.sabnzbdHeaders);
|
||||
break;
|
||||
case 'add_nzb': _addNZB(); break;
|
||||
case 'sort': _sort(); break;
|
||||
case 'clear_history': _clearHistory(); break;
|
||||
|
||||
@@ -22,7 +22,9 @@ class SonarrAppBarGlobalSettingsAction extends StatelessWidget {
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> _webGUI(BuildContext context) async => Provider.of<SonarrState>(context, listen: false).host.lunaOpenGenericLink();
|
||||
Future<void> _webGUI(BuildContext context) async => context.read<SonarrState>().host.lunaOpenGenericLink(
|
||||
headers: context.read<SonarrState>().headers,
|
||||
);
|
||||
|
||||
Future<void> _viewQueue(BuildContext context) async => SonarrQueueRouter().navigateTo(context);
|
||||
|
||||
|
||||
@@ -48,7 +48,9 @@ extension TautulliGlobalSettingsTypeExtension on TautulliGlobalSettingsType {
|
||||
throw Exception('Invalid TautulliGlobalSettingsType');
|
||||
}
|
||||
|
||||
Future<void> _webGUI(BuildContext context) async => context.read<TautulliState>().host.lunaOpenGenericLink();
|
||||
Future<void> _webGUI(BuildContext context) async => context.read<TautulliState>().host.lunaOpenGenericLink(
|
||||
headers: context.read<TautulliState>().headers,
|
||||
);
|
||||
Future<void> _backupConfig(BuildContext context) async => TautulliAPIHelper().backupConfiguration(context: context);
|
||||
Future<void> _backupDatabase(BuildContext context) async => TautulliAPIHelper().backupDatabase(context: context);
|
||||
Future<void> _deleteCache(BuildContext context) async => TautulliAPIHelper().deleteCache(context: context);
|
||||
|
||||
Reference in New Issue
Block a user