using System; using System.Threading; using HDL_ON.DAL.Server; using HDL_ON.Entity; using Shared; namespace HDL_ON.UI { public partial class PersonalDataPage { /// /// 加载事件列表 /// void LoadEventList() { LoadEvent_ChangeHeadImageView(); LoadEvent_Logout(); LoadEvent_EditUserName(); LoadEvent_SkipInterpretationSettings(); LoadEvent_ChangeBindEmail(); LoadEvent_ChangeBindPhone(); LoadEvent_SkipModifyPassword(); LoadEvent_MyQRcode(); //GetUserInfo(); RefreshUserInfo(); } /// /// 加载选择头像选项view /// void LoadEvent_ChangeHeadImageView() { userHeadImageView.MouseUpEventHandler = (sender, e) => { LoadPictureOptionView(); }; } ///// ///// 退出登录操作 ///// //void Logout() //{ // #region 保存本地数据至文件夹 // string oldRegionRootPath = FileUtils.CreateRegionBackup(DB_ResidenceData.residenceData.CurReginID.ToString()); // new System.Threading.Thread(() => // { // try // { // var backuplist = FileUtils.ReadFiles(); // //移动文件 // foreach (var fileName in backuplist) // { // System.IO.FileInfo fileInfo = new System.IO.FileInfo(FileUtils.RootPath + fileName); // if (fileInfo.Exists) // { // fileInfo.MoveTo(oldRegionRootPath + fileName); // MainPage.Log("move file : " + fileName); // } // } // FileUtils.DeleteRegionFiles(oldRegionRootPath); // } // catch (Exception ex) // { // MainPage.Log($"xxx:{ex.Message}"); // } // finally // { // FileUtils.DeleteAllFile(); // } // }).Start(); // #endregion // //2.注销推送 // new HttpServerRequest().SignOutPush(); // //3.跳转登录页面 // UserInfo.Current.LastTime = DateTime.MinValue; // UserInfo.Current.headImagePagePath = "LoginIcon/2.png";//重置用户头像 // UserInfo.Current.SaveUserInfo(); // MainPage.GoLoginPage(UserInfo.Current); // DB_ResidenceData.residenceData.EixtAccount(); //} ///// ///// 退出登录操作 ///// //public void LogoutNew() //{ // //加载Loading效果 // var waitPage = new Loading(); // bodyView.AddChidren(waitPage); // waitPage.Start(Language.StringByID(StringId.PleaseWait)); // new Thread(() => // { // try // { // #region 保存本地数据至文件夹 // //string oldRegionRootPath = FileUtils.CreateRegionBackup(DB_ResidenceData.residenceData.CurReginID.ToString()); // ////清空之前的住宅文件 // //FileUtils.DeleteRegionFiles(oldRegionRootPath); // //var backuplist = FileUtils.ReadFiles(); // ////移动文件 // //foreach (var fileName in backuplist) // //{ // // System.IO.FileInfo fileInfo = new System.IO.FileInfo(FileUtils.RootPath + fileName); // // if (fileInfo.Exists) // // { // // fileInfo.MoveTo(oldRegionRootPath + fileName); // // MainPage.Log("move file : " + fileName); // // } // //} // #endregion // } // catch (Exception ex) // { // MainPage.Log($"xxx:{ex.Message}"); // } // finally // { // //FileUtils.DeleteAllFile(); // //2.注销推送 // new HttpServerRequest().SignOutPush(); // //3.跳转登录页面 // UserInfo.Current.LastTime = DateTime.MinValue; // UserInfo.Current.headImagePagePath = "LoginIcon/2.png";//重置用户头像 // UserInfo.Current.SaveUserInfo(); // Shared.Application.RunOnMainThread(() => // { // if (waitPage != null) // { // waitPage.RemoveFromParent(); // waitPage = null; // } // MainPage.GoLoginPage(UserInfo.Current); // DB_ResidenceData.residenceData.EixtAccount(); // }); // } // }).Start(); //} /// /// 退出账号登录事件 /// void LoadEvent_Logout() { btnLogout.MouseUpEventHandler += (sender, e) => { Action okAction = () => { HDLCommon.Current.Logout(); }; new ConfirmDialog().ShowDialog(StringId.Tip, StringId.IfConfirmLogout, okAction); }; } /// /// 加载背景图选择区域事件列表 /// void LoadEvent_PictureOptionViewEventList(FrameLayout baseView) { pictureOptionView.MouseUpEventHandler = (sender, e) => { baseView.RemoveFromParent(); }; baseView.MouseUpEventHandler = (sender, e) => { baseView.RemoveFromParent(); }; btnCancel.MouseUpEventHandler = (sender, e) => { baseView.RemoveFromParent(); }; btnTakePicture.MouseUpEventHandler = (sender, e) => { btnTakePicture.IsSelected = true; }; btnTakePicture.MouseUpEventHandler = (sender, e) => { btnTakePicture.IsSelected = false; //拍照裁剪 //var imageName = "headImage"; var imageName = Guid.NewGuid().ToString(); CropImage.TakePicture((imagePath) => { CropImageCallBack(imagePath); }, imageName, 1, 1); pictureOptionView.RemoveFromParent(); baseView.RemoveFromParent(); }; btnAlbum.MouseUpEventHandler = (sender, e) => { btnAlbum.IsSelected = true; }; btnAlbum.MouseUpEventHandler = (sender, e) => { btnAlbum.IsSelected = false; //从相册选择图片裁剪 var imageName = Guid.NewGuid().ToString(); //var imageName = "headImage"; CropImage.SelectPicture((imagePath) => { CropImageCallBack(imagePath); }, imageName, 1, 1); pictureOptionView.RemoveFromParent(); baseView.RemoveFromParent(); }; } /// /// 裁剪完照片回调,统一处理 /// /// 裁剪后的真实路径 void CropImageCallBack(string selectImagePath) { if (string.IsNullOrEmpty(selectImagePath) == true) { return; } //上传成功到回调 Action uploadSuccessAction = (imageUrl) => { //生成图片 UserInfo.Current.headImagePagePath = imageUrl; updataHeadImage(); UserInfo.Current.SaveUserInfo(); }; //上传图片到云端 UploadImage(selectImagePath, userHeadImageView, UserInfo.Current.ID, uploadSuccessAction); } /// /// 上传图片方法 /// /// 裁剪后的图片路径 /// /// void UploadImage(string selectImagePath, ImageView imageView, string userId, Action uploadSuccessAction) { try { MainPage.Log("SelectPicture 裁剪图片返回路径: " + selectImagePath); //1.读取裁剪后的图片,然后删除 var imageBytes = Shared.IO.FileUtils.ReadFile(selectImagePath); System.IO.File.Delete(selectImagePath); var waitPage = new Loading(); bodyView.AddChidren(waitPage); waitPage.Start(Language.StringByID(StringId.PleaseWait)); //1.开始上传 new Thread(() => { try { //生成上传头像参数 var uploadImageObj = new UploadImageObj() { prefix = "Icon" + Utlis.GetTimestamp(), uid = userId, fileName = ImageUtlis.HEADIMAGE, content = imageBytes, }; var imageUrl = ImageUtlis.Current.UploadImage(uploadImageObj); if (!string.IsNullOrEmpty(imageUrl) && imageUrl.Contains(userId)) { //2.上传成功 //2.1更新最新图片路径到云端 var resultObj = UpdateMemberHeadIcon(imageUrl); if (resultObj.Code == StateCode.SUCCESS) { //3.更新最新图片路径到云端成功 Application.RunOnMainThread(() => { //Utlis.WriteLine("上传成功:" + imageUrl); //1.2如果是自定义图片删除之前的 if (!string.IsNullOrEmpty(imageView.ImagePath) && !imageView.ImagePath.Contains("LoginIcon/2.png")) { //Utlis.WriteLine("删除: " + imageView.ImagePath); System.IO.File.Delete(imageView.ImagePath); } //重命名保存 ImageUtlis.Current.WriteFileByBytes(imageUrl, imageBytes); imageView.ImagePath = imageUrl; imageView.ImageBytes = imageBytes; //上传成功 Utlis.ShowTip(Language.StringByID(StringId.UploadSuccessfully)); uploadSuccessAction?.Invoke(imageUrl); }); } else { //更新最新图片路径到云端失败 Application.RunOnMainThread(() => { //保存用户头像失败 Utlis.ShowTip(Language.StringByID(StringId.FailedToSaveUserImage)); }); } } else { //上传失败 Application.RunOnMainThread(() => { //上传失败 Utlis.ShowTip(Language.StringByID(StringId.UploadFailed)); }); } } catch (Exception ex) { } finally { Application.RunOnMainThread(() => { if (waitPage != null) { waitPage.RemoveFromParent(); waitPage = null; } }); } }) { IsBackground = true }.Start(); } catch { } } /// /// 更新用户头像 /// /// /// public ResponsePackNew UpdateMemberHeadIcon(string memberHeadIcon) { var requestJson = HttpUtil.GetSignRequestJson(new UpdateMemberHeadIconRes() { memberHeadIcon = memberHeadIcon }); return HttpUtil.RequestHttpsPost(NewAPI.API_POST_Member_UpdateMemberInfo, requestJson); } /// /// 加载修改用户名称事件 /// void LoadEvent_EditUserName() { EventHandler eventHandler = (sender, e) => { Action callBack = (str) => { if (string.IsNullOrEmpty(str)) { new Tip() { CloseTime = 1, Text = Language.StringByID(StringId.UesrNameCannotBeEmpty), Direction = AMPopTipDirection.None, }.Show(bodyView); return; } if (str == UserInfo.Current.userName) { return; } var waitPage = new Loading(); bodyView.AddChidren(waitPage); waitPage.Start(Language.StringByID(StringId.PleaseWait)); new System.Threading.Thread(() => { try { var resultObj = new HttpServerRequest().EditUserName(str); if (resultObj.Code == StateCode.SUCCESS) { UserInfo.Current.userName = str; UserInfo.Current.SaveUserInfo(); Application.RunOnMainThread(() => { btnUserName.Text = str; updataUserName(); }); } else { //失败提示 IMessageCommon.Current.ShowErrorInfoAlter(resultObj.Code); } } catch (Exception ex) { MainPage.Log($"update user name error : {ex.Message}"); } finally { Application.RunOnMainThread(() => { if (waitPage != null) { waitPage.RemoveFromParent(); waitPage = null; } }); } }) { IsBackground = true }.Start(); }; new PublicAssmebly().LoadDialog_EditParater(StringId.ChangeName, UserInfo.Current.userName, callBack, StringId.UesrNameCannotBeEmpty, 0, new System.Collections.Generic.List()); }; btnUserName.MouseUpEventHandler = eventHandler; btnEditUserNameIcon.MouseUpEventHandler = eventHandler; } /// /// 加载我的二维码事件 /// void LoadEvent_MyQRcode() { EventHandler eventHandler = (sender, e) => { //我的二维码 var aep = new MyQRCodePage(); MainPage.BasePageView.AddChidren(aep); aep.LoadPage(); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; }; _QRcodeView.MouseUpEventHandler = eventHandler; btnQRcode.MouseUpEventHandler = eventHandler; btnQRcodeIcon.MouseUpEventHandler = eventHandler; btnQRcodeRight.MouseUpEventHandler = eventHandler; } #region 修改绑定邮箱 /// /// 修改绑定邮箱 /// void LoadEvent_ChangeBindEmail() { EventHandler eventHandler = (sender, e) => { Action action = (email) => { btnUserEmailInfo.Text = GetBindAccountText(email); }; if (CheckIfUnbound(btnUserEmailInfo.Text)) { //未绑定,跳转新绑定页面 var aep = new NewBindAccountPage(); MainPage.BasePageView.AddChidren(aep); aep.LoadPage(action); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; } else { var aep = new AccountBindInfoPage(); MainPage.BasePageView.AddChidren(aep); aep.LoadPage(action, 1, StringId.EmailAddress); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; } }; btnUserEmailInfo.MouseUpEventHandler = eventHandler; btnUserEmailRight.MouseUpEventHandler = eventHandler; userEmailInfoView.MouseUpEventHandler = eventHandler; } /// /// 修改绑定手机 /// void LoadEvent_ChangeBindPhone() { EventHandler eventHandler = (sender, e) => { Action action = (phone) => { btnUserPhoneInfo.Text = GetBindAccountText(phone); }; if (CheckIfUnbound(btnUserPhoneInfo.Text)) { //未绑定,跳转新绑定页面 var aep = new NewBindAccountPage(); MainPage.BasePageView.AddChidren(aep); aep.LoadPage(action, true); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; } else { var aep = new AccountBindInfoPage(); MainPage.BasePageView.AddChidren(aep); aep.LoadPage(action, 2, StringId.PhoneInfo); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; } }; btnUserPhoneInfo.MouseUpEventHandler = eventHandler; btnUserPhoneRight.MouseUpEventHandler = eventHandler; userPhoneInfoView.MouseUpEventHandler = eventHandler; } #endregion #region 解锁设置区域 void LoadEvent_SkipInterpretationSettings() { EventHandler eventHandler = (sender, e) => { var page = new AppUnlockSettingsPage(); MainPage.BasePageView.AddChidren(page); page.LoadPage(); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; }; btnInterpretationSettingsRight.MouseUpEventHandler = eventHandler; btnInterpretationSettingsTitle.MouseUpEventHandler = eventHandler; btnInterpretationSettingsTip.MouseUpEventHandler = eventHandler; } #endregion /// /// 跳转修改密码界面 /// void LoadEvent_SkipModifyPassword() { EventHandler eventHandler = (sender, e) => { var page = new ResetPasswordOptionPage(); MainPage.BasePageView.AddChidren(page); page.LoadPage(); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; }; btnResetPasswordRight.MouseUpEventHandler = eventHandler; btnResetPasswordText.MouseUpEventHandler = eventHandler; resetPasswordView.MouseUpEventHandler = eventHandler; } /// /// /// void GetUserInfo() { new System.Threading.Thread(() => { new HttpServerRequest().GetUserInfo(); }) { IsBackground = true }.Start(); } /// /// 2020-12-15 增加刷新用户信息 /// /// public void RefreshUserInfo() { var waitPage = new Loading(); bodyView.AddChidren(waitPage); waitPage.Start(Language.StringByID(StringId.PleaseWait)); new Thread(() => { try { var requestJson = HttpUtil.GetSignRequestJson(new NullObj()); var resultObj = HttpUtil.RequestHttpsPost(NewAPI.API_POST_Member_GetMemberInfo, requestJson); if (resultObj.Code == StateCode.SUCCESS) { var info = Newtonsoft.Json.JsonConvert.DeserializeObject(resultObj.Data.ToString()); if (!string.IsNullOrEmpty(info.memberPhonePrefix)) { UserInfo.Current.areaCode = info.memberPhonePrefix; } var headImagePagePath = ""; //2020-12-15 修改头像方案 if (!string.IsNullOrEmpty(info.memberHeadIcon)) { var headImageBytes = ImageUtlis.Current.DownHeadImageByImageKey(info.memberHeadIcon); if (headImageBytes != null && headImageBytes.Length > 0) { headImagePagePath = info.memberHeadIcon; } } Application.RunOnMainThread(() => { if (UserInfo.Current.userEmailInfo != info.memberEmail) { //更新邮箱 UserInfo.Current.userEmailInfo = info.memberEmail; btnUserEmailInfo.Text = GetBindAccountText(UserInfo.Current.userEmailInfo); } if (UserInfo.Current.userMobileInfo != info.memberPhone) { //更新手机号 UserInfo.Current.userMobileInfo = info.memberPhone; btnUserPhoneInfo.Text = GetBindAccountText(UserInfo.Current.userMobileInfo); } if (UserInfo.Current.userName != info.memberName) { //更新用户名字 UserInfo.Current.userName = info.memberName; btnUserName.Text = string.IsNullOrEmpty(UserInfo.Current.userName) ? Language.StringByID(StringId.UsersWhoNameIsEmpty) : UserInfo.Current.userName; updataUserName(); } if (!string.IsNullOrEmpty(headImagePagePath) && UserInfo.Current.headImagePagePath != headImagePagePath) { //更新头像 UserInfo.Current.headImagePagePath = headImagePagePath; userHeadImageView.ImagePath = UserInfo.Current.headImagePagePath; updataHeadImage(); } UserInfo.Current.SaveUserInfo(); Utlis.WriteLine("刷新用户信息成功。"); }); } } catch { } finally { Application.RunOnMainThread(() => { if (waitPage != null) { waitPage.RemoveFromParent(); waitPage = null; } }); } }) { IsBackground = true }.Start(); } } }