lss
2020-06-12 9c16d3614d9b88c637f967518a329f239fcd3aaf
2020.06.12

临时备份
16个文件已修改
992 ■■■■■ 已修改文件
ZigbeeApp/GateWay.Droid/GateWay.Droid.csproj 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/GateWay.Droid/Resources/Resource.designer.cs 497 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/GateWay.Droid/packages.config 128 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Info.plist 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/ShardLib/ShardLib.csproj 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/DLL/Android/Shared.Droid.dll 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/DLL/IOS/Shared.IOS.dll 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/SmartSound/Forms/SmartSoundContentForDevice.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/SmartSound/Forms/SmartSoundContentForDeviceChange.cs 55 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/SmartSound/Forms/SmartSoundControlContentForm.cs 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/SmartSound/Forms/SmartSoundControlForm.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/SmartSound/Forms/SmartSoundListForm.cs 171 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/SmartSound/SmartSoundInfo.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/SmartSound/Util/MyHttpWebResponse.cs 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/SmartSound/Widget/SoundRowLayout.cs 44 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceListMainForm.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/GateWay.Droid/GateWay.Droid.csproj
@@ -37,10 +37,9 @@
    <MandroidI18n>CJK</MandroidI18n>
    <AndroidTlsProvider>btls</AndroidTlsProvider>
    <AndroidEnableSGenConcurrent>true</AndroidEnableSGenConcurrent>
    <EmbedAssembliesIntoApk>true</EmbedAssembliesIntoApk>
    <AndroidSupportedAbis />
    <AndroidDexTool>d8</AndroidDexTool>
    <CheckForOverflowUnderflow>true</CheckForOverflowUnderflow>
<AndroidKeyStore></AndroidKeyStore>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <DebugSymbols>true</DebugSymbols>
@@ -56,13 +55,12 @@
    <CheckForOverflowUnderflow>true</CheckForOverflowUnderflow>
    <AndroidDexTool>d8</AndroidDexTool>
    <AndroidUseAapt2>false</AndroidUseAapt2>
<AndroidKeyStore>True</AndroidKeyStore>
<AndroidSigningKeyStore>/Users/hdl/Desktop/HDL Home.keystore</AndroidSigningKeyStore>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="BouncyCastle.Crypto, Version=1.8.1.0, Culture=neutral, PublicKeyToken=0e99375e54769942">
      <HintPath>..\packages\BouncyCastle.Crypto.dll.1.8.1\lib\BouncyCastle.Crypto.dll</HintPath>
    </Reference>
    <Reference Include="FastAndroidCamera, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
      <HintPath>..\packages\FastAndroidCamera.2.0.0\lib\MonoAndroid403\FastAndroidCamera.dll</HintPath>
    </Reference>
    <Reference Include="Microsoft.AppCenter, Version=0.0.0.0, Culture=neutral, processorArchitecture=MSIL">
      <HintPath>..\packages\Microsoft.AppCenter.1.14.0\lib\MonoAndroid403\Microsoft.AppCenter.dll</HintPath>
@@ -113,7 +111,7 @@
      <HintPath>..\packages\MQTTnet.2.4.0\lib\netstandard1.3\MQTTnet.Core.dll</HintPath>
    </Reference>
    <Reference Include="MQTTnet">
      <HintPath>..\packages\MQTTnet.3.0.8\lib\netstandard2.0\MQTTnet.dll</HintPath>
      <HintPath>..\packages\MQTTnet.3.0.11\lib\netstandard2.1\MQTTnet.dll</HintPath>
    </Reference>
    <Reference Include="BouncyCastle.Crypto">
      <HintPath>..\packages\BouncyCastle.Crypto.dll.1.8.1\lib\BouncyCastle.Crypto.dll</HintPath>
@@ -181,13 +179,16 @@
    <Reference Include="Xamarin.Android.Support.Vector.Drawable">
      <HintPath>..\Shared\DLL\Android\Xamarin.Android.Support.Vector.Drawable.dll</HintPath>
    </Reference>
    <Reference Include="ZXing.Net.Mobile.Core, Version=2.4.1.0, Culture=neutral, processorArchitecture=MSIL">
    <Reference Include="FastAndroidCamera">
      <HintPath>..\packages\FastAndroidCamera.2.0.0\lib\MonoAndroid403\FastAndroidCamera.dll</HintPath>
    </Reference>
    <Reference Include="ZXing.Net.Mobile.Core">
      <HintPath>..\packages\ZXing.Net.Mobile.2.4.1\lib\MonoAndroid71\ZXing.Net.Mobile.Core.dll</HintPath>
    </Reference>
    <Reference Include="zxing.portable, Version=0.16.2.0, Culture=neutral, PublicKeyToken=830ae994e36ac27d, processorArchitecture=MSIL">
    <Reference Include="zxing.portable">
      <HintPath>..\packages\ZXing.Net.Mobile.2.4.1\lib\MonoAndroid71\zxing.portable.dll</HintPath>
    </Reference>
    <Reference Include="ZXingNetMobile, Version=2.4.1.0, Culture=neutral, processorArchitecture=MSIL">
    <Reference Include="ZXingNetMobile">
      <HintPath>..\packages\ZXing.Net.Mobile.2.4.1\lib\MonoAndroid71\ZXingNetMobile.dll</HintPath>
    </Reference>
  </ItemGroup>
@@ -1197,6 +1198,10 @@
      <Project>{47eff987-3192-4a56-a463-a940f245ff7d}</Project>
      <Name>DroidLib</Name>
    </ProjectReference>
    <ProjectReference Include="..\ShardLib\ShardLib.csproj">
      <Project>{FB4A45BC-A09B-48F9-BE46-2CCA96F57749}</Project>
      <Name>ShardLib</Name>
    </ProjectReference>
  </ItemGroup>
  <ItemGroup>
    <AndroidAsset Include="Assets\Phone\Item\MessageManagement.png" />
ZigbeeApp/GateWay.Droid/Resources/Resource.designer.cs
@@ -2,7 +2,6 @@
//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:4.0.30319.42000
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
@@ -15,7 +14,7 @@
{
    
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android.Build.Tasks", "1.0.0.0")]
    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android.Build.Tasks", "1.0.0.0")]
    public partial class Resource
    {
        
@@ -3003,6 +3002,12 @@
            // aapt resource value: 0x7f090028
            public const int CTRL = 2131296296;
            
            // aapt resource value: 0x7f09008e
            public const int Custom = 2131296398;
            // aapt resource value: 0x7f09008d
            public const int CustomLabel = 2131296397;
            // aapt resource value: 0x7f090054
            public const int FILL = 2131296340;
            
@@ -3024,8 +3029,23 @@
            // aapt resource value: 0x7f090051
            public const int MatchLayout = 2131296337;
            
            // aapt resource value: 0x7f090088
            public const int Notice = 2131296392;
            // aapt resource value: 0x7f09008c
            public const int Password = 2131296396;
            // aapt resource value: 0x7f09008b
            public const int PasswordLabel = 2131296395;
            // aapt resource value: 0x7f09002b
            public const int SHIFT = 2131296299;
            // aapt resource value: 0x7f09008a
            public const int SSID = 2131296394;
            // aapt resource value: 0x7f090089
            public const int SSIDLabel = 2131296393;
            
            // aapt resource value: 0x7f090056
            public const int STROKE = 2131296342;
@@ -3039,8 +3059,8 @@
            // aapt resource value: 0x7f090053
            public const int Translate = 2131296339;
            
            // aapt resource value: 0x7f0900c0
            public const int action0 = 2131296448;
            // aapt resource value: 0x7f0900cb
            public const int action0 = 2131296459;
            
            // aapt resource value: 0x7f090079
            public const int action_bar = 2131296377;
@@ -3063,17 +3083,17 @@
            // aapt resource value: 0x7f090057
            public const int action_bar_title = 2131296343;
            
            // aapt resource value: 0x7f0900bd
            public const int action_container = 2131296445;
            // aapt resource value: 0x7f0900c8
            public const int action_container = 2131296456;
            
            // aapt resource value: 0x7f09007a
            public const int action_context_bar = 2131296378;
            
            // aapt resource value: 0x7f0900c4
            public const int action_divider = 2131296452;
            // aapt resource value: 0x7f0900cf
            public const int action_divider = 2131296463;
            
            // aapt resource value: 0x7f0900be
            public const int action_image = 2131296446;
            // aapt resource value: 0x7f0900c9
            public const int action_image = 2131296457;
            
            // aapt resource value: 0x7f090003
            public const int action_menu_divider = 2131296259;
@@ -3090,11 +3110,11 @@
            // aapt resource value: 0x7f090059
            public const int action_mode_close_button = 2131296345;
            
            // aapt resource value: 0x7f0900bf
            public const int action_text = 2131296447;
            // aapt resource value: 0x7f0900ca
            public const int action_text = 2131296458;
            
            // aapt resource value: 0x7f0900cd
            public const int actions = 2131296461;
            // aapt resource value: 0x7f0900d8
            public const int actions = 2131296472;
            
            // aapt resource value: 0x7f09005a
            public const int activity_chooser_view_content = 2131296346;
@@ -3126,17 +3146,17 @@
            // aapt resource value: 0x7f090032
            public const int bottom = 2131296306;
            
            // aapt resource value: 0x7f0900a8
            public const int btnCancel = 2131296424;
            // aapt resource value: 0x7f0900b3
            public const int btnCancel = 2131296435;
            
            // aapt resource value: 0x7f0900aa
            public const int btnSubmit = 2131296426;
            // aapt resource value: 0x7f0900b5
            public const int btnSubmit = 2131296437;
            
            // aapt resource value: 0x7f090060
            public const int buttonPanel = 2131296352;
            
            // aapt resource value: 0x7f0900c1
            public const int cancel_action = 2131296449;
            // aapt resource value: 0x7f0900cc
            public const int cancel_action = 2131296460;
            
            // aapt resource value: 0x7f09003a
            public const int center = 2131296314;
@@ -3150,8 +3170,8 @@
            // aapt resource value: 0x7f090070
            public const int checkbox = 2131296368;
            
            // aapt resource value: 0x7f0900c9
            public const int chronometer = 2131296457;
            // aapt resource value: 0x7f0900d4
            public const int chronometer = 2131296468;
            
            // aapt resource value: 0x7f090043
            public const int clip_horizontal = 2131296323;
@@ -3162,20 +3182,20 @@
            // aapt resource value: 0x7f09002e
            public const int collapseActionView = 2131296302;
            
            // aapt resource value: 0x7f09008e
            public const int container = 2131296398;
            // aapt resource value: 0x7f090099
            public const int container = 2131296409;
            
            // aapt resource value: 0x7f0900d9
            public const int contentFrame = 2131296473;
            // aapt resource value: 0x7f0900e4
            public const int contentFrame = 2131296484;
            
            // aapt resource value: 0x7f090063
            public const int contentPanel = 2131296355;
            
            // aapt resource value: 0x7f0900ac
            public const int content_container = 2131296428;
            // aapt resource value: 0x7f0900b7
            public const int content_container = 2131296439;
            
            // aapt resource value: 0x7f09008f
            public const int coordinator = 2131296399;
            // aapt resource value: 0x7f09009a
            public const int coordinator = 2131296410;
            
            // aapt resource value: 0x7f09006a
            public const int custom = 2131296362;
@@ -3183,8 +3203,8 @@
            // aapt resource value: 0x7f090069
            public const int customPanel = 2131296361;
            
            // aapt resource value: 0x7f0900b8
            public const int day = 2131296440;
            // aapt resource value: 0x7f0900c3
            public const int day = 2131296451;
            
            // aapt resource value: 0x7f090077
            public const int decor_content_parent = 2131296375;
@@ -3192,23 +3212,23 @@
            // aapt resource value: 0x7f09005d
            public const int default_activity_button = 2131296349;
            
            // aapt resource value: 0x7f090089
            public const int description = 2131296393;
            // aapt resource value: 0x7f090094
            public const int description = 2131296404;
            
            // aapt resource value: 0x7f090091
            public const int design_bottom_sheet = 2131296401;
            // aapt resource value: 0x7f09009c
            public const int design_bottom_sheet = 2131296412;
            
            // aapt resource value: 0x7f090098
            public const int design_menu_item_action_area = 2131296408;
            // aapt resource value: 0x7f0900a3
            public const int design_menu_item_action_area = 2131296419;
            
            // aapt resource value: 0x7f090097
            public const int design_menu_item_action_area_stub = 2131296407;
            // aapt resource value: 0x7f0900a2
            public const int design_menu_item_action_area_stub = 2131296418;
            
            // aapt resource value: 0x7f090096
            public const int design_menu_item_text = 2131296406;
            // aapt resource value: 0x7f0900a1
            public const int design_menu_item_text = 2131296417;
            
            // aapt resource value: 0x7f090095
            public const int design_navigation_view = 2131296405;
            // aapt resource value: 0x7f0900a0
            public const int design_navigation_view = 2131296416;
            
            // aapt resource value: 0x7f090015
            public const int disableHome = 2131296277;
@@ -3219,8 +3239,8 @@
            // aapt resource value: 0x7f090025
            public const int end = 2131296293;
            
            // aapt resource value: 0x7f0900cf
            public const int end_padder = 2131296463;
            // aapt resource value: 0x7f0900da
            public const int end_padder = 2131296474;
            
            // aapt resource value: 0x7f090034
            public const int enterAlways = 2131296308;
@@ -3246,8 +3266,8 @@
            // aapt resource value: 0x7f09003d
            public const int fill_vertical = 2131296317;
            
            // aapt resource value: 0x7f09008a
            public const int fingerprint_icon = 2131296394;
            // aapt resource value: 0x7f090095
            public const int fingerprint_icon = 2131296405;
            
            // aapt resource value: 0x7f090049
            public const int @fixed = 2131296329;
@@ -3255,56 +3275,56 @@
            // aapt resource value: 0x7f09004d
            public const int forever = 2131296333;
            
            // aapt resource value: 0x7f09009d
            public const int gd_btn_back = 2131296413;
            // aapt resource value: 0x7f0900a8
            public const int gd_btn_back = 2131296424;
            
            // aapt resource value: 0x7f0900a6
            public const int gd_btn_myLocation = 2131296422;
            // aapt resource value: 0x7f0900a5
            public const int gd_btn_save = 2131296421;
            // aapt resource value: 0x7f0900a2
            public const int gd_img_search_delete = 2131296418;
            // aapt resource value: 0x7f0900a4
            public const int gd_ll_myhome = 2131296420;
            // aapt resource value: 0x7f0900a0
            public const int gd_ll_search = 2131296416;
            // aapt resource value: 0x7f09009f
            public const int gd_mapView = 2131296415;
            // aapt resource value: 0x7f09009c
            public const int gd_rl_topview = 2131296412;
            // aapt resource value: 0x7f09009e
            public const int gd_tv_activity_title = 2131296414;
            // aapt resource value: 0x7f0900a3
            public const int gd_tv_radius = 2131296419;
            // aapt resource value: 0x7f0900a1
            public const int gd_tv_search_title = 2131296417;
            // aapt resource value: 0x7f09009a
            public const int hdl_gallery_rootView = 2131296410;
            // aapt resource value: 0x7f09009b
            public const int hdl_gallery_viewPager = 2131296411;
            // aapt resource value: 0x7f0900ae
            public const int hdl_options1 = 2131296430;
            // aapt resource value: 0x7f0900af
            public const int hdl_options2 = 2131296431;
            // aapt resource value: 0x7f0900b1
            public const int gd_btn_myLocation = 2131296433;
            
            // aapt resource value: 0x7f0900b0
            public const int hdl_options3 = 2131296432;
            public const int gd_btn_save = 2131296432;
            
            // aapt resource value: 0x7f0900ad
            public const int hdl_pickerview_ll = 2131296429;
            public const int gd_img_search_delete = 2131296429;
            // aapt resource value: 0x7f0900af
            public const int gd_ll_myhome = 2131296431;
            // aapt resource value: 0x7f0900ab
            public const int gd_ll_search = 2131296427;
            // aapt resource value: 0x7f0900aa
            public const int gd_mapView = 2131296426;
            // aapt resource value: 0x7f0900a7
            public const int gd_rl_topview = 2131296423;
            // aapt resource value: 0x7f0900a9
            public const int gd_tv_activity_title = 2131296425;
            // aapt resource value: 0x7f0900ae
            public const int gd_tv_radius = 2131296430;
            // aapt resource value: 0x7f0900ac
            public const int gd_tv_search_title = 2131296428;
            // aapt resource value: 0x7f0900a5
            public const int hdl_gallery_rootView = 2131296421;
            // aapt resource value: 0x7f0900a6
            public const int hdl_gallery_viewPager = 2131296422;
            // aapt resource value: 0x7f0900b9
            public const int hdl_options1 = 2131296441;
            // aapt resource value: 0x7f0900ba
            public const int hdl_options2 = 2131296442;
            // aapt resource value: 0x7f0900bb
            public const int hdl_options3 = 2131296443;
            // aapt resource value: 0x7f0900b8
            public const int hdl_pickerview_ll = 2131296440;
            
            // aapt resource value: 0x7f090005
            public const int home = 2131296261;
@@ -3312,14 +3332,14 @@
            // aapt resource value: 0x7f090016
            public const int homeAsUp = 2131296278;
            
            // aapt resource value: 0x7f0900b9
            public const int hour = 2131296441;
            // aapt resource value: 0x7f0900c4
            public const int hour = 2131296452;
            
            // aapt resource value: 0x7f09005f
            public const int icon = 2131296351;
            
            // aapt resource value: 0x7f0900ce
            public const int icon_group = 2131296462;
            // aapt resource value: 0x7f0900d9
            public const int icon_group = 2131296473;
            
            // aapt resource value: 0x7f09002f
            public const int ifRoom = 2131296303;
@@ -3327,8 +3347,8 @@
            // aapt resource value: 0x7f09005c
            public const int image = 2131296348;
            
            // aapt resource value: 0x7f0900ca
            public const int info = 2131296458;
            // aapt resource value: 0x7f0900d5
            public const int info = 2131296469;
            
            // aapt resource value: 0x7f09004e
            public const int italic = 2131296334;
@@ -3336,8 +3356,8 @@
            // aapt resource value: 0x7f090000
            public const int item_touch_helper_previous_elevation = 2131296256;
            
            // aapt resource value: 0x7f09008d
            public const int largeLabel = 2131296397;
            // aapt resource value: 0x7f090098
            public const int largeLabel = 2131296408;
            
            // aapt resource value: 0x7f09003e
            public const int left = 2131296318;
@@ -3354,35 +3374,35 @@
            // aapt resource value: 0x7f09005e
            public const int list_item = 2131296350;
            
            // aapt resource value: 0x7f0900db
            public const int masked = 2131296475;
            // aapt resource value: 0x7f0900e6
            public const int masked = 2131296486;
            
            // aapt resource value: 0x7f0900c3
            public const int media_actions = 2131296451;
            // aapt resource value: 0x7f0900ce
            public const int media_actions = 2131296462;
            
            // aapt resource value: 0x7f0900d5
            public const int message = 2131296469;
            // aapt resource value: 0x7f0900e0
            public const int message = 2131296480;
            
            // aapt resource value: 0x7f090026
            public const int middle = 2131296294;
            
            // aapt resource value: 0x7f0900ba
            public const int min = 2131296442;
            // aapt resource value: 0x7f0900c5
            public const int min = 2131296453;
            
            // aapt resource value: 0x7f090048
            public const int mini = 2131296328;
            
            // aapt resource value: 0x7f0900b7
            public const int month = 2131296439;
            // aapt resource value: 0x7f0900c2
            public const int month = 2131296450;
            
            // aapt resource value: 0x7f09001c
            public const int multiply = 2131296284;
            
            // aapt resource value: 0x7f0900bc
            public const int myButton = 2131296444;
            // aapt resource value: 0x7f0900c7
            public const int myButton = 2131296455;
            
            // aapt resource value: 0x7f090094
            public const int navigation_header_container = 2131296404;
            // aapt resource value: 0x7f09009f
            public const int navigation_header_container = 2131296415;
            
            // aapt resource value: 0x7f090030
            public const int never = 2131296304;
@@ -3393,29 +3413,29 @@
            // aapt resource value: 0x7f090013
            public const int normal = 2131296275;
            
            // aapt resource value: 0x7f0900cc
            public const int notification_background = 2131296460;
            // aapt resource value: 0x7f0900d7
            public const int notification_background = 2131296471;
            
            // aapt resource value: 0x7f0900c6
            public const int notification_main_column = 2131296454;
            // aapt resource value: 0x7f0900d1
            public const int notification_main_column = 2131296465;
            
            // aapt resource value: 0x7f0900c5
            public const int notification_main_column_container = 2131296453;
            // aapt resource value: 0x7f0900d0
            public const int notification_main_column_container = 2131296464;
            
            // aapt resource value: 0x7f0900b2
            public const int options1 = 2131296434;
            // aapt resource value: 0x7f0900bd
            public const int options1 = 2131296445;
            
            // aapt resource value: 0x7f0900b3
            public const int options2 = 2131296435;
            // aapt resource value: 0x7f0900be
            public const int options2 = 2131296446;
            
            // aapt resource value: 0x7f0900b4
            public const int options3 = 2131296436;
            // aapt resource value: 0x7f0900bf
            public const int options3 = 2131296447;
            
            // aapt resource value: 0x7f0900b1
            public const int optionspicker = 2131296433;
            // aapt resource value: 0x7f0900bc
            public const int optionspicker = 2131296444;
            
            // aapt resource value: 0x7f0900ab
            public const int outmost_container = 2131296427;
            // aapt resource value: 0x7f0900b6
            public const int outmost_container = 2131296438;
            
            // aapt resource value: 0x7f090041
            public const int parallax = 2131296321;
@@ -3438,14 +3458,14 @@
            // aapt resource value: 0x7f09003f
            public const int right = 2131296319;
            
            // aapt resource value: 0x7f0900cb
            public const int right_icon = 2131296459;
            // aapt resource value: 0x7f0900d6
            public const int right_icon = 2131296470;
            
            // aapt resource value: 0x7f0900c7
            public const int right_side = 2131296455;
            // aapt resource value: 0x7f0900d2
            public const int right_side = 2131296466;
            
            // aapt resource value: 0x7f0900a7
            public const int rv_topbar = 2131296423;
            // aapt resource value: 0x7f0900b2
            public const int rv_topbar = 2131296434;
            
            // aapt resource value: 0x7f09001d
            public const int screen = 2131296285;
@@ -3495,8 +3515,8 @@
            // aapt resource value: 0x7f090086
            public const int search_voice_btn = 2131296390;
            
            // aapt resource value: 0x7f0900bb
            public const int second = 2131296443;
            // aapt resource value: 0x7f0900c6
            public const int second = 2131296454;
            
            // aapt resource value: 0x7f090087
            public const int select_dialog_listview = 2131296391;
@@ -3513,14 +3533,14 @@
            // aapt resource value: 0x7f09001a
            public const int showTitle = 2131296282;
            
            // aapt resource value: 0x7f09008c
            public const int smallLabel = 2131296396;
            // aapt resource value: 0x7f090097
            public const int smallLabel = 2131296407;
            
            // aapt resource value: 0x7f090093
            public const int snackbar_action = 2131296403;
            // aapt resource value: 0x7f09009e
            public const int snackbar_action = 2131296414;
            
            // aapt resource value: 0x7f090092
            public const int snackbar_text = 2131296402;
            // aapt resource value: 0x7f09009d
            public const int snackbar_text = 2131296413;
            
            // aapt resource value: 0x7f090038
            public const int snap = 2131296312;
@@ -3540,29 +3560,41 @@
            // aapt resource value: 0x7f090020
            public const int src_over = 2131296288;
            
            // aapt resource value: 0x7f0900d0
            public const int srl_classics_arrow = 2131296464;
            // aapt resource value: 0x7f0900db
            public const int srl_classics_arrow = 2131296475;
            
            // aapt resource value: 0x7f0900d3
            public const int srl_classics_center = 2131296467;
            // aapt resource value: 0x7f0900de
            public const int srl_classics_center = 2131296478;
            
            // aapt resource value: 0x7f0900d2
            public const int srl_classics_progress = 2131296466;
            // aapt resource value: 0x7f0900dd
            public const int srl_classics_progress = 2131296477;
            
            // aapt resource value: 0x7f0900d1
            public const int srl_classics_title = 2131296465;
            // aapt resource value: 0x7f0900dc
            public const int srl_classics_title = 2131296476;
            
            // aapt resource value: 0x7f0900d4
            public const int srl_classics_update = 2131296468;
            // aapt resource value: 0x7f0900df
            public const int srl_classics_update = 2131296479;
            
            // aapt resource value: 0x7f090040
            public const int start = 2131296320;
            
            // aapt resource value: 0x7f09008b
            public const int status = 2131296395;
            // aapt resource value: 0x7f09008f
            public const int startV1 = 2131296399;
            
            // aapt resource value: 0x7f0900c2
            public const int status_bar_latest_event_content = 2131296450;
            // aapt resource value: 0x7f090091
            public const int startV1V4 = 2131296401;
            // aapt resource value: 0x7f090090
            public const int startV4 = 2131296400;
            // aapt resource value: 0x7f090096
            public const int status = 2131296406;
            // aapt resource value: 0x7f0900cd
            public const int status_bar_latest_event_content = 2131296461;
            // aapt resource value: 0x7f090092
            public const int stop = 2131296402;
            
            // aapt resource value: 0x7f090073
            public const int submenuarrow = 2131296371;
@@ -3570,8 +3602,8 @@
            // aapt resource value: 0x7f090084
            public const int submit_area = 2131296388;
            
            // aapt resource value: 0x7f090088
            public const int subtitle = 2131296392;
            // aapt resource value: 0x7f090093
            public const int subtitle = 2131296403;
            
            // aapt resource value: 0x7f090014
            public const int tabMode = 2131296276;
@@ -3588,8 +3620,8 @@
            // aapt resource value: 0x7f090066
            public const int textSpacerNoTitle = 2131296358;
            
            // aapt resource value: 0x7f090099
            public const int text_input_password_toggle = 2131296409;
            // aapt resource value: 0x7f0900a4
            public const int text_input_password_toggle = 2131296420;
            
            // aapt resource value: 0x7f09000a
            public const int textinput_counter = 2131296266;
@@ -3597,11 +3629,11 @@
            // aapt resource value: 0x7f09000b
            public const int textinput_error = 2131296267;
            
            // aapt resource value: 0x7f0900c8
            public const int time = 2131296456;
            // aapt resource value: 0x7f0900d3
            public const int time = 2131296467;
            
            // aapt resource value: 0x7f0900b5
            public const int timepicker = 2131296437;
            // aapt resource value: 0x7f0900c0
            public const int timepicker = 2131296448;
            
            // aapt resource value: 0x7f090011
            public const int title = 2131296273;
@@ -3618,20 +3650,20 @@
            // aapt resource value: 0x7f09006b
            public const int topPanel = 2131296363;
            
            // aapt resource value: 0x7f090090
            public const int touch_outside = 2131296400;
            // aapt resource value: 0x7f09009b
            public const int touch_outside = 2131296411;
            
            // aapt resource value: 0x7f0900a9
            public const int tvTitle = 2131296425;
            // aapt resource value: 0x7f0900b4
            public const int tvTitle = 2131296436;
            
            // aapt resource value: 0x7f0900d7
            public const int tv_zxing_back = 2131296471;
            // aapt resource value: 0x7f0900e2
            public const int tv_zxing_back = 2131296482;
            
            // aapt resource value: 0x7f0900d8
            public const int tv_zxing_flash = 2131296472;
            // aapt resource value: 0x7f0900e3
            public const int tv_zxing_flash = 2131296483;
            
            // aapt resource value: 0x7f0900d6
            public const int tv_zxing_scan = 2131296470;
            // aapt resource value: 0x7f0900e1
            public const int tv_zxing_scan = 2131296481;
            
            // aapt resource value: 0x7f090022
            public const int uniform = 2131296290;
@@ -3645,8 +3677,8 @@
            // aapt resource value: 0x7f09000c
            public const int view_offset_helper = 2131296268;
            
            // aapt resource value: 0x7f0900da
            public const int visible = 2131296474;
            // aapt resource value: 0x7f0900e5
            public const int visible = 2131296485;
            
            // aapt resource value: 0x7f090031
            public const int withText = 2131296305;
@@ -3654,8 +3686,8 @@
            // aapt resource value: 0x7f090023
            public const int wrap_content = 2131296291;
            
            // aapt resource value: 0x7f0900b6
            public const int year = 2131296438;
            // aapt resource value: 0x7f0900c1
            public const int year = 2131296449;
            
            static Id()
            {
@@ -3798,154 +3830,157 @@
            public const int abc_select_dialog_material = 2130968602;
            
            // aapt resource value: 0x7f04001b
            public const int biometric_prompt_dialog_content = 2130968603;
            public const int activity_elian = 2130968603;
            
            // aapt resource value: 0x7f04001c
            public const int design_bottom_navigation_item = 2130968604;
            public const int biometric_prompt_dialog_content = 2130968604;
            
            // aapt resource value: 0x7f04001d
            public const int design_bottom_sheet_dialog = 2130968605;
            public const int design_bottom_navigation_item = 2130968605;
            
            // aapt resource value: 0x7f04001e
            public const int design_layout_snackbar = 2130968606;
            public const int design_bottom_sheet_dialog = 2130968606;
            
            // aapt resource value: 0x7f04001f
            public const int design_layout_snackbar_include = 2130968607;
            public const int design_layout_snackbar = 2130968607;
            
            // aapt resource value: 0x7f040020
            public const int design_layout_tab_icon = 2130968608;
            public const int design_layout_snackbar_include = 2130968608;
            
            // aapt resource value: 0x7f040021
            public const int design_layout_tab_text = 2130968609;
            public const int design_layout_tab_icon = 2130968609;
            
            // aapt resource value: 0x7f040022
            public const int design_menu_item_action_area = 2130968610;
            public const int design_layout_tab_text = 2130968610;
            
            // aapt resource value: 0x7f040023
            public const int design_navigation_item = 2130968611;
            public const int design_menu_item_action_area = 2130968611;
            
            // aapt resource value: 0x7f040024
            public const int design_navigation_item_header = 2130968612;
            public const int design_navigation_item = 2130968612;
            
            // aapt resource value: 0x7f040025
            public const int design_navigation_item_separator = 2130968613;
            public const int design_navigation_item_header = 2130968613;
            
            // aapt resource value: 0x7f040026
            public const int design_navigation_item_subheader = 2130968614;
            public const int design_navigation_item_separator = 2130968614;
            
            // aapt resource value: 0x7f040027
            public const int design_navigation_menu = 2130968615;
            public const int design_navigation_item_subheader = 2130968615;
            
            // aapt resource value: 0x7f040028
            public const int design_navigation_menu_item = 2130968616;
            public const int design_navigation_menu = 2130968616;
            
            // aapt resource value: 0x7f040029
            public const int design_text_input_password_icon = 2130968617;
            public const int design_navigation_menu_item = 2130968617;
            
            // aapt resource value: 0x7f04002a
            public const int hdl_gallery_banner_view_layout = 2130968618;
            public const int design_text_input_password_icon = 2130968618;
            
            // aapt resource value: 0x7f04002b
            public const int hdl_widget_activity_crop_image = 2130968619;
            public const int hdl_gallery_banner_view_layout = 2130968619;
            
            // aapt resource value: 0x7f04002c
            public const int hdl_widget_activity_geofence_round = 2130968620;
            public const int hdl_widget_activity_crop_image = 2130968620;
            
            // aapt resource value: 0x7f04002d
            public const int hdl_widget_air_button = 2130968621;
            public const int hdl_widget_activity_geofence_round = 2130968621;
            
            // aapt resource value: 0x7f04002e
            public const int hdl_widget_include_pickerview_topbar = 2130968622;
            public const int hdl_widget_air_button = 2130968622;
            
            // aapt resource value: 0x7f04002f
            public const int hdl_widget_layout_basepickerview = 2130968623;
            public const int hdl_widget_include_pickerview_topbar = 2130968623;
            
            // aapt resource value: 0x7f040030
            public const int hdl_widget_pickerview = 2130968624;
            public const int hdl_widget_layout_basepickerview = 2130968624;
            
            // aapt resource value: 0x7f040031
            public const int hdl_widget_pickerview_options = 2130968625;
            public const int hdl_widget_pickerview = 2130968625;
            
            // aapt resource value: 0x7f040032
            public const int hdl_widget_pickerview_time = 2130968626;
            public const int hdl_widget_pickerview_options = 2130968626;
            
            // aapt resource value: 0x7f040033
            public const int Main = 2130968627;
            public const int hdl_widget_pickerview_time = 2130968627;
            
            // aapt resource value: 0x7f040034
            public const int notification_action = 2130968628;
            public const int Main = 2130968628;
            
            // aapt resource value: 0x7f040035
            public const int notification_action_tombstone = 2130968629;
            public const int notification_action = 2130968629;
            
            // aapt resource value: 0x7f040036
            public const int notification_media_action = 2130968630;
            public const int notification_action_tombstone = 2130968630;
            
            // aapt resource value: 0x7f040037
            public const int notification_media_cancel_action = 2130968631;
            public const int notification_media_action = 2130968631;
            
            // aapt resource value: 0x7f040038
            public const int notification_template_big_media = 2130968632;
            public const int notification_media_cancel_action = 2130968632;
            
            // aapt resource value: 0x7f040039
            public const int notification_template_big_media_custom = 2130968633;
            public const int notification_template_big_media = 2130968633;
            
            // aapt resource value: 0x7f04003a
            public const int notification_template_big_media_narrow = 2130968634;
            public const int notification_template_big_media_custom = 2130968634;
            
            // aapt resource value: 0x7f04003b
            public const int notification_template_big_media_narrow_custom = 2130968635;
            public const int notification_template_big_media_narrow = 2130968635;
            
            // aapt resource value: 0x7f04003c
            public const int notification_template_custom_big = 2130968636;
            public const int notification_template_big_media_narrow_custom = 2130968636;
            
            // aapt resource value: 0x7f04003d
            public const int notification_template_icon_group = 2130968637;
            public const int notification_template_custom_big = 2130968637;
            
            // aapt resource value: 0x7f04003e
            public const int notification_template_lines_media = 2130968638;
            public const int notification_template_icon_group = 2130968638;
            
            // aapt resource value: 0x7f04003f
            public const int notification_template_media = 2130968639;
            public const int notification_template_lines_media = 2130968639;
            
            // aapt resource value: 0x7f040040
            public const int notification_template_media_custom = 2130968640;
            public const int notification_template_media = 2130968640;
            
            // aapt resource value: 0x7f040041
            public const int notification_template_part_chronometer = 2130968641;
            public const int notification_template_media_custom = 2130968641;
            
            // aapt resource value: 0x7f040042
            public const int notification_template_part_time = 2130968642;
            public const int notification_template_part_chronometer = 2130968642;
            
            // aapt resource value: 0x7f040043
            public const int select_dialog_item_material = 2130968643;
            public const int notification_template_part_time = 2130968643;
            
            // aapt resource value: 0x7f040044
            public const int select_dialog_multichoice_material = 2130968644;
            public const int select_dialog_item_material = 2130968644;
            
            // aapt resource value: 0x7f040045
            public const int select_dialog_singlechoice_material = 2130968645;
            public const int select_dialog_multichoice_material = 2130968645;
            
            // aapt resource value: 0x7f040046
            public const int srl_classics_footer = 2130968646;
            public const int select_dialog_singlechoice_material = 2130968646;
            
            // aapt resource value: 0x7f040047
            public const int srl_classics_header = 2130968647;
            public const int srl_classics_footer = 2130968647;
            
            // aapt resource value: 0x7f040048
            public const int support_simple_spinner_dropdown_item = 2130968648;
            public const int srl_classics_header = 2130968648;
            
            // aapt resource value: 0x7f040049
            public const int tooltip = 2130968649;
            public const int support_simple_spinner_dropdown_item = 2130968649;
            
            // aapt resource value: 0x7f04004a
            public const int zxing_layout = 2130968650;
            public const int tooltip = 2130968650;
            
            // aapt resource value: 0x7f04004b
            public const int zxingscanneractivitylayout = 2130968651;
            public const int zxing_layout = 2130968651;
            
            // aapt resource value: 0x7f04004c
            public const int zxingscannerfragmentlayout = 2130968652;
            public const int zxingscanneractivitylayout = 2130968652;
            // aapt resource value: 0x7f04004d
            public const int zxingscannerfragmentlayout = 2130968653;
            
            static Layout()
            {
ZigbeeApp/GateWay.Droid/packages.config
old mode 100755 new mode 100644
@@ -1,65 +1,65 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="BouncyCastle.Crypto.dll" version="1.8.1" targetFramework="monoandroid60" />
  <package id="FastAndroidCamera" version="2.0.0" targetFramework="monoandroid80" />
  <package id="Microsoft.AppCenter" version="1.14.0" targetFramework="monoandroid60" />
  <package id="Microsoft.AppCenter.Analytics" version="1.14.0" targetFramework="monoandroid60" />
  <package id="Microsoft.AppCenter.Crashes" version="1.14.0" targetFramework="monoandroid60" />
  <package id="Microsoft.NETCore.Platforms" version="1.1.0" targetFramework="monoandroid60" />
  <package id="Microsoft.Win32.Primitives" version="4.3.0" targetFramework="monoandroid60" />
  <package id="MQTTnet" version="3.0.8" targetFramework="monoandroid80" />
  <package id="NETStandard.Library" version="2.0.0" targetFramework="monoandroid80" />
  <package id="System.AppContext" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Collections" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Collections.Concurrent" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Console" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Diagnostics.Debug" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Diagnostics.Tools" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Diagnostics.Tracing" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Globalization" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Globalization.Calendars" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.IO" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.IO.Compression" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.IO.Compression.ZipFile" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.IO.FileSystem" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.IO.FileSystem.Primitives" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Linq" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Linq.Expressions" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Net.Http" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Net.Primitives" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Net.Security" version="4.3.2" targetFramework="monoandroid60" />
  <package id="System.Net.Sockets" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Net.WebSockets" version="4.3.0" targetFramework="monoandroid80" />
  <package id="System.Net.WebSockets.Client" version="4.3.2" targetFramework="monoandroid80" />
  <package id="System.ObjectModel" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Reflection" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Reflection.Extensions" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Reflection.Primitives" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Resources.ResourceManager" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Runtime" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Runtime.Extensions" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Runtime.Handles" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Runtime.InteropServices" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Runtime.InteropServices.RuntimeInformation" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Runtime.Numerics" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Security.Cryptography.Algorithms" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Security.Cryptography.Encoding" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Security.Cryptography.Primitives" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Security.Cryptography.X509Certificates" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Text.Encoding" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Text.Encoding.Extensions" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Text.RegularExpressions" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Threading" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Threading.Tasks" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Threading.Timer" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Xml.ReaderWriter" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Xml.XDocument" version="4.3.0" targetFramework="monoandroid60" />
  <package id="Xamarin.Android.Support.Annotations" version="25.4.0.1" targetFramework="monoandroid80" />
  <package id="Xamarin.Android.Support.Compat" version="25.4.0.1" targetFramework="monoandroid80" />
  <package id="Xamarin.Android.Support.Core.UI" version="25.4.0.1" targetFramework="monoandroid80" />
  <package id="Xamarin.Android.Support.Core.Utils" version="25.4.0.1" targetFramework="monoandroid80" />
  <package id="Xamarin.Android.Support.Fragment" version="25.4.0.1" targetFramework="monoandroid80" />
  <package id="Xamarin.Android.Support.Media.Compat" version="25.4.0.1" targetFramework="monoandroid80" />
  <package id="Xamarin.Android.Support.v4" version="25.4.0.1" targetFramework="monoandroid80" />
  <package id="ZXing.Net.Mobile" version="2.4.1" targetFramework="monoandroid80" />
<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="BouncyCastle.Crypto.dll" version="1.8.1" targetFramework="monoandroid60" />
  <package id="FastAndroidCamera" version="2.0.0" targetFramework="monoandroid80" />
  <package id="Microsoft.AppCenter" version="1.14.0" targetFramework="monoandroid60" />
  <package id="Microsoft.AppCenter.Analytics" version="1.14.0" targetFramework="monoandroid60" />
  <package id="Microsoft.AppCenter.Crashes" version="1.14.0" targetFramework="monoandroid60" />
  <package id="Microsoft.NETCore.Platforms" version="1.1.0" targetFramework="monoandroid60" />
  <package id="Microsoft.Win32.Primitives" version="4.3.0" targetFramework="monoandroid60" />
  <package id="MQTTnet" version="3.0.11" targetFramework="monoandroid80" />
  <package id="NETStandard.Library" version="2.0.0" targetFramework="monoandroid80" />
  <package id="System.AppContext" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Collections" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Collections.Concurrent" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Console" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Diagnostics.Debug" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Diagnostics.Tools" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Diagnostics.Tracing" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Globalization" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Globalization.Calendars" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.IO" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.IO.Compression" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.IO.Compression.ZipFile" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.IO.FileSystem" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.IO.FileSystem.Primitives" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Linq" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Linq.Expressions" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Net.Http" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Net.Primitives" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Net.Security" version="4.3.2" targetFramework="monoandroid60" />
  <package id="System.Net.Sockets" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Net.WebSockets" version="4.3.0" targetFramework="monoandroid80" />
  <package id="System.Net.WebSockets.Client" version="4.3.2" targetFramework="monoandroid80" />
  <package id="System.ObjectModel" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Reflection" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Reflection.Extensions" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Reflection.Primitives" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Resources.ResourceManager" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Runtime" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Runtime.Extensions" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Runtime.Handles" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Runtime.InteropServices" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Runtime.InteropServices.RuntimeInformation" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Runtime.Numerics" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Security.Cryptography.Algorithms" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Security.Cryptography.Encoding" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Security.Cryptography.Primitives" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Security.Cryptography.X509Certificates" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Text.Encoding" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Text.Encoding.Extensions" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Text.RegularExpressions" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Threading" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Threading.Tasks" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Threading.Timer" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Xml.ReaderWriter" version="4.3.0" targetFramework="monoandroid60" />
  <package id="System.Xml.XDocument" version="4.3.0" targetFramework="monoandroid60" />
  <package id="Xamarin.Android.Support.Annotations" version="25.4.0.1" targetFramework="monoandroid80" />
  <package id="Xamarin.Android.Support.Compat" version="25.4.0.1" targetFramework="monoandroid80" />
  <package id="Xamarin.Android.Support.Core.UI" version="25.4.0.1" targetFramework="monoandroid80" />
  <package id="Xamarin.Android.Support.Core.Utils" version="25.4.0.1" targetFramework="monoandroid80" />
  <package id="Xamarin.Android.Support.Fragment" version="25.4.0.1" targetFramework="monoandroid80" />
  <package id="Xamarin.Android.Support.Media.Compat" version="25.4.0.1" targetFramework="monoandroid80" />
  <package id="Xamarin.Android.Support.v4" version="25.4.0.1" targetFramework="monoandroid80" />
  <package id="ZXing.Net.Mobile" version="2.4.1" targetFramework="monoandroid80" />
</packages>
ZigbeeApp/Home.Ios/Info.plist
@@ -67,6 +67,10 @@
                <string>wx2ec8f53f6fa36e82</string>
            </array>
        </dict>
        <dict>
            <key>CFBundleURLName</key>
            <string>xiaoduapp</string>
        </dict>
    </array>
    <key>LSApplicationQueriesSchemes</key>
    <array>
ZigbeeApp/ShardLib/ShardLib.csproj
@@ -8,7 +8,7 @@
    <OutputType>Library</OutputType>
    <RootNamespace>ShardLib</RootNamespace>
    <AssemblyName>ShardLib</AssemblyName>
    <TargetFrameworkVersion>v9.0</TargetFrameworkVersion>
    <TargetFrameworkVersion>v8.0</TargetFrameworkVersion>
    <MonoAndroidResourcePrefix>Resources</MonoAndroidResourcePrefix>
    <MonoAndroidAssetsPrefix>Assets</MonoAndroidAssetsPrefix>
    <AndroidClassParser>class-parse</AndroidClassParser>
ZigbeeApp/Shared/DLL/Android/Shared.Droid.dll
Binary files differ
ZigbeeApp/Shared/DLL/IOS/Shared.IOS.dll
Binary files differ
ZigbeeApp/Shared/Phone/SmartSound/Forms/SmartSoundContentForDevice.cs
old mode 100755 new mode 100644
@@ -167,8 +167,6 @@
                listView.Y= tab_layout.Height;
                listView.Height=ContentLayout.Height- tab_layout.Height;
                Buttons.Clear();
                //添加功能项
ZigbeeApp/Shared/Phone/SmartSound/Forms/SmartSoundContentForDeviceChange.cs
old mode 100755 new mode 100644
@@ -285,9 +285,9 @@
            //生成一个弹窗画面
            var dialogForm = new DialogInputControl();
            //编辑住宅
            dialogForm.SetTitleText("自定义唤醒词");
            dialogForm.SetTitleText("自定义昵称");
            //请输入住宅名称
            dialogForm.SetTipText("请输入唤醒词");
            dialogForm.SetTipText("请输入昵称");
            dialogForm.Text = scene.NicksName;
            //按下确认按钮
@@ -316,9 +316,9 @@
            //生成一个弹窗画面
            var dialogForm = new DialogInputControl();
            //编辑住宅
            dialogForm.SetTitleText("自定义唤醒词");
            dialogForm.SetTitleText("自定义昵称");
            //请输入住宅名称
            dialogForm.SetTipText("请输入唤醒词");
            dialogForm.SetTipText("请输入昵称");
            dialogForm.Text = device.NicksName;
            //按下确认按钮
@@ -344,20 +344,22 @@
        /// </summary>
        private void ShowSceneDelectDialog(SmartSound.Scene scene)
        {
            this.ShowMassage(ShowMsgType.Confirm, "确认删除该控制内容?", async () =>
            {
                try
            this.ShowMassage(ShowMsgType.Confirm, "确认删除该控制内容?", () =>
           {
               HdlThreadLogic.Current.RunThread(async () =>
                {
                    this.ShowProgressBar();
                    CurrentRoom.SceneList.Remove(scene);
                    LoadSceneView();
                    string json = await postBatchEdit();
                }
                catch (Exception e)
                {
                    string sss = e.Message;
                }
            }, Language.StringByID(R.MyInternationalizationString.OkMsg));
                    HdlThreadLogic.Current.RunMainInThread(() =>
                    {
                        LoadSceneView();
                        this.CloseProgressBar();
                    });
                });
           }, Language.StringByID(R.MyInternationalizationString.OkMsg));
        }
        /// <summary>
@@ -365,20 +367,21 @@
        /// </summary>
        private void ShowDeviceDelectDialog(SmartSound.Device device)
        {
            this.ShowMassage(ShowMsgType.Confirm, "确认删除该控制内容?", async () =>
            this.ShowMassage(ShowMsgType.Confirm, "确认删除该控制内容?",  () =>
             {
                 try
                 {
                    //DeviceListView.RemoveAt(index);
                    CurrentRoom.DeviceList.Remove(device);
                     RefreshFunctionListView();
                     string json = await postBatchEdit();
                 }
                 catch (Exception e)
                 HdlThreadLogic.Current.RunThread(async () =>
                 {
                     string sss = e.Message;
                 }
                     this.ShowProgressBar();
                     CurrentRoom.DeviceList.Remove(device);
                     string json = await postBatchEdit();
                     HdlThreadLogic.Current.RunMainInThread(() =>
                     {
                         RefreshFunctionListView();
                         this.CloseProgressBar();
                     });
                 });
             }, Language.StringByID(R.MyInternationalizationString.OkMsg));
        }
@@ -446,7 +449,7 @@
            // 提交数据至服务器
            string url = "https://developer.hdlcontrol.com/zigbeespeakerservice/BatchEdit";
            string json = Newtonsoft.Json.JsonConvert.SerializeObject(SmartSound.getInstantiate());
            string response_str = await MyHttpWebResponse.PostWebRequest(url, json, Encoding.UTF8);
            string response_str = MyHttpWebResponse.PostWebRequest(url, json, Encoding.UTF8);
            return response_str;
        }
ZigbeeApp/Shared/Phone/SmartSound/Forms/SmartSoundControlContentForm.cs
old mode 100755 new mode 100644
@@ -133,7 +133,7 @@
            // The remote server returned an error: (400) Bad Request.
            string url = "https://developer.hdlcontrol.com/zigbeespeakerservice/BatchEdit";
            string json = Newtonsoft.Json.JsonConvert.SerializeObject(SmartSound.getInstantiate());
            string response_str = await MyHttpWebResponse.PostWebRequest(url, json, Encoding.UTF8);
            string response_str = MyHttpWebResponse.PostWebRequest(url, json, Encoding.UTF8);
            return response_str;
        }
@@ -207,15 +207,12 @@
                                continue;
                            SmartSound.Device smartDevice = new SmartSound.Device();
                            //smartDevice.Id = device.DeviceID.ToString();//设备 Id
                            smartDevice.DeviceAddress = device.DeviceAddr;//设备 MAC
                            smartDevice.Epoint = device.DeviceEpoint;//设备端口
                            //smartDevice.ClusterID = 0;
                            smartDevice.DeviceName = device.DeviceName;//设备名称
                            smartDevice.DeviceName = Common.LocalDevice.Current.GetDeviceEpointName(device);//设备名称
                            smartDevice.NicksName = "";
                            smartDevice.DeviceType = GetDeviceType(device);//设备类型
                            smartDevice.GatewayID = device.CurrentGateWayId;//网关 Id
                            //smartDevice.RoomID = room.Id;//房间 Id
                            if (smartDevice.DeviceName == "" || smartDevice.DeviceName == string.Empty)
                                continue;
@@ -233,13 +230,10 @@
                            
                            if (scene == null) continue;
                            SmartSound.Scene smartScene = new SmartSound.Scene();
                            //smartScene.Id = scene.DeviceID.ToString();
                            smartScene.SceneName = scene.Name;
                            smartScene.SceneID = scene.Id;
                            smartScene.DelayTime = scene.DelayTime;
                            //smartScene.ClusterID = 0;
                            smartScene.NicksName = "";
                            //smartScene.RoomID = room.Id;
                            smartScene.GatewayID = ZbGateway.MainGateWay.GwId;
                            if (smartScene.SceneName == "" || smartScene.SceneName == string.Empty)
@@ -249,6 +243,9 @@
                        }
                        #endregion
                        if (room.ListDevice.Count == 0 && sceneList.Count == 0)
                            layer.RoomList.Remove(smartRoom);
                    }
                    catch (Exception e)
                    {
ZigbeeApp/Shared/Phone/SmartSound/Forms/SmartSoundControlForm.cs
old mode 100755 new mode 100644
@@ -233,7 +233,7 @@
            // 提交数据至服务器
            string url = "https://developer.hdlcontrol.com/zigbeespeakerservice/BatchEdit";
            string json = Newtonsoft.Json.JsonConvert.SerializeObject(SmartSound.getInstantiate());
            string response_str = await MyHttpWebResponse.PostWebRequest(url, json, Encoding.UTF8);
            string response_str = MyHttpWebResponse.PostWebRequest(url, json, Encoding.UTF8);
            return response_str;
        }
ZigbeeApp/Shared/Phone/SmartSound/Forms/SmartSoundListForm.cs
old mode 100755 new mode 100644
@@ -130,17 +130,11 @@
        /// <returns></returns>
        private async Task getData()
        {
            //SmartSoundInfo.Auth auth = new SmartSoundInfo.Auth();
            //auth.HomeID = Common.Config.Instance.Home.Id;
            //auth.UserID = Common.Config.Instance.Guid;
            //auth.Platform = "";
            string url = string.Format("https://developer.hdlcontrol.com/zigbeespeakerservice/Auth?Platform&PageSetting.PageSize=100&PageSetting.PageIndex=1&UserID={0}&HomeID={1}",
                Common.Config.Instance.Guid,Common.Config.Instance.Home.Id);
            
            dataString = await MyHttpWebResponse.GetWebRequest(url);
            smartSoundInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<SmartSoundInfo>(dataString);
            dataString = await MyHttpWebResponse.GetWebRequest(url);
            smartSoundInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<SmartSoundInfo>(dataString);
        }
        /// <summary>
@@ -150,8 +144,7 @@
        /// <param name="new_remark"></param>
        /// <returns></returns>
        private async Task<string> setRemark(SmartSoundInfo.SoundInfo soundInfo, string new_remark)
        {
        {
            if (soundInfo == null)
                return "";
@@ -162,7 +155,7 @@
                "\"UserID\":" + "\"" + soundInfo.UserID + "\"" + "," +
                "\"HomeID\":" + "\"" + soundInfo.HomeID + "\"" + "}";
            string response_str = await MyHttpWebResponse.PutWebRequest(url, json, Encoding.UTF8);
            string response_str = MyHttpWebResponse.PutWebRequest(url, json, Encoding.UTF8);
            JObject jObject = JObject.Parse(response_str);
            
            return jObject["StateCode"].ToString();
@@ -178,55 +171,66 @@
            for (int i = 0; i < smartSoundInfo.ResponseData.Data.Count; i++)
            {
                //
                var smartSound = smartSoundInfo.ResponseData.Data[i];
                var row = new SoundRowLayout();
                listView.AddChidren(row);
                if (smartSound.Platform == "Baidu")
                try
                {
                    row.Account = "小度:" + smartSound.UserName;
                    row.ImagePath = "SmartSound/Xiaodu.png";
                    row.Remark = smartSound.Remark;
                    //
                    var smartSound = smartSoundInfo.ResponseData.Data[i];
                    var row = new SoundRowLayout();
                    listView.AddChidren(row);
                    if (smartSound.Platform == "Baidu")
                    {
                        string remark = "小度";
                        if (smartSound.Remark != null && smartSound.Remark.Trim() != "")
                            remark += "(" + smartSound.Remark + ")";
                        row.ImagePath = "SmartSound/Xiaodu.png";
                        row.Remark = remark;
                    }
                    row.InitControl();
                    row.btnDelect.AddTag("index", i);
                    row.btnRename.AddTag("index", i);
                    row.frameTable.AddTag("index", i);
                    //重命名
                    row.btnRename.ButtonClickEvent += (sender, e) =>
                    {
                        int index = (int)((NormalViewControl)sender).GetTagByKey("index");
                        var smartSound1 = smartSoundInfo.ResponseData.Data[index];
                        ShowRenameDialog(row, smartSound1);
                    };
                    // 解除绑定
                    row.btnDelect.ButtonClickEvent += (sender, e) =>
                    {
                        int index = (int)(((NormalViewControl)sender).GetTagByKey("index"));
                        var smartSound1 = smartSoundInfo.ResponseData.Data[index];
                        ShowDelectDialog(smartSound1);
                    };
                    //跳转到控制内容界面  FrameRowControl
                    row.frameTable.ButtonClickEvent += (sender, e) =>
                    {
                        int index = (int)row.frameTable.GetTagByKey("index");
                        if (SmartSound.getInstantiate().LayerList != null)
                            SmartSound.getInstantiate().LayerList.Clear();
                        var smartSoundControlForm = new SmartSoundControlForm(smartSoundInfo.ResponseData.Data[index]);
                        smartSoundControlForm.AddForm();
                    };
                }
                row.InitControl();
                row.btnDelect.AddTag("index", i);
                row.btnRename.AddTag("index", i);
                row.frameTable.AddTag("index", i);
                //重命名
                row.btnRename.ButtonClickEvent += (sender, e) =>
                catch (Exception e)
                {
                    int index = (int)((NormalViewControl)sender).GetTagByKey("index");
                    var smartSound1 = smartSoundInfo.ResponseData.Data[index];
                    ShowRenameDialog(row, smartSound1);
                };
                // 解除绑定
                row.btnDelect.ButtonClickEvent += (sender, e) =>
                {
                    int index = (int)(((NormalViewControl)sender).GetTagByKey("index"));
                    ShowDelectDialog(index);
                };
                //跳转到控制内容界面  FrameRowControl
                row.frameTable.ButtonClickEvent += (sender, e) =>
                {
                    int index = (int)row.frameTable.GetTagByKey("index");
                    if (SmartSound.getInstantiate().LayerList != null)
                        SmartSound.getInstantiate().LayerList.Clear();
                    var smartSoundControlForm = new SmartSoundControlForm(smartSoundInfo.ResponseData.Data[index]);
                    smartSoundControlForm.AddForm();
                };
                    this.ShowMassage(ShowMsgType.Tip, e.Message);
                }
            }
        }
        /// <summary>
        /// 解除绑定弹窗
        /// </summary>
        private void ShowDelectDialog(int index)
        private void ShowDelectDialog(SmartSoundInfo.SoundInfo smartSound)
        {
            //生成一个弹窗画面
            var dialogForm = new TextDialog("解除绑定需要到第三方 APP 进行操作", "跳转至小度");
@@ -235,8 +239,36 @@
            //按下确认按钮
            dialogForm.ComfirmClickEvent += () =>
            {
                //画面关闭
                dialogForm.CloseDialog();
                HdlThreadLogic.Current.RunThread(() =>
                {
                    this.ShowProgressBar("删除服务器记录...");
                    DelectSmartSound(smartSound);
                    HdlThreadLogic.Current.RunMainInThread(() =>
                    {
                        //画面关闭
                        dialogForm.CloseDialog();
                        bool bol = false;
                        try
                        {
#if Android
                            bol = HDLUtils.OpenAppWithPackageName("com.baidu.duer.superapp");
#else
                            HDLUtils.OpenApp("xiaoduapp://");
#endif
                        }
                        catch (Exception e)
                        {
                            string error = e.Message;
                            bol = false;
                        }
                        if (!bol)
                        {
                            this.ShowMassage(ShowMsgType.Tip, "打开APP失败");
                        }
                    });
                });
            };
        }
        /// <summary>
@@ -264,7 +296,7 @@
                if (str == "SUCCESS")
                {
                    smartSound.Remark = remark;
                    soundRowLayout.btnRemark.Text = textValue;
                    soundRowLayout.btnRemark.Text = "小度" + "(" + textValue + ")";
                }
                else
                {
@@ -276,8 +308,29 @@
        #endregion
        /// <summary>
        /// 删除数据
        /// </summary>
        /// <param name="soundInfo"></param>
        /// <returns></returns>
        private string DelectSmartSound(SmartSoundInfo.SoundInfo soundInfo)
        {
            if (soundInfo == null)
                return "";
        #region ■ 界面重新激活事件___________________
            string url = "https://developer.hdlcontrol.com/zigbeespeakerservice/Auth";
            string json = "{" +
                "\"AuthID\":" + "\"" + soundInfo.Id + "\"" + "," +
                "\"UserID\":" + "\"" + soundInfo.UserID + "\"" + "," +
                "\"HomeID\":" + "\"" + soundInfo.HomeID + "\"" + "}";
            string response_str = MyHttpWebResponse.DeleteWebRequest(url, json, Encoding.UTF8);
            JObject jObject = JObject.Parse(response_str);
            return jObject["StateCode"].ToString();
        }
#region ■ 界面重新激活事件___________________
        /// <summary>
        /// 自身的上层界面关闭后,它自身处于最上层时,触发的事件
@@ -287,9 +340,9 @@
            return 1;
        }
        #endregion
#endregion
        #region ■ 关闭界面___________________________
#region ■ 关闭界面___________________________
        /// <summary>
        /// 画面关闭
@@ -299,7 +352,7 @@
            base.CloseFormBefore();
        }
        #endregion
#endregion
    }
}
ZigbeeApp/Shared/Phone/SmartSound/SmartSoundInfo.cs
old mode 100755 new mode 100644
@@ -41,7 +41,7 @@
            /// <summary>
            /// 智能音箱备注
            /// </summary>
            public string Remark { get; set; }
            public string Remark { get; set; } = "我的音箱";
            public string Id { get; set; }
            public bool IsDeleted { get; set; }
            public string CreatedOnUtc { get; set; }
ZigbeeApp/Shared/Phone/SmartSound/Util/MyHttpWebResponse.cs
old mode 100755 new mode 100644
@@ -17,7 +17,7 @@
        /// </summary>
        /// <param name="getUrl">接口地址</param>
        /// <returns></returns>
        public async static Task<string> GetWebRequest(string getUrl)
        public static async Task<string> GetWebRequest(string getUrl)
        {
            string responseContent = "";
@@ -50,7 +50,7 @@
        /// <param name="paramData">提交json数据</param>
        /// <param name="dataEncode">编码方式(Encoding.UTF8)</param>
        /// <returns></returns>
        public async static Task<string> PostWebRequest(string postUrl, string paramData, Encoding dataEncode)
        public static string PostWebRequest(string postUrl, string paramData, Encoding dataEncode)
        {
            string responseContent = string.Empty;
            try
@@ -91,7 +91,7 @@
        /// <param name="paramData">提交json数据</param>
        /// <param name="dataEncode">编码方式(Encoding.UTF8)</param>
        /// <returns></returns>
        public async static Task<string> PutWebRequest(string postUrl, string paramData, Encoding dataEncode)
        public static string PutWebRequest(string postUrl, string paramData, Encoding dataEncode)
        {
            string responseContent = string.Empty;
            try
@@ -121,5 +121,43 @@
            }
            return responseContent;
        }
        /// <summary>
        /// delete数据接口
        /// </summary>
        /// <param name="postUrl">接口地址</param>
        /// <param name="paramData">提交json数据</param>
        /// <param name="dataEncode">编码方式(Encoding.UTF8)</param>
        /// <returns></returns>
        public static string DeleteWebRequest(string postUrl, string paramData, Encoding dataEncode)
        {
            string responseContent = string.Empty;
            try
            {
                byte[] byteArray = dataEncode.GetBytes(paramData); //转化
                HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(new Uri(postUrl));
                webReq.Method = "DELETE";
                webReq.ContentType = "application/json";
                webReq.ContentLength = byteArray.Length;
                using (Stream reqStream = webReq.GetRequestStream())
                {
                    reqStream.Write(byteArray, 0, byteArray.Length);//写入参数
                    //reqStream.Close();
                }
                using (HttpWebResponse response = (HttpWebResponse)webReq.GetResponse())
                {
                    //在这里对接收到的页面内容进行处理
                    using (StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.Default))
                    {
                        responseContent = sr.ReadToEnd().ToString();
                    }
                }
            }
            catch (Exception ex)
            {
                return ex.Message;
            }
            return responseContent;
        }
    }
}
ZigbeeApp/Shared/Phone/SmartSound/Widget/SoundRowLayout.cs
old mode 100755 new mode 100644
@@ -12,7 +12,9 @@
        /// 删除按钮
        /// </summary>
        public NormalViewControl btnDelect = null;
        /// <summary>
        /// 备注
        /// </summary>
        public NormalViewControl btnRemark = null;
        /// <summary>
        /// 图片路径
@@ -20,13 +22,10 @@
        public string ImagePath = "SmartSound/SoundIcon.png";
        /// <summary>
        /// 智能音箱账号
        /// </summary>
        public string Account = "";
        /// <summary>
        /// 智能音箱备注
        /// 智能音箱备注名称
        /// </summary>
        public string Remark = "";
        public SoundRowLayout()
        {
@@ -38,25 +37,30 @@
        /// </summary>
        public void InitControl()
        {
            //图标
            var btnIcon = frameTable.AddLeftIcon(81);
            try
            {
                //图标
                var btnIcon = frameTable.AddLeftIcon(81);
            btnIcon.UnSelectedImagePath = ImagePath;
            btnIcon.SelectedImagePath = ImagePath;
                btnIcon.UnSelectedImagePath = ImagePath;
                btnIcon.SelectedImagePath = ImagePath;
            //设备
            var btnAccount = frameTable.AddTopView(Account, 800);
            //房间
            btnRemark = frameTable.AddBottomView(Remark, 800);
            //底线
            frameTable.AddBottomLine();
                //备注名称按钮
                btnRemark = frameTable.AddLeftCaption(Remark, 800);
            btnRename = base.AddEditorControl();
            btnRename.Text = "重命名";
                //底线
                frameTable.AddBottomLine();
            btnDelect = base.AddDeleteControl();
            btnDelect.Text = "解除绑定";
                btnRename = base.AddEditorControl();
                btnRename.Text = "重命名";
                btnDelect = base.AddDeleteControl();
                btnDelect.Text = "解除绑定";
            }
            catch (Exception e)
            {
                //
            }
        }
    }
}
ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceListMainForm.cs
old mode 100755 new mode 100644
@@ -1284,13 +1284,13 @@
        #region ■ 自定义智能音箱控件_____________________
        /// <summary>
        /// 自定义网关控件
        /// 自定义音箱控件
        /// </summary>
        private class MySmartSoundControl : FrameRowControl
        {
            /// <summary>
            /// 网关名字控件
            /// 音箱名字控件
            /// </summary>
            private NormalViewControl btnName = null;
@@ -1326,6 +1326,7 @@
                this.AddRightArrow();
                this.AddMostRightView("", 300, false).Name = "smartSoundLayout";
                this.AddBottomLine();
            }
        }
        #endregion