@@ -861,12 +861,12 @@ public class Dialogs.Preferences.PreferencesWindow : Adw.PreferencesDialog {
861861 var settings_header = new Dialogs .Preferences .SettingsHeader (_(" Accounts" ));
862862
863863 var todoist_item = new Widgets .ContextMenu .MenuItem (_(" Todoist" ));
864- var caldav_item = new Widgets .ContextMenu .MenuItem (_(" Nextcloud" ));
864+ var nextcloud_item = new Widgets .ContextMenu .MenuItem (_(" Nextcloud" ));
865865
866866 var menu_box = new Gtk .Box (Gtk . Orientation . VERTICAL , 0 );
867867 menu_box. margin_top = menu_box. margin_bottom = 3 ;
868868 menu_box. append (todoist_item);
869- menu_box. append (caldav_item );
869+ menu_box. append (nextcloud_item );
870870
871871 var popover = new Gtk .Popover () {
872872 has_arrow = true ,
@@ -953,8 +953,8 @@ public class Dialogs.Preferences.PreferencesWindow : Adw.PreferencesDialog {
953953 push_subpage (get_oauth_todoist_page ());
954954 });
955955
956- caldav_item .clicked.connect (() => {
957- push_subpage (get_caldav_setup_page ());
956+ nextcloud_item .clicked.connect (() => {
957+ push_subpage (get_nextcloud_setup_page ());
958958 });
959959
960960 return new Adw.NavigationPage (toolbar_view , "account ");
@@ -1328,36 +1328,19 @@ public class Dialogs.Preferences.PreferencesWindow : Adw.PreferencesDialog {
13281328 return page;
13291329 }
13301330
1331- private Adw . NavigationPage get_caldav_setup_page () {
1331+ private Adw . NavigationPage get_nextcloud_setup_page () {
13321332 var settings_header = new Dialogs .Preferences .SettingsHeader (_(" Nextcloud Setup" ));
13331333
13341334 var server_entry = new Adw .EntryRow ();
13351335 server_entry. title = _(" Server URL" );
13361336
1337- var username_entry = new Adw .EntryRow ();
1338- username_entry. title = _(" User Name" );
1339-
1340- var password_entry = new Adw .PasswordEntryRow ();
1341- password_entry. title = _(" Password" );
1342-
1343- var providers_model = new Gtk .StringList (null );
1344- providers_model. append (_(" Nextcloud" ));
1345- // providers_model.append (_("Radicale"));
1346-
1347- var providers_row = new Adw .ComboRow ();
1348- providers_row. title = _(" Provider" );
1349- providers_row. model = providers_model;
1350-
13511337 var entries_group = new Adw .PreferencesGroup ();
13521338
13531339 entries_group. add (server_entry);
1354- entries_group. add (username_entry);
1355- entries_group. add (password_entry);
1356- entries_group. add (providers_row);
13571340
13581341 var message_label = new Gtk .Label (" " " Server URL examples:
1359- - https://evi.nl.tab.digital /
1360- - https://use01.thegood.cloud /" " " ) {
1342+ - https://cloud.example.com /
1343+ - https://example.com/nextcloud /" " " ) {
13611344 wrap = true
13621345 };
13631346
@@ -1433,35 +1416,7 @@ public class Dialogs.Preferences.PreferencesWindow : Adw.PreferencesDialog {
14331416 server_entry. remove_css_class (" error" );
14341417 }
14351418
1436- if (server_entry. has_css_class (" error" ) || username_entry. has_css_class (" error" ) | password_entry. has_css_class (" error" )) {
1437- login_button. sensitive = false ;
1438- } else {
1439- login_button. sensitive = true ;
1440- }
1441- });
1442-
1443- username_entry. changed. connect (() = > {
1444- if (username_entry. text != null && username_entry. text != " " ) {
1445- username_entry. remove_css_class (" error" );
1446- } else {
1447- username_entry. add_css_class (" error" );
1448- }
1449-
1450- if (server_entry. has_css_class (" error" ) || username_entry. has_css_class (" error" ) | password_entry. has_css_class (" error" )) {
1451- login_button. sensitive = false ;
1452- } else {
1453- login_button. sensitive = true ;
1454- }
1455- });
1456-
1457- password_entry. changed. connect (() = > {
1458- if (password_entry. text != null && password_entry. text != " " ) {
1459- password_entry. remove_css_class (" error" );
1460- } else {
1461- password_entry. add_css_class (" error" );
1462- }
1463-
1464- if (server_entry. has_css_class (" error" ) || username_entry. has_css_class (" error" ) | password_entry. has_css_class (" error" )) {
1419+ if (server_entry. has_css_class (" error" )) {
14651420 login_button. sensitive = false ;
14661421 } else {
14671422 login_button. sensitive = true ;
@@ -1477,12 +1432,16 @@ public class Dialogs.Preferences.PreferencesWindow : Adw.PreferencesDialog {
14771432 cancellable. cancel ();
14781433 });
14791434
1480- Services . CalDAV . Core . get_default (). login. begin (CalDAVType . parse_index (providers_row. selected), server_entry. text, username_entry. text, password_entry. text, cancellable, (obj, res) = > {
1481- HttpResponse response = Services . CalDAV . Core . get_default (). login. end (res);
1435+ var core_service = Services . CalDAV . Core . get_default ();
1436+ var nextcloud_provider = (Services . CalDAV . Providers . Nextcloud ) core_service. providers_map. get (CalDAVType . NEXTCLOUD. to_string ());
1437+
1438+ nextcloud_provider. start_login_flow. begin (server_entry. text, cancellable, (obj, res) = > {
1439+ HttpResponse response = nextcloud_provider. start_login_flow. end (res);
1440+
14821441 if (response. status) {
14831442 Objects . Source source = (Objects . Source ) response. data_object. get_object ();
1484- Services . CalDAV . Core . get_default () . add_caldav_account. begin (source, cancellable, (obj, res) = > {
1485- response = Services . CalDAV . Core . get_default () . add_caldav_account. end (res);
1443+ core_service . add_caldav_account. begin (source, cancellable, (obj, res) = > {
1444+ response = core_service . add_caldav_account. end (res);
14861445
14871446 if (! response. status) {
14881447 login_button. is_loading = false ;
0 commit comments