usbong.android.utils.UsbongScreenProcessor.java Source code

Java tutorial

Introduction

Here is the source code for usbong.android.utils.UsbongScreenProcessor.java

Source

/*
 * Copyright 2012-2013 Michael Syson
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *     http://www.apache.org/licenses/LICENSE-2.0
 *     
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package usbong.android.utils;

import java.util.Calendar;
import java.util.StringTokenizer;
import java.util.Vector;

import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;

import org.apache.commons.lang3.StringEscapeUtils;

import usbong.android.R;
import usbong.android.UsbongDecisionTreeEngineActivity;
import usbong.android.utils.FedorMyLocation.LocationResult;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.graphics.Color;
import android.graphics.drawable.Drawable;
import android.location.Location;
import android.os.AsyncTask;
import android.provider.Settings;
import android.text.InputType;
import android.util.Log;
import android.util.TypedValue;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.MediaController;
import android.widget.ProgressBar;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.VideoView;

/*
 * This class was created to reduce the length (i.e. number of lines of code) 
 * in UsbongDecisionTreeEngineAcitivity. As its name implies, this class
 * handles the processing of the Usbong screens.
 */
public class UsbongScreenProcessor {
    private UsbongDecisionTreeEngineActivity udtea;
    private LocationResult locationResult;

    public static String myLatitude;
    public static String myLongitude;

    public TextView myLongitudeTextView;
    public TextView myLatitudeTextView;

    public ProgressBar myLoadingProgressBar;

    public boolean hasGottenGPSLocation;

    public UsbongScreenProcessor() {
    }

    public UsbongScreenProcessor(Activity a) {
        udtea = (UsbongDecisionTreeEngineActivity) a;
        //        this.setInstance((UsbongDecisionTreeEngineActivity) a);   
    }

    public LocationResult getLocationResult() {
        return locationResult;
    }

    /*
     * Initialize processor
     */
    public void init() {
        //Reference: http://www.anddev.org/tinytut_-_get_resources_by_name__getidentifier_-t460.html; last accessed 14 Sept 2011
        Resources myRes = udtea.getResources();
        Drawable myDrawableImage;

        //added by Mike, Feb. 13, 2013
        udtea.isAnOptionalNode = UsbongUtils.isAnOptionalNode(udtea.currUsbongNode);

        String myStringToken = "";
        //      if (usedBackButton) {

        //        System.out.println(">>>>>> udtea.currAnswer: "+udtea.currAnswer);

        StringTokenizer st = new StringTokenizer(udtea.currAnswer, ",");
        if ((st != null) && (st.hasMoreTokens())) {
            myStringToken = st.nextToken();
            udtea.currAnswer = udtea.currAnswer.replace(myStringToken + ",", "");
        }

        StringTokenizer st_two = new StringTokenizer(udtea.currAnswer, ";");

        if (st_two != null) {
            if (udtea.currAnswer.length() > 1) {
                myStringToken = st_two.nextToken(); //get next element (i.e. 1 in "Y,1;")                
            } else {
                myStringToken = "";
            }
        }

        if (udtea.currScreen == udtea.MULTIPLE_RADIO_BUTTONS_SCREEN) {
            udtea.setContentView(R.layout.multiple_radio_buttons_screen);
            udtea.initBackNextButtons();
            TextView myMultipleRadioButtonsScreenTextView = (TextView) udtea
                    .findViewById(R.id.radio_buttons_textview);
            myMultipleRadioButtonsScreenTextView = (TextView) UsbongUtils.applyTagsInView(
                    UsbongDecisionTreeEngineActivity.getInstance(), myMultipleRadioButtonsScreenTextView,
                    UsbongUtils.IS_TEXTVIEW, udtea.currUsbongNode);
            RadioGroup radioGroup = (RadioGroup) udtea.findViewById(R.id.multiple_radio_buttons_radiogroup);
            int totalRadioButtonsInContainer = udtea.radioButtonsContainer.size();
            for (int i = 0; i < totalRadioButtonsInContainer; i++) {
                View radioButtonView = new RadioButton(udtea.getBaseContext());
                RadioButton radioButton = (RadioButton) UsbongUtils.applyTagsInView(
                        UsbongDecisionTreeEngineActivity.getInstance(), radioButtonView, UsbongUtils.IS_RADIOBUTTON,
                        udtea.radioButtonsContainer.elementAt(i).toString());
                radioButton.setTextSize(20);
                radioButton.setId(i);
                radioButton.setTextColor(Color.parseColor("#4a452a"));

                int myStringTokenInt;
                try {
                    myStringTokenInt = Integer.parseInt(myStringToken);
                } catch (NumberFormatException e) {//if myStringToken is not an int;
                    myStringTokenInt = -1;
                }

                if ((!myStringToken.equals("")) && (i == myStringTokenInt)) {
                    radioButton.setChecked(true);
                } else {
                    radioButton.setChecked(false);
                }

                radioGroup.addView(radioButton);
            }
        } else if (udtea.currScreen == udtea.MULTIPLE_RADIO_BUTTONS_WITH_ANSWER_SCREEN) {
            udtea.setContentView(R.layout.multiple_radio_buttons_screen);
            udtea.initBackNextButtons();
            String myMultipleRadioButtonsWithAnswerScreenStringToken = "";
            //             Log.d(">>>>>>>>udtea.currUsbongNode", udtea.currUsbongNode);
            udtea.currUsbongNodeWithoutAnswer = udtea.currUsbongNode.replace("Answer=", "~");
            StringTokenizer myMultipleRadioButtonsWithAnswerScreenStringTokenizer = new StringTokenizer(
                    udtea.currUsbongNodeWithoutAnswer, "~");
            if (myMultipleRadioButtonsWithAnswerScreenStringTokenizer != null) {
                myMultipleRadioButtonsWithAnswerScreenStringToken = myMultipleRadioButtonsWithAnswerScreenStringTokenizer
                        .nextToken();

                while (myMultipleRadioButtonsWithAnswerScreenStringTokenizer.hasMoreTokens()) { //get last element (i.e. 0 in "radioButtonsWithAnswer~You see your teacher approaching you. What do you do?Answer=0")
                    myMultipleRadioButtonsWithAnswerScreenStringToken = myMultipleRadioButtonsWithAnswerScreenStringTokenizer
                            .nextToken();
                }
            }
            udtea.myMultipleRadioButtonsWithAnswerScreenAnswer = myMultipleRadioButtonsWithAnswerScreenStringToken
                    .toString();
            //             Log.d(">>>>>>>>udtea.myMultipleRadioButtonsWithAnswerScreenAnswer", udtea.myMultipleRadioButtonsWithAnswerScreenAnswer);
            udtea.currUsbongNodeWithoutAnswer = udtea.currUsbongNodeWithoutAnswer.substring(0,
                    udtea.currUsbongNodeWithoutAnswer.length()
                            - udtea.myMultipleRadioButtonsWithAnswerScreenAnswer.length() - 1); //do a -1 for the last tilde             
            //             Log.d(">>>>>>>>udtea.currUsbongNodeWithoutAnswer", udtea.currUsbongNodeWithoutAnswer);
            TextView myMultipleRadioButtonsWithAnswerScreenTextView = (TextView) udtea
                    .findViewById(R.id.radio_buttons_textview);
            myMultipleRadioButtonsWithAnswerScreenTextView = (TextView) UsbongUtils.applyTagsInView(
                    UsbongDecisionTreeEngineActivity.getInstance(), myMultipleRadioButtonsWithAnswerScreenTextView,
                    UsbongUtils.IS_TEXTVIEW, udtea.currUsbongNodeWithoutAnswer);
            RadioGroup myMultipleRadioButtonsWithAnswerRadioGroup = (RadioGroup) udtea
                    .findViewById(R.id.multiple_radio_buttons_radiogroup);
            int myMultipleRadioButtonsWithAnswerTotalRadioButtonsInContainer = udtea.radioButtonsContainer.size();
            for (int i = 0; i < myMultipleRadioButtonsWithAnswerTotalRadioButtonsInContainer; i++) {
                View radioButtonView = new RadioButton(udtea.getBaseContext());
                RadioButton radioButton = (RadioButton) UsbongUtils.applyTagsInView(
                        UsbongDecisionTreeEngineActivity.getInstance(), radioButtonView, UsbongUtils.IS_RADIOBUTTON,
                        udtea.radioButtonsContainer.elementAt(i).toString());
                radioButton.setTextSize(20);
                radioButton.setId(i);
                radioButton.setTextColor(Color.parseColor("#4a452a"));

                if ((!myStringToken.equals("")) && (i == Integer.parseInt(myStringToken))) {
                    radioButton.setChecked(true);
                } else {
                    radioButton.setChecked(false);
                }

                myMultipleRadioButtonsWithAnswerRadioGroup.addView(radioButton);
            }
        } else if (udtea.currScreen == udtea.LINK_SCREEN) {
            //use same contentView as multiple_radio_buttons_screen
            udtea.setContentView(R.layout.multiple_radio_buttons_screen);
            udtea.initBackNextButtons();
            TextView myLinkScreenTextView = (TextView) udtea.findViewById(R.id.radio_buttons_textview);
            myLinkScreenTextView = (TextView) UsbongUtils.applyTagsInView(
                    UsbongDecisionTreeEngineActivity.getInstance(), myLinkScreenTextView, UsbongUtils.IS_TEXTVIEW,
                    udtea.currUsbongNode);

            RadioGroup myLinkScreenRadioGroup = (RadioGroup) udtea
                    .findViewById(R.id.multiple_radio_buttons_radiogroup);
            int myLinkScreenTotalRadioButtonsInContainer = udtea.radioButtonsContainer.size();
            for (int i = 0; i < myLinkScreenTotalRadioButtonsInContainer; i++) {
                View radioButtonView = new RadioButton(udtea.getBaseContext());
                RadioButton radioButton = (RadioButton) UsbongUtils.applyTagsInView(
                        UsbongDecisionTreeEngineActivity.getInstance(), radioButtonView, UsbongUtils.IS_RADIOBUTTON,
                        UsbongUtils.trimUsbongNodeName(udtea.radioButtonsContainer.elementAt(i).toString()));

                Log.d(">>>>>radioButton", radioButton.getText().toString());

                //                  radioButton.setChecked(false);
                radioButton.setTextSize(20);
                radioButton.setId(i);
                radioButton.setTextColor(Color.parseColor("#4a452a"));

                if ((!myStringToken.equals("")) && (i == Integer.parseInt(myStringToken))) {
                    radioButton.setChecked(true);
                } else {
                    radioButton.setChecked(false);
                }

                myLinkScreenRadioGroup.addView(radioButton);
            }
        } else if (udtea.currScreen == udtea.MULTIPLE_CHECKBOXES_SCREEN) {
            udtea.setContentView(R.layout.multiple_checkboxes_screen);
            udtea.initBackNextButtons();
            TextView myMultipleCheckBoxesScreenTextView = (TextView) udtea.findViewById(R.id.checkboxes_textview);
            myMultipleCheckBoxesScreenTextView = (TextView) UsbongUtils.applyTagsInView(
                    UsbongDecisionTreeEngineActivity.getInstance(), myMultipleCheckBoxesScreenTextView,
                    UsbongUtils.IS_TEXTVIEW, udtea.currUsbongNode);
            LinearLayout myMultipleCheckboxesLinearLayout = (LinearLayout) udtea
                    .findViewById(R.id.multiple_checkboxes_linearlayout);
            int totalCheckBoxesInContainer = udtea.checkBoxesContainer.size();
            StringTokenizer myMultipleCheckboxStringTokenizer = new StringTokenizer(myStringToken, ",");
            Vector<String> myCheckedAnswers = new Vector<String>();
            //             int counter=0;             
            while (myMultipleCheckboxStringTokenizer.countTokens() > 0) {
                String myMultipleCheckboxStringToken = myMultipleCheckboxStringTokenizer.nextToken();
                if (myMultipleCheckboxStringToken != null) {
                    myCheckedAnswers.add(myMultipleCheckboxStringToken);
                } else {
                    break;
                }
                //                counter++;
            }
            for (int i = 0; i < totalCheckBoxesInContainer; i++) {
                CheckBox checkBox = new CheckBox(udtea.getBaseContext());
                //                  checkBox.setText(StringEscapeUtils.unescapeJava(udtea.checkBoxesContainer.elementAt(i).toString()));
                checkBox = (CheckBox) UsbongUtils.applyTagsInView(UsbongDecisionTreeEngineActivity.getInstance(),
                        checkBox, UsbongUtils.IS_CHECKBOX,
                        StringEscapeUtils.unescapeJava(udtea.checkBoxesContainer.elementAt(i).toString()));

                for (int k = 0; k < myCheckedAnswers.size(); k++) {
                    try {
                        if (i == Integer.parseInt(myCheckedAnswers.elementAt(k))) {
                            checkBox.setChecked(true);
                        }
                    } catch (NumberFormatException e) {//if myCheckedAnswers.elementAt(k) is not an int;
                        continue;
                    }
                }

                checkBox.setTextSize(20);
                checkBox.setTextColor(Color.parseColor("#4a452a"));
                myMultipleCheckboxesLinearLayout.addView(checkBox);
            }
        } else if (udtea.currScreen == udtea.AUDIO_RECORD_SCREEN) {
            udtea.setContentView(R.layout.audio_recorder_screen);
            udtea.initRecordAudioScreen();
            udtea.initBackNextButtons();
            TextView myAudioRecorderTextView = (TextView) udtea.findViewById(R.id.audio_recorder_textview);
            myAudioRecorderTextView = (TextView) UsbongUtils.applyTagsInView(
                    UsbongDecisionTreeEngineActivity.getInstance(), myAudioRecorderTextView,
                    UsbongUtils.IS_TEXTVIEW, udtea.currUsbongNode);
            Button recordButton = (Button) udtea.findViewById(R.id.record_button);
            Button stopButton = (Button) udtea.findViewById(R.id.stop_button);
            Button playButton = (Button) udtea.findViewById(R.id.play_button);
            if (udtea.currLanguageBeingUsed == UsbongUtils.LANGUAGE_FILIPINO) {
                recordButton.setText((String) udtea.getResources().getText(R.string.UsbongRecordTextViewFILIPINO));
                stopButton.setText((String) udtea.getResources().getText(R.string.UsbongStopTextViewFILIPINO));
                playButton.setText((String) udtea.getResources().getText(R.string.UsbongPlayTextViewFILIPINO));
            } else if (udtea.currLanguageBeingUsed == UsbongUtils.LANGUAGE_JAPANESE) {
                recordButton.setText((String) udtea.getResources().getText(R.string.UsbongRecordTextViewJAPANESE));
                stopButton.setText((String) udtea.getResources().getText(R.string.UsbongStopTextViewJAPANESE));
                playButton.setText((String) udtea.getResources().getText(R.string.UsbongPlayTextViewJAPANESE));
            } else { //if (udtea.currLanguageBeingUsed==UsbongUtils.LANGUAGE_ENGLISH) {
                recordButton.setText((String) udtea.getResources().getText(R.string.UsbongRecordTextViewENGLISH));
                stopButton.setText((String) udtea.getResources().getText(R.string.UsbongStopTextViewENGLISH));
                playButton.setText((String) udtea.getResources().getText(R.string.UsbongPlayTextViewENGLISH));
            }
        } else if (udtea.currScreen == udtea.PHOTO_CAPTURE_SCREEN) {
            udtea.setContentView(R.layout.photo_capture_screen);
            if (!udtea.performedCapturePhoto) {
                udtea.initTakePhotoScreen();
            }
            udtea.initBackNextButtons();
            TextView myPhotoCaptureScreenTextView = (TextView) udtea.findViewById(R.id.photo_capture_textview);
            myPhotoCaptureScreenTextView = (TextView) UsbongUtils.applyTagsInView(
                    UsbongDecisionTreeEngineActivity.getInstance(), myPhotoCaptureScreenTextView,
                    UsbongUtils.IS_TEXTVIEW, udtea.currUsbongNode);
            Button photoCaptureButton = (Button) udtea.findViewById(R.id.photo_capture_button);
            if (udtea.currLanguageBeingUsed == UsbongUtils.LANGUAGE_FILIPINO) {
                photoCaptureButton
                        .setText((String) udtea.getResources().getText(R.string.UsbongTakePhotoTextViewFILIPINO));
            } else if (udtea.currLanguageBeingUsed == UsbongUtils.LANGUAGE_JAPANESE) {
                photoCaptureButton
                        .setText((String) udtea.getResources().getText(R.string.UsbongTakePhotoTextViewJAPANESE));
            } else { //if (udtea.currLanguageBeingUsed==UsbongUtils.LANGUAGE_ENGLISH) {
                photoCaptureButton
                        .setText((String) udtea.getResources().getText(R.string.UsbongTakePhotoTextViewENGLISH));
            }
        } else if (udtea.currScreen == udtea.PAINT_SCREEN) {
            udtea.setContentView(R.layout.paint_screen);
            if (!udtea.performedRunPaint) {
                udtea.initPaintScreen();
            }
            udtea.initBackNextButtons();
            TextView myPaintScreenTextView = (TextView) udtea.findViewById(R.id.paint_textview);
            myPaintScreenTextView = (TextView) UsbongUtils.applyTagsInView(
                    UsbongDecisionTreeEngineActivity.getInstance(), myPaintScreenTextView, UsbongUtils.IS_TEXTVIEW,
                    udtea.currUsbongNode);
            Button paintButton = (Button) udtea.findViewById(R.id.paint_button);
            if (udtea.currLanguageBeingUsed == UsbongUtils.LANGUAGE_FILIPINO) {
                paintButton.setText((String) udtea.getResources().getText(R.string.UsbongRunPaintTextViewFILIPINO));
            } else if (udtea.currLanguageBeingUsed == UsbongUtils.LANGUAGE_JAPANESE) {
                paintButton.setText((String) udtea.getResources().getText(R.string.UsbongRunPaintTextViewJAPANESE));
            } else { //if (udtea.currLanguageBeingUsed==UsbongUtils.LANGUAGE_ENGLISH) {
                paintButton.setText((String) udtea.getResources().getText(R.string.UsbongRunPaintTextViewENGLISH));
            }
        } else if (udtea.currScreen == udtea.QR_CODE_READER_SCREEN) {
            udtea.setContentView(R.layout.qr_code_reader_screen);
            if (!udtea.performedGetQRCode) {
                udtea.initQRCodeReaderScreen();
            }
            udtea.initBackNextButtons();
            TextView myQRCodeReaderScreenTextView = (TextView) udtea.findViewById(R.id.qr_code_reader_textview);
            myQRCodeReaderScreenTextView = (TextView) UsbongUtils.applyTagsInView(
                    UsbongDecisionTreeEngineActivity.getInstance(), myQRCodeReaderScreenTextView,
                    UsbongUtils.IS_TEXTVIEW, udtea.currUsbongNode);
            Button qrCodeReaderButton = (Button) udtea.findViewById(R.id.qr_code_reader_button);
            if (udtea.currLanguageBeingUsed == UsbongUtils.LANGUAGE_FILIPINO) {
                qrCodeReaderButton.setText(
                        (String) udtea.getResources().getText(R.string.UsbongQRCodeReaderTextViewFILIPINO));
            } else if (udtea.currLanguageBeingUsed == UsbongUtils.LANGUAGE_JAPANESE) {
                qrCodeReaderButton.setText(
                        (String) udtea.getResources().getText(R.string.UsbongQRCodeReaderTextViewJAPANESE));
            } else { //if (udtea.currLanguageBeingUsed==UsbongUtils.LANGUAGE_ENGLISH) {
                qrCodeReaderButton
                        .setText((String) udtea.getResources().getText(R.string.UsbongQRCodeReaderTextViewENGLISH));
            }
        } else if (udtea.currScreen == udtea.TEXTFIELD_SCREEN) {
            udtea.setContentView(R.layout.textfield_screen);
            udtea.initBackNextButtons();
            TextView myTextFieldScreenTextView = (TextView) udtea.findViewById(R.id.textfield_textview);
            myTextFieldScreenTextView = (TextView) UsbongUtils.applyTagsInView(
                    UsbongDecisionTreeEngineActivity.getInstance(), myTextFieldScreenTextView,
                    UsbongUtils.IS_TEXTVIEW, udtea.currUsbongNode);
            EditText myTextFieldScreenEditText = (EditText) udtea.findViewById(R.id.textfield_edittext);
            myTextFieldScreenEditText.setText(myStringToken);
        } else if (udtea.currScreen == udtea.TEXTFIELD_WITH_ANSWER_SCREEN) {
            udtea.setContentView(R.layout.textfield_screen);
            udtea.initBackNextButtons();
            String myTextFieldWithAnswerScreenStringToken = "";
            //             Log.d(">>>>>>>>udtea.currUsbongNode", udtea.currUsbongNode);
            udtea.currUsbongNodeWithoutAnswer = udtea.currUsbongNode.replace("Answer=", "~");
            StringTokenizer myTextFieldWithAnswerScreenStringTokenizer = new StringTokenizer(
                    udtea.currUsbongNodeWithoutAnswer, "~");
            if (myTextFieldWithAnswerScreenStringTokenizer != null) {
                myTextFieldWithAnswerScreenStringToken = myTextFieldWithAnswerScreenStringTokenizer.nextToken();

                while (myTextFieldWithAnswerScreenStringTokenizer.hasMoreTokens()) { //get last element (i.e. Mike in "textFieldWithAnswer~Who is the founder of Usbong (nickname)?Answer=Mike")
                    myTextFieldWithAnswerScreenStringToken = myTextFieldWithAnswerScreenStringTokenizer.nextToken();
                }
            }
            udtea.myTextFieldWithAnswerScreenAnswer = myTextFieldWithAnswerScreenStringToken.toString();
            udtea.currUsbongNodeWithoutAnswer = udtea.currUsbongNodeWithoutAnswer.substring(0,
                    udtea.currUsbongNodeWithoutAnswer.length() - udtea.myTextFieldWithAnswerScreenAnswer.length()
                            - 1); //do a -1 for the last tilde             
            TextView myTextFieldWithAnswerScreenTextView = (TextView) udtea.findViewById(R.id.textfield_textview);
            myTextFieldWithAnswerScreenTextView = (TextView) UsbongUtils.applyTagsInView(
                    UsbongDecisionTreeEngineActivity.getInstance(), myTextFieldWithAnswerScreenTextView,
                    UsbongUtils.IS_TEXTVIEW, udtea.currUsbongNodeWithoutAnswer);
            EditText myTextFieldScreenWithAnswerEditText = (EditText) udtea.findViewById(R.id.textfield_edittext);
            myTextFieldScreenWithAnswerEditText.setText(myStringToken);
        } else if (udtea.currScreen == udtea.TEXTAREA_SCREEN) {
            udtea.setContentView(R.layout.textarea_screen);
            udtea.initBackNextButtons();
            TextView myTextAreaScreenTextView = (TextView) udtea.findViewById(R.id.textarea_textview);
            myTextAreaScreenTextView = (TextView) UsbongUtils.applyTagsInView(
                    UsbongDecisionTreeEngineActivity.getInstance(), myTextAreaScreenTextView,
                    UsbongUtils.IS_TEXTVIEW, udtea.currUsbongNode);
            EditText myTextAreaScreenEditText = (EditText) udtea.findViewById(R.id.textarea_edittext);
            myTextAreaScreenEditText.setText(myStringToken);
        } else if (udtea.currScreen == udtea.TEXTAREA_WITH_ANSWER_SCREEN) {
            udtea.setContentView(R.layout.textarea_screen);
            udtea.initBackNextButtons();
            String myTextAreaWithAnswerScreenStringToken = "";
            //             Log.d(">>>>>>>>udtea.currUsbongNode", udtea.currUsbongNode);
            udtea.currUsbongNodeWithoutAnswer = udtea.currUsbongNode.replace("Answer=", "~");
            StringTokenizer myTextAreaWithAnswerScreenStringTokenizer = new StringTokenizer(
                    udtea.currUsbongNodeWithoutAnswer, "~");
            if (myTextAreaWithAnswerScreenStringTokenizer != null) {
                myTextAreaWithAnswerScreenStringToken = myTextAreaWithAnswerScreenStringTokenizer.nextToken();

                while (myTextAreaWithAnswerScreenStringTokenizer.hasMoreTokens()) { //get last element (i.e. Mike in "textFieldWithAnswer~Who is the founder of Usbong (nickname)?Answer=Mike")
                    myTextAreaWithAnswerScreenStringToken = myTextAreaWithAnswerScreenStringTokenizer.nextToken();
                }
            }
            udtea.myTextAreaWithAnswerScreenAnswer = myTextAreaWithAnswerScreenStringToken.toString();
            udtea.currUsbongNodeWithoutAnswer = udtea.currUsbongNodeWithoutAnswer.substring(0,
                    udtea.currUsbongNodeWithoutAnswer.length() - udtea.myTextAreaWithAnswerScreenAnswer.length()
                            - 1); //do a -1 for the last tilde             
            TextView myTextAreaWithAnswerScreenTextView = (TextView) udtea.findViewById(R.id.textarea_textview);
            myTextAreaWithAnswerScreenTextView = (TextView) UsbongUtils.applyTagsInView(
                    UsbongDecisionTreeEngineActivity.getInstance(), myTextAreaWithAnswerScreenTextView,
                    UsbongUtils.IS_TEXTVIEW, udtea.currUsbongNodeWithoutAnswer);
            EditText myTextAreaScreenWithAnswerEditText = (EditText) udtea.findViewById(R.id.textarea_edittext);
            myTextAreaScreenWithAnswerEditText.setText(myStringToken);
        } else if (udtea.currScreen == udtea.TEXTFIELD_WITH_UNIT_SCREEN) {
            udtea.setContentView(R.layout.textfield_with_unit_screen);
            udtea.initBackNextButtons();
            TextView myTextFieldWithUnitScreenTextView = (TextView) udtea.findViewById(R.id.textfield_textview);
            myTextFieldWithUnitScreenTextView = (TextView) UsbongUtils.applyTagsInView(
                    UsbongDecisionTreeEngineActivity.getInstance(), myTextFieldWithUnitScreenTextView,
                    UsbongUtils.IS_TEXTVIEW, udtea.currUsbongNode);
            EditText myEditText = (EditText) udtea.findViewById(R.id.textfield_edittext);
            myEditText.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);
            myEditText.setText(myStringToken);
            TextView myUnitScreenTextView = (TextView) udtea.findViewById(R.id.textfieldunit_textview);
            myUnitScreenTextView.setText(udtea.textFieldUnit);
        } else if (udtea.currScreen == udtea.TEXTFIELD_NUMERICAL_SCREEN) {
            udtea.setContentView(R.layout.textfield_screen);
            udtea.initBackNextButtons();
            TextView myTextFieldNumericalScreenTextView = (TextView) udtea.findViewById(R.id.textfield_textview);
            myTextFieldNumericalScreenTextView = (TextView) UsbongUtils.applyTagsInView(
                    UsbongDecisionTreeEngineActivity.getInstance(), myTextFieldNumericalScreenTextView,
                    UsbongUtils.IS_TEXTVIEW, udtea.currUsbongNode);
            EditText myTextFieldNumericalScreenEditText = (EditText) udtea.findViewById(R.id.textfield_edittext);
            myTextFieldNumericalScreenEditText
                    .setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);
            myTextFieldNumericalScreenEditText.setText(myStringToken);
        } else if (udtea.currScreen == udtea.CLASSIFICATION_SCREEN) {
            udtea.setContentView(R.layout.classification_screen);
            udtea.initBackNextButtons();
            TextView myClassificationScreenTextView = (TextView) udtea.findViewById(R.id.classification_textview);
            myClassificationScreenTextView = (TextView) UsbongUtils.applyTagsInView(
                    UsbongDecisionTreeEngineActivity.getInstance(), myClassificationScreenTextView,
                    UsbongUtils.IS_TEXTVIEW, udtea.currUsbongNode);
            LinearLayout myClassificationLinearLayout = (LinearLayout) udtea
                    .findViewById(R.id.classification_linearlayout);
            int totalClassificationsInContainer = udtea.classificationContainer.size();
            for (int i = 0; i < totalClassificationsInContainer; i++) {
                TextView myTextView = new TextView(udtea.getBaseContext());
                //consider removing this code below; not needed; Mike, May 23, 2013
                myTextView = (TextView) UsbongUtils.applyTagsInView(UsbongDecisionTreeEngineActivity.getInstance(),
                        myTextView, UsbongUtils.IS_TEXTVIEW, udtea.currUsbongNode);

                int bulletCount = i + 1;
                if (UsbongUtils.USE_UNESCAPE) {
                    myTextView.setText(bulletCount + ") " + StringEscapeUtils
                            .unescapeJava(udtea.classificationContainer.elementAt(i).toString()));
                } else {
                    myTextView.setText(bulletCount + ") " + UsbongUtils
                            .trimUsbongNodeName(udtea.classificationContainer.elementAt(i).toString()));
                }

                //add 5 so that the text does not touch the left border
                myTextView.setPadding(udtea.padding_in_px, 0, 0, 0);
                myTextView.setTextSize(24);
                //                 myTextView.setTextColor(Color.WHITE);
                myTextView.setTextColor(Color.parseColor("#4a452a"));
                myClassificationLinearLayout.addView(myTextView);
            }
        } else if (udtea.currScreen == udtea.DCAT_SUMMARY_SCREEN) {
            udtea.setContentView(R.layout.dcat_summary_screen);
            udtea.initBackNextButtons();
            TextView myDCATSummaryScreenTextView = (TextView) udtea.findViewById(R.id.dcat_summary_textview);
            myDCATSummaryScreenTextView = (TextView) UsbongUtils.applyTagsInView(
                    UsbongDecisionTreeEngineActivity.getInstance(), myDCATSummaryScreenTextView,
                    UsbongUtils.IS_TEXTVIEW, udtea.currUsbongNode);
            udtea.myDcatSummaryStringBuffer = new StringBuffer();
            String weightsString = "1.9;2.1;2.6;1.8;2.4;1.8;.7;1.0;1.6;2.6;6.9;5.7;3.3;2.2;3.3;3.3;2;2;1.7;1.9;3.9;1.3;2.5;.8";
            StringTokenizer myWeightsStringTokenizer = new StringTokenizer(weightsString, ";");
            String myWeightString = myWeightsStringTokenizer.nextToken();
            //            
            //            while (st.hasMoreTokens()) {
            //               myStringToken = st.nextToken(); 
            //            }
            //
            double myWeightedScoreInt = 0;
            double myNegotiatedWeightedScoreInt = 0;
            double[][] dcatSum = new double[8][4];
            final int sumWeightedRatingIndex = 0;
            final int sumWeightedScoreIndex = 1;
            final int sumNegotiatedRatingIndex = 2;
            final int sumNegotiatedScoreIndex = 3;
            int currStandard = 0;//standard 1
            //            boolean hasReachedNegotiated=false;
            boolean hasReachedStandardTotal = false;
            LinearLayout myDCATSummaryLinearLayout = (LinearLayout) udtea
                    .findViewById(R.id.dcat_summary_linearlayout);
            int totalElementsInDCATSummaryBasedOnUsbongNodeContainer = udtea.usbongNodeContainer.size();
            //              for (int i=0; i<totalElementsInDCATSummaryBasedOnUsbongNodeContainer.usbongNodeContainer; i++) {                 
            for (int i = 0; i < totalElementsInDCATSummaryBasedOnUsbongNodeContainer; i++) {

                TextView myTextView = new TextView(udtea.getBaseContext());
                myTextView.setPadding(udtea.padding_in_px, 0, 0, 0); //add 5 so that the text does not touch the left border
                myTextView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 24);
                myTextView.setTextColor(Color.parseColor("#4a452a"));

                //the only way to check if the element is already the last item in the standard
                //is if the next element in the node container has "STANDARD", but not the first standard
                if ((i + 1 >= totalElementsInDCATSummaryBasedOnUsbongNodeContainer) || (i
                        + 1 < totalElementsInDCATSummaryBasedOnUsbongNodeContainer)
                        && ((udtea.usbongNodeContainer.elementAt(i + 1).toString().contains("STANDARD")))
                        && (!(udtea.usbongNodeContainer.elementAt(i + 1).toString().contains("STANDARD ONE")))) {
                    int tempCurrStandard = currStandard + 1; //do a +1 since currStandard begins at 0

                    TextView myIssuesTextView = new TextView(udtea.getBaseContext());

                    //added by Mike, May 31, 2013
                    if (!udtea.usbongAnswerContainer.elementAt(i).toString().contains("dcat_end,")) {

                        String s = udtea.usbongAnswerContainer.elementAt(i).toString().replace(";", "");
                        s = s.replace("A,", "");
                        if (!s.equals("")) {
                            myIssuesTextView = (TextView) UsbongUtils.applyTagsInView(
                                    UsbongDecisionTreeEngineActivity.getInstance(), myIssuesTextView,
                                    UsbongUtils.IS_TEXTVIEW, "ISSUES: " + s + "{br}");
                        } else {
                            myIssuesTextView = (TextView) UsbongUtils.applyTagsInView(
                                    UsbongDecisionTreeEngineActivity.getInstance(), myIssuesTextView,
                                    UsbongUtils.IS_TEXTVIEW, "ISSUES: none{br}");
                        }

                        myIssuesTextView.setPadding(udtea.padding_in_px, 0, 0, 0); //add 5 so that the text does not touch the left border
                        myIssuesTextView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 24);
                        myIssuesTextView.setTextColor(Color.parseColor("#4a452a"));
                        myDCATSummaryLinearLayout.addView(myIssuesTextView);
                        udtea.myDcatSummaryStringBuffer.append(myIssuesTextView.getText().toString() + "\n");
                    }

                    if (myWeightsStringTokenizer.hasMoreElements()) {
                        //get the next weight
                        myWeightString = myWeightsStringTokenizer.nextToken();
                    }

                    myTextView = (TextView) UsbongUtils.applyTagsInView(
                            UsbongDecisionTreeEngineActivity.getInstance(), myTextView, UsbongUtils.IS_TEXTVIEW,
                            "//--------------------" + " STANDARD " + tempCurrStandard + " (TOTAL){br}"
                                    + "Total (Rating): "
                                    + String.format("%.2f", dcatSum[currStandard][sumWeightedRatingIndex]) + "{br}"
                                    + "Total (Weighted Score): "
                                    + String.format("%.2f", dcatSum[currStandard][sumWeightedScoreIndex]) + "{br}"
                                    + "Total (Negotiated Rating): "
                                    + String.format("%.2f", dcatSum[currStandard][sumNegotiatedRatingIndex])
                                    + "{br}" + "Total (Negotiated WS): "
                                    + String.format("%.2f", dcatSum[currStandard][sumNegotiatedScoreIndex]) + "{br}"
                                    + "//--------------------");
                    hasReachedStandardTotal = true;
                    currStandard++;
                }

                if (hasReachedStandardTotal) {
                    hasReachedStandardTotal = false;
                } else if (udtea.usbongNodeContainer.elementAt(i).toString().contains("ISSUES")) {
                    String s = udtea.usbongAnswerContainer.elementAt(i).toString().replace(";", "");
                    s = s.replace("A,", "");
                    if (!s.equals("")) {
                        myTextView = (TextView) UsbongUtils.applyTagsInView(
                                UsbongDecisionTreeEngineActivity.getInstance(), myTextView, UsbongUtils.IS_TEXTVIEW,
                                "ISSUES: " + s + "{br}");
                    } else {
                        myTextView = (TextView) UsbongUtils.applyTagsInView(
                                UsbongDecisionTreeEngineActivity.getInstance(), myTextView, UsbongUtils.IS_TEXTVIEW,
                                "ISSUES: none{br}");
                    }

                    if (myWeightsStringTokenizer.hasMoreElements()) {
                        //get the next weight
                        myWeightString = myWeightsStringTokenizer.nextToken();
                    }
                } else if (udtea.usbongNodeContainer.elementAt(i).toString().contains("Weighted")) {
                    TextView myWeightedTextView = new TextView(udtea.getBaseContext());
                    myWeightedTextView = (TextView) UsbongUtils.applyTagsInView(
                            UsbongDecisionTreeEngineActivity.getInstance(), myWeightedTextView,
                            UsbongUtils.IS_TEXTVIEW,
                            udtea.usbongNodeContainer.elementAt(i).toString().replace("{br}(Weighted Score)", ""));
                    myWeightedTextView.setPadding(udtea.padding_in_px, 0, 0, 0); //add 5 so that the text does not touch the left border
                    myWeightedTextView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 24);
                    myWeightedTextView.setTextColor(Color.parseColor("#4a452a"));

                    myDCATSummaryLinearLayout.addView(myWeightedTextView);
                    udtea.myDcatSummaryStringBuffer.append(myWeightedTextView.getText().toString() + "\n");

                    int weightedAnswer;
                    //added by Mike, July 8, 2013
                    try {
                        weightedAnswer = Integer
                                .parseInt(udtea.usbongAnswerContainer.elementAt(i).toString().replace(";", ""));
                    } catch (Exception e) { //if there's no answer selected
                        weightedAnswer = 0;
                    }
                    if (weightedAnswer <= 0) {
                        weightedAnswer = 0;
                    }

                    //the weight is in double
                    myWeightedScoreInt = weightedAnswer * Double.parseDouble(myWeightString);
                    if (myWeightedScoreInt <= 0) {
                        myWeightedScoreInt = 0;
                        myTextView.setBackgroundColor(Color.YELLOW);
                    }

                    dcatSum[currStandard][sumWeightedRatingIndex] += weightedAnswer;
                    dcatSum[currStandard][sumWeightedScoreIndex] += myWeightedScoreInt;

                    myTextView = (TextView) UsbongUtils.applyTagsInView(
                            UsbongDecisionTreeEngineActivity.getInstance(), myTextView, UsbongUtils.IS_TEXTVIEW,
                            "Weighted: " + myWeightedScoreInt);
                } else if (udtea.usbongNodeContainer.elementAt(i).toString().contains("Negotiated")) {
                    //added by Mike, July 8, 2013
                    int negotiatedAnswer;
                    try {
                        negotiatedAnswer = Integer
                                .parseInt(udtea.usbongAnswerContainer.elementAt(i).toString().replace(";", ""));
                    } catch (Exception e) { //if there's no answer selected
                        negotiatedAnswer = 0;
                    }
                    if (negotiatedAnswer <= 0) {
                        negotiatedAnswer = 0;
                    }

                    //the weight is in double
                    myNegotiatedWeightedScoreInt = negotiatedAnswer * Double.parseDouble(myWeightString);
                    if (myNegotiatedWeightedScoreInt <= 0) {
                        myNegotiatedWeightedScoreInt = 0;
                        myTextView.setBackgroundColor(Color.YELLOW);
                    }

                    dcatSum[currStandard][sumNegotiatedRatingIndex] += negotiatedAnswer;
                    dcatSum[currStandard][sumNegotiatedScoreIndex] += myNegotiatedWeightedScoreInt;

                    myTextView = (TextView) UsbongUtils.applyTagsInView(
                            UsbongDecisionTreeEngineActivity.getInstance(), myTextView, UsbongUtils.IS_TEXTVIEW,
                            "Negotiated: " + myNegotiatedWeightedScoreInt);
                    //                    hasReachedNegotiated=true;
                } else {
                    myTextView = (TextView) UsbongUtils.applyTagsInView(
                            UsbongDecisionTreeEngineActivity.getInstance(), myTextView, UsbongUtils.IS_TEXTVIEW,
                            udtea.usbongNodeContainer.elementAt(i).toString() + "{br}");
                }

                //                 if (!hasReachedStandardTotal) {
                myDCATSummaryLinearLayout.addView(myTextView);
                udtea.myDcatSummaryStringBuffer.append(myTextView.getText().toString() + "\n");
                Log.d(">>>>>myTextView.getText().toString()", myTextView.getText().toString());
                //                 }
                //                 else {
                //                    hasReachedStandardTotal=false;
                //                 }
            }
        } else if (udtea.currScreen == udtea.DATE_SCREEN) {
            udtea.setContentView(R.layout.date_screen);
            udtea.initBackNextButtons();
            TextView myDateScreenTextView = (TextView) udtea.findViewById(R.id.date_textview);
            myDateScreenTextView = (TextView) UsbongUtils.applyTagsInView(
                    UsbongDecisionTreeEngineActivity.getInstance(), myDateScreenTextView, UsbongUtils.IS_TEXTVIEW,
                    udtea.currUsbongNode);
            //Reference: http://code.google.com/p/android/issues/detail?id=2037
            //last accessed: 21 Aug. 2012
            Configuration userConfig = new Configuration();
            Settings.System.getConfiguration(udtea.getContentResolver(), userConfig);
            Calendar date = Calendar.getInstance(userConfig.locale);
            //Reference: http://www.androidpeople.com/android-spinner-default-value;
            //last accessed: 21 Aug. 2012              
            //month-------------------------------
            int month = date.get(Calendar.MONTH); //first month of the year is 0
            Spinner dateMonthSpinner = (Spinner) udtea.findViewById(R.id.date_month_spinner);
            udtea.monthAdapter = ArrayAdapter.createFromResource(((Activity) udtea), R.array.months_array,
                    android.R.layout.simple_spinner_item);
            //              udtea.monthAdapter  = ArrayAdapter.createFromResource(
            //                this, R.array.months_array, R.layout.date_textview);
            udtea.monthAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            dateMonthSpinner.setAdapter(udtea.monthAdapter);
            dateMonthSpinner.setSelection(month);
            //              System.out.println(">>>>>>>>>>>>>> month"+month);
            //              Log.d(">>>>>>myStringToken",myStringToken);
            for (int i = 0; i < udtea.monthAdapter.getCount(); i++) {
                //                 Log.d(">>>>>>udtea.monthAdapter ",udtea.monthAdapter .getItem(i).toString());

                if (myStringToken.contains(udtea.monthAdapter.getItem(i).toString())) {
                    dateMonthSpinner.setSelection(i);

                    //added by Mike, March 4, 2013
                    myStringToken = myStringToken.replace(udtea.monthAdapter.getItem(i).toString(), "");
                }
            }
            //-------------------------------------
            //day----------------------------------
            //Reference: http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Calendar.html#MONTH
            //last accessed: 21 Aug 2012
            int day = date.get(Calendar.DAY_OF_MONTH); //first day of the month is 1
            day = day - 1; //do this to offset, when retrieving the day in strings.xml
            Spinner dateDaySpinner = (Spinner) udtea.findViewById(R.id.date_day_spinner);
            udtea.dayAdapter = ArrayAdapter.createFromResource(((Activity) udtea), R.array.day_array,
                    android.R.layout.simple_spinner_item);
            udtea.dayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            dateDaySpinner.setAdapter(udtea.dayAdapter);
            dateDaySpinner.setSelection(day);
            //              System.out.println(">>>>>>>>>>>>>> day"+day);
            //              Log.d(">>>>>myStringToken",myStringToken);
            //              System.out.println(">>>>>>>> myStringToken"+myStringToken);
            StringTokenizer myDateStringTokenizer = new StringTokenizer(myStringToken, ",");
            String myDayStringToken = "";
            if (!myStringToken.equals("")) {
                myDayStringToken = myDateStringTokenizer.nextToken();
            }
            for (int i = 0; i < udtea.dayAdapter.getCount(); i++) {
                if (myDayStringToken.contains(udtea.dayAdapter.getItem(i).toString())) {
                    dateDaySpinner.setSelection(i);

                    myStringToken = myStringToken.replace(udtea.dayAdapter.getItem(i).toString() + ",", "");
                    //                    System.out.println(">>>>>>>>>>>myStringToken: "+myStringToken);
                }
            }
            //-------------------------------------            
            //year---------------------------------
            int year = date.get(Calendar.YEAR);
            EditText myDateYearEditText = (EditText) udtea.findViewById(R.id.date_edittext);
            myDateYearEditText.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);
            //added by Mike, March 4, 2013
            if (myStringToken.equals("")) {
                myDateYearEditText.setText("" + year);
            } else {
                myDateYearEditText.setText(myStringToken);
            }
        } else if (udtea.currScreen == udtea.TEXT_DISPLAY_SCREEN) {
            udtea.setContentView(R.layout.text_display_screen);
            udtea.initBackNextButtons();
            TextView myTextDisplayScreenTextView = (TextView) udtea.findViewById(R.id.text_display_textview);
            myTextDisplayScreenTextView = (TextView) UsbongUtils.applyTagsInView(
                    UsbongDecisionTreeEngineActivity.getInstance(), myTextDisplayScreenTextView,
                    UsbongUtils.IS_TEXTVIEW, udtea.currUsbongNode);

            //         Log.d(">>>>>","inside udtea.currScreen == udtea.TEXT_DISPLAY_SCREEN");
            //         myTextDisplayScreenTextView = (TextView) UsbongUtils.applyHintsInView(UsbongDecisionTreeEngineActivity.getInstance(), myTextDisplayScreenTextView, UsbongUtils.IS_TEXTVIEW);
            //         Log.d(">>>>>","after myTextDisplayScreenTextView");

        } else if (udtea.currScreen == udtea.TIMESTAMP_DISPLAY_SCREEN) {
            udtea.setContentView(R.layout.timestamp_display_screen);
            udtea.initBackNextButtons();
            TextView myTimeDisplayScreenTextView = (TextView) udtea.findViewById(R.id.time_display_textview);
            udtea.timestampString = UsbongUtils.getCurrTimeStamp();
            myTimeDisplayScreenTextView = (TextView) UsbongUtils.applyTagsInView(
                    UsbongDecisionTreeEngineActivity.getInstance(), myTimeDisplayScreenTextView,
                    UsbongUtils.IS_TEXTVIEW, udtea.currUsbongNode + "{br}" + udtea.timestampString);

        } else if (udtea.currScreen == udtea.SIMPLE_ENCRYPT_SCREEN) {
            udtea.setContentView(R.layout.simple_encrypt_screen);
            udtea.initBackNextButtons();
            TextView myEncryptScreenTextView = (TextView) udtea.findViewById(R.id.encrypt_textview);
            myEncryptScreenTextView = (TextView) UsbongUtils.applyTagsInView(
                    UsbongDecisionTreeEngineActivity.getInstance(), myEncryptScreenTextView,
                    UsbongUtils.IS_TEXTVIEW, udtea.currUsbongNode);

            String message = "";
            if (udtea.currLanguageBeingUsed == UsbongUtils.LANGUAGE_FILIPINO) {
                message = (String) udtea.getResources().getText(R.string.UsbongEncryptAlertMessageFILIPINO);
            } else if (udtea.currLanguageBeingUsed == UsbongUtils.LANGUAGE_JAPANESE) {
                message = (String) udtea.getResources().getText(R.string.UsbongEncryptAlertMessageJAPANESE);
            } else { //if (udtea.currLanguageBeingUsed==UsbongUtils.LANGUAGE_ENGLISH) {
                message = (String) udtea.getResources().getText(R.string.UsbongEncryptAlertMessageENGLISH);
            }

            new AlertDialog.Builder(udtea).setTitle("Hey!").setMessage(message)
                    .setPositiveButton("OK", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                        }
                    }).show();

        } else if (udtea.currScreen == udtea.IMAGE_DISPLAY_SCREEN) {
            udtea.setContentView(R.layout.image_display_screen);
            udtea.initBackNextButtons();
            ImageView myImageDisplayScreenImageView = (ImageView) udtea.findViewById(R.id.special_imageview);
            //              if (!UsbongUtils.setImageDisplay(myImageDisplayScreenImageView, myTree+".utree/res/" +UsbongUtils.getResName(udtea.currUsbongNode))) {
            if (!UsbongUtils.setImageDisplay(myImageDisplayScreenImageView, udtea.myTree,
                    UsbongUtils.getResName(udtea.currUsbongNode))) {
                //Reference: http://www.anddev.org/tinytut_-_get_resources_by_name__getidentifier_-t460.html; last accessed 14 Sept 2011
                //                 Resources myRes = getResources();
                myDrawableImage = myRes
                        .getDrawable(myRes.getIdentifier("no_image", "drawable", udtea.myPackageName));
                myImageDisplayScreenImageView.setImageDrawable(myDrawableImage);
            }
        } else if (udtea.currScreen == udtea.CLICKABLE_IMAGE_DISPLAY_SCREEN) {
            udtea.setContentView(R.layout.clickable_image_display_screen);
            udtea.initBackNextButtons();
            ImageButton myClickableImageDisplayScreenImageButton = (ImageButton) udtea
                    .findViewById(R.id.clickable_image_display_imagebutton);
            if (!UsbongUtils.setClickableImageDisplay(myClickableImageDisplayScreenImageButton, udtea.myTree,
                    UsbongUtils.getResName(udtea.currUsbongNode))) {
                //Reference: http://www.anddev.org/tinytut_-_get_resources_by_name__getidentifier_-t460.html; last accessed 14 Sept 2011
                //                 Resources myRes = getResources();
                myDrawableImage = myRes
                        .getDrawable(myRes.getIdentifier("no_image", "drawable", udtea.myPackageName));
                myClickableImageDisplayScreenImageButton.setBackgroundDrawable(myDrawableImage);
            }
            myClickableImageDisplayScreenImageButton.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    //                      myMessage = UsbongUtils.applyTagsInString(udtea.currUsbongNode).toString();                   

                    TextView tv = (TextView) UsbongUtils.applyTagsInView(
                            UsbongDecisionTreeEngineActivity.getInstance(),
                            new TextView(UsbongDecisionTreeEngineActivity.getInstance()), UsbongUtils.IS_TEXTVIEW,
                            udtea.currUsbongNode);
                    if (tv.toString().equals("")) {
                        tv.setText("No message.");
                    }
                    tv.setTextSize((UsbongDecisionTreeEngineActivity.getInstance().getResources()
                            .getDimension(R.dimen.textsize)));

                    new AlertDialog.Builder(udtea).setTitle("Hey!")
                            //                     .setMessage(myMessage)
                            .setView(tv).setPositiveButton("OK", new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int which) {
                                }
                            }).show();
                }
            });
        } else if (udtea.currScreen == udtea.TEXT_CLICKABLE_IMAGE_DISPLAY_SCREEN) {
            udtea.setContentView(R.layout.text_clickable_image_display_screen);
            udtea.initBackNextButtons();
            TextView myTextClickableImageDisplayTextView = (TextView) udtea
                    .findViewById(R.id.text_clickable_image_display_textview);
            myTextClickableImageDisplayTextView = (TextView) UsbongUtils.applyTagsInView(
                    UsbongDecisionTreeEngineActivity.getInstance(), myTextClickableImageDisplayTextView,
                    UsbongUtils.IS_TEXTVIEW, udtea.currUsbongNode);
            ImageButton myTextClickableImageDisplayScreenImageButton = (ImageButton) udtea
                    .findViewById(R.id.clickable_image_display_imagebutton);
            if (!UsbongUtils.setClickableImageDisplay(myTextClickableImageDisplayScreenImageButton, udtea.myTree,
                    UsbongUtils.getResName(udtea.currUsbongNode))) {
                //Reference: http://www.anddev.org/tinytut_-_get_resources_by_name__getidentifier_-t460.html; last accessed 14 Sept 2011
                //                 Resources myRes = getResources();
                myDrawableImage = myRes
                        .getDrawable(myRes.getIdentifier("no_image", "drawable", udtea.myPackageName));
                myTextClickableImageDisplayScreenImageButton.setBackgroundDrawable(myDrawableImage);
            }
            myTextClickableImageDisplayScreenImageButton.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    //                      myMessage = UsbongUtils.applyTagsInString(udtea.currUsbongNode).toString();                   

                    TextView tv = (TextView) UsbongUtils.applyTagsInView(
                            UsbongDecisionTreeEngineActivity.getInstance(), new TextView(udtea),
                            UsbongUtils.IS_TEXTVIEW, UsbongUtils.getAlertName(udtea.currUsbongNode));
                    if (tv.toString().equals("")) {
                        tv.setText("No message.");
                    }
                    tv.setTextSize((UsbongDecisionTreeEngineActivity.getInstance().getResources()
                            .getDimension(R.dimen.textsize)));

                    new AlertDialog.Builder(udtea).setTitle("Hey!")
                            //                     .setMessage(myMessage)
                            .setView(tv).setPositiveButton("OK", new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int which) {
                                }
                            }).show();
                }
            });
        } else if (udtea.currScreen == udtea.CLICKABLE_IMAGE_TEXT_DISPLAY_SCREEN) {
            udtea.setContentView(R.layout.clickable_image_text_display_screen);
            udtea.initBackNextButtons();
            TextView myClickableImageTextDisplayTextView = (TextView) udtea
                    .findViewById(R.id.clickable_image_text_display_textview);
            myClickableImageTextDisplayTextView = (TextView) UsbongUtils.applyTagsInView(
                    UsbongDecisionTreeEngineActivity.getInstance(), myClickableImageTextDisplayTextView,
                    UsbongUtils.IS_TEXTVIEW, udtea.currUsbongNode);
            ImageButton myClickableImageTextDisplayScreenImageButton = (ImageButton) udtea
                    .findViewById(R.id.clickable_image_display_imagebutton);
            if (!UsbongUtils.setClickableImageDisplay(myClickableImageTextDisplayScreenImageButton, udtea.myTree,
                    UsbongUtils.getResName(udtea.currUsbongNode))) {
                //Reference: http://www.anddev.org/tinytut_-_get_resources_by_name__getidentifier_-t460.html; last accessed 14 Sept 2011
                //                 Resources myRes = getResources();
                myDrawableImage = myRes
                        .getDrawable(myRes.getIdentifier("no_image", "drawable", udtea.myPackageName));
                myClickableImageTextDisplayScreenImageButton.setBackgroundDrawable(myDrawableImage);
            }
            myClickableImageTextDisplayScreenImageButton.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    //                      myMessage = UsbongUtils.applyTagsInString(udtea.currUsbongNode).toString();                   

                    TextView tv = (TextView) UsbongUtils.applyTagsInView(
                            UsbongDecisionTreeEngineActivity.getInstance(), new TextView(udtea),
                            UsbongUtils.IS_TEXTVIEW, UsbongUtils.getAlertName(udtea.currUsbongNode));
                    if (tv.toString().equals("")) {
                        tv.setText("No message.");
                    }
                    tv.setTextSize((UsbongDecisionTreeEngineActivity.getInstance().getResources()
                            .getDimension(R.dimen.textsize)));

                    new AlertDialog.Builder(udtea).setTitle("Hey!")
                            //                     .setMessage(myMessage)
                            .setView(tv).setPositiveButton("OK", new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int which) {
                                }
                            }).show();
                }
            });
        } else if (udtea.currScreen == udtea.VIDEO_FROM_FILE_SCREEN) {
            udtea.setContentView(R.layout.video_from_file_screen);
            udtea.initBackNextButtons();
            VideoView myVideoFromFileScreenVideoView = (VideoView) udtea
                    .findViewById(R.id.video_from_file_videoview);
            myVideoFromFileScreenVideoView.setVideoPath(
                    UsbongUtils.getPathOfVideoFile(udtea.myTree, UsbongUtils.getResName(udtea.currUsbongNode)));
            //added by Mike, Sept. 9, 2013
            myVideoFromFileScreenVideoView.setMediaController(new MediaController(((Activity) udtea)));
            myVideoFromFileScreenVideoView.start();
        } else if (udtea.currScreen == udtea.VIDEO_FROM_FILE_WITH_TEXT_SCREEN) {
            udtea.setContentView(R.layout.video_from_file_with_text_screen);
            udtea.initBackNextButtons();
            TextView myVideoFromFileWithTextTextView = (TextView) udtea
                    .findViewById(R.id.video_from_file_with_text_textview);
            myVideoFromFileWithTextTextView = (TextView) UsbongUtils.applyTagsInView(
                    UsbongDecisionTreeEngineActivity.getInstance(), myVideoFromFileWithTextTextView,
                    UsbongUtils.IS_TEXTVIEW, udtea.currUsbongNode);
            VideoView myVideoFromFileWithTextScreenVideoView = (VideoView) udtea
                    .findViewById(R.id.video_from_file_with_text_videoview);
            myVideoFromFileWithTextScreenVideoView.setVideoPath(
                    UsbongUtils.getPathOfVideoFile(udtea.myTree, UsbongUtils.getResName(udtea.currUsbongNode)));
            myVideoFromFileWithTextScreenVideoView.setMediaController(new MediaController(((Activity) udtea)));
            myVideoFromFileWithTextScreenVideoView.start();
        } else if (udtea.currScreen == udtea.TEXT_IMAGE_DISPLAY_SCREEN) {
            udtea.setContentView(R.layout.text_image_display_screen);
            udtea.initBackNextButtons();
            TextView myTextImageDisplayTextView = (TextView) udtea.findViewById(R.id.text_image_display_textview);
            myTextImageDisplayTextView = (TextView) UsbongUtils.applyTagsInView(
                    UsbongDecisionTreeEngineActivity.getInstance(), myTextImageDisplayTextView,
                    UsbongUtils.IS_TEXTVIEW, udtea.currUsbongNode);
            ImageView myTextImageDisplayImageView = (ImageView) udtea.findViewById(R.id.image_display_imageview);
            //              if (!UsbongUtils.setImageDisplay(myTextImageDisplayImageView, myTree+".utree/res/" +UsbongUtils.getResName(udtea.currUsbongNode))) {
            if (!UsbongUtils.setImageDisplay(myTextImageDisplayImageView, udtea.myTree,
                    UsbongUtils.getResName(udtea.currUsbongNode))) {
                //Reference: http://www.anddev.org/tinytut_-_get_resources_by_name__getidentifier_-t460.html; last accessed 14 Sept 2011
                //                 Resources myRes = getResources();
                myDrawableImage = myRes
                        .getDrawable(myRes.getIdentifier("no_image", "drawable", udtea.myPackageName));
                myTextImageDisplayImageView.setImageDrawable(myDrawableImage);
            }
        } else if (udtea.currScreen == udtea.IMAGE_TEXT_DISPLAY_SCREEN) {
            udtea.setContentView(R.layout.image_text_display_screen);
            udtea.initBackNextButtons();
            TextView myImageTextDisplayTextView = (TextView) udtea.findViewById(R.id.image_text_display_textview);
            myImageTextDisplayTextView = (TextView) UsbongUtils.applyTagsInView(
                    UsbongDecisionTreeEngineActivity.getInstance(), myImageTextDisplayTextView,
                    UsbongUtils.IS_TEXTVIEW, udtea.currUsbongNode);
            ImageView myImageTextDisplayImageView = (ImageView) udtea.findViewById(R.id.image_display_imageview);

            if (!UsbongUtils.setImageDisplay(myImageTextDisplayImageView, udtea.myTree,
                    UsbongUtils.getResName(udtea.currUsbongNode))) {
                //Reference: http://www.anddev.org/tinytut_-_get_resources_by_name__getidentifier_-t460.html; last accessed 14 Sept 2011
                //                 Resources myRes = getResources();
                myDrawableImage = myRes
                        .getDrawable(myRes.getIdentifier("no_image", "drawable", udtea.myPackageName));
                myImageTextDisplayImageView.setImageDrawable(myDrawableImage);
            }
        } else if (udtea.currScreen == udtea.GPS_LOCATION_SCREEN) {
            udtea.setContentView(R.layout.gps_location_screen);
            udtea.initBackNextButtons();
            TextView myGPSLocationTextView = (TextView) udtea.findViewById(R.id.gps_location_textview);
            myGPSLocationTextView = (TextView) UsbongUtils.applyTagsInView(
                    UsbongDecisionTreeEngineActivity.getInstance(), myGPSLocationTextView, UsbongUtils.IS_TEXTVIEW,
                    udtea.currUsbongNode);
            //         TextView myLongitudeTextView = (TextView)udtea.findViewById(R.id.longitude_textview);
            //         TextView myLatitudeTextView = (TextView)udtea.findViewById(R.id.latitude_textview);
            hasGottenGPSLocation = false;

            locationResult = new LocationResult() {
                @Override
                public void gotLocation(Location location) {
                    //Got the location!
                    System.out.println(">>>>>>>>>>>>>>>>>location: " + location);
                    if (udtea.currScreen == udtea.GPS_LOCATION_SCREEN) {
                        if (location != null) {
                            myLongitude = location.getLongitude() + "";
                            myLatitude = location.getLatitude() + "";

                            myLongitudeTextView = (TextView) udtea.findViewById(R.id.longitude_textview);
                            myLatitudeTextView = (TextView) udtea.findViewById(R.id.latitude_textview);

                            hasGottenGPSLocation = true;

                            udtea.runOnUiThread(new Runnable() {
                                @Override
                                public void run() {
                                    myLongitudeTextView.setText("long: " + myLongitude);
                                    myLatitudeTextView.setText("lat: " + myLatitude);
                                }
                            });
                        } else {
                            Toast.makeText(UsbongDecisionTreeEngineActivity.getInstance(),
                                    "Error getting location. Please make sure you are not inside a building.",
                                    Toast.LENGTH_SHORT).show();
                        }
                    } else {
                        hasGottenGPSLocation = true; //to stop the cycling progress bar
                    }
                }
            };
            //         myLoadingProgressBar =  new ProgressBar(udtea);
            //         myLoadingProgressBar.setIndeterminate(false);
            //         myLoadingProgressBar.setProgressStyle(ProgressDialog.STYLE_SPINNER);         

            udtea.myLocation = new FedorMyLocation();
            udtea.myLocation.getLocation(udtea, locationResult);

            myLoadingProgressBar = (ProgressBar) udtea.findViewById(R.id.progressBar);
            new ProgressTask().execute();

        } else if (udtea.currScreen == udtea.YES_NO_DECISION_SCREEN) {
            udtea.setContentView(R.layout.yes_no_decision_screen);
            udtea.initBackNextButtons();
            TextView myYesNoDecisionScreenTextView = (TextView) udtea.findViewById(R.id.yes_no_decision_textview);
            myYesNoDecisionScreenTextView = (TextView) UsbongUtils.applyTagsInView(
                    UsbongDecisionTreeEngineActivity.getInstance(), myYesNoDecisionScreenTextView,
                    UsbongUtils.IS_TEXTVIEW, udtea.currUsbongNode);
            RadioButton myYesRadioButton = (RadioButton) udtea.findViewById(R.id.yes_radiobutton);
            myYesRadioButton.setText(udtea.yesStringValue);
            myYesRadioButton.setTextSize(20);
            RadioButton myNoRadioButton = (RadioButton) udtea.findViewById(R.id.no_radiobutton);
            myNoRadioButton.setText(udtea.noStringValue);
            myNoRadioButton.setTextSize(20);
            if (myStringToken.equals("N")) {
                myNoRadioButton.setChecked(true);
            } else if ((myStringToken.equals("Y"))) {
                myYesRadioButton.setChecked(true);
            }
        } else if (udtea.currScreen == udtea.SEND_TO_CLOUD_BASED_SERVICE_SCREEN) {
            udtea.setContentView(R.layout.yes_no_decision_screen);
            udtea.initBackNextButtons();
            TextView mySendToCloudBasedServiceScreenTextView = (TextView) udtea
                    .findViewById(R.id.yes_no_decision_textview);
            mySendToCloudBasedServiceScreenTextView = (TextView) UsbongUtils.applyTagsInView(
                    UsbongDecisionTreeEngineActivity.getInstance(), mySendToCloudBasedServiceScreenTextView,
                    UsbongUtils.IS_TEXTVIEW, udtea.currUsbongNode);
            RadioButton mySendToCloudBasedServiceScreenYesRadioButton = (RadioButton) udtea
                    .findViewById(R.id.yes_radiobutton);
            mySendToCloudBasedServiceScreenYesRadioButton.setText(udtea.yesStringValue);
            mySendToCloudBasedServiceScreenYesRadioButton.setTextSize(20);
            RadioButton mySendToCloudBasedServiceScreenNoRadioButton = (RadioButton) udtea
                    .findViewById(R.id.no_radiobutton);
            mySendToCloudBasedServiceScreenNoRadioButton.setText(udtea.noStringValue);
            mySendToCloudBasedServiceScreenNoRadioButton.setTextSize(20);
            if (myStringToken.equals("N")) {
                mySendToCloudBasedServiceScreenNoRadioButton.setChecked(true);
            } else if ((myStringToken.equals("Y"))) {
                mySendToCloudBasedServiceScreenYesRadioButton.setChecked(true);
            }
        } else if (udtea.currScreen == udtea.SEND_TO_WEBSERVER_SCREEN) {
            udtea.setContentView(R.layout.send_to_webserver_screen);
            udtea.initBackNextButtons();
            TextView mySendToWebserverScreenTextView = (TextView) udtea
                    .findViewById(R.id.send_to_webserver_textview);
            mySendToWebserverScreenTextView = (TextView) UsbongUtils.applyTagsInView(
                    UsbongDecisionTreeEngineActivity.getInstance(), mySendToWebserverScreenTextView,
                    UsbongUtils.IS_TEXTVIEW, udtea.currUsbongNode);
            TextView myWebserverURLScreenTextView = (TextView) udtea.findViewById(R.id.webserver_url_textview);

            if (!UsbongUtils.getDestinationServerURL().toString().equals("")) {
                myWebserverURLScreenTextView.setText("[" + UsbongUtils.getDestinationServerURL() + "]");
            } else {
                myWebserverURLScreenTextView.setText("[Warning: No URL specified in Settings.]");
            }

            RadioButton mySendToWebserverYesRadioButton = (RadioButton) udtea.findViewById(R.id.yes_radiobutton);
            mySendToWebserverYesRadioButton.setText(udtea.yesStringValue);
            mySendToWebserverYesRadioButton.setTextSize(20);
            RadioButton mySendToWebserverNoRadioButton = (RadioButton) udtea.findViewById(R.id.no_radiobutton);
            mySendToWebserverNoRadioButton.setText(udtea.noStringValue);
            mySendToWebserverNoRadioButton.setTextSize(20);
            if (myStringToken.equals("N")) {
                mySendToWebserverNoRadioButton.setChecked(true);
            } else if ((myStringToken.equals("Y"))) {
                mySendToWebserverYesRadioButton.setChecked(true);
            }
        } else if (udtea.currScreen == udtea.END_STATE_SCREEN) {
            udtea.setContentView(R.layout.end_state_screen);
            TextView endStateTextView = (TextView) udtea.findViewById(R.id.end_state_textview);
            if (udtea.currLanguageBeingUsed == UsbongUtils.LANGUAGE_FILIPINO) {
                endStateTextView
                        .setText((String) udtea.getResources().getText(R.string.UsbongEndStateTextViewFILIPINO));
            } else if (udtea.currLanguageBeingUsed == UsbongUtils.LANGUAGE_JAPANESE) {
                endStateTextView
                        .setText((String) udtea.getResources().getText(R.string.UsbongEndStateTextViewJAPANESE));
            } else { //if (udtea.currLanguageBeingUsed==UsbongUtils.LANGUAGE_ENGLISH) {
                endStateTextView
                        .setText((String) udtea.getResources().getText(R.string.UsbongEndStateTextViewENGLISH));
            }
            udtea.initBackNextButtons();
        }
        View myLayout = udtea.findViewById(R.id.parent_layout_id);
        if (!UsbongUtils.setBackgroundImage(myLayout, udtea.myTree, "bg")) {
            myLayout.setBackgroundResource(R.drawable.bg);//default bg
        }

        if ((!udtea.usedBackButton) && (!udtea.hasReturnedFromAnotherActivity)) {
            udtea.usbongNodeContainer.addElement(udtea.currUsbongNode);
            udtea.usbongNodeContainerCounter++;
        } else {
            udtea.usedBackButton = false;
            udtea.hasReturnedFromAnotherActivity = false;
        }
    }

    private class ProgressTask extends AsyncTask<Void, Void, Void> {
        @Override
        protected void onPreExecute() {
            //          myLoadingProgressBar.show();
            myLoadingProgressBar.setVisibility(View.VISIBLE);
        }

        @Override
        protected Void doInBackground(Void... arg0) {
            while (!hasGottenGPSLocation)
                ;

            return null;
        }

        @Override
        protected void onPostExecute(Void result) {
            //          myLoadingProgressBar.dismiss();
            myLoadingProgressBar.setVisibility(View.GONE);
        }
    }
}