Update flutter_lints

This commit is contained in:
Ming Ming 2022-07-08 22:52:18 +08:00
parent f55f68b593
commit 1cab879cd6
20 changed files with 110 additions and 95 deletions

View file

@ -1 +1,8 @@
include: package:flutter_lints/flutter.yaml include: package:flutter_lints/flutter.yaml
linter:
rules:
depend_on_referenced_packages: false
prefer_interpolation_to_compose_strings: false
no_leading_underscores_for_local_identifiers: false
use_build_context_synchronously: false

View file

@ -31,10 +31,10 @@ class Response {
class Api { class Api {
Api(this._account); Api(this._account);
_Files files() => _Files(this); ApiFiles files() => ApiFiles(this);
_Ocs ocs() => _Ocs(this); ApiOcs ocs() => ApiOcs(this);
_Systemtags systemtags() => _Systemtags(this); ApiSystemtags systemtags() => ApiSystemtags(this);
_SystemtagsRelations systemtagsRelations() => _SystemtagsRelations(this); ApiSystemtagsRelations systemtagsRelations() => ApiSystemtagsRelations(this);
static String getAuthorizationHeaderValue(Account account) { static String getAuthorizationHeaderValue(Account account) {
final auth = final auth =
@ -108,8 +108,8 @@ class Api {
bool _isHttpStatusGood(int status) => status ~/ 100 == 2; bool _isHttpStatusGood(int status) => status ~/ 100 == 2;
class _Files { class ApiFiles {
_Files(this._api); ApiFiles(this._api);
final Api _api; final Api _api;
@ -447,26 +447,26 @@ class _Files {
static final _log = Logger("api.api._Files"); static final _log = Logger("api.api._Files");
} }
class _Ocs { class ApiOcs {
_Ocs(this._api); ApiOcs(this._api);
_OcsDav dav() => _OcsDav(this); ApiOcsDav dav() => ApiOcsDav(this);
_OcsFacerecognition facerecognition() => _OcsFacerecognition(this); ApiOcsFacerecognition facerecognition() => ApiOcsFacerecognition(this);
_OcsFilesSharing filesSharing() => _OcsFilesSharing(this); ApiOcsFilesSharing filesSharing() => ApiOcsFilesSharing(this);
final Api _api; final Api _api;
} }
class _OcsDav { class ApiOcsDav {
_OcsDav(this._ocs); ApiOcsDav(this._ocs);
_OcsDavDirect direct() => _OcsDavDirect(this); ApiOcsDavDirect direct() => ApiOcsDavDirect(this);
final _Ocs _ocs; final ApiOcs _ocs;
} }
class _OcsDavDirect { class ApiOcsDavDirect {
_OcsDavDirect(this._dav); ApiOcsDavDirect(this._dav);
Future<Response> post({ Future<Response> post({
required int fileId, required int fileId,
@ -490,23 +490,23 @@ class _OcsDavDirect {
} }
} }
final _OcsDav _dav; final ApiOcsDav _dav;
static final _log = Logger("api.api._OcsDavDirect"); static final _log = Logger("api.api._OcsDavDirect");
} }
class _OcsFacerecognition { class ApiOcsFacerecognition {
_OcsFacerecognition(this._ocs); ApiOcsFacerecognition(this._ocs);
_OcsFacerecognitionPersons persons() => _OcsFacerecognitionPersons(this); ApiOcsFacerecognitionPersons persons() => ApiOcsFacerecognitionPersons(this);
_OcsFacerecognitionPerson person(String name) => ApiOcsFacerecognitionPerson person(String name) =>
_OcsFacerecognitionPerson(this, name); ApiOcsFacerecognitionPerson(this, name);
final _Ocs _ocs; final ApiOcs _ocs;
} }
class _OcsFacerecognitionPersons { class ApiOcsFacerecognitionPersons {
_OcsFacerecognitionPersons(this._facerecognition); ApiOcsFacerecognitionPersons(this._facerecognition);
Future<Response> get() async { Future<Response> get() async {
try { try {
@ -526,23 +526,23 @@ class _OcsFacerecognitionPersons {
} }
} }
final _OcsFacerecognition _facerecognition; final ApiOcsFacerecognition _facerecognition;
static final _log = Logger("api.api._OcsFacerecognitionPersons"); static final _log = Logger("api.api._OcsFacerecognitionPersons");
} }
class _OcsFacerecognitionPerson { class ApiOcsFacerecognitionPerson {
_OcsFacerecognitionPerson(this._facerecognition, this._name); ApiOcsFacerecognitionPerson(this._facerecognition, this._name);
_OcsFacerecognitionPersonFaces faces() => ApiOcsFacerecognitionPersonFaces faces() =>
_OcsFacerecognitionPersonFaces(this); ApiOcsFacerecognitionPersonFaces(this);
final _OcsFacerecognition _facerecognition; final ApiOcsFacerecognition _facerecognition;
final String _name; final String _name;
} }
class _OcsFacerecognitionPersonFaces { class ApiOcsFacerecognitionPersonFaces {
_OcsFacerecognitionPersonFaces(this._person); ApiOcsFacerecognitionPersonFaces(this._person);
Future<Response> get() async { Future<Response> get() async {
try { try {
@ -562,24 +562,24 @@ class _OcsFacerecognitionPersonFaces {
} }
} }
final _OcsFacerecognitionPerson _person; final ApiOcsFacerecognitionPerson _person;
static final _log = Logger("api.api._OcsFacerecognitionPersonFaces"); static final _log = Logger("api.api._OcsFacerecognitionPersonFaces");
} }
class _OcsFilesSharing { class ApiOcsFilesSharing {
_OcsFilesSharing(this._ocs); ApiOcsFilesSharing(this._ocs);
_OcsFilesSharingShares shares() => _OcsFilesSharingShares(this); ApiOcsFilesSharingShares shares() => ApiOcsFilesSharingShares(this);
_OcsFilesSharingShare share(String shareId) => ApiOcsFilesSharingShare share(String shareId) =>
_OcsFilesSharingShare(this, shareId); ApiOcsFilesSharingShare(this, shareId);
_OcsFilesSharingSharees sharees() => _OcsFilesSharingSharees(this); ApiOcsFilesSharingSharees sharees() => ApiOcsFilesSharingSharees(this);
final _Ocs _ocs; final ApiOcs _ocs;
} }
class _OcsFilesSharingShares { class ApiOcsFilesSharingShares {
_OcsFilesSharingShares(this._filesSharing); ApiOcsFilesSharingShares(this._filesSharing);
/// Get Shares from a specific file or folder /// Get Shares from a specific file or folder
/// ///
@ -652,19 +652,19 @@ class _OcsFilesSharingShares {
} }
} }
final _OcsFilesSharing _filesSharing; final ApiOcsFilesSharing _filesSharing;
static final _log = Logger("api.api._OcsFilesSharingShares"); static final _log = Logger("api.api._OcsFilesSharingShares");
} }
class _OcsFilesSharingShare { class ApiOcsFilesSharingShare {
_OcsFilesSharingShare(this._filesSharing, this._shareId); ApiOcsFilesSharingShare(this._filesSharing, this._shareId);
/// Remove the given share /// Remove the given share
/// ///
/// See: https://docs.nextcloud.com/server/latest/developer_manual/client_apis/OCS/ocs-share-api.html#delete-share /// See: https://docs.nextcloud.com/server/latest/developer_manual/client_apis/OCS/ocs-share-api.html#delete-share
/// * The type of share ID is listed as int in the document, however, the /// * The type of share ID is listed as int in the document, however, the
/// share ID returned in [_OcsFilesSharingShares.get] is actually a string. To /// share ID returned in [ApiOcsFilesSharingShares.get] is actually a string. To
/// keep it consistent, we'll use string instead /// keep it consistent, we'll use string instead
Future<Response> delete() async { Future<Response> delete() async {
try { try {
@ -681,14 +681,14 @@ class _OcsFilesSharingShare {
} }
} }
final _OcsFilesSharing _filesSharing; final ApiOcsFilesSharing _filesSharing;
final String _shareId; final String _shareId;
static final _log = Logger("api.api._OcsFilesSharingShare"); static final _log = Logger("api.api._OcsFilesSharingShare");
} }
class _OcsFilesSharingSharees { class ApiOcsFilesSharingSharees {
_OcsFilesSharingSharees(this._filesSharing); ApiOcsFilesSharingSharees(this._filesSharing);
/// Get all sharees matching a search term /// Get all sharees matching a search term
/// ///
@ -720,13 +720,13 @@ class _OcsFilesSharingSharees {
} }
} }
final _OcsFilesSharing _filesSharing; final ApiOcsFilesSharing _filesSharing;
static final _log = Logger("api.api._OcsFilesSharingSharees"); static final _log = Logger("api.api._OcsFilesSharingSharees");
} }
class _Systemtags { class ApiSystemtags {
const _Systemtags(this.api); const ApiSystemtags(this.api);
Future<Response> propfind({ Future<Response> propfind({
id, id,
@ -791,17 +791,17 @@ class _Systemtags {
static final _log = Logger("api.api._Systemtags"); static final _log = Logger("api.api._Systemtags");
} }
class _SystemtagsRelations { class ApiSystemtagsRelations {
const _SystemtagsRelations(this.api); const ApiSystemtagsRelations(this.api);
_SystemtagsRelationsFiles files(int fileId) => ApiSystemtagsRelationsFiles files(int fileId) =>
_SystemtagsRelationsFiles(this, fileId); ApiSystemtagsRelationsFiles(this, fileId);
final Api api; final Api api;
} }
class _SystemtagsRelationsFiles { class ApiSystemtagsRelationsFiles {
const _SystemtagsRelationsFiles(this.systemtagsRelations, this.fileId); const ApiSystemtagsRelationsFiles(this.systemtagsRelations, this.fileId);
/// List systemtags associated with a file /// List systemtags associated with a file
/// ///
@ -864,7 +864,7 @@ class _SystemtagsRelationsFiles {
} }
} }
final _SystemtagsRelations systemtagsRelations; final ApiSystemtagsRelations systemtagsRelations;
final int fileId; final int fileId;
static final _log = Logger("api.api._SystemtagsRelationsFiles"); static final _log = Logger("api.api._SystemtagsRelationsFiles");

View file

@ -25,7 +25,7 @@ class NativeEventListener<T> {
_subscription = null; _subscription = null;
} }
static late final _mappedStream = static final _mappedStream =
NativeEvent.stream.whereType<NativeEventObject>().map((ev) { NativeEvent.stream.whereType<NativeEventObject>().map((ev) {
switch (ev.event) { switch (ev.event) {
case FileExifUpdatedEvent._id: case FileExifUpdatedEvent._id:

View file

@ -12,7 +12,7 @@ class DownloadEvent {
static const _downloadCancelChannel = EventChannel( static const _downloadCancelChannel = EventChannel(
"com.nkming.nc_photos/download_event/action_download_cancel"); "com.nkming.nc_photos/download_event/action_download_cancel");
static late final _cancelStream = _downloadCancelChannel static final _cancelStream = _downloadCancelChannel
.receiveBroadcastStream() .receiveBroadcastStream()
.map((data) => DownloadCancelEvent( .map((data) => DownloadCancelEvent(
data["notificationId"], data["notificationId"],

View file

@ -210,7 +210,7 @@ class _L10n {
} }
} }
static late final _inst = _L10n._(); static final _inst = _L10n._();
late AppLocalizations _l10n; late AppLocalizations _l10n;
static final _log = Logger("service._L10n"); static final _log = Logger("service._L10n");

View file

@ -1,9 +1,9 @@
// ignore: avoid_web_libraries_in_flutter // ignore: avoid_web_libraries_in_flutter
import 'dart:html'; import 'dart:html';
import 'package:/nc_photos/mobile/ui_hack.dart' if (dart.library.html) 'dart:ui'
as ui;
import 'package:flutter/widgets.dart'; import 'package:flutter/widgets.dart';
import 'package:nc_photos/mobile/ui_hack.dart' if (dart.library.html) 'dart:ui'
as ui;
import 'package:tuple/tuple.dart'; import 'package:tuple/tuple.dart';
class GoogleGpsMap extends StatefulWidget { class GoogleGpsMap extends StatefulWidget {

View file

@ -231,11 +231,11 @@ mixin AlbumBrowserMixin<T extends StatefulWidget>
)(); )();
} catch (e, stackTrace) { } catch (e, stackTrace) {
_log.shout( _log.shout(
"[_onAddToCollectionPressed] Failed while ImportPendingSharedAlbum: ${logFilename(album.albumFile?.path)}", "[_onAddToCollectionPressed] Failed while _onAddToCollectionPressed: ${logFilename(album.albumFile?.path)}",
e, e,
stackTrace); stackTrace);
} }
if (newAlbum != null) { if (newAlbum != null && mounted) {
album_browser_util.pushReplacement(context, account, newAlbum!); album_browser_util.pushReplacement(context, account, newAlbum!);
} }
} }

View file

@ -178,7 +178,7 @@ class _AlbumImporterState extends State<AlbumImporter> {
icon: AnimatedSwitcher( icon: AnimatedSwitcher(
duration: k.animationDurationShort, duration: k.animationDurationShort,
transitionBuilder: (child, animation) => transitionBuilder: (child, animation) =>
ScaleTransition(child: child, scale: animation), ScaleTransition(scale: animation, child: child),
child: Icon( child: Icon(
isPicked ? Icons.check_box : Icons.check_box_outline_blank, isPicked ? Icons.check_box : Icons.check_box_outline_blank,
key: ValueKey(isPicked), key: ValueKey(isPicked),
@ -218,7 +218,9 @@ class _AlbumImporterState extends State<AlbumImporter> {
// make sure we dismiss the dialog in any cases // make sure we dismiss the dialog in any cases
Navigator.of(context).pop(); Navigator.of(context).pop();
} }
Navigator.of(context).pop(); if (mounted) {
Navigator.of(context).pop();
}
} }
Future<void> _createAllAlbums(BuildContext context) async { Future<void> _createAllAlbums(BuildContext context) async {

View file

@ -95,11 +95,11 @@ class DirPickerState extends State<DirPicker> {
duration: k.animationDurationNormal, duration: k.animationDurationNormal,
// see AnimatedSwitcher.defaultLayoutBuilder // see AnimatedSwitcher.defaultLayoutBuilder
layoutBuilder: (currentChild, previousChildren) => Stack( layoutBuilder: (currentChild, previousChildren) => Stack(
alignment: Alignment.topLeft,
children: <Widget>[ children: <Widget>[
...previousChildren, ...previousChildren,
if (currentChild != null) currentChild, if (currentChild != null) currentChild,
], ],
alignment: Alignment.topLeft,
), ),
// needed to prevent background color overflowing the parent bound, see: // needed to prevent background color overflowing the parent bound, see:
// https://github.com/flutter/flutter/issues/86584 // https://github.com/flutter/flutter/issues/86584
@ -171,7 +171,7 @@ class DirPickerState extends State<DirPicker> {
icon: AnimatedSwitcher( icon: AnimatedSwitcher(
duration: k.animationDurationShort, duration: k.animationDurationShort,
transitionBuilder: (child, animation) => transitionBuilder: (child, animation) =>
ScaleTransition(child: child, scale: animation), ScaleTransition(scale: animation, child: child),
child: Icon( child: Icon(
iconData, iconData,
key: ValueKey(pickState), key: ValueKey(pickState),

View file

@ -57,11 +57,11 @@ class Draggable<T extends Object> extends StatelessWidget {
), ),
), ),
), ),
child: child,
childWhenDragging: Opacity( childWhenDragging: Opacity(
opacity: .25, opacity: .25,
child: child, child: child,
), ),
child: child,
), ),
), ),
if (onDropBefore != null || onDropAfter != null) if (onDropBefore != null || onDropAfter != null)

View file

@ -44,13 +44,13 @@ mixin DraggableItemListMixin<T extends StatefulWidget> on State<T> {
final item = _items[index]; final item = _items[index];
return my.Draggable( return my.Draggable(
data: item, data: item,
child: item.buildWidget(context),
feedback: item.buildDragFeedbackWidget(context), feedback: item.buildDragFeedbackWidget(context),
onDropBefore: item.onDropBefore, onDropBefore: item.onDropBefore,
onDropAfter: item.onDropAfter, onDropAfter: item.onDropAfter,
onDragStarted: item.onDragStarted, onDragStarted: item.onDragStarted,
onDragEndedAny: item.onDragEndedAny, onDragEndedAny: item.onDragEndedAny,
feedbackSize: Size(_maxCrossAxisExtent * .65, _maxCrossAxisExtent * .65), feedbackSize: Size(_maxCrossAxisExtent * .65, _maxCrossAxisExtent * .65),
child: item.buildWidget(context),
); );
} }

View file

@ -33,6 +33,7 @@ class _PhotoDateTimeEditDialogState extends State<PhotoDateTimeEditDialog> {
Row( Row(
children: [ children: [
Flexible( Flexible(
flex: 1,
child: TextFormField( child: TextFormField(
decoration: InputDecoration( decoration: InputDecoration(
hintText: L10n.global().dateYearInputHint, hintText: L10n.global().dateYearInputHint,
@ -51,10 +52,10 @@ class _PhotoDateTimeEditDialogState extends State<PhotoDateTimeEditDialog> {
}, },
initialValue: "${widget.initialDateTime.year}", initialValue: "${widget.initialDateTime.year}",
), ),
flex: 1,
), ),
const SizedBox(width: 4), const SizedBox(width: 4),
Flexible( Flexible(
flex: 1,
child: TextFormField( child: TextFormField(
decoration: InputDecoration( decoration: InputDecoration(
hintText: L10n.global().dateMonthInputHint, hintText: L10n.global().dateMonthInputHint,
@ -72,10 +73,10 @@ class _PhotoDateTimeEditDialogState extends State<PhotoDateTimeEditDialog> {
initialValue: initialValue:
widget.initialDateTime.month.toString().padLeft(2, "0"), widget.initialDateTime.month.toString().padLeft(2, "0"),
), ),
flex: 1,
), ),
const SizedBox(width: 4), const SizedBox(width: 4),
Flexible( Flexible(
flex: 1,
child: TextFormField( child: TextFormField(
decoration: InputDecoration( decoration: InputDecoration(
hintText: L10n.global().dateDayInputHint, hintText: L10n.global().dateDayInputHint,
@ -93,7 +94,6 @@ class _PhotoDateTimeEditDialogState extends State<PhotoDateTimeEditDialog> {
initialValue: initialValue:
widget.initialDateTime.day.toString().padLeft(2, "0"), widget.initialDateTime.day.toString().padLeft(2, "0"),
), ),
flex: 1,
), ),
], ],
), ),
@ -105,6 +105,7 @@ class _PhotoDateTimeEditDialogState extends State<PhotoDateTimeEditDialog> {
Row( Row(
children: [ children: [
Flexible( Flexible(
flex: 1,
child: TextFormField( child: TextFormField(
decoration: InputDecoration( decoration: InputDecoration(
hintText: L10n.global().timeHourInputHint, hintText: L10n.global().timeHourInputHint,
@ -122,10 +123,10 @@ class _PhotoDateTimeEditDialogState extends State<PhotoDateTimeEditDialog> {
initialValue: initialValue:
widget.initialDateTime.hour.toString().padLeft(2, "0"), widget.initialDateTime.hour.toString().padLeft(2, "0"),
), ),
flex: 1,
), ),
const SizedBox(width: 4), const SizedBox(width: 4),
Flexible( Flexible(
flex: 1,
child: TextFormField( child: TextFormField(
decoration: InputDecoration( decoration: InputDecoration(
hintText: L10n.global().timeMinuteInputHint, hintText: L10n.global().timeMinuteInputHint,
@ -144,12 +145,11 @@ class _PhotoDateTimeEditDialogState extends State<PhotoDateTimeEditDialog> {
.toString() .toString()
.padLeft(2, "0"), .padLeft(2, "0"),
), ),
flex: 1,
), ),
const SizedBox(width: 4), const SizedBox(width: 4),
const Flexible( const Flexible(
child: SizedBox(),
flex: 1, flex: 1,
child: SizedBox(),
), ),
], ],
), ),

View file

@ -1504,6 +1504,6 @@ enum _Experiment {
sharedAlbum, sharedAlbum,
} }
late final _enabledExperiments = [ final _enabledExperiments = [
_Experiment.sharedAlbum, _Experiment.sharedAlbum,
]; ];

View file

@ -100,6 +100,7 @@ class _ShareAlbumDialogState extends State<ShareAlbumDialog> {
); );
} }
return SimpleDialogOption( return SimpleDialogOption(
onPressed: isProcessing ? () {} : () => _onShareItemPressed(share),
child: ListTile( child: ListTile(
title: Text(share.displayName), title: Text(share.displayName),
subtitle: Text(share.shareWith.toString()), subtitle: Text(share.shareWith.toString()),
@ -108,7 +109,6 @@ class _ShareAlbumDialogState extends State<ShareAlbumDialog> {
child: trailing, child: trailing,
), ),
), ),
onPressed: isProcessing ? () {} : () => _onShareItemPressed(share),
); );
} }

View file

@ -226,7 +226,9 @@ class _SharedFileViewerState extends State<SharedFileViewer> {
} }
} }
} finally { } finally {
Navigator.of(context).pop(); if (mounted) {
Navigator.of(context).pop();
}
} }
} else { } else {
setState(() { setState(() {

View file

@ -73,6 +73,7 @@ class _SlideshowDialogState extends State<SlideshowDialog> {
Row( Row(
children: [ children: [
Flexible( Flexible(
flex: 1,
child: TextFormField( child: TextFormField(
decoration: InputDecoration( decoration: InputDecoration(
hintText: L10n.global().timeMinuteInputHint, hintText: L10n.global().timeMinuteInputHint,
@ -98,12 +99,12 @@ class _SlideshowDialogState extends State<SlideshowDialog> {
initialValue: initialValue:
widget.duration.inMinutes.toString().padLeft(2, "0"), widget.duration.inMinutes.toString().padLeft(2, "0"),
), ),
flex: 1,
), ),
const SizedBox(width: 4), const SizedBox(width: 4),
const Text(":"), const Text(":"),
const SizedBox(width: 4), const SizedBox(width: 4),
Flexible( Flexible(
flex: 1,
child: TextFormField( child: TextFormField(
decoration: InputDecoration( decoration: InputDecoration(
hintText: L10n.global().timeSecondInputHint, hintText: L10n.global().timeSecondInputHint,
@ -130,7 +131,6 @@ class _SlideshowDialogState extends State<SlideshowDialog> {
.toString() .toString()
.padLeft(2, "0"), .padLeft(2, "0"),
), ),
flex: 1,
), ),
], ],
), ),

View file

@ -172,7 +172,9 @@ class _TrashbinViewerState extends State<TrashbinViewer> {
content: Text(L10n.global().restoreSuccessNotification), content: Text(L10n.global().restoreSuccessNotification),
duration: k.snackBarDurationNormal, duration: k.snackBarDurationNormal,
)); ));
Navigator.of(context).pop(); if (mounted) {
Navigator.of(context).pop();
}
} catch (e, stacktrace) { } catch (e, stacktrace) {
_log.shout("Failed while restore trashbin: ${logFilename(file.path)}", e, _log.shout("Failed while restore trashbin: ${logFilename(file.path)}", e,
stacktrace); stacktrace);
@ -314,7 +316,7 @@ class _TrashbinViewerState extends State<TrashbinViewer> {
shouldCleanupAlbum: false, shouldCleanupAlbum: false,
isRemoveOpened: true, isRemoveOpened: true,
); );
if (count > 0) { if (count > 0 && mounted) {
Navigator.of(context).pop(); Navigator.of(context).pop();
} }
} }

View file

@ -599,7 +599,7 @@ class _ViewerState extends State<Viewer>
isRemoveOpened: true, isRemoveOpened: true,
isMoveToTrash: true, isMoveToTrash: true,
); );
if (count > 0) { if (count > 0 && mounted) {
Navigator.of(context).pop(); Navigator.of(context).pop();
} }
} }

View file

@ -398,7 +398,7 @@ packages:
name: flutter_lints name: flutter_lints
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.0.4" version: "2.0.1"
flutter_localizations: flutter_localizations:
dependency: "direct main" dependency: "direct main"
description: flutter description: flutter
@ -571,7 +571,7 @@ packages:
name: lints name: lints
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.0.1" version: "2.0.0"
lists: lists:
dependency: transitive dependency: transitive
description: description:
@ -839,12 +839,12 @@ packages:
source: hosted source: hosted
version: "2.1.0" version: "2.1.0"
quiver: quiver:
dependency: transitive dependency: "direct main"
description: description:
name: quiver name: quiver
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "3.0.1+1" version: "3.1.0"
rxdart: rxdart:
dependency: transitive dependency: transitive
description: description:
@ -1152,12 +1152,12 @@ packages:
source: hosted source: hosted
version: "3.0.1" version: "3.0.1"
uuid: uuid:
dependency: transitive dependency: "direct main"
description: description:
name: uuid name: uuid
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "3.0.5" version: "3.0.6"
vector_math: vector_math:
dependency: transitive dependency: transitive
description: description:

View file

@ -84,6 +84,7 @@ dependencies:
page_view_indicators: ^2.0.0 page_view_indicators: ^2.0.0
path: ^1.8.0 path: ^1.8.0
path_provider: ^2.0.6 path_provider: ^2.0.6
quiver: ^3.1.0
screen_brightness: ^0.1.1 screen_brightness: ^0.1.1
shared_preferences: ^2.0.8 shared_preferences: ^2.0.8
# android/ios only # android/ios only
@ -91,6 +92,7 @@ dependencies:
synchronized: ^3.0.0 synchronized: ^3.0.0
tuple: ^2.0.0 tuple: ^2.0.0
url_launcher: ^6.0.3 url_launcher: ^6.0.3
uuid: ^3.0.6
video_player: video_player:
git: git:
url: https://gitlab.com/nc-photos/flutter-plugins url: https://gitlab.com/nc-photos/flutter-plugins
@ -104,7 +106,7 @@ dependencies:
dev_dependencies: dev_dependencies:
test: any test: any
bloc_test: any bloc_test: any
flutter_lints: ^1.0.4 flutter_lints: ^2.0.1
# flutter_test: # flutter_test:
# sdk: flutter # sdk: flutter
# integration_test: # integration_test: