use of com.instructure.canvasapi2.models.QuizSubmission in project instructure-android by instructure.
the class QuizSubmissionQuestionListRecyclerAdapter method addEssayQuestion.
private void addEssayQuestion(QuizSubmissionQuestion baseItem, QuizEssayViewHolder holder, int position, int courseColor) {
addAnsweredQuestion(baseItem);
QuizEssayBinder.bind(holder, baseItem, courseColor, position, shouldLetAnswer, getContext(), flagStateCallback, embeddedWebViewCallback, webViewClientCallback, new QuizPostEssay() {
@Override
public void postEssay(long questionId, String answer) {
addAnsweredQuestion(questionId);
QuizManager.postQuizQuestionEssay(quizSubmission, answer, questionId, true, new StatusCallback<QuizSubmissionQuestionResponse>() {
});
}
});
}
use of com.instructure.canvasapi2.models.QuizSubmission in project instructure-android by instructure.
the class QuizSubmissionQuestionListRecyclerAdapter method addMatchingQuestion.
private void addMatchingQuestion(final QuizSubmissionQuestion baseItem, QuizMatchingViewHolder holder, int position, int courseColor) {
addAnsweredQuestion(baseItem);
QuizMatchingBinder.bind(holder, baseItem, courseColor, position, shouldLetAnswer, getContext(), embeddedWebViewCallback, webViewClientCallback, new QuizPostMatching() {
@Override
public void postMatching(final long questionId, HashMap<Long, Integer> answers) {
QuizManager.postQuizQuestionMatching(quizSubmission, questionId, answers, true, new StatusCallback<QuizSubmissionQuestionResponse>() {
@Override
public void onResponse(@NonNull Response<QuizSubmissionQuestionResponse> response, @NonNull LinkHeaders linkHeaders, @NonNull ApiType type) {
if (type == ApiType.CACHE)
return;
final QuizSubmissionQuestionResponse quizSubmissionQuestionResponse = response.body();
if (quizSubmissionQuestionResponse.getQuizSubmissionQuestions() != null) {
for (QuizSubmissionQuestion question : quizSubmissionQuestionResponse.getQuizSubmissionQuestions()) {
if (baseItem.getId() == question.getId()) {
baseItem.setAnswer(question.getAnswer());
}
}
// make sure each answer has a match
int numAnswers = 0;
// API returns an ArrayList of LinkedTreeMaps
for (LinkedTreeMap<String, String> map : ((ArrayList<LinkedTreeMap<String, String>>) baseItem.getAnswer())) {
if (map.get(Const.QUIZ_MATCH_ID) != null && !map.get(Const.QUIZ_MATCH_ID).equals("null")) {
numAnswers++;
}
}
if (numAnswers == baseItem.getAnswers().length) {
addAnsweredQuestion(questionId);
} else {
removeAnsweredQuestion(questionId);
}
}
}
});
}
}, flagStateCallback);
}
use of com.instructure.canvasapi2.models.QuizSubmission in project instructure-android by instructure.
the class QuizSubmissionQuestionListRecyclerAdapter method addNumericalQuestion.
private void addNumericalQuestion(QuizSubmissionQuestion baseItem, QuizNumericalViewHolder holder, int position, int courseColor) {
addAnsweredQuestion(baseItem);
QuizNumericalBinder.bind(holder, baseItem, courseColor, position, shouldLetAnswer, getContext(), flagStateCallback, embeddedWebViewCallback, webViewClientCallback, new QuizPostNumerical() {
@Override
public void postNumerical(long questionId, String answer) {
addAnsweredQuestion(questionId);
// note: this is the same as the essay question on purpose. Numerical is just text.
QuizManager.postQuizQuestionEssay(quizSubmission, answer, questionId, true, new StatusCallback<QuizSubmissionQuestionResponse>() {
});
}
});
}
use of com.instructure.canvasapi2.models.QuizSubmission in project instructure-android by instructure.
the class QuizManager_Test method getQuizSubmissions.
public static void getQuizSubmissions(StatusCallback<QuizSubmissionResponse> callback) {
Response response = new Response.Builder().code(200).message("todo").protocol(Protocol.HTTP_1_0).body(ResponseBody.create(MediaType.parse("application/json"), "todo".getBytes())).addHeader("content-type", "application/json").build();
List<QuizSubmission> quizSubmissions = new ArrayList<>();
QuizSubmission quizSubmission = new QuizSubmission();
quizSubmission.setQuizId(456321L);
quizSubmissions.add(quizSubmission);
QuizSubmissionResponse quizSubmissionResponse = new QuizSubmissionResponse();
quizSubmissionResponse.setQuizSubmissions(quizSubmissions);
retrofit2.Response<QuizSubmissionResponse> response1 = retrofit2.Response.success(quizSubmissionResponse, response);
callback.onResponse(response1, new LinkHeaders(), ApiType.CACHE);
}
use of com.instructure.canvasapi2.models.QuizSubmission in project instructure-android by instructure.
the class QuizManager method postQuizQuestionMultipleDropdown.
public static void postQuizQuestionMultipleDropdown(QuizSubmission quizSubmission, long questionId, HashMap<String, Long> answers, boolean forceNetwork, @NonNull StatusCallback<QuizSubmissionQuestionResponse> callback) {
final RestBuilder adapter = new RestBuilder(callback);
final RestParams params = new RestParams.Builder().withPerPageQueryParam(true).withShouldIgnoreToken(false).withForceReadFromNetwork(forceNetwork).build();
QuizAPI.postQuizQuestionMultipleDropdown(quizSubmission, questionId, answers, adapter, params, callback);
}
Aggregations