CrabtreeOn,印度客户定制APP,迁移2.0平台版本
1
wxr
2023-03-31 d53e6af2c5f17838fa79659614b15a2a1f383399
Crabtree/SmartHome/UI/SimpleControl/Phone/User/UserSettingView.cs
@@ -48,6 +48,39 @@
            //    Utlis.WriteLine (ex.ToString ());
            //}
            ShowBodyView ();
        }
        /// <summary>
        /// 当前setting页面 加载是否分享住宅角色,决定是否隐藏相应的菜单按钮
        /// </summary>
        static bool IsOthreShare = false;
        /// <summary>
        /// 住宅列表页面
        /// 切换住宅后需要判断是否需要隐藏或者显示功能菜单按钮刷新布局
        /// 当前住宅自己的:显示数据接收、同步数据、定时器、alexa、子账号管理 5个功能菜单按钮
        /// 子账号当前住宅不是自己的:隐藏上面5个按钮
        /// </summary>
        public static void CheckIfRefreshView ()
        {
           if(UserConfig.Instance.CurrentRegion.IsOthreShare != IsOthreShare) {
                ShowBodyView ();
                //Utlis.WriteLine ("需要刷新");
            }
        }
        /// <summary>
        /// 加载BodyView
        /// </summary>
        public static void ShowBodyView ()
        {
            if (UserMiddle.SettingView == null) return;
            UserMiddle.SettingView.RemoveAll ();
            IsOthreShare = UserConfig.Instance.CurrentRegion.IsOthreShare;
            FrameLayout topUserMsgView = new FrameLayout () {
                Y = Application.GetRealHeight (126),
                Height = Application.GetRealHeight (175),
@@ -74,7 +107,7 @@
                Height = Application.GetRealHeight (50),
                TextAlignment = TextAlignment.CenterLeft,
                TextColor = SkinStyle.Current.TextColor1,
                Text = MainPage.LoginUser.Name == "" ? Language.StringByID(R.MyInternationalizationString.Account) : MainPage.LoginUser.Name,
                Text = MainPage.LoginUser.Name == "" ? Language.StringByID (R.MyInternationalizationString.Account) : MainPage.LoginUser.Name,
                //TextID = R.MyInternationalizationString.Account
            };
            topUserMsgView.AddChidren (btnUserName);
@@ -102,7 +135,7 @@
            };
            topUserMsgView.AddChidren (btnTopUserMsgRight);
            EventHandler<MouseEventArgs> accountEventHandler = (sender, e) => {
                new AccountLogin ().Show ();
            };
@@ -117,7 +150,7 @@
            UserMiddle.SettingView.AddChidren (btTopNull);
            #endregion
            #region ---进入后台---DeviceManagementView---
            if (true) {//调试账号
                       //if (MainPage.LoginUser.AccountType == 0) {//调试账号
@@ -211,91 +244,136 @@
            #region ---数据接收---
            //if (MainPage.LoginUser.AccountType == 2 || MainPage.LoginUser.AccountString == @"464027401@qq.com") {
            if (true) {
                var DataReceptionView = new FrameLayout () {
                    Width = Application.GetRealWidth (640),
                    Height = Application.GetRealHeight (100),
                    BackgroundColor = SkinStyle.Current.ViewColor
            var DataReceptionView = new FrameLayout () {
                Width = Application.GetRealWidth (640),
                Height = Application.GetRealHeight (100),
                BackgroundColor = SkinStyle.Current.ViewColor
            };
            //UserMiddle.SettingView.AddChidren (DataReceptionView);
            var btnDataReceptionIcon = new Button () {
                X = Application.GetRealWidth (30),
                Gravity = Gravity.CenterVertical,
                Width = Application.GetRealWidth (75),
                Height = Application.GetRealHeight (75),
                UnSelectedImagePath = "AccountSettings/DataShared.png"
            };
            DataReceptionView.AddChidren (btnDataReceptionIcon);
            var btnDataReceptionTitle = new Button () {
                X = Application.GetRealWidth (125),
                TextAlignment = TextAlignment.CenterLeft,
                TextID = R.MyInternationalizationString.DataReception,
                TextColor = SkinStyle.Current.TextColor1,
            };
            DataReceptionView.AddChidren (btnDataReceptionTitle);
            EventHandler<MouseEventArgs> DataReceptionEventHandler = (sender, e) => {
                GoData ();
            };
            DataReceptionView.MouseUpEventHandler += DataReceptionEventHandler;
            btnDataReceptionIcon.MouseUpEventHandler += DataReceptionEventHandler;
            btnDataReceptionTitle.MouseUpEventHandler += DataReceptionEventHandler;
            Button btnNull3 = new Button () {
                BackgroundColor = SkinStyle.Current.MainColor,
                Height = Application.GetRealHeight (5)
            };
            //UserMiddle.SettingView.AddChidren (btnNull3);
            #endregion
            #region ---msg---
            //FrameLayout WarningMsgView = new FrameLayout () {
            //    Width = Application.GetRealWidth (640),
            //    Height = Application.GetRealHeight (100),
            //    BackgroundColor = SkinStyle.Current.ViewColor
            //};
            //UserMiddle.SettingView.AddChidren (WarningMsgView);
            //Button btnWarningMsgIcon = new Button () {
            //    X = Application.GetRealWidth (30),
            //    Gravity = Gravity.CenterVertical,
            //    Width = Application.GetRealWidth (75),
            //    Height = Application.GetRealHeight (75),
            //    UnSelectedImagePath = "RemoteMsg/RemoteIcon.png",
            //    SelectedImagePath = "RemoteMsg/RemoteIconOn.png"
            //};
            //WarningMsgView.AddChidren (btnWarningMsgIcon);
            //Button btnWarningMsgTitle = new Button () {
            //    X = btnWarningMsgIcon.Right + Application.GetRealWidth (20),
            //    TextAlignment = TextAlignment.CenterLeft,
            //    TextID = R.MyInternationalizationString.MessageAlert,
            //    TextColor = SkinStyle.Current.TextColor1,
            //};
            //WarningMsgView.AddChidren (btnWarningMsgTitle);
            //btnWarningMsgTitle.MouseLongEventHandler += (sd, ds) => {
            //    //var uc = UserConfig.Instance.RometoUserInfoKeys.Find ((obj) => obj.Contains ("HiddenJson"));
            //    //new Alert ("", uc, "close").Show ();
            //};
            //EventHandler<MouseEventArgs> WarningMsgEventHandler = (sender, e) => {
            //    var msgView = new WarningList ();
            //    UserMiddle.SettingPageView.AddChidren (msgView);
            //    msgView.ShowWarningListPage ();
            //    UserMiddle.SettingPageView.PageIndex = 1;
            //};
            //WarningMsgView.MouseUpEventHandler += WarningMsgEventHandler;
            //btnWarningMsgIcon.MouseUpEventHandler += WarningMsgEventHandler;
            //btnWarningMsgTitle.MouseUpEventHandler += WarningMsgEventHandler;
            //Button btnNullWarningMsg = new Button () {
            //    Height = Application.GetRealHeight (5),
            //    BackgroundColor = SkinStyle.Current.MainColor
            //};
            //UserMiddle.SettingView.AddChidren (btnNullWarningMsg);
            #endregion
            #region ---同步设备---
            FrameLayout SyncDeviceView = new FrameLayout () {
                Width = Application.GetRealWidth (640),
                Height = Application.GetRealHeight (100),
                BackgroundColor = SkinStyle.Current.ViewColor
            };
            Button btnSyncDeviceIcon = new Button () {
                X = Application.GetRealWidth (30),
                Gravity = Gravity.CenterVertical,
                Width = Application.GetRealWidth (75),
                Height = Application.GetRealWidth (75),
                UnSelectedImagePath = "CrabtreeAdd/Alexa.png",
            };
            SyncDeviceView.AddChidren (btnSyncDeviceIcon);
            Button btnSyncDeviceTitle = new Button () {
                X = Application.GetRealWidth (125),
                TextAlignment = TextAlignment.CenterLeft,
                TextID = R.MyInternationalizationString.SyncToTheCloud,
                //Text = "上传设备",
                TextColor = SkinStyle.Current.TextColor1,
            };
            SyncDeviceView.AddChidren (btnSyncDeviceTitle);
            EventHandler<MouseEventArgs> SyncDeviceEventHandler = (sender, e) => {
                //没绑定忘记提示先绑定网关,禁止跳转
                if (!UserConfig.Instance.CheckWhetherGatewayIdNotNull ()) {
                    Utlis.ShowAlertOnMainThread (Language.StringByID (R.MyInternationalizationString.PleaseBindTheGatewayFirst));
                    return;
                }
                //ok事件
                Action okAction = () => {
                    HDLLinkUtlis.Current.OneclickUpload ();
                };
                UserMiddle.SettingView.AddChidren (DataReceptionView);
                var btnDataReceptionIcon = new Button () {
                    X = Application.GetRealWidth (30),
                    Gravity = Gravity.CenterVertical,
                    Width = Application.GetRealWidth (75),
                    Height = Application.GetRealHeight (75),
                    UnSelectedImagePath = "AccountSettings/DataShared.png"
                };
                DataReceptionView.AddChidren (btnDataReceptionIcon);
                var btnDataReceptionTitle = new Button () {
                    X = Application.GetRealWidth (125),
                    TextAlignment = TextAlignment.CenterLeft,
                    TextID = R.MyInternationalizationString.DataReception,
                    TextColor = SkinStyle.Current.TextColor1,
                };
                DataReceptionView.AddChidren (btnDataReceptionTitle);
                EventHandler<MouseEventArgs> DataReceptionEventHandler = (sender, e) => {
                    GoData ();
                };
                DataReceptionView.MouseUpEventHandler += DataReceptionEventHandler;
                btnDataReceptionIcon.MouseUpEventHandler += DataReceptionEventHandler;
                btnDataReceptionTitle.MouseUpEventHandler += DataReceptionEventHandler;
                Button btnNull3 = new Button () {
                    BackgroundColor = SkinStyle.Current.MainColor,
                    Height = Application.GetRealHeight (5)
                };
                UserMiddle.SettingView.AddChidren (btnNull3);
            }
        #endregion
                CommonUtlis.Current.ShowActionAlert (Language.StringByID (R.MyInternationalizationString.DoYouWantToSynchronizeToTheCloud), okAction);
            };
            SyncDeviceView.MouseUpEventHandler += SyncDeviceEventHandler;
            btnSyncDeviceIcon.MouseUpEventHandler += SyncDeviceEventHandler;
            btnSyncDeviceTitle.MouseUpEventHandler += SyncDeviceEventHandler;
            Button btnNullSyncDevice = new Button () {
                Height = Application.GetRealHeight (5),
                BackgroundColor = SkinStyle.Current.MainColor
            };
            //UserMiddle.SettingView.AddChidren (btnNullSchedule);
            #endregion
        #region ---msg---
        //FrameLayout WarningMsgView = new FrameLayout () {
        //    Width = Application.GetRealWidth (640),
        //    Height = Application.GetRealHeight (100),
        //    BackgroundColor = SkinStyle.Current.ViewColor
        //};
        //UserMiddle.SettingView.AddChidren (WarningMsgView);
        //Button btnWarningMsgIcon = new Button () {
        //    X = Application.GetRealWidth (30),
        //    Gravity = Gravity.CenterVertical,
        //    Width = Application.GetRealWidth (75),
        //    Height = Application.GetRealHeight (75),
        //    UnSelectedImagePath = "RemoteMsg/RemoteIcon.png",
        //    SelectedImagePath = "RemoteMsg/RemoteIconOn.png"
        //};
        //WarningMsgView.AddChidren (btnWarningMsgIcon);
        //Button btnWarningMsgTitle = new Button () {
        //    X = btnWarningMsgIcon.Right + Application.GetRealWidth (20),
        //    TextAlignment = TextAlignment.CenterLeft,
        //    TextID = R.MyInternationalizationString.MessageAlert,
        //    TextColor = SkinStyle.Current.TextColor1,
        //};
        //WarningMsgView.AddChidren (btnWarningMsgTitle);
        //btnWarningMsgTitle.MouseLongEventHandler += (sd, ds) => {
        //    //var uc = UserConfig.Instance.RometoUserInfoKeys.Find ((obj) => obj.Contains ("HiddenJson"));
        //    //new Alert ("", uc, "close").Show ();
        //};
        //EventHandler<MouseEventArgs> WarningMsgEventHandler = (sender, e) => {
        //    var msgView = new WarningList ();
        //    UserMiddle.SettingPageView.AddChidren (msgView);
        //    msgView.ShowWarningListPage ();
        //    UserMiddle.SettingPageView.PageIndex = 1;
        //};
        //WarningMsgView.MouseUpEventHandler += WarningMsgEventHandler;
        //btnWarningMsgIcon.MouseUpEventHandler += WarningMsgEventHandler;
        //btnWarningMsgTitle.MouseUpEventHandler += WarningMsgEventHandler;
        //Button btnNullWarningMsg = new Button () {
        //    Height = Application.GetRealHeight (5),
        //    BackgroundColor = SkinStyle.Current.MainColor
        //};
        //UserMiddle.SettingView.AddChidren (btnNullWarningMsg);
        #endregion
          #region ---Schedule---
        FrameLayout ScheduleView = new FrameLayout () {
            #region ---Schedule---
            FrameLayout ScheduleView = new FrameLayout () {
                Width = Application.GetRealWidth (640),
                Height = Application.GetRealHeight (100),
                BackgroundColor = SkinStyle.Current.ViewColor
@@ -329,9 +407,8 @@
                Height = Application.GetRealHeight (5),
                BackgroundColor = SkinStyle.Current.MainColor
            };
            UserMiddle.SettingView.AddChidren (btnNullSchedule);
            //UserMiddle.SettingView.AddChidren (btnNullSchedule);
            #endregion
            #region ---Alexa---
            FrameLayout AlexaView = new FrameLayout () {
@@ -344,19 +421,20 @@
                Gravity = Gravity.CenterVertical,
                Width = Application.GetRealWidth (75),
                Height = Application.GetRealWidth (75),
                UnSelectedImagePath = "CrabtreeAdd/Alexa.png",
                UnSelectedImagePath = "CrabtreeAdd/Speaker.png",
            };
            AlexaView.AddChidren (btnAlexaIcon);
            //智能音箱
            Button btnAlexaTitle = new Button () {
                X = Application.GetRealWidth (125),
                TextAlignment = TextAlignment.CenterLeft,
                Text = "Alexa Integration",
                Text = "Smart speaker",
                TextColor = SkinStyle.Current.TextColor1,
            };
            AlexaView.AddChidren (btnAlexaTitle);
            EventHandler<MouseEventArgs> AlexaEventHandler = (sender, e) => {
                var alexaPage = new AlexaDeviceListPage ();
                var alexaPage = new SmartSpeakertListPage ();
                UserMiddle.SettingPageView.AddChidren (alexaPage);
                alexaPage.ShowPage ();
                UserMiddle.SettingPageView.PageIndex = 1;
@@ -368,93 +446,97 @@
                Height = Application.GetRealHeight (5),
                BackgroundColor = SkinStyle.Current.MainColor
            };
            UserMiddle.SettingView.AddChidren (btnNullAlexa);
            //UserMiddle.SettingView.AddChidren (btnNullAlexa);
            #endregion
            #region subaccount
            //if (MainPage.LoginUser.AccountType == 0) {
                FrameLayout subaccountView = new FrameLayout () {
                    Width = Application.GetRealWidth (640),
                    Height = Application.GetRealHeight (100),
                    BackgroundColor = SkinStyle.Current.ViewColor
                };
                Button btnSubaccountIcon = new Button () {
                    X = Application.GetRealWidth (30),
                    Gravity = Gravity.CenterVertical,
                    Width = Application.GetRealWidth (75),
                    Height = Application.GetRealWidth (75),
                    UnSelectedImagePath = "CrabtreeAdd/SubaccountIcon.png",
                };
                subaccountView.AddChidren (btnSubaccountIcon);
            FrameLayout subaccountView = new FrameLayout () {
                Width = Application.GetRealWidth (640),
                Height = Application.GetRealHeight (100),
                BackgroundColor = SkinStyle.Current.ViewColor
            };
            Button btnSubaccountIcon = new Button () {
                X = Application.GetRealWidth (30),
                Gravity = Gravity.CenterVertical,
                Width = Application.GetRealWidth (75),
                Height = Application.GetRealWidth (75),
                UnSelectedImagePath = "CrabtreeAdd/SubaccountIcon.png",
            };
            subaccountView.AddChidren (btnSubaccountIcon);
                Button btnSubaccountTitle = new Button () {
                    X = Application.GetRealWidth (125),
                    TextAlignment = TextAlignment.CenterLeft,
                    Text= "User Management",
                    TextColor = SkinStyle.Current.TextColor1,
                };
                subaccountView.AddChidren (btnSubaccountTitle);
            Button btnSubaccountTitle = new Button () {
                X = Application.GetRealWidth (125),
                TextAlignment = TextAlignment.CenterLeft,
                Text = "User Management",
                TextColor = SkinStyle.Current.TextColor1,
            };
            subaccountView.AddChidren (btnSubaccountTitle);
                Button btnNullSubaccount = new Button () {
                    Height = Application.GetRealHeight (5),
                    BackgroundColor = SkinStyle.Current.MainColor
                };
                UserMiddle.SettingView.AddChidren (btnNullSubaccount);
            Button btnNullSubaccount = new Button () {
                Height = Application.GetRealHeight (5),
                BackgroundColor = SkinStyle.Current.MainColor
            };
            //UserMiddle.SettingView.AddChidren (btnNullSubaccount);
                EventHandler<MouseEventArgs> SubaccountEventHandler = (sender, e) => {
                    if (UserConfig.Instance.CurrentRegion.IsOthreShare) {
                        //提示没有分享住宅的权限
                        new Alert ("", ErrorCode.InsufficientAuthority, "Close").Show ();
                        return;
                    }
            EventHandler<MouseEventArgs> SubaccountEventHandler = (sender, e) => {
                if (UserConfig.Instance.CurrentRegion.IsOthreShare) {
                    //提示没有分享住宅的权限
                    new Alert ("", ErrorCode.InsufficientAuthority, "Close").Show ();
                    return;
                }
                    if (UserConfig.Instance.internetStatus == 0) {
                        new Alert ("", "Unable to save data, please check the network.", "Close").Show ();
                        return;
                    }
                    MainPage.Loading.Start ("Please wait...");
                    System.Threading.Tasks.Task.Run (() => {
                        try {
                            var revertObj = HttpServerRequest.Current.GetResidenceMemberAccount ();
                            if (revertObj.Code == StateCode.SUCCESS) {
                                Application.RunOnMainThread (() => {
                                    var responeObj = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ResidenceMemberInfo>> (revertObj.Data.ToString ());
                                    SubaccountListView subView = new SubaccountListView (responeObj);
                                    UserMiddle.SettingPageView.AddChidren (subView);
                                    subView.ShowSubaccountListView ();
                                    UserMiddle.SettingPageView.PageIndex += 1;
                                });
                            } else {
                                IMessageCommon.Current.ShowErrorInfoAlter (revertObj.Code);
                            }
                        } catch (Exception ex) {
                            MainPage.FailureToServer ();
                            Utlis.WriteLine (ex.Message);
                        } finally {
                if (UserConfig.Instance.internetStatus == 0) {
                    new Alert ("", "Unable to save data, please check the network.", "Close").Show ();
                    return;
                }
                MainPage.Loading.Start ("Please wait...");
                System.Threading.Tasks.Task.Run (() => {
                    try {
                        var revertObj = HttpServerRequest.Current.GetResidenceMemberAccount ();
                        if (revertObj.Code == StateCode.SUCCESS) {
                            Application.RunOnMainThread (() => {
                                MainPage.Loading.Hide ();
                                var responeObj = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ResidenceMemberInfo>> (revertObj.Data.ToString ());
                                SubaccountListView subView = new SubaccountListView (responeObj);
                                UserMiddle.SettingPageView.AddChidren (subView);
                                subView.ShowSubaccountListView ();
                                UserMiddle.SettingPageView.PageIndex += 1;
                            });
                        } else {
                            IMessageCommon.Current.ShowErrorInfoAlter (revertObj.Code);
                        }
                    });
                };
                subaccountView.MouseUpEventHandler += SubaccountEventHandler;
                btnSubaccountIcon.MouseUpEventHandler += SubaccountEventHandler;
                btnSubaccountTitle.MouseUpEventHandler += SubaccountEventHandler;
                    } catch (Exception ex) {
                        MainPage.FailureToServer ();
                        Utlis.WriteLine (ex.Message);
                    } finally {
                        Application.RunOnMainThread (() => {
                            MainPage.Loading.Hide ();
                        });
                    }
                });
            };
            subaccountView.MouseUpEventHandler += SubaccountEventHandler;
            btnSubaccountIcon.MouseUpEventHandler += SubaccountEventHandler;
            btnSubaccountTitle.MouseUpEventHandler += SubaccountEventHandler;
            //}
            #endregion
            if (!UserConfig.Instance.CurrentRegion.IsOthreShare) {
                //主账号开放该功能;
                UserMiddle.SettingView.AddChidren (DataReceptionView);
                UserMiddle.SettingView.AddChidren (btnNull3);
            //if (!UserConfig.Instance.CurrentRegion.IsOthreShare) {
            //    //主账号开放该功能;
            //    UserMiddle.SettingView.AddChidren (ScheduleView);
            //    UserMiddle.SettingView.AddChidren (AlexaView);
            //    UserMiddle.SettingView.AddChidren (subaccountView);
            //}
                UserMiddle.SettingView.AddChidren (SyncDeviceView);
                UserMiddle.SettingView.AddChidren (btnNullSyncDevice);
            //主账号开放该功能;
            UserMiddle.SettingView.AddChidren (ScheduleView);
            UserMiddle.SettingView.AddChidren (AlexaView);
            UserMiddle.SettingView.AddChidren (subaccountView);
                UserMiddle.SettingView.AddChidren (ScheduleView);
                UserMiddle.SettingView.AddChidren (btnNullSchedule);
                UserMiddle.SettingView.AddChidren (AlexaView);
                UserMiddle.SettingView.AddChidren (btnNullAlexa);
                UserMiddle.SettingView.AddChidren (subaccountView);
                UserMiddle.SettingView.AddChidren (btnNullSubaccount);
            }
            #region ---help---
            var helpView = new FrameLayout () {
                Width = Application.GetRealWidth (640),
@@ -502,14 +584,13 @@
            #endregion
            Button btnNullSkin = new Button () {
                Height = Application.GetRealHeight (5),
                BackgroundColor = SkinStyle.Current.MainColor
            };
            UserMiddle.SettingView.AddChidren (btnNullSkin);
        }
        static void GoData ()
@@ -595,30 +676,6 @@
                dialog.Close ();
            };
            dialog.Show ();
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="stateCodeStr"></param>
        static void ShowGetSubAccountByDistributedMarkErrorInfo (string stateCodeStr)
        {
            string mes = "";
            if (stateCodeStr == ErrorCode.NetworkError) {
                mes = ErrorCode.NetworkError;
            } else {
                mes = ErrorCode.OperationFailed + ErrorCode.Reason + stateCodeStr;
            }
            if (!string.IsNullOrEmpty (mes)) {
                Application.RunOnMainThread (() => {
                    new Alert ("", mes, Language.StringByID (R.MyInternationalizationString.Close)).Show ();
                });
            }
        }
    }