Files
lunasea/lib/modules/radarr/widgets/missing_tile.dart
Jagandeep Brar 5d36aede4a [Release] v2.3.0 (230004) (#220)
* [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
2020-06-14 23:58:49 -05:00

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;
}
}
}
}