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

Commit 063afba0 authored by Michael Mikhail's avatar Michael Mikhail
Browse files

Add provider for media controls falsing system

Flag: com.android.systemui.media_controls_in_compose
Bug: 397989775
Test: Build.
Change-Id: Ied0bdd449eeb4bde485cc9799dcd009b8046e545
parent 1d71862c
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ import com.android.systemui.media.controls.ui.controller.MediaHostStatesManager;
import com.android.systemui.media.controls.ui.view.MediaHost;
import com.android.systemui.media.dream.dagger.MediaComplicationComponent;
import com.android.systemui.media.remedia.data.MediaDataModule;
import com.android.systemui.media.remedia.ui.MediaUiModule;
import com.android.systemui.media.taptotransfer.receiver.MediaTttReceiverLogBuffer;
import com.android.systemui.media.taptotransfer.sender.MediaTttSenderLogBuffer;

@@ -41,6 +42,7 @@ import javax.inject.Named;
        includes = {
            MediaDomainModule.class,
            MediaDataModule.class,
            MediaUiModule.class,
        },
        subcomponents = {
        MediaComplicationComponent.class,
+36 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2025 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.media.remedia.ui

import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.media.remedia.ui.viewmodel.MediaFalsingSystem
import com.android.systemui.media.remedia.ui.viewmodel.MediaFalsingSystemImpl
import dagger.Module
import dagger.Provides

/** Dagger module for injecting media controls UI interfaces. */
@Module
interface MediaUiModule {

    companion object {
        @Provides
        @SysUISingleton
        fun providesMediaFalsingSystem(falsingSystem: MediaFalsingSystemImpl): MediaFalsingSystem {
            return falsingSystem
        }
    }
}
+40 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2025 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.media.remedia.ui.viewmodel

import com.android.systemui.classifier.Classifier
import com.android.systemui.plugins.FalsingManager
import javax.inject.Inject

interface MediaFalsingSystem {
    fun runIfNotFalseTap(@FalsingManager.Penalty penalty: Int, block: () -> Unit)

    fun isFalseTouch(@Classifier.InteractionType interactionType: Int): Boolean
}

class MediaFalsingSystemImpl @Inject constructor(private val falsingManager: FalsingManager) :
    MediaFalsingSystem {
    override fun runIfNotFalseTap(penalty: Int, block: () -> Unit) {
        if (!falsingManager.isFalseTap(penalty)) {
            block()
        }
    }

    override fun isFalseTouch(interactionType: Int): Boolean {
        return falsingManager.isFalseTouch(interactionType)
    }
}
+1 −7
Original line number Diff line number Diff line
@@ -52,7 +52,7 @@ class MediaViewModel
@AssistedInject
constructor(
    private val interactor: MediaInteractor,
    private val falsingSystem: FalsingSystem,
    private val falsingSystem: MediaFalsingSystem,
    @Assisted private val context: Context,
    @Assisted private val carouselVisibility: MediaCarouselVisibility,
) : ExclusiveActivatable() {
@@ -397,12 +397,6 @@ constructor(
        return abs(x) >= abs(y)
    }

    interface FalsingSystem {
        fun runIfNotFalseTap(@FalsingManager.Penalty penalty: Int, block: () -> Unit)

        fun isFalseTouch(@Classifier.InteractionType interactionType: Int): Boolean
    }

    @AssistedFactory
    interface Factory {
        fun create(context: Context, carouselVisibility: MediaCarouselVisibility): MediaViewModel