/*
* Copyright (c) 2014. The Trustees of Indiana University.
*
* This version of the code is licensed under the MPL 2.0 Open Source license with additional
* healthcare disclaimer. If the user is an entity intending to commercialize any application
* that uses this code in a for-profit venture, please contact the copyright holder.
*/
package com.muzima.view.forms;
import android.app.Activity;
import android.content.Intent;
import android.util.Log;
import com.muzima.MuzimaApplication;
import com.muzima.api.model.Patient;
import com.muzima.controller.FormController;
import com.muzima.model.BaseForm;
import com.muzima.model.FormWithData;
public class FormViewIntent extends Intent {
public FormViewIntent(Activity activity, FormWithData form) {
this(activity, form, form.getPatient());
}
public FormViewIntent(Activity activity, BaseForm form, Patient patient) {
super(activity, getClassBasedOnFormType(activity, form));
putExtra(HTMLFormWebViewActivity.FORM, form);
putExtra(HTMLFormWebViewActivity.PATIENT, patient);
}
private static Class getClassBasedOnFormType(Activity activity, BaseForm form) {
FormController formController = ((MuzimaApplication) activity.getApplication()).getFormController();
try {
if (formController.getFormTemplateByUuid(form.getFormUuid()).isHTMLForm()) {
return HTMLFormWebViewActivity.class;
}
} catch (FormController.FormFetchException e) {
Log.e("FormIntent", "Error while identifying form to load it in WebView", e);
}
return FormWebViewActivity.class;
}
}