2020-12-15 1.客服反馈问题修改。2.翻译字段纠正。3.修改备注增加判空处理
| | |
| | | <Properties StartupConfiguration="{1D83BF28-BA88-4152-BA41-D7EFE90A5437}|Default"> |
| | | <MonoDevelop.Ide.ItemProperties.ON.Droid PreferredExecutionTarget="Android.Android_Accelerated_Oreo" /> |
| | | <MonoDevelop.Ide.Workbench ActiveDocument="ON/Properties/AndroidManifest.xml"> |
| | | <Files> |
| | | <File FileName="SmartHome/UI/SimpleControl/MainPage.cs" Line="1" Column="1" /> |
| | | <File FileName="ON.Ios/Info.plist" /> |
| | | <File FileName="SmartHome/UI/SimpleControl/Phone/Register/AccountLogin.cs" Line="118" Column="45" /> |
| | | <File FileName="SmartHome/UI/SimpleControl/Phone/Register/AccountRegistration.cs" Line="1" Column="1" /> |
| | | <File FileName="SmartHome/UI/SimpleControl/Phone/Register/AccountView.cs" Line="206" Column="19" /> |
| | | <File FileName="ON/Properties/AndroidManifest.xml" /> |
| | | </Files> |
| | | <Properties StartupConfiguration="{9D9EF20B-6E65-4A65-92BF-567EBF1E1443}|Default"> |
| | | <MonoDevelop.Ide.ItemProperties.ON.Droid PreferredExecutionTarget="Android.364c4b3158493098" /> |
| | | <MonoDevelop.Ide.Workbench> |
| | | <Pads> |
| | | <Pad Id="ProjectPad"> |
| | | <State name="__root__"> |
| | | <Node name="SmartHome" expanded="True"> |
| | | <Node name="ON.Droid" expanded="True" selected="True"> |
| | | <Node name="Properties" expanded="True" /> |
| | | </Node> |
| | | <Node name="ON.Ios" expanded="True" selected="True" /> |
| | | <Node name="Shared" expanded="True"> |
| | | <Node name="UI" expanded="True"> |
| | | <Node name="SimpleControl" expanded="True"> |
| | | <Node name="Phone" expanded="True"> |
| | | <Node name="Register" expanded="True" /> |
| | | </Node> |
| | | <Node name="HDL" expanded="True"> |
| | | <Node name="Operation" expanded="True"> |
| | | <Node name="ResponseEntity" expanded="True" /> |
| | | </Node> |
| | | </Node> |
| | | </Node> |
| | |
| | | <MonoDevelop.Ide.Workspace ActiveConfiguration="Release|iPhone" /> |
| | | <MonoDevelop.Ide.ItemProperties.ON.Ios automaticSigning="False" PreferredExecutionTarget="MonoDevelop.IPhone.IPhoneDeviceTarget.00008030-00014C392121802E" /> |
| | | <MonoDevelop.Ide.DebuggingService.Breakpoints> |
| | | <BreakpointStore /> |
| | | <BreakpointStore> |
| | | <Breakpoint file="/Users/jlchen/JLChen/ProjectsCode/HDLGit/CrabtreeOn/Crabtree/SmartHome/UI/SimpleControl/Phone/Room/UserDeviceListPage.cs" relfile="SmartHome/UI/SimpleControl/Phone/Room/UserDeviceListPage.cs" line="477" column="11" /> |
| | | </BreakpointStore> |
| | | </MonoDevelop.Ide.DebuggingService.Breakpoints> |
| | | <MultiItemStartupConfigurations /> |
| | | </Properties> |
| | |
| | | <key>CFBundleIdentifier</key> |
| | | <string>com.hdl.on</string> |
| | | <key>CFBundleShortVersionString</key> |
| | | <string>2.512081</string> |
| | | <string>2.512151</string> |
| | | <key>CFBundleVersion</key> |
| | | <string>2.512081</string> |
| | | <string>2.512151</string> |
| | | <key>LSRequiresIPhoneOS</key> |
| | | <true/> |
| | | <key>MinimumOSVersion</key> |
| | |
| | | 306=Theme |
| | | 307=Theme changed successfully. Please restart the application. |
| | | 308=Restore default skin |
| | | 309=Favorite |
| | | 309=Favourite |
| | | 310=Function |
| | | 311=Rooms |
| | | 312=DoorLock List |
| | |
| | | 1007=DLNA Server Music |
| | | 1008=Network Streaming Music |
| | | 1009=My Playlists |
| | | 1010=My Favorite |
| | | 1010=My Favourite |
| | | 1011=My Setup |
| | | 1012=CD |
| | | 1013=Playlists |
| | |
| | | 1021=My playlists |
| | | 1022=Save To Music Player |
| | | 1023=Device List |
| | | 1024=My Favorite |
| | | 1024=My Favourite |
| | | 1025=Prompt |
| | | 1026=No Supported Device found |
| | | 1027=OK |
| | |
| | | 1033=SD Card |
| | | 1034=NAS |
| | | 1035=Online Radio |
| | | 1036=Favorite Music |
| | | 1037=Favorite Radio |
| | | 1036=Favourite Music |
| | | 1037=Favourite Radio |
| | | 1038=Online Music |
| | | 1039=Single Cycle |
| | | 1040=Shuffle |
| | |
| | | 10066=Add File failed |
| | | 10067=Backup Data? |
| | | 10068=Data Backup Succeeded |
| | | 10069= Download and Restore Data? |
| | | 10069=Downloaded and data restored. |
| | | 10070=Restore Succeeded |
| | | 10071=Please Log in |
| | | 10072=Contact |
| | |
| | | 306=Theme |
| | | 307=Theme changed successfully. Please restart the application. |
| | | 308=Restore default skin |
| | | 309=Favorite |
| | | 309=Favourite |
| | | 310=Devices |
| | | 311=Rooms |
| | | 312=DoorLock List |
| | |
| | | 1007=DLNA Server Music |
| | | 1008=Network Streaming Music |
| | | 1009=My Playlists |
| | | 1010=My Favorite |
| | | 1010=My Favourite |
| | | 1011=My Setup |
| | | 1012=CD |
| | | 1013=Playlists |
| | |
| | | 1021=My playlists |
| | | 1022=Save To Music Player |
| | | 1023=Device List |
| | | 1024=My Favorite |
| | | 1024=My Favourite |
| | | 1025=Prompt |
| | | 1026=No Supported Device found |
| | | 1027=OK |
| | |
| | | 1033=SD Card |
| | | 1034=NAS |
| | | 1035=Online Radio |
| | | 1036=Favorite Music |
| | | 1037=Favorite Radio |
| | | 1036=Favourite Music |
| | | 1037=Favourite Radio |
| | | 1038=Online Music |
| | | 1039=Single Cycle |
| | | 1040=Shuffle |
| | |
| | | 10066=Add File failed |
| | | 10067=Backup Data? |
| | | 10068=Data Backup Succeeded |
| | | 10069= Download and Restore Data? |
| | | 10069=Downloaded and data restored. |
| | | 10070=Restore Succeeded |
| | | 10071=Please Log in |
| | | 10072=Contact |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.hdl.crabtreenew" android:versionName="2.512081" android:versionCode="202012081"> |
| | | <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.hdl.crabtreenew" android:versionName="2.512151" android:versionCode="202012151"> |
| | | <uses-sdk android:minSdkVersion="23" android:targetSdkVersion="28" /> |
| | | <!-- 在安卓P版本之后,必须要授予FOREGROUND_SERVICE权限,才能够使用前台服务 --> |
| | | <uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> |
| | |
| | | public readonly static string PasswordStrengthNotMatch = "The password must be 8-20 characters, including at least one uppercase and lowercase letters, numbers and special characters."; |
| | | //密码不能包含用户名 |
| | | public readonly static string PasswordNotUsername = "Password cannot contain username"; |
| | | //您的手机未连接WIFI网络,请连接 |
| | | public readonly static string NotConnectedToWIFI= "Your phone in not connected to WIFI network, please connect."; |
| | | //请确保网关是通电的,连接到WiFi路由器上。 |
| | | public readonly static string MakeSureGatewayIsPoweredUp = "Please make sure gateway is powered up and connect to WiFi router."; |
| | | //如果列表中没有所有网关,则可以再次搜索。 |
| | | public readonly static string IfAllTheGatewaysAreNotInTheList = "If all the gateways are not in the list, you can search again."; |
| | | //正在搜索,请点击此处退出搜索模式。 |
| | | public readonly static string SearchingExitTheSearchingMode = "Searching, Please touch here to exit the searching mode."; |
| | | //正在搜索新设备,请确保所有新设备都处于配置模式。 |
| | | public readonly static string SearchingForNewDevices = "Searching for new devices, Please make sure all new devices are in configuration mode."; |
| | | //备注长度超过限制。 |
| | | public readonly static string RemarkLengthExceededTheLimit = "Device name length exceeded the limit."; |
| | | //备注不能为空。 |
| | | public readonly static string RemarksCannotBeEmpty = "Device name cannot be empty"; |
| | | |
| | | |
| | | } |
| | | } |
| | |
| | | //public static Button LogoButton = new Button (); |
| | | |
| | | |
| | | public static string RequestVersion = "2.512081"; |
| | | public static string RequestVersion = "2.512151"; |
| | | public static UserInfo LoginUser; |
| | | /// <summary> |
| | | /// 是否是管理员权限(变更了,成员的时候,这个也为ture。为什么会声明这样变量,因为有些接口必须使用原来的Token) |
| | |
| | | void SearchGatewayList () |
| | | { |
| | | if (UserConfig.Instance.internetStatus == 0 || UserConfig.Instance.internetStatus == 1) { |
| | | Alert checkInternetAlert = new Alert ("", "Your phone in not connected to WIFI network, please connet", "Close", "Search again"); |
| | | Alert checkInternetAlert = new Alert ("", ErrorCode.NotConnectedToWIFI, "Close", "Search again"); |
| | | |
| | | checkInternetAlert.Show (); |
| | | |
| | |
| | | } else { |
| | | if (this != null && this.Parent != null) { |
| | | if (inThisView) {// this.Parent.GetChildren (this.Parent.ChildrenCount - 1) == this) { |
| | | Alert confirmAlert1 = new Alert ("", "If not all the gateways are in the list,you can search again.", "Close", "Search again"); |
| | | Alert confirmAlert1 = new Alert ("", ErrorCode.IfAllTheGatewaysAreNotInTheList, "Close", "Search again"); |
| | | |
| | | confirmAlert1.Show (); |
| | | confirmAlert1.ResultEventHandler += (ddf, ddd) => { |
| | |
| | | if (UserConfig.Instance.IsLocalEncrypt) { |
| | | //密码检验正确 |
| | | if (UserConfig.Instance.EncryptedPasswordCorrect) { |
| | | Alert confirmAlert = new Alert ("", "Please make sure gateway is powered up and comect to WiFi router.", "Close", "Search again"); |
| | | Alert confirmAlert = new Alert ("", ErrorCode.MakeSureGatewayIsPoweredUp, "Close", "Search again"); |
| | | confirmAlert.Show (); |
| | | confirmAlert.ResultEventHandler += (ddf, ddd) => { |
| | | MainPage.Loading.Hide (); |
| | |
| | | |
| | | } |
| | | } else { |
| | | Alert confirmAlert = new Alert ("", "Please make sure gateway is powered up and comect to WiFi router.", "Close", "Search again"); |
| | | Alert confirmAlert = new Alert ("", ErrorCode.MakeSureGatewayIsPoweredUp, "Close", "Search again"); |
| | | confirmAlert.Show (); |
| | | confirmAlert.ResultEventHandler += (ddf, ddd) => { |
| | | MainPage.Loading.Hide (); |
| | |
| | | if (gatewayDeicve.Type == DeviceType.OnePortWirelessFR || gatewayDeicve.Type == DeviceType.OnePortMqttFR) { |
| | | Control.ControlBytesSend (Command.GotoConfigMode, gatewayDeicve.SubnetID, gatewayDeicve.DeviceID, new byte [] { }); |
| | | //new Alert ("", "网关已经进入配频模式,请手动新设备进入配频模式。", "Close").Show (); |
| | | new Alert ("", "Searching for new devices, Please make sure all new devices are in configuration mode.", "OK").Show (); |
| | | new Alert ("", ErrorCode.SearchingForNewDevices, "OK").Show (); |
| | | |
| | | this.AddChidren (myLoading); |
| | | //myLoading.Start ("点击屏幕关闭配频模式"); |
| | | myLoading.Start ("Searching, Please touch the here to exit the searching mode."); |
| | | myLoading.Start (ErrorCode.SearchingExitTheSearchingMode); |
| | | //myLoading.Start ("Waiting for new device, Please touch the here to exit the waiting mode."); |
| | | |
| | | this.AddChidren (btnCloseLoading); |
| | |
| | | |
| | | if (remakeBytes.Length > 20) { |
| | | etDeviceName.Text = CommonPage.MyEncodingGB2312.GetString (remakeBytes, 0, 20); |
| | | new Alert ("", "Remark length exceeded the limit. ", "Close").Show (); |
| | | new Alert ("", ErrorCode.RemarkLengthExceededTheLimit, "Close").Show (); |
| | | } |
| | | }; |
| | | |
| | |
| | | dialogBottomView.AddChidren (editor); |
| | | |
| | | editor.MouseUpEventHandler += (dff, ffd) => { |
| | | byte [] remakeBytes = CommonPage.MyEncodingGB2312.GetBytes (etDeviceName.Text.Trim ()); |
| | | string remakeStr = etDeviceName.Text.Trim (); |
| | | if (string.IsNullOrEmpty (remakeStr)) { |
| | | //备注不能为空 |
| | | new Alert ("", ErrorCode.RemarksCannotBeEmpty, "Close").Show (); |
| | | return; |
| | | } |
| | | |
| | | byte [] remakeBytes = CommonPage.MyEncodingGB2312.GetBytes (remakeStr); |
| | | if (remakeBytes.Length > 20) { |
| | | new Alert ("", "Remark length exceeded the limit. ", "Close").Show (); |
| | | new Alert ("", ErrorCode.RemarkLengthExceededTheLimit, "Close").Show (); |
| | | return; |
| | | } |
| | | |
| | |
| | | |
| | | if (remakeBytes.Length > 20) { |
| | | etDeviceName.Text = CommonPage.MyEncodingGB2312.GetString (remakeBytes, 0, 20); |
| | | new Alert ("", "Remark length exceeded the limit. ", "Close").Show (); |
| | | new Alert ("", ErrorCode.RemarkLengthExceededTheLimit, "Close").Show (); |
| | | } |
| | | }; |
| | | |
| | |
| | | dialogBottomView.AddChidren (editor); |
| | | |
| | | editor.MouseUpEventHandler += (dff, ffd) => { |
| | | byte [] remakeBytes = CommonPage.MyEncodingGB2312.GetBytes (etDeviceName.Text.Trim ()); |
| | | if (remakeBytes.Length > 20) { |
| | | new Alert ("", "Remark length exceeded the limit. ", "Close").Show (); |
| | | string remakeStr = etDeviceName.Text.Trim (); |
| | | if (string.IsNullOrEmpty (remakeStr)) { |
| | | //备注不能为空 |
| | | new Alert ("", ErrorCode.RemarksCannotBeEmpty, "Close").Show (); |
| | | return; |
| | | } |
| | | |
| | | byte [] remakeBytes = CommonPage.MyEncodingGB2312.GetBytes (remakeStr); |
| | | if (remakeBytes.Length > 20) { |
| | | new Alert ("", ErrorCode.RemarkLengthExceededTheLimit, "Close").Show (); |
| | | return; |
| | | } |
| | | |
| | | MainPage.Loading.Start (); |
| | | //byte [] remakeBytes = CommonPage.MyEncodingGB2312.GetBytes (etDeviceName.Text.Trim ()); |
| | |
| | | |
| | | if (btnMonday.IsSelected == false && btnFriday.IsSelected == false && btnThursday.IsSelected == false && btnSunday.IsSelected == false && btnTuesday.IsSelected == false && btnSaturday.IsSelected == false && btnWednesday.IsSelected == false) { |
| | | //new Alert ("", "请选择日期!", "Close").Show (); |
| | | new Alert ("", "Please setting date!", "Close").Show (); |
| | | new Alert ("", "Please select the days.", "Close").Show (); |
| | | return; |
| | | } |
| | | |
| | | string mTimerName = etName.Text.Trim (); |
| | | if (string.IsNullOrEmpty (mTimerName)) { |
| | | //new Alert ("", "请填写定时器名称!", "Close").Show (); |
| | | new Alert ("", "Please set name for the timer!", "Close").Show (); |
| | | new Alert ("", "Please fill the tab Lable name.", "Close").Show (); |
| | | return; |
| | | } |
| | | //else if (listTimer.Find ((obj) => obj.TimerName == timerTemp.TimerName) != null && !isEdit) {//2020-01-09 编辑的时候也提示重复名字 |