}
void Popupper::buttonAnswer(IAnswerable::Button button) {
- NResponseType answer = m_answerablePtr->getAnswer(button);
- m_responses.push_back(answer);
+ if (m_answerablePtr) {
+ NResponseType answer = m_answerablePtr->getAnswer(button);
+ m_responses.push_back(answer);
- if (m_responses.size() == m_privaciesSequence.size()) {
- m_popupResponseHandler(m_responses);
- return;
- }
+ if (m_responses.size() == m_privaciesSequence.size()) {
+ m_popupResponseHandler(m_responses);
+ return;
+ }
- Privacy privacy;
- if (!m_privaciesSequence.getNextPrivacy(privacy)) {
- ALOGE("Unable to get next privacy");
- respondToRest(NResponseType::None);
- return;
- }
+ Privacy privacy;
+ if (!m_privaciesSequence.getNextPrivacy(privacy)) {
+ ALOGE("Unable to get next privacy");
+ respondToRest(NResponseType::None);
+ return;
+ }
- if (!m_elementPtr->showNext(Po::createPopupCheckMsg(m_pkgId, privacy))) {
- ALOGE("unable to show next popup");
- respondToRest(NResponseType::None);
+ if (!m_elementPtr->showNext(Po::createPopupCheckMsg(m_pkgId, privacy))) {
+ ALOGE("unable to show next popup");
+ respondToRest(NResponseType::None);
+ }
+ } else {
+ ALOGD("Popupper::buttonAnswer called without m_answerablePtr, skipping");
}
}