using System;
using Shared;
using HDL_ON.Entity;
using System.Collections.Generic;
using HDL_ON.DAL.Server;
using System.Threading;
namespace HDL_ON.UI
{
public partial class RoomEditPage
{
///
/// 加载事件列表
///
void LoadEventList()
{
LoadEvent_PictureOptionView();
LoadEvent_EditRoomName();
LoadEvent_SkinBindFloor();
LoadEvent_SkipEditFunctionList();
LoadEvent_Option();
//LoadEvent_SkipSharedRoomFunctionPage();
}
///
/// 底部按钮事件
///
void LoadEvent_Option()
{
btnOption.MouseUpEventHandler = (sender, e) =>
{
Action action = () =>
{
var waitPage = new Loading();
waitPage.Start();
new Thread(() =>
{
try
{
var delResult = SpatialInfo.CurrentSpatial.DelRoom(room);
if (delResult == StateCode.SUCCESS)
{
foreach (var f in FunctionList.List.GetDeviceFunctionList())
{
if (f.roomIds.Contains(room.roomId))
{
f.roomIds.Remove(room.roomId);
}
}
Application.RunOnMainThread(() =>
{
//删除事件回调
this.deleteAction?.Invoke();
this.RemoveFromParent();
});
}
}
catch (Exception ex)
{
MainPage.Log($"添加房间失败msg:{ex.Message}");
}
finally
{
Application.RunOnMainThread(() =>
{
waitPage.Hide();
waitPage.RemoveFromParent();
});
}
})
{ IsBackground = true }.Start();
};
new PublicAssmebly().TipOptionMsg(StringId.Tip, StringId.DeleteRoomTip, action);
};
}
///
/// 显示背景图选择选项
///
void LoadEvent_PictureOptionView()
{
btnRoomBg.MouseUpEventHandler = (sender, e) =>
{
LoadPictureOptionView();
};
}
///
/// 加载修改房间名称窗口事件
///
void LoadEvent_EditRoomName()
{
Action callBack = (str) =>
{
//房间名称不能为空
if (string.IsNullOrEmpty(str))
{
new Tip()
{
CloseTime = 1,
Text = Language.StringByID(StringId.RoomNameCannotBeEmpty),
Direction = AMPopTipDirection.None,
}.Show(bodyView);
return;
}
btnRoomName.Text = str;
room.roomName = str;
room.UpdataRoomInfo();
};
EventHandler eventHandler = (sender, e) =>
{
List roomNameList = new List();
foreach (var rroom in SpatialInfo.CurrentSpatial.RoomList)
{
roomNameList.Add(rroom.roomName);
}
new PublicAssmebly().LoadDialog_EditParater(StringId.RoomName, room.roomName, callBack, StringId.RoomNameCannotBeEmpty, StringId.EidtFailed_RoomAlreadyExists, roomNameList);
};
btnEditRoomNameIcon.MouseUpEventHandler = eventHandler;
roomNameRow.MouseUpEventHandler = eventHandler;
btnRoomName.MouseUpEventHandler = eventHandler;
}
///
/// 跳转绑定楼层界面
///
void LoadEvent_SkinBindFloor()
{
EventHandler eventHandler = (sender, e) =>
{
Action floorsCallBackAction = () =>
{
btnFloorInfo.Text = room.floorName;
room.UpdataRoomInfo();
};
var residentialManagePage = new RoomBinglingFloorPage(floorsCallBackAction, room);
MainPage.BasePageView.AddChidren(residentialManagePage);
residentialManagePage.LoadPage();
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
};
btnFloorInfo.MouseUpEventHandler = eventHandler;
floorView.MouseUpEventHandler = eventHandler;
}
///
/// 跳转到编辑房间功能界面
///
void LoadEvent_SkipEditFunctionList()
{
EventHandler eventHandler = (sender, e) =>
{
var residentialManagePage = new RoomEditFunctionPage(room);
MainPage.BasePageView.AddChidren(residentialManagePage);
residentialManagePage.LoadPage();
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
};
btnFunctionManagementRight.MouseUpEventHandler = eventHandler;
functionManagemantView.MouseUpEventHandler = eventHandler;
}
/////
///// 跳转到功能分享界面
/////
//void LoadEvent_SkipSharedRoomFunctionPage()
//{
// if (pageTitleId != StringId.AddRoom)
// {
// EventHandler eHandler = (sender, e) =>
// {
// List sds = new List();
// foreach (var f in room.GetRoomFunctions(false))
// {
// var sd = new ShareData();
// sd.ShareName = f.sid;
// sd.HouseDistributedMark = DB_ResidenceData.residenceData.residecenInfo.RegionID;
// sd.ShareDataBytes = DAL.System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(f));
// //sd.SubAccountDistributedMark = memberInfo.SubAccountDistributedMark;
// sds.Add(sd);
// }
// var mmp = new MemberFunctionPermissionPage(room, sds);
// MainPage.BasePageView.AddChidren(mmp);
// mmp.LoadPage(StringId.ChooseSharedFunction);
// MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
// };
// btnSharedRight.MouseUpEventHandler = eHandler;
// sharedView.MouseUpEventHandler = eHandler;
// btnSharedTitle.MouseUpEventHandler = eHandler;
// }
//}
///
/// 加载背景图选择区域事件列表
///
void LoadEvent_PictureOptionViewEventList(FrameLayout baseView)
{
pictureOptionView.MouseUpEventHandler = (sender, e) =>
{
baseView.RemoveFromParent();
};
baseView.MouseUpEventHandler = (sender, e) =>
{
baseView.RemoveFromParent();
};
btnCancel.MouseUpEventHandler = (sender, e) =>
{
baseView.RemoveFromParent();
};
btnTakePicture.MouseDownEventHandler = (sender, e) =>
{
btnTakePicture.IsSelected = true;
};
//拍照
btnTakePicture.MouseUpEventHandler = (sender, e) =>
{
btnTakePicture.IsSelected = false;
var imageName = Guid.NewGuid().ToString();
//var imageName = room.sid;
CropImage.TakePicture((imagePath) =>
{
CropImageCallBack(imagePath);
}, imageName, 16, 9);
baseView.RemoveFromParent();
};
//选择照片
btnAlbum.MouseDownEventHandler = (sender, e) =>
{
btnAlbum.IsSelected = true;
};
btnAlbum.MouseUpEventHandler = (sender, e) =>
{
btnAlbum.IsSelected = false;
//从相册选择图片裁剪
var imageName = Guid.NewGuid().ToString();
//var imageName = room.sid;
CropImage.SelectPicture((imagePath) =>
{
CropImageCallBack(imagePath);
}, imageName, 16, 9);
baseView.RemoveFromParent();
};
//房间默认图库
btnDefaultGallery.MouseUpEventHandler = (sender, e) => {
pictureOptionView.Parent.RemoveFromParent();
Action action = (obj) =>
{
room.backgroundImage = obj;
btnRoomBg.ImageBytes = null;//解决有ImageBytes不加载ImagePath
btnRoomBg.ImagePath = room.backgroundImage;
room.UpdataRoomInfo();
modifyImageAction?.Invoke();
};
var galleryPage = new RoomGalleryPage(room.backgroundImage, action);
MainPage.BasePageView.AddChidren(galleryPage);
galleryPage.LoadPage(true);
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
};
}
///
/// 裁剪完照片回调,统一处理
///
/// 裁剪后的真实路径
/// 自定义的图片名称
void CropImageCallBack(string selectImagePath)
{
if (string.IsNullOrEmpty(selectImagePath) == true)
{
return;
}
//上传成功到回调
Action uploadSuccessAction = (imageUrl) =>
{
//2020-12-03 需要讲最新的图片路径同步到云端
room.backgroundImage = imageUrl;
room.UpdataRoomInfo();
modifyImageAction?.Invoke();
};
//上传图片到云端
UploadImage(selectImagePath, btnRoomBg, room, uploadSuccessAction);
}
///
/// 上传图片方法
///
/// 裁剪后的图片路径
///
///
void UploadImage(string selectImagePath, ImageView imageView, Room mRoom, Action uploadSuccessAction)
{
try
{
//MainPage.Log("SelectPicture 裁剪图片返回路径: " + selectImagePath);
//1.读取裁剪后的图片,然后删除
var imageBytes = Shared.IO.FileUtils.ReadFile(selectImagePath);
System.IO.File.Delete(selectImagePath);
var waitPage = new Loading();
bodyView.AddChidren(waitPage);
waitPage.Start(Language.StringByID(StringId.PleaseWait));
//开始上传
new Thread(() =>
{
try
{
var newImageName = mRoom.roomName.Trim() + ".png";
var uploadImageObj = new UploadImageObj()
{
prefix = "Room" + Utlis.GetTimestamp(),
fileName = newImageName,
uid = mRoom.uid,
content = imageBytes,
};
var imageUrl = ImageUtlis.Current.UploadImage(uploadImageObj);
if (!string.IsNullOrEmpty(imageUrl) && imageUrl.Contains(newImageName))
{
//上传成功
Application.RunOnMainThread(() =>
{
//Utlis.WriteLine("上传成功:" + imageUrl);
//1.2如果是自定义图片删除之前的
if (!string.IsNullOrEmpty(imageView.ImagePath) && !imageView.ImagePath.Contains("Classification/Room/Roombg"))
{
//Utlis.WriteLine("删除: " + imageView.ImagePath);
System.IO.File.Delete(imageView.ImagePath);
}
//重命名保存
ImageUtlis.Current.WriteFileByBytes(imageUrl, imageBytes);
imageView.ImagePath = null;
imageView.ImageBytes = imageBytes;
//上传成功
Utlis.ShowTip(Language.StringByID(StringId.UploadSuccessfully));
uploadSuccessAction?.Invoke(imageUrl);
});
}
else
{
//上传失败
Application.RunOnMainThread(() =>
{
//上传失败
Utlis.ShowTip(Language.StringByID(StringId.UploadFailed));
});
}
}
catch (Exception ex)
{
}
finally
{
Application.RunOnMainThread(() =>
{
if (waitPage != null)
{
waitPage.RemoveFromParent();
waitPage = null;
}
});
}
})
{ IsBackground = true }.Start();
}
catch { }
}
}
}