黄学彪
2020-12-17 9f326f4000847e6167d8166fa2f6a66f53cb3734
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
using System;
using System.Text;
using Shared.Common;
using Shared.Phone.UserCenter;
using Shared.Phone.UserView;
 
namespace Shared.Phone.Login
{
    /// <summary>
    /// 账号注册成功的提示界面
    /// </summary>
    public class AccountRegisterResultForm : FrameLayout
    {
        #region ■ 初始化_____________________________
 
        /// <summary>
        /// 初始化
        /// </summary>
        /// <param name="account">账号</param>
        /// <param name="password">密码</param>
        /// <param name="OpenID">第三方绑定的id</param>
        public void ShowForm(string account, string password, string OpenID = "")
        {
            //整个背景
            var frameBack = new FrameLayout();
            frameBack.BackgroundColor = ZigbeeColor.Current.GXCDailogBackGroundColor;
            this.AddChidren(frameBack);
            //上部黑色部分
            var frameBlack = new FrameLayout();
            frameBlack.Y = Application.GetRealHeight(527);
            frameBlack.Width = Application.GetRealWidth(688);
            frameBlack.Height = Application.GetRealHeight(274);
            frameBlack.Gravity = Gravity.CenterHorizontal;
            frameBlack.BackgroundColor = ZigbeeColor.Current.GXCBlackBackgroundColor;
            frameBlack.SetCornerWithSameRadius(Application.GetRealHeight(17), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight);
            this.AddChidren(frameBlack);
            //下部白色部分
            var frameWhite = new FrameLayout();
            frameWhite.Y = frameBlack.Bottom;
            frameWhite.Width = Application.GetRealWidth(688);
            frameWhite.Height = Application.GetRealHeight(579);
            frameWhite.Gravity = Gravity.CenterHorizontal;
            frameWhite.BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor;
            frameWhite.SetCornerWithSameRadius(Application.GetRealHeight(17), HDLUtils.RectCornerBottomLeft | HDLUtils.RectCornerBottomRight);
            this.AddChidren(frameWhite);
            //账号头像
            var btnAccountIcon = new PicViewControl(294, 316);
            btnAccountIcon.Y = Application.GetRealHeight(648);
            btnAccountIcon.Gravity = Gravity.CenterHorizontal;
            btnAccountIcon.UnSelectedImagePath = "Account/Cat.png";
            this.AddChidren(btnAccountIcon);
            //账号
            var btnAccount = new NormalViewControl(500, 80, true);
            btnAccount.Y = btnAccountIcon.Bottom;
            btnAccount.Gravity = Gravity.CenterHorizontal;
            btnAccount.Text = account;
            btnAccount.TextColor = ZigbeeColor.Current.GXCTextGrayColor2;
            btnAccount.TextAlignment = TextAlignment.Center;
            this.AddChidren(btnAccount);
            //恭喜注册成功!
            var btnTip = new NormalViewControl(500, 80, true);
            btnTip.Y = Application.GetRealHeight(1143);
            btnTip.Gravity = Gravity.CenterHorizontal;
            btnTip.TextID = R.MyInternationalizationString.RegisterSuccessTip;
            btnTip.TextColor = ZigbeeColor.Current.GXCTextBlackColor2;
            btnTip.TextAlignment = TextAlignment.Center;
            btnTip.TextSize = 16;
            btnTip.IsBold = true;
            this.AddChidren(btnTip);
            //即将自动登录
            var btnWillLogin = new NormalViewControl(500, 80, true);
            btnWillLogin.Y = btnTip.Bottom + Application.GetRealHeight(15);
            btnWillLogin.Gravity = Gravity.CenterHorizontal;
            btnWillLogin.TextID = R.MyInternationalizationString.WillAutoLogin;
            btnWillLogin.TextColor = ZigbeeColor.Current.GXCTextGrayColor;
            btnWillLogin.TextAlignment = TextAlignment.Center;
            AddChidren(btnWillLogin);
 
            HdlThreadLogic.Current.RunThread(() =>
            {
                System.Threading.Thread.Sleep(2000);
                //2秒后自动登录
                this.LoginByAccountAndPsw(account, password, OpenID);
            });
        }
 
        #endregion
 
        #region ■ 自动登录___________________________
 
        /// <summary>
        /// AutoLogin
        /// </summary>
        /// <param name="account"></param>
        /// <param name="password"></param>
        private void LoginByAccountAndPsw(string account, string password, string OpenID = "")
        {
            HdlThreadLogic.Current.RunMain(() =>
            {
                //打开启动页
                HdlControlLogic.Current.ShowLoginLoadView();
                CommonPage.Loading.Start(Language.StringByID(R.MyInternationalizationString.Logining));
                
                HdlThreadLogic.Current.RunThread(() =>
                {
                    //账号密码登陆
                    var result = HdlAccountLogic.Current.LoginByPassword(account, password);
                    if (result != null && result.Code == HttpMessageEnum.A成功)
                    {
                        if (string.IsNullOrEmpty(OpenID) == false)
                        {
                            //绑定第三方
                            BindAuthUser(Config.Instance.Guid, OpenID);
                        }
                        //刷新个人中心的内存及线程
                        bool result2 = HdlUserCenterLogic.Current.InitUserCenterMenmoryAndThread(true);
 
                        //启动ZigBee
                        ZigBee.Common.Application.Init();
 
                        HdlThreadLogic.Current.RunMain(() =>
                        {
                            CommonPage.Loading.Hide();
                            this.RemoveFromParent();
                            CommonPage.Instance.RemoveViewByTag("Register");
                            CommonPage.Instance.RemoveViewByTag("Login");
                            if (result2 == true)
                            {
                                //false:开启了调试功能
                                UserPage.Instance.ReFreshControl();
                            }
                        });
                    }
                    else
                    {
                        HdlThreadLogic.Current.RunMain(() =>
                        {
                            //未登录成功弹出登录界面 同时需要标记为未登录状态
                            Config.Instance.LoginDateTime = new DateTime(1970, 1, 1);
                            Config.Instance.Save();
                            var login = new AccountLoginForm();
                            CommonPage.Instance.AddChidren(login);
                            login.ShowForm(account);
                        });
                    }
                });
            });
        }
 
        #endregion
 
        #region ■ 绑定第三方_________________________
 
        /// <summary>
        /// 绑定
        /// </summary>
        /// <param name="guid"></param>
        /// <param name="openId"></param>
        private void BindAuthUser(string guid, string openId)
        {
            //☆マーク☆ 绑定微信
            //var auth = new SendDataToServer.BindAuthUser();
            //auth.AccountGuid = guid;
            //auth.OpenID = openId;
 
            //HdlHttpLogic.Current.RequestHttpsZigbeeAsync("ZigbeeUsers/BindAuthUserToAccount", RestSharp.Method.POST, auth, null, null);
        }
 
        #endregion
    }
}