private void AddToPoll()
        {
            MessageStepDB msgStep = new MessageStepDB ();
            int CurrentStep = base.Intent.GetIntExtra ("CurrentStep", 1);
            msgStep.StepType = MessageStep.StepTypes.Polling;

            PollingStep pollStep = new PollingStep ();
            pollStep.PollingQuestion = txtPhotoPollMessage.Text;
            pollStep.PollingData1 = imgData1;
            pollStep.PollingData2 = imgData2;
            pollStep.PollingData3 = imgData3;
            pollStep.PollingData4 = imgData4;

            if (CurrentStep > ComposeMessageMainUtil.msgSteps.Count) {
                msgStep.StepNumber = ComposeMessageMainUtil.msgSteps.Count + 1;
                ComposeMessageMainUtil.msgSteps.Add (msgStep);
            } else {
                msgStep.StepNumber = CurrentStep;
                ComposeMessageMainUtil.msgSteps [CurrentStep - 1] = msgStep;
            }

            pollStep.StepNumber = msgStep.StepNumber;

            if (ComposeMessageMainUtil.pollSteps != null) {
                ComposeMessageMainUtil.pollSteps [pollStep.StepNumber - 1] = pollStep;
            } else {
                ComposeMessageMainUtil.pollSteps = new PollingStep[6];
                ComposeMessageMainUtil.pollSteps [0] = new PollingStep ();
                ComposeMessageMainUtil.pollSteps [1] = new PollingStep ();
                ComposeMessageMainUtil.pollSteps [2] = new PollingStep ();
                ComposeMessageMainUtil.pollSteps [3] = new PollingStep ();
                ComposeMessageMainUtil.pollSteps [4] = new PollingStep ();
                ComposeMessageMainUtil.pollSteps [5] = new PollingStep ();
                ComposeMessageMainUtil.pollSteps [pollStep.StepNumber - 1] = pollStep;
            }

            if (CurrentStep == 1) {
                StartActivity (typeof(ComposeMessageMainActivity));
                Finish ();
            } else {
                Finish ();
            }
        }
        private void SendContentPackMessage()
        {
            MessageStepDB messageStep = new MessageStepDB();
            messageStep.StepNumber = 1;
            switch (option)
            {
                case 1:
                    messageStep.StepType = MessageStep.StepTypes.Comix;
                    break;
                case 2:
                    messageStep.StepType = MessageStep.StepTypes.Comicon;
                    break;
                case 5:
                    messageStep.StepType = MessageStep.StepTypes.SoundFX;
                    break;
                case 6:
                    messageStep.StepType = MessageStep.StepTypes.Emoticon;
                    break;
                case 7:
                    messageStep.StepType = MessageStep.StepTypes.Animation;
                    break;
            }
            if (option != 7)
                messageStep.ContentPackItemID = ContentPackItemsUtil.contentPackItemID;
            //else
            //    messageStep.AnimationData = Animations.AnimationUtil.animation;

            MessageDB message = new MessageDB();
            message.FromAccountID = AndroidData.CurrentUser.AccountID;
            message.MessageStepDBList = new List<MessageStepDB>() { messageStep };

            List<Guid> recipientGuids = new List<Guid>();
            recipientGuids = Contacts.SelectContactsUtil.selectedContacts.Select(s => s.ContactAccountID).ToList();

            ContentInfo contentInfo = new ContentInfo(MessageDB.ConvertFromMessageDB(message), recipientGuids);
            //RunOnUiThread (delegate {
            mmg.QueueMessage(contentInfo, false, context);

            if (null != wowZapp.LaffOutOut.Singleton.OnGlobalReceived)
                wowZapp.LaffOutOut.Singleton.OnGlobalReceived(this, new MessageStepCreatedEventArgs(messageStep, null, null, null, null));
            if (MessageReceivedUtil.FromMessages)
                MessageReceivedUtil.FromMessagesDone = true;
            Finish();
            //});
        }
        private void SendAudioMessage()
        {
            ar.EndRecording();
            MessageStepDB messageStep = new MessageStepDB();
            messageStep.StepNumber = 1;
            messageStep.StepType = MessageStep.StepTypes.Voice;

            MessageDB message = new MessageDB();
            message.FromAccountID = AndroidData.CurrentUser.AccountID;
            message.MessageStepDBList = new List<MessageStepDB>() { messageStep };

            List<Guid> recipientGuids = new List<Guid>();
            recipientGuids = Contacts.SelectContactsUtil.selectedContacts.Select(s => s.ContactAccountID).ToList();

            ContentInfo contentInfo = new ContentInfo(MessageDB.ConvertFromMessageDB(message), recipientGuids);

            try
            {
                byte[] audioFile = File.ReadAllBytes(filename);
                contentInfo.VoiceRecordings.Add(messageStep.StepNumber, audioFile);
            #if DEBUG
                System.Diagnostics.Debug.WriteLine("audioFile.Length = {0}", audioFile.Length);
            #endif
            } catch (IOException e)
            {
            #if DEBUG
                System.Diagnostics.Debug.WriteLine("Exception thrown (audioFile read) : {0} - {1}", e.Message, e.StackTrace);
            #endif
                return;
            }

            #if DEBUG
            File.Delete(Android.OS.Environment.ExternalStorageDirectory + "/wz/audio.3gp");
            File.Copy(path, Android.OS.Environment.ExternalStorageDirectory + "/wz/audio.3gp", true);
            #endif

            RunOnUiThread(delegate
            {
                mmg.QueueMessage(contentInfo, false, context);

                if (null != wowZapp.LaffOutOut.Singleton.OnGlobalReceived)
                    wowZapp.LaffOutOut.Singleton.OnGlobalReceived(this, new MessageStepCreatedEventArgs(messageStep, null, path, null, null));

                Finish();
            });
        }
        private void SendTextMessage()
        {
            List<MessageStep> msgSteps = new List<MessageStep> ();

            MessageStepDB msgStep = new MessageStepDB ();
            msgStep.MessageText = text.Text;
            msgStep.StepNumber = 1;
            msgStep.StepType = MessageStep.StepTypes.Text;
            //msgSteps.Add (msgStep);

            List<Guid> toAccounts = new List<Guid> ();

            if (Contacts.SelectContactsUtil.selectedUserContacts == null) {
                foreach (ContactDB toAccount in Contacts.SelectContactsUtil.selectedContacts) {
                    toAccounts.Add (toAccount.ContactUser.AccountID);
                }
            } else {
                foreach (UserDB toAccount in Contacts.SelectContactsUtil.selectedUserContacts)
                    toAccounts.Add (toAccount.AccountID);
                Contacts.SelectContactsUtil.selectedUserContacts.Clear ();
            }
            MessageDB message = new MessageDB ();
            message.FromAccountID = AndroidData.CurrentUser.AccountID;
            message.MessageStepDBList = new List<MessageStepDB> (){msgStep};
            ContentInfo contentInfo = new ContentInfo (MessageDB.ConvertFromMessageDB (message), toAccounts);
            mmg.QueueMessage (contentInfo, true, context);
            if (Messages.MessageReceivedUtil.FromMessages)
                Messages.MessageReceivedUtil.FromMessagesDone = true;

            Finish ();
        }