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 Original line Diff line number Diff line
@@ -64,7 +64,20 @@ class TaskbarInsetsController(val context: TaskbarActivityContext) : LoggableTas
    fun init(controllers: TaskbarControllers) {
    fun init(controllers: TaskbarControllers) {
        this.controllers = controllers
        this.controllers = controllers
        windowLayoutParams = context.windowLayoutParams
        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(
            setProvidesInsetsTypes(
                    windowLayoutParams,
                    windowLayoutParams,
                    intArrayOf(
                    intArrayOf(
@@ -74,22 +87,28 @@ class TaskbarInsetsController(val context: TaskbarActivityContext) : LoggableTas
                            ITYPE_LEFT_GESTURES,
                            ITYPE_LEFT_GESTURES,
                            ITYPE_RIGHT_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
        val touchableHeight = controllers.taskbarStashController.touchableHeight
        touchableRegion.set(
        touchableRegion.set(
            0,
            0,
@@ -145,7 +164,9 @@ class TaskbarInsetsController(val context: TaskbarActivityContext) : LoggableTas
        for (provider in windowLayoutParams.providedInsets) {
        for (provider in windowLayoutParams.providedInsets) {
            if (context.isGestureNav && provider.type == ITYPE_BOTTOM_TAPPABLE_ELEMENT) {
            if (context.isGestureNav && provider.type == ITYPE_BOTTOM_TAPPABLE_ELEMENT) {
                provider.insetsSizeOverrides = insetsSizeOverrideForGestureNavTappableElement
                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
                provider.insetsSizeOverrides = insetsSizeOverride
            }
            }
        }
        }