コード例 #1
0
        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!");
            }
        }