public void onResult(AndroidJavaObject result) { Logger.d("OnStateResultProxy.onResult, result=" + result); int statusCode = GetStatusCode(result); Logger.d("OnStateResultProxy: status code is " + statusCode); if (result == null) { Logger.e("OnStateResultProxy: result is null."); return; } Logger.d("OnstateResultProxy: retrieving result objects..."); AndroidJavaObject loadedResult = result.NullSafeCall("getLoadedResult"); AndroidJavaObject conflictResult = result.NullSafeCall("getConflictResult"); Logger.d("Got result objects."); Logger.d("loadedResult = " + loadedResult); Logger.d("conflictResult = " + conflictResult); if (conflictResult != null) { Logger.d("OnStateResultProxy: processing conflict."); int stateKey = conflictResult.Call<int>("getStateKey"); string ver = conflictResult.Call<string>("getResolvedVersion"); byte[] localData = ToByteArray(conflictResult.NullSafeCall("getLocalData")); byte[] serverData = ToByteArray(conflictResult.NullSafeCall("getServerData")); Logger.d("OnStateResultProxy: conflict args parsed, calling."); OnStateConflict(stateKey, ver, localData, serverData); } else if (loadedResult != null) { Logger.d("OnStateResultProxy: processing normal load."); int stateKey = loadedResult.Call<int>("getStateKey"); byte[] localData = ToByteArray(loadedResult.NullSafeCall("getLocalData")); Logger.d("OnStateResultProxy: loaded args parsed, calling."); OnStateLoaded(statusCode, stateKey, localData); } else { Logger.e("OnStateResultProxy: both loadedResult and conflictResult are null!"); } }