mirror of
https://github.com/GitJournal/GitJournal.git
synced 2025-06-26 08:36:50 +08:00
null safety++
This commit is contained in:
@ -1,4 +1,3 @@
|
|||||||
import 'dart:io';
|
|
||||||
import 'dart:isolate';
|
import 'dart:isolate';
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
// @dart=2.9
|
|
||||||
|
|
||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
@ -33,17 +31,17 @@ class EditorBottomBar extends StatelessWidget {
|
|||||||
final Func0<void> onRedoSelected;
|
final Func0<void> onRedoSelected;
|
||||||
|
|
||||||
EditorBottomBar({
|
EditorBottomBar({
|
||||||
@required this.editor,
|
required this.editor,
|
||||||
@required this.editorState,
|
required this.editorState,
|
||||||
@required this.parentFolder,
|
required this.parentFolder,
|
||||||
@required this.allowEdits,
|
required this.allowEdits,
|
||||||
@required this.zenMode,
|
required this.zenMode,
|
||||||
@required this.onZenModeChanged,
|
required this.onZenModeChanged,
|
||||||
@required this.metaDataEditable,
|
required this.metaDataEditable,
|
||||||
@required this.onUndoSelected,
|
required this.onUndoSelected,
|
||||||
@required this.onRedoSelected,
|
required this.onRedoSelected,
|
||||||
@required this.undoAllowed,
|
required this.undoAllowed,
|
||||||
@required this.redoAllowed,
|
required this.redoAllowed,
|
||||||
});
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@ -92,7 +90,7 @@ class EditorBottomBar extends StatelessWidget {
|
|||||||
maintainInteractivity: false,
|
maintainInteractivity: false,
|
||||||
),
|
),
|
||||||
const Spacer(),
|
const Spacer(),
|
||||||
if (undoAllowed != null)
|
if (undoAllowed)
|
||||||
IconButton(
|
IconButton(
|
||||||
icon: const Icon(Icons.undo),
|
icon: const Icon(Icons.undo),
|
||||||
onPressed: undoAllowed ? onUndoSelected : null,
|
onPressed: undoAllowed ? onUndoSelected : null,
|
||||||
@ -105,7 +103,7 @@ class EditorBottomBar extends StatelessWidget {
|
|||||||
editor.moveNoteToFolderSelected(note);
|
editor.moveNoteToFolderSelected(note);
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
if (redoAllowed != null)
|
if (redoAllowed)
|
||||||
IconButton(
|
IconButton(
|
||||||
icon: const Icon(Icons.redo),
|
icon: const Icon(Icons.redo),
|
||||||
onPressed: redoAllowed ? onRedoSelected : null,
|
onPressed: redoAllowed ? onRedoSelected : null,
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
// @dart=2.9
|
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
import 'package:easy_localization/easy_localization.dart';
|
import 'package:easy_localization/easy_localization.dart';
|
||||||
@ -91,9 +89,9 @@ class FileSystemView extends StatelessWidget {
|
|||||||
|
|
||||||
FileSystemView(
|
FileSystemView(
|
||||||
this.folder, {
|
this.folder, {
|
||||||
@required this.onFolderSelected,
|
required this.onFolderSelected,
|
||||||
@required this.onNoteSelected,
|
required this.onNoteSelected,
|
||||||
@required this.onIgnoredFileSelected,
|
required this.onIgnoredFileSelected,
|
||||||
});
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
// @dart=2.9
|
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
import 'package:easy_localization/easy_localization.dart';
|
import 'package:easy_localization/easy_localization.dart';
|
||||||
@ -12,12 +10,13 @@ import 'package:time/time.dart';
|
|||||||
import 'package:gitjournal/app_settings.dart';
|
import 'package:gitjournal/app_settings.dart';
|
||||||
import 'package:gitjournal/repository.dart';
|
import 'package:gitjournal/repository.dart';
|
||||||
import 'package:gitjournal/settings.dart';
|
import 'package:gitjournal/settings.dart';
|
||||||
|
import 'package:gitjournal/utils/logger.dart';
|
||||||
|
|
||||||
class AppDrawerHeader extends StatelessWidget {
|
class AppDrawerHeader extends StatelessWidget {
|
||||||
final Func0<void> repoListToggled;
|
final Func0<void> repoListToggled;
|
||||||
|
|
||||||
AppDrawerHeader({
|
AppDrawerHeader({
|
||||||
@required this.repoListToggled,
|
required this.repoListToggled,
|
||||||
});
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@ -78,8 +77,8 @@ class AppDrawerHeader extends StatelessWidget {
|
|||||||
|
|
||||||
class _CurrentRepo extends StatefulWidget {
|
class _CurrentRepo extends StatefulWidget {
|
||||||
const _CurrentRepo({
|
const _CurrentRepo({
|
||||||
Key key,
|
Key? key,
|
||||||
@required this.repoListToggled,
|
required this.repoListToggled,
|
||||||
}) : super(key: key);
|
}) : super(key: key);
|
||||||
|
|
||||||
final Func0<void> repoListToggled;
|
final Func0<void> repoListToggled;
|
||||||
@ -90,8 +89,8 @@ class _CurrentRepo extends StatefulWidget {
|
|||||||
|
|
||||||
class __CurrentRepoState extends State<_CurrentRepo>
|
class __CurrentRepoState extends State<_CurrentRepo>
|
||||||
with SingleTickerProviderStateMixin {
|
with SingleTickerProviderStateMixin {
|
||||||
Animation _animation;
|
late Animation _animation;
|
||||||
AnimationController controller;
|
late AnimationController controller;
|
||||||
|
|
||||||
var _gitRemoteUrl = "";
|
var _gitRemoteUrl = "";
|
||||||
var _repoFolderName = "";
|
var _repoFolderName = "";
|
||||||
@ -138,7 +137,7 @@ class __CurrentRepoState extends State<_CurrentRepo>
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
RotationTransition(
|
RotationTransition(
|
||||||
turns: _animation,
|
turns: _animation as Animation<double>,
|
||||||
child: IconButton(
|
child: IconButton(
|
||||||
icon: const FaIcon(FontAwesomeIcons.angleDown),
|
icon: const FaIcon(FontAwesomeIcons.angleDown),
|
||||||
onPressed: _pressed,
|
onPressed: _pressed,
|
||||||
@ -172,12 +171,16 @@ class __CurrentRepoState extends State<_CurrentRepo>
|
|||||||
|
|
||||||
var repo = context.watch<GitJournalRepo>();
|
var repo = context.watch<GitJournalRepo>();
|
||||||
var repoPath = await repo.settings.buildRepoPath(repo.gitBaseDirectory);
|
var repoPath = await repo.settings.buildRepoPath(repo.gitBaseDirectory);
|
||||||
|
if (repoPath == null) {
|
||||||
|
Log.e("Failed to build repo path");
|
||||||
|
return;
|
||||||
|
}
|
||||||
_repoFolderName = p.basename(repoPath);
|
_repoFolderName = p.basename(repoPath);
|
||||||
|
|
||||||
var remoteConfigs = await repo.remoteConfigs();
|
var remoteConfigs = await repo.remoteConfigs();
|
||||||
if (!mounted) return;
|
if (!mounted) return;
|
||||||
|
|
||||||
if (remoteConfigs == null || remoteConfigs.isEmpty) {
|
if (remoteConfigs.isEmpty) {
|
||||||
setState(() {
|
setState(() {
|
||||||
_gitRemoteUrl = tr("drawer.remote");
|
_gitRemoteUrl = tr("drawer.remote");
|
||||||
});
|
});
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
// @dart=2.9
|
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
/// A Scroll view which occupies the full height of the parent, and doesn't
|
/// A Scroll view which occupies the full height of the parent, and doesn't
|
||||||
@ -9,7 +7,7 @@ class EditorScrollView extends StatelessWidget {
|
|||||||
final EdgeInsetsGeometry padding;
|
final EdgeInsetsGeometry padding;
|
||||||
|
|
||||||
EditorScrollView({
|
EditorScrollView({
|
||||||
@required this.child,
|
required this.child,
|
||||||
this.padding = const EdgeInsets.all(16.0),
|
this.padding = const EdgeInsets.all(16.0),
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
// @dart=2.9
|
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
import 'package:easy_localization/easy_localization.dart';
|
import 'package:easy_localization/easy_localization.dart';
|
||||||
@ -38,9 +36,9 @@ class FolderTreeView extends StatelessWidget {
|
|||||||
final FolderSelectedCallback onFolderEntered;
|
final FolderSelectedCallback onFolderEntered;
|
||||||
|
|
||||||
FolderTreeView({
|
FolderTreeView({
|
||||||
Key key,
|
Key? key,
|
||||||
@required this.rootFolder,
|
required this.rootFolder,
|
||||||
@required this.onFolderEntered,
|
required this.onFolderEntered,
|
||||||
}) : super(key: key);
|
}) : super(key: key);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@ -61,8 +59,8 @@ class FolderMiniTile extends StatefulWidget {
|
|||||||
final FolderSelectedCallback onTap;
|
final FolderSelectedCallback onTap;
|
||||||
|
|
||||||
FolderMiniTile({
|
FolderMiniTile({
|
||||||
@required this.folder,
|
required this.folder,
|
||||||
@required this.onTap,
|
required this.onTap,
|
||||||
});
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@ -132,7 +130,7 @@ class FolderMiniTileState extends State<FolderMiniTile> {
|
|||||||
var children = <FolderMiniTile>[];
|
var children = <FolderMiniTile>[];
|
||||||
widget.folder.subFolders.forEach((folder) {
|
widget.folder.subFolders.forEach((folder) {
|
||||||
children.add(FolderMiniTile(
|
children.add(FolderMiniTile(
|
||||||
folder: folder,
|
folder: folder as NotesFolderFS,
|
||||||
onTap: widget.onTap,
|
onTap: widget.onTap,
|
||||||
));
|
));
|
||||||
});
|
});
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
// @dart=2.9
|
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
@ -13,14 +11,15 @@ class JournalEditorHeader extends StatelessWidget {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
if (note.created == null) {
|
var created = note.created;
|
||||||
|
if (created == null) {
|
||||||
return Container();
|
return Container();
|
||||||
}
|
}
|
||||||
var dateStr = DateFormat('MMMM, yyyy').format(note.created);
|
var dateStr = DateFormat('MMMM, yyyy').format(created);
|
||||||
var timeStr = DateFormat('EEEE HH:mm').format(note.created);
|
var timeStr = DateFormat('EEEE HH:mm').format(created);
|
||||||
|
|
||||||
var bigNum = Text(
|
var bigNum = Text(
|
||||||
note.created.day.toString(),
|
created.day.toString(),
|
||||||
style: const TextStyle(fontSize: 40.0),
|
style: const TextStyle(fontSize: 40.0),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
// @dart=2.9
|
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
||||||
@ -7,10 +5,12 @@ import 'package:function_types/function_types.dart';
|
|||||||
|
|
||||||
import 'package:gitjournal/screens/note_editor.dart';
|
import 'package:gitjournal/screens/note_editor.dart';
|
||||||
|
|
||||||
|
// FIXME: Remove note_editor import!!
|
||||||
|
|
||||||
class NewNoteNavBar extends StatelessWidget {
|
class NewNoteNavBar extends StatelessWidget {
|
||||||
final Func1<EditorType, void> onPressed;
|
final Func1<EditorType, void> onPressed;
|
||||||
|
|
||||||
NewNoteNavBar({@required this.onPressed});
|
NewNoteNavBar({required this.onPressed});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
Reference in New Issue
Block a user