commit 68dc9951534988d9ac21358f51ee72c0a81e2a9d
parent 8b9553de982477e80ae9465e1eafb50eaa532a7c
Author: Jacki <jacki@thejackimonster.de>
Date: Fri, 19 Jan 2024 00:48:49 +0100
Add documentation comments to header and code cleanup
Signed-off-by: Jacki <jacki@thejackimonster.de>
Diffstat:
6 files changed, 77 insertions(+), 1 deletion(-)
diff --git a/src/application.c b/src/application.c
@@ -351,6 +351,8 @@ _request_background_callback(GObject *source_object,
portal, result, &error
);
+ request_drop(request);
+
if (error) {
g_printerr("ERROR: %s\n", error->message);
g_error_free(error);
diff --git a/src/contact.h b/src/contact.h
@@ -63,7 +63,7 @@ contact_destroy_info(struct GNUNET_CHAT_Contact *contact);
*/
void
contact_set_last_message_to_info(const struct GNUNET_CHAT_Contact *contact,
- void *message);
+ void *message);
/**
* Returns the latest join/leave UI message handle of
diff --git a/src/request.c b/src/request.c
@@ -118,6 +118,18 @@ request_cleanup(MESSENGER_Request *request)
}
void
+request_drop(MESSENGER_Request *request)
+{
+ if (request->application->requests)
+ request->application->requests = g_list_remove(
+ request->application->requests,
+ request
+ );
+
+ request_delete(request);
+}
+
+void
request_delete(MESSENGER_Request *request)
{
request_cleanup(request);
diff --git a/src/request.h b/src/request.h
@@ -36,29 +36,87 @@ typedef struct MESSENGER_Request {
gpointer user_data;
} MESSENGER_Request;
+/**
+ * Creates a new request for the messsenger
+ * application for a certain permission.
+ *
+ * The request object will automatically be
+ * added to the list of the messenger application.
+ *
+ * @param application Messenger application
+ * @param cancellable Cancellable object (optional)
+ * @param user_data User data (optional)
+ * @return New request object
+ */
MESSENGER_Request*
request_new(MESSENGER_Application *application,
GCancellable *cancellable,
gpointer user_data);
+/**
+ * Creates a new request for the messsenger
+ * application for a background permission.
+ *
+ * @param application Messenger application
+ * @param flags Background flags
+ * @param callback Callback
+ * @param user_data User data
+ * @return New background request object
+ */
MESSENGER_Request*
request_new_background(MESSENGER_Application *application,
XdpBackgroundFlags flags,
GAsyncReadyCallback callback,
gpointer user_data);
+/**
+ * Creates a new request for the messsenger
+ * application for a camera permission.
+ *
+ * @param application Messenger application
+ * @param flags Camera flags
+ * @param callback Callback
+ * @param user_data User data
+ * @return New camera request object
+ */
MESSENGER_Request*
request_new_camera(MESSENGER_Application *application,
XdpCameraFlags flags,
GAsyncReadyCallback callback,
gpointer user_data);
+/**
+ * Cancel a request object if possible.
+ *
+ * @param request Request object
+ */
void
request_cancel(MESSENGER_Request *request);
+/**
+ * Cleanup a request object and its owned
+ * resources.
+ *
+ * @param request Request object
+ */
void
request_cleanup(MESSENGER_Request *request);
+/**
+ * Drop a request object from the messenger
+ * application list of requests.
+ *
+ * @param request Request object
+ */
+void
+request_drop(MESSENGER_Request *request);
+
+/**
+ * Delete a request object and its owned
+ * resources.
+ *
+ * @param request Request object
+ */
void
request_delete(MESSENGER_Request *request);
diff --git a/src/ui/new_contact.c b/src/ui/new_contact.c
@@ -291,6 +291,8 @@ _request_camera_callback(GObject *source_object,
portal, result, &error
);
+ request_drop(request);
+
if (error) {
g_printerr("ERROR: %s\n", error->message);
g_error_free(error);
diff --git a/src/ui/settings.c b/src/ui/settings.c
@@ -59,6 +59,8 @@ _request_background_callback(GObject *source_object,
portal, result, &error
);
+ request_drop(request);
+
if (error) {
g_printerr("ERROR: %s\n", error->message);
g_error_free(error);