commit f9fe9395dbf57a4b83058ad420a721531c97e20c parent 81baf8470463b4101ccb004c18a942f86c6ab722 Author: Ryan VanderMeulen <rvandermeulen@mozilla.com> Date: Wed, 29 Oct 2025 14:29:56 +0000 Bug 1997097 - Resolve BottomSheetBehavior generic inference in onCreateDialog(). r=android-reviewers,mcarare Avoid passing a nullable View to from(...), fixing unresolved 'state' and type inference errors. error: Cannot infer type for type parameter 'V'. Specify it explicitly. error: Argument type mismatch: actual type is 'View?', but 'uninferred V (of fun <V : View!> from)' was expected. Differential Revision: https://phabricator.services.mozilla.com/D270510 Diffstat:
2 files changed, 8 insertions(+), 12 deletions(-)
diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/onboarding/WallpaperOnboardingDialogFragment.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/onboarding/WallpaperOnboardingDialogFragment.kt @@ -18,6 +18,7 @@ import androidx.compose.ui.platform.ViewCompositionStrategy import androidx.lifecycle.lifecycleScope import androidx.navigation.fragment.findNavController import com.google.android.material.bottomsheet.BottomSheetBehavior +import com.google.android.material.bottomsheet.BottomSheetDialog import com.google.android.material.bottomsheet.BottomSheetDialogFragment import kotlinx.coroutines.launch import mozilla.components.lib.state.ext.observeAsComposableState @@ -35,7 +36,6 @@ import org.mozilla.fenix.settings.wallpaper.getWallpapersForOnboarding import org.mozilla.fenix.theme.FirefoxTheme import org.mozilla.fenix.wallpapers.Wallpaper import org.mozilla.fenix.wallpapers.WallpaperOnboarding -import com.google.android.material.R as materialR /** * Dialog displaying the wallpapers onboarding. @@ -50,12 +50,9 @@ class WallpaperOnboardingDialogFragment : BottomSheetDialogFragment() { } override fun onCreateDialog(savedInstanceState: Bundle?): Dialog = - super.onCreateDialog(savedInstanceState).apply { + (super.onCreateDialog(savedInstanceState) as BottomSheetDialog).apply { setOnShowListener { - val bottomSheet = findViewById<View?>(materialR.id.design_bottom_sheet) - BottomSheetBehavior.from(bottomSheet).apply { - state = BottomSheetBehavior.STATE_EXPANDED - } + behavior.state = BottomSheetBehavior.STATE_EXPANDED } } diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/trustpanel/TrustPanelFragment.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/trustpanel/TrustPanelFragment.kt @@ -9,8 +9,8 @@ import android.content.Intent import android.net.Uri import android.os.Bundle import android.view.LayoutInflater -import android.view.View import android.view.ViewGroup +import android.widget.FrameLayout import androidx.activity.compose.BackHandler import androidx.activity.result.contract.ActivityResultContracts import androidx.compose.animation.AnimatedContent @@ -35,6 +35,7 @@ import androidx.fragment.compose.content import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.navArgs import com.google.android.material.bottomsheet.BottomSheetBehavior +import com.google.android.material.bottomsheet.BottomSheetDialog import com.google.android.material.bottomsheet.BottomSheetDialogFragment import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.flow.mapNotNull @@ -90,7 +91,7 @@ class TrustPanelFragment : BottomSheetDialogFragment() { ) { isGranted: Map<String, Boolean> -> permissionsCallback.invoke(isGranted) } override fun onCreateDialog(savedInstanceState: Bundle?): Dialog = - super.onCreateDialog(savedInstanceState).apply { + (super.onCreateDialog(savedInstanceState) as BottomSheetDialog).apply { setOnShowListener { val safeActivity = activity ?: return@setOnShowListener val browsingModeManager = (safeActivity as HomeActivity).browsingModeManager @@ -100,13 +101,11 @@ class TrustPanelFragment : BottomSheetDialogFragment() { } else { ContextCompat.getColor(context, R.color.fx_mobile_layer_color_3) } - window?.setNavigationBarColorCompat(navigationBarColor) - val bottomSheet = findViewById<View?>(materialR.id.design_bottom_sheet) - bottomSheet?.setBackgroundResource(android.R.color.transparent) + findViewById<FrameLayout>(materialR.id.design_bottom_sheet) + ?.setBackgroundResource(android.R.color.transparent) - val behavior = BottomSheetBehavior.from(bottomSheet) behavior.peekHeight = resources.displayMetrics.heightPixels behavior.state = BottomSheetBehavior.STATE_EXPANDED }