mirror of
https://github.com/GitJournal/GitJournal.git
synced 2025-06-28 01:45:55 +08:00
Abstract out the logging
This way moving away from Fimber will be much easier.
This commit is contained in:
@ -1,11 +1,11 @@
|
||||
import 'dart:async';
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:fimber/fimber.dart';
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:git_bindings/git_bindings.dart';
|
||||
|
||||
import 'package:gitjournal/settings.dart';
|
||||
import 'package:gitjournal/utils/logger.dart';
|
||||
import 'package:path/path.dart' as p;
|
||||
|
||||
//
|
||||
@ -16,10 +16,10 @@ Future migrateGitRepo({
|
||||
@required String fromGitBasePath,
|
||||
@required String toGitBaseFolder,
|
||||
}) async {
|
||||
Fimber.d("migrateGitRepo $fromGitBasePath $toGitBaseFolder");
|
||||
Log.d("migrateGitRepo $fromGitBasePath $toGitBaseFolder");
|
||||
var fromBasePath = p.join(gitBasePath, fromGitBasePath);
|
||||
var toGitRepoPath = p.join(gitBasePath, toGitBaseFolder);
|
||||
Fimber.d("toGitRemotePath $toGitRepoPath");
|
||||
Log.d("toGitRemotePath $toGitRepoPath");
|
||||
|
||||
final dir = Directory(fromBasePath);
|
||||
var lister = dir.list(recursive: false);
|
||||
@ -31,7 +31,7 @@ Future migrateGitRepo({
|
||||
var fileName = p.basename(file.path);
|
||||
var toPath = p.join(toGitRepoPath, fileName);
|
||||
|
||||
Fimber.d("Migrating " + file.path + " --> " + toPath);
|
||||
Log.d("Migrating " + file.path + " --> " + toPath);
|
||||
|
||||
await file.copy(toPath);
|
||||
|
||||
@ -43,5 +43,5 @@ Future migrateGitRepo({
|
||||
await gitRepo.add(fileName);
|
||||
await gitRepo.commit(message: "Added Note");
|
||||
}
|
||||
Fimber.d("migrateGitRepo: Done");
|
||||
Log.d("migrateGitRepo: Done");
|
||||
}
|
||||
|
@ -2,11 +2,11 @@ import 'dart:async';
|
||||
import 'dart:convert';
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:fimber/fimber.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:http/http.dart' as http;
|
||||
import 'package:url_launcher/url_launcher.dart';
|
||||
|
||||
import 'package:gitjournal/utils/logger.dart';
|
||||
import 'githost.dart';
|
||||
|
||||
class GitHub implements GitHost {
|
||||
@ -20,24 +20,24 @@ class GitHub implements GitHost {
|
||||
void init(OAuthCallback callback) {
|
||||
Future _handleMessages(MethodCall call) async {
|
||||
if (call.method != "onURL") {
|
||||
Fimber.d("GitHub Unknown Call: " + call.method);
|
||||
Log.d("GitHub Unknown Call: " + call.method);
|
||||
return;
|
||||
}
|
||||
|
||||
closeWebView();
|
||||
Fimber.d("GitHub: Called onUrl with " + call.arguments.toString());
|
||||
Log.d("GitHub: Called onUrl with " + call.arguments.toString());
|
||||
|
||||
String url = call.arguments["URL"];
|
||||
var uri = Uri.parse(url);
|
||||
var authCode = uri.queryParameters['code'];
|
||||
if (authCode == null) {
|
||||
Fimber.d("GitHub: Missing auth code. Now what?");
|
||||
Log.d("GitHub: Missing auth code. Now what?");
|
||||
callback(GitHostException.OAuthFailed);
|
||||
}
|
||||
|
||||
_accessCode = await _getAccessCode(authCode);
|
||||
if (_accessCode == null || _accessCode.isEmpty) {
|
||||
Fimber.d("GitHub: AccessCode is invalid: " + _accessCode);
|
||||
Log.d("GitHub: AccessCode is invalid: " + _accessCode);
|
||||
callback(GitHostException.OAuthFailed);
|
||||
}
|
||||
|
||||
@ -45,7 +45,7 @@ class GitHub implements GitHost {
|
||||
}
|
||||
|
||||
_platform.setMethodCallHandler(_handleMessages);
|
||||
Fimber.d("GitHub: Installed Handler");
|
||||
Log.d("GitHub: Installed Handler");
|
||||
}
|
||||
|
||||
Future<String> _getAccessCode(String authCode) async {
|
||||
@ -54,13 +54,13 @@ class GitHub implements GitHost {
|
||||
|
||||
var response = await http.post(url);
|
||||
if (response.statusCode != 200) {
|
||||
Fimber.d("Github getAccessCode: Invalid response " +
|
||||
Log.d("Github getAccessCode: Invalid response " +
|
||||
response.statusCode.toString() +
|
||||
": " +
|
||||
response.body);
|
||||
throw GitHostException.OAuthFailed;
|
||||
}
|
||||
Fimber.d("GithubResponse: " + response.body);
|
||||
Log.d("GithubResponse: " + response.body);
|
||||
|
||||
var map = Uri.splitQueryString(response.body);
|
||||
return map["access_token"];
|
||||
@ -89,7 +89,7 @@ class GitHub implements GitHost {
|
||||
|
||||
var response = await http.get(url, headers: headers);
|
||||
if (response.statusCode != 200) {
|
||||
Fimber.d("Github listRepos: Invalid response " +
|
||||
Log.d("Github listRepos: Invalid response " +
|
||||
response.statusCode.toString() +
|
||||
": " +
|
||||
response.body);
|
||||
@ -128,7 +128,7 @@ class GitHub implements GitHost {
|
||||
var response =
|
||||
await http.post(url, headers: headers, body: json.encode(data));
|
||||
if (response.statusCode != 201) {
|
||||
Fimber.d("Github createRepo: Invalid response " +
|
||||
Log.d("Github createRepo: Invalid response " +
|
||||
response.statusCode.toString() +
|
||||
": " +
|
||||
response.body);
|
||||
@ -142,7 +142,7 @@ class GitHub implements GitHost {
|
||||
throw GitHostException.CreateRepoFailed;
|
||||
}
|
||||
|
||||
Fimber.d("GitHub createRepo: " + response.body);
|
||||
Log.d("GitHub createRepo: " + response.body);
|
||||
Map<String, dynamic> map = json.decode(response.body);
|
||||
return _repoFromJson(map);
|
||||
}
|
||||
@ -163,7 +163,7 @@ class GitHub implements GitHost {
|
||||
|
||||
var response = await http.get(url, headers: headers);
|
||||
if (response.statusCode != 200) {
|
||||
Fimber.d("Github getRepo: Invalid response " +
|
||||
Log.d("Github getRepo: Invalid response " +
|
||||
response.statusCode.toString() +
|
||||
": " +
|
||||
response.body);
|
||||
@ -171,7 +171,7 @@ class GitHub implements GitHost {
|
||||
throw GitHostException.GetRepoFailed;
|
||||
}
|
||||
|
||||
Fimber.d("GitHub getRepo: " + response.body);
|
||||
Log.d("GitHub getRepo: " + response.body);
|
||||
Map<String, dynamic> map = json.decode(response.body);
|
||||
return _repoFromJson(map);
|
||||
}
|
||||
@ -198,14 +198,14 @@ class GitHub implements GitHost {
|
||||
var response =
|
||||
await http.post(url, headers: headers, body: json.encode(data));
|
||||
if (response.statusCode != 201) {
|
||||
Fimber.d("Github addDeployKey: Invalid response " +
|
||||
Log.d("Github addDeployKey: Invalid response " +
|
||||
response.statusCode.toString() +
|
||||
": " +
|
||||
response.body);
|
||||
throw GitHostException.DeployKeyFailed;
|
||||
}
|
||||
|
||||
Fimber.d("GitHub addDeployKey: " + response.body);
|
||||
Log.d("GitHub addDeployKey: " + response.body);
|
||||
return json.decode(response.body);
|
||||
}
|
||||
|
||||
@ -230,7 +230,7 @@ class GitHub implements GitHost {
|
||||
|
||||
var response = await http.get(url, headers: headers);
|
||||
if (response.statusCode != 200) {
|
||||
Fimber.d("Github getUserInfo: Invalid response " +
|
||||
Log.d("Github getUserInfo: Invalid response " +
|
||||
response.statusCode.toString() +
|
||||
": " +
|
||||
response.body);
|
||||
@ -239,7 +239,7 @@ class GitHub implements GitHost {
|
||||
|
||||
Map<String, dynamic> map = jsonDecode(response.body);
|
||||
if (map == null || map.isEmpty) {
|
||||
Fimber.d("Github getUserInfo: jsonDecode Failed " +
|
||||
Log.d("Github getUserInfo: jsonDecode Failed " +
|
||||
response.statusCode.toString() +
|
||||
": " +
|
||||
response.body);
|
||||
|
@ -3,11 +3,11 @@ import 'dart:convert';
|
||||
import 'dart:io';
|
||||
import 'dart:math';
|
||||
|
||||
import 'package:fimber/fimber.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:http/http.dart' as http;
|
||||
import 'package:url_launcher/url_launcher.dart';
|
||||
|
||||
import 'package:gitjournal/utils/logger.dart';
|
||||
import 'githost.dart';
|
||||
|
||||
class GitLab implements GitHost {
|
||||
@ -22,12 +22,12 @@ class GitLab implements GitHost {
|
||||
void init(OAuthCallback callback) {
|
||||
Future _handleMessages(MethodCall call) async {
|
||||
if (call.method != "onURL") {
|
||||
Fimber.d("GitLab Unknown Call: " + call.method);
|
||||
Log.d("GitLab Unknown Call: " + call.method);
|
||||
return;
|
||||
}
|
||||
|
||||
closeWebView();
|
||||
Fimber.d("GitLab: Called onUrl with " + call.arguments.toString());
|
||||
Log.d("GitLab: Called onUrl with " + call.arguments.toString());
|
||||
|
||||
String url = call.arguments["URL"];
|
||||
var queryParamters = url.substring(url.indexOf('#') + 1);
|
||||
@ -35,9 +35,9 @@ class GitLab implements GitHost {
|
||||
|
||||
var state = map['state'];
|
||||
if (state != _stateOAuth) {
|
||||
Fimber.d("GitLab: OAuth State incorrect");
|
||||
Fimber.d("Required State: " + _stateOAuth);
|
||||
Fimber.d("Actual State: " + state);
|
||||
Log.d("GitLab: OAuth State incorrect");
|
||||
Log.d("Required State: " + _stateOAuth);
|
||||
Log.d("Actual State: " + state);
|
||||
callback(GitHostException.OAuthFailed);
|
||||
return;
|
||||
}
|
||||
@ -52,7 +52,7 @@ class GitLab implements GitHost {
|
||||
}
|
||||
|
||||
_platform.setMethodCallHandler(_handleMessages);
|
||||
Fimber.d("GitLab: Installed Handler");
|
||||
Log.d("GitLab: Installed Handler");
|
||||
}
|
||||
|
||||
@override
|
||||
@ -76,7 +76,7 @@ class GitLab implements GitHost {
|
||||
|
||||
var response = await http.get(url);
|
||||
if (response.statusCode != 200) {
|
||||
Fimber.d("GitLab listRepos: Invalid response " +
|
||||
Log.d("GitLab listRepos: Invalid response " +
|
||||
response.statusCode.toString() +
|
||||
": " +
|
||||
response.body);
|
||||
@ -114,7 +114,7 @@ class GitLab implements GitHost {
|
||||
var response =
|
||||
await http.post(url, headers: headers, body: json.encode(data));
|
||||
if (response.statusCode != 201) {
|
||||
Fimber.d("GitLab createRepo: Invalid response " +
|
||||
Log.d("GitLab createRepo: Invalid response " +
|
||||
response.statusCode.toString() +
|
||||
": " +
|
||||
response.body);
|
||||
@ -128,7 +128,7 @@ class GitLab implements GitHost {
|
||||
throw GitHostException.CreateRepoFailed;
|
||||
}
|
||||
|
||||
Fimber.d("GitLab createRepo: " + response.body);
|
||||
Log.d("GitLab createRepo: " + response.body);
|
||||
Map<String, dynamic> map = json.decode(response.body);
|
||||
return _repoFromJson(map);
|
||||
}
|
||||
@ -146,7 +146,7 @@ class GitLab implements GitHost {
|
||||
|
||||
var response = await http.get(url);
|
||||
if (response.statusCode != 200) {
|
||||
Fimber.d("GitLab getRepo: Invalid response " +
|
||||
Log.d("GitLab getRepo: Invalid response " +
|
||||
response.statusCode.toString() +
|
||||
": " +
|
||||
response.body);
|
||||
@ -154,7 +154,7 @@ class GitLab implements GitHost {
|
||||
throw GitHostException.GetRepoFailed;
|
||||
}
|
||||
|
||||
Fimber.d("GitLab getRepo: " + response.body);
|
||||
Log.d("GitLab getRepo: " + response.body);
|
||||
Map<String, dynamic> map = json.decode(response.body);
|
||||
return _repoFromJson(map);
|
||||
}
|
||||
@ -182,14 +182,14 @@ class GitLab implements GitHost {
|
||||
var response =
|
||||
await http.post(url, headers: headers, body: json.encode(data));
|
||||
if (response.statusCode != 201) {
|
||||
Fimber.d("GitLab addDeployKey: Invalid response " +
|
||||
Log.d("GitLab addDeployKey: Invalid response " +
|
||||
response.statusCode.toString() +
|
||||
": " +
|
||||
response.body);
|
||||
throw GitHostException.DeployKeyFailed;
|
||||
}
|
||||
|
||||
Fimber.d("GitLab addDeployKey: " + response.body);
|
||||
Log.d("GitLab addDeployKey: " + response.body);
|
||||
return json.decode(response.body);
|
||||
}
|
||||
|
||||
@ -210,7 +210,7 @@ class GitLab implements GitHost {
|
||||
|
||||
var response = await http.get(url);
|
||||
if (response.statusCode != 200) {
|
||||
Fimber.d("GitLab getUserInfo: Invalid response " +
|
||||
Log.d("GitLab getUserInfo: Invalid response " +
|
||||
response.statusCode.toString() +
|
||||
": " +
|
||||
response.body);
|
||||
@ -219,7 +219,7 @@ class GitLab implements GitHost {
|
||||
|
||||
Map<String, dynamic> map = jsonDecode(response.body);
|
||||
if (map == null || map.isEmpty) {
|
||||
Fimber.d("GitLab getUserInfo: jsonDecode Failed " +
|
||||
Log.d("GitLab getUserInfo: jsonDecode Failed " +
|
||||
response.statusCode.toString() +
|
||||
": " +
|
||||
response.body);
|
||||
|
10
lib/app.dart
10
lib/app.dart
@ -1,10 +1,10 @@
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:device_info/device_info.dart';
|
||||
import 'package:fimber/fimber.dart';
|
||||
import 'package:firebase_analytics/firebase_analytics.dart';
|
||||
import 'package:firebase_analytics/observer.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:gitjournal/utils/logger.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:path/path.dart' as p;
|
||||
import 'package:flutter_runtime_env/flutter_runtime_env.dart' as runtime_env;
|
||||
@ -27,7 +27,7 @@ import 'setup/screens.dart';
|
||||
|
||||
class JournalApp extends StatelessWidget {
|
||||
static Future main(SharedPreferences pref) async {
|
||||
Fimber.plantTree(DebugTree.elapsed(useColors: true));
|
||||
Log.init();
|
||||
|
||||
var appState = AppState(pref);
|
||||
appState.dumpToLog();
|
||||
@ -72,13 +72,13 @@ class JournalApp extends StatelessWidget {
|
||||
if (Platform.isAndroid) {
|
||||
var info = await deviceInfo.androidInfo;
|
||||
isPhysicalDevice = info.isPhysicalDevice;
|
||||
Fimber.d("Device Fingerprint: " + info.fingerprint);
|
||||
Log.d("Device Fingerprint: " + info.fingerprint);
|
||||
} else if (Platform.isIOS) {
|
||||
var info = await deviceInfo.iosInfo;
|
||||
isPhysicalDevice = info.isPhysicalDevice;
|
||||
}
|
||||
} catch (e) {
|
||||
Fimber.d(e);
|
||||
Log.d(e);
|
||||
}
|
||||
|
||||
if (isPhysicalDevice == false) {
|
||||
@ -88,7 +88,7 @@ class JournalApp extends StatelessWidget {
|
||||
bool inFireBaseTestLab = await runtime_env.inFirebaseTestLab();
|
||||
bool enabled = !JournalApp.isInDebugMode && !inFireBaseTestLab;
|
||||
|
||||
Fimber.d("Analytics Collection: $enabled");
|
||||
Log.d("Analytics Collection: $enabled");
|
||||
JournalApp.analytics.setAnalyticsCollectionEnabled(enabled);
|
||||
|
||||
if (enabled) {
|
||||
|
@ -1,7 +1,7 @@
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
import 'package:fimber/fimber.dart';
|
||||
|
||||
import 'package:gitjournal/core/notes_folder_fs.dart';
|
||||
import 'package:gitjournal/utils/logger.dart';
|
||||
|
||||
enum SyncStatus {
|
||||
Unknown,
|
||||
@ -47,13 +47,13 @@ class AppState {
|
||||
}
|
||||
|
||||
void dumpToLog() {
|
||||
Fimber.d(" ---- Settings ---- ");
|
||||
Fimber.d("localGitRepoConfigured: $localGitRepoConfigured");
|
||||
Fimber.d("remoteGitRepoConfigured: $remoteGitRepoConfigured");
|
||||
Fimber.d("localGitRepoFolderName: $localGitRepoFolderName");
|
||||
Fimber.d("remoteGitRepoFolderName: $remoteGitRepoFolderName");
|
||||
Fimber.d("onBoardingCompleted: $onBoardingCompleted");
|
||||
Fimber.d(" ------------------ ");
|
||||
Log.d(" ---- Settings ---- ");
|
||||
Log.d("localGitRepoConfigured: $localGitRepoConfigured");
|
||||
Log.d("remoteGitRepoConfigured: $remoteGitRepoConfigured");
|
||||
Log.d("localGitRepoFolderName: $localGitRepoFolderName");
|
||||
Log.d("remoteGitRepoFolderName: $remoteGitRepoFolderName");
|
||||
Log.d("onBoardingCompleted: $onBoardingCompleted");
|
||||
Log.d(" ------------------ ");
|
||||
}
|
||||
|
||||
Future save(SharedPreferences pref) async {
|
||||
|
@ -2,7 +2,6 @@ import 'dart:async';
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:fimber/fimber.dart';
|
||||
|
||||
import 'package:git_bindings/git_bindings.dart';
|
||||
|
||||
@ -10,6 +9,7 @@ import 'package:gitjournal/core/note.dart';
|
||||
import 'package:gitjournal/core/notes_folder.dart';
|
||||
import 'package:gitjournal/core/notes_folder_fs.dart';
|
||||
import 'package:gitjournal/settings.dart';
|
||||
import 'package:gitjournal/utils/logger.dart';
|
||||
|
||||
class NoteRepoResult {
|
||||
bool error;
|
||||
@ -143,7 +143,7 @@ class GitNoteRepository {
|
||||
try {
|
||||
await _gitRepo.pull();
|
||||
} on GitException catch (ex) {
|
||||
Fimber.d(ex.toString());
|
||||
Log.d(ex.toString());
|
||||
}
|
||||
}
|
||||
|
||||
@ -155,7 +155,7 @@ class GitNoteRepository {
|
||||
await pull();
|
||||
return push();
|
||||
}
|
||||
Fimber.d(ex.toString());
|
||||
Log.d(ex.toString());
|
||||
rethrow;
|
||||
}
|
||||
}
|
||||
|
@ -1,8 +1,8 @@
|
||||
import 'dart:collection';
|
||||
|
||||
import 'package:fimber/fimber.dart';
|
||||
import 'package:yaml/yaml.dart';
|
||||
import 'package:yaml_serializer/yaml_serializer.dart';
|
||||
import 'package:gitjournal/utils/logger.dart';
|
||||
|
||||
import 'md_yaml_doc.dart';
|
||||
|
||||
@ -71,8 +71,7 @@ class MarkdownYAMLCodec {
|
||||
map[key] = value;
|
||||
});
|
||||
} catch (err) {
|
||||
Fimber.d(
|
||||
'MarkdownYAMLSerializer::decode("$yamlText") -> ${err.toString()}');
|
||||
Log.d('MarkdownYAMLSerializer::decode("$yamlText") -> ${err.toString()}');
|
||||
}
|
||||
|
||||
return map;
|
||||
|
@ -1,11 +1,12 @@
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:fimber/fimber.dart';
|
||||
import 'package:gitjournal/core/md_yaml_doc_loader.dart';
|
||||
import 'package:gitjournal/core/note_notifier.dart';
|
||||
import 'package:gitjournal/core/notes_folder_fs.dart';
|
||||
import 'package:gitjournal/settings.dart';
|
||||
import 'package:gitjournal/utils/markdown.dart';
|
||||
import 'package:gitjournal/utils/logger.dart';
|
||||
|
||||
import 'package:path/path.dart' as p;
|
||||
|
||||
import 'md_yaml_doc.dart';
|
||||
@ -168,7 +169,7 @@ class Note with NotesNotifier {
|
||||
if (this.fileLastModified == fileLastModified) {
|
||||
return _loadState;
|
||||
}
|
||||
Fimber.d("Note modified: $_filePath");
|
||||
Log.d("Note modified: $_filePath");
|
||||
}
|
||||
|
||||
try {
|
||||
|
@ -1,7 +1,6 @@
|
||||
import 'dart:convert';
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:fimber/fimber.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_crashlytics/flutter_crashlytics.dart';
|
||||
import 'package:path/path.dart' as p;
|
||||
@ -10,6 +9,7 @@ import 'package:collection/collection.dart';
|
||||
import 'package:gitjournal/core/note.dart';
|
||||
import 'package:gitjournal/core/notes_folder_fs.dart';
|
||||
import 'package:gitjournal/core/sorting_mode.dart';
|
||||
import 'package:gitjournal/utils/logger.dart';
|
||||
|
||||
class NotesCache {
|
||||
final String filePath;
|
||||
@ -109,7 +109,7 @@ class NotesCache {
|
||||
try {
|
||||
return json.decode(contents).cast<String>();
|
||||
} catch (ex, st) {
|
||||
Fimber.e("Exception - $ex for contents: $contents");
|
||||
Log.e("Exception - $ex for contents: $contents");
|
||||
await FlutterCrashlytics().logException(ex, st);
|
||||
return [];
|
||||
}
|
||||
|
@ -1,12 +1,13 @@
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:fimber/fimber.dart';
|
||||
import 'package:gitjournal/core/notes_folder_fs.dart';
|
||||
import 'package:gitjournal/core/sorting_mode.dart';
|
||||
import 'package:gitjournal/folder_views/common.dart';
|
||||
import 'package:gitjournal/folder_views/standard_view.dart';
|
||||
import 'package:gitjournal/screens/note_editor.dart';
|
||||
import 'package:gitjournal/settings.dart';
|
||||
import 'package:gitjournal/utils/logger.dart';
|
||||
|
||||
import 'package:meta/meta.dart';
|
||||
import 'package:path/path.dart' as p;
|
||||
|
||||
@ -127,7 +128,7 @@ class NotesFolderConfig extends Equatable {
|
||||
map[key] = value;
|
||||
});
|
||||
} catch (err) {
|
||||
Fimber.d('NotesFolderConfig::decode("$contents") -> ${err.toString()}');
|
||||
Log.d('NotesFolderConfig::decode("$contents") -> ${err.toString()}');
|
||||
}
|
||||
|
||||
var sortingMode =
|
||||
|
@ -1,7 +1,8 @@
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:fimber/fimber.dart';
|
||||
import 'package:gitjournal/features.dart';
|
||||
import 'package:gitjournal/utils/logger.dart';
|
||||
|
||||
import 'package:path/path.dart' as p;
|
||||
import 'package:path/path.dart';
|
||||
import 'package:synchronized/synchronized.dart';
|
||||
@ -171,7 +172,7 @@ class NotesFolderFS with NotesFolderNotifier implements NotesFolder {
|
||||
}
|
||||
|
||||
if (fsEntity is Directory) {
|
||||
//Fimber.d("Found directory ${fsEntity.path}");
|
||||
//Log.d("Found directory ${fsEntity.path}");
|
||||
var subFolder = NotesFolderFS(this, fsEntity.path);
|
||||
if (subFolder.name.startsWith('.')) {
|
||||
continue;
|
||||
@ -188,10 +189,10 @@ class NotesFolderFS with NotesFolderNotifier implements NotesFolder {
|
||||
|
||||
var note = Note(this, fsEntity.path);
|
||||
if (!note.filePath.toLowerCase().endsWith('.md')) {
|
||||
//Fimber.d("Ignoring file ${fsEntity.path}");
|
||||
//Log.d("Ignoring file ${fsEntity.path}");
|
||||
continue;
|
||||
}
|
||||
//Fimber.d("Found file ${fsEntity.path}");
|
||||
//Log.d("Found file ${fsEntity.path}");
|
||||
note.addModifiedListener(_noteModified);
|
||||
|
||||
_notes.add(note);
|
||||
@ -210,7 +211,7 @@ class NotesFolderFS with NotesFolderNotifier implements NotesFolder {
|
||||
_entityMap.remove(path);
|
||||
|
||||
if (e is Note) {
|
||||
Fimber.d("File $path was no longer found");
|
||||
Log.d("File $path was no longer found");
|
||||
e.removeModifiedListener(_noteModified);
|
||||
var i = _notes.indexWhere((n) => n.filePath == path);
|
||||
assert(i != -1);
|
||||
@ -218,7 +219,7 @@ class NotesFolderFS with NotesFolderNotifier implements NotesFolder {
|
||||
_notes.removeAt(i);
|
||||
notifyNoteRemoved(i, note);
|
||||
} else {
|
||||
Fimber.d("Folder $path was no longer found");
|
||||
Log.d("Folder $path was no longer found");
|
||||
e.removeListener(_entityChanged);
|
||||
var i = _folders.indexWhere((f) => f.folderPath == path);
|
||||
assert(i != -1);
|
||||
|
@ -1,8 +1,8 @@
|
||||
import 'dart:math';
|
||||
|
||||
import 'package:fimber/fimber.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:gitjournal/core/sorting_mode.dart';
|
||||
import 'package:gitjournal/utils/logger.dart';
|
||||
|
||||
import 'note.dart';
|
||||
import 'notes_folder.dart';
|
||||
@ -141,7 +141,7 @@ class SortedNotesFolder with NotesFolderNotifier implements NotesFolder {
|
||||
bool get isEmpty => folder.isEmpty;
|
||||
|
||||
void changeSortingMode(SortingMode sm) {
|
||||
Fimber.d("Setting sorting to me ${sm.toInternalString()}");
|
||||
Log.d("Setting sorting to me ${sm.toInternalString()}");
|
||||
_sortingMode = sm;
|
||||
_sortFunc = _sortingMode.sortingFunction();
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
import 'package:fimber/fimber.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
import 'package:gitjournal/core/note.dart';
|
||||
import 'package:gitjournal/core/notes_folder.dart';
|
||||
import 'package:gitjournal/folder_views/card_view.dart';
|
||||
@ -7,6 +7,7 @@ import 'package:gitjournal/folder_views/grid_view.dart';
|
||||
import 'package:gitjournal/folder_views/journal_view.dart';
|
||||
import 'package:gitjournal/screens/note_editor.dart';
|
||||
import 'package:gitjournal/utils.dart';
|
||||
import 'package:gitjournal/utils/logger.dart';
|
||||
|
||||
import 'standard_view.dart';
|
||||
|
||||
@ -66,7 +67,7 @@ void openNoteEditor(BuildContext context, Note note) async {
|
||||
);
|
||||
var showUndoSnackBar = await Navigator.of(context).push(route);
|
||||
if (showUndoSnackBar != null) {
|
||||
Fimber.d("Showing an undo snackbar");
|
||||
Log.d("Showing an undo snackbar");
|
||||
|
||||
var snackBar = buildUndoDeleteSnackbar(context, note);
|
||||
Scaffold.of(context)
|
||||
|
@ -2,13 +2,13 @@ import 'dart:io';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:fimber/fimber.dart';
|
||||
|
||||
import 'package:git_bindings/git_bindings.dart';
|
||||
import 'package:gitjournal/setup/sshkey.dart';
|
||||
import 'package:gitjournal/screens/settings_widgets.dart';
|
||||
import 'package:gitjournal/settings.dart';
|
||||
import 'package:gitjournal/utils.dart';
|
||||
import 'package:gitjournal/utils/logger.dart';
|
||||
|
||||
class GitRemoteSettingsScreen extends StatefulWidget {
|
||||
@override
|
||||
@ -105,7 +105,7 @@ class _GitRemoteSettingsScreenState extends State<GitRemoteSettingsScreen> {
|
||||
generateSSHKeys(comment: comment).then((String publicKey) {
|
||||
setState(() {
|
||||
this.publicKey = publicKey;
|
||||
Fimber.d("PublicKey: " + publicKey);
|
||||
Log.d("PublicKey: " + publicKey);
|
||||
_copyKeyToClipboard(context);
|
||||
});
|
||||
});
|
||||
|
@ -1,4 +1,3 @@
|
||||
import 'package:fimber/fimber.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:function_types/function_types.dart';
|
||||
@ -9,6 +8,7 @@ import 'package:flutter_crashlytics/flutter_crashlytics.dart';
|
||||
import 'package:gitjournal/analytics.dart';
|
||||
import 'package:gitjournal/apis/githost_factory.dart';
|
||||
import 'package:gitjournal/settings.dart';
|
||||
import 'package:gitjournal/utils/logger.dart';
|
||||
|
||||
import 'button.dart';
|
||||
import 'error.dart';
|
||||
@ -42,7 +42,7 @@ class GitHostSetupAutoConfigureState extends State<GitHostSetupAutoConfigure> {
|
||||
}
|
||||
|
||||
void _startAutoConfigure() async {
|
||||
Fimber.d("Starting autoconfigure");
|
||||
Log.d("Starting autoconfigure");
|
||||
setState(() {
|
||||
_configuringStarted = true;
|
||||
});
|
||||
@ -53,7 +53,7 @@ class GitHostSetupAutoConfigureState extends State<GitHostSetupAutoConfigure> {
|
||||
if (error != null) {
|
||||
throw error;
|
||||
}
|
||||
Fimber.d("GitHost Initalized: " + widget.gitHostType.toString());
|
||||
Log.d("GitHost Initalized: " + widget.gitHostType.toString());
|
||||
|
||||
GitHostRepo repo;
|
||||
try {
|
||||
@ -112,7 +112,7 @@ class GitHostSetupAutoConfigureState extends State<GitHostSetupAutoConfigure> {
|
||||
}
|
||||
|
||||
void _handleGitHostException(Exception e, StackTrace stacktrace) {
|
||||
Fimber.d("GitHostSetupAutoConfigure: " + e.toString());
|
||||
Log.d("GitHostSetupAutoConfigure: " + e.toString());
|
||||
setState(() {
|
||||
errorMessage = widget.gitHostType.toString() + ": " + e.toString();
|
||||
getAnalytics().logEvent(
|
||||
|
@ -1,7 +1,7 @@
|
||||
import 'package:fimber/fimber.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:function_types/function_types.dart';
|
||||
import 'package:gitjournal/analytics.dart';
|
||||
import 'package:gitjournal/utils/logger.dart';
|
||||
|
||||
class GitHostSetupButton extends StatelessWidget {
|
||||
final Func0<void> onPressed;
|
||||
@ -47,7 +47,7 @@ class GitHostSetupButton extends StatelessWidget {
|
||||
}
|
||||
|
||||
void _onPressedWithAnalytics() {
|
||||
Fimber.d("githostsetup_button_click " + text);
|
||||
Log.d("githostsetup_button_click " + text);
|
||||
getAnalytics().logEvent(
|
||||
name: "githostsetup_button_click",
|
||||
parameters: <String, dynamic>{
|
||||
|
@ -1,7 +1,6 @@
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:dots_indicator/dots_indicator.dart';
|
||||
import 'package:fimber/fimber.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
|
||||
@ -13,6 +12,8 @@ import 'package:gitjournal/apis/githost_factory.dart';
|
||||
import 'package:gitjournal/state_container.dart';
|
||||
import 'package:gitjournal/utils.dart';
|
||||
import 'package:gitjournal/settings.dart';
|
||||
import 'package:gitjournal/utils/logger.dart';
|
||||
|
||||
import 'package:path/path.dart' as p;
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:url_launcher/url_launcher.dart';
|
||||
@ -372,7 +373,7 @@ class GitHostSetupScreenState extends State<GitHostSetupScreen> {
|
||||
generateSSHKeys(comment: comment).then((String publicKey) {
|
||||
setState(() {
|
||||
this.publicKey = publicKey;
|
||||
Fimber.d("PublicKey: " + publicKey);
|
||||
Log.d("PublicKey: " + publicKey);
|
||||
_copyKeyToClipboard(context);
|
||||
});
|
||||
});
|
||||
@ -410,8 +411,8 @@ class GitHostSetupScreenState extends State<GitHostSetupScreen> {
|
||||
await launch(gitLabUrl);
|
||||
}
|
||||
} catch (err, stack) {
|
||||
Fimber.d('_launchDeployKeyPage: ' + err.toString());
|
||||
Fimber.d(stack.toString());
|
||||
Log.d('_launchDeployKeyPage: ' + err.toString());
|
||||
Log.d(stack.toString());
|
||||
}
|
||||
}
|
||||
|
||||
@ -426,8 +427,8 @@ class GitHostSetupScreenState extends State<GitHostSetupScreen> {
|
||||
}
|
||||
} catch (err, stack) {
|
||||
// FIXME: Error handling?
|
||||
Fimber.d("_launchCreateRepoPage: " + err.toString());
|
||||
Fimber.d(stack.toString());
|
||||
Log.d("_launchCreateRepoPage: " + err.toString());
|
||||
Log.d(stack.toString());
|
||||
}
|
||||
}
|
||||
|
||||
@ -446,7 +447,7 @@ class GitHostSetupScreenState extends State<GitHostSetupScreen> {
|
||||
String repoPath = p.join(basePath, "journal");
|
||||
String error;
|
||||
try {
|
||||
Fimber.d("Cloning " + _gitCloneUrl);
|
||||
Log.d("Cloning " + _gitCloneUrl);
|
||||
await GitRepo.clone(repoPath, _gitCloneUrl);
|
||||
} on GitException catch (e) {
|
||||
error = e.cause;
|
||||
@ -520,7 +521,7 @@ class GitHostSetupScreenState extends State<GitHostSetupScreen> {
|
||||
var dotGitDir = Directory(p.join(baseDir.path, ".git"));
|
||||
bool exists = dotGitDir.existsSync();
|
||||
if (exists) {
|
||||
Fimber.d("Removing " + baseDir.path);
|
||||
Log.d("Removing " + baseDir.path);
|
||||
await baseDir.delete(recursive: true);
|
||||
await baseDir.create();
|
||||
}
|
||||
|
@ -1,9 +1,9 @@
|
||||
import 'dart:async';
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:fimber/fimber.dart';
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
import 'package:gitjournal/apis/git_migration.dart';
|
||||
import 'package:gitjournal/appstate.dart';
|
||||
import 'package:gitjournal/core/note.dart';
|
||||
@ -13,6 +13,8 @@ import 'package:gitjournal/core/notes_folder_fs.dart';
|
||||
import 'package:gitjournal/core/git_repo.dart';
|
||||
import 'package:gitjournal/features.dart';
|
||||
import 'package:gitjournal/settings.dart';
|
||||
import 'package:gitjournal/utils/logger.dart';
|
||||
|
||||
import 'package:path/path.dart' as p;
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
import 'package:flutter_crashlytics/flutter_crashlytics.dart';
|
||||
@ -61,10 +63,10 @@ class StateContainer with ChangeNotifier {
|
||||
|
||||
void _loadFromCache() async {
|
||||
await _notesCache.load(appState.notesFolder);
|
||||
Fimber.i("Finished loading the notes cache");
|
||||
Log.i("Finished loading the notes cache");
|
||||
|
||||
await _loadNotes();
|
||||
Fimber.i("Finished loading all the notes");
|
||||
Log.i("Finished loading all the notes");
|
||||
}
|
||||
|
||||
void removeExistingRemoteClone() async {
|
||||
@ -86,7 +88,7 @@ class StateContainer with ChangeNotifier {
|
||||
|
||||
Future<void> syncNotes({bool doNotThrow = false}) async {
|
||||
if (!appState.remoteGitRepoConfigured) {
|
||||
Fimber.d("Not syncing because RemoteRepo not configured");
|
||||
Log.d("Not syncing because RemoteRepo not configured");
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -104,11 +106,11 @@ class StateContainer with ChangeNotifier {
|
||||
|
||||
await _gitRepo.push();
|
||||
|
||||
Fimber.d("Synced!");
|
||||
Log.d("Synced!");
|
||||
appState.syncStatus = SyncStatus.Done;
|
||||
notifyListeners();
|
||||
} catch (e, stacktrace) {
|
||||
Fimber.d("Failed to Sync");
|
||||
Log.d("Failed to Sync");
|
||||
appState.syncStatus = SyncStatus.Error;
|
||||
notifyListeners();
|
||||
if (shouldLogGitException(e)) {
|
||||
@ -134,7 +136,7 @@ class StateContainer with ChangeNotifier {
|
||||
var newFolder = NotesFolderFS(parent, newFolderPath);
|
||||
newFolder.create();
|
||||
|
||||
Fimber.d("Created New Folder: " + newFolderPath);
|
||||
Log.d("Created New Folder: " + newFolderPath);
|
||||
parent.addFolder(newFolder);
|
||||
|
||||
_gitRepo.addFolder(newFolder).then((NoteRepoResult _) {
|
||||
@ -145,7 +147,7 @@ class StateContainer with ChangeNotifier {
|
||||
|
||||
void removeFolder(NotesFolderFS folder) async {
|
||||
return _opLock.synchronized(() async {
|
||||
Fimber.d("Removing Folder: " + folder.folderPath);
|
||||
Log.d("Removing Folder: " + folder.folderPath);
|
||||
|
||||
folder.parentFS.removeFolder(folder);
|
||||
_gitRepo.removeFolder(folder).then((NoteRepoResult _) {
|
||||
@ -194,7 +196,7 @@ class StateContainer with ChangeNotifier {
|
||||
|
||||
void addNote(Note note) async {
|
||||
return _opLock.synchronized(() async {
|
||||
Fimber.d("State Container addNote");
|
||||
Log.d("State Container addNote");
|
||||
note.parent.insert(0, note);
|
||||
note.updateModified();
|
||||
_gitRepo.addNote(note).then((NoteRepoResult _) {
|
||||
@ -229,7 +231,7 @@ class StateContainer with ChangeNotifier {
|
||||
|
||||
void updateNote(Note note) async {
|
||||
return _opLock.synchronized(() async {
|
||||
Fimber.d("State Container updateNote");
|
||||
Log.d("State Container updateNote");
|
||||
note.updateModified();
|
||||
_gitRepo.updateNote(note).then((NoteRepoResult _) {
|
||||
_syncNotes();
|
||||
@ -243,7 +245,7 @@ class StateContainer with ChangeNotifier {
|
||||
}
|
||||
|
||||
return _opLock.synchronized(() async {
|
||||
Fimber.d("State Container saveFolderConfig");
|
||||
Log.d("State Container saveFolderConfig");
|
||||
await config.saveToFS();
|
||||
_gitRepo.addFolderConfig(config).then((NoteRepoResult _) {
|
||||
_syncNotes();
|
||||
|
@ -1,4 +1,3 @@
|
||||
import 'package:fimber/fimber.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:package_info/package_info.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
@ -6,6 +5,7 @@ import 'package:provider/provider.dart';
|
||||
import 'app.dart';
|
||||
import 'core/note.dart';
|
||||
import 'state_container.dart';
|
||||
import 'utils/logger.dart';
|
||||
|
||||
Future<String> getVersionString() async {
|
||||
var info = await PackageInfo.fromPlatform();
|
||||
@ -27,7 +27,7 @@ SnackBar buildUndoDeleteSnackbar(BuildContext context, Note deletedNote) {
|
||||
action: SnackBarAction(
|
||||
label: "Undo",
|
||||
onPressed: () {
|
||||
Fimber.d("Undoing delete");
|
||||
Log.d("Undoing delete");
|
||||
|
||||
var stateContainer =
|
||||
Provider.of<StateContainer>(context, listen: false);
|
||||
|
32
lib/utils/logger.dart
Normal file
32
lib/utils/logger.dart
Normal file
@ -0,0 +1,32 @@
|
||||
import 'package:fimber/fimber.dart';
|
||||
import 'package:flutter/foundation.dart' as foundation;
|
||||
|
||||
class Log {
|
||||
static void init() {
|
||||
if (foundation.kDebugMode) {
|
||||
Fimber.plantTree(DebugTree.elapsed(useColors: true));
|
||||
} else {
|
||||
Fimber.plantTree(DebugTree.elapsed(useColors: false));
|
||||
}
|
||||
}
|
||||
|
||||
static void v(String msg, {dynamic ex, StackTrace stacktrace}) {
|
||||
Fimber.v(msg, ex: ex, stacktrace: stacktrace);
|
||||
}
|
||||
|
||||
static void d(String msg, {dynamic ex, StackTrace stacktrace}) {
|
||||
Fimber.d(msg, ex: ex, stacktrace: stacktrace);
|
||||
}
|
||||
|
||||
static void i(String msg, {dynamic ex, StackTrace stacktrace}) {
|
||||
Fimber.i(msg, ex: ex, stacktrace: stacktrace);
|
||||
}
|
||||
|
||||
static void e(String msg, {dynamic ex, StackTrace stacktrace}) {
|
||||
Fimber.e(msg, ex: ex, stacktrace: stacktrace);
|
||||
}
|
||||
|
||||
static void w(String msg, {dynamic ex, StackTrace stacktrace}) {
|
||||
Fimber.w(msg, ex: ex, stacktrace: stacktrace);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user