Beispiel #1
0
 /// <summary>
 /// 更新昵称完成
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void UpdateRemarkComplete(object sender, UploadDataCompletedEventArgs res)
 {
     if (res.Error == null)//正常情况
     {
         var result = JsonConvert.DeserializeObject <JsonBase>(Encoding.UTF8.GetString(res.Result));
         if (result.resultCode == 1)
         {
             new DataOfFriends().UpdateRemarkName(Friend.userId, TempRemarkName); //更新数据库
             RemarkName        = TempRemarkName;                                  //更新界面
             Friend.remarkName = RemarkName;                                      //更新好友昵称
             TempRemarkName    = "";                                              //重置编辑文本框
             IsEditing         = false;                                           //取消编辑状态(关闭对话框)
             //通知主窗口更改备注
             var item = new MessageListItem
             {
                 Jid          = friend.userId,
                 MessageTitle = Friend.remarkName,
                 Avator       = Applicate.LocalConfigData.GetDisplayAvatorPath(friend.userId)
             };
             Messenger.Default.Send(item, MainViewNotifactions.UpdateAccountName);//通知主窗口更新名称
             Snackbar.Enqueue("修改昵称成功");
         }
     }
     else
     {
         Snackbar.Enqueue("修改昵称失败:" + res.Error.Message);
     }
 }
 //-------------------------------------------------------------------
 // # Topic Messages
 public void getMessageInfos(ListBox.ObjectCollection MessageList)
 {
     foreach (var MessageListItem in MessageList)
     {
         messagesInfo.Add(MessageListItem.ToString());
     }
 }
Beispiel #3
0
        /// <summary>
        /// 新增聊天信息
        /// </summary>
        /// <param name="message"></param>
        private void AddMessage(ChatMessage message)
        {
            var item = new MessageListItem()
            {
                Message = message
            };

            MessageListPanel.Controls.Add(item);
            MessageListPanel.VerticalScroll.Value = MessageListPanel.VerticalScroll.Maximum;
        }
Beispiel #4
0
        /// <summary>
        /// Room转MessageListItem
        /// </summary>
        /// <param name="room"></param>
        /// <returns></returns>
        public static MessageListItem ToMsgItem(this Room room)
        {
            MessageListItem item = new MessageListItem()
            {
                Id              = room.id,
                ShowTitle       = room.name,
                MessageTitle    = room.name,
                MessageItemType = ItemType.Group,
                Jid             = room.jid,
                Avator          = Applicate.LocalConfigData.GetDisplayAvatorPath(room.jid)
            };

            return(item);
        }
Beispiel #5
0
        private void OnEntryCompleted(object sender, EventArgs e)
        {
            var message = ((Entry)sender).Text;

            if (message.Length > 0)
            {
                //Clear entry
                ((Entry)sender).Text = "";
                //Make object to be placed in ListView

                var messageListItem = new MessageListItem(message, connection.Account.Name);
                messageList.Add(messageListItem);
                //Send the message to the bot
                connection.SendMessage(message);
            }
        }
Beispiel #6
0
 /// <summary>
 /// 克隆MessageListItem
 /// </summary>
 /// <param name="source">源Item</param>
 /// <returns>新Item</returns>
 public static MessageListItem Clone(this MessageListItem source)
 {
     return(new MessageListItem
     {
         Id = source.Id,
         MessageItemContent = source.MessageItemContent,
         MessageItemType = source.MessageItemType,
         Msg = source.Msg,
         MessageTitle = source.MessageTitle,
         Jid = source.Jid,
         TimeSend = source.TimeSend,
         UnReadCount = source.UnReadCount,
         ShowTitle = source.ShowTitle,
         IsVisibility = source.IsVisibility,
         Avator = source.Avator
     });
 }
Beispiel #7
0
        /// <summary>
        /// 更新群昵称
        /// </summary>
        /// <param name="item">更新项</param>
        private void UpdateGroupMemberRemark(MessageListItem item)
        {
            var lists = ChatMessageList.Where(c => c.fromUserId == item.Jid).ToList();

            if (lists.Count > 0)
            {
                for (int i = 0; i < lists.Count; i++)
                {
                    lists[i].fromUserName = item.ShowTitle;//设置修改后的昵称
                }
                Task.Run(() =>
                {
                    //for (int i = 0; i < lists.Count; i++)
                    //{
                    lists[0].UpdateNicknameByUserId(lists[0].jid, item.Jid, item.ShowTitle); //更新数据库
                                                                                             //}
                });
            }
        }
Beispiel #8
0
        /// <summary>
        /// <see cref="DataOfFriends"/>转<see cref="MessageListItem"/>
        /// </summary>
        /// <param name="friend"></param>
        /// <returns></returns>
        public static MessageListItem ToMsgListItem(this DataOfFriends friend)
        {
            var tmpitem = new MessageListItem();

            try
            {
                tmpitem = new MessageListItem()//实例化一个消息项
                {
                    MessageTitle = friend.toNickname,
                    Jid          = friend.toUserId,                                              //设置UserId
                    //MessageItemType = ItemType.User,//好友项
                    ShowTitle = friend.remarkName,                                               //备注名
                    Avator    = Applicate.LocalConfigData.GetDisplayAvatorPath(friend.toUserId), //获取头像
                };
            }
            catch (System.Exception ex)
            {
                ConsoleLog.Output("ToMsgListItem=-" + ex.Message);
            }
            return(tmpitem);
        }
        //public string deviceName = "MikroKopter_BT"; // Specify the device name to be selected; You can find the device name from the webb under bluetooth

        public async void Run(IBackgroundTaskInstance taskInstance)
        {
            //
            // TODO: Insert code to perform background work
            //
            // If you start any asynchronous methods here, prevent the task
            // from closing prematurely by using BackgroundTaskDeferral as
            // described in http://aka.ms/backgroundtaskdeferral
            //
            _deferral = taskInstance.GetDeferral();

            PowerManager.BatteryStatusChanged          += PowerManager_BatteryStatusChanged;
            PowerManager.PowerSupplyStatusChanged      += PowerManager_PowerSupplyStatusChanged;
            PowerManager.RemainingChargePercentChanged += PowerManager_RemainingChargePercentChanged;

            deviceId = await AzureIoTHub.TestHubConnection(false, "");

            DateTime d = DateTime.UtcNow;

            //RateSensor bs = new RateSensor();
            //bs.RateSensorInit();

            //await Task.Delay(1000);

            //bs.RateMonitorON();

            //mt = new MiotyTX();
            //mt.Init();
            //await Task.Delay(1000);

            long x = d.ToFileTime();

            if (deviceId != null)
            {
                await AzureIoTHub.SendDeviceToCloudMessageAsync("{\"pkey\":\"" + deviceId + "\", \"rkey\":\"" + x.ToString() + "\",\"status\":\"Device Restarted\"}");

                bool result = await AzureIoTHub.SendDeviceToCloudMessageAsync("Device Restarted");

                //InitAzureIotReceiver();
            }

            AzureIoTHub.counter++;

            // request access to vibration device
            //if (await VibrationDevice.RequestAccessAsync() != VibrationAccessStatus.Allowed)
            //{
            //    Debug.WriteLine("access to vibration device denied!!!!!!");
            //}

            //enable this to start periodic message to iot Hub
            this.timer = ThreadPoolTimer.CreateTimer(Timer_Tick, TimeSpan.FromSeconds(2));

            //this.fileReadTimer = ThreadPoolTimer.CreateTimer(FileReadTimer_Tick, TimeSpan.FromMilliseconds(900));

            try
            {
                await Task.Run(async() =>
                {
                    while (true)
                    {
                        string receivedMessage = null;

                        try
                        {
                            receivedMessage = await AzureIoTHub.ReceiveCloudToDeviceMessageAsync();
                            AzureIoTHub.counter++;
                        }
                        catch (Exception ex)
                        {
                            Debug.WriteLine("******ERROR RECEIVER: " + ex.Message);
                        }


                        if (receivedMessage == null)
                        {
                            continue;
                        }
                        Debug.WriteLine("Received message:" + receivedMessage);

                        JsonObject j = null;
                        try
                        {
                            j = JsonObject.Parse(receivedMessage);
                        }
                        catch
                        {
                            Debug.WriteLine(" error");
                            continue;
                        }

                        try
                        {
                            if (j.Keys.Contains("msg"))
                            {
                                string msg = j.GetNamedString("msg");
                                AzureIoTHub.counter++;
                                MessageListItem m = new MessageListItem();
                                m.message         = msg;
                                AzureIoTHub.msgList.Add(m);

                                Windows.Storage.StorageFolder storageFolder = Windows.Storage.KnownFolders.PicturesLibrary;
                                Windows.Storage.StorageFile msgFile         = await storageFolder.CreateFileAsync("message.txt", Windows.Storage.CreationCollisionOption.GenerateUniqueName);
                                await Windows.Storage.FileIO.AppendTextAsync(msgFile, msg);
                            }
                            if (j.Keys.Contains("cmd"))
                            {
                                string cmd = j.GetNamedString("cmd");
                                if (cmd == "info")
                                {
                                    await UpdateBatteryInfo();
                                }
                                if (cmd == "wake")
                                {
                                    if (ShutdownManager.IsPowerStateSupported(PowerState.ConnectedStandby))
                                    {
                                        ShutdownManager.EnterPowerState(PowerState.ConnectedStandby, TimeSpan.FromSeconds(1));
                                        //ShutdownManager.EnterPowerState(PowerState.SleepS3, TimeSpan.FromSeconds(15));
                                    }
                                }
                                if (cmd == "vibra")
                                {
                                    //try
                                    //{
                                    //    VibrationDevice VibrationDevice = await VibrationDevice.GetDefaultAsync();
                                    //    SimpleHapticsControllerFeedback BuzzFeedback = null;
                                    //    foreach (var f in VibrationDevice.SimpleHapticsController.SupportedFeedback)
                                    //    {
                                    //        if (f.Waveform == KnownSimpleHapticsControllerWaveforms.BuzzContinuous)
                                    //            BuzzFeedback = f;
                                    //    }
                                    //    if (BuzzFeedback != null)
                                    //    {
                                    //        VibrationDevice.SimpleHapticsController.SendHapticFeedbackForDuration(BuzzFeedback, 1, TimeSpan.FromMilliseconds(200));
                                    //    }
                                    //}
                                    //catch (Exception ex)
                                    //{
                                    //}
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                        }
                    }
                });
            }
            catch (Exception ex)
            {
            }


            //
            // Once the asynchronous method(s) are done, close the deferral.
            //
            //_deferral.Complete();
        }
                ListItemView GetStandardView( int position, View convertView, ViewGroup parent )
                {
                    MessageListItem messageItem = convertView as MessageListItem;
                    if ( messageItem == null )
                    {
                        messageItem = new MessageListItem( ParentFragment.Activity.BaseContext );
                    }

                    messageItem.ParentAdapter = this;
                    messageItem.Position = position;

                    messageItem.Title.Text = ParentFragment.Series.Messages[ position ].Name;
                    if ( ParentFragment.Series.Private == true || 
                        ParentFragment.Series.Messages[ position ].Private == true )
                    {
                        messageItem.Title.Text += " (Private)";
                    }

                    messageItem.Date.Text = ParentFragment.Series.Messages[ position ].Date;
                    messageItem.Speaker.Text = ParentFragment.Series.Messages[ position ].Speaker;

                    if ( string.IsNullOrEmpty( ParentFragment.Series.Messages[ position ].AudioUrl ) == true )
                    {
                        messageItem.ToggleListenButton( false );
                    }
                    else
                    {
                        messageItem.ToggleListenButton( true );
                    }

                    if ( string.IsNullOrEmpty( ParentFragment.Series.Messages[ position ].WatchUrl ) == true )
                    {
                        messageItem.ToggleWatchButton( false );
                    }
                    else
                    {
                        messageItem.ToggleWatchButton( true );
                    }

                    if ( string.IsNullOrEmpty( ParentFragment.Series.Messages[ position ].NoteUrl ) == true )
                    {
                        messageItem.ToggleTakeNotesButton( false );
                    }
                    else
                    {
                        messageItem.ToggleTakeNotesButton( true );
                    }

                    return messageItem;
                }
        /// <summary>
        /// 收到消息时
        /// </summary>
        /// <param name="msg">收到的新消息</param>
        public void ProcessNewMessage(Messageobject msg)
        {
            if (msg.type >= kWCMessageType.FriendRequest && msg.type <= kWCMessageType.PhoneContactToFriend)
            {
                var vItem    = new VerifingFriend();
                var mControl = ServiceLocator.Current.GetInstance <MainViewModel>();
                if (VerifyUserList.FirstOrDefault(v => v.toUserId == msg.fromUserId) != null)
                {
                    vItem = VerifyUserList.FirstOrDefault(v => v.toUserId == msg.fromUserId);
                }

                switch (msg.type)
                {
                case kWCMessageType.FriendRequest:
                    vItem.VerifyStatus = -4;          //对方添加己方
                    vItem.StatusTag    = "通过验证";
                    vItem.Content      = msg.content; //消息内容
                    break;

                case kWCMessageType.RequestAgree:
                    vItem.VerifyStatus = 1;
                    vItem.StatusTag    = "已通过验证";
                    vItem.Content      = "验证被" + msg.fromUserName /*((vItem.sex == 0) ? ("他") : ("她"))*/ + "通过了";
                    //mControl.AddToFriendList(msg.FromId);//添加到好友列表
                    var tmp = new MessageListItem()
                    {
                        Jid             = msg.FromId,
                        ShowTitle       = msg.fromUserName,
                        MessageTitle    = msg.fromUserName,
                        MessageItemType = ItemType.Message,
                        Avator          = Applicate.LocalConfigData.GetDisplayAvatorPath(msg.FromId)
                    };
                    mControl.MsgItemMouseDown(tmp);
                    mControl.StartNewChatFromItem(tmp.Clone());
                    break;

                case kWCMessageType.RequestRefuse:    //对方回话
                    //item.StatusTag = "";
                    vItem.CanAnswer = true;
                    vItem.Content   = msg.content; //回话内容
                    DialogShow      = false;
                    AnswerContnt    = "";          //清空文本
                    break;

                case kWCMessageType.DeleteFriend:
                    //System.Windows.Forms.MessageBox.Show("删除成功");
                    vItem.Content      = msg.fromUserName + " 已删除了我";
                    vItem.VerifyStatus = 0;
                    break;

                case kWCMessageType.BlackFriend:
                    vItem.VerifyStatus = 0;
                    vItem.Content      = msg.fromUserName + " 拉黑了我";
                    break;

                case kWCMessageType.RequestFriendDirectly:
                    vItem.VerifyStatus = 1;                            //互为好友
                    vItem.Content      = msg.fromUserName + " 添加你为好友"; //消息内容
                    break;

                case kWCMessageType.CancelBlackFriend:
                    vItem.Content = msg.fromUserName + " 取消了黑名单";
                    Messenger.Default.Send(vItem.toUserId, MainViewNotifactions.CancelBlockItem);
                    var tmpFriend = new DataOfFriends();
                    break;

                default:
                    break;
                }
                //更新最近用户中的内容
                Messenger.Default.Send(new MessageListItem
                {
                    Jid = "10001",
                    MessageItemContent = vItem.Content,
                    Avator             = Applicate.LocalConfigData.GetDisplayAvatorPath("10001")
                }, MainViewNotifactions.UpdateRecentItemContent);
                vItem.toUserId   = msg.fromUserId;            //UserId
                vItem.toNickname = msg.fromUserName;          //昵称
                vItem.Type       = Convert.ToInt32(msg.type); //消息类型
                vItem.InsertOrUpdate();                       //存入数据库
                AddOrUpdateToList(vItem);
            }
        }
Beispiel #12
0
                ListItemView GetStandardView(int position, View convertView, ViewGroup parent)
                {
                    MessageListItem messageItem = convertView as MessageListItem;

                    if (messageItem == null)
                    {
                        messageItem = new MessageListItem(ParentFragment.Activity.BaseContext);
                    }

                    messageItem.ParentAdapter = this;
                    messageItem.Position      = position;

                    messageItem.Title.Text = ParentFragment.Series.Messages[position].Name;
                    if (ParentFragment.Series.SeriesPrivate == true ||
                        ParentFragment.Series.Messages[position].Private == true)
                    {
                        messageItem.Title.Text += " (Private)";
                    }

                    messageItem.Date.Text    = ParentFragment.Series.Messages[position].Date;
                    messageItem.Speaker.Text = ParentFragment.Series.Messages[position].Speaker;

                    // AudioURL - if blank, disable the button
                    if (string.IsNullOrWhiteSpace(ParentFragment.Series.Messages[position].AudioUrl) == true)
                    {
                        messageItem.ToggleListenButton(false);
                    }
                    else
                    {
                        messageItem.ToggleListenButton(true);
                    }

                    // WatchURL - if blank, disable the button
                    if (string.IsNullOrWhiteSpace(ParentFragment.Series.Messages[position].WatchUrl) == true)
                    {
                        messageItem.ToggleWatchButton(false);
                    }
                    else
                    {
                        messageItem.ToggleWatchButton(true);
                    }

                    // NoteURL - if blank, disable the button
                    if (string.IsNullOrWhiteSpace(ParentFragment.Series.Messages[position].NoteUrl) == true)
                    {
                        messageItem.ToggleTakeNotesButton(false);
                    }
                    else
                    {
                        messageItem.ToggleTakeNotesButton(true);
                    }

                    // DiscussionGuideURL - if blank, disable the button
                    if (string.IsNullOrWhiteSpace(ParentFragment.Series.Messages[position].DiscussionGuideUrl) == true)
                    {
                        messageItem.ToggleDiscussionGuideButton(false);
                    }
                    else
                    {
                        messageItem.ToggleDiscussionGuideButton(true);
                    }

                    return(messageItem);
                }