From f35f1397c980efdc2542dff7aaa23b1a7dbb65e7 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期三, 16 十二月 2020 10:53:34 +0800
Subject: [PATCH] 2020-12-16-1
---
HDL_ON/UI/UI2/3-Intelligence/Scene/SceneEditPage.cs | 341 ++++++++++++++++++++++++++++++++++++++------------------
1 files changed, 232 insertions(+), 109 deletions(-)
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneEditPage.cs b/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneEditPage.cs
index 056eb91..049a185 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneEditPage.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneEditPage.cs
@@ -3,6 +3,8 @@
using Shared;
using HDL_ON.Entity;
using System.Collections.Generic;
+using System.Threading;
+using HDL_ON.DAL.Server;
namespace HDL_ON.UI
{
@@ -136,9 +138,13 @@
Gravity = Gravity.CenterHorizontal,
Height = Application.GetRealWidth(184),
Radius = (uint)Application.GetRealWidth(12),
- ImagePath = scene.ImagePath
+ //ImagePath = scene.ImagePath
};
sceneBgView.AddChidren(addSceneImageView);
+
+ //2020-12-03 淇敼鍥剧墖鍔犺浇鏂规硶
+ ImageUtlis.Current.LoadLocalOrNetworkImages(scene.ImagePath, addSceneImageView);
+
#region 鍦烘櫙鍚嶇Оrow
sceneNameView = new FrameLayout()
@@ -239,7 +245,7 @@
#endregion
#region 鍦烘櫙寤舵椂row
- if (DB_ResidenceData.residenceData.GatewayType == 1)
+ if (DB_ResidenceData.Instance.GatewayType == 1)
{
FrameLayout sceneDelayRow = new FrameLayout()
{
@@ -368,6 +374,37 @@
bodyView.AddChidren(btnComplete);
LoadEventList();
+
+ var waitPage = new Loading();
+ new Thread(() => {
+ Application.RunOnMainThread(() => {
+ bodyView.AddChidren(waitPage);
+ waitPage.Start(Language.StringByID(StringId.PleaseWait));
+ });
+ var pm = new HttpServerRequest();
+ var pack = pm.GetSceneInfo(scene.userSceneId);
+ if (pack.Code == StateCode.SUCCESS)
+ {
+ var sceneList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Scene>>(pack.Data.ToString());
+ var tempScene = sceneList.Find((obj) => obj.userSceneId == scene.userSceneId);
+ if(tempScene!= null)
+ {
+ scene.functions = tempScene.functions;
+ }
+ Application.RunOnMainThread(() =>
+ {
+ waitPage.Hide();
+ });
+ }
+ else
+ {
+ Application.RunOnMainThread(() =>
+ {
+ waitPage.Hide();
+ IMessageCommon.Current.ShowErrorInfoAlter(pack.Code);
+ });
+ }
+ }).Start();
}
/// <summary>
/// 鍔犺浇鍔熻兘鍒楄〃
@@ -483,7 +520,7 @@
row.AddRightView(btnDelSceneFunction);
btnDelSceneFunction.MouseUpEventHandler = (sender, e) => {
scene.functions.Remove(scenefunction);
- scene.SaveSceneData();
+ scene.SaveSceneData(true);
row.RemoveFromParent();
functionListView.Height = Application.GetRealWidth(65 * scene.functions.Count);
//LoadFunctionRow(functionListView);
@@ -507,66 +544,94 @@
if (sfs.value == "off")
return Language.StringByID(StringId.Close);
}
- if (sfs.key == FunctionAttributeKey.Mode)
- {
-
- }
}
- FunctionAttributes perTrait;
- switch (sceneFunction.localFunction.functionType)
+ if (sceneFunction.status.Count == 0)
{
- case FunctionType.AC:
- sceneFunctionInfo += sceneFunction.localFunction.attributes.Find((obj) => obj.key == "mode").GetCurValueText();
- sceneFunctionInfo += " " + sceneFunction.localFunction.attributes.Find((obj) => obj.key == "set_temperature").curValue.ToString() +
- sceneFunction.localFunction.attributes.Find((obj) => obj.key == "set_temperature").uintString;
- sceneFunctionInfo += sceneFunction.localFunction.attributes.Find((obj) => obj.key == "fan").GetCurValueText();
- break;
- case FunctionType.FloorHeating:
- sceneFunctionInfo += sceneFunction.localFunction.attributes.Find((obj) => obj.key == "mode").GetCurValueText();
- sceneFunctionInfo += " " + sceneFunction.localFunction.attributes.Find((obj) => obj.key == "set_temperature").curValue.ToString() +
- sceneFunction.localFunction.attributes.Find((obj) => obj.key == "set_temperature").uintString;
- break;
- case FunctionType.Dimmer:
- perTrait = sceneFunction.localFunction.attributes.Find((obj) => obj.key == "brightness");
- if (perTrait != null)
- {
- sceneFunctionInfo += Language.StringByID(StringId.Open) + " " + sceneFunction.localFunction.attributes.Find((obj) => obj.key == "brightness").curValue.ToString() + "%";
- }
- else
- {
- sceneFunctionInfo += Language.StringByID(StringId.Open);
- }
- break;
- case FunctionType.Relay:
- sceneFunctionInfo += Language.StringByID(StringId.Open);
- break;
- case FunctionType.RGB:
- perTrait = sceneFunction.localFunction.attributes.Find((obj) => obj.key == "percent");
- if (perTrait != null)
- {
- sceneFunctionInfo += Language.StringByID(StringId.Open) + " " + sceneFunction.localFunction.attributes.Find((obj) => obj.key == "brightness").curValue.ToString() + "%";
- }
- else
- {
- sceneFunctionInfo += Language.StringByID(StringId.Open);
- }
- break;
- case FunctionType.Curtain:
- sceneFunctionInfo += Language.StringByID(StringId.Open);
- break;
- case FunctionType.MotorCurtain:
- perTrait = sceneFunction.localFunction.attributes.Find((obj) => obj.key == "percent");
- if (perTrait != null)
- {
- sceneFunctionInfo += Language.StringByID(StringId.Open) + " " + sceneFunction.localFunction.attributes.Find((obj) => obj.key == "percent").curValue.ToString() + "%";
- }
- else
- {
- sceneFunctionInfo += Language.StringByID(StringId.Open);
- }
- break;
+ return sceneFunctionInfo += Language.StringByID(StringId.Open);
}
+
+ var modeState = sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.Mode);
+ var tempState = sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.SetTemp);
+ var fanState = sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.FanSpeed);
+ if (modeState != null)
+ {
+ sceneFunctionInfo += FunctionList.List.GetValueText(modeState.key, modeState.value);
+ }
+ if (tempState != null)
+ {
+ sceneFunctionInfo += FunctionList.List.GetValueText(tempState.key, tempState.value);
+ sceneFunctionInfo += FunctionList.List.GetUintString(tempState.key);
+ }
+ if (fanState != null)
+ {
+ sceneFunctionInfo += FunctionList.List.GetValueText(fanState.key, fanState.value);
+ }
+ var briState = sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.Brightness);
+ if (briState != null)
+ {
+ sceneFunctionInfo += Language.StringByID(StringId.Open) + " " + briState.value + "%";
+ }
+ var perState = sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.Percent);
+ if (perState != null)
+ {
+ sceneFunctionInfo += Language.StringByID(StringId.Open) + " " + perState.value + "%";
+ }
+ //FunctionAttributes perTrait;
+
+ //switch (sceneFunction.localFunction.functionType)
+ //{
+ // case FunctionType.AC:
+ // sceneFunctionInfo += sceneFunction.localFunction.attributes.Find((obj) => obj.key == "mode").GetCurValueText();
+ // sceneFunctionInfo += " " + sceneFunction.localFunction.attributes.Find((obj) => obj.key == "set_temp").curValue.ToString() +
+ // sceneFunction.localFunction.attributes.Find((obj) => obj.key == "set_temp").uintString;
+ // sceneFunctionInfo += sceneFunction.localFunction.attributes.Find((obj) => obj.key == "fan").GetCurValueText();
+ // break;
+ // case FunctionType.FloorHeating:
+ // sceneFunctionInfo += sceneFunction.localFunction.attributes.Find((obj) => obj.key == "mode").GetCurValueText();
+ // sceneFunctionInfo += " " + sceneFunction.localFunction.attributes.Find((obj) => obj.key == "set_temp").curValue.ToString() +
+ // sceneFunction.localFunction.attributes.Find((obj) => obj.key == "set_temp").uintString;
+ // break;
+ // case FunctionType.Dimmer:
+ // perTrait = sceneFunction.localFunction.attributes.Find((obj) => obj.key == "brightness");
+ // if (perTrait != null)
+ // {
+ // sceneFunctionInfo += Language.StringByID(StringId.Open) + " " + sceneFunction.localFunction.attributes.Find((obj) => obj.key == "brightness").curValue.ToString() + "%";
+ // }
+ // else
+ // {
+ // sceneFunctionInfo += Language.StringByID(StringId.Open);
+ // }
+ // break;
+ // case FunctionType.Relay:
+ // sceneFunctionInfo += Language.StringByID(StringId.Open);
+ // break;
+ // case FunctionType.RGB:
+ // perTrait = sceneFunction.localFunction.attributes.Find((obj) => obj.key == "percent");
+ // if (perTrait != null)
+ // {
+ // sceneFunctionInfo += Language.StringByID(StringId.Open) + " " + sceneFunction.localFunction.attributes.Find((obj) => obj.key == "brightness").curValue.ToString() + "%";
+ // }
+ // else
+ // {
+ // sceneFunctionInfo += Language.StringByID(StringId.Open);
+ // }
+ // break;
+ // case FunctionType.Curtain:
+ // sceneFunctionInfo += Language.StringByID(StringId.Open);
+ // break;
+ // case FunctionType.MotorCurtain:
+ // perTrait = sceneFunction.localFunction.attributes.Find((obj) => obj.key == "percent");
+ // if (perTrait != null)
+ // {
+ // sceneFunctionInfo += Language.StringByID(StringId.Open) + " " + sceneFunction.localFunction.attributes.Find((obj) => obj.key == "percent").curValue.ToString() + "%";
+ // }
+ // else
+ // {
+ // sceneFunctionInfo += Language.StringByID(StringId.Open);
+ // }
+ // break;
+ //}
return sceneFunctionInfo;
}
@@ -752,11 +817,12 @@
//}, pid.ToString(), 4, 3);
- //var imageName = Guid.NewGuid().ToString();
- var imageName = scene.sid;
+ var imageName = Guid.NewGuid().ToString();
+ //var imageName = scene.sid;
CropImage.TakePicture((imagePath) =>
{
- CropImageCallBack(imagePath, imageName);
+ CropImageCallBack(imagePath);
+
}, imageName, 4, 3);
//if (pageTitleId == StringId.EditScene)
@@ -784,11 +850,11 @@
//}, pid.ToString(), 4, 3);
//浠庣浉鍐岄�夋嫨鍥剧墖瑁佸壀
- //var imageName = Guid.NewGuid().ToString();
- var imageName = scene.sid;
+ var imageName = Guid.NewGuid().ToString();
+ //var imageName = scene.sid;
CropImage.SelectPicture((imagePath) =>
{
- CropImageCallBack(imagePath, imageName);
+ CropImageCallBack(imagePath);
}, imageName, 4, 3);
@@ -806,7 +872,7 @@
addSceneImageView.ImagePath = scene.ImagePath;
if (pageTitleId == StringId.EditScene)
{
- scene.SaveSceneData();
+ scene.SaveSceneData(true);
}
};
@@ -823,51 +889,25 @@
/// </summary>
/// <param name="imagePath">瑁佸壀鍚庣殑鐪熷疄璺緞</param>
/// <param name="imageName">鑷畾涔夌殑鍥剧墖鍚嶇О</param>
- void CropImageCallBack(string imagePath, string imageName)
+ void CropImageCallBack(string selectImagePath)
{
- if (string.IsNullOrEmpty(imagePath) == true)
+ if (string.IsNullOrEmpty(selectImagePath) == true)
{
return;
}
- try
+ //涓婁紶鎴愬姛鍒板洖璋�
+ Action<string> uploadSuccessAction = (imageUrl) =>
{
- var mPath = imagePath;
- MainPage.Log("SelectPicture 瑁佸壀鍥剧墖杩斿洖璺緞: " + imagePath);
-
-#if __IOS__
-
-
-#else
- //1.浣跨敤鏂板悕瀛楋紝瑙e喅鐩稿悓璺緞涓嶅埛鏂板浘鐗囬棶棰�
- imageName = Guid.NewGuid().ToString() + ".png";
- //1.2濡傛灉鏄嚜瀹氫箟鍥剧墖鍒犻櫎涔嬪墠鐨�
- if (!addSceneImageView.ImagePath.Contains("Gallery/scenebg"))
- {
- Utlis.WriteLine("鍒犻櫎: " + addSceneImageView.ImagePath);
- System.IO.File.Delete(addSceneImageView.ImagePath);
- }
- //1.3濡傛灉鏄畨鍗撻渶瑕佹嫹璐濆洖鏉PP鏍圭洰褰�
- FileUtils.FileCopyToRootPath(imagePath, imageName);
- System.IO.File.Delete(imagePath);
- MainPage.Log("SelectPicture 鏈�缁堣矾寰�: " + imageName);
- mPath = imageName;
-#endif
- //娓呯┖鍘熸潵鍥剧墖
- addSceneImageView.ImagePath = "NULL";
- addSceneImageView.ImagePath = mPath;
- scene.ImagePath = mPath;
-
+ //2020-12-03 闇�瑕佽鏈�鏂扮殑鍥剧墖璺緞鍚屾鍒颁簯绔�
+ scene.ImagePath = imageUrl;
if (pageTitleId == StringId.EditScene)
{
- scene.SaveFunctionData();
+ scene.SaveSceneData(true);
}
- }
- catch
- {
-
- }
-
+ };
+ //涓婁紶鍥剧墖鍒颁簯绔�
+ UploadImage(selectImagePath, addSceneImageView, scene, uploadSuccessAction);
}
/// <summary>
@@ -889,7 +929,7 @@
}.Show(bodyView);
return;
}
- foreach (var tempRoom in DB_ResidenceData.functionList.scenes)
+ foreach (var tempRoom in FunctionList.List.scenes)
{
if (scene.name == tempRoom.name)
{
@@ -897,8 +937,8 @@
return;
}
}
- scene.SaveSceneData();
- DB_ResidenceData.functionList.scenes.Add(scene);
+ scene.SaveSceneData(true);
+ FunctionList.List.scenes.Add(scene);
backAction();
this.RemoveFromParent();
}
@@ -906,11 +946,11 @@
{
Action action = () =>
{
- DB_ResidenceData.DelSceneFunction(scene.sid);
+ FunctionList.List.DeleteScene(scene,true);
backAction();
this.RemoveFromParent();
};
- new PublicAssmebly().TipMsg(StringId.Tip, StringId.DeleteSceneTip, action);
+ new PublicAssmebly().TipOptionMsg(StringId.Tip, StringId.DeleteSceneTip, action);
};
};
}
@@ -938,13 +978,13 @@
scene.name = str;
if (pageTitleId == StringId.EditScene)
{
- scene.SaveSceneData();
+ scene.SaveSceneData(true);
}
};
EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
{
List<string> sceneNameList = new List<string>();
- foreach (var tempScene in DB_ResidenceData.functionList.scenes)
+ foreach (var tempScene in FunctionList.List.scenes)
{
sceneNameList.Add(tempScene.name);
}
@@ -955,6 +995,89 @@
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