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

Commit eb5a5da9 authored by Juan Sebastian Martinez's avatar Juan Sebastian Martinez Committed by Android (Google) Code Review
Browse files

Merge "Cleanup of the flag ONE_WAY_HAPTICS_API_MIGRATION on ControlActionCoordinatorImpl" into main

parents a096a1f0 e9ada840
Loading
Loading
Loading
Loading
+6 −14
Original line number Diff line number Diff line
@@ -37,8 +37,6 @@ import com.android.systemui.controls.ControlsMetricsLogger
import com.android.systemui.controls.settings.ControlsSettingsRepository
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.dagger.qualifiers.Main
import com.android.systemui.flags.FeatureFlags
import com.android.systemui.flags.Flags.ONE_WAY_HAPTICS_API_MIGRATION
import com.android.systemui.plugins.ActivityStarter
import com.android.systemui.statusbar.VibratorHelper
import com.android.systemui.statusbar.policy.KeyguardStateController
@@ -59,7 +57,6 @@ class ControlActionCoordinatorImpl @Inject constructor(
        private val controlsMetricsLogger: ControlsMetricsLogger,
        private val vibrator: VibratorHelper,
        private val controlsSettingsRepository: ControlsSettingsRepository,
        private val featureFlags: FeatureFlags,
) : ControlActionCoordinator {
    private var dialog: Dialog? = null
    private var pendingAction: Action? = null
@@ -123,17 +120,12 @@ class ControlActionCoordinatorImpl @Inject constructor(
    }

    override fun drag(cvh: ControlViewHolder, isEdge: Boolean) {
        if (featureFlags.isEnabled(ONE_WAY_HAPTICS_API_MIGRATION)) {
        val constant =
            if (isEdge)
                HapticFeedbackConstants.SEGMENT_TICK
            else
                HapticFeedbackConstants.SEGMENT_FREQUENT_TICK
        vibrator.performHapticFeedback(cvh.layout, constant)
        } else {
            val effect = if (isEdge) Vibrations.rangeEdgeEffect else Vibrations.rangeMiddleEffect
            vibrate(effect)
        }
    }

    override fun setValue(cvh: ControlViewHolder, templateId: String, newValue: Float) {
+0 −37
Original line number Diff line number Diff line
/*
 * Copyright (C) 2020 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.android.systemui.controls.ui

import android.os.VibrationEffect
import android.os.VibrationEffect.Composition.PRIMITIVE_TICK

object Vibrations {
    val rangeEdgeEffect = initRangeEdgeEffect()
    val rangeMiddleEffect = initRangeMiddleEffect()

    private fun initRangeEdgeEffect(): VibrationEffect {
        val composition = VibrationEffect.startComposition()
        composition.addPrimitive(VibrationEffect.Composition.PRIMITIVE_TICK, 0.5f)
        return composition.compose()
    }

    private fun initRangeMiddleEffect(): VibrationEffect {
        val composition = VibrationEffect.startComposition()
        composition.addPrimitive(VibrationEffect.Composition.PRIMITIVE_TICK, 0.1f)
        return composition.compose()
    }
}
+2 −33
Original line number Diff line number Diff line
@@ -24,8 +24,6 @@ import com.android.systemui.broadcast.BroadcastSender
import com.android.systemui.controls.ControlsMetricsLogger
import com.android.systemui.controls.settings.ControlsSettingsDialogManager
import com.android.systemui.controls.settings.FakeControlsSettingsRepository
import com.android.systemui.flags.FakeFeatureFlags
import com.android.systemui.flags.Flags.ONE_WAY_HAPTICS_API_MIGRATION
import com.android.systemui.plugins.ActivityStarter
import com.android.systemui.statusbar.VibratorHelper
import com.android.systemui.statusbar.policy.KeyguardStateController
@@ -83,8 +81,6 @@ class ControlActionCoordinatorImplTest : SysuiTestCase() {
    private lateinit var action: ControlActionCoordinatorImpl.Action
    private lateinit var controlsSettingsRepository: FakeControlsSettingsRepository

    private val featureFlags = FakeFeatureFlags()

    @Before
    fun setUp() {
        MockitoAnnotations.initMocks(this)
@@ -104,7 +100,6 @@ class ControlActionCoordinatorImplTest : SysuiTestCase() {
                metricsLogger,
                vibratorHelper,
                controlsSettingsRepository,
                featureFlags
        ))
        coordinator.activityContext = mContext

@@ -200,31 +195,7 @@ class ControlActionCoordinatorImplTest : SysuiTestCase() {
    }

    @Test
    fun drag_isEdge_oneWayHapticsDisabled_usesVibrate() {
        featureFlags.set(ONE_WAY_HAPTICS_API_MIGRATION, false)

        coordinator.drag(cvh, true)

        verify(vibratorHelper).vibrate(
            Vibrations.rangeEdgeEffect
        )
    }

    @Test
    fun drag_isNotEdge_oneWayHapticsDisabled_usesVibrate() {
        featureFlags.set(ONE_WAY_HAPTICS_API_MIGRATION, false)

        coordinator.drag(cvh, false)

        verify(vibratorHelper).vibrate(
            Vibrations.rangeMiddleEffect
        )
    }

    @Test
    fun drag_isEdge_oneWayHapticsEnabled_usesPerformHapticFeedback() {
        featureFlags.set(ONE_WAY_HAPTICS_API_MIGRATION, true)

    fun drag_isEdge_performsSegmentTickHaptics() {
        coordinator.drag(cvh, true)

        verify(vibratorHelper).performHapticFeedback(
@@ -234,9 +205,7 @@ class ControlActionCoordinatorImplTest : SysuiTestCase() {
    }

    @Test
    fun drag_isNotEdge_oneWayHapticsEnabled_usesPerformHapticFeedback() {
        featureFlags.set(ONE_WAY_HAPTICS_API_MIGRATION, true)

    fun drag_isNotEdge_performsFrequentTickHaptics() {
        coordinator.drag(cvh, false)

        verify(vibratorHelper).performHapticFeedback(