public static DataManager[] GetArrayWithQuerySync(Query query, QueryKind queryKind) { if (javaUnityApplicasaDataManager == null) { javaUnityApplicasaDataManager = new AndroidJavaClass("com.applicasaunity.Unity.ApplicasaDataManager"); } AndroidJavaObject[] bigArray = javaUnityApplicasaDataManager.CallStatic <AndroidJavaObject[]>("ApplicasaDataManagerGetArrayWithQuerySync", query.innerQueryJavaObject, (int)queryKind); DataManager[] dataManagerInner = null; for (int i = 0; i < bigArray.Length; i++) { AndroidJavaObject tempJavaObject = bigArray[i]; AndroidJavaObject[] InnerArray = AndroidJNIHelper.ConvertFromJNIArray <AndroidJavaObject[]>(tempJavaObject.GetRawObject()); DataManager[] dataManagertemp = new DataManager[InnerArray.Length]; for (int j = 0; j < InnerArray.Length; j++) { AndroidJavaObject tempObj = InnerArray[j]; dataManagertemp[j] = new DataManager(tempObj.GetRawObject(), tempObj); } if (dataManagerInner == null) { dataManagerInner = dataManagertemp; } else { DataManager[] firstOne = dataManagerInner; dataManagerInner = new DataManager[firstOne.Length + dataManagertemp.Length]; firstOne.CopyTo(dataManagerInner, 0); dataManagertemp.CopyTo(dataManagerInner, firstOne.Length); } } return(dataManagerInner); }
public static IEnumerator GetArrayWithQuerySyncIEnumerator(Query query, QueryKind queryKind) { if(javaUnityApplicasaDataManager==null) javaUnityApplicasaDataManager = new AndroidJavaClass("com.applicasaunity.Unity.ApplicasaDataManager"); AndroidJavaObject[] bigArray = javaUnityApplicasaDataManager.CallStatic<AndroidJavaObject[]>("ApplicasaDataManagerGetArrayWithQuerySync", query.innerQueryJavaObject, (int)queryKind); DataManager[] dataManagerInner= null;; for (int i = 0;i < bigArray.Length;i++) { AndroidJavaObject tempJavaObject = bigArray[i]; AndroidJavaObject[] InnerArray = AndroidJNIHelper.ConvertFromJNIArray<AndroidJavaObject[]>(tempJavaObject.GetRawObject()); DataManager[] dataManagertemp = new DataManager[InnerArray.Length]; for (int j = 0;j < InnerArray.Length;j++) { AndroidJavaObject tempObj = InnerArray[j]; dataManagertemp[j] = new DataManager(tempObj.GetRawObject(),tempObj); } if (dataManagerInner == null) dataManagerInner = dataManagertemp; else{ DataManager[] firstOne = dataManagerInner; dataManagerInner = new DataManager[firstOne.Length+dataManagertemp.Length]; firstOne.CopyTo(dataManagerInner,0); dataManagertemp.CopyTo(dataManagerInner,firstOne.Length); } yield return new WaitForSeconds(0.2f); } finalDataManager = dataManagerInner; }