public Java.Lang.Object [] GetSections()
        {
            var intPtr = JNIEnv.NewArray(sections.ToArray());
            var array  = new JavaArray <Java.Lang.Object> (intPtr, JniHandleOwnership.TransferLocalRef);

            return((Java.Lang.Object [])array);
        }
Exemple #2
0
        static void n_OnAdd(IntPtr jnienv, IntPtr lrefThis, IntPtr values, int currentIndex, int currentSum)
        {
            IAdderProgress __this = Java.Lang.Object.GetObject <IAdderProgress>(lrefThis, JniHandleOwnership.DoNotTransfer);

            using (var _values = new JavaArray <int>(values, JniHandleOwnership.DoNotTransfer)) {
                __this.OnAdd(_values, currentIndex, currentSum);
            }
        }
Exemple #3
0
 public void OnAdd(JavaArray <int> values, int currentIndex, int currentSum)
 {
     if (id_onAdd == IntPtr.Zero)
     {
         id_onAdd = JNIEnv.GetMethodID(class_ref, "onAdd", "([III)V");
     }
     JNIEnv.CallVoidMethod(Handle, id_onAdd,
                           new JValue(JNIEnv.ToJniHandle(values)), new JValue(currentIndex), new JValue(currentSum));
 }
Exemple #4
0
        JavaArray ReadArray()
        {
            ClassDescriptor descriptor = ReadClassDesc();
            JavaArray       array      = new JavaArray();

            CreateReference(array);

            Func <IJavaData> reader;

            switch (descriptor.Name.Substring(1))
            {
            case DataType.Integer:
                reader = () => new JavaValue(stream.ReadInt());
                break;

            case DataType.Byte:
                reader = () => new JavaValue(stream.ReadByte());
                break;

            case DataType.Long:
                reader = () => new JavaValue(stream.ReadLong());
                break;

            case DataType.Float:
                reader = () => new JavaValue(stream.ReadFloat());
                break;

            case DataType.Double:
                reader = () => new JavaValue(stream.ReadDouble());
                break;

            case DataType.Short:
                reader = () => new JavaValue(stream.ReadShort());
                break;

            case DataType.Char:
                reader = () => new JavaValue(stream.ReadChar());
                break;

            case DataType.Boolean:
                reader = () => new JavaValue(stream.ReadBool());
                break;

            default:
                reader = ReadObject;
                break;
            }

            int length = stream.ReadInt();

            while (length-- > 0)
            {
                array.Items.Add(reader());
            }
            return(array);
        }
Exemple #5
0
 void ReduceArray(JavaArray array, HashSet <JavaObject> visited)
 {
     for (int i = array.Items.Count - 1; i >= 0; --i)
     {
         IJavaData data = array.Items[i];
         if (data is JavaArray)
         {
             ReduceArray((JavaArray)data, visited);
         }
         else if (data is JavaObject)
         {
             array.Items[i] = ReduceObject((JavaObject)data, visited);
         }
     }
 }
        public static ByteBuffer Get(this ByteBuffer buffer, JavaArray <Java.Lang.Byte> dst, int dstOffset, int byteCount)
        {
            if (_byteBufferClassRef == IntPtr.Zero)
            {
                _byteBufferClassRef = JNIEnv.FindClass("java/nio/ByteBuffer");
            }
            if (_byteBufferGetBii == IntPtr.Zero)
            {
                _byteBufferGetBii = JNIEnv.GetMethodID(_byteBufferClassRef, "get", "([BII)Ljava/nio/ByteBuffer;");
            }

            return(Java.Lang.Object.GetObject <ByteBuffer>(JNIEnv.CallObjectMethod(buffer.Handle, _byteBufferGetBii, new JValue[] {
                new JValue(dst),
                new JValue(dstOffset),
                new JValue(byteCount)
            }), JniHandleOwnership.TransferLocalRef));
        }
Exemple #7
0
 void WriteData(XmlNode parent, IJavaData data, HashSet <JavaObject> visited)
 {
     if (data is JavaArray)
     {
         JavaArray array = (JavaArray)data;
         WriteArray(parent, array, visited);
     }
     else if (data is JavaValue)
     {
         parent.InnerText = GetValue((JavaValue)data);
     }
     else if (data is JavaObject)
     {
         WriteObject(parent.CreateAndAppendAttribute("type", GetTagName(((JavaObject)data).Type)), (JavaObject)data, visited);
     }
     else
     {
         throw new InvalidOperationException("Invalid data type in array");
     }
 }
Exemple #8
0
        void WriteArray(XmlNode parent, JavaArray array, HashSet <JavaObject> visited)
        {
            if (array.Items.Count == 0)
            {
                return;
            }

            IJavaData data = array.Items.First();

            if (data is JavaArray)
            {
                foreach (JavaArray childarray in array.Items.Cast <JavaArray>())
                {
                    WriteArray(parent.CreateAndAppendElement("array"), childarray, visited);
                }
            }
            else if (data is JavaValue)
            {
#if FRAMEWORK35
                parent.InnerText = string.Join(";", array.Items.Cast <JavaValue>().Select(GetValue).ToArray());
#else
                parent.InnerText = string.Join(";", array.Items.Cast <JavaValue>().Select(GetValue));
#endif
            }
            else if (data is JavaObject)
            {
                foreach (JavaObject item in array.Items.Cast <JavaObject>())
                {
                    WriteObject(parent.CreateAndAppendElement(GetTagName(item.Type)), item, visited);
                }
            }
            else
            {
                throw new InvalidOperationException("Invalid data type in array");
            }
        }
Exemple #9
0
 public void OnAdd(JavaArray <int> values, int currentIndex, int currentSum)
 {
     Android.Util.Log.Info("*jonp*", "AdderProgress.OnAdd: Invocations={0}; currentIndex={1}; currentSum={2}", AddInvocations, currentIndex, currentSum);
     AddInvocations++;
 }
 public Java.Lang.Object [] GetSections ()
 {
     var intPtr = JNIEnv.NewArray (sections.ToArray ());
     var array = new JavaArray<Java.Lang.Object> (intPtr, JniHandleOwnership.TransferLocalRef);
     return (Java.Lang.Object [])array;
 }