@@ -90,11 +90,11 @@ private async void UpdateBackupToGitHubButtonStatus()
9090 UpdateGitHubLoginStatus ( ) ;
9191 bool isAuthenticated = await _authService . IsAuthenticatedAsync ( ) ;
9292 BackupToGitHubButton . IsEnabled = isAuthenticated ;
93- RestoreSettingsFromGitHubButton . IsEnabled = isAuthenticated ;
93+ // nRestoreSettingsFromGitHubButton .IsEnabled = isAuthenticated;
9494 RestorePackagesFromGitHubButton . IsEnabled = isAuthenticated ;
9595 }
9696
97- private async void RestoreSettingsFromGitHubButton_Click ( object sender , EventArgs e )
97+ /* private async void RestoreSettingsFromGitHubButton_Click(object sender, EventArgs e)
9898 {
9999 RestoreSettingsFromGitHubButton.IsEnabled = false;
100100 var confirmDialog = DialogHelper.DialogFactory.Create();
@@ -112,7 +112,7 @@ private async void RestoreSettingsFromGitHubButton_Click(object sender, EventArg
112112 }
113113
114114 DialogHelper.ShowLoadingDialog(CoreTools.Translate("Restoring settings from GitHub Gist..."));
115- var settingsContent = await _backupService . RetrieveFileAsync ( "unigetui.settings.json" ) ;
115+ var settingsContent = "";// await _backupService.RetrieveFileAsync("unigetui.settings.json");
116116 if (settingsContent != null)
117117 {
118118 await Task.Run(() => Settings.ImportFromString_JSON(settingsContent));
@@ -134,21 +134,33 @@ private async void RestoreSettingsFromGitHubButton_Click(object sender, EventArg
134134 _ = DialogHelper.Window.ShowDialogAsync(errorDialog);
135135 }
136136 UpdateBackupToGitHubButtonStatus();
137- }
137+ }*/
138138
139139 private async void RestorePackagesFromGitHubButton_Click ( object sender , EventArgs e )
140140 {
141141 RestorePackagesFromGitHubButton . IsEnabled = false ;
142- var packagesContent = await _backupService . RetrieveFileAsync ( "unigetui.packages.ubundle" ) ;
143- if ( packagesContent != null )
142+ try
144143 {
145- MainApp . Instance . MainWindow . NavigationPage . LoadBundleFromString ( packagesContent , BundleFormatType . UBUNDLE , "GitHub Gist" ) ;
144+ var b = await _backupService . GetAvailableBackups ( ) ;
145+
146+ var errorDialog = DialogHelper . DialogFactory . Create ( ) ;
147+ errorDialog . Title = CoreTools . Translate ( "Select backup:" ) ;
148+ errorDialog . Content = CoreTools . Translate ( " - " + ( string . Join ( "\n - " , b ) ) ) ;
149+ errorDialog . PrimaryButtonText = CoreTools . Translate ( "OK" ) ;
150+ errorDialog . DefaultButton = ContentDialogButton . Primary ;
151+ await DialogHelper . Window . ShowDialogAsync ( errorDialog ) ;
152+ RestorePackagesFromGitHubButton . IsEnabled = true ;
153+ return ;
154+
155+
156+ MainApp . Instance . MainWindow . NavigationPage . LoadBundleFromString ( "" , BundleFormatType . UBUNDLE , "GitHub Gist" ) ;
157+
146158 Logger . Info ( "Successfully loaded package bundle from GitHub Gist." ) ;
147159 DialogHelper . ShowDismissableBalloon (
148- CoreTools . Translate ( "Backup retrieved successfully!" ) ,
160+ CoreTools . Translate ( "Backup loaded successfully!" ) ,
149161 CoreTools . Translate ( "The package bundle has been loaded into the Package Bundles page." ) ) ;
150162 }
151- else
163+ catch ( Exception ex )
152164 {
153165 DialogHelper . HideLoadingDialog ( ) ;
154166 Logger . Error ( "Failed to restore packages from GitHub Gist." ) ;
@@ -157,45 +169,40 @@ private async void RestorePackagesFromGitHubButton_Click(object sender, EventArg
157169 errorDialog . Content = CoreTools . Translate ( "Could not restore packages from GitHub Gist. Please check the logs for more details, or ensure a backup exists." ) ;
158170 errorDialog . PrimaryButtonText = CoreTools . Translate ( "OK" ) ;
159171 errorDialog . DefaultButton = ContentDialogButton . Primary ;
160- _ = DialogHelper . Window . ShowDialogAsync ( errorDialog ) ;
172+ await DialogHelper . Window . ShowDialogAsync ( errorDialog ) ;
161173 }
162174 UpdateBackupToGitHubButtonStatus ( ) ;
163175 }
164176
165177 private async void BackupToGitHubButton_Click ( object sender , EventArgs e )
166178 {
167179 BackupToGitHubButton . IsEnabled = false ;
168- DialogHelper . ShowLoadingDialog ( CoreTools . Translate ( "Backing up settings and packages to GitHub Gist..." ) ) ;
180+ DialogHelper . ShowLoadingDialog ( CoreTools . Translate ( "Backing up packages to GitHub Gist..." ) ) ;
169181
170- // var settingsContent = await Task.Run(Settings.ExportToString_JSON);
171182 var packagesContent = await InstalledPackagesPage . GenerateBackupContents ( ) ;
172183
173- /*var filesToBackup = new Dictionary<string, string>
174- {
175- { "unigetui.settings.json", settingsContent },
176- { "unigetui.packages.ubundle", packagesContent }
177- };*/
178-
179- bool success = await _backupService . UploadPackageBundle ( packagesContent ) ;
180-
181- DialogHelper . HideLoadingDialog ( ) ;
182-
183- if ( success )
184+ try
184185 {
186+ await _backupService . UploadPackageBundle ( packagesContent ) ;
187+ DialogHelper . HideLoadingDialog ( ) ;
185188 Logger . Info ( "Successfully backed up settings and packages to GitHub Gist." ) ;
186189 DialogHelper . ShowDismissableBalloon (
187190 CoreTools . Translate ( "Backup Successful" ) ,
188191 CoreTools . Translate ( "Your settings and packages have been successfully backed up to GitHub Gist." ) ) ;
189192 }
190- else
193+ catch ( Exception ex )
191194 {
192- Logger . Error ( "Failed to backup settings or packages to GitHub Gist." ) ;
195+ DialogHelper . HideLoadingDialog ( ) ;
196+
197+ Logger . Error ( "An error occurred while uploading the backup:" ) ;
198+ Logger . Error ( ex ) ;
199+
193200 var dialog = DialogHelper . DialogFactory . Create ( ) ;
194201 dialog . Title = CoreTools . Translate ( "Backup Failed" ) ;
195- dialog . Content = CoreTools . Translate ( "Could not back up settings and/or packages to GitHub Gist. Please check the logs for more details." ) ;
202+ dialog . Content = CoreTools . Translate ( "Could not back up packages to GitHub Gist: " ) + ex . Message ;
196203 dialog . PrimaryButtonText = CoreTools . Translate ( "OK" ) ;
197204 dialog . DefaultButton = ContentDialogButton . Primary ;
198- _ = DialogHelper . Window . ShowDialogAsync ( dialog ) ;
205+ await DialogHelper . Window . ShowDialogAsync ( dialog ) ;
199206 }
200207 UpdateBackupToGitHubButtonStatus ( ) ;
201208 }
0 commit comments