diff --git a/app/assets/locales/android_translatable_strings.txt b/app/assets/locales/android_translatable_strings.txt index 588441a27..932d7b29b 100644 --- a/app/assets/locales/android_translatable_strings.txt +++ b/app/assets/locales/android_translatable_strings.txt @@ -167,6 +167,7 @@ form.entry.incomplete.save.success=Form saved as incomplete form.entry.save.error=Sorry, form save failed. Please contact CommCare Support to look into the issue. form.entry.save.invalid.unicode=Could not save '${0}' text in form. form.entry.finish.button=FINISH +form.entry.exit.button=EXIT form.entry.restart.after.expiration=You were logged out due to session expiration. The form you were in the middle of has been saved and resumed. login.attempt.badcred=Username or password are incorrect. Please try again. diff --git a/app/src/org/commcare/activities/FormEntryActivity.java b/app/src/org/commcare/activities/FormEntryActivity.java index 02eff5482..0ca63f64a 100644 --- a/app/src/org/commcare/activities/FormEntryActivity.java +++ b/app/src/org/commcare/activities/FormEntryActivity.java @@ -820,6 +820,10 @@ private void saveDataToDisk(boolean exit, boolean complete, String updatedSaveNa return; } + if (mFormController.isFormReadOnly()) { + return; + } + // save current answer; if headless, don't evaluate the constraints // before doing so. boolean wasScreenSaved = diff --git a/app/src/org/commcare/activities/FormEntryActivityUIController.java b/app/src/org/commcare/activities/FormEntryActivityUIController.java index f917a6254..e7388a975 100644 --- a/app/src/org/commcare/activities/FormEntryActivityUIController.java +++ b/app/src/org/commcare/activities/FormEntryActivityUIController.java @@ -82,6 +82,7 @@ public class FormEntryActivityUIController implements CommCareActivityUIControll private boolean formRelevanciesUpdateInProgress = false; private static final String KEY_LAST_CHANGED_WIDGET = "index-of-last-changed-widget"; + private TextView finishText; enum AnimationType { LEFT, RIGHT, FADE @@ -103,7 +104,7 @@ public void setupUI() { View finishButton = activity.findViewById(R.id.nav_btn_finish); - TextView finishText = finishButton.findViewById(R.id.nav_btn_finish_text); + finishText = finishButton.findViewById(R.id.nav_btn_finish_text); finishText.setText(Localization.get("form.entry.finish.button").toUpperCase()); nextButton.setOnClickListener(v -> { @@ -199,6 +200,10 @@ protected void refreshCurrentView(boolean animateLastView) { QuestionsView current = createView(); showView(current, AnimationType.FADE, animateLastView); } + + if (finishText != null && FormEntryActivity.mFormController.isFormReadOnly()) { + finishText.setText(Localization.get("form.entry.exit.button").toUpperCase()); + } } /**