aboutsummaryrefslogtreecommitdiff
path: root/src/mm-base-sms.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-base-sms.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-base-sms.c')
-rw-r--r--src/mm-base-sms.c22
1 files changed, 19 insertions, 3 deletions
diff --git a/src/mm-base-sms.c b/src/mm-base-sms.c
index daf7fb67..07081aa3 100644
--- a/src/mm-base-sms.c
+++ b/src/mm-base-sms.c
@@ -55,6 +55,7 @@ enum {
PROP_MAX_PARTS,
PROP_MULTIPART_REFERENCE,
PROP_IS_3GPP,
+ PROP_DEFAULT_STORAGE,
PROP_LAST
};
@@ -93,6 +94,8 @@ struct _MMBaseSmsPrivate {
/* TRUE for 3GPP SMS; FALSE for CDMA */
gboolean is_3gpp;
+
+ MMSmsStorage default_storage;
};
/*****************************************************************************/
@@ -486,9 +489,7 @@ handle_store (MMBaseSms *self,
if (ctx->storage == MM_SMS_STORAGE_UNKNOWN) {
/* We'll set now the proper storage, taken from the default mem2 one */
- g_object_get (self->priv->modem,
- MM_IFACE_MODEM_MESSAGING_SMS_DEFAULT_STORAGE, &ctx->storage,
- NULL);
+ ctx->storage = self->priv->default_storage;
g_assert (ctx->storage != MM_SMS_STORAGE_UNKNOWN);
}
@@ -1265,6 +1266,9 @@ set_property (GObject *object,
case PROP_IS_3GPP:
self->priv->is_3gpp = g_value_get_boolean (value);
break;
+ case PROP_DEFAULT_STORAGE:
+ self->priv->default_storage = g_value_get_enum (value);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -1304,6 +1308,9 @@ get_property (GObject *object,
case PROP_IS_3GPP:
g_value_set_boolean (value, self->priv->is_3gpp);
break;
+ case PROP_DEFAULT_STORAGE:
+ g_value_set_enum (value, self->priv->default_storage);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -1440,4 +1447,13 @@ mm_base_sms_class_init (MMBaseSmsClass *klass)
FALSE,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY);
g_object_class_install_property (object_class, PROP_IS_3GPP, properties[PROP_IS_3GPP]);
+
+ properties[PROP_DEFAULT_STORAGE] =
+ g_param_spec_enum (MM_BASE_SMS_DEFAULT_STORAGE,
+ "Default storage",
+ "Default SMS storage",
+ MM_TYPE_SMS_STORAGE,
+ MM_SMS_STORAGE_UNKNOWN,
+ G_PARAM_READWRITE);
+ g_object_class_install_property (object_class, PROP_DEFAULT_STORAGE, properties[PROP_DEFAULT_STORAGE]);
}