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

Commit 8346420f authored by LuK1337's avatar LuK1337 Committed by Bruno Martins
Browse files

SettingsLib: Ensure divider is set before view is returned in onCreateView

Fixes all instances of:

  E AndroidRuntime: FATAL EXCEPTION: main
  E AndroidRuntime: Process: org.lineageos.settings, PID: 3270
  E AndroidRuntime: java.lang.NullPointerException: Attempt to read from field 'java.util.ArrayList androidx.recyclerview.widget.RecyclerView.mItemDecorations' on a null object reference in method 'void androidx.preference.PreferenceFragmentCompat.setDivider(android.graphics.drawable.Drawable)'

Change-Id: I426d1f4ac2a1d8a508c6fc3b5453c874cd05c6c8
parent a9589527
Loading
Loading
Loading
Loading
+7 −5
Original line number Diff line number Diff line
@@ -36,17 +36,19 @@ abstract class SettingsBasePreferenceFragment : PreferenceFragmentCompat() {
        container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View {
        return super.onCreateView(inflater, container, savedInstanceState)
    }
        val view = super.onCreateView(inflater, container, savedInstanceState)

    @CallSuper
    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)
        if (SettingsThemeHelper.isExpressiveTheme(requireContext())) {
            // Don't allow any divider in between the preferences in expressive design.
            setDivider(null)
            listView?.addItemDecoration(MarginItemDecoration())
        }
        return view
    }

    @CallSuper
    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)
    }

    override fun onCreateAdapter(preferenceScreen: PreferenceScreen): RecyclerView.Adapter<*> {