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

Commit 13bf1598 authored by Winson Chung's avatar Winson Chung Committed by Android (Google) Code Review
Browse files

Merge "Fix gesture insets issue for IMEs" into tm-qpr-dev

parents 30c2bdda 8436e0b3
Loading
Loading
Loading
Loading
+36 −15
Original line number Diff line number Diff line
@@ -64,7 +64,20 @@ class TaskbarInsetsController(val context: TaskbarActivityContext) : LoggableTas
    fun init(controllers: TaskbarControllers) {
        this.controllers = controllers
        windowLayoutParams = context.windowLayoutParams
        windowLayoutParams.insetsRoundedCornerFrame = true
        onTaskbarWindowHeightOrInsetsChanged()

        context.addOnDeviceProfileChangeListener(deviceProfileChangeListener)
        gestureNavSettingsObserver.registerForCallingUser()
    }

    fun onDestroy() {
        context.removeOnDeviceProfileChangeListener(deviceProfileChangeListener)
        gestureNavSettingsObserver.unregister()
    }

    fun onTaskbarWindowHeightOrInsetsChanged() {
        if (context.isGestureNav) {
            setProvidesInsetsTypes(
                    windowLayoutParams,
                    intArrayOf(
@@ -74,22 +87,28 @@ class TaskbarInsetsController(val context: TaskbarActivityContext) : LoggableTas
                            ITYPE_LEFT_GESTURES,
                            ITYPE_RIGHT_GESTURES,
                    ),
            intArrayOf(SOURCE_FRAME, SOURCE_FRAME, SOURCE_FRAME, SOURCE_DISPLAY, SOURCE_DISPLAY)
                    intArrayOf(
                            SOURCE_FRAME,
                            SOURCE_FRAME,
                            SOURCE_FRAME,
                            SOURCE_DISPLAY,
                            SOURCE_DISPLAY
                    )
            )
        } else {
            setProvidesInsetsTypes(
                    windowLayoutParams,
                    intArrayOf(
                            ITYPE_EXTRA_NAVIGATION_BAR,
                            ITYPE_BOTTOM_TAPPABLE_ELEMENT
                    ),
                    intArrayOf(
                            SOURCE_FRAME,
                            SOURCE_FRAME
                    )
            )

        onTaskbarWindowHeightOrInsetsChanged()

        windowLayoutParams.insetsRoundedCornerFrame = true
        context.addOnDeviceProfileChangeListener(deviceProfileChangeListener)
        gestureNavSettingsObserver.registerForCallingUser()
    }

    fun onDestroy() {
        context.removeOnDeviceProfileChangeListener(deviceProfileChangeListener)
        gestureNavSettingsObserver.unregister()
        }

    fun onTaskbarWindowHeightOrInsetsChanged() {
        val touchableHeight = controllers.taskbarStashController.touchableHeight
        touchableRegion.set(
            0,
@@ -145,7 +164,9 @@ class TaskbarInsetsController(val context: TaskbarActivityContext) : LoggableTas
        for (provider in windowLayoutParams.providedInsets) {
            if (context.isGestureNav && provider.type == ITYPE_BOTTOM_TAPPABLE_ELEMENT) {
                provider.insetsSizeOverrides = insetsSizeOverrideForGestureNavTappableElement
            } else {
            } else if (provider.type != ITYPE_LEFT_GESTURES
                    && provider.type != ITYPE_RIGHT_GESTURES) {
                // We only override insets at the bottom of the screen
                provider.insetsSizeOverrides = insetsSizeOverride
            }
        }