public void Accept(IQuest quest, Action <QuestAcceptStatus, IQuest> callback) { Misc.CheckNotNull(quest); Misc.CheckNotNull(callback); callback = CallbackUtils.ToOnGameThread <QuestAcceptStatus, IQuest>(callback); var convertedQuest = quest as NativeQuest; if (convertedQuest == null) { Logger.e("Encountered quest that was not generated by this IQuestClient"); callback(QuestAcceptStatus.BadInput, null); return; } mManager.Accept(convertedQuest, response => { if (response.RequestSucceeded()) { callback(QuestAcceptStatus.Success, response.AcceptedQuest()); } else { callback(FromAcceptStatus(response.ResponseStatus()), null); } }); }