2020-04-24 1.优化远程连接和控制,增加远程连接让用户等待的Loading提示。
8个文件已修改
62 ■■■■■ 已修改文件
Crabtree/.vs/SmartHome/xs/UserPrefs.xml 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Crabtree/.vs/SmartHome/xs/sqlite3/storage.ide 补丁 | 查看 | 原始文档 | blame | 历史
Crabtree/ON.Ios/AppDelegate.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Crabtree/ON.Ios/ViewController.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Crabtree/ON/Properties/AndroidManifest.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Crabtree/SmartHome/UI/SimpleControl/EquipmentPublicClass.cs 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Crabtree/SmartHome/UI/SimpleControl/MainPage.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Crabtree/SmartHome/UI/SimpleControl/MqttCommon.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Crabtree/.vs/SmartHome/xs/UserPrefs.xml
@@ -1,26 +1,35 @@
<Properties StartupConfiguration="{1D83BF28-BA88-4152-BA41-D7EFE90A5437}|Default">
  <MonoDevelop.Ide.ItemProperties.ON.Droid PreferredExecutionTarget="Android.364c4b3158493098" />
  <MonoDevelop.Ide.Workbench ActiveDocument="SmartHome/UI/SimpleControl/MqttCommon.cs">
  <MonoDevelop.Ide.Workbench>
    <Files>
      <File FileName="SmartHome/UI/SimpleControl/Phone/Register/AccountLogin.cs" Line="84" Column="50" IsPinned="True" />
      <File FileName="../../../2020/测试/SmartHome/SmartHome/UI/SimpleControl/Phone/Room/UserRoom.cs" />
      <File FileName="SmartHome/UI/SimpleControl/EquipmentPublicClass.cs" Line="35" Column="33" />
      <File FileName="SmartHome/UI/SimpleControl/MainPage.cs" />
      <File FileName="SmartHome/UI/SimpleControl/EquipmentPublicClass.cs" Line="51" Column="1" />
      <File FileName="SmartHome/UI/SimpleControl/MainPage.cs" Line="41" Column="56" />
      <File FileName="SmartHome/UI/SimpleControl/Phone/User/UserMiddle.cs" />
      <File FileName="SmartHome/UI/SimpleControl/MqttCommon.cs" Line="1" Column="1" />
      <File FileName="SmartHome/UI/SimpleControl/MqttCommon.cs" Line="241" Column="64" />
      <File FileName="SmartHome/HDL/Operation/Utlis.cs" />
      <File FileName="ON/Properties/AndroidManifest.xml" />
      <File FileName="ON.Ios/AppDelegate.cs" Line="294" Column="22" />
      <File FileName="ON.Ios/ViewController.cs" Line="39" Column="77" />
    </Files>
    <Pads>
      <Pad Id="ProjectPad">
        <State name="__root__">
          <Node name="SmartHome" expanded="True">
            <Node name="ON.Droid" expanded="True" />
            <Node name="ON.Droid" expanded="True" selected="True">
              <Node name="Properties" expanded="True" />
            </Node>
            <Node name="ON.Ios" expanded="True" />
            <Node name="Shared" expanded="True">
              <Node name="HDL" expanded="True">
                <Node name="Operation" expanded="True" />
              </Node>
              <Node name="UI" expanded="True">
                <Node name="SimpleControl" expanded="True">
                  <Node name="Phone" expanded="True">
                    <Node name="Register" expanded="True" />
                  </Node>
                  <Node name="MqttCommon.cs" selected="True" />
                </Node>
              </Node>
            </Node>
@@ -36,7 +45,7 @@
    <String>Shared.IOS/Shared.IOS.csproj</String>
    <String>DroidLib/DroidLib.csproj</String>
  </DisabledProjects>
  <MonoDevelop.Ide.Workspace ActiveConfiguration="Debug|iPhone" />
  <MonoDevelop.Ide.Workspace ActiveConfiguration="Release|iPhone" />
  <MonoDevelop.Ide.ItemProperties.ON.Ios automaticSigning="False" PreferredExecutionTarget="MonoDevelop.IPhone.IPhoneDeviceTarget.254b82433419c7ca1850b1dfb524c79b7aeb0640" />
  <MonoDevelop.Ide.DebuggingService.Breakpoints>
    <BreakpointStore />
Crabtree/.vs/SmartHome/xs/sqlite3/storage.ide
Binary files differ
Crabtree/ON.Ios/AppDelegate.cs
@@ -192,14 +192,14 @@
        {
            Utlis.WriteLine ("OnResignActivation");
            //Shared.BusSocket.Stop ();
            BusSocketStop ();
            //BusSocketStop ();
        }
        public override void DidEnterBackground (UIApplication application)
        {
            SharedMethod.SharedMethod.IsBackground = true;
            Utlis.WriteLine ("DidEnterBackground");
            //BusSocketStop ();
            BusSocketStop ();
        }
        public override void WillEnterForeground (UIApplication application)
@@ -211,7 +211,7 @@
            UIApplication.SharedApplication.ApplicationIconBadgeNumber = 0;
            // Called as part of the transiton from background to active state.
            // Here you can undo many of the changes made on entering the background.
            //BusSocketStart ();
            BusSocketStart ();
        }
        public override void WillTerminate (UIApplication application)
@@ -225,7 +225,7 @@
            Utlis.WriteLine ("OnActivated");
            base.OnActivated (application);
            BusSocketStart ();
            //BusSocketStart ();
            ////有些系统版本这里启动比视图控制器快
            //if (!Shared.SimpleControl.MainPage.Showed) {
            //    System.Threading.Tasks.Task.Run (() => {
Crabtree/ON.Ios/ViewController.cs
@@ -36,6 +36,8 @@
            //侦测网络变化
            Reachability.ReachabilityChanged += UpdateStatus;
            Shared.SimpleControl.EquipmentPublicClass.CheckLinkRemote ((int)internetStatus, false);
            UITapGestureRecognizer oTapRecognizer = new UITapGestureRecognizer ();
            oTapRecognizer.CancelsTouchesInView = false;
            oTapRecognizer.AddTarget (
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.504232" android:versionCode="202004232">
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.hdl.crabtreenew" android:versionName="2.504241" android:versionCode="202004241">
    <uses-sdk android:minSdkVersion="23" android:targetSdkVersion="28" />
    <!-- 在安卓P版本之后,必须要授予FOREGROUND_SERVICE权限,才能够使用前台服务 -->
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
Crabtree/SmartHome/UI/SimpleControl/EquipmentPublicClass.cs
@@ -46,6 +46,9 @@
            }
            new System.Threading.Thread (async () => {
                bool IsRemoteLoadingShow = false;
                try {
                    if (status == 0) {
                        Application.RunOnMainThread (() => {
@@ -75,6 +78,7 @@
                        });
                        bool canRemote = false;
                      
                        //1.如果本地没网关数据,提示WiFiOffline,并且判断是否需要断开远程
                        if (gateWayList == null || gateWayList.Count == 0) {
@@ -112,7 +116,7 @@
                                        //var result = Control.ControlBytesSendHasReturn (Command.ReadGateway, common.SubnetID, common.DeviceID, new byte [] { (byte)new Random ().Next (255), (byte)new Random ().Next (255) });
                                        #region
                                        //开始本地搜索网关...
                                        MainPage.AddTip ("Searching local gateway...");
                                        MainPage.LoadingStart ("Searching local gateway...");
                                        var control = new Control ();
                                        control.Send (new Target () {
@@ -165,12 +169,13 @@
                                if (UserConfig.Instance.CheckHomeGateways ()) {
                                    if (!string.IsNullOrEmpty (UserConfig.Instance.CurrentRegion.HomeGateways [0].GatewayUniqueId)) {
                                        // 5.1能远程,显示CloudUnlink状态,IsRemote设为true开始远程
                                        MainPage.AddTip ("Please wait, starting remote connection...");
                                        Utlis.ShowAppLinkStatus (AppLinkStatus.CloudUnlink);
                                        //MainPage.AddTip ("Please wait, starting remote connection...");
                                        MainPage.LoadingStart ("Please wait, starting remote connection...");
                                        CommonPage.IsRemote = true;
                                        IsRemoteLoadingShow = true;
                                        //重置参数状态
                                        SmartHome.MqttCommon.InitState ();
                                        Utlis.ShowAppLinkStatus (AppLinkStatus.CloudUnlink);
                                    }
                                }
@@ -196,14 +201,16 @@
                    Utlis.WriteLine ("CheckLinkRemote : " + ex.ToString ());
                } finally {
                    isConnectiong = false;
                    Application.RunOnMainThread (() => {
                        MainPage.Loading.Hide ();
                    });
                    if (!IsRemoteLoadingShow) {
                        Application.RunOnMainThread (() => {
                            MainPage.Loading.Hide ();
                        });
                    }
                }
            }) { IsBackground = true }.Start ();
        }
        //static bool IsRemoteLoadingShow = false;
        /// <summary>
        /// 关闭远程连接模式,并断开MQTT
Crabtree/SmartHome/UI/SimpleControl/MainPage.cs
@@ -38,7 +38,7 @@
        //public static Button LogoButton = new Button ();
  
        public static string RequestVersion = "20200423";
        public static string RequestVersion = "20200424";
        public static UserInfo LoginUser;
        /// <summary>
        /// 是否是管理员权限(变更了,成员的时候,这个也为ture。为什么会声明这样变量,因为有些接口必须使用原来的Token)
Crabtree/SmartHome/UI/SimpleControl/MqttCommon.cs
@@ -78,7 +78,7 @@
            IfNeedReadAllDeviceStatus = true;
            bNeedStartTip = true;
            IsGatewayOnline = false;
            StartCloudMqtt ();
        }