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); }
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); } }
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)); }
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); }
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)); }
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"); } }
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"); } }
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; }