示例#1
0
 public Event(string name, bool oneTimeOnly)
 {
     handle = new Java.Lang.Object(
         JNIEnv.CreateInstance("com/tapstream/sdk/Event", "(Ljava/lang/String;Z)V", new JValue(new Java.Lang.String(name)), new JValue(oneTimeOnly)),
         JniHandleOwnership.TransferGlobalRef);
     addPairId = JNIEnv.GetMethodID(JNIEnv.GetObjectClass(handle.Handle), "addPair", "(Ljava/lang/String;Ljava/lang/Object;)V");
 }
示例#2
0
        void TestTypeConversion()
        {
            // Sanity checking to ensure that our binding stays correct.
            var v = ServerSocketFactory.Default;

            Log.Info("HelloApp", "ServerSocketFactory.Default={0}", v);
            var egl = EGLContext.EGL;

            Log.Info("HelloApp", "EGLContext.EGL={0}", egl);
            IEGL10 egl10 = egl.JavaCast <IEGL10>();

            Log.Info("HelloApp", "(IEGL10) EGLContext.EGL={0}", egl10.GetType().FullName);

            IntPtr lref = JNIEnv.NewString("Hello, world!");

            using (Java.Lang.Object s = Java.Lang.Object.GetObject <Java.Lang.Object>(lref, JniHandleOwnership.TransferLocalRef)) {
                if (s.GetType() != typeof(Java.Lang.String))
                {
                    throw new InvalidOperationException("Object.GetObject<T>() needs to return a Java.Lang.String!");
                }
            }

            lref = JNIEnv.CreateInstance("android/gesture/Gesture", "()V");
            using (Java.Lang.Object g = Java.Lang.Object.GetObject <Java.Lang.Object>(lref, JniHandleOwnership.TransferLocalRef))
                if (g.GetType() != typeof(Android.Gestures.Gesture))
                {
                    throw new InvalidOperationException("Object.GetObject<T>() needs to return a Android.Gestures.Gesture!");
                }
        }
示例#3
0
 public Config()
 {
     handle = new Java.Lang.Object(
         JNIEnv.CreateInstance("com/tapstream/sdk/Config", "()V"),
         JniHandleOwnership.TransferGlobalRef);
     cls = JNIEnv.GetObjectClass(handle.Handle);
 }
 public CreateInstance_OverrideAbsListView_Adapter(Context context)
     : base(
         JNIEnv.CreateInstance(
             JcwType,
             "(Landroid/content/Context;)V",
             new JValue(context)),
         JniHandleOwnership.TransferLocalRef)
 {
     AdapterValue = new ArrayAdapter(context, 0);
 }
        public void GetObject_ReturnsMostDerivedType()
        {
            IntPtr lref = JNIEnv.NewString("Hello, world!");

            using (Java.Lang.Object s = Java.Lang.Object.GetObject <Java.Lang.Object>(lref, JniHandleOwnership.TransferLocalRef)) {
                Assert.AreEqual(typeof(Java.Lang.String), s.GetType());
            }

            lref = JNIEnv.CreateInstance("android/gesture/Gesture", "()V");
            using (Java.Lang.Object g = Java.Lang.Object.GetObject <Java.Lang.Object>(lref, JniHandleOwnership.TransferLocalRef)) {
                Assert.AreEqual(typeof(global::Android.Gestures.Gesture), g.GetType());
            }
        }
示例#6
0
        void TestManualOverrides()
        {
            var adder = new Adder();

            Console.WriteLine("Adder Class: {0}", adder.Class);

            var managedAdder = new ManagedAdder();
            int result       = Adder.Add(managedAdder, 3, 4);

            if (result != 14)
            {
                throw new InvalidOperationException("ManagedAdder.Add(3, 4) != 14!");
            }

            var progress = new AdderProgress();
            int sum      = Adder.Sum(adder, progress, 1, 2, 3);

            if (sum != 6)
            {
                throw new InvalidOperationException("Adder.Sum(adder, 1, 2, 3) != 6! Was: " + sum + ".");
            }
            if (progress.AddInvocations != 3)
            {
                throw new InvalidOperationException("Adder.Sum(adder, 1, 2, 3) didn't invoke progress 3 times! Was: " + progress.AddInvocations + ".");
            }

            progress.AddInvocations = 0;
            sum = Adder.Sum(managedAdder, progress, 6, 7);
            if (sum != 38)
            {
                throw new InvalidOperationException("Adder.Sum(managedAdder, 6, 7) != 38! Was: " + sum + ".");
            }
            if (progress.AddInvocations != 2)
            {
                throw new InvalidOperationException("Adder.Sum(adder, 6, 7) didn't invoke progress 2 times! Was: " + progress.AddInvocations + ".");
            }

            IntPtr javaDefaultProgress = JNIEnv.CreateInstance("mono/android/test/Adder$DefaultProgress", "()V");
            var    progress2           = Java.Lang.Object.GetObject <IAdderProgress>(javaDefaultProgress, JniHandleOwnership.TransferLocalRef);

            Console.WriteLine("progress2 MCW: {0}", progress2.GetType().FullName);

            javaDefaultProgress = JNIEnv.CreateInstance("mono/android/test/Adder$DefaultProgress", "()V");
            var progress3 = new Java.Lang.Object(javaDefaultProgress, JniHandleOwnership.TransferLocalRef)
                            .JavaCast <IAdderProgress> ();

            Console.WriteLine("progress3 MCW: {0}", progress3.GetType().FullName);
        }
        public SpassFingerprint (Context context) : base(IntPtr.Zero, JniHandleOwnership.DoNotTransfer)
        {
            if (Handle != IntPtr.Zero)
                return;

            //Create Android Callable Wrapper for derived type
            if (GetType () != typeof (SpassFingerprint)) 
            {
                SetHandle (JNIEnv.CreateInstance (GetType (), "(Landroid/content/Context;)V", new JValue(context)),
                    JniHandleOwnership.TransferLocalRef);
                return;
            }

            //Create the Handle from the constructor
            if (_constructor == IntPtr.Zero)
                _constructor = JNIEnv.GetMethodID (_classRef, "<init>", "(Landroid/content/Context;)V");
            SetHandle (JNIEnv.NewObject (_classRef, _constructor, new JValue(context)), 
                JniHandleOwnership.TransferLocalRef);
        }
示例#8
0
        public Spass() : base(IntPtr.Zero, JniHandleOwnership.DoNotTransfer)
        {
            if (Handle != IntPtr.Zero)
            {
                return;
            }

            //Create Android Callable Wrapper for derived type
            if (GetType() != typeof(Spass))
            {
                SetHandle(JNIEnv.CreateInstance(GetType(), "()V"), JniHandleOwnership.TransferLocalRef);
                return;
            }

            //Create the Handle from the constructor
            if (_constructor == IntPtr.Zero)
            {
                _constructor = JNIEnv.GetMethodID(_classRef, "<init>", "()V");
            }
            SetHandle(JNIEnv.NewObject(_classRef, _constructor), JniHandleOwnership.TransferLocalRef);
        }
        public SpassInvalidStateException(string message, int errorType) : base(IntPtr.Zero, JniHandleOwnership.DoNotTransfer)
        {
            if (Handle != IntPtr.Zero)
            {
                return;
            }

            //Create Android Callable Wrapper for derived type
            if (GetType() != typeof(SpassInvalidStateException))
            {
                SetHandle(JNIEnv.CreateInstance(GetType(), "(Ljava/lang/String;I)V"), JniHandleOwnership.TransferLocalRef);
                return;
            }

            //Create the Handle from the constructor
            if (_constructor == IntPtr.Zero)
            {
                _constructor = JNIEnv.GetMethodID(_classRef, "<init>", "(Ljava/lang/String;I)V");
            }
            SetHandle(JNIEnv.NewObject(_classRef, _constructor, new JValue(new Java.Lang.String(message)),
                                       new JValue(errorType)), JniHandleOwnership.TransferLocalRef);
        }