protected internal override async void OnMessageReceived(ConversationMessage message) { var brm = message as BrowseRequestMessage; if (brm != null) { //需要查找父目录,看当前请求的文件或者目录,是不是在他们的子项目,如果是子项目,才给回应。 var msg = await BrowseResponseUtil.Response(this, brm); PostMessageAsync(msg); } else if (message is GetItemsRecoverMessage) { throw new NotImplementedException(); } else if (message is CancelItemMessage) { throw new NotImplementedException(); } }
protected internal override async void OnMessageReceived(ConversationMessage message) { var brMessage = message as BrowseRequestMessage; if (brMessage == null) { return; } #region comment //TODO 如果是安卓又该如何处理?首先需要搞清楚这是在分类浏览,还是在浏览目录,如果是在浏览目录,这个代码可用 //如果是在分类浏览,那么需要去数据库中查询,并返回列表。 //如果安卓做分类浏览,那么分类浏览中有没有子目录的概念?有的图库中有多个相册,是如何处理的?多个相册看起来像是文件夹的概念。 //TODO 新拍摄的图片之类的,没有立即存储到MediaStore,如何处理? //TODO 如果有生成并缓存缩略图,那些缩略图要被MediaStore忽略才行。 //http://blog.csdn.net/yhcelebrite/article/details/11714925 //http://blog.csdn.net/bgc525725278/article/details/8131657 #endregion var respondMessage = await BrowseResponseUtil.Response(this, brMessage); if (CurrentFolder?.Children.FirstOrDefault(c => c.Id == respondMessage.CurrentDir?.Id) != null) { //如果这次要求浏览的目录是上次浏览的目录的子目录 //CurrentFolder.FolderString respondMessage.CurrentDir.Parent = CurrentFolder; } CurrentFolder = respondMessage.CurrentDir; if (CurrentFolder != null) { if (NamedFolders.IsNamedFolderId(CurrentFolder.Id)) { _browseHistories.Clear(); //已经到顶层目录,不会再有返回操作。 } _browseHistories.Add(CurrentFolder); } PostMessageAsync(respondMessage); }
protected override async Task <ConversationAgreeMessage> OnAgreed() { return(await BrowseResponseUtil.Response(this, RequestMessage as BrowseRequestMessage)); }
internal BrowseResponder() { _bru = new BrowseResponseUtil(); }