public static Cards[] GetArrayWithQuerySync(Query query, QueryKind queryKind) { if (javaUnityApplicasaCards == null) { javaUnityApplicasaCards = new AndroidJavaClass("com.applicasaunity.Unity.ApplicasaCards"); } AndroidJavaObject[] bigArray = javaUnityApplicasaCards.CallStatic <AndroidJavaObject[]>("ApplicasaCardsGetArrayWithQuerySync", query.innerQueryJavaObject, (int)queryKind); Cards[] cardsInner = null; for (int i = 0; i < bigArray.Length; i++) { AndroidJavaObject tempJavaObject = bigArray[i]; AndroidJavaObject[] InnerArray = AndroidJNIHelper.ConvertFromJNIArray <AndroidJavaObject[]>(tempJavaObject.GetRawObject()); Cards[] cardstemp = new Cards[InnerArray.Length]; for (int j = 0; j < InnerArray.Length; j++) { AndroidJavaObject tempObj = InnerArray[j]; cardstemp[j] = new Cards(tempObj.GetRawObject(), tempObj); } if (cardsInner == null) { cardsInner = cardstemp; } else { Cards[] firstOne = cardsInner; cardsInner = new Cards[firstOne.Length + cardstemp.Length]; firstOne.CopyTo(cardsInner, 0); cardstemp.CopyTo(cardsInner, firstOne.Length); } } return(cardsInner); }
public static IEnumerator GetArrayWithQuerySyncIEnumerator(Query query, QueryKind queryKind) { if(javaUnityApplicasaCards==null) javaUnityApplicasaCards = new AndroidJavaClass("com.applicasaunity.Unity.ApplicasaCards"); AndroidJavaObject[] bigArray = javaUnityApplicasaCards.CallStatic<AndroidJavaObject[]>("ApplicasaCardsGetArrayWithQuerySync", query.innerQueryJavaObject, (int)queryKind); Cards[] cardsInner= null;; for (int i = 0;i < bigArray.Length;i++) { AndroidJavaObject tempJavaObject = bigArray[i]; AndroidJavaObject[] InnerArray = AndroidJNIHelper.ConvertFromJNIArray<AndroidJavaObject[]>(tempJavaObject.GetRawObject()); Cards[] cardstemp = new Cards[InnerArray.Length]; for (int j = 0;j < InnerArray.Length;j++) { AndroidJavaObject tempObj = InnerArray[j]; cardstemp[j] = new Cards(tempObj.GetRawObject(),tempObj); } if (cardsInner == null) cardsInner = cardstemp; else{ Cards[] firstOne = cardsInner; cardsInner = new Cards[firstOne.Length+cardstemp.Length]; firstOne.CopyTo(cardsInner,0); cardstemp.CopyTo(cardsInner,firstOne.Length); } yield return new WaitForSeconds(0.2f); } finalCards = cardsInner; }