From f982455916297ab07379d902a7f15b7a7a867c94 Mon Sep 17 00:00:00 2001
From: wei <kaede@kaededeMacBook-Air.local>
Date: 星期三, 20 十月 2021 09:19:20 +0800
Subject: [PATCH] 1
---
HDL_ON/UI/UI2/3-Intelligence/Scene/CatchSceneAddPage.cs | 419 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 417 insertions(+), 2 deletions(-)
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Scene/CatchSceneAddPage.cs b/HDL_ON/UI/UI2/3-Intelligence/Scene/CatchSceneAddPage.cs
index 352dc86..e8cc886 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Scene/CatchSceneAddPage.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Scene/CatchSceneAddPage.cs
@@ -1,11 +1,13 @@
锘縰sing System;
using System.Collections.Generic;
+using System.Threading;
+using HDL_ON.DAL.Server;
using HDL_ON.Entity;
using HDL_ON.UI.CSS;
using Shared;
namespace HDL_ON.UI
{
- public class CatchSceneAddPage : FrameLayout
+ public partial class CatchSceneAddPage : FrameLayout
{
FrameLayout bodyView;
private ImageView addSceneImageView;
@@ -23,6 +25,37 @@
/// 鎹曟崏鐨勫尯鍩熷垪琛�
/// </summary>
private List<Room> catchRooms = new List<Room>();
+
+ Button btnAddFunctionTitle;
+
+
+ #region 鍥炬爣閫夋嫨閮ㄥ垎鍥炬爣
+ /// <summary>
+ /// 鑳屾櫙鍥鹃�夐」鍖哄煙
+ /// </summary>
+ FrameLayout pictureOptionView;
+ /// <summary>
+ /// 鑳屾櫙鍥鹃�夐」閫夋嫨鍖哄煙
+ /// </summary>
+ VerticalScrolViewLayout optionView;
+ /// <summary>
+ /// 榛樿鍥惧簱鎸夐挳
+ /// </summary>
+ Button btnDefaultGallery;
+ /// <summary>
+ /// 鎷嶇収鎸夐挳
+ /// </summary>
+ Button btnTakePicture;
+ /// <summary>
+ /// 鐩稿唽鎸夐挳
+ /// </summary>
+ Button btnAlbum;
+ /// <summary>
+ /// 鍙栨秷鎸夐挳
+ /// </summary>
+ Button btnCancel;
+ #endregion
+
/// <summary>
/// 鍥炶皟鏇存柊
@@ -330,7 +363,10 @@
{
if(temp.roomIds.Contains(catchRoom.roomId))
{
- catchFunctionList.Add(temp);
+ if (MainPage.SceneSupportFunctionList.Contains(temp.spk))
+ {
+ catchFunctionList.Add(temp);
+ }
}
}
}
@@ -341,6 +377,10 @@
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
}
};
+
+
+ LoadEventList();
+
}
@@ -433,5 +473,380 @@
}
+ /// <summary>
+ /// 鍔犺浇鍥炬爣閫夋嫨閫夐」
+ /// </summary>
+ void LoadPictureOptionView()
+ {
+ var pView = new FrameLayout()
+ {
+ BackgroundColor = CSS_Color.DialogTransparentColor1,
+ };
+ bodyView.AddChidren(pView);
+
+ pictureOptionView = new FrameLayout()
+ {
+ Y = Application.GetRealHeight(445),
+ Height = Application.GetRealHeight(250),
+ AnimateSpeed = 0.3f,
+ Animate = Animate.DownToUp,
+ };
+ pView.AddChidren(pictureOptionView);
+
+ optionView = new VerticalScrolViewLayout()
+ {
+ Gravity = Gravity.CenterHorizontal,
+ Width = Application.GetRealWidth(343),
+ Height = Application.GetRealHeight(150),
+ BackgroundColor = CSS_Color.MainBackgroundColor,
+ Radius = (uint)Application.GetRealWidth(12),
+ };
+ pictureOptionView.AddChidren(optionView);
+
+ btnDefaultGallery = new Button()
+ {
+ Height = Application.GetRealHeight(50),
+ TextAlignment = TextAlignment.Center,
+ TextColor = CSS_Color.TextualColor,
+ SelectedTextColor = CSS_Color.MainColor,
+ TextSize = CSS_FontSize.SubheadingFontSize,
+ TextID = StringId.DefaultGallery,
+ };
+ optionView.AddChidren(btnDefaultGallery);
+
+ optionView.AddChidren(new Button() { Height = Application.GetRealHeight(1), Width = Application.GetRealWidth(343), BackgroundColor = CSS_Color.DividingLineColor });
+
+ btnTakePicture = new Button()
+ {
+ Height = Application.GetRealHeight(50),
+ TextAlignment = TextAlignment.Center,
+ TextColor = CSS_Color.TextualColor,
+ SelectedTextColor = CSS_Color.MainColor,
+ TextSize = CSS_FontSize.SubheadingFontSize,
+ TextID = StringId.TakePicture,
+ };
+ optionView.AddChidren(btnTakePicture);
+
+ optionView.AddChidren(new Button() { Height = Application.GetRealHeight(1), Width = Application.GetRealWidth(343), BackgroundColor = CSS_Color.DividingLineColor });
+
+ btnAlbum = new Button()
+ {
+ Height = Application.GetRealHeight(50),
+ TextAlignment = TextAlignment.Center,
+ TextColor = CSS_Color.TextualColor,
+ SelectedTextColor = CSS_Color.MainColor,
+ TextSize = CSS_FontSize.SubheadingFontSize,
+ TextID = StringId.Album,
+ };
+ optionView.AddChidren(btnAlbum);
+
+ optionView.AddChidren(new Button() { Height = Application.GetRealHeight(1), Width = Application.GetRealWidth(343), BackgroundColor = CSS_Color.DividingLineColor });
+
+ btnCancel = new Button()
+ {
+ Gravity = Gravity.CenterHorizontal,
+ Y = Application.GetRealHeight(8) + optionView.Bottom,
+ Width = Application.GetRealWidth(343),
+ Height = Application.GetRealHeight(50),
+ BackgroundColor = CSS_Color.MainBackgroundColor,
+ Radius = (uint)Application.GetRealWidth(12),
+ TextID = StringId.Cancel,
+ TextColor = CSS_Color.WarningColor,
+ TextSize = CSS_FontSize.SubheadingFontSize,
+ };
+ pictureOptionView.AddChidren(btnCancel);
+
+
+ LoadEvent_PictureOptionViewEventList(pView);
+ }
+
+
}
+
+ //--------------------------------------
+ public partial class CatchSceneAddPage
+ {
+ void LoadEventList()
+ {
+ LoadEvent_ChangeSceneImage();
+ LoadEvent_ChangeSceneZone();
+ LoadEvent_EditRoomName();
+ }
+
+ /// <summary>
+ /// 淇敼鍦烘櫙鎵�灞炲尯鍩�
+ /// </summary>
+ void LoadEvent_ChangeSceneZone()
+ {
+ EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
+ {
+ Action backAction = () => {
+ btnZoneName.Text = scene.GetRoomListName();
+ };
+ var ssl = new SetSceneLocationPage(scene, backAction);
+ MainPage.BasePageView.AddChidren(ssl);
+ ssl.LoadPage();
+ MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+ };
+ btnZoneName.MouseUpEventHandler = eventHandler;
+ belongToZoneRow.MouseUpEventHandler = eventHandler;
+ btnBelongToZoneRight.MouseUpEventHandler = eventHandler;
+
+ }
+
+
+ /// <summary>
+ /// 淇敼鍦烘櫙鑳屾櫙浜嬩欢
+ /// </summary>
+ void LoadEvent_ChangeSceneImage()
+ {
+ addSceneImageView.MouseUpEventHandler = (sender, e) => {
+ LoadPictureOptionView();
+ };
+ }
+
+ /// <summary>
+ /// 鍔犺浇鑳屾櫙鍥鹃�夋嫨鍖哄煙浜嬩欢鍒楄〃
+ /// </summary>
+ void LoadEvent_PictureOptionViewEventList(FrameLayout pView)
+ {
+ pictureOptionView.MouseUpEventHandler = (sender, e) =>
+ {
+ pictureOptionView.Parent.RemoveFromParent();
+ };
+ pView.MouseUpEventHandler = (sender, e) =>
+ {
+ pictureOptionView.Parent.RemoveFromParent();
+ };
+
+ btnCancel.MouseUpEventHandler = (sender, e) =>
+ {
+ pictureOptionView.Parent.RemoveFromParent();
+ };
+ btnTakePicture.MouseDownEventHandler = (sender, e) => {
+ btnTakePicture.IsSelected = true;
+ };
+ btnTakePicture.MouseUpEventHandler = (sender, e) =>
+ {
+ btnTakePicture.IsSelected = false;
+
+ //var pid = Guid.NewGuid();
+ //CropImage.TakePicture((imagePath) =>
+ //{
+ // if (imagePath != null)
+ // {
+ // addSceneImageView.ImagePath = imagePath.ToString();
+ // scene.ImagePath = addSceneImageView.ImagePath;
+ // MainPage.Log("SelectPicture 瑁佸壀鍥剧墖杩斿洖璺緞: " + imagePath);
+ // }
+ //}, pid.ToString(), 4, 3);
+
+
+ var imageName = Guid.NewGuid().ToString();
+ //var imageName = scene.sid;
+ CropImage.TakePicture((imagePath) =>
+ {
+ CropImageCallBack(imagePath);
+
+ }, imageName, 4, 3);
+
+ //if (pageTitleId == StringId.EditScene)
+ //{
+ // scene.SaveFunctionData();
+ //}
+ pictureOptionView.Parent.RemoveFromParent();
+ };
+ btnAlbum.MouseDownEventHandler = (sender, e) => {
+ btnAlbum.IsSelected = true;
+ };
+
+ btnAlbum.MouseUpEventHandler = (sender, e) =>
+ {
+ btnAlbum.IsSelected = false;
+ //var pid = Guid.NewGuid();
+ //CropImage.SelectPicture((imagePath) =>
+ //{
+ // if (imagePath != null)
+ // {
+ // addSceneImageView.ImagePath = imagePath.ToString();
+ // scene.ImagePath = addSceneImageView.ImagePath;
+ // MainPage.Log("SelectPicture 瑁佸壀鍥剧墖杩斿洖璺緞: " + imagePath);
+ // }
+ //}, pid.ToString(), 4, 3);
+
+ //浠庣浉鍐岄�夋嫨鍥剧墖瑁佸壀
+ var imageName = Guid.NewGuid().ToString();
+ //var imageName = scene.sid;
+ CropImage.SelectPicture((imagePath) =>
+ {
+ CropImageCallBack(imagePath);
+ }, imageName, 4, 3);
+
+
+ //if (pageTitleId == StringId.EditScene)
+ //{
+ // scene.SaveFunctionData();
+ //}
+ pictureOptionView.Parent.RemoveFromParent();
+ };
+
+ btnDefaultGallery.MouseUpEventHandler = (sender, e) => {
+ pictureOptionView.Parent.RemoveFromParent();
+ Action<string> action = (obj) => {
+ scene.ImagePath = obj;
+ addSceneImageView.ImageBytes = null;//瑙e喅鏈塈mageBytes涓嶅姞杞絀magePath
+ addSceneImageView.ImagePath = scene.ImagePath;
+ };
+
+ var galleryPage = new GalleryPage(scene.ImagePath, action);
+ MainPage.BasePageView.AddChidren(galleryPage);
+ galleryPage.LoadPage(true);
+ MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+ };
+
+ }
+
+ /// <summary>
+ /// 瑁佸壀瀹岀収鐗囧洖璋冿紝缁熶竴澶勭悊
+ /// </summary>
+ /// <param name="imagePath">瑁佸壀鍚庣殑鐪熷疄璺緞</param>
+ /// <param name="imageName">鑷畾涔夌殑鍥剧墖鍚嶇О</param>
+ void CropImageCallBack(string selectImagePath)
+ {
+ if (string.IsNullOrEmpty(selectImagePath) == true)
+ {
+ return;
+ }
+
+ //涓婁紶鎴愬姛鍒板洖璋�
+ Action<string> uploadSuccessAction = (imageUrl) =>
+ {
+ //2020-12-03 闇�瑕佽鏈�鏂扮殑鍥剧墖璺緞鍚屾鍒颁簯绔�
+ scene.ImagePath = imageUrl;
+ };
+ //涓婁紶鍥剧墖鍒颁簯绔�
+ UploadImage(selectImagePath, addSceneImageView, scene, uploadSuccessAction);
+ }
+
+ /// <summary>
+ /// 鍔犺浇淇敼鍦烘櫙鍚嶇О绐楀彛浜嬩欢
+ /// </summary>
+ void LoadEvent_EditRoomName()
+ {
+ Action<string> callBack = (str) =>
+ {
+ //鍚嶇О涓嶈兘涓虹┖
+ if (string.IsNullOrEmpty(str))
+ {
+ new Tip()
+ {
+ CloseTime = 1,
+ Text = Language.StringByID(StringId.SceneNameCannotBeEmpty),
+ Direction = AMPopTipDirection.None,
+ }.Show(bodyView);
+ return;
+ }
+ btnSceneName.Text = str;
+ scene.name = str;
+ };
+ EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
+ {
+ List<string> sceneNameList = new List<string>();
+ foreach (var tempScene in FunctionList.List.scenes)
+ {
+ sceneNameList.Add(tempScene.name);
+ }
+ new PublicAssmebly().LoadDialog_EditParater(StringId.SceneName, scene.name, callBack, StringId.SceneNameCannotBeEmpty, StringId.SceneNameAlreadyExists, sceneNameList);
+ };
+ sceneNameView.MouseUpEventHandler = eventHandler;
+ btnSceneName.MouseUpEventHandler = eventHandler;
+ btnEditSceneNameIcon.MouseUpEventHandler = eventHandler;
+ }
+
+ /// <summary>
+ /// 涓婁紶鍥剧墖鏂规硶
+ /// </summary>
+ /// <param name="selectImagePath">瑁佸壀鍚庣殑鍥剧墖璺緞</param>
+ /// <param name="imageView"></param>
+ /// <param name="uploadSuccessAction"></param>
+ void UploadImage(string selectImagePath, ImageView imageView, Scene mScene, Action<string> 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 = mScene.name.Trim() + ".png";
+ var uploadImageObj = new UploadImageObj()
+ {
+ prefix = "Scene" + Utlis.GetTimestamp(),
+ fileName = newImageName,
+ uid = mScene.sid,
+ 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 { }
+ }
+ }
+
}
--
Gitblit v1.8.0