SDK version upgrade
This commit is contained in:
Vendored
+18
@@ -0,0 +1,18 @@
|
||||
{
|
||||
// Use IntelliSense to learn about possible attributes.
|
||||
// Hover to view descriptions of existing attributes.
|
||||
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"name": "Flutter for web",
|
||||
"type": "dart",
|
||||
"request": "launch",
|
||||
"program": "lib/main.dart",
|
||||
// "args": [
|
||||
// "-d",
|
||||
// "chrome"
|
||||
// ]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
# The following line activates a set of recommended lints for Flutter apps,
|
||||
# packages, and plugins designed to encourage good coding practices.
|
||||
include: package:flutter_lints/flutter.yaml
|
||||
#include: package:flutter_lints/flutter.yaml
|
||||
|
||||
linter:
|
||||
# The lint rules applied to this project can be customized in the
|
||||
|
||||
@@ -1,8 +1,3 @@
|
||||
import 'package:intl/intl.dart';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:syncfusion_flutter_datagrid/datagrid.dart';
|
||||
|
||||
class Movie {
|
||||
int movieID;
|
||||
String movieTitle;
|
||||
|
||||
@@ -1,10 +1,3 @@
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:intl/intl.dart';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:syncfusion_flutter_datagrid/datagrid.dart';
|
||||
|
||||
class EpisodeCount {
|
||||
int season;
|
||||
int cnt;
|
||||
|
||||
@@ -0,0 +1,64 @@
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:logger/logger.dart';
|
||||
|
||||
Logger getLogger() {
|
||||
// Logger.level = Level.debug;
|
||||
Logger.level = Level.info;
|
||||
return Logger(
|
||||
printer: MyLogPrinter(
|
||||
printTime: true,
|
||||
colors: true,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
class MyLogPrinter extends LogPrinter {
|
||||
static final levelPrefixes = {
|
||||
Level.trace: ' [TRACE]',
|
||||
Level.debug: ' [DEBUG]',
|
||||
Level.info: ' [INFO]',
|
||||
Level.warning: '[WARNING]',
|
||||
Level.error: ' [ERROR]',
|
||||
Level.fatal: ' [FATAL]',
|
||||
};
|
||||
|
||||
static final levelColors = {
|
||||
Level.trace: AnsiColor.fg(AnsiColor.grey(0.5)),
|
||||
Level.debug: const AnsiColor.none(),
|
||||
Level.info: const AnsiColor.fg(12),
|
||||
Level.warning: const AnsiColor.fg(208),
|
||||
Level.error: const AnsiColor.fg(196),
|
||||
Level.fatal: const AnsiColor.fg(199),
|
||||
};
|
||||
|
||||
final bool printTime;
|
||||
final bool colors;
|
||||
|
||||
MyLogPrinter({this.printTime = false, this.colors = true});
|
||||
|
||||
@override
|
||||
List<String> log(LogEvent event) {
|
||||
var messageStr = _stringifyMessage(event.message);
|
||||
var errorStr = event.error != null ? ' ERROR: ${event.error}' : '';
|
||||
var timeStr = printTime ? event.time.toIso8601String() : '';
|
||||
return ['${_labelFor(event.level)} $timeStr $messageStr$errorStr'];
|
||||
}
|
||||
|
||||
String _labelFor(Level level) {
|
||||
var prefix = levelPrefixes[level]!;
|
||||
var color = levelColors[level]!;
|
||||
|
||||
return colors ? color(prefix) : prefix;
|
||||
}
|
||||
|
||||
String _stringifyMessage(dynamic message) {
|
||||
final finalMessage = message is Function ? message() : message;
|
||||
if (finalMessage is Map || finalMessage is Iterable) {
|
||||
var encoder = const JsonEncoder.withIndent(null);
|
||||
return encoder.convert(finalMessage);
|
||||
} else {
|
||||
return finalMessage.toString();
|
||||
}
|
||||
}
|
||||
}
|
||||
+13
-3
@@ -2,7 +2,10 @@ import 'package:flutter/material.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
|
||||
import 'package:multimedia/widgets/tabsScreen.dart';
|
||||
import 'package:multimedia/widgets/tabs_screen.dart';
|
||||
|
||||
import 'package:logger/logger.dart';
|
||||
import 'package:multimedia/log_printer.dart';
|
||||
|
||||
final theme = ThemeData(
|
||||
useMaterial3: true,
|
||||
@@ -14,11 +17,16 @@ final theme = ThemeData(
|
||||
);
|
||||
|
||||
void main() async {
|
||||
Logger logger = getLogger();
|
||||
logger.i('Start application');
|
||||
|
||||
WidgetsFlutterBinding.ensureInitialized();
|
||||
|
||||
logger.i('Load preferences');
|
||||
SharedPreferences prefs = await SharedPreferences.getInstance();
|
||||
|
||||
String? dbProtocol = prefs.getString('dbProtocol');
|
||||
String? dbHost = prefs.getString('dbHost');
|
||||
//LATER String? dbProtocol = prefs.getString('dbProtocol');
|
||||
//LATER String? dbHost = prefs.getString('dbHost');
|
||||
String? dbPath = prefs.getString('dbPath');
|
||||
String? dbUser = prefs.getString('dbUser');
|
||||
String? dbPassword = prefs.getString('dbPassword');
|
||||
@@ -47,6 +55,8 @@ void main() async {
|
||||
prefs.setString('dbPassword', '');
|
||||
}
|
||||
|
||||
logger.i('Run application');
|
||||
|
||||
runApp(const MyApp());
|
||||
}
|
||||
|
||||
|
||||
+60
-61
@@ -3,18 +3,17 @@ import 'package:flutter/material.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:http/http.dart' as http;
|
||||
|
||||
import 'package:transparent_image/transparent_image.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
|
||||
import 'package:multimedia/data/movies.dart';
|
||||
|
||||
import 'package:multimedia/widgets/movies/details/castBox.dart';
|
||||
import 'package:multimedia/widgets/movies/details/crewBox.dart';
|
||||
import 'package:multimedia/widgets/movies/details/overviewBox.dart';
|
||||
import 'package:multimedia/widgets/movies/details/genreBox.dart';
|
||||
import 'package:multimedia/widgets/movies/details/companiesBox.dart';
|
||||
import 'package:multimedia/widgets/movies/details/countriesBox.dart';
|
||||
import 'package:multimedia/widgets/movies/details/settingsBox.dart';
|
||||
import 'package:multimedia/widgets/movies/details/cast_box.dart';
|
||||
import 'package:multimedia/widgets/movies/details/crew_box.dart';
|
||||
import 'package:multimedia/widgets/movies/details/overview_box.dart';
|
||||
import 'package:multimedia/widgets/movies/details/genre_box.dart';
|
||||
import 'package:multimedia/widgets/movies/details/companies_box.dart';
|
||||
import 'package:multimedia/widgets/movies/details/countries_box.dart';
|
||||
import 'package:multimedia/widgets/movies/details/settings_box.dart';
|
||||
|
||||
class MovieDetailsScreen extends StatelessWidget {
|
||||
MovieDetailsScreen({
|
||||
@@ -44,23 +43,23 @@ class MovieDetailsScreen extends StatelessWidget {
|
||||
);
|
||||
|
||||
final response = await http.get(url);
|
||||
bool? error;
|
||||
String? errorMessage;
|
||||
//LATER final bool? error;
|
||||
//LATER String? errorMessage;
|
||||
|
||||
Map<String, dynamic> movies = json.decode(response.body);
|
||||
error = movies['error'];
|
||||
errorMessage = movies['errmsg'];
|
||||
var list = movies['data'];
|
||||
//LATER error = movies['error'];
|
||||
//LATER errorMessage = movies['errmsg'];
|
||||
final list = movies['data'];
|
||||
|
||||
List<Movie> _movies =
|
||||
List<Movie> moviesTmp =
|
||||
await list.map<Movie>((json) => Movie.fromJson(json)).toList();
|
||||
|
||||
if (_movies.isNotEmpty) {
|
||||
movieDetails = _movies[0];
|
||||
return _movies[0];
|
||||
if (moviesTmp.isNotEmpty) {
|
||||
movieDetails = moviesTmp[0];
|
||||
return moviesTmp[0];
|
||||
}
|
||||
|
||||
return _movies[0];
|
||||
return moviesTmp[0];
|
||||
}
|
||||
|
||||
Widget generateLists(BuildContext context) {
|
||||
@@ -290,52 +289,52 @@ class MovieDetailsScreen extends StatelessWidget {
|
||||
}
|
||||
|
||||
Future<bool> updateMovie() async {
|
||||
SharedPreferences prefs = await SharedPreferences.getInstance();
|
||||
// SharedPreferences prefs = await SharedPreferences.getInstance();
|
||||
|
||||
String? dbProtocol = prefs.getString('dbProtocol');
|
||||
String? dbHost = prefs.getString('dbHost');
|
||||
String? dbPath = prefs.getString('dbPath');
|
||||
// String? dbProtocol = prefs.getString('dbProtocol');
|
||||
// String? dbHost = prefs.getString('dbHost');
|
||||
// String? dbPath = prefs.getString('dbPath');
|
||||
|
||||
Uri url = Uri(
|
||||
scheme: dbProtocol,
|
||||
host: dbHost,
|
||||
path: dbPath,
|
||||
);
|
||||
// Uri url = Uri(
|
||||
// scheme: dbProtocol,
|
||||
// host: dbHost,
|
||||
// path: dbPath,
|
||||
// );
|
||||
|
||||
try {
|
||||
final r = await http.post(
|
||||
url,
|
||||
headers: <String, String>{
|
||||
'Content-Type': 'application/json; charset=UTF-8',
|
||||
},
|
||||
body: jsonEncode(
|
||||
<String, String>{
|
||||
'module': 'movie',
|
||||
'function': 'update',
|
||||
'movieID': movieDetails.movieID.toString(),
|
||||
'movieTitle': movieDetails.movieTitle,
|
||||
'originalTitle': movieDetails.originalTitle,
|
||||
'overview': movieDetails.overview,
|
||||
'releaseDate':
|
||||
DateFormat('yyyy-MM-dd').format(movieDetails.releaseDate),
|
||||
'resolution': movieDetails.resolution,
|
||||
'state': movieDetails.state.toString(),
|
||||
'backdropPath': movieDetails.backdropPath,
|
||||
'languages': movieDetails.languages,
|
||||
'productionCountries': movieDetails.productionCountries,
|
||||
'productionCompanies': movieDetails.productionCompanies,
|
||||
'voteAverage': movieDetails.voteAverage.toString(),
|
||||
'voteCount': movieDetails.voteCount.toString(),
|
||||
'cast': movieDetails.cast,
|
||||
'crew': movieDetails.crew,
|
||||
'genre': movieDetails.genre,
|
||||
'localPath': movieDetails.localPath,
|
||||
},
|
||||
),
|
||||
);
|
||||
} catch (e) {
|
||||
print(e.toString());
|
||||
}
|
||||
// try {
|
||||
// final r = await http.post(
|
||||
// url,
|
||||
// headers: <String, String>{
|
||||
// 'Content-Type': 'application/json; charset=UTF-8',
|
||||
// },
|
||||
// body: jsonEncode(
|
||||
// <String, String>{
|
||||
// 'module': 'movie',
|
||||
// 'function': 'update',
|
||||
// 'movieID': movieDetails.movieID.toString(),
|
||||
// 'movieTitle': movieDetails.movieTitle,
|
||||
// 'originalTitle': movieDetails.originalTitle,
|
||||
// 'overview': movieDetails.overview,
|
||||
// 'releaseDate':
|
||||
// DateFormat('yyyy-MM-dd').format(movieDetails.releaseDate),
|
||||
// 'resolution': movieDetails.resolution,
|
||||
// 'state': movieDetails.state.toString(),
|
||||
// 'backdropPath': movieDetails.backdropPath,
|
||||
// 'languages': movieDetails.languages,
|
||||
// 'productionCountries': movieDetails.productionCountries,
|
||||
// 'productionCompanies': movieDetails.productionCompanies,
|
||||
// 'voteAverage': movieDetails.voteAverage.toString(),
|
||||
// 'voteCount': movieDetails.voteCount.toString(),
|
||||
// 'cast': movieDetails.cast,
|
||||
// 'crew': movieDetails.crew,
|
||||
// 'genre': movieDetails.genre,
|
||||
// 'localPath': movieDetails.localPath,
|
||||
// },
|
||||
// ),
|
||||
// );
|
||||
// } catch (e) {
|
||||
// print(e.toString());
|
||||
// }
|
||||
|
||||
return true;
|
||||
}
|
||||
+3
-3
@@ -1,9 +1,9 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
import 'package:multimedia/constants.dart';
|
||||
import 'package:multimedia/widgets/movies/details/settingsBoxLocalPath.dart';
|
||||
import 'package:multimedia/widgets/movies/details/settingsBoxResolution.dart';
|
||||
import 'package:multimedia/widgets/movies/details/stateBox.dart';
|
||||
import 'package:multimedia/widgets/movies/details/settings_box_local_path.dart';
|
||||
import 'package:multimedia/widgets/movies/details/settings_box_resolution.dart';
|
||||
import 'package:multimedia/widgets/movies/details/state_box.dart';
|
||||
|
||||
class MovieDetailsSettingsBox extends StatelessWidget {
|
||||
MovieDetailsSettingsBox({
|
||||
+2
-2
@@ -1,13 +1,13 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class MovieDetailsSettingsBoxLocalPath extends StatelessWidget {
|
||||
MovieDetailsSettingsBoxLocalPath({
|
||||
const MovieDetailsSettingsBoxLocalPath({
|
||||
super.key,
|
||||
required this.localPath,
|
||||
required this.localPathChanged,
|
||||
});
|
||||
|
||||
String localPath;
|
||||
final String localPath;
|
||||
|
||||
final Function(String localPath) localPathChanged;
|
||||
|
||||
+2
-2
@@ -1,13 +1,13 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class MovieDetailsSettingsBoxResolution extends StatefulWidget {
|
||||
MovieDetailsSettingsBoxResolution({
|
||||
const MovieDetailsSettingsBoxResolution({
|
||||
super.key,
|
||||
required this.resolution,
|
||||
required this.resolutionChanged,
|
||||
});
|
||||
|
||||
String resolution;
|
||||
final String resolution;
|
||||
|
||||
final Function(String resolution) resolutionChanged;
|
||||
|
||||
+3
-5
@@ -1,7 +1,5 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
import 'package:multimedia/constants.dart';
|
||||
|
||||
class MovieDetailsSettingsStateBox extends StatefulWidget {
|
||||
MovieDetailsSettingsStateBox({
|
||||
super.key,
|
||||
@@ -52,7 +50,7 @@ class _MovieDetailsSettingsStateBoxState
|
||||
SizedBox(
|
||||
width: 180,
|
||||
child: CheckboxListTile(
|
||||
side: MaterialStateBorderSide.resolveWith(
|
||||
side: WidgetStateBorderSide.resolveWith(
|
||||
(states) =>
|
||||
const BorderSide(width: 1.0, color: Colors.grey),
|
||||
),
|
||||
@@ -75,7 +73,7 @@ class _MovieDetailsSettingsStateBoxState
|
||||
SizedBox(
|
||||
width: 180,
|
||||
child: CheckboxListTile(
|
||||
side: MaterialStateBorderSide.resolveWith(
|
||||
side: WidgetStateBorderSide.resolveWith(
|
||||
(states) =>
|
||||
const BorderSide(width: 1.0, color: Colors.grey),
|
||||
),
|
||||
@@ -98,7 +96,7 @@ class _MovieDetailsSettingsStateBoxState
|
||||
SizedBox(
|
||||
width: 130,
|
||||
child: CheckboxListTile(
|
||||
side: MaterialStateBorderSide.resolveWith(
|
||||
side: WidgetStateBorderSide.resolveWith(
|
||||
(states) =>
|
||||
const BorderSide(width: 1.0, color: Colors.grey),
|
||||
),
|
||||
@@ -1,5 +1,5 @@
|
||||
import 'dart:convert';
|
||||
import 'package:multimedia/widgets/movies/details/detailsScreen.dart';
|
||||
import 'package:multimedia/widgets/movies/details/details_screen.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
|
||||
@@ -47,21 +47,21 @@ class _MoviesScreenState extends State<MoviesScreen> {
|
||||
|
||||
try {
|
||||
final response = await http.get(url);
|
||||
bool? error;
|
||||
String? errorMessage;
|
||||
//LATER bool? error;
|
||||
//LATER String? errorMessage;
|
||||
|
||||
Map<String, dynamic> movies = json.decode(response.body);
|
||||
error = movies['error'];
|
||||
errorMessage = movies['errmsg'];
|
||||
//LATER error = movies['error'];
|
||||
//LATER errorMessage = movies['errmsg'];
|
||||
var list = movies['data'];
|
||||
|
||||
List<Movie> _movies =
|
||||
List<Movie> moviesTmp =
|
||||
await list.map<Movie>((json) => Movie.fromJson(json)).toList();
|
||||
movieDataSource = MovieDataSource(_movies);
|
||||
movieDataSource = MovieDataSource(moviesTmp);
|
||||
|
||||
_moviesList = _movies;
|
||||
_moviesList = moviesTmp;
|
||||
|
||||
return _movies;
|
||||
return moviesTmp;
|
||||
} catch (e) {
|
||||
print(e.toString());
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
import 'package:multimedia/widgets/tvshows/listScreen.dart';
|
||||
import 'package:multimedia/widgets/movies/listScreen.dart';
|
||||
import 'package:multimedia/widgets/tvshows/list_screen.dart';
|
||||
import 'package:multimedia/widgets/movies/list_screen.dart';
|
||||
|
||||
class TabsScreen extends StatefulWidget {
|
||||
const TabsScreen({super.key});
|
||||
+69
-67
@@ -1,21 +1,23 @@
|
||||
import 'dart:convert';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:http/http.dart' as http;
|
||||
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
|
||||
import 'package:multimedia/widgets/tvshows/details/companiesBox.dart';
|
||||
import 'package:multimedia/widgets/tvshows/details/countriesBox.dart';
|
||||
import 'package:multimedia/widgets/tvshows/details/crewBox.dart';
|
||||
import 'package:multimedia/widgets/tvshows/details/castBox.dart';
|
||||
import 'package:multimedia/widgets/tvshows/details/genreBox.dart';
|
||||
import 'package:multimedia/widgets/tvshows/details/overviewBox.dart';
|
||||
import 'package:multimedia/widgets/tvshows/details/companies_box.dart';
|
||||
import 'package:multimedia/widgets/tvshows/details/countries_box.dart';
|
||||
import 'package:multimedia/widgets/tvshows/details/crew_box.dart';
|
||||
import 'package:multimedia/widgets/tvshows/details/cast_box.dart';
|
||||
import 'package:multimedia/widgets/tvshows/details/genre_box.dart';
|
||||
import 'package:multimedia/widgets/tvshows/details/overview_box.dart';
|
||||
import 'package:multimedia/widgets/tvshows/details/seasons.dart';
|
||||
import 'package:multimedia/widgets/tvshows/details/settingsBox.dart';
|
||||
import 'package:multimedia/widgets/tvshows/details/settings_box.dart';
|
||||
|
||||
import 'package:multimedia/data/tvshows.dart';
|
||||
|
||||
import 'package:logger/logger.dart';
|
||||
import 'package:multimedia/log_printer.dart';
|
||||
|
||||
class TVShowDetailsScreen extends StatelessWidget {
|
||||
TVShowDetailsScreen({
|
||||
super.key,
|
||||
@@ -26,6 +28,7 @@ class TVShowDetailsScreen extends StatelessWidget {
|
||||
late int maxSeason;
|
||||
late List<EpisodeCount> episodeCount;
|
||||
late TVShow tvShowDetails;
|
||||
Logger logger = getLogger();
|
||||
|
||||
Future<http.Response> testPost(String data) async {
|
||||
SharedPreferences prefs = await SharedPreferences.getInstance();
|
||||
@@ -76,38 +79,38 @@ class TVShowDetailsScreen extends StatelessWidget {
|
||||
);
|
||||
|
||||
final response = await http.get(url);
|
||||
bool? error;
|
||||
String? errorMessage;
|
||||
//LATER bool? error;
|
||||
//LATER String? errorMessage;
|
||||
String? mSeason;
|
||||
|
||||
Map<String, dynamic> tvshows = json.decode(response.body);
|
||||
error = tvshows['error'];
|
||||
errorMessage = tvshows['errmsg'];
|
||||
//LATER error = tvshows['error'];
|
||||
//LATER errorMessage = tvshows['errmsg'];
|
||||
mSeason = tvshows['maxSeason'];
|
||||
|
||||
var tvshowList = tvshows['tvshows'];
|
||||
var episodeList = tvshows['episodeCount'];
|
||||
|
||||
if (mSeason != null) {
|
||||
if (int.tryParse(mSeason!) != null) {
|
||||
if (int.tryParse(mSeason) != null) {
|
||||
maxSeason = int.parse(mSeason);
|
||||
}
|
||||
}
|
||||
|
||||
List<TVShow> _tvshows =
|
||||
List<TVShow> tvshowsTmp =
|
||||
await tvshowList.map<TVShow>((json) => TVShow.fromJson(json)).toList();
|
||||
|
||||
List<EpisodeCount> _episodecount = await episodeList
|
||||
List<EpisodeCount> episodecountTmp = await episodeList
|
||||
.map<EpisodeCount>((json) => EpisodeCount.fromJson(json))
|
||||
.toList();
|
||||
|
||||
episodeCount = _episodecount;
|
||||
episodeCount = episodecountTmp;
|
||||
|
||||
if (_tvshows.isNotEmpty) {
|
||||
tvShowDetails = _tvshows[0];
|
||||
if (tvshowsTmp.isNotEmpty) {
|
||||
tvShowDetails = tvshowsTmp[0];
|
||||
}
|
||||
|
||||
return _tvshows[0];
|
||||
return tvshowsTmp[0];
|
||||
}
|
||||
|
||||
Widget generateLists(BuildContext context) {
|
||||
@@ -337,57 +340,57 @@ class TVShowDetailsScreen extends StatelessWidget {
|
||||
}
|
||||
|
||||
Future<bool> updateTVShow() async {
|
||||
SharedPreferences prefs = await SharedPreferences.getInstance();
|
||||
// SharedPreferences prefs = await SharedPreferences.getInstance();
|
||||
|
||||
String? dbProtocol = prefs.getString('dbProtocol');
|
||||
String? dbHost = prefs.getString('dbHost');
|
||||
String? dbPath = prefs.getString('dbPath');
|
||||
// String? dbProtocol = prefs.getString('dbProtocol');
|
||||
// String? dbHost = prefs.getString('dbHost');
|
||||
// String? dbPath = prefs.getString('dbPath');
|
||||
|
||||
Uri url = Uri(
|
||||
scheme: dbProtocol,
|
||||
host: dbHost,
|
||||
path: dbPath,
|
||||
);
|
||||
// Uri url = Uri(
|
||||
// scheme: dbProtocol,
|
||||
// host: dbHost,
|
||||
// path: dbPath,
|
||||
// );
|
||||
|
||||
var seasonState = jsonEncode(tvShowDetails.seasonStatus.map((e) => e.toJson()).toList());
|
||||
// var seasonState = jsonEncode(tvShowDetails.seasonStatus.map((e) => e.toJson()).toList());
|
||||
|
||||
try {
|
||||
final r = await http.post(
|
||||
url,
|
||||
headers: <String, String>{
|
||||
'Content-Type': 'application/json; charset=UTF-8',
|
||||
},
|
||||
body: jsonEncode(
|
||||
<String, dynamic>{
|
||||
'module': 'tvshow',
|
||||
'function': 'update',
|
||||
'seriesID': tvShowDetails.seriesID.toString(),
|
||||
'seriesName': tvShowDetails.seriesName,
|
||||
'overview': tvShowDetails.overview,
|
||||
'firstAired':
|
||||
DateFormat('yyyy-MM-dd').format(tvShowDetails.firstAired),
|
||||
'resolution': tvShowDetails.resolution,
|
||||
'cliffhanger': tvShowDetails.cliffhanger.toString(),
|
||||
'status': tvShowDetails.status.toString(),
|
||||
'backdropPath': tvShowDetails.backdropPath,
|
||||
'seriesState': tvShowDetails.seriesState.toString(),
|
||||
'languages': tvShowDetails.languages,
|
||||
'networks': tvShowDetails.networks,
|
||||
'productionCompanies': tvShowDetails.productionCompanies,
|
||||
'voteAverage': tvShowDetails.voteAverage.toString(),
|
||||
'voteCount': tvShowDetails.voteCount.toString(),
|
||||
'cast': tvShowDetails.cast,
|
||||
'crew': tvShowDetails.crew,
|
||||
'genre': tvShowDetails.genre,
|
||||
'download': tvShowDetails.download,
|
||||
'localPath': tvShowDetails.localPath,
|
||||
'seasons': seasonState,
|
||||
},
|
||||
),
|
||||
);
|
||||
} catch (e) {
|
||||
print(e.toString());
|
||||
}
|
||||
// try {
|
||||
// final r = await http.post(
|
||||
// url,
|
||||
// headers: <String, String>{
|
||||
// 'Content-Type': 'application/json; charset=UTF-8',
|
||||
// },
|
||||
// body: jsonEncode(
|
||||
// <String, dynamic>{
|
||||
// 'module': 'tvshow',
|
||||
// 'function': 'update',
|
||||
// 'seriesID': tvShowDetails.seriesID.toString(),
|
||||
// 'seriesName': tvShowDetails.seriesName,
|
||||
// 'overview': tvShowDetails.overview,
|
||||
// 'firstAired':
|
||||
// DateFormat('yyyy-MM-dd').format(tvShowDetails.firstAired),
|
||||
// 'resolution': tvShowDetails.resolution,
|
||||
// 'cliffhanger': tvShowDetails.cliffhanger.toString(),
|
||||
// 'status': tvShowDetails.status.toString(),
|
||||
// 'backdropPath': tvShowDetails.backdropPath,
|
||||
// 'seriesState': tvShowDetails.seriesState.toString(),
|
||||
// 'languages': tvShowDetails.languages,
|
||||
// 'networks': tvShowDetails.networks,
|
||||
// 'productionCompanies': tvShowDetails.productionCompanies,
|
||||
// 'voteAverage': tvShowDetails.voteAverage.toString(),
|
||||
// 'voteCount': tvShowDetails.voteCount.toString(),
|
||||
// 'cast': tvShowDetails.cast,
|
||||
// 'crew': tvShowDetails.crew,
|
||||
// 'genre': tvShowDetails.genre,
|
||||
// 'download': tvShowDetails.download,
|
||||
// 'localPath': tvShowDetails.localPath,
|
||||
// 'seasons': seasonState,
|
||||
// },
|
||||
// ),
|
||||
// );
|
||||
// } catch (e) {
|
||||
// logger.e(e.toString());
|
||||
// }
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -545,7 +548,6 @@ class TVShowDetailsScreen extends StatelessWidget {
|
||||
),
|
||||
),
|
||||
]);
|
||||
;
|
||||
} else {
|
||||
return const Center(
|
||||
child: CircularProgressIndicator(
|
||||
+4
-4
@@ -100,7 +100,7 @@ class _TVShowDetailsSeasonBoxState extends State<TVShowDetailsSeasonBox> {
|
||||
Map<int, TableColumnWidth> colWidths = {};
|
||||
|
||||
for (int i = 0; i <= maxEpisode; i++) {
|
||||
colWidths.addEntries({i: IntrinsicColumnWidth()}.entries);
|
||||
colWidths.addEntries({i: const IntrinsicColumnWidth()}.entries);
|
||||
}
|
||||
|
||||
return Container(
|
||||
@@ -194,7 +194,7 @@ class _TVShowDetailsSeasonBoxState extends State<TVShowDetailsSeasonBox> {
|
||||
for (var s in stateList)
|
||||
TableCell(
|
||||
child: Checkbox(
|
||||
side: MaterialStateBorderSide.resolveWith(
|
||||
side: WidgetStateBorderSide.resolveWith(
|
||||
(states) => const BorderSide(
|
||||
width: 1.0, color: Colors.grey),
|
||||
),
|
||||
@@ -239,7 +239,7 @@ class _TVShowDetailsSeasonBoxState extends State<TVShowDetailsSeasonBox> {
|
||||
for (var s in stateList)
|
||||
TableCell(
|
||||
child: Checkbox(
|
||||
side: MaterialStateBorderSide.resolveWith(
|
||||
side: WidgetStateBorderSide.resolveWith(
|
||||
(states) => const BorderSide(
|
||||
width: 1.0, color: Colors.grey),
|
||||
),
|
||||
@@ -284,7 +284,7 @@ class _TVShowDetailsSeasonBoxState extends State<TVShowDetailsSeasonBox> {
|
||||
for (var s in stateList)
|
||||
TableCell(
|
||||
child: Checkbox(
|
||||
side: MaterialStateBorderSide.resolveWith(
|
||||
side: WidgetStateBorderSide.resolveWith(
|
||||
(states) => const BorderSide(
|
||||
width: 1.0, color: Colors.grey),
|
||||
),
|
||||
@@ -1,7 +1,6 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:multimedia/widgets/tvshows/details/seasonBox.dart';
|
||||
import 'package:multimedia/widgets/tvshows/details/season_box.dart';
|
||||
|
||||
import 'package:multimedia/constants.dart';
|
||||
import 'package:multimedia/data/tvshows.dart';
|
||||
|
||||
class TVShowDetailsSeasons extends StatefulWidget {
|
||||
|
||||
+4
-4
@@ -1,10 +1,10 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
import 'package:multimedia/constants.dart';
|
||||
import 'package:multimedia/widgets/tvshows/details/settingsBoxDownloadLink.dart';
|
||||
import 'package:multimedia/widgets/tvshows/details/settingsBoxLocalPath.dart';
|
||||
import 'package:multimedia/widgets/tvshows/details/settingsBoxResolution.dart';
|
||||
import 'package:multimedia/widgets/tvshows/details/settingsBoxCliffhanger.dart';
|
||||
import 'package:multimedia/widgets/tvshows/details/settings_box_download_link.dart';
|
||||
import 'package:multimedia/widgets/tvshows/details/settings_box_local_path.dart';
|
||||
import 'package:multimedia/widgets/tvshows/details/settings_box_resolution.dart';
|
||||
import 'package:multimedia/widgets/tvshows/details/settings_box_cliffhanger.dart';
|
||||
|
||||
class TVShowDetailsSettingsBox extends StatelessWidget {
|
||||
TVShowDetailsSettingsBox({
|
||||
+2
-2
@@ -47,8 +47,8 @@ class _TVShowDetailsSettingsBoxCliffhangerState
|
||||
height: 10,
|
||||
),
|
||||
Checkbox(
|
||||
side: MaterialStateBorderSide.resolveWith(
|
||||
(states) => BorderSide(width: 1.0, color: Colors.grey),
|
||||
side: WidgetStateBorderSide.resolveWith(
|
||||
(states) => const BorderSide(width: 1.0, color: Colors.grey),
|
||||
),
|
||||
value: (_curCliffhanger == 1),
|
||||
onChanged: (bool? value) {
|
||||
@@ -1,7 +1,5 @@
|
||||
import 'dart:ui' as ui;
|
||||
|
||||
import 'dart:convert';
|
||||
import 'package:multimedia/widgets/tvshows/details/detailsScreen.dart';
|
||||
import 'package:multimedia/widgets/tvshows/details/details_screen.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
|
||||
@@ -15,7 +13,6 @@ import 'package:multimedia/data/tvshows.dart';
|
||||
|
||||
import 'package:multimedia/constants.dart';
|
||||
|
||||
|
||||
String convertState(String state) {
|
||||
List<String> stateList = state.split(',');
|
||||
int maxEpisode = 0;
|
||||
@@ -104,34 +101,34 @@ class _TVShowsScreenState extends State<TVShowsScreen> {
|
||||
|
||||
try {
|
||||
final response = await http.get(url);
|
||||
bool? error;
|
||||
String? errorMessage;
|
||||
//LATER bool? error;
|
||||
//LATER String? errorMessage;
|
||||
String? mSeason;
|
||||
|
||||
Map<String, dynamic> tvshows = json.decode(response.body);
|
||||
error = tvshows['error'];
|
||||
errorMessage = tvshows['errmsg'];
|
||||
//LATER error = tvshows['error'];
|
||||
//LATER errorMessage = tvshows['errmsg'];
|
||||
mSeason = tvshows['maxSeason'];
|
||||
|
||||
var tvshowList = tvshows['tvshows'];
|
||||
var episodeList = tvshows['episodeCount'];
|
||||
|
||||
if (mSeason != null) {
|
||||
if (int.tryParse(mSeason!) != null) {
|
||||
if (int.tryParse(mSeason) != null) {
|
||||
maxSeason = int.parse(mSeason);
|
||||
}
|
||||
}
|
||||
|
||||
List<TVShow> _tvshows = await tvshowList
|
||||
List<TVShow> tvshowsTmp = await tvshowList
|
||||
.map<TVShow>((json) => TVShow.fromJson(json))
|
||||
.toList();
|
||||
tvshowDataSource = TVShowDataSource(_tvshows, maxSeason);
|
||||
tvshowDataSource = TVShowDataSource(tvshowsTmp, maxSeason);
|
||||
|
||||
List<EpisodeCount> _episodecount = await episodeList
|
||||
List<EpisodeCount> episodecountTmp = await episodeList
|
||||
.map<EpisodeCount>((json) => EpisodeCount.fromJson(json))
|
||||
.toList();
|
||||
|
||||
episodeCount = _episodecount;
|
||||
episodeCount = episodecountTmp;
|
||||
|
||||
if (initDone == false) {
|
||||
addSeasonColumns(maxSeason);
|
||||
@@ -139,9 +136,9 @@ class _TVShowsScreenState extends State<TVShowsScreen> {
|
||||
|
||||
initDone = true;
|
||||
|
||||
_tvshowsList = _tvshows;
|
||||
_tvshowsList = tvshowsTmp;
|
||||
|
||||
return _tvshows;
|
||||
return tvshowsTmp;
|
||||
} catch (e) {
|
||||
print(e.toString());
|
||||
}
|
||||
+72
-72
@@ -45,18 +45,18 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: crypto
|
||||
sha256: ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab
|
||||
sha256: "1e445881f28f22d6140f181e07737b22f1e099a5e1ff94b0af2f9e4a463f4855"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.0.3"
|
||||
version: "3.0.6"
|
||||
cupertino_icons:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: cupertino_icons
|
||||
sha256: d57953e10f9f8327ce64a508a355f0b1ec902193f66288e8cb5070e7c47eeb2d
|
||||
sha256: ba631d1c7f7bef6b729a622b7b752645a2d076dba9976925b8f25725a30e1ee6
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.0.6"
|
||||
version: "1.0.8"
|
||||
fake_async:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -69,18 +69,18 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: ffi
|
||||
sha256: "493f37e7df1804778ff3a53bd691d8692ddf69702cf4c1c1096a2e41b4779e21"
|
||||
sha256: "16ed7b077ef01ad6170a3d0c57caa4a112a38d7a2ed5602e0aca9ca6f3d98da6"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.1.2"
|
||||
version: "2.1.3"
|
||||
file:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: file
|
||||
sha256: "5fc22d7c25582e38ad9a8515372cd9a93834027aacf1801cf01164dac0ffa08c"
|
||||
sha256: a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "7.0.0"
|
||||
version: "7.0.1"
|
||||
flutter:
|
||||
dependency: "direct main"
|
||||
description: flutter
|
||||
@@ -90,10 +90,10 @@ packages:
|
||||
dependency: "direct dev"
|
||||
description:
|
||||
name: flutter_lints
|
||||
sha256: "9e8c3858111da373efc5aa341de011d9bd23e2c5c5e0c62bccf32438e192d7b1"
|
||||
sha256: "5398f14efa795ffb7a33e9b6a08798b26a180edac4ad7db3f231e40f82ce11e1"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.0.2"
|
||||
version: "5.0.0"
|
||||
flutter_test:
|
||||
dependency: "direct dev"
|
||||
description: flutter
|
||||
@@ -116,10 +116,10 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: http
|
||||
sha256: "761a297c042deedc1ffbb156d6e2af13886bb305c2a343a4d972504cd67dd938"
|
||||
sha256: b9c29a161230ee03d3ccf545097fccd9b87a5264228c5d348202e0f0c28f9010
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.2.1"
|
||||
version: "1.2.2"
|
||||
http_parser:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -140,34 +140,42 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: leak_tracker
|
||||
sha256: "78eb209deea09858f5269f5a5b02be4049535f568c07b275096836f01ea323fa"
|
||||
sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "10.0.0"
|
||||
version: "10.0.5"
|
||||
leak_tracker_flutter_testing:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: leak_tracker_flutter_testing
|
||||
sha256: b46c5e37c19120a8a01918cfaf293547f47269f7cb4b0058f21531c2465d6ef0
|
||||
sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.0.1"
|
||||
version: "3.0.5"
|
||||
leak_tracker_testing:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: leak_tracker_testing
|
||||
sha256: a597f72a664dbd293f3bfc51f9ba69816f84dcd403cdac7066cb3f6003f3ab47
|
||||
sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.0.1"
|
||||
version: "3.0.1"
|
||||
lints:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: lints
|
||||
sha256: cbf8d4b858bb0134ef3ef87841abdf8d63bfc255c266b7bf6b39daa1085c4290
|
||||
sha256: "3315600f3fb3b135be672bf4a178c55f274bebe368325ae18462c89ac1e3b413"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.0.0"
|
||||
version: "5.0.0"
|
||||
logger:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: logger
|
||||
sha256: "697d067c60c20999686a0add96cf6aba723b3aa1f83ecf806a8097231529ec32"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.4.0"
|
||||
matcher:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -180,18 +188,18 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: material_color_utilities
|
||||
sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a"
|
||||
sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.8.0"
|
||||
version: "0.11.1"
|
||||
meta:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: meta
|
||||
sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04
|
||||
sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.11.0"
|
||||
version: "1.15.0"
|
||||
path:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -204,26 +212,26 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: path_provider
|
||||
sha256: c9e7d3a4cd1410877472158bee69963a4579f78b68c65a2b7d40d1a7a88bb161
|
||||
sha256: "50c5dd5b6e1aaf6fb3a78b33f6aa3afca52bf903a8a5298f53101fdaee55bbcd"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.1.3"
|
||||
version: "2.1.5"
|
||||
path_provider_android:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: path_provider_android
|
||||
sha256: "51f0d2c554cfbc9d6a312ab35152fc77e2f0b758ce9f1a444a3a1e5b8f3c6b7f"
|
||||
sha256: c464428172cb986b758c6d1724c603097febb8fb855aa265aeecc9280c294d4a
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.2.3"
|
||||
version: "2.2.12"
|
||||
path_provider_foundation:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: path_provider_foundation
|
||||
sha256: "5a7999be66e000916500be4f15a3633ebceb8302719b47b9cc49ce924125350f"
|
||||
sha256: f234384a3fdd67f989b4d54a5d73ca2a6c422fa55ae694381ae0f4375cd1ea16
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.3.2"
|
||||
version: "2.4.0"
|
||||
path_provider_linux:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -244,18 +252,18 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: path_provider_windows
|
||||
sha256: "8bc9f22eee8690981c22aa7fc602f5c85b497a6fb2ceb35ee5a5e5ed85ad8170"
|
||||
sha256: bd6f00dbd873bfb70d0761682da2b3a2c2fccc2b9e84c495821639601d81afe7
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.2.1"
|
||||
version: "2.3.0"
|
||||
platform:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: platform
|
||||
sha256: "12220bb4b65720483f8fa9450b4332347737cf8213dd2840d8b2c823e47243ec"
|
||||
sha256: "5d6b1b0036a5f331ebc77c850ebc8506cbc1e9416c27e59b439f917a902a4984"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.1.4"
|
||||
version: "3.1.6"
|
||||
plugin_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -268,58 +276,58 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: shared_preferences
|
||||
sha256: d3bbe5553a986e83980916ded2f0b435ef2e1893dfaa29d5a7a790d0eca12180
|
||||
sha256: "95f9997ca1fb9799d494d0cb2a780fd7be075818d59f00c43832ed112b158a82"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.2.3"
|
||||
version: "2.3.3"
|
||||
shared_preferences_android:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: shared_preferences_android
|
||||
sha256: "8568a389334b6e83415b6aae55378e158fbc2314e074983362d20c562780fb06"
|
||||
sha256: "3b9febd815c9ca29c9e3520d50ec32f49157711e143b7a4ca039eb87e8ade5ab"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.2.1"
|
||||
version: "2.3.3"
|
||||
shared_preferences_foundation:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: shared_preferences_foundation
|
||||
sha256: "7708d83064f38060c7b39db12aefe449cb8cdc031d6062280087bc4cdb988f5c"
|
||||
sha256: "07e050c7cd39bad516f8d64c455f04508d09df104be326d8c02551590a0d513d"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.3.5"
|
||||
version: "2.5.3"
|
||||
shared_preferences_linux:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: shared_preferences_linux
|
||||
sha256: "9f2cbcf46d4270ea8be39fa156d86379077c8a5228d9dfdb1164ae0bb93f1faa"
|
||||
sha256: "580abfd40f415611503cae30adf626e6656dfb2f0cee8f465ece7b6defb40f2f"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.3.2"
|
||||
version: "2.4.1"
|
||||
shared_preferences_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: shared_preferences_platform_interface
|
||||
sha256: "22e2ecac9419b4246d7c22bfbbda589e3acf5c0351137d87dd2939d984d37c3b"
|
||||
sha256: "57cbf196c486bc2cf1f02b85784932c6094376284b3ad5779d1b1c6c6a816b80"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.3.2"
|
||||
version: "2.4.1"
|
||||
shared_preferences_web:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: shared_preferences_web
|
||||
sha256: "9aee1089b36bd2aafe06582b7d7817fd317ef05fc30e6ba14bff247d0933042a"
|
||||
sha256: d2ca4132d3946fec2184261726b355836a82c33d7d5b67af32692aff18a4684e
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.3.0"
|
||||
version: "2.4.2"
|
||||
shared_preferences_windows:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: shared_preferences_windows
|
||||
sha256: "841ad54f3c8381c480d0c9b508b89a34036f512482c407e6df7a9c4aa2ef8f59"
|
||||
sha256: "94ef0f72b2d71bc3e700e025db3710911bd51a71cefb65cc609dd0d9a982e3c1"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.3.2"
|
||||
version: "2.4.1"
|
||||
sky_engine:
|
||||
dependency: transitive
|
||||
description: flutter
|
||||
@@ -361,18 +369,18 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: syncfusion_flutter_core
|
||||
sha256: "159b125f55d95534c0c39a5efd644f50a310821191946e15eac50a49032fb42c"
|
||||
sha256: "31d2ddf410ee41abb3ecf85b7b6e8e1563307ad52ee784ddd91337e30280f715"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "25.1.39"
|
||||
version: "27.1.58"
|
||||
syncfusion_flutter_datagrid:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: syncfusion_flutter_datagrid
|
||||
sha256: "5b31219c6acf4f65d71955476966288c03d5c8ea9c2842d938860c683181360f"
|
||||
sha256: e7ddbb1bbadbb671e5fd636cadcde2ae06d9eec294c24937859f3c77ed1d1cbe
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "25.1.39"
|
||||
version: "27.1.58"
|
||||
term_glyph:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -385,10 +393,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: test_api
|
||||
sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b"
|
||||
sha256: "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.6.1"
|
||||
version: "0.7.2"
|
||||
transparent_image:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@@ -401,10 +409,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: typed_data
|
||||
sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c
|
||||
sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.3.2"
|
||||
version: "1.4.0"
|
||||
vector_math:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -417,34 +425,26 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: vm_service
|
||||
sha256: b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957
|
||||
sha256: "5c5f338a667b4c644744b661f309fb8080bb94b18a7e91ef1dbd343bed00ed6d"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "13.0.0"
|
||||
version: "14.2.5"
|
||||
web:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: web
|
||||
sha256: "97da13628db363c635202ad97068d47c5b8aa555808e7a9411963c533b449b27"
|
||||
sha256: cd3543bd5798f6ad290ea73d210f423502e71900302dde696f8bff84bf89a1cb
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.5.1"
|
||||
win32:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: win32
|
||||
sha256: "0a989dc7ca2bb51eac91e8fd00851297cfffd641aa7538b165c62637ca0eaa4a"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "5.4.0"
|
||||
version: "1.1.0"
|
||||
xdg_directories:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: xdg_directories
|
||||
sha256: faea9dee56b520b55a566385b84f2e8de55e7496104adada9962e0bd11bcff1d
|
||||
sha256: "7a3f37b05d989967cdddcbb571f1ea834867ae2faa29725fd085180e0883aa15"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.0.4"
|
||||
version: "1.1.0"
|
||||
sdks:
|
||||
dart: ">=3.3.0 <4.0.0"
|
||||
flutter: ">=3.19.2"
|
||||
dart: ">=3.5.0 <4.0.0"
|
||||
flutter: ">=3.24.0"
|
||||
|
||||
+6
-4
@@ -36,12 +36,14 @@ dependencies:
|
||||
# Use with the CupertinoIcons class for iOS style icons.
|
||||
cupertino_icons: ^1.0.2
|
||||
http: ^1.2.0
|
||||
syncfusion_flutter_datagrid: ^25.1.37
|
||||
syncfusion_flutter_datagrid: ^27.1.58
|
||||
intl: ^0.19.0
|
||||
syncfusion_flutter_core: ^25.1.37
|
||||
syncfusion_flutter_core: ^27.1.58
|
||||
google_fonts: ^6.2.1
|
||||
shared_preferences: ^2.2.2
|
||||
shared_preferences: ^2.3.3
|
||||
transparent_image: ^2.0.1
|
||||
logger: ^2.4.0
|
||||
|
||||
|
||||
dev_dependencies:
|
||||
flutter_test:
|
||||
@@ -52,7 +54,7 @@ dev_dependencies:
|
||||
# activated in the `analysis_options.yaml` file located at the root of your
|
||||
# package. See that file for information about deactivating specific lint
|
||||
# rules and activating additional ones.
|
||||
flutter_lints: ^3.0.2
|
||||
flutter_lints: ^5.0.0
|
||||
|
||||
# For information on the generic Dart part of this file, see the
|
||||
# following page: https://dart.dev/tools/pub/pubspec
|
||||
|
||||
Reference in New Issue
Block a user