More-Than-Solitaire / Tabs-Lite

An ad-free open source guitar tablature application using an existing popular tabs database. Built for speed and simplicity.
Apache License 2.0
64 stars 4 forks source link

Clicking Find A Song causes crash #58

Closed cullub closed 2 years ago

cullub commented 2 years ago

If no favorites are selected yet, the app will show "There are no tabs here; [Find a Song]". Clicking Find a Song crashes the app. 49 occurrences in prod.

Expected:

Clicking Find a Song activates the search bar on top

Actual:

Clicking Find a Song crashes app

Crashlog:

kotlin.UninitializedPropertyAccessException: 
  at com.gbros.tabslite.HomeActivity.focusSearch (HomeActivity.kt:145)
  at com.gbros.tabslite.FavoriteTabsFragment$onCreateView$1.onClick (FavoriteTabsFragment.kt:40)
  at android.view.View.performClick (View.java:8160)
  at android.widget.TextView.performClick (TextView.java:16222)
  at com.google.android.material.button.MaterialButton.performClick (MaterialButton.java:1119)
  at android.view.View.performClickInternal (View.java:8137)
  at android.view.View.access$3700 (View.java:888)
  at android.view.View$PerformClick.run (View.java:30236)
  at android.os.Handler.handleCallback (Handler.java:938)
  at android.os.Handler.dispatchMessage (Handler.java:99)
  at android.os.Looper.loop (Looper.java:246)
  at android.app.ActivityThread.main (ActivityThread.java:8587)
  at java.lang.reflect.Method.invoke (Native Method)
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:602)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1130)
cullub commented 2 years ago

Problem is that HomeActivity.kt's focusSearch() function calls searchView before it's initialized (it's a lateinit).

    fun focusSearch() {
        searchView.requestFocusFromTouch()
        searchMenuItem.expandActionView()
    }

line 39 has val searchView -- maybe delete val? Must check whether search box actually opens after changes.