using System;
|
using System.Collections.Generic;
|
using Shared.Common;
|
using ZigBee.Device;
|
|
namespace Shared.Phone.UserCenter.DoorLock
|
{
|
public class FunctionSettingSub : DoorLockCommonLayout, ZigBee.Common.IStatus
|
{
|
/// <summary>
|
/// 构造函数
|
/// </summary>
|
/// <param name="doorLock"></param>
|
public FunctionSettingSub(ZigBee.Device.DoorLock doorLock)
|
{
|
this.doorLock = doorLock;
|
BackgroundColor = Shared.Common.ZigbeeColor.Current.GXCTopViewBackgroundColor;
|
ZigBee.Device.ZbGateway.StatusList.Add(this);
|
}
|
|
#region ◆ 变量申明__________________________
|
ZigBee.Device.DoorLock doorLock;
|
public Action<string> devicNameAction;
|
bool IsModifyName = true;
|
string modifyDeviceName = "";
|
#endregion
|
|
/// <summary>
|
/// UI显示
|
/// </summary>
|
public void Show()
|
{
|
this.TopFrameLayout(this, Language.StringByID(R.MyInternationalizationString.DoorLockFunctionSetting));
|
|
EventHandler<MouseEventArgs> eHandlerBack = (sender, e) =>
|
{
|
RemoveFromParent();
|
};
|
this.btnBack.MouseUpEventHandler += eHandlerBack;
|
this.btnBackFrameLayout.MouseUpEventHandler += eHandlerBack;
|
this.MidFrameLayout(this);
|
|
MidFrameLayoutContent();
|
}
|
|
public void MidFrameLayoutContent()
|
{
|
|
var MidTopFrameLayout = new FrameLayout()
|
{
|
X = Application.GetRealWidth(449),
|
Y = Application.GetRealHeight(58),
|
Width = Application.GetRealWidth(184),
|
Height = Application.GetRealHeight(184),
|
BackgroundImagePath = "DoorLock/DoorlockPicture.png",
|
};
|
this.midFrameLayout.AddChidren(MidTopFrameLayout);
|
|
var btnDeviceText = new Button()
|
{
|
Y = Application.GetRealHeight(288),
|
Height = Application.GetRealHeight(60),
|
Gravity = Gravity.CenterHorizontal,
|
TextColor = ZigbeeColor.Current.XMBlack,
|
TextSize = 15,
|
Text = Common.LocalDevice.Current.GetDeviceMacName(doorLock),
|
};
|
this.midFrameLayout.AddChidren(btnDeviceText);
|
|
BottomFrameLayout();
|
}
|
|
public void BottomFrameLayout()
|
{
|
#region UI
|
//var bottomFrameLayout = new FrameLayout()
|
//{
|
// Height = Application.GetRealHeight(100),
|
// Y = Application.GetRealHeight(418),
|
// Radius = 17,
|
// BackgroundColor = ZigbeeColor.Current.XMWhite,
|
//};
|
//this.midFrameLayout.AddChidren(bottomFrameLayout);
|
|
//var bottomFrameLayout1 = new FrameLayout()
|
//{
|
// Height = Application.GetRealHeight(1319 - 50),
|
// Y = Application.GetRealHeight(418 + 48),
|
// BackgroundColor = ZigbeeColor.Current.XMWhite,
|
//};
|
//this.midFrameLayout.AddChidren(bottomFrameLayout1);
|
|
var bottomFrameLayout = new FrameLayout()
|
{
|
Height = Application.GetRealHeight(1319),
|
Y = Application.GetRealHeight(418),
|
BackgroundColor = ZigbeeColor.Current.XMWhite,
|
};
|
this.midFrameLayout.AddChidren(bottomFrameLayout);
|
bottomFrameLayout.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight);
|
|
|
var informationEdit = new Button()
|
{
|
Height = Application.GetRealHeight(60),
|
X = Application.GetRealWidth(58),
|
Y = Application.GetRealHeight(81),
|
Text = Language.StringByID(R.MyInternationalizationString.InformationEdit),
|
TextColor = Shared.Common.ZigbeeColor.Current.XMBlack,
|
TextAlignment = TextAlignment.CenterLeft,
|
TextSize = 15,
|
};
|
bottomFrameLayout.AddChidren(informationEdit);
|
|
for (int i = 0; i < 4; i++)
|
{
|
var bottomRowLayout = new FrameLayout()
|
{
|
Height = Application.GetRealHeight(58),
|
};
|
bottomFrameLayout.AddChidren(bottomRowLayout);
|
|
var btnName = new Button()
|
{
|
Width = Application.GetRealWidth(233),
|
Height = Application.GetRealHeight(58),
|
X = Application.GetRealWidth(58),
|
TextColor = Shared.Common.ZigbeeColor.Current.XMBlack,
|
TextAlignment = TextAlignment.CenterLeft,
|
TextSize = 14,
|
};
|
bottomRowLayout.AddChidren(btnName);
|
|
var btnNextFrameLayout = new FrameLayout()
|
{
|
Width = Application.GetRealWidth(104),
|
Height = Application.GetRealHeight(58),
|
X = Application.GetRealWidth(861 + 58),
|
};
|
bottomRowLayout.AddChidren(btnNextFrameLayout);
|
|
var btnNext = new Button()
|
{
|
Width = Application.GetRealWidth(58),
|
Height = Application.GetRealHeight(58),
|
X = Application.GetRealWidth(46)
|
};
|
btnNextFrameLayout.AddChidren(btnNext);
|
|
var btnLine = new FrameLayout()
|
{
|
Width = Application.GetRealWidth(965),
|
Height = 1,
|
X = Application.GetRealWidth(58),
|
BackgroundColor = Shared.Common.ZigbeeColor.Current.XMRowLine,
|
Visible = false,
|
};
|
bottomFrameLayout.AddChidren(btnLine);
|
|
if (i == 0)
|
{
|
bottomRowLayout.Y = Application.GetRealHeight(220);
|
btnName.Text = Language.StringByID(R.MyInternationalizationString.DeviceRemarkXm) + ":";
|
btnNextFrameLayout.Width = btnNext.Width = Application.GetRealWidth(789 - 58 - 20);
|
btnNextFrameLayout.X = Application.GetRealWidth(233 + 20);
|
var btnDeviceNameEditText = new EditText()
|
{
|
X = Application.GetRealWidth(46),
|
Width = Application.GetRealWidth(731),
|
Height = Application.GetRealHeight(58),
|
TextColor = ZigbeeColor.Current.XMGray3,
|
TextSize = 14,
|
PlaceholderTextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor2,
|
TextAlignment = TextAlignment.CenterLeft,
|
Text = string.IsNullOrEmpty(doorLock.DeviceName) ? Language.StringByID(R.MyInternationalizationString.UNKnown) : doorLock.DeviceName,
|
};
|
btnNextFrameLayout.AddChidren(btnDeviceNameEditText);
|
|
btnDeviceNameEditText.TextChangeEventHandler += (sender, e) =>
|
{
|
modifyDeviceName = btnDeviceNameEditText.Text;
|
};
|
Action<Shared.View> actionEdit = async (obj) =>
|
{
|
try
|
{
|
Application.RunOnMainThread(() => { CommonPage.Loading.Start("Loading..."); });
|
var doorLockDeviceList = new List<CommonDevice> { };
|
doorLockDeviceList.Add(doorLock);
|
var result = await Common.LocalDevice.Current.ReMacName(doorLockDeviceList, btnDeviceNameEditText.Text);
|
if (result)
|
{
|
IsModifyName = false;
|
}
|
else
|
{
|
IsModifyName = true;
|
}
|
}
|
catch { }
|
finally
|
{
|
Application.RunOnMainThread(() =>
|
{
|
CommonPage.Loading.Hide();
|
});
|
}
|
};
|
btnDeviceNameEditText.EditorEnterAction += actionEdit;
|
|
btnLine.Visible = true;
|
btnLine.Y = Application.GetRealHeight(303);
|
}
|
else if (i == 1)
|
{
|
bottomRowLayout.Y = Application.GetRealHeight(312);
|
bottomRowLayout.Height = Application.GetRealHeight(127);
|
btnName.Width = Application.GetRealWidth(0);
|
btnNextFrameLayout.Width = Application.GetRealWidth(0);
|
//所属区域
|
var rowBeloneArea = new BelongAreaControl(0);
|
bottomRowLayout.AddChidren(rowBeloneArea);
|
|
rowBeloneArea.InitControl(Language.StringByID(R.MyInternationalizationString.uBelongArea), doorLock);
|
//底线
|
rowBeloneArea.AddBottomLine();
|
rowBeloneArea.SelectRoomEvent += (roomKeys) =>
|
{
|
//变更房间
|
//Common.Room.CurrentRoom.ChangedRoom(doorLock, roomKeys);
|
};
|
btnLine.Visible = false;
|
}
|
else if (i == 2)
|
{
|
bottomRowLayout.Y = Application.GetRealHeight(481);
|
btnName.Text = Language.StringByID(R.MyInternationalizationString.BelongModel) + ":";
|
btnNextFrameLayout.Width = btnNext.Width = Application.GetRealWidth(789 - 58 - 20);
|
btnNextFrameLayout.X = Application.GetRealWidth(253);
|
btnNext.TextAlignment = TextAlignment.CenterLeft;
|
btnNext.Height = Application.GetRealHeight(58);
|
btnNext.Text = doorLock.DeviceName;
|
btnNext.TextColor = Shared.Common.ZigbeeColor.Current.XMGray3;
|
btnNext.TextSize = 14;
|
btnLine.Visible = true;
|
btnLine.Y = Application.GetRealHeight(575);
|
}
|
else if (i == 3)
|
{
|
bottomRowLayout.Y = Application.GetRealHeight(585 + 35);
|
btnNext.X = Application.GetRealWidth(0);
|
btnName.Text = Language.StringByID(R.MyInternationalizationString.RemotelyUnlock);
|
btnNext.Width = Application.GetRealWidth(104);
|
btnNext.Height = Application.GetRealHeight(63);
|
btnNext.UnSelectedImagePath = "DoorLock/Switch.png";
|
btnNext.SelectedImagePath = "DoorLock/SwitchOn.png";
|
btnLine.Visible = true;
|
btnLine.Y = Application.GetRealHeight(714);
|
if (doorLock.RemoteUnlockPassword == "")
|
{
|
btnNext.IsSelected = false;
|
}
|
else
|
{
|
btnNext.IsSelected = true;
|
}
|
}
|
|
int currentIndex = i;
|
EventHandler<MouseEventArgs> eHandler = async (sender, e) =>
|
{
|
if (currentIndex == 3)
|
{
|
var result = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockOperateAccess(doorLock, Shared.Common.Config.Instance.Guid);
|
if (result == false)
|
{
|
var result1 = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockUnlockAccess(doorLock, Shared.Common.Config.Instance.Guid);
|
if (result1 == true)
|
{
|
btnNext.IsSelected = !btnNext.IsSelected;
|
if (btnNext.IsSelected)
|
{
|
if (doorLock.RemoteUnlockPassword == "")
|
{
|
RemotePasswordDialog(doorLock, btnNext);
|
}
|
}
|
else
|
{
|
doorLock.RemoteUnlockPassword = "";
|
}
|
}
|
else
|
{
|
new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.NoAccess), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
|
}
|
}
|
else
|
{
|
new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.AccountIsFreezed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
|
}
|
}
|
};
|
btnNext.MouseDownEventHandler += eHandler;
|
if (i != 3)
|
{
|
bottomRowLayout.MouseDownEventHandler += eHandler;
|
btnName.MouseDownEventHandler += eHandler;
|
btnNextFrameLayout.MouseDownEventHandler += eHandler;
|
}
|
#endregion
|
}
|
|
//保存
|
var btnFinifh = new Button()
|
{
|
Width = Application.GetRealWidth(907),
|
Height = Application.GetRealHeight(127),
|
Y = Application.GetRealHeight(1472),
|
Gravity = Gravity.CenterHorizontal,
|
Radius = (uint)Application.GetRealHeight(127) / 2,
|
TextID = R.MyInternationalizationString.Save,
|
BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack,
|
TextColor = Shared.Common.ZigbeeColor.Current.XMWhite,
|
TextSize = 16,
|
IsBold =true,
|
};
|
this.midFrameLayout.AddChidren(btnFinifh);
|
btnFinifh.MouseUpEventHandler += (sender, e) =>
|
{
|
System.Threading.Tasks.Task.Run(async () =>
|
{
|
Application.RunOnMainThread(() => { CommonPage.Loading.Start("Loading..."); });
|
try
|
{
|
if (IsModifyName)
|
{
|
var doorLockDeviceList = new List<CommonDevice> { };
|
doorLockDeviceList.Add(doorLock);
|
var result = await Common.LocalDevice.Current.ReMacName(doorLockDeviceList, modifyDeviceName);
|
if (result)
|
{
|
if (devicNameAction != null)
|
{
|
devicNameAction(modifyDeviceName);
|
}
|
}
|
}
|
}
|
catch { }
|
finally
|
{
|
Application.RunOnMainThread(() =>
|
{
|
CommonPage.Loading.Hide();
|
});
|
}
|
});
|
};
|
}
|
|
#region ◆ 接口实现__________________________
|
/// <summary>
|
/// 处理变化事件 --将弃用 改用DeviceInfoChange()
|
/// </summary>
|
/// <returns>The changed.</returns>
|
/// <param name="common">Common.</param>
|
public void Changed(CommonDevice common)
|
{
|
|
}
|
/// <summary>
|
/// 处理变化事件
|
/// </summary>
|
/// <param name="common"></param>
|
/// <param name="typeTag"></param>
|
public void DeviceInfoChange(CommonDevice common, string typeTag)
|
{
|
}
|
/// <summary>
|
/// Changeds the IL ogic status.
|
/// </summary>
|
/// <param name="logic">Logic.</param>
|
public void ChangedILogicStatus(ZigBee.Device.Logic logic)
|
{
|
}
|
/// <summary>
|
/// Changeds the IS cene status.
|
/// </summary>
|
/// <param name="scene">Scene.</param>
|
public void ChangedISceneStatus(Scene scene)
|
{
|
}
|
#endregion
|
}
|
}
|