diff --git a/collect_app/src/main/java/org/odk/collect/android/activities/FormHierarchyActivity.java b/collect_app/src/main/java/org/odk/collect/android/activities/FormHierarchyActivity.java index 4eb79b6a186..338f2a43cd4 100644 --- a/collect_app/src/main/java/org/odk/collect/android/activities/FormHierarchyActivity.java +++ b/collect_app/src/main/java/org/odk/collect/android/activities/FormHierarchyActivity.java @@ -23,7 +23,6 @@ import android.support.v7.widget.RecyclerView; import android.support.v7.widget.Toolbar; import android.view.View; -import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; @@ -92,37 +91,10 @@ public void onCreate(Bundle savedInstanceState) { path = findViewById(R.id.pathtext); jumpPreviousButton = findViewById(R.id.jumpPreviousButton); - jumpPreviousButton.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - goUpLevel(); - } - }); - jumpBeginningButton = findViewById(R.id.jumpBeginningButton); - jumpBeginningButton.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - formController.getTimerLogger().exitView(); - formController.jumpToIndex(FormIndex.createBeginningOfFormIndex()); - - setResult(RESULT_OK); - finish(); - } - }); - jumpEndButton = findViewById(R.id.jumpEndButton); - jumpEndButton.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - formController.getTimerLogger().exitView(); - formController.jumpToIndex(FormIndex.createEndOfFormIndex()); - - setResult(RESULT_OK); - finish(); - } - }); + configureButtons(formController); refreshView(); // Kinda slow, but works. This scrolls to the last question the user was looking at. @@ -141,6 +113,30 @@ public void onClick(View v) { } } + + /** + * Configure the navigation buttons at the bottom of the screen. + */ + void configureButtons(FormController formController) { + jumpPreviousButton.setOnClickListener(v -> goUpLevel()); + + jumpBeginningButton.setOnClickListener(v -> { + formController.getTimerLogger().exitView(); + formController.jumpToIndex(FormIndex.createBeginningOfFormIndex()); + + setResult(RESULT_OK); + finish(); + }); + + jumpEndButton.setOnClickListener(v -> { + formController.getTimerLogger().exitView(); + formController.jumpToIndex(FormIndex.createEndOfFormIndex()); + + setResult(RESULT_OK); + finish(); + }); + } + private boolean shouldScrollToTheGivenIndex(FormIndex formIndex, FormController formController) { return startIndex.equals(formIndex) || (formController.indexIsInFieldList(startIndex) && formIndex.toString().startsWith(startIndex.toString()));