mirror of
https://github.com/jagandeepbrar/lunasea.git
synced 2026-08-31 04:32:32 +00:00
* [Packages] Updated packages * [Sonarr/Series] Switched to bottom navigation, removed sliver app bar * [Sonarr/Series] Removed bottom padding from overview * [README] Added AltStore, Removed Feedback, Updated Android APK Build (#213) * [Snackbar] Fixed cases where iOS swipe-back would lock UI * [Android/Back Button] Back button now shows drawer on primary routes instead of closing app * [Wake on LAN] Added configuration to hive * [Settings/Modules] Added Wake on LAN section * [Wake on LAN] Added entry to drawer * [Lidarr/Details] Removed sliver app bar, removed fanart, switched to bottom navigation bar * [Radarr/Details] Removed sliver app bar, removed fanart, switched to bottom navigation bar * [Wake on LAN] Show toast on action * [Wake on LAN] Created RawDatagramSocket binding * [WoL] Full support for Wake on LAN functionality * [Semantics] Cleanup * [TestFlight] v2.3.0 (230002) * [Settings/Modules] Implemented settings UI for custom headers * [Custom Headers] Finished UI implementation * [Custom Headers] Integrated into API calls * [TestFlight] v2.3.0 (230003) * [Images] Attach custom headers to all network image requests * [Everything] Many Changes (Read Notes) (#218) - Unified the structure of each module (core, routes, widgets at the root of every module) - Cleaned Most Remaining Dialogs (SABnzbd and NZBGet remain) - Reduced font-size across dialogs - Unified padding across all dialogs (that have been cleaned so far) - Changelog is now a routed page, not a dialog prompt - SABnzbd: Fixed bug where setting priority to "stop" would cause a fatal crash * [Networking] Added RegExp Validation for IPv4 & MAC Addresses * [Networking] Improved network address classes * Finished Dialog Rework * [TestFlight] v2.3.0 (230004) * [README] Updated README for v2.3.0
73 lines
2.3 KiB
Dart
73 lines
2.3 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:lunasea/core.dart';
|
|
import '../../radarr.dart';
|
|
|
|
class RadarrMissingTile extends StatefulWidget {
|
|
final RadarrMissingData data;
|
|
final GlobalKey<ScaffoldState> scaffoldKey;
|
|
final Function refresh;
|
|
|
|
RadarrMissingTile({
|
|
@required this.data,
|
|
@required this.scaffoldKey,
|
|
@required this.refresh,
|
|
});
|
|
|
|
@override
|
|
State<StatefulWidget> createState() => _State();
|
|
}
|
|
|
|
class _State extends State<RadarrMissingTile> {
|
|
@override
|
|
Widget build(BuildContext context) => LSCardTile(
|
|
title: LSTitle(text: widget.data.title),
|
|
subtitle: RichText(
|
|
text: TextSpan(
|
|
style: TextStyle(
|
|
color: Colors.white70,
|
|
),
|
|
children: widget.data.subtitle,
|
|
),
|
|
),
|
|
trailing: LSIconButton(
|
|
icon: Icons.search,
|
|
onPressed: () async => _search(),
|
|
),
|
|
onTap: () async => _enterMovie(),
|
|
decoration: LSCardBackground(
|
|
uri: widget.data.posterURI(),
|
|
headers: Database.currentProfileObject.getRadarr()['headers'],
|
|
),
|
|
padContent: true,
|
|
);
|
|
|
|
Future<void> _search() async {
|
|
final _api = RadarrAPI.from(Database.currentProfileObject);
|
|
await _api.searchMissingMovies([widget.data.movieID])
|
|
.then((_) => LSSnackBar(context: context, title: 'Searching...', message: widget.data.title))
|
|
.catchError((_) => LSSnackBar(context: context, title: 'Failed to Search', message: Constants.CHECK_LOGS_MESSAGE, type: SNACKBAR_TYPE.failure));
|
|
}
|
|
|
|
Future<void> _enterMovie() async {
|
|
final dynamic result = await Navigator.of(context).pushNamed(
|
|
RadarrDetailsMovie.ROUTE_NAME,
|
|
arguments: RadarrDetailsMovieArguments(
|
|
data: null,
|
|
movieID: widget.data.movieID,
|
|
),
|
|
);
|
|
if(result != null) switch(result[0]) {
|
|
case 'remove_movie': {
|
|
LSSnackBar(
|
|
context: context,
|
|
title: result[1] ? 'Removed (With Data)' : 'Removed',
|
|
message: widget.data.title,
|
|
type: SNACKBAR_TYPE.success,
|
|
);
|
|
widget.refresh();
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|