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

Commit bbcc65e0 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Added hover and mouse click support for icons left of status bar" into main

parents 58eee2b3 da672923
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -66,7 +66,7 @@
            <FrameLayout
                android:id="@+id/status_bar_start_side_content"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical|start"
                android:clipChildren="false">

+38 −27
Original line number Diff line number Diff line
@@ -78,26 +78,10 @@ private constructor(

    private lateinit var battery: BatteryMeterView
    private lateinit var clock: Clock
    private lateinit var statusContainer: View
    private lateinit var startSideContainer: View
    private lateinit var endSideContainer: View

    private val configurationListener =
        object : ConfigurationController.ConfigurationListener {
            override fun onDensityOrFontScaleChanged() {
                clock.onDensityOrFontScaleChanged()
            }
        }

    override fun onViewAttached() {
        statusContainer = mView.requireViewById(R.id.system_icons)
        clock = mView.requireViewById(R.id.clock)
        battery = mView.requireViewById(R.id.battery)

        addDarkReceivers()

        statusContainer.setOnHoverListener(
            statusOverlayHoverListenerFactory.createDarkAwareListener(statusContainer)
        )
        statusContainer.setOnTouchListener(
    private val iconsOnTouchListener =
        object : View.OnTouchListener {
            override fun onTouch(v: View, event: MotionEvent): Boolean {
                // We want to handle only mouse events here to avoid stealing finger touches
@@ -115,7 +99,19 @@ private constructor(
                return false
            }
        }
        )

    private val configurationListener =
        object : ConfigurationController.ConfigurationListener {
            override fun onDensityOrFontScaleChanged() {
                clock.onDensityOrFontScaleChanged()
            }
        }

    override fun onViewAttached() {
        clock = mView.requireViewById(R.id.clock)
        battery = mView.requireViewById(R.id.battery)
        addDarkReceivers()
        addCursorSupportToIconContainers()

        progressProvider?.setReadyToHandleTransition(true)
        configurationController.addCallback(configurationListener)
@@ -146,10 +142,25 @@ private constructor(
        }
    }

    private fun addCursorSupportToIconContainers() {
        endSideContainer = mView.requireViewById(R.id.system_icons)
        endSideContainer.setOnHoverListener(
            statusOverlayHoverListenerFactory.createDarkAwareListener(endSideContainer)
        )
        endSideContainer.setOnTouchListener(iconsOnTouchListener)

        startSideContainer = mView.requireViewById(R.id.status_bar_start_side_content)
        startSideContainer.setOnHoverListener(
            statusOverlayHoverListenerFactory.createDarkAwareListener(startSideContainer)
        )
        startSideContainer.setOnTouchListener(iconsOnTouchListener)
    }

    @VisibleForTesting
    public override fun onViewDetached() {
        removeDarkReceivers()
        statusContainer.setOnHoverListener(null)
        startSideContainer.setOnHoverListener(null)
        endSideContainer.setOnHoverListener(null)
        progressProvider?.setReadyToHandleTransition(false)
        moveFromCenterAnimationController?.onViewDetached()
        configurationController.removeCallback(configurationListener)