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),
@@ -211,43 +244,40 @@
            #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
                };
                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) => {
            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);
            }
                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 () {
@@ -294,6 +324,54 @@
            //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 ();
                };
                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 ---Schedule---
            FrameLayout ScheduleView = new FrameLayout () {
                Width = Application.GetRealWidth (640),
@@ -332,7 +410,6 @@
            //UserMiddle.SettingView.AddChidren (btnNullSchedule);
            #endregion
            #region ---Alexa---
            FrameLayout AlexaView = new FrameLayout () {
                Width = Application.GetRealWidth (640),
@@ -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;
@@ -445,6 +523,12 @@
            if (!UserConfig.Instance.CurrentRegion.IsOthreShare) {
                //主账号开放该功能;
                UserMiddle.SettingView.AddChidren (DataReceptionView);
                UserMiddle.SettingView.AddChidren (btnNull3);
                UserMiddle.SettingView.AddChidren (SyncDeviceView);
                UserMiddle.SettingView.AddChidren (btnNullSyncDevice);
                UserMiddle.SettingView.AddChidren (ScheduleView);
                UserMiddle.SettingView.AddChidren (btnNullSchedule);
                UserMiddle.SettingView.AddChidren (AlexaView);
@@ -507,7 +591,6 @@
                BackgroundColor = SkinStyle.Current.MainColor
            };
            UserMiddle.SettingView.AddChidren (btnNullSkin);
        }
        static void GoData ()
@@ -593,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 ();
                });
            }
        }
    }