996093f7 src/org/odk/collect/android/FormEntry.java (Yaw Anokwa 2009-07-01 16:25:16 +0000 1) /* b0e6c568 src/org/odk/collect/android/activities/FormEntryActivity.java (Yaw Anokwa 2009-11-17 01:06:52 +0000 2) * Copyright (C) 2009 University of Washington 8640e1f5 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2012-12-18 12:12:28 -0800 3) * 11d598f9 src/org/odk/collect/android/activities/FormEntryActivity.java (Carl Hartung 2010-04-16 22:14:39 +0000 4) * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 11d598f9 src/org/odk/collect/android/activities/FormEntryActivity.java (Carl Hartung 2010-04-16 22:14:39 +0000 5) * in compliance with the License. You may obtain a copy of the License at 8640e1f5 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2012-12-18 12:12:28 -0800 6) * 996093f7 src/org/odk/collect/android/FormEntry.java (Yaw Anokwa 2009-07-01 16:25:16 +0000 7) * http://www.apache.org/licenses/LICENSE-2.0 8640e1f5 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2012-12-18 12:12:28 -0800 8) * 11d598f9 src/org/odk/collect/android/activities/FormEntryActivity.java (Carl Hartung 2010-04-16 22:14:39 +0000 9) * Unless required by applicable law or agreed to in writing, software distributed under the License 11d598f9 src/org/odk/collect/android/activities/FormEntryActivity.java (Carl Hartung 2010-04-16 22:14:39 +0000 10) * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11d598f9 src/org/odk/collect/android/activities/FormEntryActivity.java (Carl Hartung 2010-04-16 22:14:39 +0000 11) * or implied. See the License for the specific language governing permissions and limitations under 996093f7 src/org/odk/collect/android/FormEntry.java (Yaw Anokwa 2009-07-01 16:25:16 +0000 12) * the License. 996093f7 src/org/odk/collect/android/FormEntry.java (Yaw Anokwa 2009-07-01 16:25:16 +0000 13) */ 996093f7 src/org/odk/collect/android/FormEntry.java (Yaw Anokwa 2009-07-01 16:25:16 +0000 14) 03f215bc src/org/odk/collect/android/activities/FormEntry.java (Yaw Anokwa 2009-09-04 21:31:08 +0000 15) package org.odk.collect.android.activities; 996093f7 src/org/odk/collect/android/FormEntry.java (Yaw Anokwa 2009-07-01 16:25:16 +0000 16) 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 17) import java.io.File; 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 18) import java.io.FileFilter; 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 19) import java.text.SimpleDateFormat; 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 20) import java.util.Calendar; 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 21) import java.util.LinkedHashMap; 836ab003 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2014-12-23 17:38:16 -0800 22) import java.util.List; 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 23) import java.util.Locale; 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 24) 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 25) import org.javarosa.core.model.FormIndex; 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 26) import org.javarosa.core.model.data.IAnswerData; e3b39359 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2014-08-26 16:45:05 -0700 27) import org.javarosa.core.model.instance.TreeElement; 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 28) import org.javarosa.form.api.FormEntryCaption; 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 29) import org.javarosa.form.api.FormEntryController; 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 30) import org.javarosa.form.api.FormEntryPrompt; 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 31) import org.odk.collect.android.R; 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 32) import org.odk.collect.android.application.Collect; 120a7b6c src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 12:15:52 +0200 33) import org.odk.collect.android.exception.JavaRosaException; 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 34) import org.odk.collect.android.listeners.AdvanceToNextListener; 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 35) import org.odk.collect.android.listeners.FormLoaderListener; 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 36) import org.odk.collect.android.listeners.FormSavedListener; 76db7ac6 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-14 11:21:01 +0200 37) import org.odk.collect.android.listeners.SavePointListener; 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 38) import org.odk.collect.android.logic.FormController; 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 39) import org.odk.collect.android.logic.FormController.FailedConstraint; 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 40) import org.odk.collect.android.preferences.AdminPreferencesActivity; 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 41) import org.odk.collect.android.preferences.PreferencesActivity; 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 42) import org.odk.collect.android.provider.FormsProviderAPI.FormsColumns; 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 43) import org.odk.collect.android.provider.InstanceProviderAPI; 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 44) import org.odk.collect.android.provider.InstanceProviderAPI.InstanceColumns; 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 45) import org.odk.collect.android.tasks.FormLoaderTask; 244bf37a src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2014-03-12 11:16:21 -0700 46) import org.odk.collect.android.tasks.SavePointTask; 396865c2 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 15:40:52 +0200 47) import org.odk.collect.android.tasks.SaveResult; 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 48) import org.odk.collect.android.tasks.SaveToDiskTask; c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 49) import org.odk.collect.android.utilities.CompatibilityUtils; 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 50) import org.odk.collect.android.utilities.FileUtils; 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 51) import org.odk.collect.android.utilities.MediaUtils; 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 52) import org.odk.collect.android.views.ODKView; 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 53) import org.odk.collect.android.widgets.QuestionWidget; 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 54) 996093f7 src/org/odk/collect/android/FormEntry.java (Yaw Anokwa 2009-07-01 16:25:16 +0000 55) import android.app.Activity; 996093f7 src/org/odk/collect/android/FormEntry.java (Yaw Anokwa 2009-07-01 16:25:16 +0000 56) import android.app.AlertDialog; 26235297 src/org/odk/collect/android/FormEntry.java (Carl Hartung 2009-07-07 23:28:06 +0000 57) import android.app.Dialog; 996093f7 src/org/odk/collect/android/FormEntry.java (Yaw Anokwa 2009-07-01 16:25:16 +0000 58) import android.app.ProgressDialog; d7aeca08 src/org/odk/collect/android/activities/FormEntryActivity.java (Carl Hartung 2010-02-06 22:32:10 +0000 59) import android.content.ContentValues; 492f08d1 src/org/odk/collect/android/activities/FormEntryActivity.java (Yaw Anokwa 2011-04-25 14:24:36 -0700 60) import android.content.Context; 996093f7 src/org/odk/collect/android/FormEntry.java (Yaw Anokwa 2009-07-01 16:25:16 +0000 61) import android.content.DialogInterface; 996093f7 src/org/odk/collect/android/FormEntry.java (Yaw Anokwa 2009-07-01 16:25:16 +0000 62) import android.content.Intent; 5a9afea2 src/org/odk/collect/android/activities/FormEntryActivity.java (carlhartung 2011-10-05 16:13:26 -0700 63) import android.content.SharedPreferences; 7ece7ad0 src/org/odk/collect/android/FormEntry.java (Carl Hartung 2009-07-22 11:04:07 +0000 64) import android.database.Cursor; a0a0fc65 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-02-04 12:05:12 -0800 65) import android.graphics.Color; 983250ba src/org/odk/collect/android/activities/FormEntryActivity.java (carlhartung 2011-04-27 22:53:14 -0700 66) import android.graphics.drawable.BitmapDrawable; 983250ba src/org/odk/collect/android/activities/FormEntryActivity.java (carlhartung 2011-04-27 22:53:14 -0700 67) import android.graphics.drawable.Drawable; bb24a2d3 src/org/odk/collect/android/FormEntry.java (Yaw Anokwa 2009-07-10 17:44:02 +0000 68) import android.net.Uri; 26235297 src/org/odk/collect/android/FormEntry.java (Carl Hartung 2009-07-07 23:28:06 +0000 69) import android.os.AsyncTask; 996093f7 src/org/odk/collect/android/FormEntry.java (Yaw Anokwa 2009-07-01 16:25:16 +0000 70) import android.os.Bundle; 5a9afea2 src/org/odk/collect/android/activities/FormEntryActivity.java (carlhartung 2011-10-05 16:13:26 -0700 71) import android.preference.PreferenceManager; d7aeca08 src/org/odk/collect/android/activities/FormEntryActivity.java (Carl Hartung 2010-02-06 22:32:10 +0000 72) import android.provider.MediaStore.Images; 687bf870 src/org/odk/collect/android/activities/FormEntryActivity.java (carlhartung 2011-11-02 22:16:59 +0300 73) import android.text.InputFilter; 687bf870 src/org/odk/collect/android/activities/FormEntryActivity.java (carlhartung 2011-11-02 22:16:59 +0300 74) import android.text.Spanned; 3128f721 src/org/odk/collect/android/activities/FormEntryActivity.java (carlhartung 2011-11-02 18:39:29 +0300 75) import android.util.DisplayMetrics; 996093f7 src/org/odk/collect/android/FormEntry.java (Yaw Anokwa 2009-07-01 16:25:16 +0000 76) import android.util.Log; 492f08d1 src/org/odk/collect/android/activities/FormEntryActivity.java (Yaw Anokwa 2011-04-25 14:24:36 -0700 77) import android.view.ContextMenu; 492f08d1 src/org/odk/collect/android/activities/FormEntryActivity.java (Yaw Anokwa 2011-04-25 14:24:36 -0700 78) import android.view.ContextMenu.ContextMenuInfo; 184fbec6 src/org/odk/collect/android/activities/FormEntryActivity.java (carlhartung 2011-06-13 15:52:13 -0700 79) import android.view.GestureDetector; 184fbec6 src/org/odk/collect/android/activities/FormEntryActivity.java (carlhartung 2011-06-13 15:52:13 -0700 80) import android.view.GestureDetector.OnGestureListener; 492f08d1 src/org/odk/collect/android/activities/FormEntryActivity.java (Yaw Anokwa 2011-04-25 14:24:36 -0700 81) import android.view.Gravity; 996093f7 src/org/odk/collect/android/FormEntry.java (Yaw Anokwa 2009-07-01 16:25:16 +0000 82) import android.view.KeyEvent; 492f08d1 src/org/odk/collect/android/activities/FormEntryActivity.java (Yaw Anokwa 2011-04-25 14:24:36 -0700 83) import android.view.LayoutInflater; 996093f7 src/org/odk/collect/android/FormEntry.java (Yaw Anokwa 2009-07-01 16:25:16 +0000 84) import android.view.Menu; 996093f7 src/org/odk/collect/android/FormEntry.java (Yaw Anokwa 2009-07-01 16:25:16 +0000 85) import android.view.MenuItem; 996093f7 src/org/odk/collect/android/FormEntry.java (Yaw Anokwa 2009-07-01 16:25:16 +0000 86) import android.view.MotionEvent; 996093f7 src/org/odk/collect/android/FormEntry.java (Yaw Anokwa 2009-07-01 16:25:16 +0000 87) import android.view.View; 996093f7 src/org/odk/collect/android/FormEntry.java (Yaw Anokwa 2009-07-01 16:25:16 +0000 88) import android.view.View.OnClickListener; 996093f7 src/org/odk/collect/android/FormEntry.java (Yaw Anokwa 2009-07-01 16:25:16 +0000 89) import android.view.ViewGroup.LayoutParams; 996093f7 src/org/odk/collect/android/FormEntry.java (Yaw Anokwa 2009-07-01 16:25:16 +0000 90) import android.view.animation.Animation; e7e4d405 src/org/odk/collect/android/activities/FormEntryActivity.java (msundt 2011-02-02 15:21:22 -0800 91) import android.view.animation.Animation.AnimationListener; 492f08d1 src/org/odk/collect/android/activities/FormEntryActivity.java (Yaw Anokwa 2011-04-25 14:24:36 -0700 92) import android.view.animation.AnimationUtils; 492f08d1 src/org/odk/collect/android/activities/FormEntryActivity.java (Yaw Anokwa 2011-04-25 14:24:36 -0700 93) import android.view.inputmethod.InputMethodManager; 996093f7 src/org/odk/collect/android/FormEntry.java (Yaw Anokwa 2009-07-01 16:25:16 +0000 94) import android.widget.Button; 2899f32f src/org/odk/collect/android/activities/FormEntryActivity.java (Yaw Anokwa 2010-07-22 19:11:13 -0700 95) import android.widget.CheckBox; 702b1f5d src/org/odk/collect/android/activities/FormEntryActivity.java (carlhartung 2011-06-11 15:12:44 -0700 96) import android.widget.EditText; 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 97) import android.widget.ImageButton; 62f64f7f src/org/odk/collect/android/activities/FormEntryActivity.java (carlhartung 2011-05-27 14:23:45 -0700 98) import android.widget.ImageView; 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 99) import android.widget.LinearLayout; 996093f7 src/org/odk/collect/android/FormEntry.java (Yaw Anokwa 2009-07-01 16:25:16 +0000 100) import android.widget.RelativeLayout; 996093f7 src/org/odk/collect/android/FormEntry.java (Yaw Anokwa 2009-07-01 16:25:16 +0000 101) import android.widget.TextView; 996093f7 src/org/odk/collect/android/FormEntry.java (Yaw Anokwa 2009-07-01 16:25:16 +0000 102) import android.widget.Toast; 996093f7 src/org/odk/collect/android/FormEntry.java (Yaw Anokwa 2009-07-01 16:25:16 +0000 103) 996093f7 src/org/odk/collect/android/FormEntry.java (Yaw Anokwa 2009-07-01 16:25:16 +0000 104) /** 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 105) * FormEntryActivity is responsible for displaying questions, animating 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 106) * transitions between questions, and allowing the user to enter data. 6781ab8d src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-03-27 15:36:07 -0700 107) * 996093f7 src/org/odk/collect/android/FormEntry.java (Yaw Anokwa 2009-07-01 16:25:16 +0000 108) * @author Carl Hartung (carlhartung@gmail.com) 0133a442 src/org/odk/collect/android/activities/FormEntryActivity.java (tomsmyth 2013-07-11 11:42:01 -0400 109) * @author Thomas Smyth, Sassafras Tech Collective (tom@sassafrastech.com; constraint behavior option) 996093f7 src/org/odk/collect/android/FormEntry.java (Yaw Anokwa 2009-07-01 16:25:16 +0000 110) */ 95583f5f src/org/odk/collect/android/activities/FormEntryActivity.java (carlhartung 2012-11-21 17:30:53 -0800 111) public class FormEntryActivity extends Activity implements AnimationListener, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 112) FormLoaderListener, FormSavedListener, AdvanceToNextListener, 76db7ac6 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-14 11:21:01 +0200 113) OnGestureListener, SavePointListener { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 114) private static final String t = "FormEntryActivity"; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 115) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 116) // save with every swipe forward or back. Timings indicate this takes .25 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 117) // seconds. 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 118) // if it ever becomes an issue, this value can be changed to save every n'th 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 119) // screen. 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 120) private static final int SAVEPOINT_INTERVAL = 1; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 121) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 122) // Defines for FormEntryActivity 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 123) private static final boolean EXIT = true; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 124) private static final boolean DO_NOT_EXIT = false; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 125) private static final boolean EVALUATE_CONSTRAINTS = true; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 126) private static final boolean DO_NOT_EVALUATE_CONSTRAINTS = false; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 127) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 128) // Request codes for returning data from specified intent. 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 129) public static final int IMAGE_CAPTURE = 1; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 130) public static final int BARCODE_CAPTURE = 2; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 131) public static final int AUDIO_CAPTURE = 3; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 132) public static final int VIDEO_CAPTURE = 4; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 133) public static final int LOCATION_CAPTURE = 5; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 134) public static final int HIERARCHY_ACTIVITY = 6; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 135) public static final int IMAGE_CHOOSER = 7; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 136) public static final int AUDIO_CHOOSER = 8; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 137) public static final int VIDEO_CHOOSER = 9; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 138) public static final int EX_STRING_CAPTURE = 10; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 139) public static final int EX_INT_CAPTURE = 11; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 140) public static final int EX_DECIMAL_CAPTURE = 12; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 141) public static final int DRAW_IMAGE = 13; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 142) public static final int SIGNATURE_CAPTURE = 14; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 143) public static final int ANNOTATE_IMAGE = 15; a7e9b21d src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-05-13 12:37:47 -0700 144) public static final int ALIGNED_IMAGE = 16; e8866adf src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-10-16 15:54:29 -0600 145) public static final int BEARING_CAPTURE = 17; 120a7b6c src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 12:15:52 +0200 146) public static final int EX_GROUP_CAPTURE = 18; 97d492b4 src/org/odk/collect/android/activities/FormEntryActivity.java (Nicholas Hallahan 2015-02-05 17:03:23 -0800 147) public static final int OSM_CAPTURE = 19; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 148) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 149) // Extra returned from gp activity 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 150) public static final String LOCATION_RESULT = "LOCATION_RESULT"; e8866adf src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-10-16 15:54:29 -0600 151) public static final String BEARING_RESULT = "BEARING_RESULT"; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 152) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 153) public static final String KEY_INSTANCES = "instances"; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 154) public static final String KEY_SUCCESS = "success"; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 155) public static final String KEY_ERROR = "error"; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 156) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 157) // Identifies the gp of the form used to launch form entry 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 158) public static final String KEY_FORMPATH = "formpath"; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 159) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 160) // Identifies whether this is a new form, or reloading a form after a screen 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 161) // rotation (or similar) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 162) private static final String NEWFORM = "newform"; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 163) // these are only processed if we shut down and are restoring after an 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 164) // external intent fires 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 165) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 166) public static final String KEY_INSTANCEPATH = "instancepath"; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 167) public static final String KEY_XPATH = "xpath"; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 168) public static final String KEY_XPATH_WAITING_FOR_DATA = "xpathwaiting"; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 169) 7180b793 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2014-08-28 09:13:45 -0700 170) // Tracks whether we are autosaving 7180b793 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2014-08-28 09:13:45 -0700 171) public static final String KEY_AUTO_SAVED = "autosaved"; 7180b793 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2014-08-28 09:13:45 -0700 172) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 173) private static final int MENU_LANGUAGES = Menu.FIRST; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 174) private static final int MENU_HIERARCHY_VIEW = Menu.FIRST + 1; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 175) private static final int MENU_SAVE = Menu.FIRST + 2; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 176) private static final int MENU_PREFERENCES = Menu.FIRST + 3; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 177) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 178) private static final int PROGRESS_DIALOG = 1; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 179) private static final int SAVING_DIALOG = 2; e3b39359 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2014-08-26 16:45:05 -0700 180) e3b39359 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2014-08-26 16:45:05 -0700 181) private boolean mAutoSaved; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 182) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 183) // Random ID 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 184) private static final int DELETE_REPEAT = 654321; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 185) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 186) private String mFormPath; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 187) private GestureDetector mGestureDetector; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 188) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 189) private Animation mInAnimation; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 190) private Animation mOutAnimation; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 191) private View mStaleView = null; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 192) 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 193) private LinearLayout mQuestionHolder; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 194) private View mCurrentView; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 195) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 196) private AlertDialog mAlertDialog; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 197) private ProgressDialog mProgressDialog; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 198) private String mErrorMessage; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 199) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 200) // used to limit forward/backward swipes to one per question 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 201) private boolean mBeenSwiped = false; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 202) 50c45b7d src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 09:51:05 +0200 203) private final Object saveDialogLock = new Object(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 204) private int viewCount = 0; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 205) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 206) private FormLoaderTask mFormLoaderTask; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 207) private SaveToDiskTask mSaveToDiskTask; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 208) 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 209) private ImageButton mNextButton; 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 210) private ImageButton mBackButton; 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 211) 9d33445c src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-12 21:09:02 +0200 212) private String stepMessage = ""; 9d33445c src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-12 21:09:02 +0200 213) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 214) enum AnimationType { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 215) LEFT, RIGHT, FADE 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 216) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 217) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 218) private SharedPreferences mAdminPreferences; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 219) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 220) /** Called when the activity is first created. */ 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 221) @Override 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 222) public void onCreate(Bundle savedInstanceState) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 223) super.onCreate(savedInstanceState); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 224) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 225) // must be at the beginning of any activity that can be called from an 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 226) // external intent 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 227) try { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 228) Collect.createODKDirs(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 229) } catch (RuntimeException e) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 230) createErrorDialog(e.getMessage(), EXIT); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 231) return; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 232) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 233) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 234) setContentView(R.layout.form_entry); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 235) setTitle(getString(R.string.app_name) + " > " 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 236) + getString(R.string.loading_form)); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 237) 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 238) mErrorMessage = null; 244bf37a src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2014-03-12 11:16:21 -0700 239) 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 240) mBeenSwiped = false; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 241) mAlertDialog = null; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 242) mCurrentView = null; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 243) mInAnimation = null; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 244) mOutAnimation = null; 0d3387db src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2014-04-17 11:14:32 -0700 245) mGestureDetector = new GestureDetector(this, this); 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 246) mQuestionHolder = (LinearLayout) findViewById(R.id.questionholder); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 247) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 248) // get admin preference settings 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 249) mAdminPreferences = getSharedPreferences( 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 250) AdminPreferencesActivity.ADMIN_PREFERENCES, 0); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 251) 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 252) mNextButton = (ImageButton) findViewById(R.id.form_forward_button); 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 253) mNextButton.setOnClickListener(new OnClickListener() { 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 254) @Override 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 255) public void onClick(View v) { 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 256) mBeenSwiped = true; 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 257) showNextView(); 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 258) } 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 259) }); 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 260) 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 261) mBackButton = (ImageButton) findViewById(R.id.form_back_button); 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 262) mBackButton.setOnClickListener(new OnClickListener() { 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 263) @Override 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 264) public void onClick(View v) { 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 265) mBeenSwiped = true; 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 266) showPreviousView(); 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 267) } 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 268) }); 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 269) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 270) String startingXPath = null; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 271) String waitingXPath = null; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 272) String instancePath = null; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 273) Boolean newForm = true; e3b39359 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2014-08-26 16:45:05 -0700 274) mAutoSaved = false; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 275) if (savedInstanceState != null) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 276) if (savedInstanceState.containsKey(KEY_FORMPATH)) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 277) mFormPath = savedInstanceState.getString(KEY_FORMPATH); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 278) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 279) if (savedInstanceState.containsKey(KEY_INSTANCEPATH)) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 280) instancePath = savedInstanceState.getString(KEY_INSTANCEPATH); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 281) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 282) if (savedInstanceState.containsKey(KEY_XPATH)) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 283) startingXPath = savedInstanceState.getString(KEY_XPATH); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 284) Log.i(t, "startingXPath is: " + startingXPath); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 285) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 286) if (savedInstanceState.containsKey(KEY_XPATH_WAITING_FOR_DATA)) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 287) waitingXPath = savedInstanceState 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 288) .getString(KEY_XPATH_WAITING_FOR_DATA); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 289) Log.i(t, "waitingXPath is: " + waitingXPath); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 290) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 291) if (savedInstanceState.containsKey(NEWFORM)) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 292) newForm = savedInstanceState.getBoolean(NEWFORM, true); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 293) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 294) if (savedInstanceState.containsKey(KEY_ERROR)) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 295) mErrorMessage = savedInstanceState.getString(KEY_ERROR); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 296) } 7180b793 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2014-08-28 09:13:45 -0700 297) if (savedInstanceState.containsKey(KEY_AUTO_SAVED)) { 7180b793 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2014-08-28 09:13:45 -0700 298) mAutoSaved = savedInstanceState.getBoolean(KEY_AUTO_SAVED); e3b39359 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2014-08-26 16:45:05 -0700 299) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 300) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 301) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 302) // If a parse error message is showing then nothing else is loaded 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 303) // Dialogs mid form just disappear on rotation. 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 304) if (mErrorMessage != null) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 305) createErrorDialog(mErrorMessage, EXIT); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 306) return; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 307) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 308) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 309) // Check to see if this is a screen flip or a new form load. 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 310) Object data = getLastNonConfigurationInstance(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 311) if (data instanceof FormLoaderTask) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 312) mFormLoaderTask = (FormLoaderTask) data; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 313) } else if (data instanceof SaveToDiskTask) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 314) mSaveToDiskTask = (SaveToDiskTask) data; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 315) } else if (data == null) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 316) if (!newForm) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 317) if (Collect.getInstance().getFormController() != null) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 318) refreshCurrentView(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 319) } else { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 320) Log.w(t, "Reloading form and restoring state."); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 321) // we need to launch the form loader to load the form 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 322) // controller... 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 323) mFormLoaderTask = new FormLoaderTask(instancePath, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 324) startingXPath, waitingXPath); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 325) Collect.getInstance().getActivityLogger() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 326) .logAction(this, "formReloaded", mFormPath); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 327) // TODO: this doesn' work (dialog does not get removed): 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 328) // showDialog(PROGRESS_DIALOG); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 329) // show dialog before we execute... 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 330) mFormLoaderTask.execute(mFormPath); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 331) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 332) return; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 333) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 334) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 335) // Not a restart from a screen orientation change (or other). 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 336) Collect.getInstance().setFormController(null); c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 337) CompatibilityUtils.invalidateOptionsMenu(this); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 338) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 339) Intent intent = getIntent(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 340) if (intent != null) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 341) Uri uri = intent.getData(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 342) 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 343) if (getContentResolver().getType(uri).equals(InstanceColumns.CONTENT_ITEM_TYPE)) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 344) // get the formId and version for this instance... 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 345) String jrFormId = null; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 346) String jrVersion = null; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 347) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 348) Cursor instanceCursor = null; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 349) try { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 350) instanceCursor = getContentResolver().query(uri, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 351) null, null, null, null); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 352) if (instanceCursor.getCount() != 1) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 353) this.createErrorDialog("Bad URI: " + uri, EXIT); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 354) return; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 355) } else { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 356) instanceCursor.moveToFirst(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 357) instancePath = instanceCursor 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 358) .getString(instanceCursor 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 359) .getColumnIndex(InstanceColumns.INSTANCE_FILE_PATH)); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 360) Collect.getInstance() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 361) .getActivityLogger() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 362) .logAction(this, "instanceLoaded", 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 363) instancePath); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 364) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 365) jrFormId = instanceCursor 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 366) .getString(instanceCursor 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 367) .getColumnIndex(InstanceColumns.JR_FORM_ID)); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 368) int idxJrVersion = instanceCursor 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 369) .getColumnIndex(InstanceColumns.JR_VERSION); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 370) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 371) jrVersion = instanceCursor.isNull(idxJrVersion) ? null 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 372) : instanceCursor 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 373) .getString(idxJrVersion); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 374) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 375) } finally { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 376) if (instanceCursor != null) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 377) instanceCursor.close(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 378) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 379) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 380) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 381) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 382) String[] selectionArgs; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 383) String selection; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 384) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 385) if (jrVersion == null) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 386) selectionArgs = new String[] { jrFormId }; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 387) selection = FormsColumns.JR_FORM_ID + "=? AND " 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 388) + FormsColumns.JR_VERSION + " IS NULL"; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 389) } else { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 390) selectionArgs = new String[] { jrFormId, jrVersion }; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 391) selection = FormsColumns.JR_FORM_ID + "=? AND " 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 392) + FormsColumns.JR_VERSION + "=?"; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 393) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 394) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 395) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 396) Cursor formCursor = null; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 397) try { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 398) formCursor = getContentResolver().query( 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 399) FormsColumns.CONTENT_URI, null, selection, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 400) selectionArgs, null); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 401) if (formCursor.getCount() == 1) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 402) formCursor.moveToFirst(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 403) mFormPath = formCursor 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 404) .getString(formCursor 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 405) .getColumnIndex(FormsColumns.FORM_FILE_PATH)); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 406) } else if (formCursor.getCount() < 1) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 407) this.createErrorDialog( 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 408) getString( 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 409) R.string.parent_form_not_present, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 410) jrFormId) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 411) + ((jrVersion == null) ? "" 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 412) : "\n" 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 413) + getString(R.string.version) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 414) + " " 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 415) + jrVersion), 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 416) EXIT); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 417) return; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 418) } else if (formCursor.getCount() > 1) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 419) // still take the first entry, but warn that 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 420) // there are multiple rows. 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 421) // user will need to hand-edit the SQLite 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 422) // database to fix it. 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 423) formCursor.moveToFirst(); 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 424) mFormPath = formCursor.getString(formCursor.getColumnIndex(FormsColumns.FORM_FILE_PATH)); 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 425) this.createErrorDialog(getString(R.string.survey_multiple_forms_error), EXIT); 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 426) return; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 427) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 428) } finally { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 429) if (formCursor != null) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 430) formCursor.close(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 431) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 432) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 433) } 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 434) } else if (getContentResolver().getType(uri).equals(FormsColumns.CONTENT_ITEM_TYPE)) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 435) Cursor c = null; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 436) try { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 437) c = getContentResolver().query(uri, null, null, null, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 438) null); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 439) if (c.getCount() != 1) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 440) this.createErrorDialog("Bad URI: " + uri, EXIT); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 441) return; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 442) } else { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 443) c.moveToFirst(); 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 444) mFormPath = c.getString(c.getColumnIndex(FormsColumns.FORM_FILE_PATH)); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 445) // This is the fill-blank-form code path. 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 446) // See if there is a savepoint for this form that 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 447) // has never been 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 448) // explicitly saved 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 449) // by the user. If there is, open this savepoint 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 450) // (resume this filled-in 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 451) // form). 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 452) // Savepoints for forms that were explicitly saved 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 453) // will be recovered 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 454) // when that 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 455) // explicitly saved instance is edited via 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 456) // edit-saved-form. 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 457) final String filePrefix = mFormPath.substring( 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 458) mFormPath.lastIndexOf('/') + 1, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 459) mFormPath.lastIndexOf('.')) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 460) + "_"; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 461) final String fileSuffix = ".xml.save"; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 462) File cacheDir = new File(Collect.CACHE_PATH); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 463) File[] files = cacheDir.listFiles(new FileFilter() { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 464) @Override 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 465) public boolean accept(File pathname) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 466) String name = pathname.getName(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 467) return name.startsWith(filePrefix) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 468) && name.endsWith(fileSuffix); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 469) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 470) }); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 471) // see if any of these savepoints are for a 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 472) // filled-in form that has never been 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 473) // explicitly saved by the user... 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 474) for (int i = 0; i < files.length; ++i) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 475) File candidate = files[i]; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 476) String instanceDirName = candidate.getName() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 477) .substring( 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 478) 0, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 479) candidate.getName().length() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 480) - fileSuffix.length()); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 481) File instanceDir = new File( 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 482) Collect.INSTANCES_PATH + File.separator 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 483) + instanceDirName); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 484) File instanceFile = new File(instanceDir, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 485) instanceDirName + ".xml"); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 486) if (instanceDir.exists() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 487) && instanceDir.isDirectory() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 488) && !instanceFile.exists()) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 489) // yes! -- use this savepoint file 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 490) instancePath = instanceFile 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 491) .getAbsolutePath(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 492) break; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 493) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 494) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 495) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 496) } finally { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 497) if (c != null) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 498) c.close(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 499) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 500) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 501) } else { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 502) Log.e(t, "unrecognized URI"); 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 503) this.createErrorDialog("Unrecognized URI: " + uri, EXIT); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 504) return; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 505) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 506) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 507) mFormLoaderTask = new FormLoaderTask(instancePath, null, null); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 508) Collect.getInstance().getActivityLogger() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 509) .logAction(this, "formLoaded", mFormPath); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 510) showDialog(PROGRESS_DIALOG); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 511) // show dialog before we execute... 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 512) mFormLoaderTask.execute(mFormPath); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 513) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 514) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 515) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 516) 244bf37a src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2014-03-12 11:16:21 -0700 517) /** 244bf37a src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2014-03-12 11:16:21 -0700 518) * Create save-points asynchronously in order to not affect swiping performance 244bf37a src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2014-03-12 11:16:21 -0700 519) * on larger forms. 244bf37a src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2014-03-12 11:16:21 -0700 520) */ 244bf37a src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2014-03-12 11:16:21 -0700 521) private void nonblockingCreateSavePointData() { 244bf37a src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2014-03-12 11:16:21 -0700 522) try { 244bf37a src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2014-03-12 11:16:21 -0700 523) SavePointTask savePointTask = new SavePointTask(this); 244bf37a src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2014-03-12 11:16:21 -0700 524) savePointTask.execute(); 244bf37a src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2014-03-12 11:16:21 -0700 525) } catch (Exception e) { 244bf37a src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2014-03-12 11:16:21 -0700 526) Log.e(t, "Could not schedule SavePointTask. Perhaps a lot of swiping is taking place?"); 244bf37a src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2014-03-12 11:16:21 -0700 527) } 244bf37a src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2014-03-12 11:16:21 -0700 528) } 244bf37a src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2014-03-12 11:16:21 -0700 529) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 530) @Override 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 531) protected void onSaveInstanceState(Bundle outState) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 532) super.onSaveInstanceState(outState); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 533) outState.putString(KEY_FORMPATH, mFormPath); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 534) FormController formController = Collect.getInstance() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 535) .getFormController(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 536) if (formController != null) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 537) outState.putString(KEY_INSTANCEPATH, formController 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 538) .getInstancePath().getAbsolutePath()); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 539) outState.putString(KEY_XPATH, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 540) formController.getXPath(formController.getFormIndex())); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 541) FormIndex waiting = formController.getIndexWaitingForData(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 542) if (waiting != null) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 543) outState.putString(KEY_XPATH_WAITING_FOR_DATA, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 544) formController.getXPath(waiting)); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 545) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 546) // save the instance to a temp path... 244bf37a src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2014-03-12 11:16:21 -0700 547) nonblockingCreateSavePointData(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 548) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 549) outState.putBoolean(NEWFORM, false); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 550) outState.putString(KEY_ERROR, mErrorMessage); 7180b793 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2014-08-28 09:13:45 -0700 551) outState.putBoolean(KEY_AUTO_SAVED, mAutoSaved); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 552) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 553) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 554) @Override 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 555) protected void onActivityResult(int requestCode, int resultCode, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 556) Intent intent) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 557) super.onActivityResult(requestCode, resultCode, intent); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 558) FormController formController = Collect.getInstance() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 559) .getFormController(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 560) if (formController == null) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 561) // we must be in the midst of a reload of the FormController. 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 562) // try to save this callback data to the FormLoaderTask 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 563) if (mFormLoaderTask != null 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 564) && mFormLoaderTask.getStatus() != AsyncTask.Status.FINISHED) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 565) mFormLoaderTask.setActivityResult(requestCode, resultCode, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 566) intent); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 567) } else { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 568) Log.e(t, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 569) "Got an activityResult without any pending form loader"); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 570) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 571) return; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 572) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 573) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 574) if (resultCode == RESULT_CANCELED) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 575) // request was canceled... 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 576) if (requestCode != HIERARCHY_ACTIVITY) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 577) ((ODKView) mCurrentView).cancelWaitingForBinaryData(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 578) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 579) return; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 580) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 581) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 582) switch (requestCode) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 583) case BARCODE_CAPTURE: 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 584) String sb = intent.getStringExtra("SCAN_RESULT"); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 585) ((ODKView) mCurrentView).setBinaryData(sb); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 586) saveAnswersForCurrentScreen(DO_NOT_EVALUATE_CONSTRAINTS); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 587) break; a60de075 src/org/odk/collect/android/activities/FormEntryActivity.java (Nicholas Hallahan 2015-02-17 00:57:56 +0300 588) case OSM_CAPTURE: a60de075 src/org/odk/collect/android/activities/FormEntryActivity.java (Nicholas Hallahan 2015-02-17 00:57:56 +0300 589) String osmFileName = intent.getStringExtra("OSM_FILE_NAME"); a60de075 src/org/odk/collect/android/activities/FormEntryActivity.java (Nicholas Hallahan 2015-02-17 00:57:56 +0300 590) ((ODKView) mCurrentView).setBinaryData(osmFileName); a60de075 src/org/odk/collect/android/activities/FormEntryActivity.java (Nicholas Hallahan 2015-02-17 00:57:56 +0300 591) saveAnswersForCurrentScreen(DO_NOT_EVALUATE_CONSTRAINTS); a60de075 src/org/odk/collect/android/activities/FormEntryActivity.java (Nicholas Hallahan 2015-02-17 00:57:56 +0300 592) break; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 593) case EX_STRING_CAPTURE: 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 594) case EX_INT_CAPTURE: 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 595) case EX_DECIMAL_CAPTURE: 120a7b6c src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 12:15:52 +0200 596) String key = "value"; 120a7b6c src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 12:15:52 +0200 597) boolean exists = intent.getExtras().containsKey(key); 120a7b6c src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 12:15:52 +0200 598) if (exists) { 120a7b6c src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 12:15:52 +0200 599) Object externalValue = intent.getExtras().get(key); 120a7b6c src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 12:15:52 +0200 600) ((ODKView) mCurrentView).setBinaryData(externalValue); 120a7b6c src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 12:15:52 +0200 601) saveAnswersForCurrentScreen(DO_NOT_EVALUATE_CONSTRAINTS); 120a7b6c src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 12:15:52 +0200 602) } 120a7b6c src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 12:15:52 +0200 603) break; 120a7b6c src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 12:15:52 +0200 604) case EX_GROUP_CAPTURE: 120a7b6c src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 12:15:52 +0200 605) try { 120a7b6c src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 12:15:52 +0200 606) Bundle extras = intent.getExtras(); 120a7b6c src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 12:15:52 +0200 607) ((ODKView) mCurrentView).setDataForFields(extras); 120a7b6c src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 12:15:52 +0200 608) } catch (JavaRosaException e) { 120a7b6c src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 12:15:52 +0200 609) Log.e(t, e.getMessage(), e); 120a7b6c src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 12:15:52 +0200 610) createErrorDialog(e.getCause().getMessage(), DO_NOT_EXIT); 120a7b6c src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 12:15:52 +0200 611) } 120a7b6c src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 12:15:52 +0200 612) break; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 613) case DRAW_IMAGE: 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 614) case ANNOTATE_IMAGE: 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 615) case SIGNATURE_CAPTURE: 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 616) case IMAGE_CAPTURE: 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 617) /* 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 618) * We saved the image to the tempfile_path, but we really want it to 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 619) * be in: /sdcard/odk/instances/[current instnace]/something.jpg so 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 620) * we move it there before inserting it into the content provider. 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 621) * Once the android image capture bug gets fixed, (read, we move on 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 622) * from Android 1.6) we want to handle images the audio and video 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 623) */ 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 624) // The intent is empty, but we know we saved the image to the temp 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 625) // file 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 626) File fi = new File(Collect.TMPFILE_PATH); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 627) String mInstanceFolder = formController.getInstancePath() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 628) .getParent(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 629) String s = mInstanceFolder + File.separator 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 630) + System.currentTimeMillis() + ".jpg"; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 631) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 632) File nf = new File(s); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 633) if (!fi.renameTo(nf)) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 634) Log.e(t, "Failed to rename " + fi.getAbsolutePath()); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 635) } else { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 636) Log.i(t, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 637) "renamed " + fi.getAbsolutePath() + " to " 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 638) + nf.getAbsolutePath()); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 639) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 640) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 641) ((ODKView) mCurrentView).setBinaryData(nf); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 642) saveAnswersForCurrentScreen(DO_NOT_EVALUATE_CONSTRAINTS); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 643) break; a7e9b21d src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-05-13 12:37:47 -0700 644) case ALIGNED_IMAGE: a7e9b21d src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-05-13 12:37:47 -0700 645) /* c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 646) * We saved the image to the tempfile_path; the app returns the full c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 647) * path to the saved file in the EXTRA_OUTPUT extra. Take that file c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 648) * and move it into the instance folder. a7e9b21d src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-05-13 12:37:47 -0700 649) */ c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 650) String path = intent c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 651) .getStringExtra(android.provider.MediaStore.EXTRA_OUTPUT); a7e9b21d src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-05-13 12:37:47 -0700 652) fi = new File(path); c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 653) mInstanceFolder = formController.getInstancePath().getParent(); c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 654) s = mInstanceFolder + File.separator + System.currentTimeMillis() c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 655) + ".jpg"; a7e9b21d src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-05-13 12:37:47 -0700 656) a7e9b21d src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-05-13 12:37:47 -0700 657) nf = new File(s); a7e9b21d src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-05-13 12:37:47 -0700 658) if (!fi.renameTo(nf)) { a7e9b21d src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-05-13 12:37:47 -0700 659) Log.e(t, "Failed to rename " + fi.getAbsolutePath()); a7e9b21d src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-05-13 12:37:47 -0700 660) } else { a7e9b21d src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-05-13 12:37:47 -0700 661) Log.i(t, a7e9b21d src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-05-13 12:37:47 -0700 662) "renamed " + fi.getAbsolutePath() + " to " a7e9b21d src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-05-13 12:37:47 -0700 663) + nf.getAbsolutePath()); a7e9b21d src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-05-13 12:37:47 -0700 664) } a7e9b21d src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-05-13 12:37:47 -0700 665) a7e9b21d src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-05-13 12:37:47 -0700 666) ((ODKView) mCurrentView).setBinaryData(nf); a7e9b21d src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-05-13 12:37:47 -0700 667) saveAnswersForCurrentScreen(DO_NOT_EVALUATE_CONSTRAINTS); a7e9b21d src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-05-13 12:37:47 -0700 668) break; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 669) case IMAGE_CHOOSER: 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 670) /* 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 671) * We have a saved image somewhere, but we really want it to be in: 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 672) * /sdcard/odk/instances/[current instnace]/something.jpg so we move 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 673) * it there before inserting it into the content provider. Once the 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 674) * android image capture bug gets fixed, (read, we move on from 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 675) * Android 1.6) we want to handle images the audio and video 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 676) */ 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 677) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 678) // get gp of chosen file 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 679) Uri selectedImage = intent.getData(); 2d107493 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2014-03-20 11:44:43 -0700 680) String sourceImagePath = MediaUtils.getPathFromUri(this, selectedImage, Images.Media.DATA); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 681) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 682) // Copy file to sdcard 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 683) String mInstanceFolder1 = formController.getInstancePath() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 684) .getParent(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 685) String destImagePath = mInstanceFolder1 + File.separator 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 686) + System.currentTimeMillis() + ".jpg"; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 687) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 688) File source = new File(sourceImagePath); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 689) File newImage = new File(destImagePath); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 690) FileUtils.copyFile(source, newImage); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 691) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 692) ((ODKView) mCurrentView).setBinaryData(newImage); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 693) saveAnswersForCurrentScreen(DO_NOT_EVALUATE_CONSTRAINTS); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 694) break; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 695) case AUDIO_CAPTURE: 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 696) case VIDEO_CAPTURE: 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 697) case AUDIO_CHOOSER: 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 698) case VIDEO_CHOOSER: 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 699) // For audio/video capture/chooser, we get the URI from the content 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 700) // provider 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 701) // then the widget copies the file and makes a new entry in the 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 702) // content provider. 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 703) Uri media = intent.getData(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 704) ((ODKView) mCurrentView).setBinaryData(media); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 705) saveAnswersForCurrentScreen(DO_NOT_EVALUATE_CONSTRAINTS); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 706) break; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 707) case LOCATION_CAPTURE: 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 708) String sl = intent.getStringExtra(LOCATION_RESULT); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 709) ((ODKView) mCurrentView).setBinaryData(sl); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 710) saveAnswersForCurrentScreen(DO_NOT_EVALUATE_CONSTRAINTS); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 711) break; e8866adf src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-10-16 15:54:29 -0600 712) case BEARING_CAPTURE: e8866adf src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-10-16 15:54:29 -0600 713) String bearing = intent.getStringExtra(BEARING_RESULT); e8866adf src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-10-16 15:54:29 -0600 714) ((ODKView) mCurrentView).setBinaryData(bearing); e8866adf src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-10-16 15:54:29 -0600 715) saveAnswersForCurrentScreen(DO_NOT_EVALUATE_CONSTRAINTS); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 716) case HIERARCHY_ACTIVITY: 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 717) // We may have jumped to a new index in hierarchy activity, so 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 718) // refresh 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 719) break; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 720) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 721) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 722) refreshCurrentView(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 723) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 724) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 725) /** 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 726) * Refreshes the current view. the controller and the displayed view can get 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 727) * out of sync due to dialogs and restarts caused by screen orientation 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 728) * changes, so they're resynchronized here. 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 729) */ 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 730) public void refreshCurrentView() { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 731) FormController formController = Collect.getInstance() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 732) .getFormController(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 733) int event = formController.getEvent(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 734) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 735) // When we refresh, repeat dialog state isn't maintained, so step back 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 736) // to the previous 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 737) // question. 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 738) // Also, if we're within a group labeled 'field list', step back to the 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 739) // beginning of that 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 740) // group. 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 741) // That is, skip backwards over repeat prompts, groups that are not 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 742) // field-lists, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 743) // repeat events, and indexes in field-lists that is not the containing 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 744) // group. 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 745) if (event == FormEntryController.EVENT_PROMPT_NEW_REPEAT) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 746) createRepeatDialog(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 747) } else { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 748) View current = createView(event, false); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 749) showView(current, AnimationType.FADE); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 750) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 751) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 752) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 753) @Override c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 754) public boolean onCreateOptionsMenu(Menu menu) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 755) Collect.getInstance().getActivityLogger() c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 756) .logInstanceAction(this, "onCreateOptionsMenu", "show"); c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 757) super.onCreateOptionsMenu(menu); c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 758) c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 759) CompatibilityUtils.setShowAsAction( c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 760) menu.add(0, MENU_SAVE, 0, R.string.save_all_answers).setIcon( c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 761) android.R.drawable.ic_menu_save), c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 762) MenuItem.SHOW_AS_ACTION_IF_ROOM); c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 763) c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 764) CompatibilityUtils.setShowAsAction( c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 765) menu.add(0, MENU_HIERARCHY_VIEW, 0, R.string.view_hierarchy) c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 766) .setIcon(R.drawable.ic_menu_goto), c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 767) MenuItem.SHOW_AS_ACTION_IF_ROOM); c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 768) c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 769) CompatibilityUtils.setShowAsAction( c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 770) menu.add(0, MENU_LANGUAGES, 0, R.string.change_language) c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 771) .setIcon(R.drawable.ic_menu_start_conversation), c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 772) MenuItem.SHOW_AS_ACTION_NEVER); c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 773) c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 774) CompatibilityUtils.setShowAsAction( c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 775) menu.add(0, MENU_PREFERENCES, 0, R.string.general_preferences) 543b99b5 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-07-12 18:43:59 -0700 776) .setIcon(R.drawable.ic_menu_preferences), c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 777) MenuItem.SHOW_AS_ACTION_NEVER); c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 778) return true; c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 779) } c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 780) c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 781) @Override c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 782) public boolean onPrepareOptionsMenu(Menu menu) { c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 783) super.onPrepareOptionsMenu(menu); c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 784) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 785) FormController formController = Collect.getInstance() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 786) .getFormController(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 787) c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 788) boolean useability; c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 789) useability = mAdminPreferences.getBoolean( c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 790) AdminPreferencesActivity.KEY_SAVE_MID, true); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 791) c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 792) menu.findItem(MENU_SAVE).setVisible(useability).setEnabled(useability); c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 793) c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 794) useability = mAdminPreferences.getBoolean( c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 795) AdminPreferencesActivity.KEY_JUMP_TO, true); c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 796) c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 797) menu.findItem(MENU_HIERARCHY_VIEW).setVisible(useability) c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 798) .setEnabled(useability); c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 799) c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 800) useability = mAdminPreferences.getBoolean( c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 801) AdminPreferencesActivity.KEY_CHANGE_LANGUAGE, true) c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 802) && (formController != null) c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 803) && formController.getLanguages() != null c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 804) && formController.getLanguages().length > 1; c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 805) c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 806) menu.findItem(MENU_LANGUAGES).setVisible(useability) c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 807) .setEnabled(useability); c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 808) c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 809) useability = mAdminPreferences.getBoolean( c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 810) AdminPreferencesActivity.KEY_ACCESS_SETTINGS, true); c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 811) c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 812) menu.findItem(MENU_PREFERENCES).setVisible(useability) c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 813) .setEnabled(useability); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 814) return true; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 815) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 816) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 817) @Override 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 818) public boolean onOptionsItemSelected(MenuItem item) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 819) FormController formController = Collect.getInstance() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 820) .getFormController(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 821) switch (item.getItemId()) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 822) case MENU_LANGUAGES: 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 823) Collect.getInstance() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 824) .getActivityLogger() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 825) .logInstanceAction(this, "onOptionsItemSelected", 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 826) "MENU_LANGUAGES"); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 827) createLanguageDialog(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 828) return true; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 829) case MENU_SAVE: 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 830) Collect.getInstance() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 831) .getActivityLogger() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 832) .logInstanceAction(this, "onOptionsItemSelected", 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 833) "MENU_SAVE"); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 834) // don't exit 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 835) saveDataToDisk(DO_NOT_EXIT, isInstanceComplete(false), null); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 836) return true; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 837) case MENU_HIERARCHY_VIEW: 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 838) Collect.getInstance() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 839) .getActivityLogger() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 840) .logInstanceAction(this, "onOptionsItemSelected", 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 841) "MENU_HIERARCHY_VIEW"); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 842) if (formController.currentPromptIsQuestion()) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 843) saveAnswersForCurrentScreen(DO_NOT_EVALUATE_CONSTRAINTS); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 844) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 845) Intent i = new Intent(this, FormHierarchyActivity.class); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 846) startActivityForResult(i, HIERARCHY_ACTIVITY); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 847) return true; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 848) case MENU_PREFERENCES: 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 849) Collect.getInstance() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 850) .getActivityLogger() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 851) .logInstanceAction(this, "onOptionsItemSelected", 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 852) "MENU_PREFERENCES"); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 853) Intent pref = new Intent(this, PreferencesActivity.class); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 854) startActivity(pref); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 855) return true; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 856) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 857) return super.onOptionsItemSelected(item); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 858) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 859) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 860) /** 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 861) * Attempt to save the answer(s) in the current screen to into the data 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 862) * model. 6781ab8d src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-03-27 15:36:07 -0700 863) * 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 864) * @param evaluateConstraints 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 865) * @return false if any error occurs while saving (constraint violated, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 866) * etc...), true otherwise. 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 867) */ 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 868) private boolean saveAnswersForCurrentScreen(boolean evaluateConstraints) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 869) FormController formController = Collect.getInstance() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 870) .getFormController(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 871) // only try to save if the current event is a question or a field-list 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 872) // group 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 873) if (formController.currentPromptIsQuestion()) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 874) LinkedHashMap answers = ((ODKView) mCurrentView) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 875) .getAnswers(); 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 876) try { 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 877) FailedConstraint constraint = formController.saveAllScreenAnswers(answers, evaluateConstraints); 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 878) if (constraint != null) { 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 879) createConstraintToast(constraint.index, constraint.status); 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 880) return false; 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 881) } 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 882) } catch (JavaRosaException e) { 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 883) Log.e(t, e.getMessage(), e); 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 884) createErrorDialog(e.getCause().getMessage(), DO_NOT_EXIT); 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 885) return false; 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 886) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 887) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 888) return true; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 889) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 890) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 891) /** 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 892) * Clears the answer on the screen. 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 893) */ 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 894) private void clearAnswer(QuestionWidget qw) { c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 895) if (qw.getAnswer() != null) { 6781ab8d src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-03-27 15:36:07 -0700 896) qw.clearAnswer(); 6781ab8d src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-03-27 15:36:07 -0700 897) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 898) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 899) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 900) @Override 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 901) public void onCreateContextMenu(ContextMenu menu, View v, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 902) ContextMenuInfo menuInfo) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 903) super.onCreateContextMenu(menu, v, menuInfo); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 904) Collect.getInstance().getActivityLogger() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 905) .logInstanceAction(this, "onCreateContextMenu", "show"); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 906) FormController formController = Collect.getInstance() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 907) .getFormController(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 908) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 909) menu.add(0, v.getId(), 0, getString(R.string.clear_answer)); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 910) if (formController.indexContainsRepeatableGroup()) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 911) menu.add(0, DELETE_REPEAT, 0, getString(R.string.delete_repeat)); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 912) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 913) menu.setHeaderTitle(getString(R.string.edit_prompt)); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 914) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 915) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 916) @Override 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 917) public boolean onContextItemSelected(MenuItem item) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 918) /* 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 919) * We don't have the right view here, so we store the View's ID as the 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 920) * item ID and loop through the possible views to find the one the user 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 921) * clicked on. 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 922) */ 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 923) for (QuestionWidget qw : ((ODKView) mCurrentView).getWidgets()) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 924) if (item.getItemId() == qw.getId()) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 925) Collect.getInstance() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 926) .getActivityLogger() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 927) .logInstanceAction(this, "onContextItemSelected", 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 928) "createClearDialog", qw.getPrompt().getIndex()); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 929) createClearDialog(qw); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 930) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 931) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 932) if (item.getItemId() == DELETE_REPEAT) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 933) Collect.getInstance() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 934) .getActivityLogger() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 935) .logInstanceAction(this, "onContextItemSelected", 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 936) "createDeleteRepeatConfirmDialog"); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 937) createDeleteRepeatConfirmDialog(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 938) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 939) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 940) return super.onContextItemSelected(item); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 941) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 942) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 943) /** 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 944) * If we're loading, then we pass the loading thread to our next instance. 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 945) */ 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 946) @Override 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 947) public Object onRetainNonConfigurationInstance() { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 948) FormController formController = Collect.getInstance() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 949) .getFormController(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 950) // if a form is loading, pass the loader task 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 951) if (mFormLoaderTask != null 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 952) && mFormLoaderTask.getStatus() != AsyncTask.Status.FINISHED) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 953) return mFormLoaderTask; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 954) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 955) // if a form is writing to disk, pass the save to disk task 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 956) if (mSaveToDiskTask != null 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 957) && mSaveToDiskTask.getStatus() != AsyncTask.Status.FINISHED) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 958) return mSaveToDiskTask; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 959) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 960) // mFormEntryController is static so we don't need to pass it. 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 961) if (formController != null && formController.currentPromptIsQuestion()) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 962) saveAnswersForCurrentScreen(DO_NOT_EVALUATE_CONSTRAINTS); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 963) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 964) return null; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 965) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 966) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 967) /** 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 968) * Creates a view given the View type and an event 6781ab8d src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-03-27 15:36:07 -0700 969) * 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 970) * @param event 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 971) * @param advancingPage 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 972) * -- true if this results from advancing through the form 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 973) * @return newly created View 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 974) */ 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 975) private View createView(int event, boolean advancingPage) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 976) FormController formController = Collect.getInstance() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 977) .getFormController(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 978) setTitle(getString(R.string.app_name) + " > " 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 979) + formController.getFormTitle()); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 980) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 981) switch (event) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 982) case FormEntryController.EVENT_BEGINNING_OF_FORM: 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 983) View startView = View 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 984) .inflate(this, R.layout.form_entry_start, null); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 985) setTitle(getString(R.string.app_name) + " > " 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 986) + formController.getFormTitle()); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 987) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 988) Drawable image = null; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 989) File mediaFolder = formController.getMediaFolder(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 990) String mediaDir = mediaFolder.getAbsolutePath(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 991) BitmapDrawable bitImage = null; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 992) // attempt to load the form-specific logo... 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 993) // this is arbitrarily silly 0d3387db src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2014-04-17 11:14:32 -0700 994) bitImage = new BitmapDrawable(getResources(), mediaDir + File.separator 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 995) + "form_logo.png"); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 996) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 997) if (bitImage != null && bitImage.getBitmap() != null 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 998) && bitImage.getIntrinsicHeight() > 0 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 999) && bitImage.getIntrinsicWidth() > 0) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1000) image = bitImage; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1001) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1002) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1003) if (image == null) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1004) // show the opendatakit zig... 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1005) // image = 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1006) // getResources().getDrawable(R.drawable.opendatakit_zig); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1007) ((ImageView) startView.findViewById(R.id.form_start_bling)) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1008) .setVisibility(View.GONE); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1009) } else { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1010) ImageView v = ((ImageView) startView 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1011) .findViewById(R.id.form_start_bling)); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1012) v.setImageDrawable(image); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1013) v.setContentDescription(formController.getFormTitle()); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1014) } 6781ab8d src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-03-27 15:36:07 -0700 1015) 60c6921a src/org/odk/collect/android/activities/FormEntryActivity.java (Yaw Anokwa 2013-03-20 12:04:25 -0700 1016) // change start screen based on navigation prefs c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 1017) String navigationChoice = PreferenceManager c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 1018) .getDefaultSharedPreferences(this).getString( c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 1019) PreferencesActivity.KEY_NAVIGATION, c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 1020) PreferencesActivity.KEY_NAVIGATION); 60c6921a src/org/odk/collect/android/activities/FormEntryActivity.java (Yaw Anokwa 2013-03-20 12:04:25 -0700 1021) Boolean useSwipe = false; 60c6921a src/org/odk/collect/android/activities/FormEntryActivity.java (Yaw Anokwa 2013-03-20 12:04:25 -0700 1022) Boolean useButtons = false; c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 1023) ImageView ia = ((ImageView) startView c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 1024) .findViewById(R.id.image_advance)); c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 1025) ImageView ib = ((ImageView) startView c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 1026) .findViewById(R.id.image_backup)); 60c6921a src/org/odk/collect/android/activities/FormEntryActivity.java (Yaw Anokwa 2013-03-20 12:04:25 -0700 1027) TextView ta = ((TextView) startView.findViewById(R.id.text_advance)); 60c6921a src/org/odk/collect/android/activities/FormEntryActivity.java (Yaw Anokwa 2013-03-20 12:04:25 -0700 1028) TextView tb = ((TextView) startView.findViewById(R.id.text_backup)); 60c6921a src/org/odk/collect/android/activities/FormEntryActivity.java (Yaw Anokwa 2013-03-20 12:04:25 -0700 1029) TextView d = ((TextView) startView.findViewById(R.id.description)); 6781ab8d src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-03-27 15:36:07 -0700 1030) 60c6921a src/org/odk/collect/android/activities/FormEntryActivity.java (Yaw Anokwa 2013-03-20 12:04:25 -0700 1031) if (navigationChoice != null) { c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 1032) if (navigationChoice c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 1033) .contains(PreferencesActivity.NAVIGATION_SWIPE)) { 60c6921a src/org/odk/collect/android/activities/FormEntryActivity.java (Yaw Anokwa 2013-03-20 12:04:25 -0700 1034) useSwipe = true; 60c6921a src/org/odk/collect/android/activities/FormEntryActivity.java (Yaw Anokwa 2013-03-20 12:04:25 -0700 1035) } c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 1036) if (navigationChoice c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 1037) .contains(PreferencesActivity.NAVIGATION_BUTTONS)) { 60c6921a src/org/odk/collect/android/activities/FormEntryActivity.java (Yaw Anokwa 2013-03-20 12:04:25 -0700 1038) useButtons = true; 60c6921a src/org/odk/collect/android/activities/FormEntryActivity.java (Yaw Anokwa 2013-03-20 12:04:25 -0700 1039) } 60c6921a src/org/odk/collect/android/activities/FormEntryActivity.java (Yaw Anokwa 2013-03-20 12:04:25 -0700 1040) } 60c6921a src/org/odk/collect/android/activities/FormEntryActivity.java (Yaw Anokwa 2013-03-20 12:04:25 -0700 1041) if (useSwipe && !useButtons) { 60c6921a src/org/odk/collect/android/activities/FormEntryActivity.java (Yaw Anokwa 2013-03-20 12:04:25 -0700 1042) d.setText(getString(R.string.swipe_instructions, 60c6921a src/org/odk/collect/android/activities/FormEntryActivity.java (Yaw Anokwa 2013-03-20 12:04:25 -0700 1043) formController.getFormTitle())); 60c6921a src/org/odk/collect/android/activities/FormEntryActivity.java (Yaw Anokwa 2013-03-20 12:04:25 -0700 1044) } else if (useButtons && !useSwipe) { 60c6921a src/org/odk/collect/android/activities/FormEntryActivity.java (Yaw Anokwa 2013-03-20 12:04:25 -0700 1045) ia.setVisibility(View.GONE); 60c6921a src/org/odk/collect/android/activities/FormEntryActivity.java (Yaw Anokwa 2013-03-20 12:04:25 -0700 1046) ib.setVisibility(View.GONE); 60c6921a src/org/odk/collect/android/activities/FormEntryActivity.java (Yaw Anokwa 2013-03-20 12:04:25 -0700 1047) ta.setVisibility(View.GONE); 60c6921a src/org/odk/collect/android/activities/FormEntryActivity.java (Yaw Anokwa 2013-03-20 12:04:25 -0700 1048) tb.setVisibility(View.GONE); 60c6921a src/org/odk/collect/android/activities/FormEntryActivity.java (Yaw Anokwa 2013-03-20 12:04:25 -0700 1049) d.setText(getString(R.string.buttons_instructions, 60c6921a src/org/odk/collect/android/activities/FormEntryActivity.java (Yaw Anokwa 2013-03-20 12:04:25 -0700 1050) formController.getFormTitle())); 60c6921a src/org/odk/collect/android/activities/FormEntryActivity.java (Yaw Anokwa 2013-03-20 12:04:25 -0700 1051) } else { 60c6921a src/org/odk/collect/android/activities/FormEntryActivity.java (Yaw Anokwa 2013-03-20 12:04:25 -0700 1052) d.setText(getString(R.string.swipe_buttons_instructions, 60c6921a src/org/odk/collect/android/activities/FormEntryActivity.java (Yaw Anokwa 2013-03-20 12:04:25 -0700 1053) formController.getFormTitle())); 60c6921a src/org/odk/collect/android/activities/FormEntryActivity.java (Yaw Anokwa 2013-03-20 12:04:25 -0700 1054) } 6781ab8d src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-03-27 15:36:07 -0700 1055) 7aa5f904 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 18:20:11 -0700 1056) if (mBackButton.isShown()) { 7aa5f904 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 18:20:11 -0700 1057) mBackButton.setEnabled(false); 7aa5f904 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 18:20:11 -0700 1058) } 7aa5f904 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 18:20:11 -0700 1059) if (mNextButton.isShown()) { 7aa5f904 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 18:20:11 -0700 1060) mNextButton.setEnabled(true); 7aa5f904 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 18:20:11 -0700 1061) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1062) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1063) return startView; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1064) case FormEntryController.EVENT_END_OF_FORM: 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1065) View endView = View.inflate(this, R.layout.form_entry_end, null); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1066) ((TextView) endView.findViewById(R.id.description)) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1067) .setText(getString(R.string.save_enter_data_description, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1068) formController.getFormTitle())); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1069) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1070) // checkbox for if finished or ready to send 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1071) final CheckBox instanceComplete = ((CheckBox) endView 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1072) .findViewById(R.id.mark_finished)); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1073) instanceComplete.setChecked(isInstanceComplete(true)); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1074) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1075) if (!mAdminPreferences.getBoolean( 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1076) AdminPreferencesActivity.KEY_MARK_AS_FINALIZED, true)) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1077) instanceComplete.setVisibility(View.GONE); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1078) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1079) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1080) // edittext to change the displayed name of the instance 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1081) final EditText saveAs = (EditText) endView 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1082) .findViewById(R.id.save_name); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1083) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1084) // disallow carriage returns in the name 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1085) InputFilter returnFilter = new InputFilter() { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1086) public CharSequence filter(CharSequence source, int start, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1087) int end, Spanned dest, int dstart, int dend) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1088) for (int i = start; i < end; i++) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1089) if (Character.getType((source.charAt(i))) == Character.CONTROL) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1090) return ""; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1091) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1092) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1093) return null; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1094) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1095) }; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1096) saveAs.setFilters(new InputFilter[] { returnFilter }); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1097) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1098) String saveName = formController.getSubmissionMetadata().instanceName; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1099) if (saveName == null) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1100) // no meta/instanceName field in the form -- see if we have a 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1101) // name for this instance from a previous save attempt... 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1102) if (getContentResolver().getType(getIntent().getData()) == InstanceColumns.CONTENT_ITEM_TYPE) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1103) Uri instanceUri = getIntent().getData(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1104) Cursor instance = null; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1105) try { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1106) instance = getContentResolver().query(instanceUri, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1107) null, null, null, null); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1108) if (instance.getCount() == 1) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1109) instance.moveToFirst(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1110) saveName = instance 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1111) .getString(instance 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1112) .getColumnIndex(InstanceColumns.DISPLAY_NAME)); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1113) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1114) } finally { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1115) if (instance != null) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1116) instance.close(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1117) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1118) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1119) } a17e35bd src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-05-29 13:35:04 -0700 1120) if (saveName == null) { c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 1121) // last resort, default to the form title c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 1122) saveName = formController.getFormTitle(); c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 1123) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1124) // present the prompt to allow user to name the form 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1125) TextView sa = (TextView) endView 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1126) .findViewById(R.id.save_form_as); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1127) sa.setVisibility(View.VISIBLE); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1128) saveAs.setText(saveName); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1129) saveAs.setEnabled(true); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1130) saveAs.setVisibility(View.VISIBLE); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1131) } else { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1132) // if instanceName is defined in form, this is the name -- no 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1133) // revisions 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1134) // display only the name, not the prompt, and disable edits 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1135) TextView sa = (TextView) endView 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1136) .findViewById(R.id.save_form_as); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1137) sa.setVisibility(View.GONE); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1138) saveAs.setText(saveName); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1139) saveAs.setEnabled(false); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1140) saveAs.setBackgroundColor(Color.WHITE); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1141) saveAs.setVisibility(View.VISIBLE); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1142) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1143) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1144) // override the visibility settings based upon admin preferences 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1145) if (!mAdminPreferences.getBoolean( 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1146) AdminPreferencesActivity.KEY_SAVE_AS, true)) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1147) saveAs.setVisibility(View.GONE); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1148) TextView sa = (TextView) endView 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1149) .findViewById(R.id.save_form_as); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1150) sa.setVisibility(View.GONE); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1151) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1152) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1153) // Create 'save' button 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1154) ((Button) endView.findViewById(R.id.save_exit_button)) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1155) .setOnClickListener(new OnClickListener() { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1156) @Override 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1157) public void onClick(View v) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1158) Collect.getInstance() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1159) .getActivityLogger() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1160) .logInstanceAction( 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1161) this, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1162) "createView.saveAndExit", 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1163) instanceComplete.isChecked() ? "saveAsComplete" 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1164) : "saveIncomplete"); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1165) // Form is marked as 'saved' here. 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1166) if (saveAs.getText().length() < 1) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1167) Toast.makeText(FormEntryActivity.this, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1168) R.string.save_as_error, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1169) Toast.LENGTH_SHORT).show(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1170) } else { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1171) saveDataToDisk(EXIT, instanceComplete 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1172) .isChecked(), saveAs.getText() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1173) .toString()); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1174) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1175) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1176) }); 6781ab8d src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-03-27 15:36:07 -0700 1177) 7aa5f904 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 18:20:11 -0700 1178) if (mBackButton.isShown()) { 7aa5f904 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 18:20:11 -0700 1179) mBackButton.setEnabled(true); 7aa5f904 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 18:20:11 -0700 1180) } 7aa5f904 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 18:20:11 -0700 1181) if (mNextButton.isShown()) { 7aa5f904 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 18:20:11 -0700 1182) mNextButton.setEnabled(false); 7aa5f904 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 18:20:11 -0700 1183) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1184) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1185) return endView; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1186) case FormEntryController.EVENT_QUESTION: 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1187) case FormEntryController.EVENT_GROUP: 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1188) case FormEntryController.EVENT_REPEAT: 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1189) ODKView odkv = null; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1190) // should only be a group here if the event_group is a field-list 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1191) try { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1192) FormEntryPrompt[] prompts = formController.getQuestionPrompts(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1193) FormEntryCaption[] groups = formController 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1194) .getGroupsForCurrentIndex(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1195) odkv = new ODKView(this, formController.getQuestionPrompts(), 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1196) groups, advancingPage); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1197) Log.i(t, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1198) "created view for group " 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1199) + (groups.length > 0 ? groups[groups.length - 1] 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1200) .getLongText() : "[top]") 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1201) + " " 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1202) + (prompts.length > 0 ? prompts[0] 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1203) .getQuestionText() : "[no question]")); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1204) } catch (RuntimeException e) { 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1205) Log.e(t, e.getMessage(), e); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1206) // this is badness to avoid a crash. 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1207) try { 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1208) event = formController.stepToNextScreenEvent(); 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1209) createErrorDialog(e.getMessage(), DO_NOT_EXIT); 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1210) } catch (JavaRosaException e1) { 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1211) Log.e(t, e1.getMessage(), e1); 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1212) createErrorDialog(e.getMessage() + "\n\n" + e1.getCause().getMessage(), DO_NOT_EXIT); 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1213) } 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1214) return createView(event, advancingPage); 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1215) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1216) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1217) // Makes a "clear answer" menu pop up on long-click 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1218) for (QuestionWidget qw : odkv.getWidgets()) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1219) if (!qw.getPrompt().isReadOnly()) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1220) registerForContextMenu(qw); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1221) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1222) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1223) 7aa5f904 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 18:20:11 -0700 1224) if (mBackButton.isShown() && mNextButton.isShown()) { 7aa5f904 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 18:20:11 -0700 1225) mBackButton.setEnabled(true); 7aa5f904 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 18:20:11 -0700 1226) mNextButton.setEnabled(true); 7aa5f904 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 18:20:11 -0700 1227) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1228) return odkv; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1229) default: 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1230) Log.e(t, "Attempted to create a view that does not exist."); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1231) // this is badness to avoid a crash. 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1232) try { 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1233) event = formController.stepToNextScreenEvent(); 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1234) createErrorDialog(getString(R.string.survey_internal_error), EXIT); 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1235) } catch (JavaRosaException e) { 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1236) Log.e(t, e.getMessage(), e); 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1237) createErrorDialog(e.getCause().getMessage(), EXIT); 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1238) } 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1239) return createView(event, advancingPage); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1240) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1241) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1242) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1243) @Override 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1244) public boolean dispatchTouchEvent(MotionEvent mv) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1245) boolean handled = mGestureDetector.onTouchEvent(mv); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1246) if (!handled) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1247) return super.dispatchTouchEvent(mv); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1248) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1249) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1250) return handled; // this is always true 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1251) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1252) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1253) /** 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1254) * Determines what should be displayed on the screen. Possible options are: 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1255) * a question, an ask repeat dialog, or the submit screen. Also saves 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1256) * answers to the data model after checking constraints. 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1257) */ 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1258) private void showNextView() { 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1259) try { 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1260) FormController formController = Collect.getInstance() 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1261) .getFormController(); 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1262) 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1263) // get constraint behavior preference value with appropriate default 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1264) String constraint_behavior = PreferenceManager.getDefaultSharedPreferences(this) 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1265) .getString(PreferencesActivity.KEY_CONSTRAINT_BEHAVIOR, 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1266) PreferencesActivity.CONSTRAINT_BEHAVIOR_DEFAULT); 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1267) 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1268) if (formController.currentPromptIsQuestion()) { 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1269) 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1270) // if constraint behavior says we should validate on swipe, do so 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1271) if (constraint_behavior.equals(PreferencesActivity.CONSTRAINT_BEHAVIOR_ON_SWIPE)) { 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1272) if (!saveAnswersForCurrentScreen(EVALUATE_CONSTRAINTS)) { 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1273) // A constraint was violated so a dialog should be showing. 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1274) mBeenSwiped = false; 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1275) return; 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1276) } 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1277) 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1278) // otherwise, just save without validating (constraints will be validated on finalize) 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1279) } else 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1280) saveAnswersForCurrentScreen(DO_NOT_EVALUATE_CONSTRAINTS); 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1281) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1282) 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1283) View next; 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1284) int event = formController.stepToNextScreenEvent(); 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1285) 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1286) 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1287) switch (event) { 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1288) case FormEntryController.EVENT_QUESTION: 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1289) case FormEntryController.EVENT_GROUP: 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1290) // create a savepoint 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1291) if ((++viewCount) % SAVEPOINT_INTERVAL == 0) { 244bf37a src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2014-03-12 11:16:21 -0700 1292) nonblockingCreateSavePointData(); 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1293) } 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1294) next = createView(event, true); 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1295) showView(next, AnimationType.RIGHT); 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1296) break; 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1297) case FormEntryController.EVENT_END_OF_FORM: 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1298) case FormEntryController.EVENT_REPEAT: 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1299) next = createView(event, true); 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1300) showView(next, AnimationType.RIGHT); 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1301) break; 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1302) case FormEntryController.EVENT_PROMPT_NEW_REPEAT: 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1303) createRepeatDialog(); 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1304) break; 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1305) case FormEntryController.EVENT_REPEAT_JUNCTURE: 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1306) Log.i(t, "repeat juncture: " 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1307) + formController.getFormIndex().getReference()); 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1308) // skip repeat junctures until we implement them 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1309) break; 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1310) default: 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1311) Log.w(t, 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1312) "JavaRosa added a new EVENT type and didn't tell us... shame on them."); 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1313) break; 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1314) } 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1315) } catch (JavaRosaException e) { 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1316) Log.e(t, e.getMessage(), e); 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1317) createErrorDialog(e.getCause().getMessage(), DO_NOT_EXIT); 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1318) } 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1319) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1320) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1321) /** 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1322) * Determines what should be displayed between a question, or the start 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1323) * screen and displays the appropriate view. Also saves answers to the data 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1324) * model without checking constraints. 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1325) */ 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1326) private void showPreviousView() { 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1327) try { 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1328) FormController formController = Collect.getInstance() 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1329) .getFormController(); 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1330) // The answer is saved on a back swipe, but question constraints are 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1331) // ignored. 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1332) if (formController.currentPromptIsQuestion()) { 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1333) saveAnswersForCurrentScreen(DO_NOT_EVALUATE_CONSTRAINTS); 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1334) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1335) 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1336) if (formController.getEvent() != FormEntryController.EVENT_BEGINNING_OF_FORM) { 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1337) int event = formController.stepToPreviousScreenEvent(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1338) 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1339) if (event == FormEntryController.EVENT_BEGINNING_OF_FORM 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1340) || event == FormEntryController.EVENT_GROUP 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1341) || event == FormEntryController.EVENT_QUESTION) { 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1342) // create savepoint 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1343) if ((++viewCount) % SAVEPOINT_INTERVAL == 0) { 244bf37a src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2014-03-12 11:16:21 -0700 1344) nonblockingCreateSavePointData(); 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1345) } 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1346) } 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1347) View next = createView(event, false); 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1348) showView(next, AnimationType.LEFT); 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1349) } else { 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1350) mBeenSwiped = false; 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1351) } 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1352) } catch (JavaRosaException e) { 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1353) Log.e(t, e.getMessage(), e); 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1354) createErrorDialog(e.getCause().getMessage(), DO_NOT_EXIT); 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1355) } 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1356) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1357) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1358) /** 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1359) * Displays the View specified by the parameter 'next', animating both the 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1360) * current view and next appropriately given the AnimationType. Also updates 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1361) * the progress bar. 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1362) */ 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1363) public void showView(View next, AnimationType from) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1364) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1365) // disable notifications... 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1366) if (mInAnimation != null) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1367) mInAnimation.setAnimationListener(null); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1368) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1369) if (mOutAnimation != null) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1370) mOutAnimation.setAnimationListener(null); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1371) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1372) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1373) // logging of the view being shown is already done, as this was handled 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1374) // by createView() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1375) switch (from) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1376) case RIGHT: 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1377) mInAnimation = AnimationUtils.loadAnimation(this, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1378) R.anim.push_left_in); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1379) mOutAnimation = AnimationUtils.loadAnimation(this, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1380) R.anim.push_left_out); e3b39359 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2014-08-26 16:45:05 -0700 1381) // if animation is left or right then it was a swipe, and we want to re-save on entry e3b39359 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2014-08-26 16:45:05 -0700 1382) mAutoSaved = false; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1383) break; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1384) case LEFT: 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1385) mInAnimation = AnimationUtils.loadAnimation(this, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1386) R.anim.push_right_in); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1387) mOutAnimation = AnimationUtils.loadAnimation(this, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1388) R.anim.push_right_out); e3b39359 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2014-08-26 16:45:05 -0700 1389) mAutoSaved = false; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1390) break; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1391) case FADE: 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1392) mInAnimation = AnimationUtils.loadAnimation(this, R.anim.fade_in); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1393) mOutAnimation = AnimationUtils.loadAnimation(this, R.anim.fade_out); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1394) break; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1395) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1396) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1397) // complete setup for animations... 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1398) mInAnimation.setAnimationListener(this); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1399) mOutAnimation.setAnimationListener(this); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1400) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1401) // drop keyboard before transition... 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1402) if (mCurrentView != null) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1403) InputMethodManager inputManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1404) inputManager.hideSoftInputFromWindow(mCurrentView.getWindowToken(), 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1405) 0); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1406) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1407) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1408) RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams( 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1409) LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1410) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1411) // adjust which view is in the layout container... 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1412) mStaleView = mCurrentView; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1413) mCurrentView = next; 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 1414) mQuestionHolder.addView(mCurrentView, lp); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1415) mAnimationCompletionSet = 0; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1416) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1417) if (mStaleView != null) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1418) // start OutAnimation for transition... 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1419) mStaleView.startAnimation(mOutAnimation); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1420) // and remove the old view (MUST occur after start of animation!!!) 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 1421) mQuestionHolder.removeView(mStaleView); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1422) } else { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1423) mAnimationCompletionSet = 2; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1424) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1425) // start InAnimation for transition... 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1426) mCurrentView.startAnimation(mInAnimation); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1427) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1428) String logString = ""; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1429) switch (from) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1430) case RIGHT: 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1431) logString = "next"; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1432) break; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1433) case LEFT: 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1434) logString = "previous"; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1435) break; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1436) case FADE: 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1437) logString = "refresh"; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1438) break; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1439) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1440) e3b39359 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2014-08-26 16:45:05 -0700 1441) Collect.getInstance().getActivityLogger().logInstanceAction(this, "showView", logString); e3b39359 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2014-08-26 16:45:05 -0700 1442) e3b39359 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2014-08-26 16:45:05 -0700 1443) FormController formController = Collect.getInstance().getFormController(); e3b39359 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2014-08-26 16:45:05 -0700 1444) if (formController.getEvent() == FormEntryController.EVENT_QUESTION e3b39359 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2014-08-26 16:45:05 -0700 1445) || formController.getEvent() == FormEntryController.EVENT_GROUP e3b39359 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2014-08-26 16:45:05 -0700 1446) || formController.getEvent() == FormEntryController.EVENT_REPEAT) { e3b39359 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2014-08-26 16:45:05 -0700 1447) FormEntryPrompt[] prompts = Collect.getInstance().getFormController() e3b39359 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2014-08-26 16:45:05 -0700 1448) .getQuestionPrompts(); e3b39359 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2014-08-26 16:45:05 -0700 1449) for (FormEntryPrompt p : prompts) { 836ab003 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2014-12-23 17:38:16 -0800 1450) List attrs = p.getBindAttributes(); e3b39359 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2014-08-26 16:45:05 -0700 1451) for (int i = 0; i < attrs.size(); i++) { e3b39359 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2014-08-26 16:45:05 -0700 1452) if (!mAutoSaved && "saveIncomplete".equals(attrs.get(i).getName())) { e3b39359 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2014-08-26 16:45:05 -0700 1453) saveDataToDisk(false, false, null, false); e3b39359 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2014-08-26 16:45:05 -0700 1454) mAutoSaved = true; e3b39359 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2014-08-26 16:45:05 -0700 1455) } e3b39359 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2014-08-26 16:45:05 -0700 1456) } e3b39359 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2014-08-26 16:45:05 -0700 1457) } e3b39359 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2014-08-26 16:45:05 -0700 1458) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1459) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1460) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1461) // Hopefully someday we can use managed dialogs when the bugs are fixed 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1462) /* 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1463) * Ideally, we'd like to use Android to manage dialogs with onCreateDialog() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1464) * and onPrepareDialog(), but dialogs with dynamic content are broken in 1.5 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1465) * (cupcake). We do use managed dialogs for our static loading 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1466) * ProgressDialog. The main issue we noticed and are waiting to see fixed 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1467) * is: onPrepareDialog() is not called after a screen orientation change. 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1468) * http://code.google.com/p/android/issues/detail?id=1639 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1469) */ 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1470) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1471) // 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1472) /** 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1473) * Creates and displays a dialog displaying the violated constraint. 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1474) */ 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1475) private void createConstraintToast(FormIndex index, int saveStatus) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1476) FormController formController = Collect.getInstance() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1477) .getFormController(); 609c7a85 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-06 12:19:51 -0700 1478) String constraintText; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1479) switch (saveStatus) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1480) case FormEntryController.ANSWER_CONSTRAINT_VIOLATED: 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1481) Collect.getInstance() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1482) .getActivityLogger() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1483) .logInstanceAction(this, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1484) "createConstraintToast.ANSWER_CONSTRAINT_VIOLATED", 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1485) "show", index); c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 1486) constraintText = formController c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 1487) .getQuestionPromptConstraintText(index); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1488) if (constraintText == null) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1489) constraintText = formController.getQuestionPrompt(index) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1490) .getSpecialFormQuestionText("constraintMsg"); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1491) if (constraintText == null) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1492) constraintText = getString(R.string.invalid_answer_error); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1493) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1494) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1495) break; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1496) case FormEntryController.ANSWER_REQUIRED_BUT_EMPTY: 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1497) Collect.getInstance() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1498) .getActivityLogger() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1499) .logInstanceAction(this, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1500) "createConstraintToast.ANSWER_REQUIRED_BUT_EMPTY", 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1501) "show", index); c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 1502) constraintText = formController c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 1503) .getQuestionPromptRequiredText(index); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1504) if (constraintText == null) { 609c7a85 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-06 12:19:51 -0700 1505) constraintText = formController.getQuestionPrompt(index) 609c7a85 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-06 12:19:51 -0700 1506) .getSpecialFormQuestionText("requiredMsg"); 609c7a85 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-06 12:19:51 -0700 1507) if (constraintText == null) { 609c7a85 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-06 12:19:51 -0700 1508) constraintText = getString(R.string.required_answer_error); 609c7a85 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-06 12:19:51 -0700 1509) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1510) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1511) break; 609c7a85 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-06 12:19:51 -0700 1512) default: 609c7a85 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-06 12:19:51 -0700 1513) return; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1514) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1515) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1516) showCustomToast(constraintText, Toast.LENGTH_SHORT); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1517) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1518) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1519) /** 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1520) * Creates a toast with the specified message. 6781ab8d src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-03-27 15:36:07 -0700 1521) * 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1522) * @param message 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1523) */ 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1524) private void showCustomToast(String message, int duration) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1525) LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1526) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1527) View view = inflater.inflate(R.layout.toast_view, null); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1528) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1529) // set the text in the view 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1530) TextView tv = (TextView) view.findViewById(R.id.message); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1531) tv.setText(message); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1532) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1533) Toast t = new Toast(this); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1534) t.setView(view); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1535) t.setDuration(duration); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1536) t.setGravity(Gravity.CENTER, 0, 0); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1537) t.show(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1538) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1539) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1540) /** 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1541) * Creates and displays a dialog asking the user if they'd like to create a 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1542) * repeat of the current group. 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1543) */ 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1544) private void createRepeatDialog() { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1545) FormController formController = Collect.getInstance() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1546) .getFormController(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1547) Collect.getInstance().getActivityLogger() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1548) .logInstanceAction(this, "createRepeatDialog", "show"); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1549) mAlertDialog = new AlertDialog.Builder(this).create(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1550) mAlertDialog.setIcon(android.R.drawable.ic_dialog_info); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1551) DialogInterface.OnClickListener repeatListener = new DialogInterface.OnClickListener() { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1552) @Override 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1553) public void onClick(DialogInterface dialog, int i) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1554) FormController formController = Collect.getInstance() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1555) .getFormController(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1556) switch (i) { 543b99b5 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-07-12 18:43:59 -0700 1557) case DialogInterface.BUTTON_POSITIVE: // yes, repeat 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1558) Collect.getInstance() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1559) .getActivityLogger() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1560) .logInstanceAction(this, "createRepeatDialog", 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1561) "addRepeat"); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1562) try { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1563) formController.newRepeat(); 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1564) } catch (Exception e) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1565) FormEntryActivity.this.createErrorDialog( 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1566) e.getMessage(), DO_NOT_EXIT); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1567) return; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1568) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1569) if (!formController.indexIsInFieldList()) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1570) // we are at a REPEAT event that does not have a 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1571) // field-list appearance 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1572) // step to the next visible field... 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1573) // which could be the start of a new repeat group... 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1574) showNextView(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1575) } else { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1576) // we are at a REPEAT event that has a field-list 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1577) // appearance 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1578) // just display this REPEAT event's group. 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1579) refreshCurrentView(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1580) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1581) break; 543b99b5 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-07-12 18:43:59 -0700 1582) case DialogInterface. BUTTON_NEGATIVE: // no, no repeat 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1583) Collect.getInstance() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1584) .getActivityLogger() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1585) .logInstanceAction(this, "createRepeatDialog", 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1586) "showNext"); 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1587) 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1588) // 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1589) // Make sure the error dialog will not disappear. 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1590) // 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1591) // When showNextView() popups an error dialog (because of a JavaRosaException) 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1592) // the issue is that the "add new repeat dialog" is referenced by mAlertDialog 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1593) // like the error dialog. When the "no repeat" is clicked, the error dialog 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1594) // is shown. Android by default dismisses the dialogs when a button is clicked, 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1595) // so instead of closing the first dialog, it closes the second. 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1596) new Thread() { 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1597) 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1598) @Override 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1599) public void run() { 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1600) FormEntryActivity.this.runOnUiThread(new Runnable() { 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1601) @Override 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1602) public void run() { 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1603) try { 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1604) Thread.sleep(500); 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1605) } catch (InterruptedException e) { 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1606) e.printStackTrace(); 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1607) } 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1608) showNextView(); 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1609) } 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1610) }); 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1611) } 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1612) }.start(); 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1613) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1614) break; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1615) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1616) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1617) }; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1618) if (formController.getLastRepeatCount() > 0) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1619) mAlertDialog.setTitle(getString(R.string.leaving_repeat_ask)); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1620) mAlertDialog.setMessage(getString(R.string.add_another_repeat, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1621) formController.getLastGroupText())); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1622) mAlertDialog.setButton(getString(R.string.add_another), 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1623) repeatListener); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1624) mAlertDialog.setButton2(getString(R.string.leave_repeat_yes), 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1625) repeatListener); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1626) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1627) } else { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1628) mAlertDialog.setTitle(getString(R.string.entering_repeat_ask)); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1629) mAlertDialog.setMessage(getString(R.string.add_repeat, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1630) formController.getLastGroupText())); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1631) mAlertDialog.setButton(getString(R.string.entering_repeat), 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1632) repeatListener); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1633) mAlertDialog.setButton2(getString(R.string.add_repeat_no), 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1634) repeatListener); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1635) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1636) mAlertDialog.setCancelable(false); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1637) mBeenSwiped = false; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1638) mAlertDialog.show(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1639) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1640) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1641) /** 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1642) * Creates and displays dialog with the given errorMsg. 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1643) */ 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1644) private void createErrorDialog(String errorMsg, final boolean shouldExit) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1645) Collect.getInstance() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1646) .getActivityLogger() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1647) .logInstanceAction(this, "createErrorDialog", 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1648) "show." + Boolean.toString(shouldExit)); 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1649) 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1650) if (mAlertDialog != null && mAlertDialog.isShowing()) { 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1651) errorMsg = mErrorMessage + "\n\n" + errorMsg; 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1652) mErrorMessage = errorMsg; 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1653) } else { 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1654) mAlertDialog = new AlertDialog.Builder(this).create(); 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1655) mErrorMessage = errorMsg; 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1656) } 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1657) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1658) mAlertDialog.setIcon(android.R.drawable.ic_dialog_info); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1659) mAlertDialog.setTitle(getString(R.string.error_occured)); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1660) mAlertDialog.setMessage(errorMsg); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1661) DialogInterface.OnClickListener errorListener = new DialogInterface.OnClickListener() { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1662) @Override 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1663) public void onClick(DialogInterface dialog, int i) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1664) switch (i) { 543b99b5 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-07-12 18:43:59 -0700 1665) case DialogInterface.BUTTON_POSITIVE: 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1666) Collect.getInstance().getActivityLogger() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1667) .logInstanceAction(this, "createErrorDialog", "OK"); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1668) if (shouldExit) { 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 1669) mErrorMessage = null; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1670) finish(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1671) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1672) break; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1673) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1674) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1675) }; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1676) mAlertDialog.setCancelable(false); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1677) mAlertDialog.setButton(getString(R.string.ok), errorListener); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1678) mBeenSwiped = false; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1679) mAlertDialog.show(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1680) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1681) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1682) /** 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1683) * Creates a confirm/cancel dialog for deleting repeats. 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1684) */ 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1685) private void createDeleteRepeatConfirmDialog() { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1686) Collect.getInstance() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1687) .getActivityLogger() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1688) .logInstanceAction(this, "createDeleteRepeatConfirmDialog", 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1689) "show"); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1690) FormController formController = Collect.getInstance() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1691) .getFormController(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1692) mAlertDialog = new AlertDialog.Builder(this).create(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1693) mAlertDialog.setIcon(android.R.drawable.ic_dialog_info); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1694) String name = formController.getLastRepeatedGroupName(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1695) int repeatcount = formController.getLastRepeatedGroupRepeatCount(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1696) if (repeatcount != -1) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1697) name += " (" + (repeatcount + 1) + ")"; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1698) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1699) mAlertDialog.setTitle(getString(R.string.delete_repeat_ask)); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1700) mAlertDialog 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1701) .setMessage(getString(R.string.delete_repeat_confirm, name)); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1702) DialogInterface.OnClickListener quitListener = new DialogInterface.OnClickListener() { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1703) @Override 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1704) public void onClick(DialogInterface dialog, int i) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1705) FormController formController = Collect.getInstance() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1706) .getFormController(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1707) switch (i) { 543b99b5 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-07-12 18:43:59 -0700 1708) case DialogInterface.BUTTON_POSITIVE: // yes 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1709) Collect.getInstance() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1710) .getActivityLogger() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1711) .logInstanceAction(this, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1712) "createDeleteRepeatConfirmDialog", "OK"); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1713) formController.deleteRepeat(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1714) showPreviousView(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1715) break; 543b99b5 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-07-12 18:43:59 -0700 1716) case DialogInterface. BUTTON_NEGATIVE: // no 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1717) Collect.getInstance() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1718) .getActivityLogger() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1719) .logInstanceAction(this, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1720) "createDeleteRepeatConfirmDialog", "cancel"); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1721) break; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1722) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1723) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1724) }; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1725) mAlertDialog.setCancelable(false); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1726) mAlertDialog.setButton(getString(R.string.discard_group), quitListener); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1727) mAlertDialog.setButton2(getString(R.string.delete_repeat_no), 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1728) quitListener); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1729) mAlertDialog.show(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1730) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1731) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1732) /** 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1733) * Saves data and writes it to disk. If exit is set, program will exit after 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1734) * save completes. Complete indicates whether the user has marked the 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1735) * isntancs as complete. If updatedSaveName is non-null, the instances 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1736) * content provider is updated with the new name 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1737) */ e3b39359 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2014-08-26 16:45:05 -0700 1738) // by default, save the current screen e3b39359 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2014-08-26 16:45:05 -0700 1739) private boolean saveDataToDisk(boolean exit, boolean complete, String updatedSaveName) { e3b39359 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2014-08-26 16:45:05 -0700 1740) return saveDataToDisk(exit, complete, updatedSaveName, true); e3b39359 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2014-08-26 16:45:05 -0700 1741) } e3b39359 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2014-08-26 16:45:05 -0700 1742) e3b39359 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2014-08-26 16:45:05 -0700 1743) // but if you want save in the background, can't be current screen e3b39359 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2014-08-26 16:45:05 -0700 1744) private boolean saveDataToDisk(boolean exit, boolean complete, String updatedSaveName, e3b39359 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2014-08-26 16:45:05 -0700 1745) boolean current) { e3b39359 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2014-08-26 16:45:05 -0700 1746) // save current answer e3b39359 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2014-08-26 16:45:05 -0700 1747) if (current) { e3b39359 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2014-08-26 16:45:05 -0700 1748) if (!saveAnswersForCurrentScreen(complete)) { e3b39359 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2014-08-26 16:45:05 -0700 1749) Toast.makeText(this, getString(R.string.data_saved_error), Toast.LENGTH_SHORT) e3b39359 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2014-08-26 16:45:05 -0700 1750) .show(); e3b39359 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2014-08-26 16:45:05 -0700 1751) return false; e3b39359 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2014-08-26 16:45:05 -0700 1752) } e3b39359 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2014-08-26 16:45:05 -0700 1753) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1754) 50c45b7d src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 09:51:05 +0200 1755) synchronized (saveDialogLock) { e3b39359 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2014-08-26 16:45:05 -0700 1756) mSaveToDiskTask = new SaveToDiskTask(getIntent().getData(), exit, complete, e3b39359 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2014-08-26 16:45:05 -0700 1757) updatedSaveName); e3b39359 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2014-08-26 16:45:05 -0700 1758) mSaveToDiskTask.setFormSavedListener(this); e3b39359 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2014-08-26 16:45:05 -0700 1759) mAutoSaved = true; e3b39359 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2014-08-26 16:45:05 -0700 1760) showDialog(SAVING_DIALOG); 50c45b7d src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 09:51:05 +0200 1761) // show dialog before we execute... e3b39359 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2014-08-26 16:45:05 -0700 1762) mSaveToDiskTask.execute(); 50c45b7d src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 09:51:05 +0200 1763) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1764) e3b39359 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2014-08-26 16:45:05 -0700 1765) return true; e3b39359 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2014-08-26 16:45:05 -0700 1766) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1767) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1768) /** 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1769) * Create a dialog with options to save and exit, save, or quit without 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1770) * saving 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1771) */ 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1772) private void createQuitDialog() { 1fd0756e src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2014-11-18 10:10:01 -0800 1773) String title; 1fd0756e src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2014-11-18 10:10:01 -0800 1774) { 1fd0756e src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2014-11-18 10:10:01 -0800 1775) FormController formController = Collect.getInstance().getFormController(); 1fd0756e src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2014-11-18 10:10:01 -0800 1776) title = (formController == null) ? null : formController.getFormTitle(); 1fd0756e src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2014-11-18 10:10:01 -0800 1777) if ( title == null ) { 1fd0756e src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2014-11-18 10:10:01 -0800 1778) title = ""; 1fd0756e src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2014-11-18 10:10:01 -0800 1779) } 1fd0756e src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2014-11-18 10:10:01 -0800 1780) } 1fd0756e src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2014-11-18 10:10:01 -0800 1781) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1782) String[] items; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1783) if (mAdminPreferences.getBoolean(AdminPreferencesActivity.KEY_SAVE_MID, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1784) true)) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1785) String[] two = { getString(R.string.keep_changes), 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1786) getString(R.string.do_not_save) }; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1787) items = two; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1788) } else { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1789) String[] one = { getString(R.string.do_not_save) }; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1790) items = one; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1791) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1792) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1793) Collect.getInstance().getActivityLogger() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1794) .logInstanceAction(this, "createQuitDialog", "show"); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1795) mAlertDialog = new AlertDialog.Builder(this) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1796) .setIcon(android.R.drawable.ic_dialog_info) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1797) .setTitle( 1fd0756e src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2014-11-18 10:10:01 -0800 1798) getString(R.string.quit_application, title)) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1799) .setNeutralButton(getString(R.string.do_not_exit), 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1800) new DialogInterface.OnClickListener() { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1801) @Override 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1802) public void onClick(DialogInterface dialog, int id) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1803) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1804) Collect.getInstance() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1805) .getActivityLogger() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1806) .logInstanceAction(this, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1807) "createQuitDialog", "cancel"); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1808) dialog.cancel(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1809) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1810) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1811) }) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1812) .setItems(items, new DialogInterface.OnClickListener() { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1813) @Override 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1814) public void onClick(DialogInterface dialog, int which) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1815) switch (which) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1816) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1817) case 0: // save and exit 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1818) // this is slightly complicated because if the 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1819) // option is disabled in 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1820) // the admin menu, then case 0 actually becomes 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1821) // 'discard and exit' 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1822) // whereas if it's enabled it's 'save and exit' 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1823) if (mAdminPreferences 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1824) .getBoolean( 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1825) AdminPreferencesActivity.KEY_SAVE_MID, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1826) true)) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1827) Collect.getInstance() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1828) .getActivityLogger() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1829) .logInstanceAction(this, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1830) "createQuitDialog", 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1831) "saveAndExit"); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1832) saveDataToDisk(EXIT, isInstanceComplete(false), 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1833) null); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1834) } else { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1835) Collect.getInstance() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1836) .getActivityLogger() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1837) .logInstanceAction(this, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1838) "createQuitDialog", 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1839) "discardAndExit"); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1840) removeTempInstance(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1841) finishReturnInstance(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1842) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1843) break; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1844) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1845) case 1: // discard changes and exit 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1846) Collect.getInstance() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1847) .getActivityLogger() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1848) .logInstanceAction(this, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1849) "createQuitDialog", 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1850) "discardAndExit"); 9d33445c src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-12 21:09:02 +0200 1851) 9d33445c src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-12 21:09:02 +0200 1852) // close all open databases of external data. 9d33445c src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-12 21:09:02 +0200 1853) Collect.getInstance().getExternalDataManager().close(); 9d33445c src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-12 21:09:02 +0200 1854) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1855) removeTempInstance(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1856) finishReturnInstance(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1857) break; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1858) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1859) case 2:// do nothing 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1860) Collect.getInstance() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1861) .getActivityLogger() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1862) .logInstanceAction(this, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1863) "createQuitDialog", "cancel"); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1864) break; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1865) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1866) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1867) }).create(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1868) mAlertDialog.show(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1869) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1870) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1871) /** 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1872) * this method cleans up unneeded files when the user selects 'discard and 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1873) * exit' 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1874) */ 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1875) private void removeTempInstance() { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1876) FormController formController = Collect.getInstance() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1877) .getFormController(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1878) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1879) // attempt to remove any scratch file 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1880) File temp = SaveToDiskTask.savepointFile(formController 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1881) .getInstancePath()); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1882) if (temp.exists()) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1883) temp.delete(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1884) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1885) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1886) String selection = InstanceColumns.INSTANCE_FILE_PATH + "=?"; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1887) String[] selectionArgs = { formController.getInstancePath() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1888) .getAbsolutePath() }; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1889) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1890) boolean erase = false; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1891) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1892) Cursor c = null; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1893) try { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1894) c = getContentResolver().query(InstanceColumns.CONTENT_URI, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1895) null, selection, selectionArgs, null); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1896) erase = (c.getCount() < 1); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1897) } finally { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1898) if (c != null) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1899) c.close(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1900) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1901) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1902) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1903) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1904) // if it's not already saved, erase everything 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1905) if (erase) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1906) // delete media first 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1907) String instanceFolder = formController.getInstancePath() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1908) .getParent(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1909) Log.i(t, "attempting to delete: " + instanceFolder); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1910) int images = MediaUtils 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1911) .deleteImagesInFolderFromMediaProvider(formController 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1912) .getInstancePath().getParentFile()); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1913) int audio = MediaUtils 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1914) .deleteAudioInFolderFromMediaProvider(formController 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1915) .getInstancePath().getParentFile()); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1916) int video = MediaUtils 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1917) .deleteVideoInFolderFromMediaProvider(formController 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1918) .getInstancePath().getParentFile()); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1919) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1920) Log.i(t, "removed from content providers: " + images 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1921) + " image files, " + audio + " audio files," + " and " 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1922) + video + " video files."); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1923) File f = new File(instanceFolder); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1924) if (f.exists() && f.isDirectory()) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1925) for (File del : f.listFiles()) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1926) Log.i(t, "deleting file: " + del.getAbsolutePath()); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1927) del.delete(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1928) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1929) f.delete(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1930) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1931) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1932) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1933) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1934) /** 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1935) * Confirm clear answer dialog 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1936) */ 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1937) private void createClearDialog(final QuestionWidget qw) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1938) Collect.getInstance() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1939) .getActivityLogger() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1940) .logInstanceAction(this, "createClearDialog", "show", 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1941) qw.getPrompt().getIndex()); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1942) mAlertDialog = new AlertDialog.Builder(this).create(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1943) mAlertDialog.setIcon(android.R.drawable.ic_dialog_info); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1944) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1945) mAlertDialog.setTitle(getString(R.string.clear_answer_ask)); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1946) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1947) String question = qw.getPrompt().getLongText(); 6781ab8d src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-03-27 15:36:07 -0700 1948) if (question == null) { 6781ab8d src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-03-27 15:36:07 -0700 1949) question = ""; 6781ab8d src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-03-27 15:36:07 -0700 1950) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1951) if (question.length() > 50) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1952) question = question.substring(0, 50) + "..."; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1953) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1954) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1955) mAlertDialog.setMessage(getString(R.string.clearanswer_confirm, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1956) question)); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1957) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1958) DialogInterface.OnClickListener quitListener = new DialogInterface.OnClickListener() { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1959) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1960) @Override 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1961) public void onClick(DialogInterface dialog, int i) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1962) switch (i) { 543b99b5 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-07-12 18:43:59 -0700 1963) case DialogInterface.BUTTON_POSITIVE: // yes 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1964) Collect.getInstance() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1965) .getActivityLogger() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1966) .logInstanceAction(this, "createClearDialog", 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1967) "clearAnswer", qw.getPrompt().getIndex()); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1968) clearAnswer(qw); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1969) saveAnswersForCurrentScreen(DO_NOT_EVALUATE_CONSTRAINTS); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1970) break; 543b99b5 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-07-12 18:43:59 -0700 1971) case DialogInterface. BUTTON_NEGATIVE: // no 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1972) Collect.getInstance() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1973) .getActivityLogger() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1974) .logInstanceAction(this, "createClearDialog", 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1975) "cancel", qw.getPrompt().getIndex()); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1976) break; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1977) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1978) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1979) }; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1980) mAlertDialog.setCancelable(false); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1981) mAlertDialog 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1982) .setButton(getString(R.string.discard_answer), quitListener); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1983) mAlertDialog.setButton2(getString(R.string.clear_answer_no), 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1984) quitListener); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1985) mAlertDialog.show(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1986) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1987) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1988) /** 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1989) * Creates and displays a dialog allowing the user to set the language for 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1990) * the form. 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1991) */ 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1992) private void createLanguageDialog() { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1993) Collect.getInstance().getActivityLogger() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1994) .logInstanceAction(this, "createLanguageDialog", "show"); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1995) FormController formController = Collect.getInstance() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1996) .getFormController(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1997) final String[] languages = formController.getLanguages(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1998) int selected = -1; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 1999) if (languages != null) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2000) String language = formController.getLanguage(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2001) for (int i = 0; i < languages.length; i++) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2002) if (language.equals(languages[i])) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2003) selected = i; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2004) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2005) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2006) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2007) mAlertDialog = new AlertDialog.Builder(this) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2008) .setSingleChoiceItems(languages, selected, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2009) new DialogInterface.OnClickListener() { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2010) @Override 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2011) public void onClick(DialogInterface dialog, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2012) int whichButton) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2013) FormController formController = Collect 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2014) .getInstance().getFormController(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2015) // Update the language in the content provider 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2016) // when selecting a new 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2017) // language 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2018) ContentValues values = new ContentValues(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2019) values.put(FormsColumns.LANGUAGE, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2020) languages[whichButton]); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2021) String selection = FormsColumns.FORM_FILE_PATH 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2022) + "=?"; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2023) String selectArgs[] = { mFormPath }; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2024) int updated = getContentResolver().update( 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2025) FormsColumns.CONTENT_URI, values, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2026) selection, selectArgs); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2027) Log.i(t, "Updated language to: " 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2028) + languages[whichButton] + " in " 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2029) + updated + " rows"); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2030) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2031) Collect.getInstance() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2032) .getActivityLogger() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2033) .logInstanceAction( 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2034) this, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2035) "createLanguageDialog", 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2036) "changeLanguage." 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2037) + languages[whichButton]); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2038) formController 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2039) .setLanguage(languages[whichButton]); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2040) dialog.dismiss(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2041) if (formController.currentPromptIsQuestion()) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2042) saveAnswersForCurrentScreen(DO_NOT_EVALUATE_CONSTRAINTS); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2043) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2044) refreshCurrentView(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2045) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2046) }) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2047) .setTitle(getString(R.string.change_language)) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2048) .setNegativeButton(getString(R.string.do_not_change), 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2049) new DialogInterface.OnClickListener() { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2050) @Override 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2051) public void onClick(DialogInterface dialog, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2052) int whichButton) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2053) Collect.getInstance() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2054) .getActivityLogger() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2055) .logInstanceAction(this, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2056) "createLanguageDialog", 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2057) "cancel"); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2058) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2059) }).create(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2060) mAlertDialog.show(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2061) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2062) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2063) /** 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2064) * We use Android's dialog management for loading/saving progress dialogs 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2065) */ 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2066) @Override 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2067) protected Dialog onCreateDialog(int id) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2068) switch (id) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2069) case PROGRESS_DIALOG: 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2070) Log.e(t, "Creating PROGRESS_DIALOG"); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2071) Collect.getInstance() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2072) .getActivityLogger() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2073) .logInstanceAction(this, "onCreateDialog.PROGRESS_DIALOG", 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2074) "show"); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2075) mProgressDialog = new ProgressDialog(this); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2076) DialogInterface.OnClickListener loadingButtonListener = new DialogInterface.OnClickListener() { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2077) @Override 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2078) public void onClick(DialogInterface dialog, int which) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2079) Collect.getInstance() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2080) .getActivityLogger() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2081) .logInstanceAction(this, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2082) "onCreateDialog.PROGRESS_DIALOG", "cancel"); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2083) dialog.dismiss(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2084) mFormLoaderTask.setFormLoaderListener(null); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2085) FormLoaderTask t = mFormLoaderTask; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2086) mFormLoaderTask = null; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2087) t.cancel(true); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2088) t.destroy(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2089) finish(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2090) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2091) }; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2092) mProgressDialog.setIcon(android.R.drawable.ic_dialog_info); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2093) mProgressDialog.setTitle(getString(R.string.loading_form)); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2094) mProgressDialog.setMessage(getString(R.string.please_wait)); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2095) mProgressDialog.setIndeterminate(true); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2096) mProgressDialog.setCancelable(false); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2097) mProgressDialog.setButton(getString(R.string.cancel_loading_form), 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2098) loadingButtonListener); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2099) return mProgressDialog; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2100) case SAVING_DIALOG: 50c45b7d src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 09:51:05 +0200 2101) Log.e(t, "Creating SAVING_DIALOG"); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2102) Collect.getInstance() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2103) .getActivityLogger() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2104) .logInstanceAction(this, "onCreateDialog.SAVING_DIALOG", 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2105) "show"); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2106) mProgressDialog = new ProgressDialog(this); 2821301a src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2014-03-12 09:25:36 -0700 2107) DialogInterface.OnClickListener cancelSavingButtonListener = new DialogInterface.OnClickListener() { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2108) @Override 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2109) public void onClick(DialogInterface dialog, int which) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2110) Collect.getInstance() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2111) .getActivityLogger() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2112) .logInstanceAction(this, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2113) "onCreateDialog.SAVING_DIALOG", "cancel"); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2114) dialog.dismiss(); 50c45b7d src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 09:51:05 +0200 2115) cancelSaveToDiskTask(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2116) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2117) }; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2118) mProgressDialog.setIcon(android.R.drawable.ic_dialog_info); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2119) mProgressDialog.setTitle(getString(R.string.saving_form)); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2120) mProgressDialog.setMessage(getString(R.string.please_wait)); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2121) mProgressDialog.setIndeterminate(true); 50c45b7d src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 09:51:05 +0200 2122) mProgressDialog.setOnDismissListener(new DialogInterface.OnDismissListener() { 50c45b7d src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 09:51:05 +0200 2123) @Override 50c45b7d src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 09:51:05 +0200 2124) public void onDismiss(DialogInterface dialog) { 2821301a src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2014-03-12 09:25:36 -0700 2125) Collect.getInstance() 2821301a src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2014-03-12 09:25:36 -0700 2126) .getActivityLogger() 2821301a src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2014-03-12 09:25:36 -0700 2127) .logInstanceAction(this, 2821301a src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2014-03-12 09:25:36 -0700 2128) "onCreateDialog.SAVING_DIALOG", "OnDismissListener"); 50c45b7d src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 09:51:05 +0200 2129) cancelSaveToDiskTask(); 50c45b7d src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 09:51:05 +0200 2130) } 50c45b7d src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 09:51:05 +0200 2131) }); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2132) return mProgressDialog; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2133) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2134) return null; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2135) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2136) 50c45b7d src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 09:51:05 +0200 2137) private void cancelSaveToDiskTask() { 50c45b7d src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 09:51:05 +0200 2138) synchronized (saveDialogLock) { 50c45b7d src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 09:51:05 +0200 2139) mSaveToDiskTask.setFormSavedListener(null); 50c45b7d src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 09:51:05 +0200 2140) boolean cancelled = mSaveToDiskTask.cancel(true); 50c45b7d src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 09:51:05 +0200 2141) Log.w(t, "Cancelled SaveToDiskTask! (" + cancelled + ")"); 50c45b7d src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 09:51:05 +0200 2142) mSaveToDiskTask = null; 50c45b7d src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 09:51:05 +0200 2143) } 50c45b7d src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 09:51:05 +0200 2144) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2145) /** 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2146) * Dismiss any showing dialogs that we manually manage. 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2147) */ 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2148) private void dismissDialogs() { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2149) Log.e(t, "Dismiss dialogs"); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2150) if (mAlertDialog != null && mAlertDialog.isShowing()) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2151) mAlertDialog.dismiss(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2152) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2153) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2154) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2155) @Override 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2156) protected void onPause() { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2157) FormController formController = Collect.getInstance() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2158) .getFormController(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2159) dismissDialogs(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2160) // make sure we're not already saving to disk. if we are, currentPrompt 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2161) // is getting constantly updated 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2162) if (mSaveToDiskTask == null 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2163) || mSaveToDiskTask.getStatus() == AsyncTask.Status.FINISHED) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2164) if (mCurrentView != null && formController != null 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2165) && formController.currentPromptIsQuestion()) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2166) saveAnswersForCurrentScreen(DO_NOT_EVALUATE_CONSTRAINTS); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2167) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2168) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2169) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2170) super.onPause(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2171) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2172) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2173) @Override 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2174) protected void onResume() { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2175) super.onResume(); 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 2176) 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 2177) if (mErrorMessage != null) { 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 2178) if (mAlertDialog != null && !mAlertDialog.isShowing()) { 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 2179) createErrorDialog(mErrorMessage, EXIT); 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 2180) } else { 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 2181) return; 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 2182) } 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 2183) } 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 2184) 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 2185) FormController formController = Collect.getInstance().getFormController(); 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 2186) Collect.getInstance().getActivityLogger().open(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2187) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2188) if (mFormLoaderTask != null) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2189) mFormLoaderTask.setFormLoaderListener(this); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2190) if (formController == null 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2191) && mFormLoaderTask.getStatus() == AsyncTask.Status.FINISHED) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2192) FormController fec = mFormLoaderTask.getFormController(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2193) if (fec != null) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2194) loadingComplete(mFormLoaderTask); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2195) } else { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2196) dismissDialog(PROGRESS_DIALOG); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2197) FormLoaderTask t = mFormLoaderTask; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2198) mFormLoaderTask = null; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2199) t.cancel(true); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2200) t.destroy(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2201) // there is no formController -- fire MainMenu activity? 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2202) startActivity(new Intent(this, MainMenuActivity.class)); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2203) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2204) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2205) } else { 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 2206) if (formController == null) { 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 2207) // there is no formController -- fire MainMenu activity? 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 2208) startActivity(new Intent(this, MainMenuActivity.class)); 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 2209) return; 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 2210) } else { 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 2211) refreshCurrentView(); 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 2212) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2213) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2214) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2215) if (mSaveToDiskTask != null) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2216) mSaveToDiskTask.setFormSavedListener(this); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2217) } 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2218) 60c6921a src/org/odk/collect/android/activities/FormEntryActivity.java (Yaw Anokwa 2013-03-20 12:04:25 -0700 2219) // only check the buttons if it's enabled in preferences 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2220) SharedPreferences sharedPreferences = PreferenceManager 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2221) .getDefaultSharedPreferences(this); c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 2222) String navigation = sharedPreferences.getString( c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 2223) PreferencesActivity.KEY_NAVIGATION, c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 2224) PreferencesActivity.KEY_NAVIGATION); 60c6921a src/org/odk/collect/android/activities/FormEntryActivity.java (Yaw Anokwa 2013-03-20 12:04:25 -0700 2225) Boolean showButtons = false; 8513b928 src/org/odk/collect/android/activities/FormEntryActivity.java (Yaw Anokwa 2013-03-22 15:55:49 -0700 2226) if (navigation.contains(PreferencesActivity.NAVIGATION_BUTTONS)) { 60c6921a src/org/odk/collect/android/activities/FormEntryActivity.java (Yaw Anokwa 2013-03-20 12:04:25 -0700 2227) showButtons = true; 60c6921a src/org/odk/collect/android/activities/FormEntryActivity.java (Yaw Anokwa 2013-03-20 12:04:25 -0700 2228) } 6781ab8d src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-03-27 15:36:07 -0700 2229) 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2230) if (showButtons) { 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2231) mBackButton.setVisibility(View.VISIBLE); 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2232) mNextButton.setVisibility(View.VISIBLE); 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2233) } else { 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2234) mBackButton.setVisibility(View.GONE); 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2235) mNextButton.setVisibility(View.GONE); 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2236) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2237) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2238) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2239) @Override 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2240) public boolean onKeyDown(int keyCode, KeyEvent event) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2241) switch (keyCode) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2242) case KeyEvent.KEYCODE_BACK: 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2243) Collect.getInstance().getActivityLogger() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2244) .logInstanceAction(this, "onKeyDown.KEYCODE_BACK", "quit"); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2245) createQuitDialog(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2246) return true; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2247) case KeyEvent.KEYCODE_DPAD_RIGHT: 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2248) if (event.isAltPressed() && !mBeenSwiped) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2249) mBeenSwiped = true; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2250) Collect.getInstance() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2251) .getActivityLogger() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2252) .logInstanceAction(this, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2253) "onKeyDown.KEYCODE_DPAD_RIGHT", "showNext"); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2254) showNextView(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2255) return true; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2256) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2257) break; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2258) case KeyEvent.KEYCODE_DPAD_LEFT: 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2259) if (event.isAltPressed() && !mBeenSwiped) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2260) mBeenSwiped = true; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2261) Collect.getInstance() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2262) .getActivityLogger() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2263) .logInstanceAction(this, "onKeyDown.KEYCODE_DPAD_LEFT", 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2264) "showPrevious"); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2265) showPreviousView(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2266) return true; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2267) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2268) break; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2269) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2270) return super.onKeyDown(keyCode, event); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2271) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2272) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2273) @Override 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2274) protected void onDestroy() { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2275) if (mFormLoaderTask != null) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2276) mFormLoaderTask.setFormLoaderListener(null); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2277) // We have to call cancel to terminate the thread, otherwise it 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2278) // lives on and retains the FEC in memory. 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2279) // but only if it's done, otherwise the thread never returns 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2280) if (mFormLoaderTask.getStatus() == AsyncTask.Status.FINISHED) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2281) FormLoaderTask t = mFormLoaderTask; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2282) mFormLoaderTask = null; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2283) t.cancel(true); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2284) t.destroy(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2285) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2286) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2287) if (mSaveToDiskTask != null) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2288) mSaveToDiskTask.setFormSavedListener(null); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2289) // We have to call cancel to terminate the thread, otherwise it 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2290) // lives on and retains the FEC in memory. 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2291) if (mSaveToDiskTask.getStatus() == AsyncTask.Status.FINISHED) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2292) mSaveToDiskTask.cancel(true); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2293) mSaveToDiskTask = null; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2294) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2295) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2296) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2297) super.onDestroy(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2298) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2299) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2300) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2301) private int mAnimationCompletionSet = 0; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2302) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2303) private void afterAllAnimations() { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2304) Log.i(t, "afterAllAnimations"); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2305) if (mStaleView != null) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2306) if (mStaleView instanceof ODKView) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2307) // http://code.google.com/p/android/issues/detail?id=8488 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2308) ((ODKView) mStaleView).recycleDrawables(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2309) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2310) mStaleView = null; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2311) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2312) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2313) if (mCurrentView instanceof ODKView) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2314) ((ODKView) mCurrentView).setFocus(this); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2315) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2316) mBeenSwiped = false; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2317) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2318) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2319) @Override 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2320) public void onAnimationEnd(Animation animation) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2321) Log.i(t, "onAnimationEnd " 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2322) + ((animation == mInAnimation) ? "in" 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2323) : ((animation == mOutAnimation) ? "out" : "other"))); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2324) if (mInAnimation == animation) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2325) mAnimationCompletionSet |= 1; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2326) } else if (mOutAnimation == animation) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2327) mAnimationCompletionSet |= 2; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2328) } else { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2329) Log.e(t, "Unexpected animation"); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2330) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2331) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2332) if (mAnimationCompletionSet == 3) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2333) this.afterAllAnimations(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2334) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2335) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2336) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2337) @Override 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2338) public void onAnimationRepeat(Animation animation) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2339) // Added by AnimationListener interface. 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2340) Log.i(t, "onAnimationRepeat " 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2341) + ((animation == mInAnimation) ? "in" 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2342) : ((animation == mOutAnimation) ? "out" : "other"))); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2343) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2344) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2345) @Override 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2346) public void onAnimationStart(Animation animation) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2347) // Added by AnimationListener interface. 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2348) Log.i(t, "onAnimationStart " 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2349) + ((animation == mInAnimation) ? "in" 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2350) : ((animation == mOutAnimation) ? "out" : "other"))); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2351) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2352) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2353) /** 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2354) * loadingComplete() is called by FormLoaderTask once it has finished 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2355) * loading a form. 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2356) */ 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2357) @Override 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2358) public void loadingComplete(FormLoaderTask task) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2359) dismissDialog(PROGRESS_DIALOG); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2360) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2361) FormController formController = task.getFormController(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2362) boolean pendingActivityResult = task.hasPendingActivityResult(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2363) boolean hasUsedSavepoint = task.hasUsedSavepoint(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2364) int requestCode = task.getRequestCode(); // these are bogus if 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2365) // pendingActivityResult is 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2366) // false 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2367) int resultCode = task.getResultCode(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2368) Intent intent = task.getIntent(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2369) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2370) mFormLoaderTask.setFormLoaderListener(null); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2371) FormLoaderTask t = mFormLoaderTask; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2372) mFormLoaderTask = null; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2373) t.cancel(true); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2374) t.destroy(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2375) Collect.getInstance().setFormController(formController); c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 2376) CompatibilityUtils.invalidateOptionsMenu(this); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2377) 9d33445c src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-12 21:09:02 +0200 2378) Collect.getInstance().setExternalDataManager(task.getExternalDataManager()); 9d33445c src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-12 21:09:02 +0200 2379) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2380) // Set the language if one has already been set in the past 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2381) String[] languageTest = formController.getLanguages(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2382) if (languageTest != null) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2383) String defaultLanguage = formController.getLanguage(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2384) String newLanguage = ""; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2385) String selection = FormsColumns.FORM_FILE_PATH + "=?"; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2386) String selectArgs[] = { mFormPath }; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2387) Cursor c = null; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2388) try { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2389) c = getContentResolver().query(FormsColumns.CONTENT_URI, null, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2390) selection, selectArgs, null); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2391) if (c.getCount() == 1) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2392) c.moveToFirst(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2393) newLanguage = c.getString(c 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2394) .getColumnIndex(FormsColumns.LANGUAGE)); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2395) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2396) } finally { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2397) if (c != null) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2398) c.close(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2399) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2400) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2401) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2402) // if somehow we end up with a bad language, set it to the default 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2403) try { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2404) formController.setLanguage(newLanguage); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2405) } catch (Exception e) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2406) formController.setLanguage(defaultLanguage); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2407) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2408) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2409) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2410) if (pendingActivityResult) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2411) // set the current view to whatever group we were at... 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2412) refreshCurrentView(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2413) // process the pending activity request... 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2414) onActivityResult(requestCode, resultCode, intent); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2415) return; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2416) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2417) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2418) // it can be a normal flow for a pending activity result to restore from 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2419) // a savepoint 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2420) // (the call flow handled by the above if statement). For all other use 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2421) // cases, the 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2422) // user should be notified, as it means they wandered off doing other 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2423) // things then 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2424) // returned to ODK Collect and chose Edit Saved Form, but that the 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2425) // savepoint for that 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2426) // form is newer than the last saved version of their form data. 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2427) if (hasUsedSavepoint) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2428) runOnUiThread(new Runnable() { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2429) @Override 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2430) public void run() { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2431) Toast.makeText(FormEntryActivity.this, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2432) getString(R.string.savepoint_used), 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2433) Toast.LENGTH_LONG).show(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2434) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2435) }); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2436) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2437) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2438) // Set saved answer path 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2439) if (formController.getInstancePath() == null) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2440) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2441) // Create new answer folder. 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2442) String time = new SimpleDateFormat("yyyy-MM-dd_HH-mm-ss", 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2443) Locale.ENGLISH).format(Calendar.getInstance().getTime()); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2444) String file = mFormPath.substring(mFormPath.lastIndexOf('/') + 1, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2445) mFormPath.lastIndexOf('.')); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2446) String path = Collect.INSTANCES_PATH + File.separator + file + "_" 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2447) + time; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2448) if (FileUtils.createFolder(path)) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2449) formController.setInstancePath(new File(path + File.separator 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2450) + file + "_" + time + ".xml")); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2451) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2452) } else { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2453) Intent reqIntent = getIntent(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2454) boolean showFirst = reqIntent.getBooleanExtra("start", false); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2455) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2456) if (!showFirst) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2457) // we've just loaded a saved form, so start in the hierarchy 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2458) // view 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2459) Intent i = new Intent(this, FormHierarchyActivity.class); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2460) startActivity(i); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2461) return; // so we don't show the intro screen before jumping to 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2462) // the hierarchy 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2463) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2464) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2465) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2466) refreshCurrentView(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2467) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2468) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2469) /** 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2470) * called by the FormLoaderTask if something goes wrong. 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2471) */ 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2472) @Override 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2473) public void loadingError(String errorMsg) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2474) dismissDialog(PROGRESS_DIALOG); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2475) if (errorMsg != null) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2476) createErrorDialog(errorMsg, EXIT); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2477) } else { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2478) createErrorDialog(getString(R.string.parse_error), EXIT); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2479) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2480) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2481) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2482) /** 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2483) * Called by SavetoDiskTask if everything saves correctly. 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2484) */ 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2485) @Override 396865c2 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 15:40:52 +0200 2486) public void savingComplete(SaveResult saveResult) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2487) dismissDialog(SAVING_DIALOG); 396865c2 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 15:40:52 +0200 2488) 396865c2 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 15:40:52 +0200 2489) int saveStatus = saveResult.getSaveResult(); 396865c2 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 15:40:52 +0200 2490) switch (saveStatus) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2491) case SaveToDiskTask.SAVED: 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2492) Toast.makeText(this, getString(R.string.data_saved_ok), 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2493) Toast.LENGTH_SHORT).show(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2494) sendSavedBroadcast(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2495) break; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2496) case SaveToDiskTask.SAVED_AND_EXIT: 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2497) Toast.makeText(this, getString(R.string.data_saved_ok), 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2498) Toast.LENGTH_SHORT).show(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2499) sendSavedBroadcast(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2500) finishReturnInstance(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2501) break; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2502) case SaveToDiskTask.SAVE_ERROR: 396865c2 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 15:40:52 +0200 2503) String message; 396865c2 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 15:40:52 +0200 2504) if (saveResult.getSaveErrorMessage() != null) { 396865c2 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 15:40:52 +0200 2505) message = getString(R.string.data_saved_error) + ": " + saveResult.getSaveErrorMessage(); 396865c2 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 15:40:52 +0200 2506) } else { 396865c2 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 15:40:52 +0200 2507) message = getString(R.string.data_saved_error); 396865c2 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 15:40:52 +0200 2508) } 396865c2 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 15:40:52 +0200 2509) Toast.makeText(this, message, 396865c2 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 15:40:52 +0200 2510) Toast.LENGTH_LONG).show(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2511) break; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2512) case FormEntryController.ANSWER_CONSTRAINT_VIOLATED: 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2513) case FormEntryController.ANSWER_REQUIRED_BUT_EMPTY: 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2514) refreshCurrentView(); 2821301a src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2014-03-12 09:25:36 -0700 2515) 0133a442 src/org/odk/collect/android/activities/FormEntryActivity.java (tomsmyth 2013-07-11 11:42:01 -0400 2516) // get constraint behavior preference value with appropriate default 0133a442 src/org/odk/collect/android/activities/FormEntryActivity.java (tomsmyth 2013-07-11 11:42:01 -0400 2517) String constraint_behavior = PreferenceManager.getDefaultSharedPreferences(this) 2821301a src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2014-03-12 09:25:36 -0700 2518) .getString(PreferencesActivity.KEY_CONSTRAINT_BEHAVIOR, 0133a442 src/org/odk/collect/android/activities/FormEntryActivity.java (tomsmyth 2013-07-11 11:42:01 -0400 2519) PreferencesActivity.CONSTRAINT_BEHAVIOR_DEFAULT); 2821301a src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2014-03-12 09:25:36 -0700 2520) 0133a442 src/org/odk/collect/android/activities/FormEntryActivity.java (tomsmyth 2013-07-11 11:42:01 -0400 2521) // an answer constraint was violated, so we need to display the proper toast(s) 0133a442 src/org/odk/collect/android/activities/FormEntryActivity.java (tomsmyth 2013-07-11 11:42:01 -0400 2522) // if constraint behavior is on_swipe, this will happen if we do a 'swipe' to the next question 0133a442 src/org/odk/collect/android/activities/FormEntryActivity.java (tomsmyth 2013-07-11 11:42:01 -0400 2523) if (constraint_behavior.equals(PreferencesActivity.CONSTRAINT_BEHAVIOR_ON_SWIPE)) 0133a442 src/org/odk/collect/android/activities/FormEntryActivity.java (tomsmyth 2013-07-11 11:42:01 -0400 2524) next(); 0133a442 src/org/odk/collect/android/activities/FormEntryActivity.java (tomsmyth 2013-07-11 11:42:01 -0400 2525) // otherwise, we can get the proper toast(s) by saving with constraint check 0133a442 src/org/odk/collect/android/activities/FormEntryActivity.java (tomsmyth 2013-07-11 11:42:01 -0400 2526) else 0133a442 src/org/odk/collect/android/activities/FormEntryActivity.java (tomsmyth 2013-07-11 11:42:01 -0400 2527) saveAnswersForCurrentScreen(EVALUATE_CONSTRAINTS); 2821301a src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2014-03-12 09:25:36 -0700 2528) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2529) break; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2530) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2531) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2532) 9d33445c src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-12 21:09:02 +0200 2533) @Override 9d33445c src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-12 21:09:02 +0200 2534) public void onProgressStep(String stepMessage) { 9d33445c src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-12 21:09:02 +0200 2535) this.stepMessage = stepMessage; 9d33445c src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-12 21:09:02 +0200 2536) if (mProgressDialog != null) { 9d33445c src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-12 21:09:02 +0200 2537) mProgressDialog.setMessage(getString(R.string.please_wait) + "\n\n" + stepMessage); 9d33445c src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-12 21:09:02 +0200 2538) } 9d33445c src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-12 21:09:02 +0200 2539) } 9d33445c src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-12 21:09:02 +0200 2540) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2541) /** 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2542) * Attempts to save an answer to the specified index. 6781ab8d src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-03-27 15:36:07 -0700 2543) * 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2544) * @param answer 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2545) * @param index 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2546) * @param evaluateConstraints 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2547) * @return status as determined in FormEntryController 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2548) */ 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2549) public int saveAnswer(IAnswerData answer, FormIndex index, 7b0922d8 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 14:10:19 +0200 2550) boolean evaluateConstraints) throws JavaRosaException { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2551) FormController formController = Collect.getInstance() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2552) .getFormController(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2553) if (evaluateConstraints) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2554) return formController.answerQuestion(index, answer); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2555) } else { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2556) formController.saveAnswer(index, answer); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2557) return FormEntryController.ANSWER_OK; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2558) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2559) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2560) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2561) /** 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2562) * Checks the database to determine if the current instance being edited has 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2563) * already been 'marked completed'. A form can be 'unmarked' complete and 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2564) * then resaved. 6781ab8d src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-03-27 15:36:07 -0700 2565) * 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2566) * @return true if form has been marked completed, false otherwise. 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2567) */ 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2568) private boolean isInstanceComplete(boolean end) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2569) FormController formController = Collect.getInstance() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2570) .getFormController(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2571) // default to false if we're mid form 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2572) boolean complete = false; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2573) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2574) // if we're at the end of the form, then check the preferences 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2575) if (end) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2576) // First get the value from the preferences 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2577) SharedPreferences sharedPreferences = PreferenceManager 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2578) .getDefaultSharedPreferences(this); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2579) complete = sharedPreferences.getBoolean( 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2580) PreferencesActivity.KEY_COMPLETED_DEFAULT, true); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2581) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2582) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2583) // Then see if we've already marked this form as complete before 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2584) String selection = InstanceColumns.INSTANCE_FILE_PATH + "=?"; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2585) String[] selectionArgs = { formController.getInstancePath() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2586) .getAbsolutePath() }; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2587) Cursor c = null; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2588) try { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2589) c = getContentResolver().query(InstanceColumns.CONTENT_URI, null, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2590) selection, selectionArgs, null); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2591) if (c != null && c.getCount() > 0) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2592) c.moveToFirst(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2593) String status = c.getString(c 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2594) .getColumnIndex(InstanceColumns.STATUS)); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2595) if (InstanceProviderAPI.STATUS_COMPLETE.compareTo(status) == 0) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2596) complete = true; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2597) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2598) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2599) } finally { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2600) if (c != null) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2601) c.close(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2602) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2603) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2604) return complete; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2605) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2606) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2607) public void next() { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2608) if (!mBeenSwiped) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2609) mBeenSwiped = true; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2610) showNextView(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2611) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2612) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2613) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2614) /** 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2615) * Returns the instance that was just filled out to the calling activity, if 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2616) * requested. 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2617) */ 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2618) private void finishReturnInstance() { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2619) FormController formController = Collect.getInstance() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2620) .getFormController(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2621) String action = getIntent().getAction(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2622) if (Intent.ACTION_PICK.equals(action) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2623) || Intent.ACTION_EDIT.equals(action)) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2624) // caller is waiting on a picked form 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2625) String selection = InstanceColumns.INSTANCE_FILE_PATH + "=?"; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2626) String[] selectionArgs = { formController.getInstancePath() 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2627) .getAbsolutePath() }; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2628) Cursor c = null; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2629) try { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2630) c = getContentResolver().query(InstanceColumns.CONTENT_URI, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2631) null, selection, selectionArgs, null); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2632) if (c.getCount() > 0) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2633) // should only be one... 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2634) c.moveToFirst(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2635) String id = c.getString(c 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2636) .getColumnIndex(InstanceColumns._ID)); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2637) Uri instance = Uri.withAppendedPath( 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2638) InstanceColumns.CONTENT_URI, id); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2639) setResult(RESULT_OK, new Intent().setData(instance)); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2640) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2641) } finally { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2642) if (c != null) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2643) c.close(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2644) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2645) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2646) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2647) finish(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2648) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2649) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2650) @Override 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2651) public boolean onDown(MotionEvent e) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2652) return false; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2653) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2654) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2655) @Override 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2656) public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2657) float velocityY) { 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2658) // only check the swipe if it's enabled in preferences 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2659) SharedPreferences sharedPreferences = PreferenceManager 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2660) .getDefaultSharedPreferences(this); c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 2661) String navigation = sharedPreferences.getString( c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 2662) PreferencesActivity.KEY_NAVIGATION, c9f41352 src/org/odk/collect/android/activities/FormEntryActivity.java (mitchellsundt 2013-06-20 17:12:49 -0700 2663) PreferencesActivity.NAVIGATION_SWIPE); 8513b928 src/org/odk/collect/android/activities/FormEntryActivity.java (Yaw Anokwa 2013-03-22 15:55:49 -0700 2664) Boolean doSwipe = false; 8513b928 src/org/odk/collect/android/activities/FormEntryActivity.java (Yaw Anokwa 2013-03-22 15:55:49 -0700 2665) if (navigation.contains(PreferencesActivity.NAVIGATION_SWIPE)) { 60c6921a src/org/odk/collect/android/activities/FormEntryActivity.java (Yaw Anokwa 2013-03-20 12:04:25 -0700 2666) doSwipe = true; 60c6921a src/org/odk/collect/android/activities/FormEntryActivity.java (Yaw Anokwa 2013-03-20 12:04:25 -0700 2667) } 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2668) if (doSwipe) { 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2669) // Looks for user swipes. If the user has swiped, move to the 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2670) // appropriate screen. 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2671) 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2672) // for all screens a swipe is left/right of at least 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2673) // .25" and up/down of less than .25" 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2674) // OR left/right of > .5" 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2675) DisplayMetrics dm = new DisplayMetrics(); 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2676) getWindowManager().getDefaultDisplay().getMetrics(dm); 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2677) int xPixelLimit = (int) (dm.xdpi * .25); 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2678) int yPixelLimit = (int) (dm.ydpi * .25); 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2679) 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2680) if (mCurrentView instanceof ODKView) { 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2681) if (((ODKView) mCurrentView).suppressFlingGesture(e1, e2, 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2682) velocityX, velocityY)) { 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2683) return false; 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2684) } 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2685) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2686) 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2687) if (mBeenSwiped) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2688) return false; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2689) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2690) 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2691) if ((Math.abs(e1.getX() - e2.getX()) > xPixelLimit && Math.abs(e1 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2692) .getY() - e2.getY()) < yPixelLimit) 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2693) || Math.abs(e1.getX() - e2.getX()) > xPixelLimit * 2) { 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2694) mBeenSwiped = true; 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2695) if (velocityX > 0) { 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2696) if (e1.getX() > e2.getX()) { 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2697) Log.e(t, 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2698) "showNextView VelocityX is bogus! " + e1.getX() 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2699) + " > " + e2.getX()); 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2700) Collect.getInstance().getActivityLogger() 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2701) .logInstanceAction(this, "onFling", "showNext"); 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2702) showNextView(); 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2703) } else { 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2704) Collect.getInstance() 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2705) .getActivityLogger() 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2706) .logInstanceAction(this, "onFling", 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2707) "showPrevious"); 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2708) showPreviousView(); 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2709) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2710) } else { 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2711) if (e1.getX() < e2.getX()) { 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2712) Log.e(t, 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2713) "showPreviousView VelocityX is bogus! " 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2714) + e1.getX() + " < " + e2.getX()); 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2715) Collect.getInstance() 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2716) .getActivityLogger() 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2717) .logInstanceAction(this, "onFling", 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2718) "showPrevious"); 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2719) showPreviousView(); 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2720) } else { 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2721) Collect.getInstance().getActivityLogger() 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2722) .logInstanceAction(this, "onFling", "showNext"); 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2723) showNextView(); 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2724) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2725) } 137c2c42 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 17:34:05 -0700 2726) return true; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2727) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2728) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2729) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2730) return false; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2731) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2732) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2733) @Override 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2734) public void onLongPress(MotionEvent e) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2735) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2736) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2737) @Override 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2738) public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2739) float distanceY) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2740) // The onFling() captures the 'up' event so our view thinks it gets long 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2741) // pressed. 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2742) // We don't wnat that, so cancel it. 0bce3ff7 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 09:43:52 +0200 2743) if (mCurrentView != null) { 0bce3ff7 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 09:43:52 +0200 2744) mCurrentView.cancelLongPress(); 0bce3ff7 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-13 09:43:52 +0200 2745) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2746) return false; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2747) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2748) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2749) @Override 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2750) public void onShowPress(MotionEvent e) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2751) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2752) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2753) @Override 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2754) public boolean onSingleTapUp(MotionEvent e) { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2755) return false; 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2756) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2757) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2758) @Override 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2759) public void advance() { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2760) next(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2761) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2762) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2763) @Override 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2764) protected void onStart() { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2765) super.onStart(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2766) Collect.getInstance().getActivityLogger().logOnStart(this); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2767) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2768) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2769) @Override 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2770) protected void onStop() { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2771) Collect.getInstance().getActivityLogger().logOnStop(this); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2772) super.onStop(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2773) } 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2774) 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2775) private void sendSavedBroadcast() { 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2776) Intent i = new Intent(); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2777) i.setAction("org.odk.collect.android.FormSaved"); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2778) this.sendBroadcast(i); 03a55a74 src/org/odk/collect/android/activities/FormEntryActivity.java (chartung 2013-03-19 15:08:08 -0700 2779) } 95583f5f src/org/odk/collect/android/activities/FormEntryActivity.java (carlhartung 2012-11-21 17:30:53 -0800 2780) 76db7ac6 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-14 11:21:01 +0200 2781) @Override 76db7ac6 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-14 11:21:01 +0200 2782) public void onSavePointError(String errorMessage) { 76db7ac6 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-14 11:21:01 +0200 2783) if (errorMessage != null && errorMessage.trim().length() > 0) { 76db7ac6 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-14 11:21:01 +0200 2784) Toast.makeText(this, getString(R.string.save_point_error, errorMessage), Toast.LENGTH_LONG).show(); 76db7ac6 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-14 11:21:01 +0200 2785) } 76db7ac6 src/org/odk/collect/android/activities/FormEntryActivity.java (Meletis Margaritis 2014-02-14 11:21:01 +0200 2786) } 996093f7 src/org/odk/collect/android/FormEntry.java (Yaw Anokwa 2009-07-01 16:25:16 +0000 2787) }