Skip to content

Commit

Permalink
GTasks: don't allow exclude the default task list (#211)
Browse files Browse the repository at this point in the history
* GTasks: don't allow exclude the default task list

* is_default_task_list -> is_gtasks_default_task_list, throw error when getting the default task list

Co-authored-by: Marco Betschart <email@marco.betschart.name>
  • Loading branch information
Marukesu and marbetschar authored Mar 27, 2021
1 parent b1bbfdc commit 044a7d5
Showing 1 changed file with 20 additions and 1 deletion.
21 changes: 20 additions & 1 deletion src/TaskModel.vala
Original file line number Diff line number Diff line change
Expand Up @@ -293,7 +293,7 @@ public class Tasks.TaskModel : Object {

switch (backend_name.down ()) {
case "webdav": return true;
case "google": return true;
case "google": return !is_gtasks_default_task_list (source, registry);
case "local": return source.removable;
}

Expand All @@ -303,6 +303,25 @@ public class Tasks.TaskModel : Object {
return false;
}

private bool is_gtasks_default_task_list (E.Source task_list, E.SourceRegistry registry) throws Error {
var collection_source = registry.find_extension (task_list, E.SOURCE_EXTENSION_COLLECTION);
var authorizer = (GData.Authorizer) new E.GDataOAuth2Authorizer (collection_source, typeof (GData.TasksService));
var service = new GData.TasksService (authorizer);
var id = ((E.SourceResource) task_list.get_extension (
E.SOURCE_EXTENSION_RESOURCE
)).identity.replace ("gtasks::", "");

var tasklist = (GData.TasksTasklist) service.query_single_entry (
GData.TasksService.get_primary_authorization_domain (),
"https://www.googleapis.com/tasks/v1/users/@me/lists/@default",
null,
typeof (GData.TasksTasklist),
null
);

return tasklist.id == id;
}

public string get_collection_backend_name (E.Source source, E.SourceRegistry registry) {
string? backend_name = null;

Expand Down

0 comments on commit 044a7d5

Please sign in to comment.