黄学彪
2020-09-22 ade5917841b0fdcb1df7353ef7c56b1a1bdc9282
ZigbeeApp/Shared/Phone/UserCenter/HdlBackup/HdlAutoBackUpForm.cs
@@ -7,141 +7,102 @@
    /// <summary>
    /// 自动备份的界面
    /// </summary>
    public class HdlAutoBackUpForm : UserCenterCommonForm
    public class HdlAutoBackupForm : EditorCommonForm
    {
        #region ■ 变量声明___________________________
        /// <summary>
        /// BackupClassId
        /// </summary>
        private string m_BackupDeleteClassId = null;
        #endregion
        #region ■ 初始化_____________________________
        /// <summary>
        /// 画面显示(底层会固定调用此方法,借以完成画面创建)
        /// </summary>
        public void ShowForm()
        {
            //设置标题信息
            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uAppAutoBackup));
            //初始化中部控件
            this.InitMiddleFrame();
            //添加上传菜单
            this.AddUploadMenu();
        }
        /// <summary>
        /// 初始化中部控件
        /// </summary>
        private void InitMiddleFrame()
        /// <summary>
        /// 画面显示(底层会固定调用此方法,借以完成画面创建)
        /// </summary>
        public void ShowForm()
        {
            bodyFrameLayout.RemoveAll();
            new System.Threading.Thread(async () =>
            {
                //进度条
                this.ShowProgressBar();
                //获取app的自动备份
                var data = await HdlBackupLogic.Current.GetBackupListNameFromDB(1);
                //关闭进度条
                this.CloseProgressBar();
                if (data == null || data.Count == 0)
                {
                    return;
                }
                //自动备份只有一个
                Application.RunOnMainThread(() =>
                {
                    //添加自动备份的行
                    this.AddRowlayout(data[0]);
                    this.m_BackupDeleteClassId = data[0].Id;
                });
            })
            { IsBackground = true }.Start();
            //初始化中部信息
            this.InitMiddleFrame();
        }
        #endregion
        #region ■ 添加自动备份的行___________________
        /// <summary>
        /// 添加自动备份的行
        /// 初始化中部信息
        /// </summary>
        /// <param name="info"></param>
        private void AddRowlayout(BackupListNameInfo info)
        private void InitMiddleFrame()
        {
            //行
            var rowLayout = new StatuRowLayout();
            bodyFrameLayout.AddChidren(rowLayout);
            //清空bodyFrame
            this.ClearBodyFrame();
            //图标
            var btnPoint = new RowLeftIconView();
            btnPoint.SelectedImagePath = "Center/BackupSelected.png";
            btnPoint.UnSelectedImagePath = "Center/Backup.png";
            rowLayout.AddChidren(btnPoint, ChidrenBindMode.BindEventOnly);
            //body占完整个屏幕
            bodyFrameLayout.Y = 0;
            bodyFrameLayout.Height = ControlCommonResourse.TopMenuFrameHeight + ControlCommonResourse.TopFrameHeight
                + ControlCommonResourse.BodyFrameHeight;
            //备份名字
            var txtText = new RowCenterView();
            txtText.TextID = R.MyInternationalizationString.uAutoBackupData;
            rowLayout.AddChidren(txtText, ChidrenBindMode.BindEventOnly);
            var btnPic = new NormalViewControl(991, 438, true);
            btnPic.UnSelectedImagePath = "Item/AutoBackup.png";
            btnPic.Y = Application.GetRealHeight(374);
            bodyFrameLayout.AddChidren(btnPic);
            //下载图标
            var btnLoad = new MostRightEmptyView();
            //启用点亮功能
            btnLoad.UseClickStatu = true;
            btnLoad.UnSelectedImagePath = "Item/DownLoad.png";
            btnLoad.SelectedImagePath = "Item/DownLoadSelected.png";
            rowLayout.AddChidren(btnLoad, ChidrenBindMode.NotBind);
            //下载图标太右边不好看
            btnLoad.X -= Application.GetRealWidth(50);
            btnLoad.MouseUpEventHandler += (sender, e) =>
            //自动备份
            var btnAuto = new NormalViewControl(400, 85, true);
            btnAuto.Y = Application.GetRealHeight(876);
            btnAuto.Gravity = Gravity.CenterHorizontal;
            btnAuto.TextID = R.MyInternationalizationString.uAutoBackup;
            btnAuto.TextSize = 20;
            btnAuto.TextAlignment = TextAlignment.Center;
            bodyFrameLayout.AddChidren(btnAuto);
            //检测到数据更新,是否需要备份
            var btnMsg = new NormalViewControl(bodyFrameLayout.Width, Application.GetRealHeight(60), false);
            btnMsg.Y = btnAuto.Bottom + Application.GetRealHeight(23);
            btnMsg.TextID = R.MyInternationalizationString.uIsHadNotBackupDataOnScan;
            btnMsg.TextAlignment = TextAlignment.Center;
            btnMsg.TextColor = UserCenterColor.Current.TextGrayColor1;
            bodyFrameLayout.AddChidren(btnMsg);
            //立即备份(推荐)
            var frameback = new FrameLayoutStatuControl();
            frameback.UseClickStatu = false;
            frameback.Y = Application.GetRealHeight(1201);
            frameback.Gravity = Gravity.CenterHorizontal;
            frameback.Width = Application.GetRealWidth(746);
            frameback.Height = Application.GetRealHeight(184);
            frameback.BackgroundImagePath = "Item/BottomButtonGround.png";
            bodyFrameLayout.AddChidren(frameback);
            var btnBackup = new NormalViewControl(400, 65, true);
            btnBackup.IsBold = true;
            btnBackup.TextColor = UserCenterColor.Current.White;
            btnBackup.TextSize = 16;
            btnBackup.Y = Application.GetRealHeight(49);
            btnBackup.Gravity = Gravity.CenterHorizontal;
            btnBackup.TextAlignment = TextAlignment.Center;
            btnBackup.Text = Language.StringByID(R.MyInternationalizationString.uImmediatelyBackup) + "(" + Language.StringByID(R.MyInternationalizationString.uRecommendation) + ")";
            frameback.AddChidren(btnBackup, ChidrenBindMode.BindEvent);
            frameback.ButtonClickEvent += (sender, e) =>
            {
                //是否要下载并恢复数据?
                string msg = Language.StringByID(R.MyInternationalizationString.uDownLoadAndRecoverMsg);
                this.ShowConfirmMsg(msg, "LoadBackupInfo", info.Id);
                HdlThreadLogic.Current.RunThread(() =>
                {
                    //上传数据
                    this.UpLoadBackupInfo();
                });
            };
        }
        #endregion
        #region ■ 读取备份文档_______________________
        /// <summary>
        /// 读取备份文档
        /// </summary>
        /// <param name="BackupClassId"></param>
        public void LoadBackupInfo(string BackupClassId)
        {
            new System.Threading.Thread(async () =>
            //暂不提醒
            var btnRemind = new NormalViewControl(688, 127, true);
            btnRemind.Y = frameback.Bottom + Application.GetRealHeight(52);
            btnRemind.Gravity = Gravity.CenterHorizontal;
            btnRemind.Radius = (uint)Application.GetRealHeight(127) / 2;
            btnRemind.BorderWidth = 1;
            btnRemind.BorderColor = UserCenterColor.Current.TextOrangeColor;
            btnRemind.TextAlignment = TextAlignment.Center;
            btnRemind.TextSize = 16;
            btnRemind.TextColor = UserCenterColor.Current.TextGrayColor3;
            btnRemind.TextID = R.MyInternationalizationString.uTemporaryStopRemind;
            bodyFrameLayout.AddChidren(btnRemind);
            btnRemind.ButtonClickEvent += (sender, e) =>
            {
                //从云端获取备份的文件
                bool result = await HdlBackupLogic.Current.LoadAppBackupInfo(BackupClassId);
                if (result == false)
                {
                    //文件恢复失败
                    string msg2 = Language.StringByID(R.MyInternationalizationString.uFileRecoverFail);
                    this.ShowNormalMsg(msg2);
                    return;
                }
                Application.RunOnMainThread(() =>
                {
                    //关闭所有界面
                    UserCenterLogic.CloseAllOpenForm();
                    //切换到主页
                    UserView.UserPage.Instance.Fresh();
                });
                //文件恢复成功
                string msg = Language.StringByID(R.MyInternationalizationString.uFileRecoverSuccess);
                this.ShowNormalMsg(msg);
            })
            { IsBackground = true }.Start();
                HdlAutoBackupLogic.SaveBackupNotPrompted(false, 3);
                this.CloseForm();
            };
        }
        #endregion
@@ -151,95 +112,27 @@
        /// <summary>
        /// 上传数据
        /// </summary>
        public void UpLoadBackupInfo()
        private void UpLoadBackupInfo()
        {
            new System.Threading.Thread(async () =>
            int result = HdlAutoBackupLogic.DoUpLoadAutoBackupData();
            if (result == -1)
            {
                int result = await HdlAutoBackupLogic.DoUpLoadAutoBackupData();
                if (result == -1)
                {
                    //文件上传失败
                    string msg = Language.StringByID(R.MyInternationalizationString.uFileUpLoadFail);
                    this.ShowErrorMsg(msg);
                //文件上传失败
                string msg = Language.StringByID(R.MyInternationalizationString.uFileUpLoadFail);
                this.ShowMassage(ShowMsgType.Error, msg);
                    return;
                }
                //数据成功同步到服务器
                string msg2 = Language.StringByID(R.MyInternationalizationString.uSynchronizeDataToServiceSuccessMsg);
                this.ShowTip(msg2);
                Application.RunOnMainThread(() =>
                {
                    //初始化中部控件
                    this.InitMiddleFrame();
                });
            })
            { IsBackground = true }.Start();
        }
        #endregion
        #region ■ 添加上传菜单_______________________
        /// <summary>
        /// 添加上传菜单
        /// </summary>
        private void AddUploadMenu()
        {
            var btnIcon = new TopLayoutMostRightView();
            btnIcon.UnSelectedImagePath = "Item/More.png";
            btnIcon.SelectedImagePath = "Item/MoreSelected.png";
            topFrameLayout.AddChidren(btnIcon);
            btnIcon.MouseUpEventHandler += (sender, e) =>
            {
                var menuForm = new TopRightMenuControl(this, 1);
                menuForm.AddRowMenu(Language.StringByID(R.MyInternationalizationString.uUpLoadAutoBackUpButton), (obj) =>
                {
                    //确认是否上传数据到服务器?
                    string msg = Language.StringByID(R.MyInternationalizationString.uSynchronizeDataToServiceMsg);
                    this.ShowConfirmMsg(msg, "UpLoadBackupInfo");
                });
                //menuForm.AddRowMenu("删除备份", (obj) =>
                //{
                //    string msg = "确定要删除自动备份吗?\r\n(PS:此功能后续会删除)";
                //    this.ShowConfirmMsg(msg, "DeleteBackId");
                //});
            };
        }
        #endregion
        #region ■ 添加删除菜单(暂时,后续会删除)______
        /// <summary>
        /// 删除备份(暂时,后续会删除)
        /// </summary>
        public async void DeleteBackId()
        {
            if (this.m_BackupDeleteClassId == null)
            {
                return;
            }
            //进度条
            this.ShowProgressBar();
            bool success = await HdlBackupLogic.Current.DeleteDbBackupData(m_BackupDeleteClassId);
            //关闭进度条
            this.CloseProgressBar();
            if (success == false)
            {
                //删除备份失败
                string msg = Language.StringByID(R.MyInternationalizationString.uDeleteBackupFail);
                this.ShowErrorMsg(msg);
                return;
            }
            //数据成功上传到服务器
            string msg2 = Language.StringByID(R.MyInternationalizationString.uSynchronizeDataToServiceSuccessMsg);
            this.ShowMassage(ShowMsgType.Tip, msg2);
            Application.RunOnMainThread(() =>
            {
                this.m_BackupDeleteClassId = null;
                this.InitMiddleFrame();
                this.CloseForm();
            });
        }
        #endregion
    }
}