Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0d5b2782 authored by Bruno Martins's avatar Bruno Martins
Browse files

SettingsPreferenceFragment: Defer applying divider

Android 16 QPR1 + M3E changes the inflation and lifecycle timing of
PreferenceFragmentCompat layouts, resulting in internal RecyclerView
being created later than before.

As a result, PreferenceFragmentCompat.setDivider() can be invoked
before the internal RecyclerView exists thus causing below NPE:

  11-25 18:06:19.705 7903 7903 E AndroidRuntime: FATAL EXCEPTION: main
  11-25 18:06:19.705 7903 7903 E AndroidRuntime: Process: org.lineageos.lineageparts, PID: 7903
  11-25 18:06:19.705 7903 7903 E AndroidRuntime: java.lang.NullPointerException: Attempt to invoke virtual method 'void androidx.recyclerview.widget.RecyclerView.invalidateItemDecorations()' on a null object reference
  11-25 18:06:19.705 7903 7903 E AndroidRuntime: at androidx.preference.PreferenceFragmentCompat$DividerDecoration.setDivider(PreferenceFragmentCompat.java:909)
  11-25 18:06:19.705 7903 7903 E AndroidRuntime: at androidx.preference.PreferenceFragmentCompat.setDivider(PreferenceFragmentCompat.java:247)
  11-25 18:06:19.705 7903 7903 E AndroidRuntime: at com.android.settingslib.widget.SettingsBasePreferenceFragment.onViewCreated(SettingsBasePreferenceFragment.kt:47)
  11-25 18:06:19.705 7903 7903 E AndroidRuntime: at org.lineageos.lineageparts.SettingsPreferenceFragment.onViewCreated(SettingsPreferenceFragment.java:156)
  11-25 18:06:19.705 7903 7903 E AndroidRuntime: at org.lineageos.lineageparts.profiles.SetupTriggersFragment.onViewCreated(SetupTriggersFragment.java:89)
  11-25 18:06:19.705 7903 7903 E AndroidRuntime: at androidx.fragment.app.Fragment.performViewCreated(Fragment.java:3099)
  11-25 18:06:19.705 7903 7903 E AndroidRuntime: at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:607)
  11-25 18:06:19.705 7903 7903 E AndroidRuntime: at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:285)
  (...)
 # 11-25 18:06:19.705 7903 7903 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:9041)
 # 11-25 18:06:19.705 7903 7903 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
  11-25 18:06:19.705 7903 7903 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:593)
  11-25 18:06:19.705 7903 7903 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:929)
  11-25 18:06:19.727 2241 6629 W ActivityTaskManager: Force finishing activity org.lineageos.lineageparts/.PartsActivity

Test: Open System profiles settings, create a new profile and verify
      that the activity no longer crashes.
Change-Id: Ifb741011baaa6d721d0ca0db2d68d30037eb8930
parent cc2d85d6
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment