2020-04-16 1.更新
2020-04-14
1.更新为精简版控件库。
2.编译目标版本修改为Android 9.0,支持64。
3.去掉CheckGateway 定时心跳查询网关状态。
4.增加远程连接过程状态提示。
5.增加数据接收菜单按钮。
6.增加通用设备功能,支持红外遥控功能。
| | |
| | | <Properties StartupConfiguration="{9D9EF20B-6E65-4A65-92BF-567EBF1E1443}|Default"> |
| | | <MonoDevelop.Ide.ItemProperties.ON.Droid AndroidDesignerPreferredDevice="Nexus 4" PreferredExecutionTarget="Android.4b65c46595" /> |
| | | <MonoDevelop.Ide.ItemProperties.ON.Droid AndroidDesignerPreferredDevice="Nexus 4" PreferredExecutionTarget="Android.Android_Accelerated_Oreo" /> |
| | | <MonoDevelop.Ide.Workbench> |
| | | <Files> |
| | | <File FileName="SmartHome/UI/SimpleControl/Phone/System/SystemRemote.cs" Line="181" Column="112" /> |
| | | <File FileName="ON/Properties/AndroidManifest.xml" /> |
| | | <File FileName="SmartHome/UI/SimpleControl/MqttCommon.cs" Line="293" Column="37" /> |
| | | <File FileName="SmartHome/UI/SimpleControl/R.cs" /> |
| | | </Files> |
| | | <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="Shared" expanded="True"> |
| | | <Node name="DLL" expanded="True" /> |
| | | <Node name="HDL" expanded="True"> |
| | | <Node name="Operation" expanded="True" /> |
| | | </Node> |
| | | <Node name="IO" expanded="True" /> |
| | | <Node name="Net" expanded="True" /> |
| | | <Node name="UI" expanded="True"> |
| | | <Node name="SimpleControl" expanded="True"> |
| | | <Node name="Phone" expanded="True"> |
| | | <Node name="Light" expanded="True" /> |
| | | <Node name="Register" expanded="True" /> |
| | | <Node name="Room" expanded="True" /> |
| | | <Node name="System" expanded="True" /> |
| | | </Node> |
| | | </Node> |
| | | </Node> |
| | | </Node> |
| | | <Node name="ON.Droid" selected="True" /> |
| | | </Node> |
| | | </State> |
| | | </Pad> |
| | |
| | | <String>Shared.IOS/Shared.IOS.csproj</String> |
| | | </DisabledProjects> |
| | | <MonoDevelop.Ide.Workspace ActiveConfiguration="Release" /> |
| | | <MonoDevelop.Ide.ItemProperties.ON.Ios automaticSigning="False" PreferredExecutionTarget="MonoDevelop.IPhone.IPhoneDeviceTarget.254b82433419c7ca1850b1dfb524c79b7aeb0640" /> |
| | | <MonoDevelop.Ide.ItemProperties.ON.Ios automaticSigning="False" PreferredExecutionTarget="MonoDevelop.IPhone.IPhoneSimulatorTarget.446FF651-C1E0-4C68-805D-F62274849738" /> |
| | | <MonoDevelop.Ide.DebuggingService.Breakpoints> |
| | | <BreakpointStore /> |
| | | </MonoDevelop.Ide.DebuggingService.Breakpoints> |
| | |
| | | <key>CFBundleIdentifier</key> |
| | | <string>com.hdl.SimpleControl</string> |
| | | <key>CFBundleShortVersionString</key> |
| | | <string>2.5200203</string> |
| | | <string>2.5200408</string> |
| | | <key>CFBundleVersion</key> |
| | | <string>2.50203</string> |
| | | <string>2.50408</string> |
| | | <key>LSRequiresIPhoneOS</key> |
| | | <true/> |
| | | <key>MinimumOSVersion</key> |
| | |
| | | <WarningLevel>4</WarningLevel> |
| | | <TreatWarningsAsErrors>false</TreatWarningsAsErrors> |
| | | <DocumentationFile></DocumentationFile> |
| | | <CodesignKey>iPhone Developer</CodesignKey> |
| | | <CodesignKey>iPhone Developer: xuebiao huang (4P32GXQWWK)</CodesignKey> |
| | | <MtouchFastDev>true</MtouchFastDev> |
| | | <MtouchFastDev>true</MtouchFastDev> |
| | | <MtouchProfiling>false</MtouchProfiling> |
| | |
| | | <WarningsNotAsErrors></WarningsNotAsErrors> |
| | | <OnDemandResourcesInitialInstallTags></OnDemandResourcesInitialInstallTags> |
| | | <OnDemandResourcesPrefetchOrder></OnDemandResourcesPrefetchOrder> |
| | | <CodesignProvision>Test</CodesignProvision> |
| | | </PropertyGroup> |
| | | <ItemGroup> |
| | | <Reference Include="System" /> |
| | |
| | | using Android.Content; |
| | | using Android.Net; |
| | | using Android.OS; |
| | | using CN.Jpush.Android.Api; |
| | | using CN.Jpush.Android.Service; |
| | | //using CN.Jpush.Android.Api; |
| | | //using CN.Jpush.Android.Service; |
| | | using Java.Lang; |
| | | using Java.Util; |
| | | using Java.Util.Zip; |
| | |
| | | [Android.App.Application] |
| | | public class Application : Android.App.Application |
| | | { |
| | | static void reStartApp (Android.App.Application application) |
| | | { |
| | | var intent = new Intent (application, typeof (BaseActivity)); |
| | | intent.AddFlags (ActivityFlags.NewTask); |
| | | application.StartActivity (intent); |
| | | Android.OS.Process.KillProcess (Android.OS.Process.MyPid ()); |
| | | } |
| | | |
| | | public Application (IntPtr handle, Android.Runtime.JniHandleOwnership ownerShip) : base (handle, ownerShip) { } |
| | | public override void OnCreate () |
| | | { |
| | | initAll (); |
| | | if (Shared.Application.Activity != null) { |
| | | reStartApp (this); |
| | | return; |
| | | } |
| | | //Shared.Application.IsGpsEnable = false; |
| | | |
| | | base.OnCreate (); |
| | | |
| | | initAll (); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | init (); |
| | | BaseActivity.OnCreateActoin += (activity, application) => { |
| | | Microsoft.AppCenter.AppCenter.Start ("d0f0f0c5-88af-494b-93af-9a667801b7a3", typeof (Microsoft.AppCenter.Analytics.Analytics), typeof (Microsoft.AppCenter.Crashes.Crashes)); |
| | | //保存获取的极光服务器上的注册ID到本地文件 |
| | | var tokenID = JPushInterface.GetRegistrationID (activity); |
| | | if (!string.IsNullOrEmpty (tokenID) && UserConfig.Instance.tokenID != tokenID) { |
| | | UserConfig.Instance.tokenID = tokenID; |
| | | UserConfig.Instance.SaveUserConfig (); |
| | | } |
| | | ////保存获取的极光服务器上的注册ID到本地文件 |
| | | //var tokenID = JPushInterface.GetRegistrationID (activity); |
| | | //if (!string.IsNullOrEmpty (tokenID) && UserConfig.Instance.tokenID != tokenID) { |
| | | // UserConfig.Instance.tokenID = tokenID; |
| | | // UserConfig.Instance.SaveUserConfig (); |
| | | //} |
| | | BaseActivity.NetworkStateChanged += (int obj) => { |
| | | Utlis.WriteLine ("NetworkStateChanged " + obj); |
| | | UserConfig.Instance.internetStatus = obj; |
| | |
| | | Shared.Application.Skin = UserConfig.Instance.CurrentSkinName; |
| | | SkinStyle.Current.ChangeColor (); |
| | | UserConfig.Instance.phoneName = Android.OS.Build.Manufacturer; |
| | | //设置极光调试模式,为false时只打印警告信息 |
| | | JPushInterface.SetDebugMode (false); |
| | | JPushInterface.Init (this);//保存手机名称到本地文件 |
| | | ////设置极光调试模式,为false时只打印警告信息 |
| | | //JPushInterface.SetDebugMode (false); |
| | | //JPushInterface.Init (this);//保存手机名称到本地文件 |
| | | //获取经纬度 |
| | | Shared.Application.LocationAction = (arg1, arg2) => { |
| | | |
| | |
| | | void checkSomeInfo () |
| | | { |
| | | RemoteInfo.Current.ReadMsgList (UserConfig.Instance.tokenID, IsShowTip); |
| | | JPushInterface.ClearAllNotifications (this); |
| | | //JPushInterface.ClearAllNotifications (this); |
| | | |
| | | IsShowTip = true; |
| | | var status = isNetworkAvailable (this); |
| | |
| | | using System; |
| | | using Android.Content; |
| | | using Android.OS; |
| | | using CN.Jpush.Android.Api; |
| | | using CN.Jpush.Android.Service; |
| | | //using System; |
| | | //using Android.Content; |
| | | //using Android.OS; |
| | | //using CN.Jpush.Android.Api; |
| | | //using CN.Jpush.Android.Service; |
| | | |
| | | namespace com.hdl.on |
| | | { |
| | | //<receiver android:name="com.hdl.on.MyReceiver" android:exported="false" android:enabled="true" android:permission="android.permission.RECEIVE_BOOT_COMPLETED"> |
| | | // <intent-filter> |
| | | // <action android:name="cn.jpush.android.intent.REGISTRATION" /> |
| | | // <action android:name="cn.jpush.android.intent.MESSAGE_RECEIVED" /> |
| | | // <action android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED" /> |
| | | // <action android:name="cn.jpush.android.intent.NOTIFICATION_OPENED" /> |
| | | // <action android:name="cn.jpush.android.intent.CONNECTION" /> |
| | | // <category android:name="com.hdl.on" /> |
| | | // <action android:name="android.intent.action.BOOT_COMPLETED"></action> |
| | | // <category android:name="android.intent.category.LAUNCHER" /> |
| | | // <action android:name="android.intent.action.USER_PRESENT" /> |
| | | // <action android:name="android.media.RINGER_MODE_CHANGED" /> |
| | | // </intent-filter> |
| | | //</receiver> |
| | | /* |
| | | *创建一个广播 |
| | | * 自定义接收器 |
| | | * 如果不定义这个 Receiver,则: |
| | | * 1) 默认用户会打开主界面 |
| | | * 2) 接收不到自定义消息 |
| | | */ |
| | | //[BroadcastReceiver] |
| | | //[IntentFilter(new string []{"cn.jpush.android.intent.REGISTRATION", "cn.jpush.android.intent.MESSAGE_RECEIVED","cn.jpush.android.intent.NOTIFICATION_RECEIVED","cn.jpush.android.intent.NOTIFICATION_OPENED","cn.jpush.android.intent.CONNECTION"})] |
| | | public class MyReceiver : BroadcastReceiver |
| | | { |
| | | static string ACTION = "android.intent.action.BOOT_COMPLETED"; |
| | | //namespace com.hdl.on |
| | | //{ |
| | | // //<receiver android:name="com.hdl.on.MyReceiver" android:exported="false" android:enabled="true" android:permission="android.permission.RECEIVE_BOOT_COMPLETED"> |
| | | // // <intent-filter> |
| | | // // <action android:name="cn.jpush.android.intent.REGISTRATION" /> |
| | | // // <action android:name="cn.jpush.android.intent.MESSAGE_RECEIVED" /> |
| | | // // <action android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED" /> |
| | | // // <action android:name="cn.jpush.android.intent.NOTIFICATION_OPENED" /> |
| | | // // <action android:name="cn.jpush.android.intent.CONNECTION" /> |
| | | // // <category android:name="com.hdl.on" /> |
| | | // // <action android:name="android.intent.action.BOOT_COMPLETED"></action> |
| | | // // <category android:name="android.intent.category.LAUNCHER" /> |
| | | // // <action android:name="android.intent.action.USER_PRESENT" /> |
| | | // // <action android:name="android.media.RINGER_MODE_CHANGED" /> |
| | | // // </intent-filter> |
| | | // //</receiver> |
| | | // /* |
| | | // *创建一个广播 |
| | | // * 自定义接收器 |
| | | // * 如果不定义这个 Receiver,则: |
| | | // * 1) 默认用户会打开主界面 |
| | | // * 2) 接收不到自定义消息 |
| | | // */ |
| | | // //[BroadcastReceiver] |
| | | // //[IntentFilter(new string []{"cn.jpush.android.intent.REGISTRATION", "cn.jpush.android.intent.MESSAGE_RECEIVED","cn.jpush.android.intent.NOTIFICATION_RECEIVED","cn.jpush.android.intent.NOTIFICATION_OPENED","cn.jpush.android.intent.CONNECTION"})] |
| | | // public class MyReceiver : BroadcastReceiver |
| | | // { |
| | | // static string ACTION = "android.intent.action.BOOT_COMPLETED"; |
| | | |
| | | public override void OnReceive (Context context, Intent intent) |
| | | { |
| | | Bundle bundle = intent.Extras; |
| | | // public override void OnReceive (Context context, Intent intent) |
| | | // { |
| | | // Bundle bundle = intent.Extras; |
| | | |
| | | if (intent.Action == ACTION) { |
| | | //开机自动服务自动启动,PushService是要启动的服务 |
| | | Intent service = new Intent (context, typeof (PushService)); |
| | | context.StartService (service); |
| | | } |
| | | // if (intent.Action == ACTION) { |
| | | // //开机自动服务自动启动,PushService是要启动的服务 |
| | | // Intent service = new Intent (context, typeof (PushService)); |
| | | // context.StartService (service); |
| | | // } |
| | | |
| | | //接收Registration Id |
| | | if (JPushInterface.ActionRegistrationId == intent.Action) { |
| | | string regId = bundle.GetString (JPushInterface.ExtraRegistrationId); |
| | | } |
| | | //用户点击打开了通知 |
| | | else if (JPushInterface.ActionNotificationOpened == intent.Action) { |
| | | Application.IsShowTip = false; |
| | | Intent i = new Intent (context, typeof (Shared.BaseActivity));//Intent intent=new Intent( 起始组件对象 , 目标 Service.class); |
| | | i.PutExtras (bundle); |
| | | i.SetFlags (ActivityFlags.NewTask); |
| | | context.StartActivity (i); |
| | | } else { |
| | | } |
| | | } |
| | | } |
| | | } |
| | | // //接收Registration Id |
| | | // if (JPushInterface.ActionRegistrationId == intent.Action) { |
| | | // string regId = bundle.GetString (JPushInterface.ExtraRegistrationId); |
| | | // } |
| | | // //用户点击打开了通知 |
| | | // else if (JPushInterface.ActionNotificationOpened == intent.Action) { |
| | | // Application.IsShowTip = false; |
| | | // Intent i = new Intent (context, typeof (Shared.BaseActivity));//Intent intent=new Intent( 起始组件对象 , 目标 Service.class); |
| | | // i.PutExtras (bundle); |
| | | // i.SetFlags (ActivityFlags.NewTask); |
| | | // context.StartActivity (i); |
| | | // } else { |
| | | // } |
| | | // } |
| | | // } |
| | | //} |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.hdl.crabtreenew" android:versionName="2.504021" android:versionCode="202004021"> |
| | | <uses-sdk android:minSdkVersion="23" android:targetSdkVersion="26" /> |
| | | <!-- Required 一些系统要求的权限,此处是极光推送需求的权限,如访问网络等--> |
| | | <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.hdl.crabtreenew" android:versionName="2.504142" android:versionCode="202004142"> |
| | | <uses-sdk android:minSdkVersion="23" android:targetSdkVersion="28" /> |
| | | <!-- 在安卓P版本之后,必须要授予FOREGROUND_SERVICE权限,才能够使用前台服务 --> |
| | | <uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> |
| | | <!-- Required 一些系统要求的权限,此处是极光推送需求的权限,如访问网络等 |
| | | <permission android:name="com.hdl.crabtreenew.permission.JPUSH_MESSAGE" android:protectionLevel="signature" /> |
| | | <uses-permission android:name="com.hdl.crabtreenew.permission.JPUSH_MESSAGE" /> |
| | | <uses-permission android:name="com.hdl.crabtreenew.permission.JPUSH_MESSAGE" /> --> |
| | | <uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" /> |
| | | <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> |
| | | <uses-permission android:name="android.permission.WRITE_SETTINGS" /> |
| | |
| | | <uses-feature android:name="android.hardware.wifi" android:required="false" /> |
| | | <uses-feature android:name="android.hardware.bluetooth" android:required="false" /> |
| | | <application android:allowBackup="true" android:icon="@drawable/Icon" android:largeHeap="true" android:label="Crabtree-ON"> |
| | | <activity android:name="com.videogo.UiKitActivity" android:configChanges="orientation|keyboardHidden" android:screenOrientation="portrait" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" /> |
| | | <!-- <activity android:name="com.videogo.UiKitActivity" android:configChanges="orientation|keyboardHidden" android:screenOrientation="portrait" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" /> |
| | | <activity android:name="com.videogo.LoginSelectActivity" android:configChanges="orientation|keyboardHidden" android:screenOrientation="portrait" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" /> |
| | | <activity android:name="com.videogo.main.EzvizWebViewActivity" android:configChanges="orientation|keyboardHidden" android:screenOrientation="portrait" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" /> |
| | | <activity android:name="com.videogo.remoteplayback.list.PlayBackListActivity" android:configChanges="orientation|keyboardHidden|screenSize" android:screenOrientation="nosensor" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" /> |
| | |
| | | <action android:name="com.videogo.action.OAUTH_SUCCESS_ACTION" /> |
| | | <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> |
| | | </intent-filter> |
| | | </receiver> |
| | | </receiver> --> |
| | | <!-- 自动更新 --> |
| | | <provider android:name="android.support.v4.content.FileProvider" android:authorities="com.hdl.crabtreenew.fileProvider" android:grantUriPermissions="true" android:exported="false"> |
| | | <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/file_paths" /> |
| | | </provider> |
| | | <activity android:name="cn.jpush.android.ui.PushActivity" android:configChanges="orientation|keyboardHidden" android:theme="@android:style/Theme.NoTitleBar" android:exported="false"> |
| | | <intent-filter> |
| | | <action android:name="cn.jpush.android.ui.PushActivity" /> |
| | | <category android:name="android.intent.category.DEFAULT" /> |
| | | <category android:name="com.hdl.crabtreenew" /> |
| | | </intent-filter> |
| | | </activity> |
| | | <service android:name="cn.jpush.android.service.PushService" android:process=":mult"> |
| | | <intent-filter> |
| | | <action android:name="cn.jpush.android.intent.REGISTER" /> |
| | | <action android:name="cn.jpush.android.intent.REPORT" /> |
| | | <action android:name="cn.jpush.android.intent.PushService" /> |
| | | <action android:name="cn.jpush.android.intent.PUSH_TIME" /> |
| | | </intent-filter> |
| | | </service> |
| | | <service android:name="cn.jpush.android.service.DaemonService" android:enabled="true" android:exported="true"> |
| | | <intent-filter> |
| | | <action android:name="cn.jpush.android.intent.DaemonService" /> |
| | | <category android:name="com.hdl.crabtreenew" /> |
| | | </intent-filter> |
| | | </service> |
| | | <receiver android:name="cn.jpush.android.service.PushReceiver" android:enabled="true"> |
| | | <intent-filter android:priority="1000"> |
| | | <action android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED_PROXY" /> |
| | | <category android:name="com.hdl.crabtreenew" /> |
| | | </intent-filter> |
| | | <intent-filter> |
| | | <action android:name="android.intent.action.USER_PRESENT" /> |
| | | <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> |
| | | </intent-filter> |
| | | <!-- Optional --> |
| | | <intent-filter> |
| | | <action android:name="android.intent.action.PACKAGE_ADDED" /> |
| | | <action android:name="android.intent.action.PACKAGE_REMOVED" /> |
| | | <data android:scheme="package" /> |
| | | </intent-filter> |
| | | </receiver> |
| | | <activity android:name="cn.jpush.android.ui.PopWinActivity" android:exported="false" /> |
| | | <receiver android:name="cn.jpush.android.service.AlarmReceiver" android:exported="false" /> |
| | | <meta-data android:name="JPUSH_CHANNEL" android:value="developer-default" /> |
| | | <meta-data android:name="JPUSH_APPKEY" android:value="bcb35a1721fb9edfe9756329" /> |
| | | </application> |
| | | </manifest> |
| | |
| | | EndProject
|
| | | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ON.Ios", "ON.Ios\ON.Ios.csproj", "{1D83BF28-BA88-4152-BA41-D7EFE90A5437}"
|
| | | EndProject
|
| | | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Shared.IOS", "Shared.IOS\Shared.IOS.csproj", "{0048AB87-2130-4437-8F01-8CADAB787004}"
|
| | | EndProject
|
| | | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Shared.Droid", "Shared.Droid\Shared.Droid.csproj", "{B7B2BB29-2DF1-4235-A67B-E09C2EC1EBAF}"
|
| | | EndProject
|
| | | Global
|
| | | GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
| | | Debug|iPhoneSimulator = Debug|iPhoneSimulator
|
| | |
| | | {1D83BF28-BA88-4152-BA41-D7EFE90A5437}.Debug|Any CPU.Build.0 = Debug|iPhoneSimulator
|
| | | {1D83BF28-BA88-4152-BA41-D7EFE90A5437}.Release|Any CPU.ActiveCfg = Release|iPhone
|
| | | {1D83BF28-BA88-4152-BA41-D7EFE90A5437}.Release|Any CPU.Build.0 = Release|iPhone
|
| | | {0048AB87-2130-4437-8F01-8CADAB787004}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
| | | {0048AB87-2130-4437-8F01-8CADAB787004}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
| | | {0048AB87-2130-4437-8F01-8CADAB787004}.Release|iPhone.ActiveCfg = Release|Any CPU
|
| | | {0048AB87-2130-4437-8F01-8CADAB787004}.Release|iPhone.Build.0 = Release|Any CPU
|
| | | {0048AB87-2130-4437-8F01-8CADAB787004}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
| | | {0048AB87-2130-4437-8F01-8CADAB787004}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
| | | {0048AB87-2130-4437-8F01-8CADAB787004}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
| | | {0048AB87-2130-4437-8F01-8CADAB787004}.Debug|iPhone.Build.0 = Debug|Any CPU
|
| | | {0048AB87-2130-4437-8F01-8CADAB787004}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
| | | {0048AB87-2130-4437-8F01-8CADAB787004}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
| | | {0048AB87-2130-4437-8F01-8CADAB787004}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
| | | {0048AB87-2130-4437-8F01-8CADAB787004}.Release|Any CPU.Build.0 = Release|Any CPU
|
| | | {B7B2BB29-2DF1-4235-A67B-E09C2EC1EBAF}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
| | | {B7B2BB29-2DF1-4235-A67B-E09C2EC1EBAF}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
| | | {B7B2BB29-2DF1-4235-A67B-E09C2EC1EBAF}.Release|iPhone.ActiveCfg = Release|Any CPU
|
| | | {B7B2BB29-2DF1-4235-A67B-E09C2EC1EBAF}.Release|iPhone.Build.0 = Release|Any CPU
|
| | | {B7B2BB29-2DF1-4235-A67B-E09C2EC1EBAF}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
| | | {B7B2BB29-2DF1-4235-A67B-E09C2EC1EBAF}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
| | | {B7B2BB29-2DF1-4235-A67B-E09C2EC1EBAF}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
| | | {B7B2BB29-2DF1-4235-A67B-E09C2EC1EBAF}.Debug|iPhone.Build.0 = Debug|Any CPU
|
| | | {B7B2BB29-2DF1-4235-A67B-E09C2EC1EBAF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
| | | {B7B2BB29-2DF1-4235-A67B-E09C2EC1EBAF}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
| | | {B7B2BB29-2DF1-4235-A67B-E09C2EC1EBAF}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
| | | {B7B2BB29-2DF1-4235-A67B-E09C2EC1EBAF}.Release|Any CPU.Build.0 = Release|Any CPU
|
| | | EndGlobalSection
|
| | | GlobalSection(MonoDevelopProperties) = preSolution
|
| | | Policies = $0
|
| | |
| | | GetRoomByFilePath (roomFilePath); |
| | | } |
| | | |
| | | |
| | | |
| | | // 房间命名规则 typeof (Room).Name + "_" + etNameBox.Text.Trim (); |
| | | /// <summary> |
| | | /// 根据房间路径恢复房间对象 |
| | |
| | | break; |
| | | } |
| | | } |
| | | //if( IO.FileUtils.ReadFiles ().FindAll ((obj) => obj.Split ('_').Length == 5 && obj.Split ('_') [0] == "Equipment" && obj.Split ('_') [1] == DeviceType.SuperWireless.ToString ()).Count > 0) { |
| | | // UserConfig.Instance.HideDeviceTypes.Remove (SimpleControl.R.MyInternationalizationString.SuperWireless); |
| | | // UserConfig.Instance.HideDeviceTypes.Remove (SimpleControl.R.MyInternationalizationString.Sonos); |
| | | // UserConfig.Instance.SaveUserConfig (); |
| | | //} |
| | | |
| | | return nowRoom; |
| | | } catch { |
| | | return null; |
| | |
| | | } else if (deviceType == DeviceType.LightSwitch.ToString ()){ |
| | | var common = Newtonsoft.Json.JsonConvert.DeserializeObject<LightSwitch> (jsonInfo); |
| | | room.DeviceList.Add (common); |
| | | } else if (deviceType == DeviceType.LightMixSwitch.ToString () ){ |
| | | var common = Newtonsoft.Json.JsonConvert.DeserializeObject<LightMixSwitch> (jsonInfo); |
| | | } |
| | | else if (deviceType == DeviceType.LogicModule.ToString()) |
| | | { |
| | | var common = Newtonsoft.Json.JsonConvert.DeserializeObject<LogicModule>(jsonInfo); |
| | | room.DeviceList.Add (common); |
| | | } else if ( deviceType == DeviceType.LightEnergySocket.ToString ()) { |
| | | var common = Newtonsoft.Json.JsonConvert.DeserializeObject<LightEnergySocket> (jsonInfo); |
| | | } |
| | | else if (deviceType == DeviceType.LightMixSwitch.ToString () ){ |
| | | var common = Newtonsoft.Json.JsonConvert.DeserializeObject<LightMixSwitch> (jsonInfo); |
| | | room.DeviceList.Add (common); |
| | | } else if (deviceType == DeviceType.LightEnergySwitch.ToString ()) { |
| | | var common = Newtonsoft.Json.JsonConvert.DeserializeObject<LightEnergySwitch> (jsonInfo); |
| | |
| | | } else if (deviceType == DeviceType.FreshAir.ToString ()) { |
| | | room.DeviceList.Add (Newtonsoft.Json.JsonConvert.DeserializeObject<FreshAir> (jsonInfo)); |
| | | } |
| | | //else if (deviceType == DeviceType.Thermostat.ToString ()) { |
| | | // room.DeviceList.Add (Newtonsoft.Json.JsonConvert.DeserializeObject<Thermostat> (jsonInfo)); |
| | | //} |
| | | //else if (deviceType == DeviceType.ACMerrill.ToString ()) {//2020-03-10 新增美林空调系统支持 |
| | | // room.DeviceList.Add (Newtonsoft.Json.JsonConvert.DeserializeObject<ACMerrill> (jsonInfo)); |
| | | //} |
| | | //else if (deviceType == DeviceType.DoorLockRelay.ToString ()) { //屏蔽继电器门锁 |
| | | // room.DeviceList.Add (Newtonsoft.Json.JsonConvert.DeserializeObject<LightDoorLock> (jsonInfo)); |
| | | //} |
| | | |
| | | for (int i = UserConfig.Instance.HideDeviceTypes.Count - 1; i >= 0; i--) { |
| | | var hideType = UserConfig.Instance.HideDeviceTypes [i]; |
| | |
| | | /// <summary> |
| | | /// 房间名 |
| | | /// </summary> |
| | | public string Name { get; set; } |
| | | public string Name { |
| | | get; |
| | | set; |
| | | } |
| | | |
| | | public string RoomFilePath { |
| | | get { |
| | |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 不选择到房间时候的背景图 |
| | | /// </summary> |
| | | public string UnSelectedBackgroundImage { |
| | | get; |
| | | set; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 选择到房间的时候背景图 |
| | | /// </summary> |
| | | public string SelectedBackgroundImage { |
| | | get; |
| | | set; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 不选择到房间下拉列表时候的背景图 |
| | | /// </summary> |
| | | public string UnSelectedListBackgroundImage { |
| | | get; |
| | | set; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 选择到房间的下拉列表时候背景图 |
| | | /// </summary> |
| | | public string SelectedListBackgroundImage { |
| | | get; |
| | | set; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 图标 |
| | | /// </summary> |
| | | public string IconPath = "DefaultRoomIcon.png"; |
| | | /// <summary> |
| | | /// 房间背景 |
| | | /// </summary> |
| | |
| | | { |
| | | roomFilePathList = new List<string> (); |
| | | } |
| | | |
| | | if (roomFilePathList.Contains (roomFilePath)) return; |
| | | |
| | | roomFilePathList.Add (roomFilePath); |
| | | |
| | | //var sssddsa = IO.FileUtils.ReadFiles ().FindAll ((obj) => obj.Contains ("Room_")); |
| | |
| | | Save (newRoomFilePath); |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 所有的房间列表路径 |
| | | /// </summary> |
| | | /// <value>The room file path list.</value> |
| | | public static System.Collections.Generic.List<string> FilePathList { |
| | | get { |
| | | var roomBytes = IO.FileUtils.ReadFile (roomListFilePath); |
| | | string roombyteString = System.Text.Encoding.UTF8.GetString (roomBytes); |
| | | var ddds = Newtonsoft.Json.JsonConvert.DeserializeObject<System.Collections.Generic.List<string>> (roombyteString); |
| | | if (ddds == null) |
| | | ddds = new List<string> (); |
| | | if (!ddds.Contains (FavoriteRoom)) { |
| | | ddds.Add (FavoriteRoom); |
| | | if (!IO.FileUtils.Exists (FavoriteRoom)) { |
| | | //默认添加对应的房间 |
| | | new Room () { Name = "" }.Save (FavoriteRoom); |
| | | } |
| | | IO.FileUtils.WriteFileByBytes (roomListFilePath, System.Text.Encoding.UTF8.GetBytes (Newtonsoft.Json.JsonConvert.SerializeObject (ddds))); |
| | | } |
| | | return ddds; |
| | | var rommBytes = IO.FileUtils.ReadFile (roomListFilePath); |
| | | string rommbyteString = System.Text.Encoding.UTF8.GetString (rommBytes); |
| | | return Newtonsoft.Json.JsonConvert.DeserializeObject<System.Collections.Generic.List<string>> (rommbyteString); |
| | | } |
| | | } |
| | | |
| | |
| | | public static void InitAllRoom () |
| | | { |
| | | Lists.Clear (); |
| | | try { |
| | | if (null == Newtonsoft.Json.JsonConvert.DeserializeObject<System.Collections.Generic.List<string>> (System.Text.Encoding.UTF8.GetString (IO.FileUtils.ReadFile (roomListFilePath)))) { |
| | | //初始化房间列表 |
| | | Shared.IO.FileUtils.WriteFileByBytes (roomListFilePath, System.Text.Encoding.UTF8.GetBytes (Newtonsoft.Json.JsonConvert.SerializeObject (new System.Collections.Generic.List<string> ()))); |
| | |
| | | //默认添加对应的房间 |
| | | new Room () { Name = "" }.Save (FavoriteRoom); |
| | | } |
| | | |
| | | IO.FileUtils.WriteFileByBytes (roomListFilePath, System.Text.Encoding.UTF8.GetBytes (Newtonsoft.Json.JsonConvert.SerializeObject (roomFilePathList))); |
| | | |
| | | } |
| | | |
| | | foreach (var roomFilePath in roomFilePathList) { |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | } catch { |
| | | Utlis.WriteLine ("解析房间列表异常"); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | public void SaveLightScene (string roomFilePath, string SceneRemark, Scene scene) |
| | | { |
| | |
| | | instance.HideDeviceTypes.Add (SimpleControl.R.MyInternationalizationString.Sensor); |
| | | instance.HideDeviceTypes.Add (SimpleControl.R.MyInternationalizationString.Environmental); |
| | | instance.HideDeviceTypes.Add (SimpleControl.R.MyInternationalizationString.MusicModel); |
| | | instance.HideDeviceTypes.Add (SimpleControl.R.MyInternationalizationString.UniversalDevice); |
| | | //instance.HideDeviceTypes.Add (SimpleControl.R.MyInternationalizationString.UniversalDevice); |
| | | } else { |
| | | instance = temp; |
| | | } |
| | |
| | | public static void WriteLine (object mes) |
| | | { |
| | | #if DEBUG |
| | | Utlis.WriteLine (mes); |
| | | System.Console.WriteLine (mes); |
| | | #endif |
| | | } |
| | | |
| | |
| | | IO.FileUtils.WriteFileByBytes (Scene.GlobalSceneFilePath, CommonPage.MyEncodingUTF8.GetBytes (Newtonsoft.Json.JsonConvert.SerializeObject (sceneFileList))); |
| | | } |
| | | } |
| | | //Utlis.WriteLine ("接收"+path); |
| | | FileUtils.WriteFileByInputStream (path, inputStream); |
| | | Common common = Newtonsoft.Json.JsonConvert.DeserializeObject<Common> (CommonPage.MyEncodingUTF8.GetString (IO.FileUtils.ReadFile (path))); |
| | | if (common.DeviceTextID == R.MyInternationalizationString.ElectricalControl) { |
| | |
| | | if (UserConfig.Instance.CheckHomeGateways ()) { |
| | | if (!string.IsNullOrEmpty (UserConfig.Instance.CurrentRegion.HomeGateways [0].GatewayUniqueId)) { |
| | | // 5.1能远程,显示CloudUnlink状态,IsRemote设为true开始远程 |
| | | MainPage.AddTip ("Starting remote connection mode..."); |
| | | |
| | | Utlis.ShowAppLinkStatus (AppLinkStatus.CloudUnlink); |
| | | CommonPage.IsRemote = true; |
| | | SmartHome.MqttCommon.IsGatewayOnline = false; |
| | |
| | | |
| | | //public static Button LogoButton = new Button (); |
| | | |
| | | public static string RequestVersion = "20200402"; |
| | | public static string RequestVersion = "20200414"; |
| | | public static UserInfo LoginUser; |
| | | /// <summary> |
| | | /// 是否是管理员权限(变更了,成员的时候,这个也为ture。为什么会声明这样变量,因为有些接口必须使用原来的Token) |
| | |
| | | Gravity = Gravity.Center, |
| | | Width = Application.GetRealWidth (560), |
| | | Height = Application.GetRealHeight (126), |
| | | BackgroundColor = SkinStyle.Current.AddTipButtonColor, |
| | | //BackgroundColor = SkinStyle.Current.AddTipButtonColor, |
| | | BackgroundColor = SkinStyle.Current.MainColor, |
| | | Radius = 10, |
| | | IsMoreLines = true, |
| | | Text = tip, |
| | | TextSize = 16, |
| | | TextColor = 0xFF000000 |
| | | }; |
| | | MainFrameLayout.AddChidren (button); |
| | | button.MouseUpEventHandler += (sender, e) => { |
| | |
| | | static MqttCommon () |
| | | { |
| | | InitMqtt (); |
| | | InitCheckGateway (); |
| | | //InitCheckGateway (); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | if (RemoteMqttClient.ConnectedHandler == null) { |
| | | RemoteMqttClient.UseConnectedHandler (async (e) => { |
| | | IfNeedReadAllDeviceStatus = true; |
| | | mCheckGatewayTime = DateTime.Now; |
| | | CheckGatewayCount = 0; |
| | | bNeedStartTip = true; |
| | | |
| | | Utlis.WriteLine ($"============>Mqtt远程连接成功"); |
| | | if (CommonPage.IsRemote) { |
| | |
| | | } |
| | | MainPage.AddTip ("Remote failed,gateway offline"); |
| | | } else { |
| | | //Remote Connection Succeeded |
| | | |
| | | //网关在线 |
| | | |
| | | //重新一次所有设备状态 |
| | |
| | | Shared.SimpleControl.Phone.UserMiddle.ReadAllDeviceStatus (); |
| | | // |
| | | MqttRemoteSend (new byte [] { 0 }, 3); |
| | | |
| | | if (CommonPage.IsRemote) { |
| | | MainPage.AddTip (Language.StringByID (Shared.SimpleControl.R.MyInternationalizationString.LinkSuccess)); |
| | | } |
| | | } |
| | | |
| | | //if (CurRemoteMACInfo.isValid == "InValid") { |
| | |
| | | } |
| | | #endregion |
| | | //} |
| | | //正在获取连接参数..." |
| | | ShowStartTip (); |
| | | |
| | | mqttRequestParToken = MainPage.LoginUser.LoginTokenString; |
| | | //--第一步:获取mqtt链接参数 |
| | |
| | | Utlis.WriteLine ("============>Mqtt 取消连接,当前住宅没绑定网关"); |
| | | } |
| | | |
| | | } else { |
| | | Utlis.WriteLine ("============>Mqtt GetGatewayPagger 失败"); |
| | | } |
| | | |
| | | } else { |
| | | Utlis.WriteLine ("============>Mqtt GetInfo 失败"); |
| | | } |
| | | } else { |
| | | //如果是分享过来的住宅 走下面流程 |
| | |
| | | { |
| | | |
| | | if (CurRemoteMACInfo != null && mMqttInfo != null) { |
| | | MainPage.AddTip ("Successfully obtained parameters, starting to connect..."); |
| | | |
| | | |
| | | var url = mMqttInfo.connEmqDomainPort; |
| | | var clientId = mMqttInfo.connEmqClientId; |
| | | var username = mMqttInfo.connEmqUserName; |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | // 571=Starting remote connection mode... |
| | | //572=Getting remote connection parameters... |
| | | //573=Successfully obtained parameters, starting to connect... |
| | | /// <summary> |
| | | /// 从开始到连接成功,只提示1次 |
| | | /// </summary> |
| | | static bool bNeedStartTip = true; |
| | | /// <summary> |
| | | /// 正在获取连接参数... |
| | | /// </summary> |
| | | static void ShowStartTip () |
| | | { |
| | | if (bNeedStartTip) { |
| | | bNeedStartTip = false; |
| | | if (CommonPage.IsRemote) { |
| | | MainPage.AddTip ("Getting remote connection parameters..."); |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | ///// <summary> |
| | | ///// |
| | |
| | | if (CheckGatewayCount >= 3) { |
| | | //连续3次没回复,判定网关超时 |
| | | if (MainPage.WiFiStatus == "CrabtreeAdd/CloudLink.png") { |
| | | IsGatewayOnline = false; |
| | | //IsGatewayOnline = false; |
| | | Utlis.ShowAppLinkStatus (AppLinkStatus.CloudOffline); |
| | | MainPage.AddTip ("Gateway offline!"); |
| | | } |
| | |
| | | static void ReceiveCheckGatewayTopic () { |
| | | //Utlis.WriteLine ("============>Mqtt CheckGateway网关回复"); |
| | | SetGatewayOnlineResetCheck (); |
| | | |
| | | |
| | | |
| | | //旧网关方法 |
| | |
| | | if (light.Type == DeviceType.LightDimming || light.Type == DeviceType.LightMixDimming || light.Type == DeviceType.LightDALI) { |
| | | if ((light as LightDimming).CurrentBrightness > 0) |
| | | brighingCount++; |
| | | } else if (light.Type == DeviceType.LightSwitch || light.Type == DeviceType.LightMixSwitch) |
| | | } else if (light.Type == DeviceType.LightSwitch || light.Type == DeviceType.LightMixSwitch || light.Type == DeviceType.LightEnergySwitch) |
| | | if ((light as LightSwitch).CurrentBrightness == 100) |
| | | brighingCount++; |
| | | if (light.Type == DeviceType.LightRGB) |
| | |
| | | }; |
| | | DeviceRowView.AddChidren (tempSwitch); |
| | | if (udDevice.ActionType == 0) { |
| | | tempSwitch.Text = udDevice.ON_Text; |
| | | //tempSwitch.TextID = R.MyInternationalizationString.ON; |
| | | //tempSwitch.Text = udDevice.ON_Text; |
| | | tempSwitch.TextID = R.MyInternationalizationString.ON; |
| | | } else if (udDevice.ActionType == 1) { |
| | | tempSwitch.Text = udDevice.OFF_Text; |
| | | //tempSwitch.TextID = R.MyInternationalizationString.OFF; |
| | | //tempSwitch.Text = udDevice.OFF_Text; |
| | | tempSwitch.TextID = R.MyInternationalizationString.OFF; |
| | | } else if (udDevice.ActionType == 2) { |
| | | tempSwitch.Text = udDevice.OFF_Text; |
| | | //tempSwitch.TextID = R.MyInternationalizationString.OFF; |
| | | //tempSwitch.Text = udDevice.OFF_Text; |
| | | tempSwitch.TextID = R.MyInternationalizationString.OFF; |
| | | |
| | | Button tempON = new Button () { |
| | | Width = Application.GetRealWidth (110), |
| | |
| | | DeviceRowView.BorderColor = SkinStyle.Current.SelectedColor; |
| | | tempON.BorderColor = SkinStyle.Current.SelectedColor; |
| | | }; |
| | | } |
| | | tempSwitch.MouseUpEventHandler += (sender3, e3) => { |
| | | if (udDevice.UniversalType == 0xE01C) { |
| | | if (udDevice.ActionType == 0) { |
| | |
| | | DeviceRowView.BorderColor = SkinStyle.Current.SelectedColor; |
| | | tempSwitch.BorderColor = SkinStyle.Current.SelectedColor; |
| | | }; |
| | | } |
| | | |
| | | #endregion |
| | | } else if (devcieCommon.Type.ToString ().Contains ("Sensor")) { |
| | | #region 传感器 |
| | |
| | | Control.ControlBytesSend (Command.SetCommonSwitch, udDevice.SubnetID, udDevice.DeviceID, new byte [] { udDevice.SendBytes [0], 255 },SendCount.Zero); |
| | | } |
| | | lightView.BorderColor = SkinStyle.Current.Transparent; |
| | | tempON.BorderColor = SkinStyle.Current.BorderColor; |
| | | }; |
| | | tempON.MouseDownEventHandler += (sende3r, e3) => { |
| | | lightView.BorderColor = SkinStyle.Current.SelectedColor; |
| | | tempON.BorderColor = SkinStyle.Current.SelectedColor; |
| | | }; |
| | | } |
| | | tempSiwtch.MouseUpEventHandler += (sender3, e3) => { |
| | |
| | | } |
| | | } |
| | | lightView.BorderColor = SkinStyle.Current.Transparent; |
| | | tempSiwtch.BorderColor = SkinStyle.Current.BorderColor; |
| | | }; |
| | | tempSiwtch.MouseDownEventHandler += (sende3r, e3) => { |
| | | lightView.BorderColor = SkinStyle.Current.SelectedColor; |
| | | tempSiwtch.BorderColor = SkinStyle.Current.SelectedColor; |
| | | }; |
| | | } |
| | | } |
| | |
| | | |
| | | #region ---数据接收--- |
| | | //if (MainPage.LoginUser.AccountType == 2 || MainPage.LoginUser.AccountString == @"464027401@qq.com") { |
| | | // var DataReceptionView = new FrameLayout () { |
| | | // Width = Application.GetRealWidth (640), |
| | | // Height = Application.GetRealHeight (100), |
| | | // BackgroundColor = SkinStyle.Current.ViewColor |
| | | // }; |
| | | // UserMiddle.SettingView.AddChidren (DataReceptionView); |
| | | // var btnDataReceptionIcon = new Button () { |
| | | // X = Application.GetRealWidth (30), |
| | | // Gravity = Gravity.CenterVertical, |
| | | // Width = Application.GetRealWidth (75), |
| | | // Height = Application.GetRealHeight (75), |
| | | // UnSelectedImagePath = "AccountSettings/DataShared.png" |
| | | // }; |
| | | // DataReceptionView.AddChidren (btnDataReceptionIcon); |
| | | // var btnDataReceptionTitle = new Button () { |
| | | // X = Application.GetRealWidth (125), |
| | | // TextAlignment = TextAlignment.CenterLeft, |
| | | // TextID = R.MyInternationalizationString.DataReception, |
| | | // TextColor = SkinStyle.Current.TextColor1, |
| | | // }; |
| | | // DataReceptionView.AddChidren (btnDataReceptionTitle); |
| | | // EventHandler<MouseEventArgs> DataReceptionEventHandler = (sender, e) => { |
| | | // GoData (); |
| | | // }; |
| | | // DataReceptionView.MouseUpEventHandler += DataReceptionEventHandler; |
| | | // btnDataReceptionIcon.MouseUpEventHandler += DataReceptionEventHandler; |
| | | // btnDataReceptionTitle.MouseUpEventHandler += DataReceptionEventHandler; |
| | | // Button btnNull3 = new Button () { |
| | | // BackgroundColor = SkinStyle.Current.MainColor, |
| | | // Height = Application.GetRealHeight (5) |
| | | // }; |
| | | // UserMiddle.SettingView.AddChidren (btnNull3); |
| | | //} |
| | | if (true) { |
| | | var DataReceptionView = new FrameLayout () { |
| | | Width = Application.GetRealWidth (640), |
| | | Height = Application.GetRealHeight (100), |
| | | BackgroundColor = SkinStyle.Current.ViewColor |
| | | }; |
| | | UserMiddle.SettingView.AddChidren (DataReceptionView); |
| | | var btnDataReceptionIcon = new Button () { |
| | | X = Application.GetRealWidth (30), |
| | | Gravity = Gravity.CenterVertical, |
| | | Width = Application.GetRealWidth (75), |
| | | Height = Application.GetRealHeight (75), |
| | | UnSelectedImagePath = "AccountSettings/DataShared.png" |
| | | }; |
| | | DataReceptionView.AddChidren (btnDataReceptionIcon); |
| | | var btnDataReceptionTitle = new Button () { |
| | | X = Application.GetRealWidth (125), |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | TextID = R.MyInternationalizationString.DataReception, |
| | | TextColor = SkinStyle.Current.TextColor1, |
| | | }; |
| | | DataReceptionView.AddChidren (btnDataReceptionTitle); |
| | | EventHandler<MouseEventArgs> DataReceptionEventHandler = (sender, e) => { |
| | | GoData (); |
| | | }; |
| | | DataReceptionView.MouseUpEventHandler += DataReceptionEventHandler; |
| | | btnDataReceptionIcon.MouseUpEventHandler += DataReceptionEventHandler; |
| | | btnDataReceptionTitle.MouseUpEventHandler += DataReceptionEventHandler; |
| | | Button btnNull3 = new Button () { |
| | | BackgroundColor = SkinStyle.Current.MainColor, |
| | | Height = Application.GetRealHeight (5) |
| | | }; |
| | | UserMiddle.SettingView.AddChidren (btnNull3); |
| | | } |
| | | #endregion |
| | | |
| | | |