1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
// **********************************************************************
//
// 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 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" : ""; // With an empty host, the controller will use IceDiscovery.
}
}
}
|