google / blockly-android

Blockly for Android
Apache License 2.0
672 stars 209 forks source link

Crash with variable fields and no variables in workspace #772

Closed AnmAtAnm closed 5 years ago

AnmAtAnm commented 5 years ago

Blockly crashes app (index out of bounds) when rendering a variable field in a workspace that doesn't have any variables. For instance, in the Loops or Lists category before creating a variable. Toolbox blocks have variable fields for i and list, respectively.

This bug is new as of PR #771.

    --------- beginning of crash
2019-02-11 16:30:14.495 12827-12827/com.google.blockly.demo E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.google.blockly.demo, PID: 12827
    java.lang.IndexOutOfBoundsException: There is no item at index -1. Count is 1
        at com.google.blockly.android.ui.fieldview.BasicFieldVariableView$VariableViewAdapter.getItem(BasicFieldVariableView.java:281)
        at com.google.blockly.android.ui.fieldview.BasicFieldVariableView$VariableViewAdapter.getItem(BasicFieldVariableView.java:187)
        at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:441)
        at android.widget.ArrayAdapter.getView(ArrayAdapter.java:407)
        at com.google.blockly.android.ui.fieldview.FieldAdapter.getView(FieldAdapter.java:51)
        at com.google.blockly.android.ui.fieldview.BasicFieldVariableView$VariableViewAdapter.getView(BasicFieldVariableView.java:187)
        at android.widget.Spinner.measureContentWidth(Spinner.java:856)
        at android.widget.Spinner.onMeasure(Spinner.java:606)
        at android.support.v7.widget.AppCompatSpinner.onMeasure(AppCompatSpinner.java:421)
        at android.view.View.measure(View.java:22071)