public unsafe ListItem(string id, string uri, global::Com.Spotify.Protocol.Types.ImageUri imageUri, string title, string subtitle, bool playable, bool hasChildren)
            : base(IntPtr.Zero, JniHandleOwnership.DoNotTransfer)
        {
            const string __id = "(Ljava/lang/String;Ljava/lang/String;Lcom/spotify/protocol/types/ImageUri;Ljava/lang/String;Ljava/lang/String;ZZ)V";

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

            IntPtr native_id       = JNIEnv.NewString(id);
            IntPtr native_uri      = JNIEnv.NewString(uri);
            IntPtr native_title    = JNIEnv.NewString(title);
            IntPtr native_subtitle = JNIEnv.NewString(subtitle);

            try {
                JniArgumentValue *__args = stackalloc JniArgumentValue [7];
                __args [0] = new JniArgumentValue(native_id);
                __args [1] = new JniArgumentValue(native_uri);
                __args [2] = new JniArgumentValue((imageUri == null) ? IntPtr.Zero : ((global::Java.Lang.Object)imageUri).Handle);
                __args [3] = new JniArgumentValue(native_title);
                __args [4] = new JniArgumentValue(native_subtitle);
                __args [5] = new JniArgumentValue(playable);
                __args [6] = new JniArgumentValue(hasChildren);
                var __r = _members.InstanceMethods.StartCreateInstance(__id, ((object)this).GetType(), __args);
                SetHandle(__r.Handle, JniHandleOwnership.TransferLocalRef);
                _members.InstanceMethods.FinishCreateInstance(__id, this, __args);
            } finally {
                JNIEnv.DeleteLocalRef(native_id);
                JNIEnv.DeleteLocalRef(native_uri);
                JNIEnv.DeleteLocalRef(native_title);
                JNIEnv.DeleteLocalRef(native_subtitle);
            }
        }
        static IntPtr n_GetImage_Lcom_spotify_protocol_types_ImageUri_(IntPtr jnienv, IntPtr native__this, IntPtr native_imageUri)
        {
            global::Com.Spotify.Android.Appremote.Internal.ImagesApiImpl __this = global::Java.Lang.Object.GetObject <global::Com.Spotify.Android.Appremote.Internal.ImagesApiImpl> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
            global::Com.Spotify.Protocol.Types.ImageUri imageUri = global::Java.Lang.Object.GetObject <global::Com.Spotify.Protocol.Types.ImageUri> (native_imageUri, JniHandleOwnership.DoNotTransfer);
            IntPtr __ret = JNIEnv.ToLocalJniHandle(__this.GetImage(imageUri));

            return(__ret);
        }
        public unsafe global::Com.Spotify.Protocol.Client.CallResult GetImage(global::Com.Spotify.Protocol.Types.ImageUri p0)
        {
            if (id_getImage_Lcom_spotify_protocol_types_ImageUri_ == IntPtr.Zero)
            {
                id_getImage_Lcom_spotify_protocol_types_ImageUri_ = JNIEnv.GetMethodID(class_ref, "getImage", "(Lcom/spotify/protocol/types/ImageUri;)Lcom/spotify/protocol/client/CallResult;");
            }
            JValue *__args = stackalloc JValue [1];

            __args [0] = new JValue((p0 == null) ? IntPtr.Zero : ((global::Java.Lang.Object)p0).Handle);
            global::Com.Spotify.Protocol.Client.CallResult __ret = global::Java.Lang.Object.GetObject <global::Com.Spotify.Protocol.Client.CallResult> (JNIEnv.CallObjectMethod(((global::Java.Lang.Object) this).Handle, id_getImage_Lcom_spotify_protocol_types_ImageUri_, __args), JniHandleOwnership.TransferLocalRef);
            return(__ret);
        }
        public virtual unsafe global::Com.Spotify.Protocol.Client.CallResult GetImage(global::Com.Spotify.Protocol.Types.ImageUri imageUri)
        {
            const string __id = "getImage.(Lcom/spotify/protocol/types/ImageUri;)Lcom/spotify/protocol/client/CallResult;";

            try {
                JniArgumentValue *__args = stackalloc JniArgumentValue [1];
                __args [0] = new JniArgumentValue((imageUri == null) ? IntPtr.Zero : ((global::Java.Lang.Object)imageUri).Handle);
                var __rm = _members.InstanceMethods.InvokeVirtualObjectMethod(__id, this, __args);
                return(global::Java.Lang.Object.GetObject <global::Com.Spotify.Protocol.Client.CallResult> (__rm.Handle, JniHandleOwnership.TransferLocalRef));
            } finally {
            }
        }
        public unsafe Track(global::Com.Spotify.Protocol.Types.Artist artist, global::System.Collections.Generic.IList <global::Com.Spotify.Protocol.Types.Artist> artists, global::Com.Spotify.Protocol.Types.Album album, long duration, string name, string uri, global::Com.Spotify.Protocol.Types.ImageUri imageUri)
            : base(IntPtr.Zero, JniHandleOwnership.DoNotTransfer)
        {
            const string __id = "(Lcom/spotify/protocol/types/Artist;Ljava/util/List;Lcom/spotify/protocol/types/Album;JLjava/lang/String;Ljava/lang/String;Lcom/spotify/protocol/types/ImageUri;)V";

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

            IntPtr native_artists = global::Android.Runtime.JavaList <global::Com.Spotify.Protocol.Types.Artist> .ToLocalJniHandle(artists);

            IntPtr native_name = JNIEnv.NewString(name);
            IntPtr native_uri  = JNIEnv.NewString(uri);

            try {
                JniArgumentValue *__args = stackalloc JniArgumentValue [7];
                __args [0] = new JniArgumentValue((artist == null) ? IntPtr.Zero : ((global::Java.Lang.Object)artist).Handle);
                __args [1] = new JniArgumentValue(native_artists);
                __args [2] = new JniArgumentValue((album == null) ? IntPtr.Zero : ((global::Java.Lang.Object)album).Handle);
                __args [3] = new JniArgumentValue(duration);
                __args [4] = new JniArgumentValue(native_name);
                __args [5] = new JniArgumentValue(native_uri);
                __args [6] = new JniArgumentValue((imageUri == null) ? IntPtr.Zero : ((global::Java.Lang.Object)imageUri).Handle);
                var __r = _members.InstanceMethods.StartCreateInstance(__id, ((object)this).GetType(), __args);
                SetHandle(__r.Handle, JniHandleOwnership.TransferLocalRef);
                _members.InstanceMethods.FinishCreateInstance(__id, this, __args);
            } finally {
                JNIEnv.DeleteLocalRef(native_artists);
                JNIEnv.DeleteLocalRef(native_name);
                JNIEnv.DeleteLocalRef(native_uri);
            }
        }