From 2202cc1f498434220f010f3806a5030390f616ee Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期四, 15 四月 2021 17:57:39 +0800
Subject: [PATCH] 2021-04-15 1.Alexa相关页面标题修改。2.增加解绑按钮

---
 Crabtree/SmartHome/UI/SimpleControl/Phone/User/UserSettingView.cs        |    4 +
 Crabtree/ON/Assets/Language.ini                                          |    6 ++
 Crabtree/SmartHome/HDL/Common/CommonUtlis.cs                             |    6 ++
 Crabtree/SmartHome/HDL/Common/HttpUtil/HttpServerRequest.cs              |   11 +++
 Crabtree/SmartHome/HDL/Common/HttpUtil/NewAPI.cs                         |    4 +
 Crabtree/SmartHome/UI/SimpleControl/MainPage.cs                          |    2 
 Crabtree/SmartHome/UI/SimpleControl/R.cs                                 |   14 ++++
 Crabtree/ON.Ios/Resources/Language.ini                                   |    6 ++
 Crabtree/SmartHome/UI/SimpleControl/Phone/Alexa/SmartSpeakertListPage.cs |   71 ++++++++++++++++++++++-
 Crabtree/SmartHome/UI/SimpleControl/Phone/Alexa/AlexaDeviceListPage.cs   |   13 +++
 Crabtree/ON/Properties/AndroidManifest.xml                               |    2 
 Crabtree/.vs/SmartHome/xs/UserPrefs.xml                                  |   40 +++++++++++--
 Crabtree/ON.Ios/ON.Ios.csproj                                            |    1 
 13 files changed, 163 insertions(+), 17 deletions(-)

diff --git a/Crabtree/.vs/SmartHome/xs/UserPrefs.xml b/Crabtree/.vs/SmartHome/xs/UserPrefs.xml
index f11805c..240550b 100644
--- a/Crabtree/.vs/SmartHome/xs/UserPrefs.xml
+++ b/Crabtree/.vs/SmartHome/xs/UserPrefs.xml
@@ -1,17 +1,43 @@
 锘�<Properties StartupConfiguration="{1D83BF28-BA88-4152-BA41-D7EFE90A5437}|Default">
   <MonoDevelop.Ide.ItemProperties.ON.Droid PreferredExecutionTarget="Android.Android_Accelerated_Oreo" />
-  <MonoDevelop.Ide.Workbench>
+  <MonoDevelop.Ide.Workbench ActiveDocument="ON.Ios/Resources/Language.ini">
     <Files>
-      <File FileName="SmartHome/UI/SimpleControl/Phone/Schedule/AddSchedule.cs" Line="1167" Column="53" />
-      <File FileName="SmartHome/UI/SimpleControl/Phone/Scene/SceneMethod.cs" Line="62" Column="43" />
-      <File FileName="SmartHome/UI/SimpleControl/Phone/Scene/UserAddSceneDevice.cs" Line="1850" Column="23" />
-      <File FileName="SmartHome/HDL/Operation/Device/FanModule.cs" Line="6" Column="15" />
+      <File FileName="SmartHome/UI/SimpleControl/Phone/Alexa/SmartSpeakertListPage.cs" Line="153" Column="48" />
+      <File FileName="SmartHome/HDL/Common/HttpUtil/HttpUtil.cs" Line="236" Column="1" />
+      <File FileName="SmartHome/HDL/Common/CommonUtlis.cs" Line="264" Column="27" />
+      <File FileName="ON/Assets/Language.ini" Line="1114" Column="1" />
+      <File FileName="SmartHome/UI/SimpleControl/R.cs" Line="1222" Column="44" />
+      <File FileName="ON.Ios/Resources/Language.ini" Line="2230" Column="1" />
     </Files>
     <Pads>
       <Pad Id="ProjectPad">
         <State name="__root__">
           <Node name="SmartHome" expanded="True">
-            <Node name="ON.Droid" selected="True" />
+            <Node name="ON.Droid" expanded="True">
+              <Node name="Assets" expanded="True" />
+            </Node>
+            <Node name="ON.Ios" expanded="True">
+              <Node name="References" expanded="True" />
+              <Node name="Resources" expanded="True">
+                <Node name="Language.ini" selected="True" />
+              </Node>
+            </Node>
+            <Node name="Shared" expanded="True">
+              <Node name="HDL" expanded="True">
+                <Node name="Common" expanded="True">
+                  <Node name="HttpUtil" expanded="True" />
+                </Node>
+              </Node>
+              <Node name="UI" expanded="True">
+                <Node name="SimpleControl" expanded="True">
+                  <Node name="Phone" expanded="True">
+                    <Node name="Alexa" expanded="True" />
+                    <Node name="Schedule" expanded="True" />
+                    <Node name="User" expanded="True" />
+                  </Node>
+                </Node>
+              </Node>
+            </Node>
           </Node>
         </State>
       </Pad>
@@ -25,7 +51,7 @@
     <String>IosService/IosService.csproj</String>
     <String>DroidService/DroidService.csproj</String>
   </DisabledProjects>
-  <MonoDevelop.Ide.Workspace ActiveConfiguration="Release|iPhone" />
+  <MonoDevelop.Ide.Workspace ActiveConfiguration="Debug|iPhone" />
   <MonoDevelop.Ide.ItemProperties.ON.Ios automaticSigning="False" PreferredExecutionTarget="MonoDevelop.IPhone.IPhoneDeviceTarget.00008030-00014C392121802E" />
   <MonoDevelop.Ide.DebuggingService.Breakpoints>
     <BreakpointStore>
diff --git a/Crabtree/ON.Ios/ON.Ios.csproj b/Crabtree/ON.Ios/ON.Ios.csproj
index 817459d..0e751cb 100644
--- a/Crabtree/ON.Ios/ON.Ios.csproj
+++ b/Crabtree/ON.Ios/ON.Ios.csproj
@@ -47,7 +47,6 @@
     <MtouchExtraArgs>-gcc_flags="-dead_strip -ObjC"</MtouchExtraArgs>
     <CheckForOverflowUnderflow>true</CheckForOverflowUnderflow>
     <DeviceSpecificBuild>true</DeviceSpecificBuild>
-<CodesignProvision>iOS Team Provisioning Profile: *</CodesignProvision>
 <NoStdLib>false</NoStdLib>
 <MtouchUseThumb></MtouchUseThumb>
   </PropertyGroup>
diff --git a/Crabtree/ON.Ios/Resources/Language.ini b/Crabtree/ON.Ios/Resources/Language.ini
index 66da5b3..2a3c249 100644
--- a/Crabtree/ON.Ios/Resources/Language.ini
+++ b/Crabtree/ON.Ios/Resources/Language.ini
@@ -1111,6 +1111,9 @@
 20060=Failed to sync the device and scene data to the cloud!
 20061=Do you want to synchronize all local devices and scenes to the cloud? This will be used for schedule and alexa control functions.
 20062=Resend
+20063=Are you sure to unbind?
+20064=Unbind successfully
+20065=Please enter content!
 
 [Chinese]
 1=浣犲ソ
@@ -2224,6 +2227,9 @@
 20060=Failed to sync the device and scene data to the cloud!
 20061=Do you want to synchronize all local devices and scenes to the cloud? This will be used for schedule and alexa control functions.
 20062=Resend
+20063=Are you sure to unbind?
+20064=Unbind successfully
+20065=Please enter content!
 
 [Czech]
 1=Nazdar
diff --git a/Crabtree/ON/Assets/Language.ini b/Crabtree/ON/Assets/Language.ini
index e5ca076..64b13cc 100644
--- a/Crabtree/ON/Assets/Language.ini
+++ b/Crabtree/ON/Assets/Language.ini
@@ -1111,6 +1111,9 @@
 20060=Failed to sync the device and scene data to the cloud!
 20061=Do you want to synchronize all local devices and scenes to the cloud? This will be used for schedule and alexa control functions.
 20062=Resend
+20063=Are you sure to unbind?
+20064=Unbind successfully
+20065=Please enter content!
 
 [Chinese]
 1=浣犲ソ
@@ -2224,6 +2227,9 @@
 20060=Failed to sync the device and scene data to the cloud!
 20061=Do you want to synchronize all local devices and scenes to the cloud? This will be used for schedule and alexa control functions.
 20062=Resend
+20063=Are you sure to unbind?
+20064=Unbind successfully
+20065=Please enter content!
 
 
 [Czech]
diff --git a/Crabtree/ON/Properties/AndroidManifest.xml b/Crabtree/ON/Properties/AndroidManifest.xml
index 1e2f85a..c76bc9c 100644
--- a/Crabtree/ON/Properties/AndroidManifest.xml
+++ b/Crabtree/ON/Properties/AndroidManifest.xml
@@ -1,5 +1,5 @@
 锘�<?xml version="1.0" encoding="utf-8"?>
-<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.hdl.crabtreenew" android:versionName="2.603291" android:versionCode="202103291">
+<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.hdl.crabtreenew" android:versionName="2.604151" android:versionCode="202104151">
 	<uses-sdk android:minSdkVersion="23" android:targetSdkVersion="28" />
 	<!-- 鍦ㄥ畨鍗揚鐗堟湰涔嬪悗锛屽繀椤昏鎺堜簣FOREGROUND_SERVICE鏉冮檺锛屾墠鑳藉浣跨敤鍓嶅彴鏈嶅姟 -->
 	<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
diff --git a/Crabtree/SmartHome/HDL/Common/CommonUtlis.cs b/Crabtree/SmartHome/HDL/Common/CommonUtlis.cs
index 827f722..50ab6c6 100644
--- a/Crabtree/SmartHome/HDL/Common/CommonUtlis.cs
+++ b/Crabtree/SmartHome/HDL/Common/CommonUtlis.cs
@@ -261,6 +261,12 @@
             btnOption.MouseUpEventHandler += (sdf, fds) => {
                 //淇敼鍚嶇О
                 var newStr = etZoneName.Text.Trim ();
+                //杈撳叆鍐呭涓嶈兘涓虹┖
+                if (string.IsNullOrEmpty (newStr)) {
+                    Utlis.ShowTip (Language.StringByID(SimpleControl.R.MyInternationalizationString.PleaseEnterContent));
+                    return;
+                }
+
                 if (nameStr != newStr) {
                     saveAction?.Invoke (newStr);
                 }
diff --git a/Crabtree/SmartHome/HDL/Common/HttpUtil/HttpServerRequest.cs b/Crabtree/SmartHome/HDL/Common/HttpUtil/HttpServerRequest.cs
index a460f6c..0c2f234 100644
--- a/Crabtree/SmartHome/HDL/Common/HttpUtil/HttpServerRequest.cs
+++ b/Crabtree/SmartHome/HDL/Common/HttpUtil/HttpServerRequest.cs
@@ -915,6 +915,17 @@
         }
 
         /// <summary>
+        /// 瑙i櫎闊崇缁戝畾
+        /// </summary>
+        /// <returns></returns>
+        public ResponsePackNew UnbindSpeaker (string tokenId)
+        {
+            Dictionary<string, object> d = new Dictionary<string, object> ();
+            d.Add ("tokenId", tokenId);
+            var requestJson = HttpUtil.GetSignRequestJson (d);
+            return HttpUtil.RequestHttpsPostFroHome (NewAPI.API_POST_Speaker_Unbind, requestJson);
+        }
+        /// <summary>
         /// 鑾峰彇闊崇鍒嗛厤鐨勮澶囧拰鍦烘櫙鍒楄〃
         /// </summary>
         /// <param name="getType">0 鏄煡璇㈠叏閮� 1鏄煡璇㈣澶� 2鏄煡璇㈠満鏅�</param>
diff --git a/Crabtree/SmartHome/HDL/Common/HttpUtil/NewAPI.cs b/Crabtree/SmartHome/HDL/Common/HttpUtil/NewAPI.cs
index cfa9723..68ba4ea 100644
--- a/Crabtree/SmartHome/HDL/Common/HttpUtil/NewAPI.cs
+++ b/Crabtree/SmartHome/HDL/Common/HttpUtil/NewAPI.cs
@@ -491,6 +491,10 @@
         /// </summary>
         public const string API_POST_Speaker_Remark_Update = "/smart-footstone/app/token/update";
         /// <summary>
+        /// 瑙g粦闊崇
+        /// </summary>
+        public const string API_POST_Speaker_Unbind = "/smart-footstone/app/token/delete";
+        /// <summary>
         /// 鑾峰彇闊崇鍒嗛厤鐨勮澶囧拰鍦烘櫙鍒楄〃
         /// </summary>
         public const string API_POST_Speaker_DeviceList_Get = "/home-wisdom/app/tokenRelation/list";
diff --git a/Crabtree/SmartHome/UI/SimpleControl/MainPage.cs b/Crabtree/SmartHome/UI/SimpleControl/MainPage.cs
index e1ec46e..8bd2e0c 100644
--- a/Crabtree/SmartHome/UI/SimpleControl/MainPage.cs
+++ b/Crabtree/SmartHome/UI/SimpleControl/MainPage.cs
@@ -38,7 +38,7 @@
         //public static Button LogoButton = new Button ();
   
 
-        public static string RequestVersion = "2.603291";
+        public static string RequestVersion = "2.604151";
         public static UserInfo LoginUser;
         /// <summary>
         /// 鏄惁鏄鐞嗗憳鏉冮檺(鍙樻洿浜�,鎴愬憳鐨勬椂鍊�,杩欎釜涔熶负ture銆備负浠�涔堜細澹版槑杩欐牱鍙橀噺,鍥犱负鏈変簺鎺ュ彛蹇呴』浣跨敤鍘熸潵鐨凾oken)
diff --git a/Crabtree/SmartHome/UI/SimpleControl/Phone/Alexa/AlexaDeviceListPage.cs b/Crabtree/SmartHome/UI/SimpleControl/Phone/Alexa/AlexaDeviceListPage.cs
index e1ddf4b..c7341bd 100644
--- a/Crabtree/SmartHome/UI/SimpleControl/Phone/Alexa/AlexaDeviceListPage.cs
+++ b/Crabtree/SmartHome/UI/SimpleControl/Phone/Alexa/AlexaDeviceListPage.cs
@@ -50,7 +50,16 @@
         {
             #region ---TopView---
             base.ShowPage ();
-            this.topTitleBtn.Text = "Alexa";
+            //this.topTitleBtn.Text = "Alexa";
+
+            //璁剧疆鏍囬涓洪煶绠卞娉�
+            if (mAlexa != null) {
+                if (string.IsNullOrEmpty (mAlexa.remark)) {
+                    this.topTitleBtn.Text = mAlexa.platformName;
+                } else {
+                    this.topTitleBtn.Text = mAlexa.remark;
+                }
+            }
             //娣诲姞鎸夐挳鐐瑰嚮浜嬩欢
             EventHandler<MouseEventArgs> addSubaccountHandler = (sender, e) => {
                 OpenAlexaSettingPage ();
@@ -60,7 +69,7 @@
 
             #region 璁惧-鍦烘櫙
             var topView = new FrameLayout () {
-                Height = Application.GetRealHeight (110),
+                Height = Application.GetRealWidth (110),
                 BackgroundColor = SkinStyle.Current.TitileView,
             };
             BaseContentView.AddChidren (topView);
diff --git a/Crabtree/SmartHome/UI/SimpleControl/Phone/Alexa/SmartSpeakertListPage.cs b/Crabtree/SmartHome/UI/SimpleControl/Phone/Alexa/SmartSpeakertListPage.cs
index 9e54f20..1ef5006 100644
--- a/Crabtree/SmartHome/UI/SimpleControl/Phone/Alexa/SmartSpeakertListPage.cs
+++ b/Crabtree/SmartHome/UI/SimpleControl/Phone/Alexa/SmartSpeakertListPage.cs
@@ -21,7 +21,7 @@
         {
             #region ---TopView---
             base.ShowPage ();
-            this.topTitleBtn.Text = "Alexa list";
+            this.topTitleBtn.Text = "Smart speaker";
             this.topItemButton.RemoveFromParent ();
             #endregion
 
@@ -140,19 +140,37 @@
             #region 閲嶅懡鍚�
             var btnRename = new Button () {
                 TextID = R.MyInternationalizationString.rename,
-                BackgroundColor = SkinStyle.Current.DelColor,
+                BackgroundColor = SkinStyle.Current.TitileView,
                 TextSize = 11,
             };
 
             //淇濆瓨浜嬩欢
             Action<string> renameAction = (newName) => {
-                RenameAlexaRemark (newName, speakerInfo, btnName);
+                RenameAlexaRemark (newName, speakerInfo, btnName, rowView);
             };
 
             btnRename.MouseUpEventHandler += (sender, e) => {
                 CommonUtlis.Current.ShowEditTextDialog (speakerInfo.remark, renameAction, Language.StringByID (R.MyInternationalizationString.rename));
             };
             rowView.AddRightView (btnRename);
+            #endregion
+
+            #region 鍒犻櫎
+            var btnDelete = new Button () {
+                TextID = R.MyInternationalizationString.Delete,
+                BackgroundColor = SkinStyle.Current.DelColor,
+                TextSize = 11,
+            };
+
+            //鍒犻櫎浜嬩欢
+            Action deleteAction = () => {
+                UnbindSpeaker (speakerInfo, rowView);
+            };
+
+            btnDelete.MouseUpEventHandler += (sender, e) => {
+                CommonUtlis.Current.ShowActionAlert (Language.StringByID (R.MyInternationalizationString.DoYouWantToUnbind), deleteAction);
+            };
+            rowView.AddRightView (btnDelete);
             #endregion
 
         }
@@ -163,7 +181,7 @@
         /// <param name="newName"></param>
         /// <param name="speakerInfo"></param>
         /// <param name="btnName"></param>
-        void RenameAlexaRemark (string newName, SpeakerInfo speakerInfo, Button btnName)
+        void RenameAlexaRemark (string newName, SpeakerInfo speakerInfo, Button btnName, RowLayout rowView)
         {
 
             MainPage.Loading.Start (Language.StringByID (R.MyInternationalizationString.load));
@@ -181,6 +199,7 @@
                         Application.RunOnMainThread (() => {
                             speakerInfo.remark = newName;
                             btnName.Text = newName;
+                            rowView.HideRightMenu ();
                             Utlis.ShowAlertOnMainThread (Language.StringByID (R.MyInternationalizationString.AmendTheSuccess));
 
                         });
@@ -220,5 +239,49 @@
             UserMiddle.SettingPageView.PageIndex = UserMiddle.SettingPageView.ChildrenCount - 1;
         }
 
+        /// <summary>
+        /// 璇锋眰瑙g粦闊崇
+        /// </summary>
+        /// <param name="speakerInfo">闊崇鍙傛暟</param>
+        /// <param name="rowView">闊崇rowView</param>
+        void UnbindSpeaker (SpeakerInfo speakerInfo, RowLayout rowView)
+        {
+            if (speakerInfo == null || string.IsNullOrEmpty (speakerInfo.tokenId)) {
+
+                Utlis.ShowTip (Language.StringByID (R.MyInternationalizationString.RequestFailedParameterException) + "(-3)");
+            }
+
+            MainPage.Loading.Start (Language.StringByID (R.MyInternationalizationString.load));
+
+            System.Threading.Tasks.Task.Run (() => {
+                try {
+                    var revertObj =  HttpServerRequest.Current.UnbindSpeaker (speakerInfo.tokenId);
+                    if (revertObj.Code == StateCode.SUCCESS) {
+                        //瑙g粦鎴愬姛
+                        Application.RunOnMainThread (() => {
+                            //rowView
+                            if (rowView != null) {
+                                rowView.RemoveFromParent ();
+                            }
+
+                            //鎻愮ず瑙g粦鎴愬姛
+                            Utlis.ShowTip (Language.StringByID (R.MyInternationalizationString.UnbindSuccessfully));
+
+                        });
+                    } else {
+                        //鎻愮ず閿欒
+                        IMessageCommon.Current.ShowErrorInfoAlter (revertObj.Code);
+                    }
+                } catch {
+
+                } finally {
+                    Application.RunOnMainThread (() => {
+                        MainPage.Loading.Hide ();
+                    });
+                }
+            });
+
+        }
+
     }
 }
diff --git a/Crabtree/SmartHome/UI/SimpleControl/Phone/User/UserSettingView.cs b/Crabtree/SmartHome/UI/SimpleControl/Phone/User/UserSettingView.cs
index d0d46eb..6046a51 100644
--- a/Crabtree/SmartHome/UI/SimpleControl/Phone/User/UserSettingView.cs
+++ b/Crabtree/SmartHome/UI/SimpleControl/Phone/User/UserSettingView.cs
@@ -360,6 +360,7 @@
                 };
 
                 CommonUtlis.Current.ShowActionAlert (Language.StringByID (R.MyInternationalizationString.DoYouWantToSynchronizeToTheCloud), okAction);
+
             };
             SyncDeviceView.MouseUpEventHandler += SyncDeviceEventHandler;
             btnSyncDeviceIcon.MouseUpEventHandler += SyncDeviceEventHandler;
@@ -424,10 +425,11 @@
             };
             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);
diff --git a/Crabtree/SmartHome/UI/SimpleControl/R.cs b/Crabtree/SmartHome/UI/SimpleControl/R.cs
index df420a9..67b1f81 100644
--- a/Crabtree/SmartHome/UI/SimpleControl/R.cs
+++ b/Crabtree/SmartHome/UI/SimpleControl/R.cs
@@ -1208,6 +1208,20 @@
         /// Resend
         /// </summary>
         public const int Resend = 20062;
+        /// <summary>
+        /// DoYouWantToUnbind
+        /// </summary>
+        public const int DoYouWantToUnbind = 20063;
+        /// <summary>
+        /// Unbind successfully
+        /// </summary>
+        public const int UnbindSuccessfully = 20064;
+        /// <summary>
+        /// Please enter content
+        /// </summary>
+        public const int PleaseEnterContent = 20065;
+       
+
         #endregion
     }
 }
\ No newline at end of file

--
Gitblit v1.8.0