GooglePlayServicesComponents icon indicating copy to clipboard operation
GooglePlayServicesComponents copied to clipboard

GPS-FB-AndroidX Duplicate type `Android.Gms.Measurement.AppMeasurement`

Open moljac opened this issue 5 years ago • 4 comments
trafficstars

Google Play Services Version (eg: 8.4.0):

Previews for Google.Play.Services and Firebase with AndroidX dependencies

Build launched with:

git clean -xdf && dotnet cake -t=clean && dotnet cake -t=ci

Describe your Issue:

Steps to Reproduce (with link to sample solution if possible):

git clone --recursive --branch master_based_androidx \
   https://github.com/xamarin/GooglePlayServicesComponents.git
git clean -xdf && dotnet cake -t=clean && dotnet cake -t=ci

Include any relevant Exception Stack traces, build logs, adb logs:

fails during merge target:

INFO: Renaming Java.Interop.__TypeRegistrations into <ea89f0c5-d188-4b7e-9102-ee4a67311049>__TypeRegistrations
ERROR: Duplicate type 
    Android.Gms.Measurement.AppMeasurement
androidx-migrator: An error occurred: 
    `Duplicate type 
        Android.Gms.Measurement.AppMeasurement 
    from 
        Xamarin.Firebase.Analytics.Impl.dll, 
    was also present in 
        Xamarin.GooglePlayServices.Measurement.Impl
        , Version=1.0.0.0, Culture=neutral, PublicKeyToken=null`.
An error occurred when executing task 'merge'.
Error: One or more errors occurred. (Process androidx-migrator exited with code 1.)
	Process androidx-migrator exited with code 1.

Duplicate type/class:

Android.Gms.Measurement.AppMeasurement

DLLs/nugets with duplicate type:

Xamarin.GooglePlayServices.Measurement.Impl
Xamarin.Firebase.Analytics.Impl

Search:

find ./generated -type f -name "Android.Gms.Measurement.AppMeasurement.cs"

results in:

./generated/com.google.firebase.firebase-analytics-impl/obj/Release/monoandroid90/generated/src/Android.Gms.Measurement.AppMeasurement.cs
./generated/com.google.android.gms.play-services-measurement-impl/obj/Release/monoandroid90/generated/src/Android.Gms.Measurement.AppMeasurement.cs

moljac avatar Apr 27 '20 08:04 moljac

Details - managed generated classes:

Xamarin.GooglePlayServices.Measurement.Impl (play-services-measurement-impl)

using System;
using System.Collections.Generic;
using Android.Runtime;
using Java.Interop;

namespace Android.Gms.Measurement {

	// Metadata.xml XPath class reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']"
	[ObsoleteAttribute (@"This class is obsoleted in this android platform")]
	[global::Android.Runtime.Register ("com/google/android/gms/measurement/AppMeasurement", DoNotGenerateAcw=true)]
	public partial class AppMeasurement : global::Java.Lang.Object {


		// Metadata.xml XPath field reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/field[@name='CRASH_ORIGIN']"
		[Register ("CRASH_ORIGIN")]
		public const string CrashOrigin = (string) "crash";

		// Metadata.xml XPath field reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/field[@name='FCM_ORIGIN']"
		[Register ("FCM_ORIGIN")]
		public const string FcmOrigin = (string) "fcm";

		// Metadata.xml XPath field reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/field[@name='FIAM_ORIGIN']"
		[Register ("FIAM_ORIGIN")]
		public const string FiamOrigin = (string) "fiam";
		// Metadata.xml XPath class reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement.ConditionalUserProperty']"
		[global::Android.Runtime.Register ("com/google/android/gms/measurement/AppMeasurement$ConditionalUserProperty", DoNotGenerateAcw=true)]
		public partial class ConditionalUserProperty : global::Java.Lang.Object {



			// Metadata.xml XPath field reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement.ConditionalUserProperty']/field[@name='mActive']"
			[Register ("mActive")]
			public bool MActive {
				get {
					const string __id = "mActive.Z";

					var __v = _members.InstanceFields.GetBooleanValue (__id, this);
					return __v;
				}
				set {
					const string __id = "mActive.Z";

					try {
						_members.InstanceFields.SetValue (__id, this, value);
					} finally {
					}
				}
			}


			// Metadata.xml XPath field reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement.ConditionalUserProperty']/field[@name='mAppId']"
			[Register ("mAppId")]
			public string MAppId {
				get {
					const string __id = "mAppId.Ljava/lang/String;";

					var __v = _members.InstanceFields.GetObjectValue (__id, this);
					return JNIEnv.GetString (__v.Handle, JniHandleOwnership.TransferLocalRef);
				}
				set {
					const string __id = "mAppId.Ljava/lang/String;";

					IntPtr native_value = JNIEnv.NewString (value);
					try {
						_members.InstanceFields.SetValue (__id, this, new JniObjectReference (native_value));
					} finally {
						JNIEnv.DeleteLocalRef (native_value);
					}
				}
			}


			// Metadata.xml XPath field reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement.ConditionalUserProperty']/field[@name='mCreationTimestamp']"
			[Register ("mCreationTimestamp")]
			public long MCreationTimestamp {
				get {
					const string __id = "mCreationTimestamp.J";

					var __v = _members.InstanceFields.GetInt64Value (__id, this);
					return __v;
				}
				set {
					const string __id = "mCreationTimestamp.J";

					try {
						_members.InstanceFields.SetValue (__id, this, value);
					} finally {
					}
				}
			}


			// Metadata.xml XPath field reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement.ConditionalUserProperty']/field[@name='mExpiredEventName']"
			[Register ("mExpiredEventName")]
			public string MExpiredEventName {
				get {
					const string __id = "mExpiredEventName.Ljava/lang/String;";

					var __v = _members.InstanceFields.GetObjectValue (__id, this);
					return JNIEnv.GetString (__v.Handle, JniHandleOwnership.TransferLocalRef);
				}
				set {
					const string __id = "mExpiredEventName.Ljava/lang/String;";

					IntPtr native_value = JNIEnv.NewString (value);
					try {
						_members.InstanceFields.SetValue (__id, this, new JniObjectReference (native_value));
					} finally {
						JNIEnv.DeleteLocalRef (native_value);
					}
				}
			}


			// Metadata.xml XPath field reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement.ConditionalUserProperty']/field[@name='mExpiredEventParams']"
			[Register ("mExpiredEventParams")]
			public global::Android.OS.Bundle MExpiredEventParams {
				get {
					const string __id = "mExpiredEventParams.Landroid/os/Bundle;";

					var __v = _members.InstanceFields.GetObjectValue (__id, this);
					return global::Java.Lang.Object.GetObject<global::Android.OS.Bundle> (__v.Handle, JniHandleOwnership.TransferLocalRef);
				}
				set {
					const string __id = "mExpiredEventParams.Landroid/os/Bundle;";

					IntPtr native_value = global::Android.Runtime.JNIEnv.ToLocalJniHandle (value);
					try {
						_members.InstanceFields.SetValue (__id, this, new JniObjectReference (native_value));
					} finally {
						global::Android.Runtime.JNIEnv.DeleteLocalRef (native_value);
					}
				}
			}


			// Metadata.xml XPath field reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement.ConditionalUserProperty']/field[@name='mName']"
			[Register ("mName")]
			public string MName {
				get {
					const string __id = "mName.Ljava/lang/String;";

					var __v = _members.InstanceFields.GetObjectValue (__id, this);
					return JNIEnv.GetString (__v.Handle, JniHandleOwnership.TransferLocalRef);
				}
				set {
					const string __id = "mName.Ljava/lang/String;";

					IntPtr native_value = JNIEnv.NewString (value);
					try {
						_members.InstanceFields.SetValue (__id, this, new JniObjectReference (native_value));
					} finally {
						JNIEnv.DeleteLocalRef (native_value);
					}
				}
			}


			// Metadata.xml XPath field reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement.ConditionalUserProperty']/field[@name='mOrigin']"
			[Register ("mOrigin")]
			public string MOrigin {
				get {
					const string __id = "mOrigin.Ljava/lang/String;";

					var __v = _members.InstanceFields.GetObjectValue (__id, this);
					return JNIEnv.GetString (__v.Handle, JniHandleOwnership.TransferLocalRef);
				}
				set {
					const string __id = "mOrigin.Ljava/lang/String;";

					IntPtr native_value = JNIEnv.NewString (value);
					try {
						_members.InstanceFields.SetValue (__id, this, new JniObjectReference (native_value));
					} finally {
						JNIEnv.DeleteLocalRef (native_value);
					}
				}
			}


			// Metadata.xml XPath field reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement.ConditionalUserProperty']/field[@name='mTimeToLive']"
			[Register ("mTimeToLive")]
			public long MTimeToLive {
				get {
					const string __id = "mTimeToLive.J";

					var __v = _members.InstanceFields.GetInt64Value (__id, this);
					return __v;
				}
				set {
					const string __id = "mTimeToLive.J";

					try {
						_members.InstanceFields.SetValue (__id, this, value);
					} finally {
					}
				}
			}


			// Metadata.xml XPath field reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement.ConditionalUserProperty']/field[@name='mTimedOutEventName']"
			[Register ("mTimedOutEventName")]
			public string MTimedOutEventName {
				get {
					const string __id = "mTimedOutEventName.Ljava/lang/String;";

					var __v = _members.InstanceFields.GetObjectValue (__id, this);
					return JNIEnv.GetString (__v.Handle, JniHandleOwnership.TransferLocalRef);
				}
				set {
					const string __id = "mTimedOutEventName.Ljava/lang/String;";

					IntPtr native_value = JNIEnv.NewString (value);
					try {
						_members.InstanceFields.SetValue (__id, this, new JniObjectReference (native_value));
					} finally {
						JNIEnv.DeleteLocalRef (native_value);
					}
				}
			}


			// Metadata.xml XPath field reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement.ConditionalUserProperty']/field[@name='mTimedOutEventParams']"
			[Register ("mTimedOutEventParams")]
			public global::Android.OS.Bundle MTimedOutEventParams {
				get {
					const string __id = "mTimedOutEventParams.Landroid/os/Bundle;";

					var __v = _members.InstanceFields.GetObjectValue (__id, this);
					return global::Java.Lang.Object.GetObject<global::Android.OS.Bundle> (__v.Handle, JniHandleOwnership.TransferLocalRef);
				}
				set {
					const string __id = "mTimedOutEventParams.Landroid/os/Bundle;";

					IntPtr native_value = global::Android.Runtime.JNIEnv.ToLocalJniHandle (value);
					try {
						_members.InstanceFields.SetValue (__id, this, new JniObjectReference (native_value));
					} finally {
						global::Android.Runtime.JNIEnv.DeleteLocalRef (native_value);
					}
				}
			}


			// Metadata.xml XPath field reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement.ConditionalUserProperty']/field[@name='mTriggerEventName']"
			[Register ("mTriggerEventName")]
			public string MTriggerEventName {
				get {
					const string __id = "mTriggerEventName.Ljava/lang/String;";

					var __v = _members.InstanceFields.GetObjectValue (__id, this);
					return JNIEnv.GetString (__v.Handle, JniHandleOwnership.TransferLocalRef);
				}
				set {
					const string __id = "mTriggerEventName.Ljava/lang/String;";

					IntPtr native_value = JNIEnv.NewString (value);
					try {
						_members.InstanceFields.SetValue (__id, this, new JniObjectReference (native_value));
					} finally {
						JNIEnv.DeleteLocalRef (native_value);
					}
				}
			}


			// Metadata.xml XPath field reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement.ConditionalUserProperty']/field[@name='mTriggerTimeout']"
			[Register ("mTriggerTimeout")]
			public long MTriggerTimeout {
				get {
					const string __id = "mTriggerTimeout.J";

					var __v = _members.InstanceFields.GetInt64Value (__id, this);
					return __v;
				}
				set {
					const string __id = "mTriggerTimeout.J";

					try {
						_members.InstanceFields.SetValue (__id, this, value);
					} finally {
					}
				}
			}


			// Metadata.xml XPath field reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement.ConditionalUserProperty']/field[@name='mTriggeredEventName']"
			[Register ("mTriggeredEventName")]
			public string MTriggeredEventName {
				get {
					const string __id = "mTriggeredEventName.Ljava/lang/String;";

					var __v = _members.InstanceFields.GetObjectValue (__id, this);
					return JNIEnv.GetString (__v.Handle, JniHandleOwnership.TransferLocalRef);
				}
				set {
					const string __id = "mTriggeredEventName.Ljava/lang/String;";

					IntPtr native_value = JNIEnv.NewString (value);
					try {
						_members.InstanceFields.SetValue (__id, this, new JniObjectReference (native_value));
					} finally {
						JNIEnv.DeleteLocalRef (native_value);
					}
				}
			}


			// Metadata.xml XPath field reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement.ConditionalUserProperty']/field[@name='mTriggeredEventParams']"
			[Register ("mTriggeredEventParams")]
			public global::Android.OS.Bundle MTriggeredEventParams {
				get {
					const string __id = "mTriggeredEventParams.Landroid/os/Bundle;";

					var __v = _members.InstanceFields.GetObjectValue (__id, this);
					return global::Java.Lang.Object.GetObject<global::Android.OS.Bundle> (__v.Handle, JniHandleOwnership.TransferLocalRef);
				}
				set {
					const string __id = "mTriggeredEventParams.Landroid/os/Bundle;";

					IntPtr native_value = global::Android.Runtime.JNIEnv.ToLocalJniHandle (value);
					try {
						_members.InstanceFields.SetValue (__id, this, new JniObjectReference (native_value));
					} finally {
						global::Android.Runtime.JNIEnv.DeleteLocalRef (native_value);
					}
				}
			}


			// Metadata.xml XPath field reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement.ConditionalUserProperty']/field[@name='mTriggeredTimestamp']"
			[Register ("mTriggeredTimestamp")]
			public long MTriggeredTimestamp {
				get {
					const string __id = "mTriggeredTimestamp.J";

					var __v = _members.InstanceFields.GetInt64Value (__id, this);
					return __v;
				}
				set {
					const string __id = "mTriggeredTimestamp.J";

					try {
						_members.InstanceFields.SetValue (__id, this, value);
					} finally {
					}
				}
			}


			// Metadata.xml XPath field reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement.ConditionalUserProperty']/field[@name='mValue']"
			[Register ("mValue")]
			public global::Java.Lang.Object MValue {
				get {
					const string __id = "mValue.Ljava/lang/Object;";

					var __v = _members.InstanceFields.GetObjectValue (__id, this);
					return global::Java.Lang.Object.GetObject<global::Java.Lang.Object> (__v.Handle, JniHandleOwnership.TransferLocalRef);
				}
				set {
					const string __id = "mValue.Ljava/lang/Object;";

					IntPtr native_value = global::Android.Runtime.JNIEnv.ToLocalJniHandle (value);
					try {
						_members.InstanceFields.SetValue (__id, this, new JniObjectReference (native_value));
					} finally {
						global::Android.Runtime.JNIEnv.DeleteLocalRef (native_value);
					}
				}
			}
			static readonly JniPeerMembers _members = new XAPeerMembers ("com/google/android/gms/measurement/AppMeasurement$ConditionalUserProperty", typeof (ConditionalUserProperty));
			internal static new IntPtr class_ref {
				get {
					return _members.JniPeerType.PeerReference.Handle;
				}
			}

			public override global::Java.Interop.JniPeerMembers JniPeerMembers {
				get { return _members; }
			}

			protected override IntPtr ThresholdClass {
				get { return _members.JniPeerType.PeerReference.Handle; }
			}

			protected override global::System.Type ThresholdType {
				get { return _members.ManagedPeerType; }
			}

			protected ConditionalUserProperty (IntPtr javaReference, JniHandleOwnership transfer) : base (javaReference, transfer) {}

			// Metadata.xml XPath constructor reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement.ConditionalUserProperty']/constructor[@name='AppMeasurement.ConditionalUserProperty' and count(parameter)=0]"
			[Register (".ctor", "()V", "")]
			public unsafe ConditionalUserProperty ()
				: base (IntPtr.Zero, JniHandleOwnership.DoNotTransfer)
			{
				const string __id = "()V";

				if (((global::Java.Lang.Object) this).Handle != IntPtr.Zero)
					return;

				try {
					var __r = _members.InstanceMethods.StartCreateInstance (__id, ((object) this).GetType (), null);
					SetHandle (__r.Handle, JniHandleOwnership.TransferLocalRef);
					_members.InstanceMethods.FinishCreateInstance (__id, this, null);
				} finally {
				}
			}

			// Metadata.xml XPath constructor reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement.ConditionalUserProperty']/constructor[@name='AppMeasurement.ConditionalUserProperty' and count(parameter)=1 and parameter[1][@type='com.google.android.gms.measurement.AppMeasurement.ConditionalUserProperty']]"
			[Register (".ctor", "(Lcom/google/android/gms/measurement/AppMeasurement$ConditionalUserProperty;)V", "")]
			public unsafe ConditionalUserProperty (global::Android.Gms.Measurement.AppMeasurement.ConditionalUserProperty p0)
				: base (IntPtr.Zero, JniHandleOwnership.DoNotTransfer)
			{
				const string __id = "(Lcom/google/android/gms/measurement/AppMeasurement$ConditionalUserProperty;)V";

				if (((global::Java.Lang.Object) this).Handle != IntPtr.Zero)
					return;

				try {
					JniArgumentValue* __args = stackalloc JniArgumentValue [1];
					__args [0] = new JniArgumentValue ((p0 == null) ? IntPtr.Zero : ((global::Java.Lang.Object) p0).Handle);
					var __r = _members.InstanceMethods.StartCreateInstance (__id, ((object) this).GetType (), __args);
					SetHandle (__r.Handle, JniHandleOwnership.TransferLocalRef);
					_members.InstanceMethods.FinishCreateInstance (__id, this, __args);
				} finally {
				}
			}

		}

		static readonly JniPeerMembers _members = new XAPeerMembers ("com/google/android/gms/measurement/AppMeasurement", typeof (AppMeasurement));
		internal static new IntPtr class_ref {
			get {
				return _members.JniPeerType.PeerReference.Handle;
			}
		}

		public override global::Java.Interop.JniPeerMembers JniPeerMembers {
			get { return _members; }
		}

		protected override IntPtr ThresholdClass {
			get { return _members.JniPeerType.PeerReference.Handle; }
		}

		protected override global::System.Type ThresholdType {
			get { return _members.ManagedPeerType; }
		}

		protected AppMeasurement (IntPtr javaReference, JniHandleOwnership transfer) : base (javaReference, transfer) {}

		static Delegate cb_getAppInstanceId;
#pragma warning disable 0169
		static Delegate GetGetAppInstanceIdHandler ()
		{
			if (cb_getAppInstanceId == null)
				cb_getAppInstanceId = JNINativeWrapper.CreateDelegate ((Func<IntPtr, IntPtr, IntPtr>) n_GetAppInstanceId);
			return cb_getAppInstanceId;
		}

		static IntPtr n_GetAppInstanceId (IntPtr jnienv, IntPtr native__this)
		{
			global::Android.Gms.Measurement.AppMeasurement __this = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
			return JNIEnv.NewString (__this.AppInstanceId);
		}
#pragma warning restore 0169

		public virtual unsafe string AppInstanceId {
			// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='getAppInstanceId' and count(parameter)=0]"
			[Register ("getAppInstanceId", "()Ljava/lang/String;", "GetGetAppInstanceIdHandler")]
			get {
				const string __id = "getAppInstanceId.()Ljava/lang/String;";
				try {
					var __rm = _members.InstanceMethods.InvokeVirtualObjectMethod (__id, this, null);
					return JNIEnv.GetString (__rm.Handle, JniHandleOwnership.TransferLocalRef);
				} finally {
				}
			}
		}

		static Delegate cb_getBoolean;
#pragma warning disable 0169
		static Delegate GetGetBooleanHandler ()
		{
			if (cb_getBoolean == null)
				cb_getBoolean = JNINativeWrapper.CreateDelegate ((Func<IntPtr, IntPtr, IntPtr>) n_GetBoolean);
			return cb_getBoolean;
		}

		static IntPtr n_GetBoolean (IntPtr jnienv, IntPtr native__this)
		{
			global::Android.Gms.Measurement.AppMeasurement __this = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
			return JNIEnv.ToLocalJniHandle (__this.Boolean);
		}
#pragma warning restore 0169

		public virtual unsafe global::Java.Lang.Boolean Boolean {
			// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='getBoolean' and count(parameter)=0]"
			[Register ("getBoolean", "()Ljava/lang/Boolean;", "GetGetBooleanHandler")]
			get {
				const string __id = "getBoolean.()Ljava/lang/Boolean;";
				try {
					var __rm = _members.InstanceMethods.InvokeVirtualObjectMethod (__id, this, null);
					return global::Java.Lang.Object.GetObject<global::Java.Lang.Boolean> (__rm.Handle, JniHandleOwnership.TransferLocalRef);
				} finally {
				}
			}
		}

		static Delegate cb_getCurrentScreenClass;
#pragma warning disable 0169
		static Delegate GetGetCurrentScreenClassHandler ()
		{
			if (cb_getCurrentScreenClass == null)
				cb_getCurrentScreenClass = JNINativeWrapper.CreateDelegate ((Func<IntPtr, IntPtr, IntPtr>) n_GetCurrentScreenClass);
			return cb_getCurrentScreenClass;
		}

		static IntPtr n_GetCurrentScreenClass (IntPtr jnienv, IntPtr native__this)
		{
			global::Android.Gms.Measurement.AppMeasurement __this = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
			return JNIEnv.NewString (__this.CurrentScreenClass);
		}
#pragma warning restore 0169

		public virtual unsafe string CurrentScreenClass {
			// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='getCurrentScreenClass' and count(parameter)=0]"
			[Register ("getCurrentScreenClass", "()Ljava/lang/String;", "GetGetCurrentScreenClassHandler")]
			get {
				const string __id = "getCurrentScreenClass.()Ljava/lang/String;";
				try {
					var __rm = _members.InstanceMethods.InvokeVirtualObjectMethod (__id, this, null);
					return JNIEnv.GetString (__rm.Handle, JniHandleOwnership.TransferLocalRef);
				} finally {
				}
			}
		}

		static Delegate cb_getCurrentScreenName;
#pragma warning disable 0169
		static Delegate GetGetCurrentScreenNameHandler ()
		{
			if (cb_getCurrentScreenName == null)
				cb_getCurrentScreenName = JNINativeWrapper.CreateDelegate ((Func<IntPtr, IntPtr, IntPtr>) n_GetCurrentScreenName);
			return cb_getCurrentScreenName;
		}

		static IntPtr n_GetCurrentScreenName (IntPtr jnienv, IntPtr native__this)
		{
			global::Android.Gms.Measurement.AppMeasurement __this = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
			return JNIEnv.NewString (__this.CurrentScreenName);
		}
#pragma warning restore 0169

		public virtual unsafe string CurrentScreenName {
			// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='getCurrentScreenName' and count(parameter)=0]"
			[Register ("getCurrentScreenName", "()Ljava/lang/String;", "GetGetCurrentScreenNameHandler")]
			get {
				const string __id = "getCurrentScreenName.()Ljava/lang/String;";
				try {
					var __rm = _members.InstanceMethods.InvokeVirtualObjectMethod (__id, this, null);
					return JNIEnv.GetString (__rm.Handle, JniHandleOwnership.TransferLocalRef);
				} finally {
				}
			}
		}

		static Delegate cb_getDouble;
#pragma warning disable 0169
		static Delegate GetGetDoubleHandler ()
		{
			if (cb_getDouble == null)
				cb_getDouble = JNINativeWrapper.CreateDelegate ((Func<IntPtr, IntPtr, IntPtr>) n_GetDouble);
			return cb_getDouble;
		}

		static IntPtr n_GetDouble (IntPtr jnienv, IntPtr native__this)
		{
			global::Android.Gms.Measurement.AppMeasurement __this = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
			return JNIEnv.ToLocalJniHandle (__this.Double);
		}
#pragma warning restore 0169

		public virtual unsafe global::Java.Lang.Double Double {
			// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='getDouble' and count(parameter)=0]"
			[Register ("getDouble", "()Ljava/lang/Double;", "GetGetDoubleHandler")]
			get {
				const string __id = "getDouble.()Ljava/lang/Double;";
				try {
					var __rm = _members.InstanceMethods.InvokeVirtualObjectMethod (__id, this, null);
					return global::Java.Lang.Object.GetObject<global::Java.Lang.Double> (__rm.Handle, JniHandleOwnership.TransferLocalRef);
				} finally {
				}
			}
		}

		static Delegate cb_getGmpAppId;
#pragma warning disable 0169
		static Delegate GetGetGmpAppIdHandler ()
		{
			if (cb_getGmpAppId == null)
				cb_getGmpAppId = JNINativeWrapper.CreateDelegate ((Func<IntPtr, IntPtr, IntPtr>) n_GetGmpAppId);
			return cb_getGmpAppId;
		}

		static IntPtr n_GetGmpAppId (IntPtr jnienv, IntPtr native__this)
		{
			global::Android.Gms.Measurement.AppMeasurement __this = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
			return JNIEnv.NewString (__this.GmpAppId);
		}
#pragma warning restore 0169

		public virtual unsafe string GmpAppId {
			// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='getGmpAppId' and count(parameter)=0]"
			[Register ("getGmpAppId", "()Ljava/lang/String;", "GetGetGmpAppIdHandler")]
			get {
				const string __id = "getGmpAppId.()Ljava/lang/String;";
				try {
					var __rm = _members.InstanceMethods.InvokeVirtualObjectMethod (__id, this, null);
					return JNIEnv.GetString (__rm.Handle, JniHandleOwnership.TransferLocalRef);
				} finally {
				}
			}
		}

		static Delegate cb_getInteger;
#pragma warning disable 0169
		static Delegate GetGetIntegerHandler ()
		{
			if (cb_getInteger == null)
				cb_getInteger = JNINativeWrapper.CreateDelegate ((Func<IntPtr, IntPtr, IntPtr>) n_GetInteger);
			return cb_getInteger;
		}

		static IntPtr n_GetInteger (IntPtr jnienv, IntPtr native__this)
		{
			global::Android.Gms.Measurement.AppMeasurement __this = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
			return JNIEnv.ToLocalJniHandle (__this.Integer);
		}
#pragma warning restore 0169

		public virtual unsafe global::Java.Lang.Integer Integer {
			// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='getInteger' and count(parameter)=0]"
			[Register ("getInteger", "()Ljava/lang/Integer;", "GetGetIntegerHandler")]
			get {
				const string __id = "getInteger.()Ljava/lang/Integer;";
				try {
					var __rm = _members.InstanceMethods.InvokeVirtualObjectMethod (__id, this, null);
					return global::Java.Lang.Object.GetObject<global::Java.Lang.Integer> (__rm.Handle, JniHandleOwnership.TransferLocalRef);
				} finally {
				}
			}
		}

		static Delegate cb_getLong;
#pragma warning disable 0169
		static Delegate GetGetLongHandler ()
		{
			if (cb_getLong == null)
				cb_getLong = JNINativeWrapper.CreateDelegate ((Func<IntPtr, IntPtr, IntPtr>) n_GetLong);
			return cb_getLong;
		}

		static IntPtr n_GetLong (IntPtr jnienv, IntPtr native__this)
		{
			global::Android.Gms.Measurement.AppMeasurement __this = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
			return JNIEnv.ToLocalJniHandle (__this.Long);
		}
#pragma warning restore 0169

		public virtual unsafe global::Java.Lang.Long Long {
			// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='getLong' and count(parameter)=0]"
			[Register ("getLong", "()Ljava/lang/Long;", "GetGetLongHandler")]
			get {
				const string __id = "getLong.()Ljava/lang/Long;";
				try {
					var __rm = _members.InstanceMethods.InvokeVirtualObjectMethod (__id, this, null);
					return global::Java.Lang.Object.GetObject<global::Java.Lang.Long> (__rm.Handle, JniHandleOwnership.TransferLocalRef);
				} finally {
				}
			}
		}

		static Delegate cb_getString;
#pragma warning disable 0169
		static Delegate GetGetStringHandler ()
		{
			if (cb_getString == null)
				cb_getString = JNINativeWrapper.CreateDelegate ((Func<IntPtr, IntPtr, IntPtr>) n_GetString);
			return cb_getString;
		}

		static IntPtr n_GetString (IntPtr jnienv, IntPtr native__this)
		{
			global::Android.Gms.Measurement.AppMeasurement __this = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
			return JNIEnv.NewString (__this.String);
		}
#pragma warning restore 0169

		public virtual unsafe string String {
			// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='getString' and count(parameter)=0]"
			[Register ("getString", "()Ljava/lang/String;", "GetGetStringHandler")]
			get {
				const string __id = "getString.()Ljava/lang/String;";
				try {
					var __rm = _members.InstanceMethods.InvokeVirtualObjectMethod (__id, this, null);
					return JNIEnv.GetString (__rm.Handle, JniHandleOwnership.TransferLocalRef);
				} finally {
				}
			}
		}

		static Delegate cb_beginAdUnitExposure_Ljava_lang_String_;
#pragma warning disable 0169
		static Delegate GetBeginAdUnitExposure_Ljava_lang_String_Handler ()
		{
			if (cb_beginAdUnitExposure_Ljava_lang_String_ == null)
				cb_beginAdUnitExposure_Ljava_lang_String_ = JNINativeWrapper.CreateDelegate ((Action<IntPtr, IntPtr, IntPtr>) n_BeginAdUnitExposure_Ljava_lang_String_);
			return cb_beginAdUnitExposure_Ljava_lang_String_;
		}

		static void n_BeginAdUnitExposure_Ljava_lang_String_ (IntPtr jnienv, IntPtr native__this, IntPtr native_p0)
		{
			global::Android.Gms.Measurement.AppMeasurement __this = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
			string p0 = JNIEnv.GetString (native_p0, JniHandleOwnership.DoNotTransfer);
			__this.BeginAdUnitExposure (p0);
		}
#pragma warning restore 0169

		// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='beginAdUnitExposure' and count(parameter)=1 and parameter[1][@type='java.lang.String']]"
		[Register ("beginAdUnitExposure", "(Ljava/lang/String;)V", "GetBeginAdUnitExposure_Ljava_lang_String_Handler")]
		public virtual unsafe void BeginAdUnitExposure (string p0)
		{
			const string __id = "beginAdUnitExposure.(Ljava/lang/String;)V";
			IntPtr native_p0 = JNIEnv.NewString (p0);
			try {
				JniArgumentValue* __args = stackalloc JniArgumentValue [1];
				__args [0] = new JniArgumentValue (native_p0);
				_members.InstanceMethods.InvokeVirtualVoidMethod (__id, this, __args);
			} finally {
				JNIEnv.DeleteLocalRef (native_p0);
			}
		}

		static Delegate cb_clearConditionalUserProperty_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_;
#pragma warning disable 0169
		static Delegate GetClearConditionalUserProperty_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_Handler ()
		{
			if (cb_clearConditionalUserProperty_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_ == null)
				cb_clearConditionalUserProperty_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_ = JNINativeWrapper.CreateDelegate ((Action<IntPtr, IntPtr, IntPtr, IntPtr, IntPtr>) n_ClearConditionalUserProperty_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_);
			return cb_clearConditionalUserProperty_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_;
		}

		static void n_ClearConditionalUserProperty_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_ (IntPtr jnienv, IntPtr native__this, IntPtr native_p0, IntPtr native_p1, IntPtr native_p2)
		{
			global::Android.Gms.Measurement.AppMeasurement __this = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
			string p0 = JNIEnv.GetString (native_p0, JniHandleOwnership.DoNotTransfer);
			string p1 = JNIEnv.GetString (native_p1, JniHandleOwnership.DoNotTransfer);
			global::Android.OS.Bundle p2 = global::Java.Lang.Object.GetObject<global::Android.OS.Bundle> (native_p2, JniHandleOwnership.DoNotTransfer);
			__this.ClearConditionalUserProperty (p0, p1, p2);
		}
#pragma warning restore 0169

		// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='clearConditionalUserProperty' and count(parameter)=3 and parameter[1][@type='java.lang.String'] and parameter[2][@type='java.lang.String'] and parameter[3][@type='android.os.Bundle']]"
		[Register ("clearConditionalUserProperty", "(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)V", "GetClearConditionalUserProperty_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_Handler")]
		public virtual unsafe void ClearConditionalUserProperty (string p0, string p1, global::Android.OS.Bundle p2)
		{
			const string __id = "clearConditionalUserProperty.(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)V";
			IntPtr native_p0 = JNIEnv.NewString (p0);
			IntPtr native_p1 = JNIEnv.NewString (p1);
			try {
				JniArgumentValue* __args = stackalloc JniArgumentValue [3];
				__args [0] = new JniArgumentValue (native_p0);
				__args [1] = new JniArgumentValue (native_p1);
				__args [2] = new JniArgumentValue ((p2 == null) ? IntPtr.Zero : ((global::Java.Lang.Object) p2).Handle);
				_members.InstanceMethods.InvokeVirtualVoidMethod (__id, this, __args);
			} finally {
				JNIEnv.DeleteLocalRef (native_p0);
				JNIEnv.DeleteLocalRef (native_p1);
			}
		}

		static Delegate cb_clearConditionalUserPropertyAs_Ljava_lang_String_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_;
#pragma warning disable 0169
		static Delegate GetClearConditionalUserPropertyAs_Ljava_lang_String_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_Handler ()
		{
			if (cb_clearConditionalUserPropertyAs_Ljava_lang_String_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_ == null)
				cb_clearConditionalUserPropertyAs_Ljava_lang_String_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_ = JNINativeWrapper.CreateDelegate ((Action<IntPtr, IntPtr, IntPtr, IntPtr, IntPtr, IntPtr>) n_ClearConditionalUserPropertyAs_Ljava_lang_String_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_);
			return cb_clearConditionalUserPropertyAs_Ljava_lang_String_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_;
		}

		static void n_ClearConditionalUserPropertyAs_Ljava_lang_String_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_ (IntPtr jnienv, IntPtr native__this, IntPtr native_p0, IntPtr native_p1, IntPtr native_p2, IntPtr native_p3)
		{
			global::Android.Gms.Measurement.AppMeasurement __this = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
			string p0 = JNIEnv.GetString (native_p0, JniHandleOwnership.DoNotTransfer);
			string p1 = JNIEnv.GetString (native_p1, JniHandleOwnership.DoNotTransfer);
			string p2 = JNIEnv.GetString (native_p2, JniHandleOwnership.DoNotTransfer);
			global::Android.OS.Bundle p3 = global::Java.Lang.Object.GetObject<global::Android.OS.Bundle> (native_p3, JniHandleOwnership.DoNotTransfer);
			__this.ClearConditionalUserPropertyAs (p0, p1, p2, p3);
		}
#pragma warning restore 0169

		// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='clearConditionalUserPropertyAs' and count(parameter)=4 and parameter[1][@type='java.lang.String'] and parameter[2][@type='java.lang.String'] and parameter[3][@type='java.lang.String'] and parameter[4][@type='android.os.Bundle']]"
		[Register ("clearConditionalUserPropertyAs", "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)V", "GetClearConditionalUserPropertyAs_Ljava_lang_String_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_Handler")]
		protected virtual unsafe void ClearConditionalUserPropertyAs (string p0, string p1, string p2, global::Android.OS.Bundle p3)
		{
			const string __id = "clearConditionalUserPropertyAs.(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)V";
			IntPtr native_p0 = JNIEnv.NewString (p0);
			IntPtr native_p1 = JNIEnv.NewString (p1);
			IntPtr native_p2 = JNIEnv.NewString (p2);
			try {
				JniArgumentValue* __args = stackalloc JniArgumentValue [4];
				__args [0] = new JniArgumentValue (native_p0);
				__args [1] = new JniArgumentValue (native_p1);
				__args [2] = new JniArgumentValue (native_p2);
				__args [3] = new JniArgumentValue ((p3 == null) ? IntPtr.Zero : ((global::Java.Lang.Object) p3).Handle);
				_members.InstanceMethods.InvokeVirtualVoidMethod (__id, this, __args);
			} finally {
				JNIEnv.DeleteLocalRef (native_p0);
				JNIEnv.DeleteLocalRef (native_p1);
				JNIEnv.DeleteLocalRef (native_p2);
			}
		}

		static Delegate cb_endAdUnitExposure_Ljava_lang_String_;
#pragma warning disable 0169
		static Delegate GetEndAdUnitExposure_Ljava_lang_String_Handler ()
		{
			if (cb_endAdUnitExposure_Ljava_lang_String_ == null)
				cb_endAdUnitExposure_Ljava_lang_String_ = JNINativeWrapper.CreateDelegate ((Action<IntPtr, IntPtr, IntPtr>) n_EndAdUnitExposure_Ljava_lang_String_);
			return cb_endAdUnitExposure_Ljava_lang_String_;
		}

		static void n_EndAdUnitExposure_Ljava_lang_String_ (IntPtr jnienv, IntPtr native__this, IntPtr native_p0)
		{
			global::Android.Gms.Measurement.AppMeasurement __this = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
			string p0 = JNIEnv.GetString (native_p0, JniHandleOwnership.DoNotTransfer);
			__this.EndAdUnitExposure (p0);
		}
#pragma warning restore 0169

		// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='endAdUnitExposure' and count(parameter)=1 and parameter[1][@type='java.lang.String']]"
		[Register ("endAdUnitExposure", "(Ljava/lang/String;)V", "GetEndAdUnitExposure_Ljava_lang_String_Handler")]
		public virtual unsafe void EndAdUnitExposure (string p0)
		{
			const string __id = "endAdUnitExposure.(Ljava/lang/String;)V";
			IntPtr native_p0 = JNIEnv.NewString (p0);
			try {
				JniArgumentValue* __args = stackalloc JniArgumentValue [1];
				__args [0] = new JniArgumentValue (native_p0);
				_members.InstanceMethods.InvokeVirtualVoidMethod (__id, this, __args);
			} finally {
				JNIEnv.DeleteLocalRef (native_p0);
			}
		}

		static Delegate cb_generateEventId;
#pragma warning disable 0169
		static Delegate GetGenerateEventIdHandler ()
		{
			if (cb_generateEventId == null)
				cb_generateEventId = JNINativeWrapper.CreateDelegate ((Func<IntPtr, IntPtr, long>) n_GenerateEventId);
			return cb_generateEventId;
		}

		static long n_GenerateEventId (IntPtr jnienv, IntPtr native__this)
		{
			global::Android.Gms.Measurement.AppMeasurement __this = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
			return __this.GenerateEventId ();
		}
#pragma warning restore 0169

		// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='generateEventId' and count(parameter)=0]"
		[Register ("generateEventId", "()J", "GetGenerateEventIdHandler")]
		public virtual unsafe long GenerateEventId ()
		{
			const string __id = "generateEventId.()J";
			try {
				var __rm = _members.InstanceMethods.InvokeVirtualInt64Method (__id, this, null);
				return __rm;
			} finally {
			}
		}

		static Delegate cb_getConditionalUserProperties_Ljava_lang_String_Ljava_lang_String_;
#pragma warning disable 0169
		static Delegate GetGetConditionalUserProperties_Ljava_lang_String_Ljava_lang_String_Handler ()
		{
			if (cb_getConditionalUserProperties_Ljava_lang_String_Ljava_lang_String_ == null)
				cb_getConditionalUserProperties_Ljava_lang_String_Ljava_lang_String_ = JNINativeWrapper.CreateDelegate ((Func<IntPtr, IntPtr, IntPtr, IntPtr, IntPtr>) n_GetConditionalUserProperties_Ljava_lang_String_Ljava_lang_String_);
			return cb_getConditionalUserProperties_Ljava_lang_String_Ljava_lang_String_;
		}

		static IntPtr n_GetConditionalUserProperties_Ljava_lang_String_Ljava_lang_String_ (IntPtr jnienv, IntPtr native__this, IntPtr native_p0, IntPtr native_p1)
		{
			global::Android.Gms.Measurement.AppMeasurement __this = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
			string p0 = JNIEnv.GetString (native_p0, JniHandleOwnership.DoNotTransfer);
			string p1 = JNIEnv.GetString (native_p1, JniHandleOwnership.DoNotTransfer);
			IntPtr __ret = global::Android.Runtime.JavaList<global::Android.Gms.Measurement.AppMeasurement.ConditionalUserProperty>.ToLocalJniHandle (__this.GetConditionalUserProperties (p0, p1));
			return __ret;
		}
#pragma warning restore 0169

		// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='getConditionalUserProperties' and count(parameter)=2 and parameter[1][@type='java.lang.String'] and parameter[2][@type='java.lang.String']]"
		[Register ("getConditionalUserProperties", "(Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;", "GetGetConditionalUserProperties_Ljava_lang_String_Ljava_lang_String_Handler")]
		public virtual unsafe global::System.Collections.Generic.IList<global::Android.Gms.Measurement.AppMeasurement.ConditionalUserProperty> GetConditionalUserProperties (string p0, string p1)
		{
			const string __id = "getConditionalUserProperties.(Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;";
			IntPtr native_p0 = JNIEnv.NewString (p0);
			IntPtr native_p1 = JNIEnv.NewString (p1);
			try {
				JniArgumentValue* __args = stackalloc JniArgumentValue [2];
				__args [0] = new JniArgumentValue (native_p0);
				__args [1] = new JniArgumentValue (native_p1);
				var __rm = _members.InstanceMethods.InvokeVirtualObjectMethod (__id, this, __args);
				return global::Android.Runtime.JavaList<global::Android.Gms.Measurement.AppMeasurement.ConditionalUserProperty>.FromJniHandle (__rm.Handle, JniHandleOwnership.TransferLocalRef);
			} finally {
				JNIEnv.DeleteLocalRef (native_p0);
				JNIEnv.DeleteLocalRef (native_p1);
			}
		}

		static Delegate cb_getConditionalUserPropertiesAs_Ljava_lang_String_Ljava_lang_String_Ljava_lang_String_;
#pragma warning disable 0169
		static Delegate GetGetConditionalUserPropertiesAs_Ljava_lang_String_Ljava_lang_String_Ljava_lang_String_Handler ()
		{
			if (cb_getConditionalUserPropertiesAs_Ljava_lang_String_Ljava_lang_String_Ljava_lang_String_ == null)
				cb_getConditionalUserPropertiesAs_Ljava_lang_String_Ljava_lang_String_Ljava_lang_String_ = JNINativeWrapper.CreateDelegate ((Func<IntPtr, IntPtr, IntPtr, IntPtr, IntPtr, IntPtr>) n_GetConditionalUserPropertiesAs_Ljava_lang_String_Ljava_lang_String_Ljava_lang_String_);
			return cb_getConditionalUserPropertiesAs_Ljava_lang_String_Ljava_lang_String_Ljava_lang_String_;
		}

		static IntPtr n_GetConditionalUserPropertiesAs_Ljava_lang_String_Ljava_lang_String_Ljava_lang_String_ (IntPtr jnienv, IntPtr native__this, IntPtr native_p0, IntPtr native_p1, IntPtr native_p2)
		{
			global::Android.Gms.Measurement.AppMeasurement __this = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
			string p0 = JNIEnv.GetString (native_p0, JniHandleOwnership.DoNotTransfer);
			string p1 = JNIEnv.GetString (native_p1, JniHandleOwnership.DoNotTransfer);
			string p2 = JNIEnv.GetString (native_p2, JniHandleOwnership.DoNotTransfer);
			IntPtr __ret = global::Android.Runtime.JavaList<global::Android.Gms.Measurement.AppMeasurement.ConditionalUserProperty>.ToLocalJniHandle (__this.GetConditionalUserPropertiesAs (p0, p1, p2));
			return __ret;
		}
#pragma warning restore 0169

		// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='getConditionalUserPropertiesAs' and count(parameter)=3 and parameter[1][@type='java.lang.String'] and parameter[2][@type='java.lang.String'] and parameter[3][@type='java.lang.String']]"
		[Register ("getConditionalUserPropertiesAs", "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;", "GetGetConditionalUserPropertiesAs_Ljava_lang_String_Ljava_lang_String_Ljava_lang_String_Handler")]
		protected virtual unsafe global::System.Collections.Generic.IList<global::Android.Gms.Measurement.AppMeasurement.ConditionalUserProperty> GetConditionalUserPropertiesAs (string p0, string p1, string p2)
		{
			const string __id = "getConditionalUserPropertiesAs.(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;";
			IntPtr native_p0 = JNIEnv.NewString (p0);
			IntPtr native_p1 = JNIEnv.NewString (p1);
			IntPtr native_p2 = JNIEnv.NewString (p2);
			try {
				JniArgumentValue* __args = stackalloc JniArgumentValue [3];
				__args [0] = new JniArgumentValue (native_p0);
				__args [1] = new JniArgumentValue (native_p1);
				__args [2] = new JniArgumentValue (native_p2);
				var __rm = _members.InstanceMethods.InvokeVirtualObjectMethod (__id, this, __args);
				return global::Android.Runtime.JavaList<global::Android.Gms.Measurement.AppMeasurement.ConditionalUserProperty>.FromJniHandle (__rm.Handle, JniHandleOwnership.TransferLocalRef);
			} finally {
				JNIEnv.DeleteLocalRef (native_p0);
				JNIEnv.DeleteLocalRef (native_p1);
				JNIEnv.DeleteLocalRef (native_p2);
			}
		}

		// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='getInstance' and count(parameter)=1 and parameter[1][@type='android.content.Context']]"
		[Obsolete (@"deprecated")]
		[Register ("getInstance", "(Landroid/content/Context;)Lcom/google/android/gms/measurement/AppMeasurement;", "")]
		public static unsafe global::Android.Gms.Measurement.AppMeasurement GetInstance (global::Android.Content.Context p0)
		{
			const string __id = "getInstance.(Landroid/content/Context;)Lcom/google/android/gms/measurement/AppMeasurement;";
			try {
				JniArgumentValue* __args = stackalloc JniArgumentValue [1];
				__args [0] = new JniArgumentValue ((p0 == null) ? IntPtr.Zero : ((global::Java.Lang.Object) p0).Handle);
				var __rm = _members.StaticMethods.InvokeObjectMethod (__id, __args);
				return global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement> (__rm.Handle, JniHandleOwnership.TransferLocalRef);
			} finally {
			}
		}

		static Delegate cb_getMaxUserProperties_Ljava_lang_String_;
#pragma warning disable 0169
		static Delegate GetGetMaxUserProperties_Ljava_lang_String_Handler ()
		{
			if (cb_getMaxUserProperties_Ljava_lang_String_ == null)
				cb_getMaxUserProperties_Ljava_lang_String_ = JNINativeWrapper.CreateDelegate ((Func<IntPtr, IntPtr, IntPtr, int>) n_GetMaxUserProperties_Ljava_lang_String_);
			return cb_getMaxUserProperties_Ljava_lang_String_;
		}

		static int n_GetMaxUserProperties_Ljava_lang_String_ (IntPtr jnienv, IntPtr native__this, IntPtr native_p0)
		{
			global::Android.Gms.Measurement.AppMeasurement __this = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
			string p0 = JNIEnv.GetString (native_p0, JniHandleOwnership.DoNotTransfer);
			int __ret = __this.GetMaxUserProperties (p0);
			return __ret;
		}
#pragma warning restore 0169

		// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='getMaxUserProperties' and count(parameter)=1 and parameter[1][@type='java.lang.String']]"
		[Register ("getMaxUserProperties", "(Ljava/lang/String;)I", "GetGetMaxUserProperties_Ljava_lang_String_Handler")]
		public virtual unsafe int GetMaxUserProperties (string p0)
		{
			const string __id = "getMaxUserProperties.(Ljava/lang/String;)I";
			IntPtr native_p0 = JNIEnv.NewString (p0);
			try {
				JniArgumentValue* __args = stackalloc JniArgumentValue [1];
				__args [0] = new JniArgumentValue (native_p0);
				var __rm = _members.InstanceMethods.InvokeVirtualInt32Method (__id, this, __args);
				return __rm;
			} finally {
				JNIEnv.DeleteLocalRef (native_p0);
			}
		}

		static Delegate cb_getUserProperties_Z;
#pragma warning disable 0169
		static Delegate GetGetUserProperties_ZHandler ()
		{
			if (cb_getUserProperties_Z == null)
				cb_getUserProperties_Z = JNINativeWrapper.CreateDelegate ((Func<IntPtr, IntPtr, bool, IntPtr>) n_GetUserProperties_Z);
			return cb_getUserProperties_Z;
		}

		static IntPtr n_GetUserProperties_Z (IntPtr jnienv, IntPtr native__this, bool p0)
		{
			global::Android.Gms.Measurement.AppMeasurement __this = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
			return global::Android.Runtime.JavaDictionary<string, global::Java.Lang.Object>.ToLocalJniHandle (__this.GetUserProperties (p0));
		}
#pragma warning restore 0169

		// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='getUserProperties' and count(parameter)=1 and parameter[1][@type='boolean']]"
		[Register ("getUserProperties", "(Z)Ljava/util/Map;", "GetGetUserProperties_ZHandler")]
		public virtual unsafe global::System.Collections.Generic.IDictionary<string, global::Java.Lang.Object> GetUserProperties (bool p0)
		{
			const string __id = "getUserProperties.(Z)Ljava/util/Map;";
			try {
				JniArgumentValue* __args = stackalloc JniArgumentValue [1];
				__args [0] = new JniArgumentValue (p0);
				var __rm = _members.InstanceMethods.InvokeVirtualObjectMethod (__id, this, __args);
				return global::Android.Runtime.JavaDictionary<string, global::Java.Lang.Object>.FromJniHandle (__rm.Handle, JniHandleOwnership.TransferLocalRef);
			} finally {
			}
		}

		static Delegate cb_getUserProperties_Ljava_lang_String_Ljava_lang_String_Z;
#pragma warning disable 0169
		static Delegate GetGetUserProperties_Ljava_lang_String_Ljava_lang_String_ZHandler ()
		{
			if (cb_getUserProperties_Ljava_lang_String_Ljava_lang_String_Z == null)
				cb_getUserProperties_Ljava_lang_String_Ljava_lang_String_Z = JNINativeWrapper.CreateDelegate ((Func<IntPtr, IntPtr, IntPtr, IntPtr, bool, IntPtr>) n_GetUserProperties_Ljava_lang_String_Ljava_lang_String_Z);
			return cb_getUserProperties_Ljava_lang_String_Ljava_lang_String_Z;
		}

		static IntPtr n_GetUserProperties_Ljava_lang_String_Ljava_lang_String_Z (IntPtr jnienv, IntPtr native__this, IntPtr native_p0, IntPtr native_p1, bool p2)
		{
			global::Android.Gms.Measurement.AppMeasurement __this = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
			string p0 = JNIEnv.GetString (native_p0, JniHandleOwnership.DoNotTransfer);
			string p1 = JNIEnv.GetString (native_p1, JniHandleOwnership.DoNotTransfer);
			IntPtr __ret = global::Android.Runtime.JavaDictionary<string, global::Java.Lang.Object>.ToLocalJniHandle (__this.GetUserProperties (p0, p1, p2));
			return __ret;
		}
#pragma warning restore 0169

		// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='getUserProperties' and count(parameter)=3 and parameter[1][@type='java.lang.String'] and parameter[2][@type='java.lang.String'] and parameter[3][@type='boolean']]"
		[Register ("getUserProperties", "(Ljava/lang/String;Ljava/lang/String;Z)Ljava/util/Map;", "GetGetUserProperties_Ljava_lang_String_Ljava_lang_String_ZHandler")]
		protected virtual unsafe global::System.Collections.Generic.IDictionary<string, global::Java.Lang.Object> GetUserProperties (string p0, string p1, bool p2)
		{
			const string __id = "getUserProperties.(Ljava/lang/String;Ljava/lang/String;Z)Ljava/util/Map;";
			IntPtr native_p0 = JNIEnv.NewString (p0);
			IntPtr native_p1 = JNIEnv.NewString (p1);
			try {
				JniArgumentValue* __args = stackalloc JniArgumentValue [3];
				__args [0] = new JniArgumentValue (native_p0);
				__args [1] = new JniArgumentValue (native_p1);
				__args [2] = new JniArgumentValue (p2);
				var __rm = _members.InstanceMethods.InvokeVirtualObjectMethod (__id, this, __args);
				return global::Android.Runtime.JavaDictionary<string, global::Java.Lang.Object>.FromJniHandle (__rm.Handle, JniHandleOwnership.TransferLocalRef);
			} finally {
				JNIEnv.DeleteLocalRef (native_p0);
				JNIEnv.DeleteLocalRef (native_p1);
			}
		}

		static Delegate cb_getUserPropertiesAs_Ljava_lang_String_Ljava_lang_String_Ljava_lang_String_Z;
#pragma warning disable 0169
		static Delegate GetGetUserPropertiesAs_Ljava_lang_String_Ljava_lang_String_Ljava_lang_String_ZHandler ()
		{
			if (cb_getUserPropertiesAs_Ljava_lang_String_Ljava_lang_String_Ljava_lang_String_Z == null)
				cb_getUserPropertiesAs_Ljava_lang_String_Ljava_lang_String_Ljava_lang_String_Z = JNINativeWrapper.CreateDelegate ((Func<IntPtr, IntPtr, IntPtr, IntPtr, IntPtr, bool, IntPtr>) n_GetUserPropertiesAs_Ljava_lang_String_Ljava_lang_String_Ljava_lang_String_Z);
			return cb_getUserPropertiesAs_Ljava_lang_String_Ljava_lang_String_Ljava_lang_String_Z;
		}

		static IntPtr n_GetUserPropertiesAs_Ljava_lang_String_Ljava_lang_String_Ljava_lang_String_Z (IntPtr jnienv, IntPtr native__this, IntPtr native_p0, IntPtr native_p1, IntPtr native_p2, bool p3)
		{
			global::Android.Gms.Measurement.AppMeasurement __this = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
			string p0 = JNIEnv.GetString (native_p0, JniHandleOwnership.DoNotTransfer);
			string p1 = JNIEnv.GetString (native_p1, JniHandleOwnership.DoNotTransfer);
			string p2 = JNIEnv.GetString (native_p2, JniHandleOwnership.DoNotTransfer);
			IntPtr __ret = global::Android.Runtime.JavaDictionary<string, global::Java.Lang.Object>.ToLocalJniHandle (__this.GetUserPropertiesAs (p0, p1, p2, p3));
			return __ret;
		}
#pragma warning restore 0169

		// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='getUserPropertiesAs' and count(parameter)=4 and parameter[1][@type='java.lang.String'] and parameter[2][@type='java.lang.String'] and parameter[3][@type='java.lang.String'] and parameter[4][@type='boolean']]"
		[Register ("getUserPropertiesAs", "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Ljava/util/Map;", "GetGetUserPropertiesAs_Ljava_lang_String_Ljava_lang_String_Ljava_lang_String_ZHandler")]
		protected virtual unsafe global::System.Collections.Generic.IDictionary<string, global::Java.Lang.Object> GetUserPropertiesAs (string p0, string p1, string p2, bool p3)
		{
			const string __id = "getUserPropertiesAs.(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Ljava/util/Map;";
			IntPtr native_p0 = JNIEnv.NewString (p0);
			IntPtr native_p1 = JNIEnv.NewString (p1);
			IntPtr native_p2 = JNIEnv.NewString (p2);
			try {
				JniArgumentValue* __args = stackalloc JniArgumentValue [4];
				__args [0] = new JniArgumentValue (native_p0);
				__args [1] = new JniArgumentValue (native_p1);
				__args [2] = new JniArgumentValue (native_p2);
				__args [3] = new JniArgumentValue (p3);
				var __rm = _members.InstanceMethods.InvokeVirtualObjectMethod (__id, this, __args);
				return global::Android.Runtime.JavaDictionary<string, global::Java.Lang.Object>.FromJniHandle (__rm.Handle, JniHandleOwnership.TransferLocalRef);
			} finally {
				JNIEnv.DeleteLocalRef (native_p0);
				JNIEnv.DeleteLocalRef (native_p1);
				JNIEnv.DeleteLocalRef (native_p2);
			}
		}

		static Delegate cb_logEventInternal_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_;
#pragma warning disable 0169
		static Delegate GetLogEventInternal_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_Handler ()
		{
			if (cb_logEventInternal_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_ == null)
				cb_logEventInternal_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_ = JNINativeWrapper.CreateDelegate ((Action<IntPtr, IntPtr, IntPtr, IntPtr, IntPtr>) n_LogEventInternal_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_);
			return cb_logEventInternal_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_;
		}

		static void n_LogEventInternal_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_ (IntPtr jnienv, IntPtr native__this, IntPtr native_p0, IntPtr native_p1, IntPtr native_p2)
		{
			global::Android.Gms.Measurement.AppMeasurement __this = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
			string p0 = JNIEnv.GetString (native_p0, JniHandleOwnership.DoNotTransfer);
			string p1 = JNIEnv.GetString (native_p1, JniHandleOwnership.DoNotTransfer);
			global::Android.OS.Bundle p2 = global::Java.Lang.Object.GetObject<global::Android.OS.Bundle> (native_p2, JniHandleOwnership.DoNotTransfer);
			__this.LogEventInternal (p0, p1, p2);
		}
#pragma warning restore 0169

		// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='logEventInternal' and count(parameter)=3 and parameter[1][@type='java.lang.String'] and parameter[2][@type='java.lang.String'] and parameter[3][@type='android.os.Bundle']]"
		[Register ("logEventInternal", "(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)V", "GetLogEventInternal_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_Handler")]
		public virtual unsafe void LogEventInternal (string p0, string p1, global::Android.OS.Bundle p2)
		{
			const string __id = "logEventInternal.(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)V";
			IntPtr native_p0 = JNIEnv.NewString (p0);
			IntPtr native_p1 = JNIEnv.NewString (p1);
			try {
				JniArgumentValue* __args = stackalloc JniArgumentValue [3];
				__args [0] = new JniArgumentValue (native_p0);
				__args [1] = new JniArgumentValue (native_p1);
				__args [2] = new JniArgumentValue ((p2 == null) ? IntPtr.Zero : ((global::Java.Lang.Object) p2).Handle);
				_members.InstanceMethods.InvokeVirtualVoidMethod (__id, this, __args);
			} finally {
				JNIEnv.DeleteLocalRef (native_p0);
				JNIEnv.DeleteLocalRef (native_p1);
			}
		}

		static Delegate cb_logEventInternalNoInterceptor_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_J;
#pragma warning disable 0169
		static Delegate GetLogEventInternalNoInterceptor_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_JHandler ()
		{
			if (cb_logEventInternalNoInterceptor_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_J == null)
				cb_logEventInternalNoInterceptor_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_J = JNINativeWrapper.CreateDelegate ((Action<IntPtr, IntPtr, IntPtr, IntPtr, IntPtr, long>) n_LogEventInternalNoInterceptor_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_J);
			return cb_logEventInternalNoInterceptor_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_J;
		}

		static void n_LogEventInternalNoInterceptor_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_J (IntPtr jnienv, IntPtr native__this, IntPtr native_p0, IntPtr native_p1, IntPtr native_p2, long p3)
		{
			global::Android.Gms.Measurement.AppMeasurement __this = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
			string p0 = JNIEnv.GetString (native_p0, JniHandleOwnership.DoNotTransfer);
			string p1 = JNIEnv.GetString (native_p1, JniHandleOwnership.DoNotTransfer);
			global::Android.OS.Bundle p2 = global::Java.Lang.Object.GetObject<global::Android.OS.Bundle> (native_p2, JniHandleOwnership.DoNotTransfer);
			__this.LogEventInternalNoInterceptor (p0, p1, p2, p3);
		}
#pragma warning restore 0169

		// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='logEventInternalNoInterceptor' and count(parameter)=4 and parameter[1][@type='java.lang.String'] and parameter[2][@type='java.lang.String'] and parameter[3][@type='android.os.Bundle'] and parameter[4][@type='long']]"
		[Register ("logEventInternalNoInterceptor", "(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;J)V", "GetLogEventInternalNoInterceptor_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_JHandler")]
		public virtual unsafe void LogEventInternalNoInterceptor (string p0, string p1, global::Android.OS.Bundle p2, long p3)
		{
			const string __id = "logEventInternalNoInterceptor.(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;J)V";
			IntPtr native_p0 = JNIEnv.NewString (p0);
			IntPtr native_p1 = JNIEnv.NewString (p1);
			try {
				JniArgumentValue* __args = stackalloc JniArgumentValue [4];
				__args [0] = new JniArgumentValue (native_p0);
				__args [1] = new JniArgumentValue (native_p1);
				__args [2] = new JniArgumentValue ((p2 == null) ? IntPtr.Zero : ((global::Java.Lang.Object) p2).Handle);
				__args [3] = new JniArgumentValue (p3);
				_members.InstanceMethods.InvokeVirtualVoidMethod (__id, this, __args);
			} finally {
				JNIEnv.DeleteLocalRef (native_p0);
				JNIEnv.DeleteLocalRef (native_p1);
			}
		}

		static Delegate cb_setConditionalUserProperty_Lcom_google_android_gms_measurement_AppMeasurement_ConditionalUserProperty_;
#pragma warning disable 0169
		static Delegate GetSetConditionalUserProperty_Lcom_google_android_gms_measurement_AppMeasurement_ConditionalUserProperty_Handler ()
		{
			if (cb_setConditionalUserProperty_Lcom_google_android_gms_measurement_AppMeasurement_ConditionalUserProperty_ == null)
				cb_setConditionalUserProperty_Lcom_google_android_gms_measurement_AppMeasurement_ConditionalUserProperty_ = JNINativeWrapper.CreateDelegate ((Action<IntPtr, IntPtr, IntPtr>) n_SetConditionalUserProperty_Lcom_google_android_gms_measurement_AppMeasurement_ConditionalUserProperty_);
			return cb_setConditionalUserProperty_Lcom_google_android_gms_measurement_AppMeasurement_ConditionalUserProperty_;
		}

		static void n_SetConditionalUserProperty_Lcom_google_android_gms_measurement_AppMeasurement_ConditionalUserProperty_ (IntPtr jnienv, IntPtr native__this, IntPtr native_p0)
		{
			global::Android.Gms.Measurement.AppMeasurement __this = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
			global::Android.Gms.Measurement.AppMeasurement.ConditionalUserProperty p0 = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement.ConditionalUserProperty> (native_p0, JniHandleOwnership.DoNotTransfer);
			__this.SetConditionalUserProperty (p0);
		}
#pragma warning restore 0169

		// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='setConditionalUserProperty' and count(parameter)=1 and parameter[1][@type='com.google.android.gms.measurement.AppMeasurement.ConditionalUserProperty']]"
		[Register ("setConditionalUserProperty", "(Lcom/google/android/gms/measurement/AppMeasurement$ConditionalUserProperty;)V", "GetSetConditionalUserProperty_Lcom_google_android_gms_measurement_AppMeasurement_ConditionalUserProperty_Handler")]
		public virtual unsafe void SetConditionalUserProperty (global::Android.Gms.Measurement.AppMeasurement.ConditionalUserProperty p0)
		{
			const string __id = "setConditionalUserProperty.(Lcom/google/android/gms/measurement/AppMeasurement$ConditionalUserProperty;)V";
			try {
				JniArgumentValue* __args = stackalloc JniArgumentValue [1];
				__args [0] = new JniArgumentValue ((p0 == null) ? IntPtr.Zero : ((global::Java.Lang.Object) p0).Handle);
				_members.InstanceMethods.InvokeVirtualVoidMethod (__id, this, __args);
			} finally {
			}
		}

		static Delegate cb_setConditionalUserPropertyAs_Lcom_google_android_gms_measurement_AppMeasurement_ConditionalUserProperty_;
#pragma warning disable 0169
		static Delegate GetSetConditionalUserPropertyAs_Lcom_google_android_gms_measurement_AppMeasurement_ConditionalUserProperty_Handler ()
		{
			if (cb_setConditionalUserPropertyAs_Lcom_google_android_gms_measurement_AppMeasurement_ConditionalUserProperty_ == null)
				cb_setConditionalUserPropertyAs_Lcom_google_android_gms_measurement_AppMeasurement_ConditionalUserProperty_ = JNINativeWrapper.CreateDelegate ((Action<IntPtr, IntPtr, IntPtr>) n_SetConditionalUserPropertyAs_Lcom_google_android_gms_measurement_AppMeasurement_ConditionalUserProperty_);
			return cb_setConditionalUserPropertyAs_Lcom_google_android_gms_measurement_AppMeasurement_ConditionalUserProperty_;
		}

		static void n_SetConditionalUserPropertyAs_Lcom_google_android_gms_measurement_AppMeasurement_ConditionalUserProperty_ (IntPtr jnienv, IntPtr native__this, IntPtr native_p0)
		{
			global::Android.Gms.Measurement.AppMeasurement __this = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
			global::Android.Gms.Measurement.AppMeasurement.ConditionalUserProperty p0 = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement.ConditionalUserProperty> (native_p0, JniHandleOwnership.DoNotTransfer);
			__this.SetConditionalUserPropertyAs (p0);
		}
#pragma warning restore 0169

		// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='setConditionalUserPropertyAs' and count(parameter)=1 and parameter[1][@type='com.google.android.gms.measurement.AppMeasurement.ConditionalUserProperty']]"
		[Register ("setConditionalUserPropertyAs", "(Lcom/google/android/gms/measurement/AppMeasurement$ConditionalUserProperty;)V", "GetSetConditionalUserPropertyAs_Lcom_google_android_gms_measurement_AppMeasurement_ConditionalUserProperty_Handler")]
		protected virtual unsafe void SetConditionalUserPropertyAs (global::Android.Gms.Measurement.AppMeasurement.ConditionalUserProperty p0)
		{
			const string __id = "setConditionalUserPropertyAs.(Lcom/google/android/gms/measurement/AppMeasurement$ConditionalUserProperty;)V";
			try {
				JniArgumentValue* __args = stackalloc JniArgumentValue [1];
				__args [0] = new JniArgumentValue ((p0 == null) ? IntPtr.Zero : ((global::Java.Lang.Object) p0).Handle);
				_members.InstanceMethods.InvokeVirtualVoidMethod (__id, this, __args);
			} finally {
			}
		}

		static Delegate cb_setMeasurementEnabled_Z;
#pragma warning disable 0169
		[Obsolete]
		static Delegate GetSetMeasurementEnabled_ZHandler ()
		{
			if (cb_setMeasurementEnabled_Z == null)
				cb_setMeasurementEnabled_Z = JNINativeWrapper.CreateDelegate ((Action<IntPtr, IntPtr, bool>) n_SetMeasurementEnabled_Z);
			return cb_setMeasurementEnabled_Z;
		}

		[Obsolete]
		static void n_SetMeasurementEnabled_Z (IntPtr jnienv, IntPtr native__this, bool p0)
		{
			global::Android.Gms.Measurement.AppMeasurement __this = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
			__this.SetMeasurementEnabled (p0);
		}
#pragma warning restore 0169

		// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='setMeasurementEnabled' and count(parameter)=1 and parameter[1][@type='boolean']]"
		[Obsolete (@"deprecated")]
		[Register ("setMeasurementEnabled", "(Z)V", "GetSetMeasurementEnabled_ZHandler")]
		public virtual unsafe void SetMeasurementEnabled (bool p0)
		{
			const string __id = "setMeasurementEnabled.(Z)V";
			try {
				JniArgumentValue* __args = stackalloc JniArgumentValue [1];
				__args [0] = new JniArgumentValue (p0);
				_members.InstanceMethods.InvokeVirtualVoidMethod (__id, this, __args);
			} finally {
			}
		}

		static Delegate cb_setUserPropertyInternal_Ljava_lang_String_Ljava_lang_String_Ljava_lang_Object_;
#pragma warning disable 0169
		static Delegate GetSetUserPropertyInternal_Ljava_lang_String_Ljava_lang_String_Ljava_lang_Object_Handler ()
		{
			if (cb_setUserPropertyInternal_Ljava_lang_String_Ljava_lang_String_Ljava_lang_Object_ == null)
				cb_setUserPropertyInternal_Ljava_lang_String_Ljava_lang_String_Ljava_lang_Object_ = JNINativeWrapper.CreateDelegate ((Action<IntPtr, IntPtr, IntPtr, IntPtr, IntPtr>) n_SetUserPropertyInternal_Ljava_lang_String_Ljava_lang_String_Ljava_lang_Object_);
			return cb_setUserPropertyInternal_Ljava_lang_String_Ljava_lang_String_Ljava_lang_Object_;
		}

		static void n_SetUserPropertyInternal_Ljava_lang_String_Ljava_lang_String_Ljava_lang_Object_ (IntPtr jnienv, IntPtr native__this, IntPtr native_p0, IntPtr native_p1, IntPtr native_p2)
		{
			global::Android.Gms.Measurement.AppMeasurement __this = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
			string p0 = JNIEnv.GetString (native_p0, JniHandleOwnership.DoNotTransfer);
			string p1 = JNIEnv.GetString (native_p1, JniHandleOwnership.DoNotTransfer);
			global::Java.Lang.Object p2 = global::Java.Lang.Object.GetObject<global::Java.Lang.Object> (native_p2, JniHandleOwnership.DoNotTransfer);
			__this.SetUserPropertyInternal (p0, p1, p2);
		}
#pragma warning restore 0169

		// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='setUserPropertyInternal' and count(parameter)=3 and parameter[1][@type='java.lang.String'] and parameter[2][@type='java.lang.String'] and parameter[3][@type='java.lang.Object']]"
		[Register ("setUserPropertyInternal", "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V", "GetSetUserPropertyInternal_Ljava_lang_String_Ljava_lang_String_Ljava_lang_Object_Handler")]
		public virtual unsafe void SetUserPropertyInternal (string p0, string p1, global::Java.Lang.Object p2)
		{
			const string __id = "setUserPropertyInternal.(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V";
			IntPtr native_p0 = JNIEnv.NewString (p0);
			IntPtr native_p1 = JNIEnv.NewString (p1);
			try {
				JniArgumentValue* __args = stackalloc JniArgumentValue [3];
				__args [0] = new JniArgumentValue (native_p0);
				__args [1] = new JniArgumentValue (native_p1);
				__args [2] = new JniArgumentValue ((p2 == null) ? IntPtr.Zero : ((global::Java.Lang.Object) p2).Handle);
				_members.InstanceMethods.InvokeVirtualVoidMethod (__id, this, __args);
			} finally {
				JNIEnv.DeleteLocalRef (native_p0);
				JNIEnv.DeleteLocalRef (native_p1);
			}
		}

		// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='zza' and count(parameter)=2 and parameter[1][@type='android.content.Context'] and parameter[2][@type='android.os.Bundle']]"
		[Register ("zza", "(Landroid/content/Context;Landroid/os/Bundle;)Lcom/google/android/gms/measurement/AppMeasurement;", "")]
		public static unsafe global::Android.Gms.Measurement.AppMeasurement Zza (global::Android.Content.Context p0, global::Android.OS.Bundle p1)
		{
			const string __id = "zza.(Landroid/content/Context;Landroid/os/Bundle;)Lcom/google/android/gms/measurement/AppMeasurement;";
			try {
				JniArgumentValue* __args = stackalloc JniArgumentValue [2];
				__args [0] = new JniArgumentValue ((p0 == null) ? IntPtr.Zero : ((global::Java.Lang.Object) p0).Handle);
				__args [1] = new JniArgumentValue ((p1 == null) ? IntPtr.Zero : ((global::Java.Lang.Object) p1).Handle);
				var __rm = _members.StaticMethods.InvokeObjectMethod (__id, __args);
				return global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement> (__rm.Handle, JniHandleOwnership.TransferLocalRef);
			} finally {
			}
		}

		// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='zza' and count(parameter)=1 and parameter[1][@type='boolean']]"
		[Register ("zza", "(Z)V", "")]
		public unsafe void Zza (bool p0)
		{
			const string __id = "zza.(Z)V";
			try {
				JniArgumentValue* __args = stackalloc JniArgumentValue [1];
				__args [0] = new JniArgumentValue (p0);
				_members.InstanceMethods.InvokeNonvirtualVoidMethod (__id, this, __args);
			} finally {
			}
		}

	}
}

Xamarin.Firebase.Analytics.Impl (firebase-analytics-impl)

using System;
using System.Collections.Generic;
using Android.Runtime;
using Java.Interop;

namespace Android.Gms.Measurement {

	// Metadata.xml XPath class reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']"
	[ObsoleteAttribute (@"This class is obsoleted in this android platform")]
	[global::Android.Runtime.Register ("com/google/android/gms/measurement/AppMeasurement", DoNotGenerateAcw=true)]
	public partial class AppMeasurement : global::Java.Lang.Object {


		// Metadata.xml XPath field reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/field[@name='CRASH_ORIGIN']"
		[Register ("CRASH_ORIGIN")]
		public const string CrashOrigin = (string) "crash";

		// Metadata.xml XPath field reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/field[@name='FCM_ORIGIN']"
		[Register ("FCM_ORIGIN")]
		public const string FcmOrigin = (string) "fcm";

		// Metadata.xml XPath field reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/field[@name='FIAM_ORIGIN']"
		[Register ("FIAM_ORIGIN")]
		public const string FiamOrigin = (string) "fiam";
		// Metadata.xml XPath class reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement.ConditionalUserProperty']"
		[global::Android.Runtime.Register ("com/google/android/gms/measurement/AppMeasurement$ConditionalUserProperty", DoNotGenerateAcw=true)]
		public partial class ConditionalUserProperty : global::Java.Lang.Object {



			// Metadata.xml XPath field reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement.ConditionalUserProperty']/field[@name='mActive']"
			[Register ("mActive")]
			public bool MActive {
				get {
					const string __id = "mActive.Z";

					var __v = _members.InstanceFields.GetBooleanValue (__id, this);
					return __v;
				}
				set {
					const string __id = "mActive.Z";

					try {
						_members.InstanceFields.SetValue (__id, this, value);
					} finally {
					}
				}
			}


			// Metadata.xml XPath field reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement.ConditionalUserProperty']/field[@name='mAppId']"
			[Register ("mAppId")]
			public string MAppId {
				get {
					const string __id = "mAppId.Ljava/lang/String;";

					var __v = _members.InstanceFields.GetObjectValue (__id, this);
					return JNIEnv.GetString (__v.Handle, JniHandleOwnership.TransferLocalRef);
				}
				set {
					const string __id = "mAppId.Ljava/lang/String;";

					IntPtr native_value = JNIEnv.NewString (value);
					try {
						_members.InstanceFields.SetValue (__id, this, new JniObjectReference (native_value));
					} finally {
						JNIEnv.DeleteLocalRef (native_value);
					}
				}
			}


			// Metadata.xml XPath field reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement.ConditionalUserProperty']/field[@name='mCreationTimestamp']"
			[Register ("mCreationTimestamp")]
			public long MCreationTimestamp {
				get {
					const string __id = "mCreationTimestamp.J";

					var __v = _members.InstanceFields.GetInt64Value (__id, this);
					return __v;
				}
				set {
					const string __id = "mCreationTimestamp.J";

					try {
						_members.InstanceFields.SetValue (__id, this, value);
					} finally {
					}
				}
			}


			// Metadata.xml XPath field reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement.ConditionalUserProperty']/field[@name='mExpiredEventName']"
			[Register ("mExpiredEventName")]
			public string MExpiredEventName {
				get {
					const string __id = "mExpiredEventName.Ljava/lang/String;";

					var __v = _members.InstanceFields.GetObjectValue (__id, this);
					return JNIEnv.GetString (__v.Handle, JniHandleOwnership.TransferLocalRef);
				}
				set {
					const string __id = "mExpiredEventName.Ljava/lang/String;";

					IntPtr native_value = JNIEnv.NewString (value);
					try {
						_members.InstanceFields.SetValue (__id, this, new JniObjectReference (native_value));
					} finally {
						JNIEnv.DeleteLocalRef (native_value);
					}
				}
			}


			// Metadata.xml XPath field reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement.ConditionalUserProperty']/field[@name='mExpiredEventParams']"
			[Register ("mExpiredEventParams")]
			public global::Android.OS.Bundle MExpiredEventParams {
				get {
					const string __id = "mExpiredEventParams.Landroid/os/Bundle;";

					var __v = _members.InstanceFields.GetObjectValue (__id, this);
					return global::Java.Lang.Object.GetObject<global::Android.OS.Bundle> (__v.Handle, JniHandleOwnership.TransferLocalRef);
				}
				set {
					const string __id = "mExpiredEventParams.Landroid/os/Bundle;";

					IntPtr native_value = global::Android.Runtime.JNIEnv.ToLocalJniHandle (value);
					try {
						_members.InstanceFields.SetValue (__id, this, new JniObjectReference (native_value));
					} finally {
						global::Android.Runtime.JNIEnv.DeleteLocalRef (native_value);
					}
				}
			}


			// Metadata.xml XPath field reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement.ConditionalUserProperty']/field[@name='mName']"
			[Register ("mName")]
			public string MName {
				get {
					const string __id = "mName.Ljava/lang/String;";

					var __v = _members.InstanceFields.GetObjectValue (__id, this);
					return JNIEnv.GetString (__v.Handle, JniHandleOwnership.TransferLocalRef);
				}
				set {
					const string __id = "mName.Ljava/lang/String;";

					IntPtr native_value = JNIEnv.NewString (value);
					try {
						_members.InstanceFields.SetValue (__id, this, new JniObjectReference (native_value));
					} finally {
						JNIEnv.DeleteLocalRef (native_value);
					}
				}
			}


			// Metadata.xml XPath field reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement.ConditionalUserProperty']/field[@name='mOrigin']"
			[Register ("mOrigin")]
			public string MOrigin {
				get {
					const string __id = "mOrigin.Ljava/lang/String;";

					var __v = _members.InstanceFields.GetObjectValue (__id, this);
					return JNIEnv.GetString (__v.Handle, JniHandleOwnership.TransferLocalRef);
				}
				set {
					const string __id = "mOrigin.Ljava/lang/String;";

					IntPtr native_value = JNIEnv.NewString (value);
					try {
						_members.InstanceFields.SetValue (__id, this, new JniObjectReference (native_value));
					} finally {
						JNIEnv.DeleteLocalRef (native_value);
					}
				}
			}


			// Metadata.xml XPath field reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement.ConditionalUserProperty']/field[@name='mTimeToLive']"
			[Register ("mTimeToLive")]
			public long MTimeToLive {
				get {
					const string __id = "mTimeToLive.J";

					var __v = _members.InstanceFields.GetInt64Value (__id, this);
					return __v;
				}
				set {
					const string __id = "mTimeToLive.J";

					try {
						_members.InstanceFields.SetValue (__id, this, value);
					} finally {
					}
				}
			}


			// Metadata.xml XPath field reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement.ConditionalUserProperty']/field[@name='mTimedOutEventName']"
			[Register ("mTimedOutEventName")]
			public string MTimedOutEventName {
				get {
					const string __id = "mTimedOutEventName.Ljava/lang/String;";

					var __v = _members.InstanceFields.GetObjectValue (__id, this);
					return JNIEnv.GetString (__v.Handle, JniHandleOwnership.TransferLocalRef);
				}
				set {
					const string __id = "mTimedOutEventName.Ljava/lang/String;";

					IntPtr native_value = JNIEnv.NewString (value);
					try {
						_members.InstanceFields.SetValue (__id, this, new JniObjectReference (native_value));
					} finally {
						JNIEnv.DeleteLocalRef (native_value);
					}
				}
			}


			// Metadata.xml XPath field reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement.ConditionalUserProperty']/field[@name='mTimedOutEventParams']"
			[Register ("mTimedOutEventParams")]
			public global::Android.OS.Bundle MTimedOutEventParams {
				get {
					const string __id = "mTimedOutEventParams.Landroid/os/Bundle;";

					var __v = _members.InstanceFields.GetObjectValue (__id, this);
					return global::Java.Lang.Object.GetObject<global::Android.OS.Bundle> (__v.Handle, JniHandleOwnership.TransferLocalRef);
				}
				set {
					const string __id = "mTimedOutEventParams.Landroid/os/Bundle;";

					IntPtr native_value = global::Android.Runtime.JNIEnv.ToLocalJniHandle (value);
					try {
						_members.InstanceFields.SetValue (__id, this, new JniObjectReference (native_value));
					} finally {
						global::Android.Runtime.JNIEnv.DeleteLocalRef (native_value);
					}
				}
			}


			// Metadata.xml XPath field reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement.ConditionalUserProperty']/field[@name='mTriggerEventName']"
			[Register ("mTriggerEventName")]
			public string MTriggerEventName {
				get {
					const string __id = "mTriggerEventName.Ljava/lang/String;";

					var __v = _members.InstanceFields.GetObjectValue (__id, this);
					return JNIEnv.GetString (__v.Handle, JniHandleOwnership.TransferLocalRef);
				}
				set {
					const string __id = "mTriggerEventName.Ljava/lang/String;";

					IntPtr native_value = JNIEnv.NewString (value);
					try {
						_members.InstanceFields.SetValue (__id, this, new JniObjectReference (native_value));
					} finally {
						JNIEnv.DeleteLocalRef (native_value);
					}
				}
			}


			// Metadata.xml XPath field reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement.ConditionalUserProperty']/field[@name='mTriggerTimeout']"
			[Register ("mTriggerTimeout")]
			public long MTriggerTimeout {
				get {
					const string __id = "mTriggerTimeout.J";

					var __v = _members.InstanceFields.GetInt64Value (__id, this);
					return __v;
				}
				set {
					const string __id = "mTriggerTimeout.J";

					try {
						_members.InstanceFields.SetValue (__id, this, value);
					} finally {
					}
				}
			}


			// Metadata.xml XPath field reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement.ConditionalUserProperty']/field[@name='mTriggeredEventName']"
			[Register ("mTriggeredEventName")]
			public string MTriggeredEventName {
				get {
					const string __id = "mTriggeredEventName.Ljava/lang/String;";

					var __v = _members.InstanceFields.GetObjectValue (__id, this);
					return JNIEnv.GetString (__v.Handle, JniHandleOwnership.TransferLocalRef);
				}
				set {
					const string __id = "mTriggeredEventName.Ljava/lang/String;";

					IntPtr native_value = JNIEnv.NewString (value);
					try {
						_members.InstanceFields.SetValue (__id, this, new JniObjectReference (native_value));
					} finally {
						JNIEnv.DeleteLocalRef (native_value);
					}
				}
			}


			// Metadata.xml XPath field reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement.ConditionalUserProperty']/field[@name='mTriggeredEventParams']"
			[Register ("mTriggeredEventParams")]
			public global::Android.OS.Bundle MTriggeredEventParams {
				get {
					const string __id = "mTriggeredEventParams.Landroid/os/Bundle;";

					var __v = _members.InstanceFields.GetObjectValue (__id, this);
					return global::Java.Lang.Object.GetObject<global::Android.OS.Bundle> (__v.Handle, JniHandleOwnership.TransferLocalRef);
				}
				set {
					const string __id = "mTriggeredEventParams.Landroid/os/Bundle;";

					IntPtr native_value = global::Android.Runtime.JNIEnv.ToLocalJniHandle (value);
					try {
						_members.InstanceFields.SetValue (__id, this, new JniObjectReference (native_value));
					} finally {
						global::Android.Runtime.JNIEnv.DeleteLocalRef (native_value);
					}
				}
			}


			// Metadata.xml XPath field reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement.ConditionalUserProperty']/field[@name='mTriggeredTimestamp']"
			[Register ("mTriggeredTimestamp")]
			public long MTriggeredTimestamp {
				get {
					const string __id = "mTriggeredTimestamp.J";

					var __v = _members.InstanceFields.GetInt64Value (__id, this);
					return __v;
				}
				set {
					const string __id = "mTriggeredTimestamp.J";

					try {
						_members.InstanceFields.SetValue (__id, this, value);
					} finally {
					}
				}
			}


			// Metadata.xml XPath field reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement.ConditionalUserProperty']/field[@name='mValue']"
			[Register ("mValue")]
			public global::Java.Lang.Object MValue {
				get {
					const string __id = "mValue.Ljava/lang/Object;";

					var __v = _members.InstanceFields.GetObjectValue (__id, this);
					return global::Java.Lang.Object.GetObject<global::Java.Lang.Object> (__v.Handle, JniHandleOwnership.TransferLocalRef);
				}
				set {
					const string __id = "mValue.Ljava/lang/Object;";

					IntPtr native_value = global::Android.Runtime.JNIEnv.ToLocalJniHandle (value);
					try {
						_members.InstanceFields.SetValue (__id, this, new JniObjectReference (native_value));
					} finally {
						global::Android.Runtime.JNIEnv.DeleteLocalRef (native_value);
					}
				}
			}
			static readonly JniPeerMembers _members = new XAPeerMembers ("com/google/android/gms/measurement/AppMeasurement$ConditionalUserProperty", typeof (ConditionalUserProperty));
			internal static new IntPtr class_ref {
				get {
					return _members.JniPeerType.PeerReference.Handle;
				}
			}

			public override global::Java.Interop.JniPeerMembers JniPeerMembers {
				get { return _members; }
			}

			protected override IntPtr ThresholdClass {
				get { return _members.JniPeerType.PeerReference.Handle; }
			}

			protected override global::System.Type ThresholdType {
				get { return _members.ManagedPeerType; }
			}

			protected ConditionalUserProperty (IntPtr javaReference, JniHandleOwnership transfer) : base (javaReference, transfer) {}

			// Metadata.xml XPath constructor reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement.ConditionalUserProperty']/constructor[@name='AppMeasurement.ConditionalUserProperty' and count(parameter)=0]"
			[Register (".ctor", "()V", "")]
			public unsafe ConditionalUserProperty ()
				: base (IntPtr.Zero, JniHandleOwnership.DoNotTransfer)
			{
				const string __id = "()V";

				if (((global::Java.Lang.Object) this).Handle != IntPtr.Zero)
					return;

				try {
					var __r = _members.InstanceMethods.StartCreateInstance (__id, ((object) this).GetType (), null);
					SetHandle (__r.Handle, JniHandleOwnership.TransferLocalRef);
					_members.InstanceMethods.FinishCreateInstance (__id, this, null);
				} finally {
				}
			}

			// Metadata.xml XPath constructor reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement.ConditionalUserProperty']/constructor[@name='AppMeasurement.ConditionalUserProperty' and count(parameter)=1 and parameter[1][@type='com.google.android.gms.measurement.AppMeasurement.ConditionalUserProperty']]"
			[Register (".ctor", "(Lcom/google/android/gms/measurement/AppMeasurement$ConditionalUserProperty;)V", "")]
			public unsafe ConditionalUserProperty (global::Android.Gms.Measurement.AppMeasurement.ConditionalUserProperty p0)
				: base (IntPtr.Zero, JniHandleOwnership.DoNotTransfer)
			{
				const string __id = "(Lcom/google/android/gms/measurement/AppMeasurement$ConditionalUserProperty;)V";

				if (((global::Java.Lang.Object) this).Handle != IntPtr.Zero)
					return;

				try {
					JniArgumentValue* __args = stackalloc JniArgumentValue [1];
					__args [0] = new JniArgumentValue ((p0 == null) ? IntPtr.Zero : ((global::Java.Lang.Object) p0).Handle);
					var __r = _members.InstanceMethods.StartCreateInstance (__id, ((object) this).GetType (), __args);
					SetHandle (__r.Handle, JniHandleOwnership.TransferLocalRef);
					_members.InstanceMethods.FinishCreateInstance (__id, this, __args);
				} finally {
				}
			}

		}

		// Metadata.xml XPath class reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement.Event']"
		[global::Android.Runtime.Register ("com/google/android/gms/measurement/AppMeasurement$Event", DoNotGenerateAcw=true)]
		public sealed partial class Event : global::Java.Lang.Object {


			// Metadata.xml XPath field reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement.Event']/field[@name='AD_REWARD']"
			[Register ("AD_REWARD")]
			public const string AdReward = (string) "_ar";

			// Metadata.xml XPath field reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement.Event']/field[@name='APP_EXCEPTION']"
			[Register ("APP_EXCEPTION")]
			public const string AppException = (string) "_ae";
			static readonly JniPeerMembers _members = new XAPeerMembers ("com/google/android/gms/measurement/AppMeasurement$Event", typeof (Event));
			internal static new IntPtr class_ref {
				get {
					return _members.JniPeerType.PeerReference.Handle;
				}
			}

			public override global::Java.Interop.JniPeerMembers JniPeerMembers {
				get { return _members; }
			}

			protected override IntPtr ThresholdClass {
				get { return _members.JniPeerType.PeerReference.Handle; }
			}

			protected override global::System.Type ThresholdType {
				get { return _members.ManagedPeerType; }
			}

			internal Event (IntPtr javaReference, JniHandleOwnership transfer) : base (javaReference, transfer) {}

		}

		// Metadata.xml XPath interface reference: path="/api/package[@name='com.google.android.gms.measurement']/interface[@name='AppMeasurement.EventInterceptor']"
		[Register ("com/google/android/gms/measurement/AppMeasurement$EventInterceptor", "", "Android.Gms.Measurement.AppMeasurement/IEventInterceptorInvoker")]
		public partial interface IEventInterceptor : IJavaObject, IJavaPeerable {

			// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/interface[@name='AppMeasurement.EventInterceptor']/method[@name='interceptEvent' and count(parameter)=4 and parameter[1][@type='java.lang.String'] and parameter[2][@type='java.lang.String'] and parameter[3][@type='android.os.Bundle'] and parameter[4][@type='long']]"
			[Register ("interceptEvent", "(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;J)V", "GetInterceptEvent_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_JHandler:Android.Gms.Measurement.AppMeasurement/IEventInterceptorInvoker, Xamarin.Firebase.Analytics.Impl")]
			void InterceptEvent (string p0, string p1, global::Android.OS.Bundle p2, long p3);

		}

		[global::Android.Runtime.Register ("com/google/android/gms/measurement/AppMeasurement$EventInterceptor", DoNotGenerateAcw=true)]
		internal partial class IEventInterceptorInvoker : global::Java.Lang.Object, IEventInterceptor {

			static readonly JniPeerMembers _members = new XAPeerMembers ("com/google/android/gms/measurement/AppMeasurement$EventInterceptor", typeof (IEventInterceptorInvoker));

			static IntPtr java_class_ref {
				get { return _members.JniPeerType.PeerReference.Handle; }
			}

			public override global::Java.Interop.JniPeerMembers JniPeerMembers {
				get { return _members; }
			}

			protected override IntPtr ThresholdClass {
				get { return class_ref; }
			}

			protected override global::System.Type ThresholdType {
				get { return _members.ManagedPeerType; }
			}

			IntPtr class_ref;

			public static IEventInterceptor GetObject (IntPtr handle, JniHandleOwnership transfer)
			{
				return global::Java.Lang.Object.GetObject<IEventInterceptor> (handle, transfer);
			}

			static IntPtr Validate (IntPtr handle)
			{
				if (!JNIEnv.IsInstanceOf (handle, java_class_ref))
					throw new InvalidCastException (string.Format ("Unable to convert instance of type '{0}' to type '{1}'.",
								JNIEnv.GetClassNameFromInstance (handle), "com.google.android.gms.measurement.AppMeasurement.EventInterceptor"));
				return handle;
			}

			protected override void Dispose (bool disposing)
			{
				if (this.class_ref != IntPtr.Zero)
					JNIEnv.DeleteGlobalRef (this.class_ref);
				this.class_ref = IntPtr.Zero;
				base.Dispose (disposing);
			}

			public IEventInterceptorInvoker (IntPtr handle, JniHandleOwnership transfer) : base (Validate (handle), transfer)
			{
				IntPtr local_ref = JNIEnv.GetObjectClass (((global::Java.Lang.Object) this).Handle);
				this.class_ref = JNIEnv.NewGlobalRef (local_ref);
				JNIEnv.DeleteLocalRef (local_ref);
			}

			static Delegate cb_interceptEvent_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_J;
#pragma warning disable 0169
			static Delegate GetInterceptEvent_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_JHandler ()
			{
				if (cb_interceptEvent_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_J == null)
					cb_interceptEvent_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_J = JNINativeWrapper.CreateDelegate ((Action<IntPtr, IntPtr, IntPtr, IntPtr, IntPtr, long>) n_InterceptEvent_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_J);
				return cb_interceptEvent_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_J;
			}

			static void n_InterceptEvent_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_J (IntPtr jnienv, IntPtr native__this, IntPtr native_p0, IntPtr native_p1, IntPtr native_p2, long p3)
			{
				global::Android.Gms.Measurement.AppMeasurement.IEventInterceptor __this = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement.IEventInterceptor> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
				string p0 = JNIEnv.GetString (native_p0, JniHandleOwnership.DoNotTransfer);
				string p1 = JNIEnv.GetString (native_p1, JniHandleOwnership.DoNotTransfer);
				global::Android.OS.Bundle p2 = global::Java.Lang.Object.GetObject<global::Android.OS.Bundle> (native_p2, JniHandleOwnership.DoNotTransfer);
				__this.InterceptEvent (p0, p1, p2, p3);
			}
#pragma warning restore 0169

			IntPtr id_interceptEvent_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_J;
			public unsafe void InterceptEvent (string p0, string p1, global::Android.OS.Bundle p2, long p3)
			{
				if (id_interceptEvent_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_J == IntPtr.Zero)
					id_interceptEvent_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_J = JNIEnv.GetMethodID (class_ref, "interceptEvent", "(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;J)V");
				IntPtr native_p0 = JNIEnv.NewString (p0);
				IntPtr native_p1 = JNIEnv.NewString (p1);
				JValue* __args = stackalloc JValue [4];
				__args [0] = new JValue (native_p0);
				__args [1] = new JValue (native_p1);
				__args [2] = new JValue ((p2 == null) ? IntPtr.Zero : ((global::Java.Lang.Object) p2).Handle);
				__args [3] = new JValue (p3);
				JNIEnv.CallVoidMethod (((global::Java.Lang.Object) this).Handle, id_interceptEvent_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_J, __args);
				JNIEnv.DeleteLocalRef (native_p0);
				JNIEnv.DeleteLocalRef (native_p1);
			}

		}


		// Metadata.xml XPath interface reference: path="/api/package[@name='com.google.android.gms.measurement']/interface[@name='AppMeasurement.OnEventListener']"
		[Register ("com/google/android/gms/measurement/AppMeasurement$OnEventListener", "", "Android.Gms.Measurement.AppMeasurement/IOnEventListenerInvoker")]
		public partial interface IOnEventListener : IJavaObject, IJavaPeerable {

			// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/interface[@name='AppMeasurement.OnEventListener']/method[@name='onEvent' and count(parameter)=4 and parameter[1][@type='java.lang.String'] and parameter[2][@type='java.lang.String'] and parameter[3][@type='android.os.Bundle'] and parameter[4][@type='long']]"
			[Register ("onEvent", "(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;J)V", "GetOnEvent_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_JHandler:Android.Gms.Measurement.AppMeasurement/IOnEventListenerInvoker, Xamarin.Firebase.Analytics.Impl")]
			void OnEvent (string p0, string p1, global::Android.OS.Bundle p2, long p3);

		}

		[global::Android.Runtime.Register ("com/google/android/gms/measurement/AppMeasurement$OnEventListener", DoNotGenerateAcw=true)]
		internal partial class IOnEventListenerInvoker : global::Java.Lang.Object, IOnEventListener {

			static readonly JniPeerMembers _members = new XAPeerMembers ("com/google/android/gms/measurement/AppMeasurement$OnEventListener", typeof (IOnEventListenerInvoker));

			static IntPtr java_class_ref {
				get { return _members.JniPeerType.PeerReference.Handle; }
			}

			public override global::Java.Interop.JniPeerMembers JniPeerMembers {
				get { return _members; }
			}

			protected override IntPtr ThresholdClass {
				get { return class_ref; }
			}

			protected override global::System.Type ThresholdType {
				get { return _members.ManagedPeerType; }
			}

			IntPtr class_ref;

			public static IOnEventListener GetObject (IntPtr handle, JniHandleOwnership transfer)
			{
				return global::Java.Lang.Object.GetObject<IOnEventListener> (handle, transfer);
			}

			static IntPtr Validate (IntPtr handle)
			{
				if (!JNIEnv.IsInstanceOf (handle, java_class_ref))
					throw new InvalidCastException (string.Format ("Unable to convert instance of type '{0}' to type '{1}'.",
								JNIEnv.GetClassNameFromInstance (handle), "com.google.android.gms.measurement.AppMeasurement.OnEventListener"));
				return handle;
			}

			protected override void Dispose (bool disposing)
			{
				if (this.class_ref != IntPtr.Zero)
					JNIEnv.DeleteGlobalRef (this.class_ref);
				this.class_ref = IntPtr.Zero;
				base.Dispose (disposing);
			}

			public IOnEventListenerInvoker (IntPtr handle, JniHandleOwnership transfer) : base (Validate (handle), transfer)
			{
				IntPtr local_ref = JNIEnv.GetObjectClass (((global::Java.Lang.Object) this).Handle);
				this.class_ref = JNIEnv.NewGlobalRef (local_ref);
				JNIEnv.DeleteLocalRef (local_ref);
			}

			static Delegate cb_onEvent_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_J;
#pragma warning disable 0169
			static Delegate GetOnEvent_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_JHandler ()
			{
				if (cb_onEvent_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_J == null)
					cb_onEvent_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_J = JNINativeWrapper.CreateDelegate ((Action<IntPtr, IntPtr, IntPtr, IntPtr, IntPtr, long>) n_OnEvent_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_J);
				return cb_onEvent_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_J;
			}

			static void n_OnEvent_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_J (IntPtr jnienv, IntPtr native__this, IntPtr native_p0, IntPtr native_p1, IntPtr native_p2, long p3)
			{
				global::Android.Gms.Measurement.AppMeasurement.IOnEventListener __this = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement.IOnEventListener> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
				string p0 = JNIEnv.GetString (native_p0, JniHandleOwnership.DoNotTransfer);
				string p1 = JNIEnv.GetString (native_p1, JniHandleOwnership.DoNotTransfer);
				global::Android.OS.Bundle p2 = global::Java.Lang.Object.GetObject<global::Android.OS.Bundle> (native_p2, JniHandleOwnership.DoNotTransfer);
				__this.OnEvent (p0, p1, p2, p3);
			}
#pragma warning restore 0169

			IntPtr id_onEvent_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_J;
			public unsafe void OnEvent (string p0, string p1, global::Android.OS.Bundle p2, long p3)
			{
				if (id_onEvent_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_J == IntPtr.Zero)
					id_onEvent_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_J = JNIEnv.GetMethodID (class_ref, "onEvent", "(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;J)V");
				IntPtr native_p0 = JNIEnv.NewString (p0);
				IntPtr native_p1 = JNIEnv.NewString (p1);
				JValue* __args = stackalloc JValue [4];
				__args [0] = new JValue (native_p0);
				__args [1] = new JValue (native_p1);
				__args [2] = new JValue ((p2 == null) ? IntPtr.Zero : ((global::Java.Lang.Object) p2).Handle);
				__args [3] = new JValue (p3);
				JNIEnv.CallVoidMethod (((global::Java.Lang.Object) this).Handle, id_onEvent_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_J, __args);
				JNIEnv.DeleteLocalRef (native_p0);
				JNIEnv.DeleteLocalRef (native_p1);
			}

		}

		// event args for com.google.android.gms.measurement.AppMeasurement.OnEventListener.onEvent
		public partial class EventEventArgs : global::System.EventArgs {

			public EventEventArgs (string p0, string p1, global::Android.OS.Bundle p2, long p3)
			{
				this.p0 = p0;
				this.p1 = p1;
				this.p2 = p2;
				this.p3 = p3;
			}

			string p0;
			public string P0 {
				get { return p0; }
			}

			string p1;
			public string P1 {
				get { return p1; }
			}

			global::Android.OS.Bundle p2;
			public global::Android.OS.Bundle P2 {
				get { return p2; }
			}

			long p3;
			public long P3 {
				get { return p3; }
			}
		}

		[global::Android.Runtime.Register ("mono/com/google/android/gms/measurement/AppMeasurement_OnEventListenerImplementor")]
		internal sealed partial class IOnEventListenerImplementor : global::Java.Lang.Object, IOnEventListener {

			object sender;

			public IOnEventListenerImplementor (object sender)
				: base (
					global::Android.Runtime.JNIEnv.StartCreateInstance ("mono/com/google/android/gms/measurement/AppMeasurement_OnEventListenerImplementor", "()V"),
					JniHandleOwnership.TransferLocalRef)
			{
				global::Android.Runtime.JNIEnv.FinishCreateInstance (((global::Java.Lang.Object) this).Handle, "()V");
				this.sender = sender;
			}

#pragma warning disable 0649
			public EventHandler<EventEventArgs> Handler;
#pragma warning restore 0649

			public void OnEvent (string p0, string p1, global::Android.OS.Bundle p2, long p3)
			{
				var __h = Handler;
				if (__h != null)
					__h (sender, new EventEventArgs (p0, p1, p2, p3));
			}

			internal static bool __IsEmpty (IOnEventListenerImplementor value)
			{
				return value.Handler == null;
			}
		}


		// Metadata.xml XPath class reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement.Param']"
		[global::Android.Runtime.Register ("com/google/android/gms/measurement/AppMeasurement$Param", DoNotGenerateAcw=true)]
		public sealed partial class Param : global::Java.Lang.Object {


			// Metadata.xml XPath field reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement.Param']/field[@name='FATAL']"
			[Register ("FATAL")]
			public const string Fatal = (string) "fatal";

			// Metadata.xml XPath field reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement.Param']/field[@name='TIMESTAMP']"
			[Register ("TIMESTAMP")]
			public const string Timestamp = (string) "timestamp";

			// Metadata.xml XPath field reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement.Param']/field[@name='TYPE']"
			[Register ("TYPE")]
			public const string Type = (string) "type";
			static readonly JniPeerMembers _members = new XAPeerMembers ("com/google/android/gms/measurement/AppMeasurement$Param", typeof (Param));
			internal static new IntPtr class_ref {
				get {
					return _members.JniPeerType.PeerReference.Handle;
				}
			}

			public override global::Java.Interop.JniPeerMembers JniPeerMembers {
				get { return _members; }
			}

			protected override IntPtr ThresholdClass {
				get { return _members.JniPeerType.PeerReference.Handle; }
			}

			protected override global::System.Type ThresholdType {
				get { return _members.ManagedPeerType; }
			}

			internal Param (IntPtr javaReference, JniHandleOwnership transfer) : base (javaReference, transfer) {}

		}

		// Metadata.xml XPath class reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement.UserProperty']"
		[global::Android.Runtime.Register ("com/google/android/gms/measurement/AppMeasurement$UserProperty", DoNotGenerateAcw=true)]
		public sealed partial class UserProperty : global::Java.Lang.Object {


			// Metadata.xml XPath field reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement.UserProperty']/field[@name='FIREBASE_LAST_NOTIFICATION']"
			[Register ("FIREBASE_LAST_NOTIFICATION")]
			public const string FirebaseLastNotification = (string) "_ln";
			static readonly JniPeerMembers _members = new XAPeerMembers ("com/google/android/gms/measurement/AppMeasurement$UserProperty", typeof (UserProperty));
			internal static new IntPtr class_ref {
				get {
					return _members.JniPeerType.PeerReference.Handle;
				}
			}

			public override global::Java.Interop.JniPeerMembers JniPeerMembers {
				get { return _members; }
			}

			protected override IntPtr ThresholdClass {
				get { return _members.JniPeerType.PeerReference.Handle; }
			}

			protected override global::System.Type ThresholdType {
				get { return _members.ManagedPeerType; }
			}

			internal UserProperty (IntPtr javaReference, JniHandleOwnership transfer) : base (javaReference, transfer) {}

		}

		static readonly JniPeerMembers _members = new XAPeerMembers ("com/google/android/gms/measurement/AppMeasurement", typeof (AppMeasurement));
		internal static new IntPtr class_ref {
			get {
				return _members.JniPeerType.PeerReference.Handle;
			}
		}

		public override global::Java.Interop.JniPeerMembers JniPeerMembers {
			get { return _members; }
		}

		protected override IntPtr ThresholdClass {
			get { return _members.JniPeerType.PeerReference.Handle; }
		}

		protected override global::System.Type ThresholdType {
			get { return _members.ManagedPeerType; }
		}

		protected AppMeasurement (IntPtr javaReference, JniHandleOwnership transfer) : base (javaReference, transfer) {}

		static Delegate cb_getAppInstanceId;
#pragma warning disable 0169
		static Delegate GetGetAppInstanceIdHandler ()
		{
			if (cb_getAppInstanceId == null)
				cb_getAppInstanceId = JNINativeWrapper.CreateDelegate ((Func<IntPtr, IntPtr, IntPtr>) n_GetAppInstanceId);
			return cb_getAppInstanceId;
		}

		static IntPtr n_GetAppInstanceId (IntPtr jnienv, IntPtr native__this)
		{
			global::Android.Gms.Measurement.AppMeasurement __this = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
			return JNIEnv.NewString (__this.AppInstanceId);
		}
#pragma warning restore 0169

		public virtual unsafe string AppInstanceId {
			// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='getAppInstanceId' and count(parameter)=0]"
			[Register ("getAppInstanceId", "()Ljava/lang/String;", "GetGetAppInstanceIdHandler")]
			get {
				const string __id = "getAppInstanceId.()Ljava/lang/String;";
				try {
					var __rm = _members.InstanceMethods.InvokeVirtualObjectMethod (__id, this, null);
					return JNIEnv.GetString (__rm.Handle, JniHandleOwnership.TransferLocalRef);
				} finally {
				}
			}
		}

		static Delegate cb_getBoolean;
#pragma warning disable 0169
		static Delegate GetGetBooleanHandler ()
		{
			if (cb_getBoolean == null)
				cb_getBoolean = JNINativeWrapper.CreateDelegate ((Func<IntPtr, IntPtr, IntPtr>) n_GetBoolean);
			return cb_getBoolean;
		}

		static IntPtr n_GetBoolean (IntPtr jnienv, IntPtr native__this)
		{
			global::Android.Gms.Measurement.AppMeasurement __this = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
			return JNIEnv.ToLocalJniHandle (__this.Boolean);
		}
#pragma warning restore 0169

		public virtual unsafe global::Java.Lang.Boolean Boolean {
			// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='getBoolean' and count(parameter)=0]"
			[Register ("getBoolean", "()Ljava/lang/Boolean;", "GetGetBooleanHandler")]
			get {
				const string __id = "getBoolean.()Ljava/lang/Boolean;";
				try {
					var __rm = _members.InstanceMethods.InvokeVirtualObjectMethod (__id, this, null);
					return global::Java.Lang.Object.GetObject<global::Java.Lang.Boolean> (__rm.Handle, JniHandleOwnership.TransferLocalRef);
				} finally {
				}
			}
		}

		static Delegate cb_getCurrentScreenClass;
#pragma warning disable 0169
		static Delegate GetGetCurrentScreenClassHandler ()
		{
			if (cb_getCurrentScreenClass == null)
				cb_getCurrentScreenClass = JNINativeWrapper.CreateDelegate ((Func<IntPtr, IntPtr, IntPtr>) n_GetCurrentScreenClass);
			return cb_getCurrentScreenClass;
		}

		static IntPtr n_GetCurrentScreenClass (IntPtr jnienv, IntPtr native__this)
		{
			global::Android.Gms.Measurement.AppMeasurement __this = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
			return JNIEnv.NewString (__this.CurrentScreenClass);
		}
#pragma warning restore 0169

		public virtual unsafe string CurrentScreenClass {
			// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='getCurrentScreenClass' and count(parameter)=0]"
			[Register ("getCurrentScreenClass", "()Ljava/lang/String;", "GetGetCurrentScreenClassHandler")]
			get {
				const string __id = "getCurrentScreenClass.()Ljava/lang/String;";
				try {
					var __rm = _members.InstanceMethods.InvokeVirtualObjectMethod (__id, this, null);
					return JNIEnv.GetString (__rm.Handle, JniHandleOwnership.TransferLocalRef);
				} finally {
				}
			}
		}

		static Delegate cb_getCurrentScreenName;
#pragma warning disable 0169
		static Delegate GetGetCurrentScreenNameHandler ()
		{
			if (cb_getCurrentScreenName == null)
				cb_getCurrentScreenName = JNINativeWrapper.CreateDelegate ((Func<IntPtr, IntPtr, IntPtr>) n_GetCurrentScreenName);
			return cb_getCurrentScreenName;
		}

		static IntPtr n_GetCurrentScreenName (IntPtr jnienv, IntPtr native__this)
		{
			global::Android.Gms.Measurement.AppMeasurement __this = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
			return JNIEnv.NewString (__this.CurrentScreenName);
		}
#pragma warning restore 0169

		public virtual unsafe string CurrentScreenName {
			// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='getCurrentScreenName' and count(parameter)=0]"
			[Register ("getCurrentScreenName", "()Ljava/lang/String;", "GetGetCurrentScreenNameHandler")]
			get {
				const string __id = "getCurrentScreenName.()Ljava/lang/String;";
				try {
					var __rm = _members.InstanceMethods.InvokeVirtualObjectMethod (__id, this, null);
					return JNIEnv.GetString (__rm.Handle, JniHandleOwnership.TransferLocalRef);
				} finally {
				}
			}
		}

		static Delegate cb_getDouble;
#pragma warning disable 0169
		static Delegate GetGetDoubleHandler ()
		{
			if (cb_getDouble == null)
				cb_getDouble = JNINativeWrapper.CreateDelegate ((Func<IntPtr, IntPtr, IntPtr>) n_GetDouble);
			return cb_getDouble;
		}

		static IntPtr n_GetDouble (IntPtr jnienv, IntPtr native__this)
		{
			global::Android.Gms.Measurement.AppMeasurement __this = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
			return JNIEnv.ToLocalJniHandle (__this.Double);
		}
#pragma warning restore 0169

		public virtual unsafe global::Java.Lang.Double Double {
			// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='getDouble' and count(parameter)=0]"
			[Register ("getDouble", "()Ljava/lang/Double;", "GetGetDoubleHandler")]
			get {
				const string __id = "getDouble.()Ljava/lang/Double;";
				try {
					var __rm = _members.InstanceMethods.InvokeVirtualObjectMethod (__id, this, null);
					return global::Java.Lang.Object.GetObject<global::Java.Lang.Double> (__rm.Handle, JniHandleOwnership.TransferLocalRef);
				} finally {
				}
			}
		}

		static Delegate cb_getGmpAppId;
#pragma warning disable 0169
		static Delegate GetGetGmpAppIdHandler ()
		{
			if (cb_getGmpAppId == null)
				cb_getGmpAppId = JNINativeWrapper.CreateDelegate ((Func<IntPtr, IntPtr, IntPtr>) n_GetGmpAppId);
			return cb_getGmpAppId;
		}

		static IntPtr n_GetGmpAppId (IntPtr jnienv, IntPtr native__this)
		{
			global::Android.Gms.Measurement.AppMeasurement __this = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
			return JNIEnv.NewString (__this.GmpAppId);
		}
#pragma warning restore 0169

		public virtual unsafe string GmpAppId {
			// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='getGmpAppId' and count(parameter)=0]"
			[Register ("getGmpAppId", "()Ljava/lang/String;", "GetGetGmpAppIdHandler")]
			get {
				const string __id = "getGmpAppId.()Ljava/lang/String;";
				try {
					var __rm = _members.InstanceMethods.InvokeVirtualObjectMethod (__id, this, null);
					return JNIEnv.GetString (__rm.Handle, JniHandleOwnership.TransferLocalRef);
				} finally {
				}
			}
		}

		static Delegate cb_getInteger;
#pragma warning disable 0169
		static Delegate GetGetIntegerHandler ()
		{
			if (cb_getInteger == null)
				cb_getInteger = JNINativeWrapper.CreateDelegate ((Func<IntPtr, IntPtr, IntPtr>) n_GetInteger);
			return cb_getInteger;
		}

		static IntPtr n_GetInteger (IntPtr jnienv, IntPtr native__this)
		{
			global::Android.Gms.Measurement.AppMeasurement __this = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
			return JNIEnv.ToLocalJniHandle (__this.Integer);
		}
#pragma warning restore 0169

		public virtual unsafe global::Java.Lang.Integer Integer {
			// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='getInteger' and count(parameter)=0]"
			[Register ("getInteger", "()Ljava/lang/Integer;", "GetGetIntegerHandler")]
			get {
				const string __id = "getInteger.()Ljava/lang/Integer;";
				try {
					var __rm = _members.InstanceMethods.InvokeVirtualObjectMethod (__id, this, null);
					return global::Java.Lang.Object.GetObject<global::Java.Lang.Integer> (__rm.Handle, JniHandleOwnership.TransferLocalRef);
				} finally {
				}
			}
		}

		static Delegate cb_getLong;
#pragma warning disable 0169
		static Delegate GetGetLongHandler ()
		{
			if (cb_getLong == null)
				cb_getLong = JNINativeWrapper.CreateDelegate ((Func<IntPtr, IntPtr, IntPtr>) n_GetLong);
			return cb_getLong;
		}

		static IntPtr n_GetLong (IntPtr jnienv, IntPtr native__this)
		{
			global::Android.Gms.Measurement.AppMeasurement __this = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
			return JNIEnv.ToLocalJniHandle (__this.Long);
		}
#pragma warning restore 0169

		public virtual unsafe global::Java.Lang.Long Long {
			// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='getLong' and count(parameter)=0]"
			[Register ("getLong", "()Ljava/lang/Long;", "GetGetLongHandler")]
			get {
				const string __id = "getLong.()Ljava/lang/Long;";
				try {
					var __rm = _members.InstanceMethods.InvokeVirtualObjectMethod (__id, this, null);
					return global::Java.Lang.Object.GetObject<global::Java.Lang.Long> (__rm.Handle, JniHandleOwnership.TransferLocalRef);
				} finally {
				}
			}
		}

		static Delegate cb_getString;
#pragma warning disable 0169
		static Delegate GetGetStringHandler ()
		{
			if (cb_getString == null)
				cb_getString = JNINativeWrapper.CreateDelegate ((Func<IntPtr, IntPtr, IntPtr>) n_GetString);
			return cb_getString;
		}

		static IntPtr n_GetString (IntPtr jnienv, IntPtr native__this)
		{
			global::Android.Gms.Measurement.AppMeasurement __this = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
			return JNIEnv.NewString (__this.String);
		}
#pragma warning restore 0169

		public virtual unsafe string String {
			// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='getString' and count(parameter)=0]"
			[Register ("getString", "()Ljava/lang/String;", "GetGetStringHandler")]
			get {
				const string __id = "getString.()Ljava/lang/String;";
				try {
					var __rm = _members.InstanceMethods.InvokeVirtualObjectMethod (__id, this, null);
					return JNIEnv.GetString (__rm.Handle, JniHandleOwnership.TransferLocalRef);
				} finally {
				}
			}
		}

		static Delegate cb_beginAdUnitExposure_Ljava_lang_String_;
#pragma warning disable 0169
		static Delegate GetBeginAdUnitExposure_Ljava_lang_String_Handler ()
		{
			if (cb_beginAdUnitExposure_Ljava_lang_String_ == null)
				cb_beginAdUnitExposure_Ljava_lang_String_ = JNINativeWrapper.CreateDelegate ((Action<IntPtr, IntPtr, IntPtr>) n_BeginAdUnitExposure_Ljava_lang_String_);
			return cb_beginAdUnitExposure_Ljava_lang_String_;
		}

		static void n_BeginAdUnitExposure_Ljava_lang_String_ (IntPtr jnienv, IntPtr native__this, IntPtr native_p0)
		{
			global::Android.Gms.Measurement.AppMeasurement __this = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
			string p0 = JNIEnv.GetString (native_p0, JniHandleOwnership.DoNotTransfer);
			__this.BeginAdUnitExposure (p0);
		}
#pragma warning restore 0169

		// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='beginAdUnitExposure' and count(parameter)=1 and parameter[1][@type='java.lang.String']]"
		[Register ("beginAdUnitExposure", "(Ljava/lang/String;)V", "GetBeginAdUnitExposure_Ljava_lang_String_Handler")]
		public virtual unsafe void BeginAdUnitExposure (string p0)
		{
			const string __id = "beginAdUnitExposure.(Ljava/lang/String;)V";
			IntPtr native_p0 = JNIEnv.NewString (p0);
			try {
				JniArgumentValue* __args = stackalloc JniArgumentValue [1];
				__args [0] = new JniArgumentValue (native_p0);
				_members.InstanceMethods.InvokeVirtualVoidMethod (__id, this, __args);
			} finally {
				JNIEnv.DeleteLocalRef (native_p0);
			}
		}

		static Delegate cb_clearConditionalUserProperty_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_;
#pragma warning disable 0169
		static Delegate GetClearConditionalUserProperty_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_Handler ()
		{
			if (cb_clearConditionalUserProperty_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_ == null)
				cb_clearConditionalUserProperty_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_ = JNINativeWrapper.CreateDelegate ((Action<IntPtr, IntPtr, IntPtr, IntPtr, IntPtr>) n_ClearConditionalUserProperty_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_);
			return cb_clearConditionalUserProperty_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_;
		}

		static void n_ClearConditionalUserProperty_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_ (IntPtr jnienv, IntPtr native__this, IntPtr native_p0, IntPtr native_p1, IntPtr native_p2)
		{
			global::Android.Gms.Measurement.AppMeasurement __this = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
			string p0 = JNIEnv.GetString (native_p0, JniHandleOwnership.DoNotTransfer);
			string p1 = JNIEnv.GetString (native_p1, JniHandleOwnership.DoNotTransfer);
			global::Android.OS.Bundle p2 = global::Java.Lang.Object.GetObject<global::Android.OS.Bundle> (native_p2, JniHandleOwnership.DoNotTransfer);
			__this.ClearConditionalUserProperty (p0, p1, p2);
		}
#pragma warning restore 0169

		// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='clearConditionalUserProperty' and count(parameter)=3 and parameter[1][@type='java.lang.String'] and parameter[2][@type='java.lang.String'] and parameter[3][@type='android.os.Bundle']]"
		[Register ("clearConditionalUserProperty", "(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)V", "GetClearConditionalUserProperty_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_Handler")]
		public virtual unsafe void ClearConditionalUserProperty (string p0, string p1, global::Android.OS.Bundle p2)
		{
			const string __id = "clearConditionalUserProperty.(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)V";
			IntPtr native_p0 = JNIEnv.NewString (p0);
			IntPtr native_p1 = JNIEnv.NewString (p1);
			try {
				JniArgumentValue* __args = stackalloc JniArgumentValue [3];
				__args [0] = new JniArgumentValue (native_p0);
				__args [1] = new JniArgumentValue (native_p1);
				__args [2] = new JniArgumentValue ((p2 == null) ? IntPtr.Zero : ((global::Java.Lang.Object) p2).Handle);
				_members.InstanceMethods.InvokeVirtualVoidMethod (__id, this, __args);
			} finally {
				JNIEnv.DeleteLocalRef (native_p0);
				JNIEnv.DeleteLocalRef (native_p1);
			}
		}

		static Delegate cb_clearConditionalUserPropertyAs_Ljava_lang_String_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_;
#pragma warning disable 0169
		static Delegate GetClearConditionalUserPropertyAs_Ljava_lang_String_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_Handler ()
		{
			if (cb_clearConditionalUserPropertyAs_Ljava_lang_String_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_ == null)
				cb_clearConditionalUserPropertyAs_Ljava_lang_String_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_ = JNINativeWrapper.CreateDelegate ((Action<IntPtr, IntPtr, IntPtr, IntPtr, IntPtr, IntPtr>) n_ClearConditionalUserPropertyAs_Ljava_lang_String_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_);
			return cb_clearConditionalUserPropertyAs_Ljava_lang_String_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_;
		}

		static void n_ClearConditionalUserPropertyAs_Ljava_lang_String_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_ (IntPtr jnienv, IntPtr native__this, IntPtr native_p0, IntPtr native_p1, IntPtr native_p2, IntPtr native_p3)
		{
			global::Android.Gms.Measurement.AppMeasurement __this = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
			string p0 = JNIEnv.GetString (native_p0, JniHandleOwnership.DoNotTransfer);
			string p1 = JNIEnv.GetString (native_p1, JniHandleOwnership.DoNotTransfer);
			string p2 = JNIEnv.GetString (native_p2, JniHandleOwnership.DoNotTransfer);
			global::Android.OS.Bundle p3 = global::Java.Lang.Object.GetObject<global::Android.OS.Bundle> (native_p3, JniHandleOwnership.DoNotTransfer);
			__this.ClearConditionalUserPropertyAs (p0, p1, p2, p3);
		}
#pragma warning restore 0169

		// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='clearConditionalUserPropertyAs' and count(parameter)=4 and parameter[1][@type='java.lang.String'] and parameter[2][@type='java.lang.String'] and parameter[3][@type='java.lang.String'] and parameter[4][@type='android.os.Bundle']]"
		[Register ("clearConditionalUserPropertyAs", "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)V", "GetClearConditionalUserPropertyAs_Ljava_lang_String_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_Handler")]
		protected virtual unsafe void ClearConditionalUserPropertyAs (string p0, string p1, string p2, global::Android.OS.Bundle p3)
		{
			const string __id = "clearConditionalUserPropertyAs.(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)V";
			IntPtr native_p0 = JNIEnv.NewString (p0);
			IntPtr native_p1 = JNIEnv.NewString (p1);
			IntPtr native_p2 = JNIEnv.NewString (p2);
			try {
				JniArgumentValue* __args = stackalloc JniArgumentValue [4];
				__args [0] = new JniArgumentValue (native_p0);
				__args [1] = new JniArgumentValue (native_p1);
				__args [2] = new JniArgumentValue (native_p2);
				__args [3] = new JniArgumentValue ((p3 == null) ? IntPtr.Zero : ((global::Java.Lang.Object) p3).Handle);
				_members.InstanceMethods.InvokeVirtualVoidMethod (__id, this, __args);
			} finally {
				JNIEnv.DeleteLocalRef (native_p0);
				JNIEnv.DeleteLocalRef (native_p1);
				JNIEnv.DeleteLocalRef (native_p2);
			}
		}

		static Delegate cb_endAdUnitExposure_Ljava_lang_String_;
#pragma warning disable 0169
		static Delegate GetEndAdUnitExposure_Ljava_lang_String_Handler ()
		{
			if (cb_endAdUnitExposure_Ljava_lang_String_ == null)
				cb_endAdUnitExposure_Ljava_lang_String_ = JNINativeWrapper.CreateDelegate ((Action<IntPtr, IntPtr, IntPtr>) n_EndAdUnitExposure_Ljava_lang_String_);
			return cb_endAdUnitExposure_Ljava_lang_String_;
		}

		static void n_EndAdUnitExposure_Ljava_lang_String_ (IntPtr jnienv, IntPtr native__this, IntPtr native_p0)
		{
			global::Android.Gms.Measurement.AppMeasurement __this = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
			string p0 = JNIEnv.GetString (native_p0, JniHandleOwnership.DoNotTransfer);
			__this.EndAdUnitExposure (p0);
		}
#pragma warning restore 0169

		// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='endAdUnitExposure' and count(parameter)=1 and parameter[1][@type='java.lang.String']]"
		[Register ("endAdUnitExposure", "(Ljava/lang/String;)V", "GetEndAdUnitExposure_Ljava_lang_String_Handler")]
		public virtual unsafe void EndAdUnitExposure (string p0)
		{
			const string __id = "endAdUnitExposure.(Ljava/lang/String;)V";
			IntPtr native_p0 = JNIEnv.NewString (p0);
			try {
				JniArgumentValue* __args = stackalloc JniArgumentValue [1];
				__args [0] = new JniArgumentValue (native_p0);
				_members.InstanceMethods.InvokeVirtualVoidMethod (__id, this, __args);
			} finally {
				JNIEnv.DeleteLocalRef (native_p0);
			}
		}

		static Delegate cb_generateEventId;
#pragma warning disable 0169
		static Delegate GetGenerateEventIdHandler ()
		{
			if (cb_generateEventId == null)
				cb_generateEventId = JNINativeWrapper.CreateDelegate ((Func<IntPtr, IntPtr, long>) n_GenerateEventId);
			return cb_generateEventId;
		}

		static long n_GenerateEventId (IntPtr jnienv, IntPtr native__this)
		{
			global::Android.Gms.Measurement.AppMeasurement __this = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
			return __this.GenerateEventId ();
		}
#pragma warning restore 0169

		// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='generateEventId' and count(parameter)=0]"
		[Register ("generateEventId", "()J", "GetGenerateEventIdHandler")]
		public virtual unsafe long GenerateEventId ()
		{
			const string __id = "generateEventId.()J";
			try {
				var __rm = _members.InstanceMethods.InvokeVirtualInt64Method (__id, this, null);
				return __rm;
			} finally {
			}
		}

		static Delegate cb_getConditionalUserProperties_Ljava_lang_String_Ljava_lang_String_;
#pragma warning disable 0169
		static Delegate GetGetConditionalUserProperties_Ljava_lang_String_Ljava_lang_String_Handler ()
		{
			if (cb_getConditionalUserProperties_Ljava_lang_String_Ljava_lang_String_ == null)
				cb_getConditionalUserProperties_Ljava_lang_String_Ljava_lang_String_ = JNINativeWrapper.CreateDelegate ((Func<IntPtr, IntPtr, IntPtr, IntPtr, IntPtr>) n_GetConditionalUserProperties_Ljava_lang_String_Ljava_lang_String_);
			return cb_getConditionalUserProperties_Ljava_lang_String_Ljava_lang_String_;
		}

		static IntPtr n_GetConditionalUserProperties_Ljava_lang_String_Ljava_lang_String_ (IntPtr jnienv, IntPtr native__this, IntPtr native_p0, IntPtr native_p1)
		{
			global::Android.Gms.Measurement.AppMeasurement __this = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
			string p0 = JNIEnv.GetString (native_p0, JniHandleOwnership.DoNotTransfer);
			string p1 = JNIEnv.GetString (native_p1, JniHandleOwnership.DoNotTransfer);
			IntPtr __ret = global::Android.Runtime.JavaList<global::Android.Gms.Measurement.AppMeasurement.ConditionalUserProperty>.ToLocalJniHandle (__this.GetConditionalUserProperties (p0, p1));
			return __ret;
		}
#pragma warning restore 0169

		// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='getConditionalUserProperties' and count(parameter)=2 and parameter[1][@type='java.lang.String'] and parameter[2][@type='java.lang.String']]"
		[Register ("getConditionalUserProperties", "(Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;", "GetGetConditionalUserProperties_Ljava_lang_String_Ljava_lang_String_Handler")]
		public virtual unsafe global::System.Collections.Generic.IList<global::Android.Gms.Measurement.AppMeasurement.ConditionalUserProperty> GetConditionalUserProperties (string p0, string p1)
		{
			const string __id = "getConditionalUserProperties.(Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;";
			IntPtr native_p0 = JNIEnv.NewString (p0);
			IntPtr native_p1 = JNIEnv.NewString (p1);
			try {
				JniArgumentValue* __args = stackalloc JniArgumentValue [2];
				__args [0] = new JniArgumentValue (native_p0);
				__args [1] = new JniArgumentValue (native_p1);
				var __rm = _members.InstanceMethods.InvokeVirtualObjectMethod (__id, this, __args);
				return global::Android.Runtime.JavaList<global::Android.Gms.Measurement.AppMeasurement.ConditionalUserProperty>.FromJniHandle (__rm.Handle, JniHandleOwnership.TransferLocalRef);
			} finally {
				JNIEnv.DeleteLocalRef (native_p0);
				JNIEnv.DeleteLocalRef (native_p1);
			}
		}

		static Delegate cb_getConditionalUserPropertiesAs_Ljava_lang_String_Ljava_lang_String_Ljava_lang_String_;
#pragma warning disable 0169
		static Delegate GetGetConditionalUserPropertiesAs_Ljava_lang_String_Ljava_lang_String_Ljava_lang_String_Handler ()
		{
			if (cb_getConditionalUserPropertiesAs_Ljava_lang_String_Ljava_lang_String_Ljava_lang_String_ == null)
				cb_getConditionalUserPropertiesAs_Ljava_lang_String_Ljava_lang_String_Ljava_lang_String_ = JNINativeWrapper.CreateDelegate ((Func<IntPtr, IntPtr, IntPtr, IntPtr, IntPtr, IntPtr>) n_GetConditionalUserPropertiesAs_Ljava_lang_String_Ljava_lang_String_Ljava_lang_String_);
			return cb_getConditionalUserPropertiesAs_Ljava_lang_String_Ljava_lang_String_Ljava_lang_String_;
		}

		static IntPtr n_GetConditionalUserPropertiesAs_Ljava_lang_String_Ljava_lang_String_Ljava_lang_String_ (IntPtr jnienv, IntPtr native__this, IntPtr native_p0, IntPtr native_p1, IntPtr native_p2)
		{
			global::Android.Gms.Measurement.AppMeasurement __this = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
			string p0 = JNIEnv.GetString (native_p0, JniHandleOwnership.DoNotTransfer);
			string p1 = JNIEnv.GetString (native_p1, JniHandleOwnership.DoNotTransfer);
			string p2 = JNIEnv.GetString (native_p2, JniHandleOwnership.DoNotTransfer);
			IntPtr __ret = global::Android.Runtime.JavaList<global::Android.Gms.Measurement.AppMeasurement.ConditionalUserProperty>.ToLocalJniHandle (__this.GetConditionalUserPropertiesAs (p0, p1, p2));
			return __ret;
		}
#pragma warning restore 0169

		// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='getConditionalUserPropertiesAs' and count(parameter)=3 and parameter[1][@type='java.lang.String'] and parameter[2][@type='java.lang.String'] and parameter[3][@type='java.lang.String']]"
		[Register ("getConditionalUserPropertiesAs", "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;", "GetGetConditionalUserPropertiesAs_Ljava_lang_String_Ljava_lang_String_Ljava_lang_String_Handler")]
		protected virtual unsafe global::System.Collections.Generic.IList<global::Android.Gms.Measurement.AppMeasurement.ConditionalUserProperty> GetConditionalUserPropertiesAs (string p0, string p1, string p2)
		{
			const string __id = "getConditionalUserPropertiesAs.(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;";
			IntPtr native_p0 = JNIEnv.NewString (p0);
			IntPtr native_p1 = JNIEnv.NewString (p1);
			IntPtr native_p2 = JNIEnv.NewString (p2);
			try {
				JniArgumentValue* __args = stackalloc JniArgumentValue [3];
				__args [0] = new JniArgumentValue (native_p0);
				__args [1] = new JniArgumentValue (native_p1);
				__args [2] = new JniArgumentValue (native_p2);
				var __rm = _members.InstanceMethods.InvokeVirtualObjectMethod (__id, this, __args);
				return global::Android.Runtime.JavaList<global::Android.Gms.Measurement.AppMeasurement.ConditionalUserProperty>.FromJniHandle (__rm.Handle, JniHandleOwnership.TransferLocalRef);
			} finally {
				JNIEnv.DeleteLocalRef (native_p0);
				JNIEnv.DeleteLocalRef (native_p1);
				JNIEnv.DeleteLocalRef (native_p2);
			}
		}

		// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='getInstance' and count(parameter)=1 and parameter[1][@type='android.content.Context']]"
		[Obsolete (@"deprecated")]
		[Register ("getInstance", "(Landroid/content/Context;)Lcom/google/android/gms/measurement/AppMeasurement;", "")]
		public static unsafe global::Android.Gms.Measurement.AppMeasurement GetInstance (global::Android.Content.Context p0)
		{
			const string __id = "getInstance.(Landroid/content/Context;)Lcom/google/android/gms/measurement/AppMeasurement;";
			try {
				JniArgumentValue* __args = stackalloc JniArgumentValue [1];
				__args [0] = new JniArgumentValue ((p0 == null) ? IntPtr.Zero : ((global::Java.Lang.Object) p0).Handle);
				var __rm = _members.StaticMethods.InvokeObjectMethod (__id, __args);
				return global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement> (__rm.Handle, JniHandleOwnership.TransferLocalRef);
			} finally {
			}
		}

		static Delegate cb_getMaxUserProperties_Ljava_lang_String_;
#pragma warning disable 0169
		static Delegate GetGetMaxUserProperties_Ljava_lang_String_Handler ()
		{
			if (cb_getMaxUserProperties_Ljava_lang_String_ == null)
				cb_getMaxUserProperties_Ljava_lang_String_ = JNINativeWrapper.CreateDelegate ((Func<IntPtr, IntPtr, IntPtr, int>) n_GetMaxUserProperties_Ljava_lang_String_);
			return cb_getMaxUserProperties_Ljava_lang_String_;
		}

		static int n_GetMaxUserProperties_Ljava_lang_String_ (IntPtr jnienv, IntPtr native__this, IntPtr native_p0)
		{
			global::Android.Gms.Measurement.AppMeasurement __this = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
			string p0 = JNIEnv.GetString (native_p0, JniHandleOwnership.DoNotTransfer);
			int __ret = __this.GetMaxUserProperties (p0);
			return __ret;
		}
#pragma warning restore 0169

		// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='getMaxUserProperties' and count(parameter)=1 and parameter[1][@type='java.lang.String']]"
		[Register ("getMaxUserProperties", "(Ljava/lang/String;)I", "GetGetMaxUserProperties_Ljava_lang_String_Handler")]
		public virtual unsafe int GetMaxUserProperties (string p0)
		{
			const string __id = "getMaxUserProperties.(Ljava/lang/String;)I";
			IntPtr native_p0 = JNIEnv.NewString (p0);
			try {
				JniArgumentValue* __args = stackalloc JniArgumentValue [1];
				__args [0] = new JniArgumentValue (native_p0);
				var __rm = _members.InstanceMethods.InvokeVirtualInt32Method (__id, this, __args);
				return __rm;
			} finally {
				JNIEnv.DeleteLocalRef (native_p0);
			}
		}

		static Delegate cb_getUserProperties_Z;
#pragma warning disable 0169
		static Delegate GetGetUserProperties_ZHandler ()
		{
			if (cb_getUserProperties_Z == null)
				cb_getUserProperties_Z = JNINativeWrapper.CreateDelegate ((Func<IntPtr, IntPtr, bool, IntPtr>) n_GetUserProperties_Z);
			return cb_getUserProperties_Z;
		}

		static IntPtr n_GetUserProperties_Z (IntPtr jnienv, IntPtr native__this, bool p0)
		{
			global::Android.Gms.Measurement.AppMeasurement __this = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
			return global::Android.Runtime.JavaDictionary<string, global::Java.Lang.Object>.ToLocalJniHandle (__this.GetUserProperties (p0));
		}
#pragma warning restore 0169

		// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='getUserProperties' and count(parameter)=1 and parameter[1][@type='boolean']]"
		[Register ("getUserProperties", "(Z)Ljava/util/Map;", "GetGetUserProperties_ZHandler")]
		public virtual unsafe global::System.Collections.Generic.IDictionary<string, global::Java.Lang.Object> GetUserProperties (bool p0)
		{
			const string __id = "getUserProperties.(Z)Ljava/util/Map;";
			try {
				JniArgumentValue* __args = stackalloc JniArgumentValue [1];
				__args [0] = new JniArgumentValue (p0);
				var __rm = _members.InstanceMethods.InvokeVirtualObjectMethod (__id, this, __args);
				return global::Android.Runtime.JavaDictionary<string, global::Java.Lang.Object>.FromJniHandle (__rm.Handle, JniHandleOwnership.TransferLocalRef);
			} finally {
			}
		}

		static Delegate cb_getUserProperties_Ljava_lang_String_Ljava_lang_String_Z;
#pragma warning disable 0169
		static Delegate GetGetUserProperties_Ljava_lang_String_Ljava_lang_String_ZHandler ()
		{
			if (cb_getUserProperties_Ljava_lang_String_Ljava_lang_String_Z == null)
				cb_getUserProperties_Ljava_lang_String_Ljava_lang_String_Z = JNINativeWrapper.CreateDelegate ((Func<IntPtr, IntPtr, IntPtr, IntPtr, bool, IntPtr>) n_GetUserProperties_Ljava_lang_String_Ljava_lang_String_Z);
			return cb_getUserProperties_Ljava_lang_String_Ljava_lang_String_Z;
		}

		static IntPtr n_GetUserProperties_Ljava_lang_String_Ljava_lang_String_Z (IntPtr jnienv, IntPtr native__this, IntPtr native_p0, IntPtr native_p1, bool p2)
		{
			global::Android.Gms.Measurement.AppMeasurement __this = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
			string p0 = JNIEnv.GetString (native_p0, JniHandleOwnership.DoNotTransfer);
			string p1 = JNIEnv.GetString (native_p1, JniHandleOwnership.DoNotTransfer);
			IntPtr __ret = global::Android.Runtime.JavaDictionary<string, global::Java.Lang.Object>.ToLocalJniHandle (__this.GetUserProperties (p0, p1, p2));
			return __ret;
		}
#pragma warning restore 0169

		// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='getUserProperties' and count(parameter)=3 and parameter[1][@type='java.lang.String'] and parameter[2][@type='java.lang.String'] and parameter[3][@type='boolean']]"
		[Register ("getUserProperties", "(Ljava/lang/String;Ljava/lang/String;Z)Ljava/util/Map;", "GetGetUserProperties_Ljava_lang_String_Ljava_lang_String_ZHandler")]
		protected virtual unsafe global::System.Collections.Generic.IDictionary<string, global::Java.Lang.Object> GetUserProperties (string p0, string p1, bool p2)
		{
			const string __id = "getUserProperties.(Ljava/lang/String;Ljava/lang/String;Z)Ljava/util/Map;";
			IntPtr native_p0 = JNIEnv.NewString (p0);
			IntPtr native_p1 = JNIEnv.NewString (p1);
			try {
				JniArgumentValue* __args = stackalloc JniArgumentValue [3];
				__args [0] = new JniArgumentValue (native_p0);
				__args [1] = new JniArgumentValue (native_p1);
				__args [2] = new JniArgumentValue (p2);
				var __rm = _members.InstanceMethods.InvokeVirtualObjectMethod (__id, this, __args);
				return global::Android.Runtime.JavaDictionary<string, global::Java.Lang.Object>.FromJniHandle (__rm.Handle, JniHandleOwnership.TransferLocalRef);
			} finally {
				JNIEnv.DeleteLocalRef (native_p0);
				JNIEnv.DeleteLocalRef (native_p1);
			}
		}

		static Delegate cb_getUserPropertiesAs_Ljava_lang_String_Ljava_lang_String_Ljava_lang_String_Z;
#pragma warning disable 0169
		static Delegate GetGetUserPropertiesAs_Ljava_lang_String_Ljava_lang_String_Ljava_lang_String_ZHandler ()
		{
			if (cb_getUserPropertiesAs_Ljava_lang_String_Ljava_lang_String_Ljava_lang_String_Z == null)
				cb_getUserPropertiesAs_Ljava_lang_String_Ljava_lang_String_Ljava_lang_String_Z = JNINativeWrapper.CreateDelegate ((Func<IntPtr, IntPtr, IntPtr, IntPtr, IntPtr, bool, IntPtr>) n_GetUserPropertiesAs_Ljava_lang_String_Ljava_lang_String_Ljava_lang_String_Z);
			return cb_getUserPropertiesAs_Ljava_lang_String_Ljava_lang_String_Ljava_lang_String_Z;
		}

		static IntPtr n_GetUserPropertiesAs_Ljava_lang_String_Ljava_lang_String_Ljava_lang_String_Z (IntPtr jnienv, IntPtr native__this, IntPtr native_p0, IntPtr native_p1, IntPtr native_p2, bool p3)
		{
			global::Android.Gms.Measurement.AppMeasurement __this = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
			string p0 = JNIEnv.GetString (native_p0, JniHandleOwnership.DoNotTransfer);
			string p1 = JNIEnv.GetString (native_p1, JniHandleOwnership.DoNotTransfer);
			string p2 = JNIEnv.GetString (native_p2, JniHandleOwnership.DoNotTransfer);
			IntPtr __ret = global::Android.Runtime.JavaDictionary<string, global::Java.Lang.Object>.ToLocalJniHandle (__this.GetUserPropertiesAs (p0, p1, p2, p3));
			return __ret;
		}
#pragma warning restore 0169

		// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='getUserPropertiesAs' and count(parameter)=4 and parameter[1][@type='java.lang.String'] and parameter[2][@type='java.lang.String'] and parameter[3][@type='java.lang.String'] and parameter[4][@type='boolean']]"
		[Register ("getUserPropertiesAs", "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Ljava/util/Map;", "GetGetUserPropertiesAs_Ljava_lang_String_Ljava_lang_String_Ljava_lang_String_ZHandler")]
		protected virtual unsafe global::System.Collections.Generic.IDictionary<string, global::Java.Lang.Object> GetUserPropertiesAs (string p0, string p1, string p2, bool p3)
		{
			const string __id = "getUserPropertiesAs.(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Ljava/util/Map;";
			IntPtr native_p0 = JNIEnv.NewString (p0);
			IntPtr native_p1 = JNIEnv.NewString (p1);
			IntPtr native_p2 = JNIEnv.NewString (p2);
			try {
				JniArgumentValue* __args = stackalloc JniArgumentValue [4];
				__args [0] = new JniArgumentValue (native_p0);
				__args [1] = new JniArgumentValue (native_p1);
				__args [2] = new JniArgumentValue (native_p2);
				__args [3] = new JniArgumentValue (p3);
				var __rm = _members.InstanceMethods.InvokeVirtualObjectMethod (__id, this, __args);
				return global::Android.Runtime.JavaDictionary<string, global::Java.Lang.Object>.FromJniHandle (__rm.Handle, JniHandleOwnership.TransferLocalRef);
			} finally {
				JNIEnv.DeleteLocalRef (native_p0);
				JNIEnv.DeleteLocalRef (native_p1);
				JNIEnv.DeleteLocalRef (native_p2);
			}
		}

		// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='logEvent' and count(parameter)=2 and parameter[1][@type='java.lang.String'] and parameter[2][@type='android.os.Bundle']]"
		[Register ("logEvent", "(Ljava/lang/String;Landroid/os/Bundle;)V", "")]
		public unsafe void LogEvent (string p0, global::Android.OS.Bundle p1)
		{
			const string __id = "logEvent.(Ljava/lang/String;Landroid/os/Bundle;)V";
			IntPtr native_p0 = JNIEnv.NewString (p0);
			try {
				JniArgumentValue* __args = stackalloc JniArgumentValue [2];
				__args [0] = new JniArgumentValue (native_p0);
				__args [1] = new JniArgumentValue ((p1 == null) ? IntPtr.Zero : ((global::Java.Lang.Object) p1).Handle);
				_members.InstanceMethods.InvokeNonvirtualVoidMethod (__id, this, __args);
			} finally {
				JNIEnv.DeleteLocalRef (native_p0);
			}
		}

		static Delegate cb_logEventInternal_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_;
#pragma warning disable 0169
		static Delegate GetLogEventInternal_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_Handler ()
		{
			if (cb_logEventInternal_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_ == null)
				cb_logEventInternal_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_ = JNINativeWrapper.CreateDelegate ((Action<IntPtr, IntPtr, IntPtr, IntPtr, IntPtr>) n_LogEventInternal_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_);
			return cb_logEventInternal_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_;
		}

		static void n_LogEventInternal_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_ (IntPtr jnienv, IntPtr native__this, IntPtr native_p0, IntPtr native_p1, IntPtr native_p2)
		{
			global::Android.Gms.Measurement.AppMeasurement __this = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
			string p0 = JNIEnv.GetString (native_p0, JniHandleOwnership.DoNotTransfer);
			string p1 = JNIEnv.GetString (native_p1, JniHandleOwnership.DoNotTransfer);
			global::Android.OS.Bundle p2 = global::Java.Lang.Object.GetObject<global::Android.OS.Bundle> (native_p2, JniHandleOwnership.DoNotTransfer);
			__this.LogEventInternal (p0, p1, p2);
		}
#pragma warning restore 0169

		// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='logEventInternal' and count(parameter)=3 and parameter[1][@type='java.lang.String'] and parameter[2][@type='java.lang.String'] and parameter[3][@type='android.os.Bundle']]"
		[Register ("logEventInternal", "(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)V", "GetLogEventInternal_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_Handler")]
		public virtual unsafe void LogEventInternal (string p0, string p1, global::Android.OS.Bundle p2)
		{
			const string __id = "logEventInternal.(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)V";
			IntPtr native_p0 = JNIEnv.NewString (p0);
			IntPtr native_p1 = JNIEnv.NewString (p1);
			try {
				JniArgumentValue* __args = stackalloc JniArgumentValue [3];
				__args [0] = new JniArgumentValue (native_p0);
				__args [1] = new JniArgumentValue (native_p1);
				__args [2] = new JniArgumentValue ((p2 == null) ? IntPtr.Zero : ((global::Java.Lang.Object) p2).Handle);
				_members.InstanceMethods.InvokeVirtualVoidMethod (__id, this, __args);
			} finally {
				JNIEnv.DeleteLocalRef (native_p0);
				JNIEnv.DeleteLocalRef (native_p1);
			}
		}

		static Delegate cb_logEventInternalNoInterceptor_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_J;
#pragma warning disable 0169
		static Delegate GetLogEventInternalNoInterceptor_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_JHandler ()
		{
			if (cb_logEventInternalNoInterceptor_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_J == null)
				cb_logEventInternalNoInterceptor_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_J = JNINativeWrapper.CreateDelegate ((Action<IntPtr, IntPtr, IntPtr, IntPtr, IntPtr, long>) n_LogEventInternalNoInterceptor_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_J);
			return cb_logEventInternalNoInterceptor_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_J;
		}

		static void n_LogEventInternalNoInterceptor_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_J (IntPtr jnienv, IntPtr native__this, IntPtr native_p0, IntPtr native_p1, IntPtr native_p2, long p3)
		{
			global::Android.Gms.Measurement.AppMeasurement __this = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
			string p0 = JNIEnv.GetString (native_p0, JniHandleOwnership.DoNotTransfer);
			string p1 = JNIEnv.GetString (native_p1, JniHandleOwnership.DoNotTransfer);
			global::Android.OS.Bundle p2 = global::Java.Lang.Object.GetObject<global::Android.OS.Bundle> (native_p2, JniHandleOwnership.DoNotTransfer);
			__this.LogEventInternalNoInterceptor (p0, p1, p2, p3);
		}
#pragma warning restore 0169

		// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='logEventInternalNoInterceptor' and count(parameter)=4 and parameter[1][@type='java.lang.String'] and parameter[2][@type='java.lang.String'] and parameter[3][@type='android.os.Bundle'] and parameter[4][@type='long']]"
		[Register ("logEventInternalNoInterceptor", "(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;J)V", "GetLogEventInternalNoInterceptor_Ljava_lang_String_Ljava_lang_String_Landroid_os_Bundle_JHandler")]
		public virtual unsafe void LogEventInternalNoInterceptor (string p0, string p1, global::Android.OS.Bundle p2, long p3)
		{
			const string __id = "logEventInternalNoInterceptor.(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;J)V";
			IntPtr native_p0 = JNIEnv.NewString (p0);
			IntPtr native_p1 = JNIEnv.NewString (p1);
			try {
				JniArgumentValue* __args = stackalloc JniArgumentValue [4];
				__args [0] = new JniArgumentValue (native_p0);
				__args [1] = new JniArgumentValue (native_p1);
				__args [2] = new JniArgumentValue ((p2 == null) ? IntPtr.Zero : ((global::Java.Lang.Object) p2).Handle);
				__args [3] = new JniArgumentValue (p3);
				_members.InstanceMethods.InvokeVirtualVoidMethod (__id, this, __args);
			} finally {
				JNIEnv.DeleteLocalRef (native_p0);
				JNIEnv.DeleteLocalRef (native_p1);
			}
		}

		static Delegate cb_registerOnMeasurementEventListener_Lcom_google_android_gms_measurement_AppMeasurement_OnEventListener_;
#pragma warning disable 0169
		static Delegate GetRegisterOnMeasurementEventListener_Lcom_google_android_gms_measurement_AppMeasurement_OnEventListener_Handler ()
		{
			if (cb_registerOnMeasurementEventListener_Lcom_google_android_gms_measurement_AppMeasurement_OnEventListener_ == null)
				cb_registerOnMeasurementEventListener_Lcom_google_android_gms_measurement_AppMeasurement_OnEventListener_ = JNINativeWrapper.CreateDelegate ((Action<IntPtr, IntPtr, IntPtr>) n_RegisterOnMeasurementEventListener_Lcom_google_android_gms_measurement_AppMeasurement_OnEventListener_);
			return cb_registerOnMeasurementEventListener_Lcom_google_android_gms_measurement_AppMeasurement_OnEventListener_;
		}

		static void n_RegisterOnMeasurementEventListener_Lcom_google_android_gms_measurement_AppMeasurement_OnEventListener_ (IntPtr jnienv, IntPtr native__this, IntPtr native_p0)
		{
			global::Android.Gms.Measurement.AppMeasurement __this = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
			global::Android.Gms.Measurement.AppMeasurement.IOnEventListener p0 = (global::Android.Gms.Measurement.AppMeasurement.IOnEventListener)global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement.IOnEventListener> (native_p0, JniHandleOwnership.DoNotTransfer);
			__this.RegisterOnMeasurementEventListener (p0);
		}
#pragma warning restore 0169

		// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='registerOnMeasurementEventListener' and count(parameter)=1 and parameter[1][@type='com.google.android.gms.measurement.AppMeasurement.OnEventListener']]"
		[Register ("registerOnMeasurementEventListener", "(Lcom/google/android/gms/measurement/AppMeasurement$OnEventListener;)V", "GetRegisterOnMeasurementEventListener_Lcom_google_android_gms_measurement_AppMeasurement_OnEventListener_Handler")]
		public virtual unsafe void RegisterOnMeasurementEventListener (global::Android.Gms.Measurement.AppMeasurement.IOnEventListener p0)
		{
			const string __id = "registerOnMeasurementEventListener.(Lcom/google/android/gms/measurement/AppMeasurement$OnEventListener;)V";
			try {
				JniArgumentValue* __args = stackalloc JniArgumentValue [1];
				__args [0] = new JniArgumentValue ((p0 == null) ? IntPtr.Zero : ((global::Java.Lang.Object) p0).Handle);
				_members.InstanceMethods.InvokeVirtualVoidMethod (__id, this, __args);
			} finally {
			}
		}

		static Delegate cb_setConditionalUserProperty_Lcom_google_android_gms_measurement_AppMeasurement_ConditionalUserProperty_;
#pragma warning disable 0169
		static Delegate GetSetConditionalUserProperty_Lcom_google_android_gms_measurement_AppMeasurement_ConditionalUserProperty_Handler ()
		{
			if (cb_setConditionalUserProperty_Lcom_google_android_gms_measurement_AppMeasurement_ConditionalUserProperty_ == null)
				cb_setConditionalUserProperty_Lcom_google_android_gms_measurement_AppMeasurement_ConditionalUserProperty_ = JNINativeWrapper.CreateDelegate ((Action<IntPtr, IntPtr, IntPtr>) n_SetConditionalUserProperty_Lcom_google_android_gms_measurement_AppMeasurement_ConditionalUserProperty_);
			return cb_setConditionalUserProperty_Lcom_google_android_gms_measurement_AppMeasurement_ConditionalUserProperty_;
		}

		static void n_SetConditionalUserProperty_Lcom_google_android_gms_measurement_AppMeasurement_ConditionalUserProperty_ (IntPtr jnienv, IntPtr native__this, IntPtr native_p0)
		{
			global::Android.Gms.Measurement.AppMeasurement __this = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
			global::Android.Gms.Measurement.AppMeasurement.ConditionalUserProperty p0 = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement.ConditionalUserProperty> (native_p0, JniHandleOwnership.DoNotTransfer);
			__this.SetConditionalUserProperty (p0);
		}
#pragma warning restore 0169

		// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='setConditionalUserProperty' and count(parameter)=1 and parameter[1][@type='com.google.android.gms.measurement.AppMeasurement.ConditionalUserProperty']]"
		[Register ("setConditionalUserProperty", "(Lcom/google/android/gms/measurement/AppMeasurement$ConditionalUserProperty;)V", "GetSetConditionalUserProperty_Lcom_google_android_gms_measurement_AppMeasurement_ConditionalUserProperty_Handler")]
		public virtual unsafe void SetConditionalUserProperty (global::Android.Gms.Measurement.AppMeasurement.ConditionalUserProperty p0)
		{
			const string __id = "setConditionalUserProperty.(Lcom/google/android/gms/measurement/AppMeasurement$ConditionalUserProperty;)V";
			try {
				JniArgumentValue* __args = stackalloc JniArgumentValue [1];
				__args [0] = new JniArgumentValue ((p0 == null) ? IntPtr.Zero : ((global::Java.Lang.Object) p0).Handle);
				_members.InstanceMethods.InvokeVirtualVoidMethod (__id, this, __args);
			} finally {
			}
		}

		static Delegate cb_setConditionalUserPropertyAs_Lcom_google_android_gms_measurement_AppMeasurement_ConditionalUserProperty_;
#pragma warning disable 0169
		static Delegate GetSetConditionalUserPropertyAs_Lcom_google_android_gms_measurement_AppMeasurement_ConditionalUserProperty_Handler ()
		{
			if (cb_setConditionalUserPropertyAs_Lcom_google_android_gms_measurement_AppMeasurement_ConditionalUserProperty_ == null)
				cb_setConditionalUserPropertyAs_Lcom_google_android_gms_measurement_AppMeasurement_ConditionalUserProperty_ = JNINativeWrapper.CreateDelegate ((Action<IntPtr, IntPtr, IntPtr>) n_SetConditionalUserPropertyAs_Lcom_google_android_gms_measurement_AppMeasurement_ConditionalUserProperty_);
			return cb_setConditionalUserPropertyAs_Lcom_google_android_gms_measurement_AppMeasurement_ConditionalUserProperty_;
		}

		static void n_SetConditionalUserPropertyAs_Lcom_google_android_gms_measurement_AppMeasurement_ConditionalUserProperty_ (IntPtr jnienv, IntPtr native__this, IntPtr native_p0)
		{
			global::Android.Gms.Measurement.AppMeasurement __this = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
			global::Android.Gms.Measurement.AppMeasurement.ConditionalUserProperty p0 = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement.ConditionalUserProperty> (native_p0, JniHandleOwnership.DoNotTransfer);
			__this.SetConditionalUserPropertyAs (p0);
		}
#pragma warning restore 0169

		// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='setConditionalUserPropertyAs' and count(parameter)=1 and parameter[1][@type='com.google.android.gms.measurement.AppMeasurement.ConditionalUserProperty']]"
		[Register ("setConditionalUserPropertyAs", "(Lcom/google/android/gms/measurement/AppMeasurement$ConditionalUserProperty;)V", "GetSetConditionalUserPropertyAs_Lcom_google_android_gms_measurement_AppMeasurement_ConditionalUserProperty_Handler")]
		protected virtual unsafe void SetConditionalUserPropertyAs (global::Android.Gms.Measurement.AppMeasurement.ConditionalUserProperty p0)
		{
			const string __id = "setConditionalUserPropertyAs.(Lcom/google/android/gms/measurement/AppMeasurement$ConditionalUserProperty;)V";
			try {
				JniArgumentValue* __args = stackalloc JniArgumentValue [1];
				__args [0] = new JniArgumentValue ((p0 == null) ? IntPtr.Zero : ((global::Java.Lang.Object) p0).Handle);
				_members.InstanceMethods.InvokeVirtualVoidMethod (__id, this, __args);
			} finally {
			}
		}

		static Delegate cb_setEventInterceptor_Lcom_google_android_gms_measurement_AppMeasurement_EventInterceptor_;
#pragma warning disable 0169
		static Delegate GetSetEventInterceptor_Lcom_google_android_gms_measurement_AppMeasurement_EventInterceptor_Handler ()
		{
			if (cb_setEventInterceptor_Lcom_google_android_gms_measurement_AppMeasurement_EventInterceptor_ == null)
				cb_setEventInterceptor_Lcom_google_android_gms_measurement_AppMeasurement_EventInterceptor_ = JNINativeWrapper.CreateDelegate ((Action<IntPtr, IntPtr, IntPtr>) n_SetEventInterceptor_Lcom_google_android_gms_measurement_AppMeasurement_EventInterceptor_);
			return cb_setEventInterceptor_Lcom_google_android_gms_measurement_AppMeasurement_EventInterceptor_;
		}

		static void n_SetEventInterceptor_Lcom_google_android_gms_measurement_AppMeasurement_EventInterceptor_ (IntPtr jnienv, IntPtr native__this, IntPtr native_p0)
		{
			global::Android.Gms.Measurement.AppMeasurement __this = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
			global::Android.Gms.Measurement.AppMeasurement.IEventInterceptor p0 = (global::Android.Gms.Measurement.AppMeasurement.IEventInterceptor)global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement.IEventInterceptor> (native_p0, JniHandleOwnership.DoNotTransfer);
			__this.SetEventInterceptor (p0);
		}
#pragma warning restore 0169

		// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='setEventInterceptor' and count(parameter)=1 and parameter[1][@type='com.google.android.gms.measurement.AppMeasurement.EventInterceptor']]"
		[Register ("setEventInterceptor", "(Lcom/google/android/gms/measurement/AppMeasurement$EventInterceptor;)V", "GetSetEventInterceptor_Lcom_google_android_gms_measurement_AppMeasurement_EventInterceptor_Handler")]
		public virtual unsafe void SetEventInterceptor (global::Android.Gms.Measurement.AppMeasurement.IEventInterceptor p0)
		{
			const string __id = "setEventInterceptor.(Lcom/google/android/gms/measurement/AppMeasurement$EventInterceptor;)V";
			try {
				JniArgumentValue* __args = stackalloc JniArgumentValue [1];
				__args [0] = new JniArgumentValue ((p0 == null) ? IntPtr.Zero : ((global::Java.Lang.Object) p0).Handle);
				_members.InstanceMethods.InvokeVirtualVoidMethod (__id, this, __args);
			} finally {
			}
		}

		static Delegate cb_setMeasurementEnabled_Z;
#pragma warning disable 0169
		[Obsolete]
		static Delegate GetSetMeasurementEnabled_ZHandler ()
		{
			if (cb_setMeasurementEnabled_Z == null)
				cb_setMeasurementEnabled_Z = JNINativeWrapper.CreateDelegate ((Action<IntPtr, IntPtr, bool>) n_SetMeasurementEnabled_Z);
			return cb_setMeasurementEnabled_Z;
		}

		[Obsolete]
		static void n_SetMeasurementEnabled_Z (IntPtr jnienv, IntPtr native__this, bool p0)
		{
			global::Android.Gms.Measurement.AppMeasurement __this = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
			__this.SetMeasurementEnabled (p0);
		}
#pragma warning restore 0169

		// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='setMeasurementEnabled' and count(parameter)=1 and parameter[1][@type='boolean']]"
		[Obsolete (@"deprecated")]
		[Register ("setMeasurementEnabled", "(Z)V", "GetSetMeasurementEnabled_ZHandler")]
		public virtual unsafe void SetMeasurementEnabled (bool p0)
		{
			const string __id = "setMeasurementEnabled.(Z)V";
			try {
				JniArgumentValue* __args = stackalloc JniArgumentValue [1];
				__args [0] = new JniArgumentValue (p0);
				_members.InstanceMethods.InvokeVirtualVoidMethod (__id, this, __args);
			} finally {
			}
		}

		// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='setMinimumSessionDuration' and count(parameter)=1 and parameter[1][@type='long']]"
		[Register ("setMinimumSessionDuration", "(J)V", "")]
		public unsafe void SetMinimumSessionDuration (long p0)
		{
			const string __id = "setMinimumSessionDuration.(J)V";
			try {
				JniArgumentValue* __args = stackalloc JniArgumentValue [1];
				__args [0] = new JniArgumentValue (p0);
				_members.InstanceMethods.InvokeNonvirtualVoidMethod (__id, this, __args);
			} finally {
			}
		}

		// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='setSessionTimeoutDuration' and count(parameter)=1 and parameter[1][@type='long']]"
		[Register ("setSessionTimeoutDuration", "(J)V", "")]
		public unsafe void SetSessionTimeoutDuration (long p0)
		{
			const string __id = "setSessionTimeoutDuration.(J)V";
			try {
				JniArgumentValue* __args = stackalloc JniArgumentValue [1];
				__args [0] = new JniArgumentValue (p0);
				_members.InstanceMethods.InvokeNonvirtualVoidMethod (__id, this, __args);
			} finally {
			}
		}

		// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='setUserProperty' and count(parameter)=2 and parameter[1][@type='java.lang.String'] and parameter[2][@type='java.lang.String']]"
		[Register ("setUserProperty", "(Ljava/lang/String;Ljava/lang/String;)V", "")]
		public unsafe void SetUserProperty (string p0, string p1)
		{
			const string __id = "setUserProperty.(Ljava/lang/String;Ljava/lang/String;)V";
			IntPtr native_p0 = JNIEnv.NewString (p0);
			IntPtr native_p1 = JNIEnv.NewString (p1);
			try {
				JniArgumentValue* __args = stackalloc JniArgumentValue [2];
				__args [0] = new JniArgumentValue (native_p0);
				__args [1] = new JniArgumentValue (native_p1);
				_members.InstanceMethods.InvokeNonvirtualVoidMethod (__id, this, __args);
			} finally {
				JNIEnv.DeleteLocalRef (native_p0);
				JNIEnv.DeleteLocalRef (native_p1);
			}
		}

		static Delegate cb_setUserPropertyInternal_Ljava_lang_String_Ljava_lang_String_Ljava_lang_Object_;
#pragma warning disable 0169
		static Delegate GetSetUserPropertyInternal_Ljava_lang_String_Ljava_lang_String_Ljava_lang_Object_Handler ()
		{
			if (cb_setUserPropertyInternal_Ljava_lang_String_Ljava_lang_String_Ljava_lang_Object_ == null)
				cb_setUserPropertyInternal_Ljava_lang_String_Ljava_lang_String_Ljava_lang_Object_ = JNINativeWrapper.CreateDelegate ((Action<IntPtr, IntPtr, IntPtr, IntPtr, IntPtr>) n_SetUserPropertyInternal_Ljava_lang_String_Ljava_lang_String_Ljava_lang_Object_);
			return cb_setUserPropertyInternal_Ljava_lang_String_Ljava_lang_String_Ljava_lang_Object_;
		}

		static void n_SetUserPropertyInternal_Ljava_lang_String_Ljava_lang_String_Ljava_lang_Object_ (IntPtr jnienv, IntPtr native__this, IntPtr native_p0, IntPtr native_p1, IntPtr native_p2)
		{
			global::Android.Gms.Measurement.AppMeasurement __this = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
			string p0 = JNIEnv.GetString (native_p0, JniHandleOwnership.DoNotTransfer);
			string p1 = JNIEnv.GetString (native_p1, JniHandleOwnership.DoNotTransfer);
			global::Java.Lang.Object p2 = global::Java.Lang.Object.GetObject<global::Java.Lang.Object> (native_p2, JniHandleOwnership.DoNotTransfer);
			__this.SetUserPropertyInternal (p0, p1, p2);
		}
#pragma warning restore 0169

		// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='setUserPropertyInternal' and count(parameter)=3 and parameter[1][@type='java.lang.String'] and parameter[2][@type='java.lang.String'] and parameter[3][@type='java.lang.Object']]"
		[Register ("setUserPropertyInternal", "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V", "GetSetUserPropertyInternal_Ljava_lang_String_Ljava_lang_String_Ljava_lang_Object_Handler")]
		public virtual unsafe void SetUserPropertyInternal (string p0, string p1, global::Java.Lang.Object p2)
		{
			const string __id = "setUserPropertyInternal.(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V";
			IntPtr native_p0 = JNIEnv.NewString (p0);
			IntPtr native_p1 = JNIEnv.NewString (p1);
			try {
				JniArgumentValue* __args = stackalloc JniArgumentValue [3];
				__args [0] = new JniArgumentValue (native_p0);
				__args [1] = new JniArgumentValue (native_p1);
				__args [2] = new JniArgumentValue ((p2 == null) ? IntPtr.Zero : ((global::Java.Lang.Object) p2).Handle);
				_members.InstanceMethods.InvokeVirtualVoidMethod (__id, this, __args);
			} finally {
				JNIEnv.DeleteLocalRef (native_p0);
				JNIEnv.DeleteLocalRef (native_p1);
			}
		}

		static Delegate cb_unregisterOnMeasurementEventListener_Lcom_google_android_gms_measurement_AppMeasurement_OnEventListener_;
#pragma warning disable 0169
		static Delegate GetUnregisterOnMeasurementEventListener_Lcom_google_android_gms_measurement_AppMeasurement_OnEventListener_Handler ()
		{
			if (cb_unregisterOnMeasurementEventListener_Lcom_google_android_gms_measurement_AppMeasurement_OnEventListener_ == null)
				cb_unregisterOnMeasurementEventListener_Lcom_google_android_gms_measurement_AppMeasurement_OnEventListener_ = JNINativeWrapper.CreateDelegate ((Action<IntPtr, IntPtr, IntPtr>) n_UnregisterOnMeasurementEventListener_Lcom_google_android_gms_measurement_AppMeasurement_OnEventListener_);
			return cb_unregisterOnMeasurementEventListener_Lcom_google_android_gms_measurement_AppMeasurement_OnEventListener_;
		}

		static void n_UnregisterOnMeasurementEventListener_Lcom_google_android_gms_measurement_AppMeasurement_OnEventListener_ (IntPtr jnienv, IntPtr native__this, IntPtr native_p0)
		{
			global::Android.Gms.Measurement.AppMeasurement __this = global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
			global::Android.Gms.Measurement.AppMeasurement.IOnEventListener p0 = (global::Android.Gms.Measurement.AppMeasurement.IOnEventListener)global::Java.Lang.Object.GetObject<global::Android.Gms.Measurement.AppMeasurement.IOnEventListener> (native_p0, JniHandleOwnership.DoNotTransfer);
			__this.UnregisterOnMeasurementEventListener (p0);
		}
#pragma warning restore 0169

		// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.measurement']/class[@name='AppMeasurement']/method[@name='unregisterOnMeasurementEventListener' and count(parameter)=1 and parameter[1][@type='com.google.android.gms.measurement.AppMeasurement.OnEventListener']]"
		[Register ("unregisterOnMeasurementEventListener", "(Lcom/google/android/gms/measurement/AppMeasurement$OnEventListener;)V", "GetUnregisterOnMeasurementEventListener_Lcom_google_android_gms_measurement_AppMeasurement_OnEventListener_Handler")]
		public virtual unsafe void UnregisterOnMeasurementEventListener (global::Android.Gms.Measurement.AppMeasurement.IOnEventListener p0)
		{
			const string __id = "unregisterOnMeasurementEventListener.(Lcom/google/android/gms/measurement/AppMeasurement$OnEventListener;)V";
			try {
				JniArgumentValue* __args = stackalloc JniArgumentValue [1];
				__args [0] = new JniArgumentValue ((p0 == null) ? IntPtr.Zero : ((global::Java.Lang.Object) p0).Handle);
				_members.InstanceMethods.InvokeVirtualVoidMethod (__id, this, __args);
			} finally {
			}
		}

	}
}

moljac avatar Apr 27 '20 08:04 moljac

Details - decompiled *.class files:

Xamarin.GooglePlayServices.Measurement.Impl (play-services-measurement-impl)

package com.google.android.gms.measurement;

import com.google.android.gms.common.annotation.*;
import android.content.*;
import android.os.*;
import com.google.android.gms.common.util.*;
import com.google.android.gms.common.internal.*;
import androidx.collection.*;
import androidx.annotation.*;
import java.util.*;
import com.google.android.gms.measurement.internal.*;

@Deprecated
@ShowFirstParty
@KeepForSdk
public class AppMeasurement
{
    @ShowFirstParty
    @KeepForSdk
    public static final String CRASH_ORIGIN = "crash";
    @ShowFirstParty
    @KeepForSdk
    public static final String FCM_ORIGIN = "fcm";
    @ShowFirstParty
    @KeepForSdk
    public static final String FIAM_ORIGIN = "fiam";
    private static volatile AppMeasurement zza;
    private final zzfn zzb;
    private final zzhp zzc;
    private final boolean zzd;
    
    @Deprecated
    @ShowFirstParty
    @Keep
    @KeepForSdk
    @RequiresPermission(allOf = { "android.permission.INTERNET", "android.permission.ACCESS_NETWORK_STATE", "android.permission.WAKE_LOCK" })
    public static AppMeasurement getInstance(final Context context) {
        return zza(context, null, null);
    }
    
    @VisibleForTesting
    private static AppMeasurement zza(final Context context, final String s, final String s2) {
        if (AppMeasurement.zza == null) {
            synchronized (AppMeasurement.class) {
                if (AppMeasurement.zza == null) {
                    final zzhp zzb;
                    if ((zzb = zzb(context, null)) != null) {
                        AppMeasurement.zza = new AppMeasurement(zzb);
                    }
                    else {
                        AppMeasurement.zza = new AppMeasurement(zzfn.zza(context, null, null, null));
                    }
                }
            }
        }
        return AppMeasurement.zza;
    }
    
    public static AppMeasurement zza(final Context context, final Bundle bundle) {
        if (AppMeasurement.zza == null) {
            synchronized (AppMeasurement.class) {
                if (AppMeasurement.zza == null) {
                    final zzhp zzb;
                    if ((zzb = zzb(context, bundle)) != null) {
                        AppMeasurement.zza = new AppMeasurement(zzb);
                    }
                    else {
                        AppMeasurement.zza = new AppMeasurement(zzfn.zza(context, null, null, bundle));
                    }
                }
            }
        }
        return AppMeasurement.zza;
    }
    
    private static zzhp zzb(final Context context, final Bundle bundle) {
        Class<?> forName;
        try {
            forName = Class.forName("com.google.firebase.analytics.FirebaseAnalytics");
        }
        catch (ClassNotFoundException ex) {
            return null;
        }
        try {
            return (zzhp)forName.getDeclaredMethod("getScionFrontendApiImplementation", Context.class, Bundle.class).invoke(null, context, bundle);
        }
        catch (Exception ex2) {
            return null;
        }
    }
    
    @Deprecated
    @KeepForSdk
    public void setMeasurementEnabled(final boolean b) {
        if (this.zzd) {
            this.zzc.zza(b);
            return;
        }
        this.zzb.zzh().zza(b);
    }
    
    public final void zza(final boolean b) {
        if (this.zzd) {
            this.zzc.zzb(b);
            return;
        }
        this.zzb.zzh().zzb(b);
    }
    
    private AppMeasurement(final zzfn zzb) {
        Preconditions.checkNotNull((Object)zzb);
        this.zzb = zzb;
        this.zzc = null;
        this.zzd = false;
    }
    
    private AppMeasurement(final zzhp zzc) {
        Preconditions.checkNotNull((Object)zzc);
        this.zzc = zzc;
        this.zzb = null;
        this.zzd = true;
    }
    
    @ShowFirstParty
    @Keep
    public void logEventInternal(final String s, final String s2, final Bundle bundle) {
        if (this.zzd) {
            this.zzc.zza(s, s2, bundle);
            return;
        }
        this.zzb.zzh().zza(s, s2, bundle);
    }
    
    @ShowFirstParty
    @KeepForSdk
    public void logEventInternalNoInterceptor(final String s, final String s2, final Bundle bundle, final long n) {
        if (this.zzd) {
            this.zzc.zza(s, s2, bundle, n);
            return;
        }
        this.zzb.zzh().zza(s, s2, bundle, true, false, n);
    }
    
    @ShowFirstParty
    @KeepForSdk
    public void setUserPropertyInternal(final String s, final String s2, final Object o) {
        Preconditions.checkNotEmpty(s);
        if (this.zzd) {
            this.zzc.zza(s, s2, o);
            return;
        }
        this.zzb.zzh().zza(s, s2, o, true);
    }
    
    @WorkerThread
    @ShowFirstParty
    @KeepForSdk
    public Map<String, Object> getUserProperties(final boolean b) {
        if (this.zzd) {
            return this.zzc.zza(null, null, b);
        }
        final List<zzjw> zzc = this.zzb.zzh().zzc(b);
        final ArrayMap arrayMap = new ArrayMap(zzc.size());
        for (final zzjw zzjw : zzc) {
            ((Map<String, Object>)arrayMap).put(zzjw.zza, zzjw.zza());
        }
        return (Map<String, Object>)arrayMap;
    }
    
    @WorkerThread
    @ShowFirstParty
    @KeepForSdk
    public void setEventInterceptor(final EventInterceptor eventInterceptor) {
        if (this.zzd) {
            this.zzc.zza((zzgo)eventInterceptor);
            return;
        }
        this.zzb.zzh().zza((zzgo)eventInterceptor);
    }
    
    @ShowFirstParty
    @KeepForSdk
    public void registerOnMeasurementEventListener(final OnEventListener onEventListener) {
        if (this.zzd) {
            this.zzc.zza((zzgr)onEventListener);
            return;
        }
        this.zzb.zzh().zza((zzgr)onEventListener);
    }
    
    @ShowFirstParty
    @KeepForSdk
    public void unregisterOnMeasurementEventListener(final OnEventListener onEventListener) {
        if (this.zzd) {
            this.zzc.zzb((zzgr)onEventListener);
            return;
        }
        this.zzb.zzh().zzb((zzgr)onEventListener);
    }
    
    @Nullable
    @Keep
    public String getCurrentScreenName() {
        if (this.zzd) {
            return this.zzc.zza();
        }
        return this.zzb.zzh().zzaj();
    }
    
    @Nullable
    @Keep
    public String getCurrentScreenClass() {
        if (this.zzd) {
            return this.zzc.zzb();
        }
        return this.zzb.zzh().zzak();
    }
    
    @Nullable
    @Keep
    public String getAppInstanceId() {
        if (this.zzd) {
            return this.zzc.zzc();
        }
        return this.zzb.zzh().zzah();
    }
    
    @Nullable
    @Keep
    public String getGmpAppId() {
        if (this.zzd) {
            return this.zzc.zzd();
        }
        return this.zzb.zzh().zzal();
    }
    
    @Keep
    public long generateEventId() {
        if (this.zzd) {
            return this.zzc.zze();
        }
        return this.zzb.zzi().zzg();
    }
    
    @Keep
    public void beginAdUnitExposure(@NonNull @Size(min = 1L) final String s) {
        if (this.zzd) {
            this.zzc.zza(s);
            return;
        }
        this.zzb.zzz().zza(s, this.zzb.zzm().elapsedRealtime());
    }
    
    @Keep
    public void endAdUnitExposure(@NonNull @Size(min = 1L) final String s) {
        if (this.zzd) {
            this.zzc.zzb(s);
            return;
        }
        this.zzb.zzz().zzb(s, this.zzb.zzm().elapsedRealtime());
    }
    
    @Keep
    @ShowFirstParty
    @KeepForSdk
    public void setConditionalUserProperty(@NonNull final ConditionalUserProperty conditionalUserProperty) {
        Preconditions.checkNotNull((Object)conditionalUserProperty);
        if (this.zzd) {
            this.zzc.zza(conditionalUserProperty.zza());
            return;
        }
        this.zzb.zzh().zza(conditionalUserProperty.zza());
    }
    
    @Keep
    @VisibleForTesting
    protected void setConditionalUserPropertyAs(@NonNull final ConditionalUserProperty conditionalUserProperty) {
        Preconditions.checkNotNull((Object)conditionalUserProperty);
        if (this.zzd) {
            throw new IllegalStateException("Unexpected call on client side");
        }
        this.zzb.zzh().zzb(conditionalUserProperty.zza());
    }
    
    @Keep
    @ShowFirstParty
    @KeepForSdk
    public void clearConditionalUserProperty(@NonNull @Size(min = 1L, max = 24L) final String s, @Nullable final String s2, @Nullable final Bundle bundle) {
        if (this.zzd) {
            this.zzc.zzb(s, s2, bundle);
            return;
        }
        this.zzb.zzh().zzc(s, s2, bundle);
    }
    
    @Keep
    @VisibleForTesting
    protected void clearConditionalUserPropertyAs(@NonNull @Size(min = 1L) final String s, @NonNull @Size(min = 1L, max = 24L) final String s2, @Nullable final String s3, @Nullable final Bundle bundle) {
        if (this.zzd) {
            throw new IllegalStateException("Unexpected call on client side");
        }
        this.zzb.zzh().zza(s, s2, s3, bundle);
    }
    
    @WorkerThread
    @Keep
    @VisibleForTesting
    protected Map<String, Object> getUserProperties(@Nullable final String s, @Nullable @Size(min = 1L, max = 24L) final String s2, final boolean b) {
        if (this.zzd) {
            return this.zzc.zza(s, s2, b);
        }
        return this.zzb.zzh().zza(s, s2, b);
    }
    
    @WorkerThread
    @Keep
    @VisibleForTesting
    protected Map<String, Object> getUserPropertiesAs(@NonNull @Size(min = 1L) final String s, @Nullable final String s2, @Nullable @Size(min = 1L, max = 23L) final String s3, final boolean b) {
        if (this.zzd) {
            throw new IllegalStateException("Unexpected call on client side");
        }
        return this.zzb.zzh().zza(s, s2, s3, b);
    }
    
    @WorkerThread
    @Keep
    @ShowFirstParty
    @KeepForSdk
    public List<ConditionalUserProperty> getConditionalUserProperties(@Nullable final String s, @Nullable @Size(min = 1L, max = 23L) final String s2) {
        List<Bundle> list;
        if (this.zzd) {
            list = this.zzc.zza(s, s2);
        }
        else {
            list = this.zzb.zzh().zza(s, s2);
        }
        final ArrayList list2 = new ArrayList<ConditionalUserProperty>((list == null) ? 0 : list.size());
        final Iterator<Bundle> iterator = list.iterator();
        while (iterator.hasNext()) {
            list2.add(new ConditionalUserProperty(iterator.next(), null));
        }
        return (List<ConditionalUserProperty>)list2;
    }
    
    @WorkerThread
    @Keep
    @VisibleForTesting
    protected List<ConditionalUserProperty> getConditionalUserPropertiesAs(@NonNull @Size(min = 1L) final String s, @Nullable final String s2, @Nullable @Size(min = 1L, max = 23L) final String s3) {
        if (this.zzd) {
            throw new IllegalStateException("Unexpected call on client side");
        }
        final ArrayList<Bundle> zza = this.zzb.zzh().zza(s, s2, s3);
        final ArrayList list = new ArrayList<ConditionalUserProperty>((zza == null) ? 0 : zza.size());
        final ArrayList<Object> list2;
        final int size = (list2 = (ArrayList<Object>)zza).size();
        int i = 0;
        while (i < size) {
            final Bundle value = list2.get(i);
            ++i;
            list.add(new ConditionalUserProperty(value, null));
        }
        return (List<ConditionalUserProperty>)list;
    }
    
    @WorkerThread
    @Keep
    @ShowFirstParty
    @KeepForSdk
    public int getMaxUserProperties(@NonNull @Size(min = 1L) final String s) {
        if (this.zzd) {
            return this.zzc.zzc(s);
        }
        this.zzb.zzh();
        Preconditions.checkNotEmpty(s);
        return 25;
    }
    
    @KeepForSdk
    public Boolean getBoolean() {
        if (this.zzd) {
            return (Boolean)this.zzc.zza(4);
        }
        return this.zzb.zzh().zzac();
    }
    
    @KeepForSdk
    public String getString() {
        if (this.zzd) {
            return (String)this.zzc.zza(0);
        }
        return this.zzb.zzh().zzad();
    }
    
    @KeepForSdk
    public Long getLong() {
        if (this.zzd) {
            return (Long)this.zzc.zza(1);
        }
        return this.zzb.zzh().zzae();
    }
    
    @KeepForSdk
    public Integer getInteger() {
        if (this.zzd) {
            return (Integer)this.zzc.zza(3);
        }
        return this.zzb.zzh().zzaf();
    }
    
    @KeepForSdk
    public Double getDouble() {
        if (this.zzd) {
            return (Double)this.zzc.zza(2);
        }
        return this.zzb.zzh().zzag();
    }
    
    @ShowFirstParty
    @KeepForSdk
    public static class ConditionalUserProperty
    {
        @Keep
        @ShowFirstParty
        @KeepForSdk
        public String mAppId;
        @Keep
        @ShowFirstParty
        @KeepForSdk
        public String mOrigin;
        @Keep
        @ShowFirstParty
        @KeepForSdk
        public String mName;
        @Keep
        @ShowFirstParty
        @KeepForSdk
        public Object mValue;
        @Keep
        @ShowFirstParty
        @KeepForSdk
        public String mTriggerEventName;
        @Keep
        @ShowFirstParty
        @KeepForSdk
        public long mTriggerTimeout;
        @Keep
        public String mTimedOutEventName;
        @Keep
        public Bundle mTimedOutEventParams;
        @Keep
        public String mTriggeredEventName;
        @Keep
        public Bundle mTriggeredEventParams;
        @Keep
        @ShowFirstParty
        @KeepForSdk
        public long mTimeToLive;
        @Keep
        public String mExpiredEventName;
        @Keep
        public Bundle mExpiredEventParams;
        @Keep
        @ShowFirstParty
        @KeepForSdk
        public long mCreationTimestamp;
        @Keep
        @ShowFirstParty
        @KeepForSdk
        public boolean mActive;
        @Keep
        @ShowFirstParty
        @KeepForSdk
        public long mTriggeredTimestamp;
        
        @KeepForSdk
        public ConditionalUserProperty() {
        }
        
        @KeepForSdk
        public ConditionalUserProperty(final ConditionalUserProperty conditionalUserProperty) {
            Preconditions.checkNotNull((Object)conditionalUserProperty);
            this.mAppId = conditionalUserProperty.mAppId;
            this.mOrigin = conditionalUserProperty.mOrigin;
            this.mCreationTimestamp = conditionalUserProperty.mCreationTimestamp;
            this.mName = conditionalUserProperty.mName;
            if (conditionalUserProperty.mValue != null) {
                this.mValue = zzhv.zza(conditionalUserProperty.mValue);
                if (this.mValue == null) {
                    this.mValue = conditionalUserProperty.mValue;
                }
            }
            this.mActive = conditionalUserProperty.mActive;
            this.mTriggerEventName = conditionalUserProperty.mTriggerEventName;
            this.mTriggerTimeout = conditionalUserProperty.mTriggerTimeout;
            this.mTimedOutEventName = conditionalUserProperty.mTimedOutEventName;
            if (conditionalUserProperty.mTimedOutEventParams != null) {
                this.mTimedOutEventParams = new Bundle(conditionalUserProperty.mTimedOutEventParams);
            }
            this.mTriggeredEventName = conditionalUserProperty.mTriggeredEventName;
            if (conditionalUserProperty.mTriggeredEventParams != null) {
                this.mTriggeredEventParams = new Bundle(conditionalUserProperty.mTriggeredEventParams);
            }
            this.mTriggeredTimestamp = conditionalUserProperty.mTriggeredTimestamp;
            this.mTimeToLive = conditionalUserProperty.mTimeToLive;
            this.mExpiredEventName = conditionalUserProperty.mExpiredEventName;
            if (conditionalUserProperty.mExpiredEventParams != null) {
                this.mExpiredEventParams = new Bundle(conditionalUserProperty.mExpiredEventParams);
            }
        }
        
        private ConditionalUserProperty(@NonNull final Bundle bundle) {
            Preconditions.checkNotNull((Object)bundle);
            this.mAppId = (String)zzgk.zza(bundle, "app_id", (Class)String.class, (Object)null);
            this.mOrigin = (String)zzgk.zza(bundle, "origin", (Class)String.class, (Object)null);
            this.mName = (String)zzgk.zza(bundle, "name", (Class)String.class, (Object)null);
            this.mValue = zzgk.zza(bundle, "value", (Class)Object.class, (Object)null);
            this.mTriggerEventName = (String)zzgk.zza(bundle, "trigger_event_name", (Class)String.class, (Object)null);
            this.mTriggerTimeout = (long)zzgk.zza(bundle, "trigger_timeout", (Class)Long.class, (Object)0L);
            this.mTimedOutEventName = (String)zzgk.zza(bundle, "timed_out_event_name", (Class)String.class, (Object)null);
            this.mTimedOutEventParams = (Bundle)zzgk.zza(bundle, "timed_out_event_params", (Class)Bundle.class, (Object)null);
            this.mTriggeredEventName = (String)zzgk.zza(bundle, "triggered_event_name", (Class)String.class, (Object)null);
            this.mTriggeredEventParams = (Bundle)zzgk.zza(bundle, "triggered_event_params", (Class)Bundle.class, (Object)null);
            this.mTimeToLive = (long)zzgk.zza(bundle, "time_to_live", (Class)Long.class, (Object)0L);
            this.mExpiredEventName = (String)zzgk.zza(bundle, "expired_event_name", (Class)String.class, (Object)null);
            this.mExpiredEventParams = (Bundle)zzgk.zza(bundle, "expired_event_params", (Class)Bundle.class, (Object)null);
        }
        
        private final Bundle zza() {
            final Bundle bundle = new Bundle();
            if (this.mAppId != null) {
                bundle.putString("app_id", this.mAppId);
            }
            if (this.mOrigin != null) {
                bundle.putString("origin", this.mOrigin);
            }
            if (this.mName != null) {
                bundle.putString("name", this.mName);
            }
            if (this.mValue != null) {
                zzgk.zza(bundle, this.mValue);
            }
            if (this.mTriggerEventName != null) {
                bundle.putString("trigger_event_name", this.mTriggerEventName);
            }
            bundle.putLong("trigger_timeout", this.mTriggerTimeout);
            if (this.mTimedOutEventName != null) {
                bundle.putString("timed_out_event_name", this.mTimedOutEventName);
            }
            if (this.mTimedOutEventParams != null) {
                bundle.putBundle("timed_out_event_params", this.mTimedOutEventParams);
            }
            if (this.mTriggeredEventName != null) {
                bundle.putString("triggered_event_name", this.mTriggeredEventName);
            }
            if (this.mTriggeredEventParams != null) {
                bundle.putBundle("triggered_event_params", this.mTriggeredEventParams);
            }
            bundle.putLong("time_to_live", this.mTimeToLive);
            if (this.mExpiredEventName != null) {
                bundle.putString("expired_event_name", this.mExpiredEventName);
            }
            if (this.mExpiredEventParams != null) {
                bundle.putBundle("expired_event_params", this.mExpiredEventParams);
            }
            bundle.putLong("creation_timestamp", this.mCreationTimestamp);
            bundle.putBoolean("active", this.mActive);
            bundle.putLong("triggered_timestamp", this.mTriggeredTimestamp);
            return bundle;
        }
    }
    
    @ShowFirstParty
    @KeepForSdk
    public static final class UserProperty extends zzgp
    {
        @ShowFirstParty
        @KeepForSdk
        public static final String FIREBASE_LAST_NOTIFICATION = "_ln";
        
        private UserProperty() {
        }
    }
    
    @ShowFirstParty
    @KeepForSdk
    public static final class Param extends zzgm
    {
        @ShowFirstParty
        @KeepForSdk
        public static final String FATAL = "fatal";
        @ShowFirstParty
        @KeepForSdk
        public static final String TIMESTAMP = "timestamp";
        @ShowFirstParty
        @KeepForSdk
        public static final String TYPE = "type";
        
        private Param() {
        }
    }
    
    @ShowFirstParty
    @KeepForSdk
    public static final class Event extends zzgn
    {
        @ShowFirstParty
        @KeepForSdk
        public static final String APP_EXCEPTION = "_ae";
        @ShowFirstParty
        @KeepForSdk
        public static final String AD_REWARD = "_ar";
        
        private Event() {
        }
    }
    
    @ShowFirstParty
    @KeepForSdk
    public interface OnEventListener extends zzgr
    {
        @WorkerThread
        @ShowFirstParty
        @KeepForSdk
        void onEvent(final String p0, final String p1, final Bundle p2, final long p3);
    }
    
    @ShowFirstParty
    @KeepForSdk
    public interface EventInterceptor extends zzgo
    {
        @WorkerThread
        @ShowFirstParty
        @KeepForSdk
        void interceptEvent(final String p0, final String p1, final Bundle p2, final long p3);
    }
}

Xamarin.Firebase.Analytics.Impl (firebase-analytics-impl)

package com.google.android.gms.measurement;

import com.google.android.gms.common.annotation.*;
import android.content.*;
import android.os.*;
import com.google.android.gms.common.internal.*;
import android.support.v4.util.*;
import java.util.*;
import android.support.annotation.*;
import com.google.android.gms.common.util.*;
import com.google.android.gms.measurement.internal.*;

@Deprecated
public class AppMeasurement
{
    @KeepForSdk
    public static final String CRASH_ORIGIN = "crash";
    @KeepForSdk
    public static final String FCM_ORIGIN = "fcm";
    @KeepForSdk
    public static final String FIAM_ORIGIN = "fiam";
    private final zzbt zzadj;
    
    @Deprecated
    @Keep
    @RequiresPermission(allOf = { "android.permission.INTERNET", "android.permission.ACCESS_NETWORK_STATE", "android.permission.WAKE_LOCK" })
    public static AppMeasurement getInstance(final Context context) {
        return zzbt.zza(context, null).zzki();
    }
    
    public final void logEvent(@NonNull @Size(min = 1L, max = 40L) final String s, final Bundle bundle) {
        this.zzadj.zzge().zza("app", s, bundle, true);
    }
    
    public final void setUserProperty(@NonNull @Size(min = 1L, max = 24L) final String s, @Nullable @Size(max = 36L) final String s2) {
        this.zzadj.zzge().zzb("app", s, (Object)s2, false);
    }
    
    @Deprecated
    @KeepForSdk
    public void setMeasurementEnabled(final boolean measurementEnabled) {
        this.zzadj.zzge().setMeasurementEnabled(measurementEnabled);
    }
    
    public final void zzd(final boolean b) {
        this.zzadj.zzge().zzd(b);
    }
    
    public final void setMinimumSessionDuration(final long minimumSessionDuration) {
        this.zzadj.zzge().setMinimumSessionDuration(minimumSessionDuration);
    }
    
    public final void setSessionTimeoutDuration(final long sessionTimeoutDuration) {
        this.zzadj.zzge().setSessionTimeoutDuration(sessionTimeoutDuration);
    }
    
    public AppMeasurement(final zzbt zzadj) {
        Preconditions.checkNotNull((Object)zzadj);
        this.zzadj = zzadj;
    }
    
    @Keep
    public void logEventInternal(final String s, final String s2, final Bundle bundle) {
        this.zzadj.zzge().logEvent(s, s2, bundle);
    }
    
    @KeepForSdk
    public void logEventInternalNoInterceptor(final String s, final String s2, final Bundle bundle, final long n) {
        this.zzadj.zzge().logEvent(s, s2, bundle, true, false, n);
    }
    
    @KeepForSdk
    public void setUserPropertyInternal(final String s, final String s2, final Object o) {
        Preconditions.checkNotEmpty(s);
        this.zzadj.zzge().zzb(s, s2, o, true);
    }
    
    @WorkerThread
    @KeepForSdk
    public Map<String, Object> getUserProperties(final boolean b) {
        final List<zzfh> zzl = this.zzadj.zzge().zzl(b);
        final ArrayMap arrayMap = new ArrayMap(zzl.size());
        for (final zzfh zzfh : zzl) {
            ((Map<String, Object>)arrayMap).put(zzfh.name, zzfh.getValue());
        }
        return (Map<String, Object>)arrayMap;
    }
    
    @WorkerThread
    @KeepForSdk
    public void setEventInterceptor(final EventInterceptor eventInterceptor) {
        this.zzadj.zzge().setEventInterceptor(eventInterceptor);
    }
    
    @KeepForSdk
    public void registerOnMeasurementEventListener(final OnEventListener onEventListener) {
        this.zzadj.zzge().registerOnMeasurementEventListener(onEventListener);
    }
    
    @KeepForSdk
    public void unregisterOnMeasurementEventListener(final OnEventListener onEventListener) {
        this.zzadj.zzge().unregisterOnMeasurementEventListener(onEventListener);
    }
    
    @Nullable
    @Keep
    public String getCurrentScreenName() {
        return this.zzadj.zzge().getCurrentScreenName();
    }
    
    @Nullable
    @Keep
    public String getCurrentScreenClass() {
        return this.zzadj.zzge().getCurrentScreenClass();
    }
    
    @Nullable
    @Keep
    public String getAppInstanceId() {
        return this.zzadj.zzge().zzfx();
    }
    
    @Nullable
    @Keep
    public String getGmpAppId() {
        return this.zzadj.zzge().getGmpAppId();
    }
    
    @Keep
    public long generateEventId() {
        return this.zzadj.zzgm().zzmc();
    }
    
    @Keep
    public void beginAdUnitExposure(@NonNull @Size(min = 1L) final String s) {
        this.zzadj.zzgd().beginAdUnitExposure(s, this.zzadj.zzbx().elapsedRealtime());
    }
    
    @Keep
    public void endAdUnitExposure(@NonNull @Size(min = 1L) final String s) {
        this.zzadj.zzgd().endAdUnitExposure(s, this.zzadj.zzbx().elapsedRealtime());
    }
    
    @Keep
    @KeepForSdk
    public void setConditionalUserProperty(@NonNull final ConditionalUserProperty conditionalUserProperty) {
        this.zzadj.zzge().setConditionalUserProperty(conditionalUserProperty);
    }
    
    @Keep
    @VisibleForTesting
    protected void setConditionalUserPropertyAs(@NonNull final ConditionalUserProperty conditionalUserPropertyAs) {
        this.zzadj.zzge().setConditionalUserPropertyAs(conditionalUserPropertyAs);
    }
    
    @Keep
    @KeepForSdk
    public void clearConditionalUserProperty(@NonNull @Size(min = 1L, max = 24L) final String s, @Nullable final String s2, @Nullable final Bundle bundle) {
        this.zzadj.zzge().clearConditionalUserProperty(s, s2, bundle);
    }
    
    @Keep
    @VisibleForTesting
    protected void clearConditionalUserPropertyAs(@NonNull @Size(min = 1L) final String s, @NonNull @Size(min = 1L, max = 24L) final String s2, @Nullable final String s3, @Nullable final Bundle bundle) {
        this.zzadj.zzge().clearConditionalUserPropertyAs(s, s2, s3, bundle);
    }
    
    @WorkerThread
    @Keep
    @VisibleForTesting
    protected Map<String, Object> getUserProperties(@Nullable final String s, @Nullable @Size(min = 1L, max = 24L) final String s2, final boolean b) {
        return this.zzadj.zzge().getUserProperties(s, s2, b);
    }
    
    @WorkerThread
    @Keep
    @VisibleForTesting
    protected Map<String, Object> getUserPropertiesAs(@NonNull @Size(min = 1L) final String s, @Nullable final String s2, @Nullable @Size(min = 1L, max = 23L) final String s3, final boolean b) {
        return this.zzadj.zzge().getUserPropertiesAs(s, s2, s3, b);
    }
    
    @WorkerThread
    @Keep
    @KeepForSdk
    public List<ConditionalUserProperty> getConditionalUserProperties(@Nullable final String s, @Nullable @Size(min = 1L, max = 23L) final String s2) {
        return this.zzadj.zzge().getConditionalUserProperties(s, s2);
    }
    
    @WorkerThread
    @Keep
    @VisibleForTesting
    protected List<ConditionalUserProperty> getConditionalUserPropertiesAs(@NonNull @Size(min = 1L) final String s, @Nullable final String s2, @Nullable @Size(min = 1L, max = 23L) final String s3) {
        return this.zzadj.zzge().getConditionalUserPropertiesAs(s, s2, s3);
    }
    
    @WorkerThread
    @Keep
    @KeepForSdk
    public int getMaxUserProperties(@NonNull @Size(min = 1L) final String s) {
        this.zzadj.zzge();
        Preconditions.checkNotEmpty(s);
        return 25;
    }
    
    @KeepForSdk
    public Boolean getBoolean() {
        return this.zzadj.zzge().zzkt();
    }
    
    @KeepForSdk
    public String getString() {
        return this.zzadj.zzge().zzku();
    }
    
    @KeepForSdk
    public Long getLong() {
        return this.zzadj.zzge().zzkv();
    }
    
    @KeepForSdk
    public Integer getInteger() {
        return this.zzadj.zzge().zzkw();
    }
    
    @KeepForSdk
    public Double getDouble() {
        return this.zzadj.zzge().zzkx();
    }
    
    @KeepForSdk
    public static class ConditionalUserProperty
    {
        @Keep
        @KeepForSdk
        public String mAppId;
        @Keep
        @KeepForSdk
        public String mOrigin;
        @Keep
        @KeepForSdk
        public String mName;
        @Keep
        @KeepForSdk
        public Object mValue;
        @Keep
        @KeepForSdk
        public String mTriggerEventName;
        @Keep
        @KeepForSdk
        public long mTriggerTimeout;
        @Keep
        public String mTimedOutEventName;
        @Keep
        public Bundle mTimedOutEventParams;
        @Keep
        public String mTriggeredEventName;
        @Keep
        public Bundle mTriggeredEventParams;
        @Keep
        @KeepForSdk
        public long mTimeToLive;
        @Keep
        public String mExpiredEventName;
        @Keep
        public Bundle mExpiredEventParams;
        @Keep
        @KeepForSdk
        public long mCreationTimestamp;
        @Keep
        @KeepForSdk
        public boolean mActive;
        @Keep
        @KeepForSdk
        public long mTriggeredTimestamp;
        
        public ConditionalUserProperty() {
        }
        
        public ConditionalUserProperty(final ConditionalUserProperty conditionalUserProperty) {
            Preconditions.checkNotNull((Object)conditionalUserProperty);
            this.mAppId = conditionalUserProperty.mAppId;
            this.mOrigin = conditionalUserProperty.mOrigin;
            this.mCreationTimestamp = conditionalUserProperty.mCreationTimestamp;
            this.mName = conditionalUserProperty.mName;
            if (conditionalUserProperty.mValue != null) {
                this.mValue = zzfk.zzf(conditionalUserProperty.mValue);
                if (this.mValue == null) {
                    this.mValue = conditionalUserProperty.mValue;
                }
            }
            this.mActive = conditionalUserProperty.mActive;
            this.mTriggerEventName = conditionalUserProperty.mTriggerEventName;
            this.mTriggerTimeout = conditionalUserProperty.mTriggerTimeout;
            this.mTimedOutEventName = conditionalUserProperty.mTimedOutEventName;
            if (conditionalUserProperty.mTimedOutEventParams != null) {
                this.mTimedOutEventParams = new Bundle(conditionalUserProperty.mTimedOutEventParams);
            }
            this.mTriggeredEventName = conditionalUserProperty.mTriggeredEventName;
            if (conditionalUserProperty.mTriggeredEventParams != null) {
                this.mTriggeredEventParams = new Bundle(conditionalUserProperty.mTriggeredEventParams);
            }
            this.mTriggeredTimestamp = conditionalUserProperty.mTriggeredTimestamp;
            this.mTimeToLive = conditionalUserProperty.mTimeToLive;
            this.mExpiredEventName = conditionalUserProperty.mExpiredEventName;
            if (conditionalUserProperty.mExpiredEventParams != null) {
                this.mExpiredEventParams = new Bundle(conditionalUserProperty.mExpiredEventParams);
            }
        }
    }
    
    @KeepForSdk
    public static final class UserProperty
    {
        @KeepForSdk
        public static final String FIREBASE_LAST_NOTIFICATION = "_ln";
        public static final String[] zzado;
        public static final String[] zzadp;
        
        private UserProperty() {
        }
        
        public static String zzal(final String s) {
            return zzfk.zza(s, UserProperty.zzado, UserProperty.zzadp);
        }
        
        static {
            zzado = new String[] { "firebase_last_notification", "first_open_time", "first_visit_time", "last_deep_link_referrer", "user_id", "first_open_after_install", "lifetime_user_engagement", "google_allow_ad_personalization_signals", "session_number", "session_id" };
            zzadp = new String[] { "_ln", "_fot", "_fvt", "_ldl", "_id", "_fi", "_lte", "_ap", "_sno", "_sid" };
        }
    }
    
    @KeepForSdk
    public static final class Param
    {
        @KeepForSdk
        public static final String FATAL = "fatal";
        @KeepForSdk
        public static final String TIMESTAMP = "timestamp";
        @KeepForSdk
        public static final String TYPE = "type";
        public static final String[] zzadm;
        public static final String[] zzadn;
        
        private Param() {
        }
        
        public static String zzal(final String s) {
            return zzfk.zza(s, Param.zzadm, Param.zzadn);
        }
        
        static {
            zzadm = new String[] { "firebase_conversion", "engagement_time_msec", "exposure_time", "ad_event_id", "ad_unit_id", "firebase_error", "firebase_error_value", "firebase_error_length", "firebase_event_origin", "firebase_screen", "firebase_screen_class", "firebase_screen_id", "firebase_previous_screen", "firebase_previous_class", "firebase_previous_id", "message_device_time", "message_id", "message_name", "message_time", "previous_app_version", "previous_os_version", "topic", "update_with_analytics", "previous_first_open_count", "system_app", "system_app_update", "previous_install_count", "ga_event_id", "ga_extra_params_ct", "ga_group_name", "ga_list_length", "ga_index", "ga_event_name", "campaign_info_source", "deferred_analytics_collection", "session_number", "session_id" };
            zzadn = new String[] { "_c", "_et", "_xt", "_aeid", "_ai", "_err", "_ev", "_el", "_o", "_sn", "_sc", "_si", "_pn", "_pc", "_pi", "_ndt", "_nmid", "_nmn", "_nmt", "_pv", "_po", "_nt", "_uwa", "_pfo", "_sys", "_sysu", "_pin", "_eid", "_epc", "_gn", "_ll", "_i", "_en", "_cis", "_dac", "_sno", "_sid" };
        }
    }
    
    @KeepForSdk
    public static final class Event
    {
        @KeepForSdk
        public static final String APP_EXCEPTION = "_ae";
        @KeepForSdk
        public static final String AD_REWARD = "_ar";
        public static final String[] zzadk;
        public static final String[] zzadl;
        
        private Event() {
        }
        
        public static String zzak(final String s) {
            return zzfk.zza(s, Event.zzadl, Event.zzadk);
        }
        
        public static String zzal(final String s) {
            return zzfk.zza(s, Event.zzadk, Event.zzadl);
        }
        
        static {
            zzadk = new String[] { "app_clear_data", "app_exception", "app_remove", "app_upgrade", "app_install", "app_update", "firebase_campaign", "error", "first_open", "first_visit", "in_app_purchase", "notification_dismiss", "notification_foreground", "notification_open", "notification_receive", "os_update", "session_start", "user_engagement", "ad_exposure", "adunit_exposure", "ad_query", "ad_activeview", "ad_impression", "ad_click", "ad_reward", "screen_view", "ga_extra_parameter" };
            zzadl = new String[] { "_cd", "_ae", "_ui", "_ug", "_in", "_au", "_cmp", "_err", "_f", "_v", "_iap", "_nd", "_nf", "_no", "_nr", "_ou", "_s", "_e", "_xa", "_xu", "_aq", "_aa", "_ai", "_ac", "_ar", "_vs", "_ep" };
        }
    }
    
    @KeepForSdk
    public interface OnEventListener
    {
        @WorkerThread
        @KeepForSdk
        void onEvent(final String p0, final String p1, final Bundle p2, final long p3);
    }
    
    @KeepForSdk
    public interface EventInterceptor
    {
        @WorkerThread
        @KeepForSdk
        void interceptEvent(final String p0, final String p1, final Bundle p2, final long p3);
    }
}

moljac avatar Apr 27 '20 08:04 moljac

Projects dependencies

For Xamarin.GooglePlayServices.Measurement.Impl (play-services-measurement-impl)

find ./generated/ -type f -name *.csproj -exec grep -Hni "play-services-measurement-impl.csproj" {} \;

Depending projects (thus nuget packages):

com.google.android.gms.play-services-tagmanager-api.csproj
com.google.android.gms.play-services-measurement.csproj
com.google.android.gms.play-services-measurement-api.csproj
com.google.android.gms.play-services-measurement-sdk.csproj

https://mvnrepository.com/artifact/com.google.android.gms/play-services-measurement-impl/usages

For Xamarin.Firebase.Analytics.Imp (firebase-analytics-impl)

find ./generated/ -type f -name *.csproj -exec grep -Hni "firebase-analytics-impl.csproj" {} \;

Depending projects (thus nuget packages):

https://mvnrepository.com/artifact/com.google.firebase/firebase-analytics-impl/usages

Links / References

https://firebase.google.com/docs/reference/android/com/google/android/gms/measurement/AppMeasurement

moljac avatar Apr 27 '20 09:04 moljac

Any update here :) ?

I face the same issue trying the previews versions.

jonathanantoine avatar Sep 27 '20 19:09 jonathanantoine