aboutsummaryrefslogtreecommitdiff
path: root/src/mm-iface-modem-messaging.c
diff options
context:
space:
mode:
authorDan Williams <dan@ioncontrol.co>2025-04-19 10:57:54 -0500
committerDan Williams <dan@ioncontrol.co>2025-05-08 20:24:37 -0500
commit9c8ec57c24ed8eeafaa3c84f5a458c9c41d22ae5 (patch)
tree30db75cea9e7f0610cfba66701eca94c4fb3e9e2 /src/mm-iface-modem-messaging.c
parentb81f23e24aad7d4fb37e837bbdcab4f43bccfc71 (diff)
base-sms: pass SMS default storage at creation time and update as needed
Instead of getting it from the MMIfaceModemMessaging when the SMS is stored. This flattens dependencies between MMBaseSms and MMIfaceModemMessaging. Signed-off-by: Dan Williams <dan@ioncontrol.co>
Diffstat (limited to 'src/mm-iface-modem-messaging.c')
-rw-r--r--src/mm-iface-modem-messaging.c22
1 files changed, 21 insertions, 1 deletions
diff --git a/src/mm-iface-modem-messaging.c b/src/mm-iface-modem-messaging.c
index 51c8b24e..941e58e0 100644
--- a/src/mm-iface-modem-messaging.c
+++ b/src/mm-iface-modem-messaging.c
@@ -433,7 +433,8 @@ handle_set_default_storage_ready (MMIfaceModemMessaging *self,
GAsyncResult *res,
HandleSetDefaultStorageContext *ctx)
{
- GError *error = NULL;
+ GError *error = NULL;
+ g_autoptr(MMSmsList) list = NULL;
if (!MM_IFACE_MODEM_MESSAGING_GET_IFACE (self)->set_default_storage_finish (self, res, &error)) {
mm_obj_warn (self, "could not set default storage: %s", error->message);
@@ -446,6 +447,13 @@ handle_set_default_storage_ready (MMIfaceModemMessaging *self,
MM_IFACE_MODEM_MESSAGING_SMS_DEFAULT_STORAGE, ctx->storage,
NULL);
+ /* Update default storage in all SMSs too */
+ g_object_get (self,
+ MM_IFACE_MODEM_MESSAGING_SMS_LIST, &list,
+ NULL);
+ if (list)
+ mm_sms_list_set_default_storage (list, ctx->storage);
+
mm_obj_info (self, "set the default storage successfully");
mm_gdbus_modem_messaging_complete_set_default_storage (ctx->skeleton, ctx->invocation);
handle_set_default_storage_context_free (ctx);
@@ -598,6 +606,18 @@ mm_iface_modem_messaging_is_storage_supported_for_receiving (MMIfaceModemMessagi
error);
}
+MMSmsStorage
+mm_iface_modem_messaging_get_default_storage (MMIfaceModemMessaging *self)
+{
+ MMSmsStorage storage = MM_SMS_STORAGE_UNKNOWN;
+
+ g_object_get (self,
+ MM_IFACE_MODEM_MESSAGING_SMS_DEFAULT_STORAGE, &storage,
+ NULL);
+ g_assert (storage != MM_SMS_STORAGE_UNKNOWN);
+ return storage;
+}
+
/*****************************************************************************/
static void