Fix Dart analysis warnings

This commit is contained in:
Hank Grabowski 2024-07-26 10:15:24 -04:00
parent ea13e1129c
commit 09db8803d6
31 changed files with 103 additions and 102 deletions

View file

@ -1,5 +1,4 @@
import 'package:color_blindness/color_blindness.dart';
import 'package:color_blindness/color_blindness_color_scheme.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';

View file

@ -27,7 +27,8 @@ class _VideoPlayerLibAvControlState extends State<VideoPlayerLibAvControl> {
@override
void initState() {
super.initState();
videoPlayerController = VideoPlayerController.network(widget.videoUrl);
videoPlayerController =
VideoPlayerController.networkUrl(Uri.parse(widget.videoUrl));
}
@override
@ -70,7 +71,7 @@ class _VideoPlayerLibAvControlState extends State<VideoPlayerLibAvControl> {
videoWidth = scaling * size.width;
videoHeight = scaling * size.height;
}
print('Video Width: $videoWidth, Video Height: $videoHeight');
return GestureDetector(
onTap: toggleVideoPlay,
child: Column(

View file

@ -1,5 +1,4 @@
import 'package:flutter/material.dart';
import 'package:logging/logging.dart';
import 'package:provider/provider.dart';
import '../../models/connection.dart';
@ -9,8 +8,6 @@ import '../../utils/active_profile_selector.dart';
import '../image_control.dart';
class MentionAutocompleteOptions extends StatelessWidget {
static final _logger = Logger('$MentionAutocompleteOptions');
const MentionAutocompleteOptions({
super.key,
required this.id,

View file

@ -38,12 +38,16 @@ class NotificationControl extends StatelessWidget {
}
final loadedPost = await manager.refreshStatusChain(notification.iid);
if (loadedPost.isSuccess) {
if (context.mounted) {
context.push('/post/view/${loadedPost.value.id}/${notification.iid}');
}
return;
}
if (context.mounted) {
buildSnackbar(
context, 'Error getting data for notification: ${loadedPost.error}');
}
}
@override
Widget build(BuildContext context) {

View file

@ -5,7 +5,7 @@ import 'package:relatica/controls/padding.dart';
import 'package:relatica/globals.dart';
import 'package:scrollable_positioned_list/scrollable_positioned_list.dart';
import '../../models/TimelineIdentifiers.dart';
import '../../models/timeline_identifiers.dart';
import '../../services/network_status_service.dart';
import '../../services/setting_service.dart';
import '../../services/timeline_manager.dart';

View file

@ -8,7 +8,6 @@ import 'package:result_monad/result_monad.dart';
import '../friendica_client/paged_response.dart';
import '../globals.dart';
import '../models/TimelineIdentifiers.dart';
import '../models/auth/profile.dart';
import '../models/circle_data.dart';
import '../models/connection.dart';
@ -22,6 +21,7 @@ import '../models/media_attachment_uploads/image_types_enum.dart';
import '../models/search_results.dart';
import '../models/search_types.dart';
import '../models/timeline_entry.dart';
import '../models/timeline_identifiers.dart';
import '../models/user_notification.dart';
import '../models/visibility.dart';
import '../serializers/friendica/direct_message_friendica_extensions.dart';

View file

@ -36,7 +36,6 @@ void main() async {
getIt.registerSingleton<LogService>(logService);
// await dotenv.load(fileName: '.env');
const enablePreview = false;
Logger.root.level = Level.OFF;
Logger.root.onRecord.listen((event) {
logService.add(event);
@ -70,7 +69,6 @@ class App extends StatelessWidget {
return AnimatedBuilder(
builder: (context, child) {
Logger.root.level = settingsService.logLevel;
print('Log level: ${settingsService.logLevel}');
return Portal(
child: MultiProvider(
providers: [

View file

@ -1,6 +1,6 @@
import 'dart:convert';
import 'package:result_monad/src/result_monad_base.dart';
import 'package:result_monad/result_monad.dart';
import 'package:uuid/uuid.dart';
import '../exec_error.dart';

View file

@ -1,5 +1,5 @@
import 'TimelineIdentifiers.dart';
import 'entry_tree_item.dart';
import 'timeline_identifiers.dart';
const defaultLowestId = 9223372036854775807;
const defaultHighestId = 0;

View file

@ -54,9 +54,11 @@ class _CircleAddUsersScreenState extends State<CircleAddUsersScreen> {
onSuccess: (_) => 'Added $messageBase',
onError: (error) => 'Error adding $messageBase: $error',
);
if (mounted) {
buildSnackbar(context, message);
}
}
}
@override
Widget build(BuildContext context) {

View file

@ -81,9 +81,11 @@ class _CircleEditorScreenState extends State<CircleEditorScreen> {
onSuccess: (_) => 'Removed $messageBase',
onError: (error) => 'Error removing $messageBase: $error',
);
if (mounted) {
buildSnackbar(context, message);
}
}
}
@override
void initState() {

View file

@ -178,7 +178,7 @@ class _EditorScreenState extends State<EditorScreen> {
return;
}
if (mounted && context.canPop()) {
if (context.mounted && context.canPop()) {
context.pop();
}
}
@ -220,7 +220,7 @@ class _EditorScreenState extends State<EditorScreen> {
return;
}
if (mounted && context.canPop()) {
if (context.mounted && context.canPop()) {
context.pop();
}
}
@ -254,7 +254,6 @@ class _EditorScreenState extends State<EditorScreen> {
} else {
final mainBody = Padding(
padding: const EdgeInsets.all(8.0),
child: Container(
child: SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
@ -300,7 +299,6 @@ class _EditorScreenState extends State<EditorScreen> {
],
),
),
),
);
if (widget.forEditing && !loaded) {

View file

@ -133,11 +133,13 @@ class _FilterEditorScreenState extends State<FilterEditorScreen> {
}
if (filteredAuthors.contains(newConnection)) {
if (context.mounted) {
buildSnackbar(
context,
'Already filtering on ${newConnection.handle}',
);
}
}
setState(() {
filteredAuthors.add(newConnection);
});

View file

@ -10,7 +10,7 @@ import '../controls/responsive_max_width.dart';
import '../controls/standard_app_drawer.dart';
import '../controls/timeline/timeline_panel.dart';
import '../globals.dart';
import '../models/TimelineIdentifiers.dart';
import '../models/timeline_identifiers.dart';
import '../services/auth_service.dart';
import '../services/network_status_service.dart';
import '../services/timeline_manager.dart';

View file

@ -106,7 +106,7 @@ class _ImageEditorScreenState extends State<ImageEditorScreen> {
context,
'Cancel changes?',
);
if (ok == true && mounted) {
if (ok == true && context.mounted) {
context.pop();
}
},

View file

@ -67,7 +67,7 @@ class _MediaViewerScreenState extends State<MediaViewerScreen> {
final bytesResult =
await RemoteFileClient(getIt<AccountsService>().currentProfile)
.getFileBytes(attachment.uri);
if (bytesResult.isFailure && mounted) {
if (bytesResult.isFailure && context.mounted) {
buildSnackbar(context,
'Error getting full size version of file: ${bytesResult.error}');
return;
@ -75,10 +75,13 @@ class _MediaViewerScreenState extends State<MediaViewerScreen> {
if (Platform.isAndroid || Platform.isIOS) {
final saveResult = await ImageGallerySaver.saveImage(bytesResult.value);
if (context.mounted) {
if (saveResult['isSuccess']) {
buildSnackbar(context, 'Image saved to gallery');
} else {
buildSnackbar(context, 'Unable to save to gallery, check permissions');
buildSnackbar(
context, 'Unable to save to gallery, check permissions');
}
}
} else {
final location = await FilePicker.platform.saveFile(

View file

@ -168,7 +168,9 @@ class NotificationsScreen extends StatelessWidget {
final message = (await manager.markAllAsRead()).fold(
onSuccess: (_) => 'Marked all notifications as read',
onError: (error) => 'Error marking notifications: $error');
if (context.mounted) {
buildSnackbar(context, message);
}
}
}
}

View file

@ -30,6 +30,7 @@ class _PostScreenState extends State<PostScreen> {
@override
void initState() {
super.initState();
Future.delayed(const Duration(milliseconds: 500), () async {
getIt<ActiveProfileSelector<TimelineManager>>()
.activeEntry

View file

@ -62,13 +62,11 @@ class _SearchScreenState extends State<SearchScreen> {
}
Future<void> updateSearchResults(Profile profile, {bool reset = true}) async {
print('Starting update');
if (reset) {
nextPage = PagingData(limit: limit);
searchResult = SearchResults.empty();
}
print('Search $searchType on ${searchTextController.text}');
final result = await SearchClient(profile)
.search(searchType, searchTextController.text, nextPage);
result.match(
@ -80,12 +78,9 @@ class _SearchScreenState extends State<SearchScreen> {
onError: (error) =>
buildSnackbar(context, 'Error getting search result: $error'),
);
print('Ending update');
}
clearSearchResults() {
print('Clearing results');
setState(() {
searchResult = SearchResults.empty();
searchTextController.text = '';
@ -329,7 +324,7 @@ class _SearchScreenState extends State<SearchScreen> {
await cm.fullRefresh(connection);
}
});
if (context.mounted) {
if (mounted) {
context.pushNamed(ScreenPaths.userProfile,
pathParameters: {'id': connection.id});
}

View file

@ -219,7 +219,7 @@ class NetworkCapabilitiesWidget extends StatelessWidget {
}
return ListTile(
title: Row(
title: const Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text('Network Capabilities'),
@ -230,7 +230,7 @@ class NetworkCapabilitiesWidget extends StatelessWidget {
],
),
subtitle: DataTable(
columns: [
columns: const [
DataColumn(label: Text('Network')),
DataColumn(label: Text('React')),
DataColumn(label: Text('Reshare')),

View file

@ -274,7 +274,7 @@ class _SignInScreenState extends State<SignInScreen> {
onPressed: () async => await _signIn(context),
child: const Text('Signin'),
)
: SizedBox(),
: const SizedBox(),
const VerticalPadding(),
Text(
'Logged out:',
@ -383,14 +383,13 @@ class _SignInScreenState extends State<SignInScreen> {
final confirm = await showYesNoDialog(context,
'Are you sure you want to logout and delete *all* accounts? This cannot be undone.') ??
false;
print(confirm);
if (!confirm) {
return;
}
await getIt<AccountsService>().clearAllProfiles();
},
child: Text('Clear All')),
child: const Text('Clear All')),
],
),
),
@ -438,16 +437,16 @@ class _SignInScreenState extends State<SignInScreen> {
creds,
withNotification: false,
);
if (mounted && result.isFailure) {
if (context.mounted && result.isFailure) {
buildSnackbar(context, 'Error signing in: ${result.error}');
return;
}
if (mounted) {
if (context.mounted) {
buildSnackbar(context, 'Account signed in...');
}
await getIt<AccountsService>().setActiveProfile(result.value);
if (mounted) {
if (context.mounted) {
context.goNamed(ScreenPaths.timelines);
}
}

View file

@ -4,7 +4,7 @@ import '../controls/linear_status_indicator.dart';
import '../controls/standard_appbar.dart';
import '../controls/timeline/timeline_panel.dart';
import '../globals.dart';
import '../models/TimelineIdentifiers.dart';
import '../models/timeline_identifiers.dart';
import '../services/network_status_service.dart';
import '../services/timeline_manager.dart';
import '../utils/active_profile_selector.dart';

View file

@ -189,7 +189,7 @@ class _UserProfileScreenState extends State<UserProfileScreen> {
} else {
await manager.removeUserFromCircle(g, profile);
}
if (mounted) {
if (context.mounted) {
buildSnackbar(context, "User's Circles Updated");
}

View file

@ -322,7 +322,7 @@ class ConnectionsManager extends ChangeNotifier {
Result<List<CircleData>, ExecError> getCirclesForUser(String id) {
final result = circlesRepo.getCirclesForUser(id);
if (result.isSuccess) {
print("Circles for user $id: $result");
_logger.finer("Circles for user $id: $result");
return result;
}

View file

@ -6,13 +6,13 @@ import 'package:result_monad/result_monad.dart';
import '../friendica_client/friendica_client.dart';
import '../friendica_client/paging_data.dart';
import '../globals.dart';
import '../models/TimelineIdentifiers.dart';
import '../models/auth/profile.dart';
import '../models/entry_tree_item.dart';
import '../models/exec_error.dart';
import '../models/image_entry.dart';
import '../models/media_attachment_uploads/new_entry_media_items.dart';
import '../models/timeline_entry.dart';
import '../models/timeline_identifiers.dart';
import '../models/visibility.dart';
import '../utils/active_profile_selector.dart';
import 'media_upload_attachment_helper.dart';

View file

@ -80,8 +80,9 @@ class NotificationsManager extends ChangeNotifier {
first = false;
result.match(
onSuccess: (nd) => print('Got ${nd.data.length} notifications'),
onError: (e) => debugPrint('Error getting notification: $e'));
onSuccess: (nd) =>
_logger.fine('Got ${nd.data.length} notifications'),
onError: (e) => _logger.severe('Error getting notification: $e'));
final response = result.getValueOrElse(() => PagedResponse([]));
response.data
.where((n) =>

View file

@ -4,7 +4,6 @@ import 'package:result_monad/result_monad.dart';
import '../data/interfaces/circles_repo_intf.dart';
import '../friendica_client/friendica_client.dart';
import '../models/TimelineIdentifiers.dart';
import '../models/auth/profile.dart';
import '../models/circle_data.dart';
import '../models/entry_tree_item.dart';
@ -13,6 +12,7 @@ import '../models/image_entry.dart';
import '../models/media_attachment_uploads/new_entry_media_items.dart';
import '../models/timeline.dart';
import '../models/timeline_entry.dart';
import '../models/timeline_identifiers.dart';
import '../models/visibility.dart';
import 'entry_manager_service.dart';

View file

@ -2,10 +2,10 @@ import '../models/entry_tree_item.dart';
import '../models/flattened_tree_item.dart';
extension FlatteningExtensions on EntryTreeItem {
static const BaseLevel = 0;
static const baseLevel = 0;
List<FlattenedTreeItem> flatten(
{int level = BaseLevel, bool topLevelOnly = false}) {
{int level = baseLevel, bool topLevelOnly = false}) {
final items = <FlattenedTreeItem>[];
final myEntry = FlattenedTreeItem(
timelineEntry: entry,
@ -23,7 +23,7 @@ extension FlatteningExtensions on EntryTreeItem {
c1.entry.creationTimestamp.compareTo(c2.entry.creationTimestamp));
for (final child in sortedChildren) {
int childLevel = level + 1;
if (child.entry.authorId == entry.authorId && level != BaseLevel) {
if (child.entry.authorId == entry.authorId && level != baseLevel) {
childLevel = level;
}

View file

@ -38,9 +38,7 @@ void _updateSwapTagLinks(Node node, List<String> tags) {
if (hasExpectedTag) {
final profile = getIt<AccountsService>().currentProfile;
final newTagUrl = generateTagUrlFromProfile(profile, tag);
print(node.attributes['href']);
node.attributes['href'] = newTagUrl.toString();
print(node.attributes['href']);
}
}
for (var n in node.nodes) {

View file

@ -1,6 +1,6 @@
import 'dart:convert';
import 'package:collection/collection.dart';
import 'package:collection/collection.dart' show MapEquality;
import 'package:http/http.dart' as http;
import 'package:logging/logging.dart';
import 'package:result_monad/result_monad.dart';
@ -149,7 +149,6 @@ class _ExpiringRequestCache {
response,
);
print('Adding cached response for $type => $url');
_responses[cacheEntry] = cacheEntry;
}