diff --git a/lib/setup/screens.dart b/lib/setup/screens.dart index 9f1d0235..8388458c 100644 --- a/lib/setup/screens.dart +++ b/lib/setup/screens.dart @@ -382,7 +382,10 @@ class GitHostSetupScreenState extends State { child: const Icon(Icons.arrow_back, size: 32.0), padding: const EdgeInsets.all(8.0), ), - onTap: () => Navigator.of(context).pop(), + onTap: () { + _removeRemote(); + Navigator.of(context).pop(); + }, ), ), ], @@ -399,12 +402,28 @@ class GitHostSetupScreenState extends State { return false; } + _removeRemote(); return true; }, child: scaffold, ); } + Future _removeRemote() async { + var repo = Provider.of(context, listen: false); + var basePath = repo.gitBaseDirectory; + + var repoPath = p.join(basePath, widget.repoFolderName); + + try { + var repo = await GitRepository.load(repoPath); + await repo.removeRemote(widget.remoteName); + } on Exception catch (e, stacktrace) { + Log.e("Failed to remove remote", ex: e, stacktrace: stacktrace); + logExceptionWarning(e, stacktrace); + } + } + void _nextPage() { pageController.nextPage( duration: 200.milliseconds,