mirror of
https://github.com/GitJournal/GitJournal.git
synced 2025-06-29 10:17:16 +08:00
Stop caching the gitBaseDir
It makes the entire code base far more complicated and the round trip to get the directory really isn't that much. This is a massive micro-optimization for very little benefit.
This commit is contained in:
17
lib/app.dart
17
lib/app.dart
@ -54,25 +54,14 @@ class JournalApp extends StatefulWidget {
|
|||||||
_enableAnalyticsIfPossible(settings);
|
_enableAnalyticsIfPossible(settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (appSettings.gitBaseDirectory.isEmpty) {
|
|
||||||
var dir = await getApplicationDocumentsDirectory();
|
var dir = await getApplicationDocumentsDirectory();
|
||||||
appSettings.gitBaseDirectory = dir.path;
|
appState.gitBaseDirectory = dir.path;
|
||||||
appSettings.save();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!Directory(appSettings.gitBaseDirectory).existsSync()) {
|
|
||||||
Log.w("Applications Documents Directory no longer exists");
|
|
||||||
var dir = await getApplicationDocumentsDirectory();
|
|
||||||
appSettings.gitBaseDirectory = dir.path;
|
|
||||||
appSettings.save();
|
|
||||||
Log.i("New Documents Directory Path ${dir.path}");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (settings.localGitRepoConfigured == false) {
|
if (settings.localGitRepoConfigured == false) {
|
||||||
// FIXME: What about exceptions!
|
// FIXME: What about exceptions!
|
||||||
settings.localGitRepoFolderName = "journal_local";
|
settings.localGitRepoFolderName = "journal_local";
|
||||||
var repoPath = p.join(
|
var repoPath = p.join(
|
||||||
appSettings.gitBaseDirectory,
|
appState.gitBaseDirectory,
|
||||||
settings.localGitRepoFolderName,
|
settings.localGitRepoFolderName,
|
||||||
);
|
);
|
||||||
await GitRepository.init(repoPath);
|
await GitRepository.init(repoPath);
|
||||||
@ -88,7 +77,7 @@ class JournalApp extends StatefulWidget {
|
|||||||
return StateContainer(
|
return StateContainer(
|
||||||
appState: appState,
|
appState: appState,
|
||||||
settings: settings,
|
settings: settings,
|
||||||
gitBaseDirectory: appSettings.gitBaseDirectory,
|
gitBaseDirectory: appState.gitBaseDirectory,
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
child: ChangeNotifierProvider(
|
child: ChangeNotifierProvider(
|
||||||
|
@ -34,8 +34,6 @@ class AppSettings extends ChangeNotifier {
|
|||||||
var experimentalMarkdownToolbar = false;
|
var experimentalMarkdownToolbar = false;
|
||||||
var experimentalGraphView = false;
|
var experimentalGraphView = false;
|
||||||
|
|
||||||
var gitBaseDirectory = "";
|
|
||||||
|
|
||||||
void load(SharedPreferences pref) {
|
void load(SharedPreferences pref) {
|
||||||
onBoardingCompleted = pref.getBool("onBoardingCompleted") ?? false;
|
onBoardingCompleted = pref.getBool("onBoardingCompleted") ?? false;
|
||||||
|
|
||||||
@ -63,8 +61,6 @@ class AppSettings extends ChangeNotifier {
|
|||||||
experimentalMarkdownToolbar;
|
experimentalMarkdownToolbar;
|
||||||
experimentalGraphView =
|
experimentalGraphView =
|
||||||
pref.getBool("experimentalGraphView") ?? experimentalGraphView;
|
pref.getBool("experimentalGraphView") ?? experimentalGraphView;
|
||||||
|
|
||||||
gitBaseDirectory = pref.getString("gitBaseDirectory") ?? "";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> save() async {
|
Future<void> save() async {
|
||||||
@ -91,7 +87,6 @@ class AppSettings extends ChangeNotifier {
|
|||||||
defaultSet.experimentalGraphView);
|
defaultSet.experimentalGraphView);
|
||||||
|
|
||||||
pref.setInt("appSettingsVersion", version);
|
pref.setInt("appSettingsVersion", version);
|
||||||
pref.setString("gitBaseDirectory", gitBaseDirectory);
|
|
||||||
|
|
||||||
notifyListeners();
|
notifyListeners();
|
||||||
}
|
}
|
||||||
@ -110,7 +105,6 @@ class AppSettings extends ChangeNotifier {
|
|||||||
'experimentalFs': experimentalFs.toString(),
|
'experimentalFs': experimentalFs.toString(),
|
||||||
'experimentalMarkdownToolbar': experimentalMarkdownToolbar.toString(),
|
'experimentalMarkdownToolbar': experimentalMarkdownToolbar.toString(),
|
||||||
'experimentalGraphView': experimentalGraphView.toString(),
|
'experimentalGraphView': experimentalGraphView.toString(),
|
||||||
'gitBaseDirectory': gitBaseDirectory.toString(),
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -17,4 +17,5 @@ class AppState {
|
|||||||
}
|
}
|
||||||
|
|
||||||
NotesFolderFS notesFolder;
|
NotesFolderFS notesFolder;
|
||||||
|
var gitBaseDirectory = "";
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,6 @@ import 'package:git_bindings/git_bindings.dart';
|
|||||||
import 'package:path/path.dart' as p;
|
import 'package:path/path.dart' as p;
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
import 'package:gitjournal/app_settings.dart';
|
|
||||||
import 'package:gitjournal/screens/settings_widgets.dart';
|
import 'package:gitjournal/screens/settings_widgets.dart';
|
||||||
import 'package:gitjournal/settings.dart';
|
import 'package:gitjournal/settings.dart';
|
||||||
import 'package:gitjournal/setup/screens.dart';
|
import 'package:gitjournal/setup/screens.dart';
|
||||||
@ -133,8 +132,7 @@ class _GitRemoteSettingsScreenState extends State<GitRemoteSettingsScreen> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var stateContainer = Provider.of<StateContainer>(context);
|
var stateContainer = Provider.of<StateContainer>(context);
|
||||||
var appSettings = Provider.of<AppSettings>(context);
|
var gitDir = stateContainer.appState.gitBaseDirectory;
|
||||||
var gitDir = appSettings.gitBaseDirectory;
|
|
||||||
|
|
||||||
// Figure out the next available folder
|
// Figure out the next available folder
|
||||||
String repoFolderName = "journal_";
|
String repoFolderName = "journal_";
|
||||||
|
@ -13,7 +13,6 @@ import 'package:url_launcher/url_launcher.dart';
|
|||||||
|
|
||||||
import 'package:gitjournal/analytics.dart';
|
import 'package:gitjournal/analytics.dart';
|
||||||
import 'package:gitjournal/apis/githost_factory.dart';
|
import 'package:gitjournal/apis/githost_factory.dart';
|
||||||
import 'package:gitjournal/app_settings.dart';
|
|
||||||
import 'package:gitjournal/error_reporting.dart';
|
import 'package:gitjournal/error_reporting.dart';
|
||||||
import 'package:gitjournal/settings.dart';
|
import 'package:gitjournal/settings.dart';
|
||||||
import 'package:gitjournal/setup/autoconfigure.dart';
|
import 'package:gitjournal/setup/autoconfigure.dart';
|
||||||
@ -22,6 +21,7 @@ import 'package:gitjournal/setup/clone_url.dart';
|
|||||||
import 'package:gitjournal/setup/loading_error.dart';
|
import 'package:gitjournal/setup/loading_error.dart';
|
||||||
import 'package:gitjournal/setup/repo_selector.dart';
|
import 'package:gitjournal/setup/repo_selector.dart';
|
||||||
import 'package:gitjournal/setup/sshkey.dart';
|
import 'package:gitjournal/setup/sshkey.dart';
|
||||||
|
import 'package:gitjournal/state_container.dart';
|
||||||
import 'package:gitjournal/utils.dart';
|
import 'package:gitjournal/utils.dart';
|
||||||
import 'package:gitjournal/utils/logger.dart';
|
import 'package:gitjournal/utils/logger.dart';
|
||||||
|
|
||||||
@ -468,8 +468,8 @@ class GitHostSetupScreenState extends State<GitHostSetupScreen> {
|
|||||||
gitCloneErrorMessage = "";
|
gitCloneErrorMessage = "";
|
||||||
});
|
});
|
||||||
|
|
||||||
final appSettings = Provider.of<AppSettings>(context);
|
var stateContainer = Provider.of<StateContainer>(context);
|
||||||
var basePath = appSettings.gitBaseDirectory;
|
var basePath = stateContainer.appState.gitBaseDirectory;
|
||||||
|
|
||||||
// Just in case it was half cloned because of an error
|
// Just in case it was half cloned because of an error
|
||||||
String repoPath = p.join(basePath, widget.repoFolderName);
|
String repoPath = p.join(basePath, widget.repoFolderName);
|
||||||
|
@ -27,9 +27,6 @@ void main() async {
|
|||||||
Future<void> populateWithData(SharedPreferences pref) async {
|
Future<void> populateWithData(SharedPreferences pref) async {
|
||||||
var dir = await getApplicationDocumentsDirectory();
|
var dir = await getApplicationDocumentsDirectory();
|
||||||
|
|
||||||
var appSettings = AppSettings.instance;
|
|
||||||
appSettings.gitBaseDirectory = dir.path;
|
|
||||||
|
|
||||||
var settings = Settings.instance;
|
var settings = Settings.instance;
|
||||||
settings.localGitRepoConfigured = true;
|
settings.localGitRepoConfigured = true;
|
||||||
settings.localGitRepoFolderName = "journal_local";
|
settings.localGitRepoFolderName = "journal_local";
|
||||||
|
Reference in New Issue
Block a user