using System;
using System.Collections.Generic;
using Shared.Common;
namespace Shared.Phone.Device.Login
{
public class PhoneZone : UserCenter.FrameLayoutBase
{
#region ◆ 变量____________________________
///
/// 选择的区号
///
public Action ActionSelectedZone;
///
/// *****升级分布式后,Account 仅包含手机号,不再包含00区号。密码不再需要MD5加密。language为APP语
/// 下来选择手机区号 默认中国大陆为86
///发送国际 / 港澳台消息时,接收号码格式为00 + 国际区号 + 号码,如“008615899998888” 调用API时,Company字段请传入整型值:4。 。
///国内 调用API时,Company字段请传入整型值:0。
///
public List areaCodeList = new List();
///
/// 选择区号视图
///
private FrameLayout phoneZoneSelectedShowView;
///
/// 区号视图
///
private VerticalScrolViewLayout phoneZoneListView;
///
/// tempClickZoneCodeBtn
///
Button tempClickZoneCodeBtn = new Button();
///
/// tempClickZoneNameBtn
///
Button tempClickZoneNameBtn = new Button();
///
/// tempClickZoneItemFL
///
FrameLayout tempClickZoneItemFL = new FrameLayout();
#endregion
///
/// PhoneZone
///
public PhoneZone()
{
}
///
/// Show
///
public void Show()
{
Init();
}
///
/// Init
///
private void Init()
{
CommonPage.Loading.Start();
ShowZoneList();
new System.Threading.Thread(async () =>
{
var zoneList = await GetZoneListAsync();
if (zoneList == null)
{
Application.RunOnMainThread(() =>
{
CommonPage.Loading.Hide();
});
}
else
{
Application.RunOnMainThread(() =>
{
foreach (var areaCode in zoneList)
{
AddZone(areaCode, phoneZoneListView);
}
CommonPage.Loading.Hide();
});
}
})
{ IsBackground = true }.Start();
}
///
/// GetZoneListAsync
///
///
private async System.Threading.Tasks.Task> GetZoneListAsync()
{
try
{
var requestOBJ = new SendDataToServer.GetAreaCodeOBJ()
{
RequestVersion = CommonPage.RequestVersion
};
var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(requestOBJ);
var revertOBJ = await CommonPage.Instance.RequestHttpsZigbeeAsync("ZigbeeUsers/GetAreaCode", System.Text.Encoding.UTF8.GetBytes(requestJson));
if (revertOBJ == null)
{
return null;
}
if (revertOBJ.StateCode.ToUpper() == "SUCCESS")
{
var responseData = revertOBJ.ResponseData;
return Newtonsoft.Json.JsonConvert.DeserializeObject>(responseData.ToString());
}
else
{
return null;
}
}
catch
{
return null;
}
}
///
/// ShowZoneList
///
private void ShowZoneList()
{
//ZoneListView
var phoneZoneDialog = new FrameLayout()
{
BackgroundColor = ZigbeeColor.Current.GXCDailogBackGroundColor
};
AddChidren(phoneZoneDialog);
phoneZoneSelectedShowView = new FrameLayout()
{
Height = Application.GetRealHeight(1342),
Width = Application.GetRealWidth(850),
BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor,
Radius = (uint)Application.GetRealHeight(30),
Gravity = Gravity.Center
};
phoneZoneDialog.AddChidren(phoneZoneSelectedShowView);
var phoneZoneTitle = new Button()
{
X = Application.GetRealWidth(CommonPage.XLeft),
Y = Application.GetRealHeight(69),
Height = Application.GetRealHeight(60),
Width = Application.GetRealWidth(250),
TextID = R.MyInternationalizationString.PleaseSelectAreaCode,
TextColor = ZigbeeColor.Current.GXCTextDeepBlackColor,
TextAlignment = TextAlignment.CenterLeft
};
phoneZoneSelectedShowView.AddChidren(phoneZoneTitle);
var searchBorder = new FrameLayout()
{
X = phoneZoneTitle.Right + Application.GetRealWidth(CommonPage.XLeft),
Y = Application.GetRealHeight(46),
Height = Application.GetRealHeight(104),
Width = Application.GetRealWidth(400),
BorderWidth = 1,
BorderColor = ZigbeeColor.Current.GXCBorderColor,
Radius = (uint)Application.GetRealHeight(46 / 2)
};
phoneZoneSelectedShowView.AddChidren(searchBorder);
var phoneZoneSearch = new EditText()
{
X = phoneZoneTitle.Right + Application.GetRealWidth(CommonPage.XLeft + 10),
Y = Application.GetRealHeight(46),
Height = Application.GetRealHeight(104),
Width = Application.GetRealWidth(400),
PlaceholderText = Language.StringByID(R.MyInternationalizationString.Search),
PlaceholderTextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor,
TextColor = ZigbeeColor.Current.GXCTextDeepBlackColor
};
phoneZoneSelectedShowView.AddChidren(phoneZoneSearch);
phoneZoneListView = new VerticalScrolViewLayout()
{
Y = phoneZoneSearch.Bottom + Application.GetRealHeight(10),
Height = Application.GetRealHeight(986),
};
phoneZoneSelectedShowView.AddChidren(phoneZoneListView);
var btnOk = new UserCenter.BottomClickButton(668);
btnOk.Y = Application.GetRealHeight(1166);
btnOk.TextID = R.MyInternationalizationString.Complete;
phoneZoneSelectedShowView.AddChidren(btnOk);
btnOk.ButtonClickEvent += (sender, e) =>
{
ActionSelectedZone?.Invoke(CommonPage.PhoneZoneStr);
ActionSelectedZone = null;
RemoveFromParent();
};
var cancleBtn = new Button()
{
Y = Application.GetRealHeight(1719),
Height = this.GetPictrueRealSize(86),
Width = this.GetPictrueRealSize(86),
UnSelectedImagePath = "Account/Cancle.png",
Gravity = Gravity.CenterHorizontal
};
phoneZoneDialog.AddChidren(cancleBtn);
cancleBtn.MouseUpEventHandler += (sender, e) =>
{
this.RemoveFromParent();
};
}
///
/// AddZone
///
///
///
private void AddZone(Common.ResponseEntity.AreaCodeOBJ areaCode, VerticalScrolViewLayout phoneZoneSelectedListView)
{
var zoneItemLName = areaCode.Name;
var zoneItemLCode = areaCode.Code;
var zoneItemFL = new FrameLayout()
{
Width = phoneZoneSelectedListView.Width,
Height = Application.GetRealHeight(110),
};
phoneZoneSelectedListView.AddChidren(zoneItemFL);
var zoneItemNameBtn = new Button()
{
X = Application.GetRealWidth(58),
Width = zoneItemFL.Width - Application.GetRealWidth(300),
Height = Application.GetRealHeight(110) - 1,
Text = zoneItemLName,
TextColor = ZigbeeColor.Current.GXCTextColor,
SelectedTextColor = ZigbeeColor.Current.GXCTextBlackColor,
TextAlignment = TextAlignment.CenterLeft,
};
zoneItemFL.AddChidren(zoneItemNameBtn);
var zoneCode = new Button()
{
X = Application.GetRealWidth(58) + zoneItemNameBtn.Right,
Width = Application.GetRealWidth(150),
Height = Application.GetRealHeight(80),
Gravity = Gravity.CenterVertical,
Text = $"+{zoneItemLCode}",
TextAlignment = TextAlignment.CenterRight,
TextColor = ZigbeeColor.Current.GXCTextColor,
SelectedTextColor = ZigbeeColor.Current.GXCTextBlackColor,
};
zoneItemFL.AddChidren(zoneCode);
EventHandler selectedZone = (sender, e) =>
{
tempClickZoneCodeBtn.IsSelected = false;
tempClickZoneNameBtn.IsSelected = false;
tempClickZoneItemFL.BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor;
zoneItemNameBtn.IsSelected = true;
zoneCode.IsSelected = true;
tempClickZoneCodeBtn = zoneCode;
tempClickZoneNameBtn = zoneItemNameBtn;
tempClickZoneItemFL = zoneItemFL;
zoneItemFL.BackgroundColor = ZigbeeColor.Current.GXCRowSelectedColor;
CommonPage.PhoneZoneStr = zoneItemLCode;
};
zoneCode.MouseUpEventHandler += selectedZone;
zoneItemNameBtn.MouseUpEventHandler += selectedZone;
//默认
if (zoneItemLCode == CommonPage.PhoneZoneStr)
{
zoneItemNameBtn.IsSelected = true;
zoneCode.IsSelected = true;
zoneItemFL.BackgroundColor = ZigbeeColor.Current.GXCRowSelectedColor;
tempClickZoneCodeBtn = zoneCode;
tempClickZoneNameBtn = zoneItemNameBtn;
tempClickZoneItemFL = zoneItemFL;
}
}
}
}