summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@lanedo.com>2013-05-17 15:01:12 +0200
committerAleksander Morgado <aleksander@lanedo.com>2013-05-17 15:01:12 +0200
commit2669bb7a9208fce9b0ec80f4ec119e081d883513 (patch)
tree2cdffe70ab05ce15fef6bc9cd9600cf4a1637026
parentd1a6f483651938665d6644a321129a0fcefb117b (diff)
downloadModemManager-2669bb7a9208fce9b0ec80f4ec119e081d883513.tar.gz
HACK HACK HACK
-rw-r--r--src/mm-broadband-modem-qmi.c100
1 files changed, 76 insertions, 24 deletions
diff --git a/src/mm-broadband-modem-qmi.c b/src/mm-broadband-modem-qmi.c
index f71cfaee1..706217dff 100644
--- a/src/mm-broadband-modem-qmi.c
+++ b/src/mm-broadband-modem-qmi.c
@@ -5982,6 +5982,7 @@ typedef struct {
MMSmsStorage storage;
GArray *message_array;
guint i;
+ guint step;
} LoadInitialSmsPartsContext;
static void
@@ -6141,6 +6142,8 @@ read_next_sms_part (LoadInitialSmsPartsContext *ctx)
qmi_message_wms_raw_read_input_unref (input);
}
+static void step (LoadInitialSmsPartsContext *ctx);
+
static void
wms_list_messages_ready (QmiClientWms *client,
GAsyncResult *res,
@@ -6160,9 +6163,11 @@ wms_list_messages_ready (QmiClientWms *client,
if (!qmi_message_wms_list_messages_output_get_result (output, &error)) {
g_prefix_error (&error, "Couldn't list messages: ");
- g_simple_async_result_take_error (ctx->result, error);
- load_initial_sms_parts_context_complete_and_free (ctx);
- qmi_message_wms_list_messages_output_unref (output);
+
+ g_warning ("%s", error->message);
+ g_error_free (error);
+ ctx->step++;
+ step (ctx);
return;
}
@@ -6182,6 +6187,72 @@ wms_list_messages_ready (QmiClientWms *client,
}
static void
+step (LoadInitialSmsPartsContext *ctx)
+{
+ QmiMessageWmsListMessagesInput *input;
+
+ if (ctx->step == 8) {
+ g_simple_async_result_set_error (ctx->result, MM_CORE_ERROR, MM_CORE_ERROR_FAILED, "kaka");
+ load_initial_sms_parts_context_complete_and_free (ctx);
+ return;
+ }
+
+ mm_dbg ("[STEP %u] loading messages from storage '%s'... (qmi: %u)",
+ ctx->step,
+ mm_sms_storage_get_string (ctx->storage),
+ mm_sms_storage_to_qmi_storage_type (ctx->storage));
+
+ /* Request to list messages in a given storage */
+ input = qmi_message_wms_list_messages_input_new ();
+ qmi_message_wms_list_messages_input_set_storage_type (
+ input,
+ mm_sms_storage_to_qmi_storage_type (ctx->storage),
+ NULL);
+
+ if (ctx->step < 2) {
+ qmi_message_wms_list_messages_input_set_message_tag (input,
+ QMI_WMS_MESSAGE_TAG_TYPE_MT_READ,
+ NULL);
+ if (ctx->step < 1)
+ qmi_message_wms_list_messages_input_set_message_mode (input,
+ QMI_WMS_MESSAGE_MODE_GSM_WCDMA,
+ NULL);
+ } else if (ctx->step < 4) {
+ qmi_message_wms_list_messages_input_set_message_tag (input,
+ QMI_WMS_MESSAGE_TAG_TYPE_MT_NOT_READ,
+ NULL);
+ if (ctx->step < 3)
+ qmi_message_wms_list_messages_input_set_message_mode (input,
+ QMI_WMS_MESSAGE_MODE_GSM_WCDMA,
+ NULL);
+ } else if (ctx->step < 6) {
+ qmi_message_wms_list_messages_input_set_message_tag (input,
+ QMI_WMS_MESSAGE_TAG_TYPE_MO_SENT,
+ NULL);
+ if (ctx->step < 5)
+ qmi_message_wms_list_messages_input_set_message_mode (input,
+ QMI_WMS_MESSAGE_MODE_GSM_WCDMA,
+ NULL);
+ } else if (ctx->step < 8) {
+ qmi_message_wms_list_messages_input_set_message_tag (input,
+ QMI_WMS_MESSAGE_TAG_TYPE_MO_NOT_SENT,
+ NULL);
+ if (ctx->step < 7)
+ qmi_message_wms_list_messages_input_set_message_mode (input,
+ QMI_WMS_MESSAGE_MODE_GSM_WCDMA,
+ NULL);
+ }
+
+ qmi_client_wms_list_messages (QMI_CLIENT_WMS (ctx->client),
+ input,
+ 5,
+ NULL,
+ (GAsyncReadyCallback)wms_list_messages_ready,
+ ctx);
+ qmi_message_wms_list_messages_input_unref (input);
+}
+
+static void
load_initial_sms_parts (MMIfaceModemMessaging *self,
MMSmsStorage storage,
GAsyncReadyCallback callback,
@@ -6189,7 +6260,6 @@ load_initial_sms_parts (MMIfaceModemMessaging *self,
{
LoadInitialSmsPartsContext *ctx;
QmiClient *client = NULL;
- QmiMessageWmsListMessagesInput *input;
if (!ensure_qmi_client (MM_BROADBAND_MODEM_QMI (self),
QMI_SERVICE_WMS, &client,
@@ -6204,27 +6274,9 @@ load_initial_sms_parts (MMIfaceModemMessaging *self,
callback,
user_data,
load_initial_sms_parts);
+ ctx->step = 0;
- mm_dbg ("loading messages from storage '%s'...",
- mm_sms_storage_get_string (storage));
-
- /* Request to list messages in a given storage */
- input = qmi_message_wms_list_messages_input_new ();
- qmi_message_wms_list_messages_input_set_storage_type (
- input,
- mm_sms_storage_to_qmi_storage_type (storage),
- NULL);
- qmi_message_wms_list_messages_input_set_message_mode (
- input,
- QMI_WMS_MESSAGE_MODE_GSM_WCDMA,
- NULL);
- qmi_client_wms_list_messages (QMI_CLIENT_WMS (ctx->client),
- input,
- 5,
- NULL,
- (GAsyncReadyCallback)wms_list_messages_ready,
- ctx);
- qmi_message_wms_list_messages_input_unref (input);
+ step (ctx);
}
/*****************************************************************************/