mirror of
https://github.com/GitJournal/GitJournal.git
synced 2025-06-28 09:47:35 +08:00
Block invalid move to external storage
This way we atleast avoid the app getting bricked and showing a white screen. Related to #355
This commit is contained in:
@ -29,6 +29,7 @@ import 'package:gitjournal/screens/settings_tags.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/utils.dart';
|
import 'package:gitjournal/utils.dart';
|
||||||
|
import 'package:gitjournal/utils/logger.dart';
|
||||||
import 'package:gitjournal/widgets/folder_selection_dialog.dart';
|
import 'package:gitjournal/widgets/folder_selection_dialog.dart';
|
||||||
import 'package:gitjournal/widgets/pro_overlay.dart';
|
import 'package:gitjournal/widgets/pro_overlay.dart';
|
||||||
|
|
||||||
@ -298,7 +299,7 @@ class SettingsListState extends State<SettingsList> {
|
|||||||
|
|
||||||
settings.save();
|
settings.save();
|
||||||
setState(() {});
|
setState(() {});
|
||||||
repo.moveRepoToPath();
|
await repo.moveRepoToPath();
|
||||||
} else {
|
} else {
|
||||||
var req = await Permission.storage.request();
|
var req = await Permission.storage.request();
|
||||||
if (req.isDenied) {
|
if (req.isDenied) {
|
||||||
@ -307,19 +308,22 @@ class SettingsListState extends State<SettingsList> {
|
|||||||
|
|
||||||
settings.save();
|
settings.save();
|
||||||
setState(() {});
|
setState(() {});
|
||||||
repo.moveRepoToPath();
|
await repo.moveRepoToPath();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
settings.storeInternally = true;
|
settings.storeInternally = true;
|
||||||
|
|
||||||
var path = await ExtStorage.getExternalStorageDirectory();
|
var path = await ExtStorage.getExternalStorageDirectory();
|
||||||
if (path == null) {
|
if (path == null || path.isEmpty) {
|
||||||
settings.storeInternally = false;
|
settings.storeInternally = true;
|
||||||
settings.storageLocation = "";
|
settings.storageLocation = "";
|
||||||
|
|
||||||
settings.save();
|
settings.save();
|
||||||
setState(() {});
|
setState(() {});
|
||||||
repo.moveRepoToPath();
|
await repo.moveRepoToPath();
|
||||||
|
|
||||||
|
showSnackbar(
|
||||||
|
context, "Unable to get External Storage Directory");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -328,7 +332,23 @@ class SettingsListState extends State<SettingsList> {
|
|||||||
|
|
||||||
settings.save();
|
settings.save();
|
||||||
setState(() {});
|
setState(() {});
|
||||||
repo.moveRepoToPath();
|
try {
|
||||||
|
await repo.moveRepoToPath();
|
||||||
|
} catch (ex, st) {
|
||||||
|
Log.e("Moving Repo to External Storage",
|
||||||
|
ex: ex, stacktrace: st);
|
||||||
|
|
||||||
|
settings.storeInternally = true;
|
||||||
|
settings.storageLocation = "";
|
||||||
|
|
||||||
|
settings.save();
|
||||||
|
setState(() {});
|
||||||
|
await repo.moveRepoToPath();
|
||||||
|
|
||||||
|
showSnackbar(
|
||||||
|
context, "Unable to save in External Storage Directory");
|
||||||
|
return;
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
Reference in New Issue
Block a user