diff options
Diffstat (limited to 'csharp/xamarin/controller/controller.Android/MainActivity.cs')
-rw-r--r-- | csharp/xamarin/controller/controller.Android/MainActivity.cs | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/csharp/xamarin/controller/controller.Android/MainActivity.cs b/csharp/xamarin/controller/controller.Android/MainActivity.cs new file mode 100644 index 00000000000..5540cbd2e99 --- /dev/null +++ b/csharp/xamarin/controller/controller.Android/MainActivity.cs @@ -0,0 +1,108 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +using System; +using Android.App; +using Android.Content.PM; +using Android.OS; +using Android.Util; + +namespace controller.Droid +{ + public class AndroidLogger : Ice.Logger + { + private const string TAG = "ControllerApp"; + private string _prefix; + + public AndroidLogger(string prefix) + { + _prefix = prefix; + } + + public void print(string message) + { + Log.Debug(TAG, message); + } + + public void trace(String category, String message) + { + Log.Verbose(category, message); + } + + public void warning(String message) + { + Log.Warn(TAG, message); + } + + public void error(String message) + { + Log.Error(TAG, message); + } + + public String getPrefix() + { + return _prefix; + } + + public Ice.Logger cloneWithPrefix(string s) + { + return new AndroidLogger(s); + } + } + + [Activity(Label = "controller", + Name = "controller.MainActivity", + Icon = "@mipmap/icon", + Theme = "@style/MainTheme", + MainLauncher = true, + ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)] + public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity, + Test.PlatformAdapter + { + protected override void OnCreate(Bundle bundle) + { + Ice.Util.setProcessLogger(new AndroidLogger("")); + TabLayoutResource = Resource.Layout.Tabbar; + ToolbarResource = Resource.Layout.Toolbar; + + base.OnCreate(bundle); + + global::Xamarin.Forms.Forms.Init(this, bundle); + LoadApplication(new App(this)); + } + + public bool registerProcessController() + { + return true; + } + + public bool isEmulator() + { + return Build.Fingerprint.Contains("vbox") || + Build.Fingerprint.Contains("generic") || + Build.Fingerprint.Contains("unknown") || + Build.Model.Contains("google_sdk") || + Build.Model.Contains("Emulator") || + Build.Model.Contains("Android SDK built for x86") || + Build.Manufacturer.Contains("Genymotion") || + (Build.Brand.StartsWith("generic") && Build.Device.StartsWith("generic")) || + Build.Product.Equals("google_sdk"); + } + + public string processControllerIdentity() + { + return "Android/ProcessController"; + } + + public string processControllerRegistryHost() + { + return isEmulator() ? "10.0.2.2" : "127.0.0.1"; + } + } +} |