Bug 1929321 - Fix app letterboxing in onboarding on foldables r=android-reviewers,boek
Differential Revision: https://phabricator.services.mozilla.com/D236589
This commit is contained in:
@@ -24,6 +24,7 @@ import org.mozilla.fenix.NavHostActivity
|
|||||||
import org.mozilla.fenix.R
|
import org.mozilla.fenix.R
|
||||||
import org.mozilla.fenix.components.Components
|
import org.mozilla.fenix.components.Components
|
||||||
import org.mozilla.fenix.components.toolbar.ToolbarContainerView
|
import org.mozilla.fenix.components.toolbar.ToolbarContainerView
|
||||||
|
import org.mozilla.fenix.utils.isLargeScreenSize
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the requireComponents of this application.
|
* Get the requireComponents of this application.
|
||||||
@@ -147,12 +148,19 @@ fun Fragment.registerForActivityResult(
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks whether the current fragment is running on a tablet.
|
* Checks whether the current fragment is running on a large window.
|
||||||
*/
|
*/
|
||||||
fun Fragment.isLargeWindow(): Boolean {
|
fun Fragment.isLargeWindow(): Boolean {
|
||||||
return requireContext().isLargeWindow()
|
return requireContext().isLargeWindow()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks whether the current fragment is running on a tablet.
|
||||||
|
*/
|
||||||
|
fun Fragment.isLargeScreenSize(): Boolean {
|
||||||
|
return requireContext().isLargeScreenSize()
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* Manages the state of the microsurvey prompt on orientation change.
|
* Manages the state of the microsurvey prompt on orientation change.
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import android.annotation.SuppressLint
|
|||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.IntentFilter
|
import android.content.IntentFilter
|
||||||
import android.content.pm.ActivityInfo
|
import android.content.pm.ActivityInfo
|
||||||
|
import android.content.res.Configuration
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.os.StrictMode
|
import android.os.StrictMode
|
||||||
@@ -35,7 +36,7 @@ import org.mozilla.fenix.compose.LinkTextState
|
|||||||
import org.mozilla.fenix.ext.components
|
import org.mozilla.fenix.ext.components
|
||||||
import org.mozilla.fenix.ext.hideToolbar
|
import org.mozilla.fenix.ext.hideToolbar
|
||||||
import org.mozilla.fenix.ext.isDefaultBrowserPromptSupported
|
import org.mozilla.fenix.ext.isDefaultBrowserPromptSupported
|
||||||
import org.mozilla.fenix.ext.isLargeWindow
|
import org.mozilla.fenix.ext.isLargeScreenSize
|
||||||
import org.mozilla.fenix.ext.nav
|
import org.mozilla.fenix.ext.nav
|
||||||
import org.mozilla.fenix.ext.openSetDefaultBrowserOption
|
import org.mozilla.fenix.ext.openSetDefaultBrowserOption
|
||||||
import org.mozilla.fenix.ext.requireComponents
|
import org.mozilla.fenix.ext.requireComponents
|
||||||
@@ -120,7 +121,7 @@ class OnboardingFragment : Fragment() {
|
|||||||
onFinish(null)
|
onFinish(null)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!isLargeWindow()) {
|
if (!isLargeScreenSize()) {
|
||||||
activity?.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
|
activity?.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
|
||||||
}
|
}
|
||||||
val filter = IntentFilter(WidgetPinnedReceiver.ACTION)
|
val filter = IntentFilter(WidgetPinnedReceiver.ACTION)
|
||||||
@@ -154,9 +155,19 @@ class OnboardingFragment : Fragment() {
|
|||||||
hideToolbar()
|
hideToolbar()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressLint("SourceLockedOrientationActivity")
|
||||||
|
override fun onConfigurationChanged(newConfig: Configuration) {
|
||||||
|
super.onConfigurationChanged(newConfig)
|
||||||
|
if (!isLargeScreenSize()) {
|
||||||
|
activity?.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
|
||||||
|
} else {
|
||||||
|
activity?.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
override fun onDestroy() {
|
override fun onDestroy() {
|
||||||
super.onDestroy()
|
super.onDestroy()
|
||||||
if (!isLargeWindow()) {
|
if (!isLargeScreenSize()) {
|
||||||
activity?.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED
|
activity?.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED
|
||||||
}
|
}
|
||||||
LocalBroadcastManager.getInstance(requireContext()).unregisterReceiver(pinAppWidgetReceiver)
|
LocalBroadcastManager.getInstance(requireContext()).unregisterReceiver(pinAppWidgetReceiver)
|
||||||
|
|||||||
Reference in New Issue
Block a user