using System;
using System.Collections.Generic;
using Shared.Common;
using ZigBee.Device;
namespace Shared.Phone.UserCenter.DoorLock
{
public class FunctionSettingSub : DoorLockCommonLayout, ZigBee.Common.IStatus
{
///
/// 构造函数
///
///
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 devicNameAction;
bool IsModifyName = true;
string modifyDeviceName = "";
#endregion
///
/// UI显示
///
public void Show()
{
this.TopFrameLayout(this, Language.StringByID(R.MyInternationalizationString.DoorLockFunctionSetting));
EventHandler 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(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 actionEdit = async (obj) =>
{
try
{
Application.RunOnMainThread(() => { CommonPage.Loading.Start("Loading..."); });
var doorLockDeviceList = new List { };
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 (string.IsNullOrEmpty(doorLock.RemoteUnlockPassword))
{
btnNext.IsSelected = false;
}
else
{
btnNext.IsSelected = true;
}
}
int currentIndex = i;
EventHandler 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 (string.IsNullOrEmpty(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 { };
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 ◆ 接口实现__________________________
///
/// 处理变化事件 --将弃用 改用DeviceInfoChange()
///
/// The changed.
/// Common.
public void Changed(CommonDevice common)
{
}
///
/// 处理变化事件
///
///
///
public void DeviceInfoChange(CommonDevice common, string typeTag)
{
}
///
/// Changeds the IL ogic status.
///
/// Logic.
public void ChangedILogicStatus(ZigBee.Device.Logic logic)
{
}
///
/// Changeds the IS cene status.
///
/// Scene.
public void ChangedISceneStatus(Scene scene)
{
}
#endregion
}
}