Skip to content

Commit 66ac3b4

Browse files
authored
fix: Handle possible null web editor values (#22179)
The Kotlin `webEditor` type contradicted the null-ability of the Java `mWebEditor` value. Null values led to a crash when opening the GutenbergKit editor for self-hosted sites without a Jetpack connection. ``` java.lang.NullPointerException: getWebEditor(...) must not be null at org.wordpress.android.ui.posts.GutenbergKitSettingsBuilder$SiteConfig$Companion.fromSiteModel(GutenbergKitSettingsBuilder.kt:45) at org.wordpress.android.ui.posts.GutenbergKitActivity$SectionsPagerAdapter.createGutenbergKitEditorFragment(GutenbergKitActivity.kt:2212) at org.wordpress.android.ui.posts.GutenbergKitActivity$SectionsPagerAdapter.getItem(GutenbergKitActivity.kt:2196) at androidx.fragment.app.FragmentPagerAdapter.instantiateItem(FragmentPagerAdapter.java:174) at org.wordpress.android.ui.posts.GutenbergKitActivity$SectionsPagerAdapter.instantiateItem(GutenbergKitActivity.kt:2251) at androidx.viewpager.widget.ViewPager.addNewItem(ViewPager.java:1010) at androidx.viewpager.widget.ViewPager.populate(ViewPager.java:1158) at androidx.viewpager.widget.ViewPager.populate(ViewPager.java:1092) at androidx.viewpager.widget.ViewPager.onMeasure(ViewPager.java:1622) at android.view.View.measure(View.java:28407) at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:735) at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:481) at android.view.View.measure(View.java:28407) at androidx.constraintlayout.widget.ConstraintLayout$Measurer.measure(ConstraintLayout.java:861) at androidx.constraintlayout.core.widgets.analyzer.BasicMeasure.measure(BasicMeasure.java:491) at androidx.constraintlayout.core.widgets.analyzer.BasicMeasure.measureChildren(BasicMeasure.java:140) at androidx.constraintlayout.core.widgets.analyzer.BasicMeasure.solverMeasure(BasicMeasure.java:285) at androidx.constraintlayout.core.widgets.ConstraintWidgetContainer.measure(ConstraintWidgetContainer.java:119) at androidx.constraintlayout.widget.ConstraintLayout.resolveSystem(ConstraintLayout.java:1634) at androidx.constraintlayout.widget.ConstraintLayout.onMeasure(ConstraintLayout.java:1777) at android.view.View.measure(View.java:28407) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7028) at androidx.coordinatorlayout.widget.CoordinatorLayout.onMeasureChild(CoordinatorLayout.java:795) at com.google.android.material.appbar.HeaderScrollingViewBehavior.onMeasureChild(HeaderScrollingViewBehavior.java:100) at com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior.onMeasureChild(AppBarLayout.java:2365) at androidx.coordinatorlayout.widget.CoordinatorLayout.onMeasure(CoordinatorLayout.java:866) at android.view.View.measure(View.java:28407) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7028) at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) at androidx.appcompat.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:141) at android.view.View.measure(View.java:28407) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7028) at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) at android.view.View.measure(View.java:28407) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7028) at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) at android.view.View.measure(View.java:28407) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7028) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1608) at android.widget.LinearLayout.measureVertical(LinearLayout.java:878) at android.widget.LinearLayout.onMeasure(LinearLayout.java:721) at android.view.View.measure(View.java:28407) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7028) at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) at com.android.internal.policy.DecorView.onMeasure(DecorView.java:736) at android.view.View.measure(View.java:28407) at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:4998) at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:3391) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3699) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:3076) (Ask Gemini) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:10643) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1570) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1579) at android.view.Choreographer.doCallbacks(Choreographer.java:1179) at android.view.Choreographer.doFrame(Choreographer.java:1108) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1553) at android.os.Handler.handleCallback(Handler.java:995) at android.os.Handler.dispatchMessage(Handler.java:103) at android.os.Looper.loopOnce(Looper.java:248) at android.os.Looper.loop(Looper.java:338) at android.app.ActivityThread.main(ActivityThread.java:9067) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:593) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:932) ```
1 parent 049c7bd commit 66ac3b4

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

WordPress/src/main/java/org/wordpress/android/ui/posts/GutenbergKitSettingsBuilder.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ object GutenbergKitSettingsBuilder {
2525
val apiRestUsernamePlain: String?,
2626
val apiRestPasswordPlain: String?,
2727
val selfHostedSiteId: Long,
28-
val webEditor: String,
28+
val webEditor: String?,
2929
val apiRestUsernameProcessed: String?,
3030
val apiRestPasswordProcessed: String?
3131
) {

0 commit comments

Comments
 (0)