using System;
|
using System.Collections.Generic;
|
using System.IO;
|
using System.Threading;
|
using HDL_ON.DAL.Server;
|
using HDL_ON.Entity;
|
using HDL_ON.UI.CSS;
|
using Newtonsoft.Json.Linq;
|
using Shared;
|
namespace HDL_ON.UI
|
{
|
public class ChooseShareMemberTargetListPage : FrameLayout
|
{
|
ChooseShareMemberTargetListPage bodyView;
|
VerticalScrolViewLayout contentView;
|
Loading waitPage;
|
byte[] sharedBytes;
|
List<ResidenceMemberInfo> residenceMemberInfos;
|
public ChooseShareMemberTargetListPage(byte[] sd)
|
{
|
residenceMemberInfos = new List<ResidenceMemberInfo>();
|
sharedBytes = sd;
|
bodyView = this;
|
}
|
|
/// <summary>
|
/// 调用获取住宅子账号信息
|
/// </summary>
|
bool LoadMethod_GetResidenceMemberAccount()
|
{
|
var result = false;
|
ResponsePack responePack = new HttpServerRequest().GetResidenceMemberAccount();
|
if (responePack.StateCode.ToUpper() == "SUCCESS")
|
{
|
var responeObj = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ResidenceMemberInfo>>(responePack.ResponseData.ToString());
|
foreach (var mInfo in responeObj)
|
{
|
ResponsePack memberInfoResponePack = new HttpServerRequest().GetResidenceMemberAccountInfo(mInfo.Account);
|
var dataStr = JObject.FromObject(memberInfoResponePack.ResponseData);
|
FileStream fs = null;
|
try
|
{
|
var headImageString = dataStr.GetValue("HeadImage").ToString();
|
var jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(headImageString);
|
var headImageBytes = Newtonsoft.Json.JsonConvert.DeserializeObject<byte[]>(jsonString);
|
var filePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal) + "/", mInfo.DistributedMark + ".png");
|
fs = new FileStream(filePath, FileMode.Create, FileAccess.Write);
|
fs.Write(headImageBytes, 0, headImageBytes.Length);
|
fs.Flush();
|
mInfo.headImagePagePath = filePath;
|
}
|
catch (Exception ex)
|
{
|
MainPage.Log($"download headImage error : {ex.Message}");
|
}
|
finally
|
{
|
if (fs != null)
|
{
|
fs.Close();
|
}
|
}
|
residenceMemberInfos.Add(mInfo);
|
}
|
result = true;
|
}
|
//失败
|
else
|
{
|
string tipStr = "Sever erorr";
|
switch (responePack.StateCode)
|
{
|
case "ValidCodeAndPhoneNoEqual":
|
tipStr = Language.StringByID(StringId.VerificationCodeError);
|
break;
|
case "USERNAMEORPWDERROR":
|
tipStr = Language.StringByID(StringId.LoginFailed_AccountOrPasswordError);
|
break;
|
case "ACCOUNTNOEXISTS":
|
tipStr = Language.StringByID(StringId.ACCOUNTNOEXISTS);
|
break;
|
case "NoRecord":
|
tipStr = Language.StringByID(StringId.PlsGetTheVerificationCode);
|
break;
|
case "Self:Net_Error":
|
tipStr = Language.StringByID(StringId.NetworkAnomaly);
|
break;
|
}
|
//账号或者密码错误
|
Application.RunOnMainThread(() =>
|
{
|
waitPage.Hide();
|
//提示原因
|
var tip = new Tip()
|
{
|
Text = tipStr,
|
CloseTime = 3,
|
Direction = AMPopTipDirection.None
|
};
|
tip.Show(bodyView);
|
});
|
}
|
Application.RunOnMainThread(() =>
|
{
|
waitPage?.Hide();
|
});
|
return result;
|
}
|
|
|
/// <summary>
|
/// 加载获取住宅子账号信息线程
|
/// </summary>
|
Thread LoadThread_GetResidenceMemberAccount()
|
{
|
var thread = new Thread(() =>
|
{
|
try
|
{
|
residenceMemberInfos.Clear();
|
var loginResult = LoadMethod_GetResidenceMemberAccount();
|
if (loginResult)
|
{
|
Application.RunOnMainThread(() =>
|
{
|
LoadMemberRow();
|
});
|
}
|
}
|
catch (Exception ex)
|
{
|
MainPage.Log($"LoadThread_GetResidenceMemberAccount : {ex.Message}");
|
}
|
finally
|
{
|
Application.RunOnMainThread(() =>
|
{
|
if (waitPage != null)
|
{
|
waitPage.RemoveFromParent();
|
waitPage = null;
|
}
|
});
|
}
|
})
|
{ IsBackground = true };
|
return thread;
|
}
|
|
public void LoadPage()
|
{
|
//创建读取成员账号线程
|
var thread = LoadThread_GetResidenceMemberAccount();
|
waitPage = new Loading();
|
new PublicAssmebly().LoadPage_WaitPage(thread, bodyView, waitPage);
|
|
|
bodyView.BackgroundColor = CSS_Color.BackgroundColor;
|
new TopViewDiv(bodyView, Language.StringByID(StringId.Shared)).LoadTopView();
|
|
#region title view
|
FrameLayout titleView = new FrameLayout()
|
{
|
Y = Application.GetRealHeight(72),
|
Height = Application.GetRealHeight(44),
|
BackgroundColor = CSS_Color.MainBackgroundColor,
|
};
|
bodyView.AddChidren(titleView);
|
|
Button btnTitle = new Button()
|
{
|
X = Application.GetRealWidth(16),
|
TextColor = CSS_Color.FirstLevelTitleColor,
|
TextID = StringId.SharedTo,
|
TextSize = CSS_FontSize.SubheadingFontSize,
|
TextAlignment = TextAlignment.CenterLeft,
|
IsBold = true,
|
};
|
titleView.AddChidren(btnTitle);
|
|
titleView.AddChidren(new Button() {
|
X = Application.GetRealWidth(16),
|
Y = Application.GetRealHeight(43),
|
Height = Application.GetRealHeight(1),
|
BackgroundColor = CSS_Color.DividingLineColor,
|
});
|
#endregion
|
|
contentView = new VerticalScrolViewLayout()
|
{
|
Y = titleView.Bottom,
|
Height = Application.GetRealHeight(420),
|
//BackgroundColor = CSS_Color.MainBackgroundColor,
|
};
|
bodyView.AddChidren(contentView);
|
|
LoadMemberRow();
|
|
btnOption = new Button()
|
{
|
Y = Application.GetRealHeight(519 + 64),
|
Gravity = Gravity.CenterHorizontal,
|
Width = Application.GetRealWidth(220),
|
Height = Application.GetRealHeight(44),
|
BackgroundColor = CSS_Color.MainColor,
|
TextAlignment = TextAlignment.Center,
|
TextColor = CSS_Color.MainBackgroundColor,
|
TextID = StringId.ConfirmShared,
|
TextSize = CSS_FontSize.SubheadingFontSize,
|
IsBold = true,
|
Radius = (uint)Application.GetRealWidth(22),
|
BorderColor = 0x00000000,
|
BorderWidth = 0,
|
};
|
bodyView.AddChidren(btnOption);
|
|
}
|
Button btnOption;
|
|
|
/// <summary>
|
/// 加载成员列表区域
|
/// </summary>
|
void LoadMemberRow()
|
{
|
contentView.RemoveAll();
|
|
//List<ResidenceMemberInfo> residenceMemberInfos = new List<ResidenceMemberInfo>();
|
int index = 1;
|
foreach (var mInfo in residenceMemberInfos)
|
{
|
FrameLayout memberRow = new FrameLayout()
|
{
|
Height = Application.GetRealWidth(65),
|
BackgroundColor = CSS_Color.MainBackgroundColor,
|
};
|
contentView.AddChidren(memberRow);
|
|
var memberHeadImageView = new ImageView()
|
{
|
X = Application.GetRealWidth(16),
|
Gravity = Gravity.CenterVertical,
|
Width = Application.GetMinRealAverage(36),
|
Height = Application.GetMinRealAverage(36),
|
Radius = (uint)Application.GetMinRealAverage(24),
|
ImagePath = mInfo.headImagePagePath,
|
};
|
memberRow.AddChidren(memberHeadImageView);
|
|
Button btnMemberName = new Button()
|
{
|
X = Application.GetRealWidth(64),
|
Y = Application.GetRealWidth(10),
|
Width = Application.GetRealWidth(300),
|
Height = Application.GetRealWidth(24),
|
TextAlignment = TextAlignment.CenterLeft,
|
TextColor = CSS_Color.FirstLevelTitleColor,
|
TextSize = CSS_FontSize.TextFontSize,
|
Text = mInfo.UserName,
|
};
|
memberRow.AddChidren(btnMemberName);
|
|
Button btnMemberMail = new Button()
|
{
|
X = Application.GetRealWidth(64),
|
Y = btnMemberName.Bottom,
|
Width = Application.GetRealWidth(300),
|
Height = Application.GetRealWidth(21),
|
TextAlignment = TextAlignment.CenterLeft,
|
TextColor = CSS_Color.PromptingColor1,
|
TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
|
Text = mInfo.Account,
|
};
|
memberRow.AddChidren(btnMemberMail);
|
|
Button btnChoose = new Button()
|
{
|
X = Application.GetRealWidth(331),
|
Gravity = Gravity.CenterVertical,
|
Width = Application.GetMinRealAverage(28),
|
Height = Application.GetMinRealAverage(28),
|
UnSelectedImagePath = "Public/ChooseIcon.png",
|
SelectedImagePath = "Public/ChooseOnIcon.png",
|
IsSelected = true,
|
};
|
memberRow.AddChidren(btnChoose);
|
|
if (residenceMemberInfos.Count > index)
|
{
|
memberRow.AddChidren(new Button()
|
{
|
Y = Application.GetRealHeight(64),
|
Gravity = Gravity.CenterHorizontal,
|
Width = Application.GetRealWidth(343),
|
Height = Application.GetRealHeight(1),
|
BackgroundColor = CSS_Color.DividingLineColor,
|
});
|
}
|
index++;
|
|
}
|
|
}
|
|
|
void LoadEvent_SharedFunction()
|
{
|
//btnOption
|
}
|
}
|
}
|