Replace dart:io with universal_io

Platform from dart:io cannot be used on the web for reasons. And this
way we get a fake File/Directory class which we can use for atleast
running the web version, even if it won't work.
This commit is contained in:
Vishesh Handa
2021-07-30 11:33:38 +02:00
parent 72e9de29de
commit 2505d00dfb
49 changed files with 56 additions and 67 deletions

View File

@ -1,7 +1,7 @@
import 'dart:io' show Platform;
import 'package:flutter/material.dart';
import 'package:universal_io/io.dart' show Platform;
import 'package:gitjournal/app.dart';
import 'package:gitjournal/error_reporting.dart';
import 'package:gitjournal/utils/logger.dart';

View File

@ -1,6 +1,5 @@
import 'dart:io' show Platform;
import 'package:device_info_plus/device_info_plus.dart';
import 'package:universal_io/io.dart' show Platform;
// - https://support.google.com/firebase/answer/7029846?hl=en
// - https://support.google.com/firebase/answer/6317485?hl=en

View File

@ -1,11 +1,11 @@
import 'dart:async';
import 'dart:convert';
import 'dart:io' show HttpHeaders;
import 'package:flutter/foundation.dart' as foundation;
import 'package:flutter/services.dart';
import 'package:http/http.dart' as http;
import 'package:universal_io/io.dart' show HttpHeaders;
import 'package:url_launcher/url_launcher.dart';
import 'package:gitjournal/utils/logger.dart';

View File

@ -1,12 +1,12 @@
import 'dart:async';
import 'dart:convert';
import 'dart:io' show HttpHeaders;
import 'dart:math';
import 'package:flutter/foundation.dart' as foundation;
import 'package:flutter/services.dart';
import 'package:http/http.dart' as http;
import 'package:universal_io/io.dart' show HttpHeaders;
import 'package:url_launcher/url_launcher.dart';
import 'package:gitjournal/utils/logger.dart';

View File

@ -1,5 +1,4 @@
import 'dart:async';
import 'dart:io' show Platform;
import 'package:flutter/foundation.dart' as foundation;
import 'package:flutter/material.dart';
@ -15,6 +14,7 @@ import 'package:quick_actions/quick_actions.dart';
import 'package:receive_sharing_intent/receive_sharing_intent.dart';
import 'package:sentry_flutter/sentry_flutter.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:universal_io/io.dart' show Platform;
import 'package:gitjournal/analytics/analytics.dart';
import 'package:gitjournal/app_router.dart';

View File

@ -1,10 +1,10 @@
import 'dart:async';
import 'dart:io' show Platform, Directory;
import 'package:dart_git/dart_git.dart';
import 'package:dart_git/utils/result.dart';
import 'package:git_bindings/git_bindings.dart' as gb;
import 'package:path/path.dart' as p;
import 'package:universal_io/io.dart' show Platform, Directory;
import 'package:gitjournal/core/note.dart';
import 'package:gitjournal/core/notes_folder_fs.dart';

View File

@ -1,8 +1,8 @@
import 'dart:io';
import 'dart:isolate';
import 'package:dart_git/utils/result.dart';
import 'package:synchronized/synchronized.dart';
import 'package:universal_io/io.dart';
import 'package:gitjournal/core/md_yaml_doc.dart';
import 'package:gitjournal/core/md_yaml_doc_codec.dart';

View File

@ -14,10 +14,9 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
import 'dart:io';
import 'package:dart_git/utils/result.dart';
import 'package:path/path.dart' as p;
import 'package:universal_io/io.dart';
import 'package:uuid/uuid.dart';
import 'package:gitjournal/core/links_loader.dart';

View File

@ -1,10 +1,10 @@
import 'dart:convert';
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:collection/collection.dart';
import 'package:path/path.dart' as p;
import 'package:universal_io/io.dart';
import 'package:gitjournal/core/note.dart';
import 'package:gitjournal/core/notes_folder_config.dart';

View File

@ -1,10 +1,10 @@
import 'dart:collection';
import 'dart:io';
import 'package:easy_localization/easy_localization.dart';
import 'package:path/path.dart' as p;
import 'package:path/path.dart';
import 'package:synchronized/synchronized.dart';
import 'package:universal_io/io.dart';
import 'package:gitjournal/utils/logger.dart';
import 'note.dart';

View File

@ -15,7 +15,6 @@ limitations under the License.
*/
import 'dart:developer';
import 'dart:io';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
@ -24,6 +23,7 @@ import 'package:flutter/widgets.dart';
import 'package:easy_localization/easy_localization.dart';
import 'package:org_flutter/org_flutter.dart';
import 'package:path/path.dart';
import 'package:universal_io/io.dart';
import 'package:url_launcher/url_launcher.dart';
import 'package:gitjournal/core/note.dart';

View File

@ -1,5 +1,4 @@
import 'dart:async';
import 'dart:io' show Platform;
import 'package:flutter/foundation.dart';
@ -8,6 +7,7 @@ import 'package:package_info_plus/package_info_plus.dart';
import 'package:sentry/sentry.dart';
import 'package:sentry_flutter/sentry_flutter.dart';
import 'package:stack_trace/stack_trace.dart';
import 'package:universal_io/io.dart' show Platform;
import 'package:gitjournal/.env.dart';
import 'package:gitjournal/app.dart';

View File

@ -1,13 +1,13 @@
/*
import 'dart:async';
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:bonsoir/bonsoir.dart';
import 'package:device_info/device_info.dart';
import 'package:provider/provider.dart';
import 'package:universal_io/io.dart';
/// Plugin's main method.
void main() => runApp(BonsoirExampleMainWidget());

View File

@ -1,6 +1,5 @@
import 'dart:io' show Platform;
import 'package:easy_localization/easy_localization.dart';
import 'package:universal_io/io.dart' show Platform;
class Features {
// Make the desktop version always pro, for now.

View File

@ -1,9 +1,9 @@
import 'dart:convert';
import 'dart:io' show Platform;
import 'package:http/http.dart' as http;
import 'package:in_app_purchase/in_app_purchase.dart';
import 'package:in_app_purchase/store_kit_wrappers.dart';
import 'package:universal_io/io.dart' show Platform;
import 'package:gitjournal/app.dart';
import 'package:gitjournal/error_reporting.dart';

View File

@ -1,5 +1,4 @@
import 'dart:async';
import 'dart:io';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
@ -13,6 +12,7 @@ import 'package:path/path.dart' as p;
import 'package:shared_preferences/shared_preferences.dart';
import 'package:synchronized/synchronized.dart';
import 'package:time/time.dart';
import 'package:universal_io/io.dart';
import 'package:gitjournal/analytics/analytics.dart';
import 'package:gitjournal/core/git_repo.dart';

View File

@ -1,5 +1,3 @@
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
@ -7,6 +5,7 @@ import 'package:dart_git/dart_git.dart';
import 'package:easy_localization/easy_localization.dart';
import 'package:path/path.dart' as p;
import 'package:provider/provider.dart';
import 'package:universal_io/io.dart';
import 'package:gitjournal/repository.dart';
import 'package:gitjournal/settings/git_config.dart';

View File

@ -1,7 +1,6 @@
import 'dart:io';
import 'package:path/path.dart' as p;
import 'package:shared_preferences/shared_preferences.dart';
import 'package:universal_io/io.dart';
import 'package:gitjournal/settings/settings.dart';
import 'package:gitjournal/utils/logger.dart';

View File

@ -15,8 +15,6 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
@ -29,6 +27,7 @@ import 'package:path/path.dart' as p;
import 'package:path_provider/path_provider.dart';
import 'package:permission_handler/permission_handler.dart';
import 'package:provider/provider.dart';
import 'package:universal_io/io.dart';
import 'package:url_launcher/url_launcher.dart';
import 'package:gitjournal/core/notes_folder_config.dart';

View File

@ -1,10 +1,9 @@
import 'dart:io' show Platform;
import 'package:flutter/foundation.dart';
import 'package:icloud_documents_path/icloud_documents_path.dart';
import 'package:path/path.dart' as p;
import 'package:shared_preferences/shared_preferences.dart';
import 'package:universal_io/io.dart' show Platform;
import 'package:gitjournal/settings/settings_sharedpref.dart';

View File

@ -1,10 +1,10 @@
import 'dart:async';
import 'dart:io' show Directory, File;
import 'package:dart_git/dart_git.dart';
import 'package:dart_git/exceptions.dart';
import 'package:function_types/function_types.dart';
import 'package:path/path.dart' as p;
import 'package:universal_io/io.dart' show Directory, File;
import 'package:gitjournal/utils/logger.dart';

View File

@ -1,4 +1,4 @@
import 'dart:io' show Platform;
import 'package:universal_io/io.dart' show Platform;
import 'clone_gitExec.dart' as git_exec;
import 'clone_libgit2.dart' as libgit2;

View File

@ -1,9 +1,8 @@
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:easy_localization/easy_localization.dart';
import 'package:file_picker/file_picker.dart';
import 'package:universal_io/io.dart';
import 'package:gitjournal/utils/logger.dart';

View File

@ -1,5 +1,3 @@
import 'dart:io' show Platform, Directory;
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
@ -10,6 +8,7 @@ import 'package:function_types/function_types.dart';
import 'package:path/path.dart' as p;
import 'package:provider/provider.dart';
import 'package:time/time.dart';
import 'package:universal_io/io.dart' show Platform, Directory;
import 'package:url_launcher/url_launcher.dart';
import 'package:gitjournal/analytics/analytics.dart';

View File

@ -1,9 +1,9 @@
import 'dart:convert';
import 'dart:io';
import 'package:basic_utils/basic_utils.dart';
import 'package:git_bindings/git_bindings.dart' as gb;
import 'package:path/path.dart' as p;
import 'package:universal_io/io.dart';
import 'package:gitjournal/ssh/binary_length_value.dart';
import 'package:gitjournal/utils/logger.dart';

View File

@ -1,6 +1,5 @@
import 'dart:convert';
import 'dart:io';
import 'package:universal_io/io.dart';
import 'package:cryptography/cryptography.dart';
import './binary_length_value.dart';

View File

@ -1,10 +1,10 @@
// GIT_SSH_COMMAND='ssh -i private_key_file -o IdentitiesOnly=yes' git clone user@host:repo.git
import 'dart:convert';
import 'dart:io';
import 'package:dart_git/utils/file_extensions.dart';
import 'package:dart_git/utils/result.dart';
import 'package:universal_io/io.dart';
import 'package:gitjournal/utils/logger.dart';

View File

@ -1,5 +1,4 @@
import 'dart:convert';
import 'dart:io';
import 'package:flutter/foundation.dart' as foundation;
@ -8,6 +7,7 @@ import 'package:path/path.dart' as p;
import 'package:path_provider/path_provider.dart';
import 'package:stack_trace/stack_trace.dart';
import 'package:time/time.dart';
import 'package:universal_io/io.dart';
// FIXME: Only catch Exception? type. Something else needs to be done with Errors
class Log {

View File

@ -1,5 +1,3 @@
import 'dart:io' show Platform;
import 'package:flutter/material.dart';
import 'package:easy_localization/easy_localization.dart';
@ -9,6 +7,7 @@ import 'package:launch_review/launch_review.dart';
import 'package:provider/provider.dart';
import 'package:share_plus/share_plus.dart';
import 'package:time/time.dart';
import 'package:universal_io/io.dart' show Platform;
import 'package:url_launcher/url_launcher.dart';
import 'package:gitjournal/analytics/analytics.dart';

View File

@ -14,7 +14,6 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
import 'dart:io';
import 'dart:ui';
import 'package:flutter/cupertino.dart';
@ -25,6 +24,7 @@ import 'package:flutter/widgets.dart';
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter_cache_manager/flutter_cache_manager.dart';
import 'package:provider/provider.dart';
import 'package:universal_io/io.dart';
import 'package:gitjournal/settings/markdown_renderer_config.dart';
import 'package:gitjournal/utils/logger.dart';

View File

@ -14,13 +14,13 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
import 'dart:io';
import 'dart:ui';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:flutter_svg/svg.dart';
import 'package:universal_io/io.dart';
class ThemableImage extends StatelessWidget {
final double? width;

View File

@ -2,13 +2,13 @@
import 'dart:async';
import 'dart:convert';
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:crypto/crypto.dart';
import 'package:mutex/mutex.dart';
import 'package:path/path.dart' as p;
import 'package:universal_io/io.dart';
class KatexWidget extends StatefulWidget {
final String input;

View File

@ -1,10 +1,9 @@
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:easy_localization/easy_localization.dart';
import 'package:path/path.dart' as p;
import 'package:path/path.dart';
import 'package:universal_io/io.dart';
class RenameDialog extends StatefulWidget {
final String oldPath;

View File

@ -1370,6 +1370,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "1.3.0"
universal_io:
dependency: "direct main"
description:
name: universal_io
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.4"
url_launcher:
dependency: "direct main"
description:

View File

@ -80,6 +80,7 @@ dependencies:
fs_shim: ^2.0.1+2
grpc: ^3.0.0
protobuf: ^2.0.0
universal_io: ^2.0.4
dev_dependencies:
#flutter_driver:

View File

@ -1,7 +1,7 @@
#!/usr/bin/env dart
import 'dart:convert';
import 'dart:io';
import 'package:universal_io/io.dart';
Future<void> main() async {
final config = {

View File

@ -1,8 +1,8 @@
import 'dart:convert';
import 'dart:io';
import 'package:path/path.dart';
import 'package:test/test.dart';
import 'package:universal_io/io.dart';
import 'package:gitjournal/apis/githost_factory.dart';
import 'package:gitjournal/apis/github.dart';

View File

@ -1,8 +1,8 @@
import 'dart:convert';
import 'dart:io';
import 'package:path/path.dart';
import 'package:test/test.dart';
import 'package:universal_io/io.dart';
import 'package:gitjournal/apis/githost_factory.dart';
import 'package:gitjournal/apis/gitlab.dart';

View File

@ -1,8 +1,7 @@
import 'dart:io';
import 'package:path/path.dart' as p;
import 'package:shared_preferences/shared_preferences.dart';
import 'package:test/test.dart';
import 'package:universal_io/io.dart';
import 'package:gitjournal/core/checklist.dart';
import 'package:gitjournal/core/note.dart';

View File

@ -1,9 +1,9 @@
import 'dart:io';
import 'dart:math';
import 'package:path/path.dart' as p;
import 'package:shared_preferences/shared_preferences.dart';
import 'package:test/test.dart';
import 'package:universal_io/io.dart';
import 'package:gitjournal/core/flattened_notes_folder.dart';
import 'package:gitjournal/core/note.dart';

View File

@ -1,9 +1,9 @@
import 'dart:io';
import 'dart:math';
import 'package:path/path.dart' as p;
import 'package:shared_preferences/shared_preferences.dart';
import 'package:test/test.dart';
import 'package:universal_io/io.dart';
import 'package:gitjournal/core/flattened_notes_folder.dart';
import 'package:gitjournal/core/note.dart';

View File

@ -1,8 +1,7 @@
import 'dart:io';
import 'package:path/path.dart' as p;
import 'package:shared_preferences/shared_preferences.dart';
import 'package:test/test.dart';
import 'package:universal_io/io.dart';
import 'package:gitjournal/core/link.dart';
import 'package:gitjournal/core/notes_folder_config.dart';

View File

@ -1,8 +1,7 @@
import 'dart:io';
import 'package:dart_git/utils/result.dart';
import 'package:path/path.dart' as p;
import 'package:test/test.dart';
import 'package:universal_io/io.dart';
import 'package:gitjournal/core/md_yaml_doc_loader.dart';

View File

@ -1,9 +1,9 @@
import 'dart:collection';
import 'dart:io';
import 'package:path/path.dart' as p;
import 'package:shared_preferences/shared_preferences.dart';
import 'package:test/test.dart';
import 'package:universal_io/io.dart';
import 'package:gitjournal/core/md_yaml_doc.dart';
import 'package:gitjournal/core/note.dart';

View File

@ -1,8 +1,7 @@
import 'dart:io';
import 'package:path/path.dart' as p;
import 'package:shared_preferences/shared_preferences.dart';
import 'package:test/test.dart';
import 'package:universal_io/io.dart';
import 'package:gitjournal/core/note.dart';
import 'package:gitjournal/core/notes_folder_config.dart';

View File

@ -1,8 +1,7 @@
import 'dart:io';
import 'package:path/path.dart' as p;
import 'package:shared_preferences/shared_preferences.dart';
import 'package:test/test.dart';
import 'package:universal_io/io.dart';
import 'package:gitjournal/core/notes_cache.dart';
import 'package:gitjournal/core/notes_folder_config.dart';

View File

@ -1,9 +1,9 @@
import 'dart:io';
import 'dart:math';
import 'package:path/path.dart' as p;
import 'package:shared_preferences/shared_preferences.dart';
import 'package:test/test.dart';
import 'package:universal_io/io.dart';
import 'package:gitjournal/core/note.dart';
import 'package:gitjournal/core/notes_folder_config.dart';

View File

@ -1,11 +1,10 @@
import 'dart:io';
import 'package:flutter_test/flutter_test.dart' as ft;
import 'package:path/path.dart';
import 'package:path_provider_platform_interface/path_provider_platform_interface.dart';
import 'package:plugin_platform_interface/plugin_platform_interface.dart';
import 'package:test/fake.dart';
import 'package:test/test.dart';
import 'package:universal_io/io.dart';
import 'package:gitjournal/utils/logger.dart';

View File

@ -1,10 +1,9 @@
import 'dart:io';
import 'package:dart_git/git.dart';
import 'package:path/path.dart' as p;
import 'package:path_provider/path_provider.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:time/time.dart';
import 'package:universal_io/io.dart';
import 'package:gitjournal/app.dart';
import 'package:gitjournal/settings/app_settings.dart';