fossasia / pslab-android

PSLab Android App https://play.google.com/store/apps/details?id=io.pslab

Home Page:https://pslab.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Logic Analyser screen: crash if empty log is analysed

marcnause opened this issue · comments

Actual Behaviour

The Logic Analyzer screen crashes if an empty log is analysed.

Expected Behaviour

The Logic Analyzer screen does not crash if an empty log is analysed.

Steps to reproduce it

  1. open app (no PSLab connected)
  2. choose Logic Analyzer
  3. tap "save data" icon
  4. tap three dots icon
  5. tap "Show Logged Data"
  6. choose last saved file
  7. tap "ANALYZE" button (sometimes this needs to be done twice)

LogCat for the issue

2023-01-26 22:17:00.921 29842-29862 OpenGLRenderer          io.pslab                             D  endAllActiveAnimators on 0xb4000073ded3ad00 (MenuPopupWindow$MenuDropDownListView) with handle 0xb4000072fecbdbe0
2023-01-26 22:17:03.228 29842-29842 BottomSheetBehavior     io.pslab                             W  BottomSheetBehavior now supports multiple callbacks. `setBottomSheetCallback()` removes all existing callbacks, including ones set internally by library authors, which may result in unintended behavior. This may change in the future. Please use `addBottomSheetCallback()` and `removeBottomSheetCallback()` instead to set your own callbacks.
2023-01-26 22:17:03.247 29842-29842 AndroidRuntime          io.pslab                             D  Shutting down VM
2023-01-26 22:17:03.247 29842-29842 AndroidRuntime          io.pslab                             E  FATAL EXCEPTION: main
                                                                                                    Process: io.pslab, PID: 29842
                                                                                                    java.lang.ArrayIndexOutOfBoundsException: length=10; index=-1
                                                                                                    	at java.util.ArrayList.get(ArrayList.java:439)
                                                                                                    	at in.goodiebag.carouselpicker.CarouselPicker$CarouselViewAdapter.applyOpacity(CarouselPicker.java:272)
                                                                                                    	at in.goodiebag.carouselpicker.CarouselPicker$CarouselViewAdapter.access$000(CarouselPicker.java:139)
                                                                                                    	at in.goodiebag.carouselpicker.CarouselPicker.setCurrentItem(CarouselPicker.java:90)
                                                                                                    	at io.pslab.fragment.LALogicLinesFragment.setPlayBackData(LALogicLinesFragment.java:280)
                                                                                                    	at io.pslab.fragment.LALogicLinesFragment.onCreateView(LALogicLinesFragment.java:221)
                                                                                                    	at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2963)
                                                                                                    	at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:518)
                                                                                                    	at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:282)
                                                                                                    	at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:2189)
                                                                                                    	at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:2100)
                                                                                                    	at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:2002)
                                                                                                    	at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:3138)
                                                                                                    	at androidx.fragment.app.FragmentManager.dispatchActivityCreated(FragmentManager.java:3072)
                                                                                                    	at androidx.fragment.app.FragmentController.dispatchActivityCreated(FragmentController.java:251)
                                                                                                    	at androidx.fragment.app.FragmentActivity.onStart(FragmentActivity.java:502)
                                                                                                    	at androidx.appcompat.app.AppCompatActivity.onStart(AppCompatActivity.java:246)
                                                                                                    	at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1436)
                                                                                                    	at android.app.Activity.performStart(Activity.java:8024)
                                                                                                    	at android.app.ActivityThread.handleStartActivity(ActivityThread.java:3458)
                                                                                                    	at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:221)
                                                                                                    	at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:201)
                                                                                                    	at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:173)
                                                                                                    	at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
                                                                                                    	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2067)
                                                                                                    	at android.os.Handler.dispatchMessage(Handler.java:106)
                                                                                                    	at android.os.Looper.loop(Looper.java:223)
                                                                                                    	at android.app.ActivityThread.main(ActivityThread.java:7715)
                                                                                                    	at java.lang.reflect.Method.invoke(Native Method)
                                                                                                    	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
                                                                                                    	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:952)
2023-01-26 22:17:03.271 29842-29842 Process                 io.pslab                             I  Sending signal. PID: 29842 SIG: 9
2023-01-26 22:17:16.521 29958-29958 AndroidRuntime          io.pslab                             D  Shutting down VM
2023-01-26 22:17:16.522 29958-29958 AndroidRuntime          io.pslab                             E  FATAL EXCEPTION: main
                                                                                                    Process: io.pslab, PID: 29958
                                                                                                    java.lang.NullPointerException: Attempt to invoke virtual method 'boolean io.pslab.communication.ScienceLab.isConnected()' on a null object reference
                                                                                                    	at io.pslab.fragment.LALogicLinesFragment$3.onClick(LALogicLinesFragment.java:352)
                                                                                                    	at android.view.View.performClick(View.java:7448)
                                                                                                    	at android.view.View.performClickInternal(View.java:7425)
                                                                                                    	at android.view.View.access$3600(View.java:810)
                                                                                                    	at android.view.View$PerformClick.run(View.java:28309)
                                                                                                    	at android.os.Handler.handleCallback(Handler.java:938)
                                                                                                    	at android.os.Handler.dispatchMessage(Handler.java:99)
                                                                                                    	at android.os.Looper.loop(Looper.java:223)
                                                                                                    	at android.app.ActivityThread.main(ActivityThread.java:7715)
                                                                                                    	at java.lang.reflect.Method.invoke(Native Method)
                                                                                                    	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
                                                                                                    	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:952)

Would you like to work on the issue?

Yes.