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

Commit 1832afa2 authored by Haijie Hong's avatar Haijie Hong
Browse files

Make Spatial Audio as a separated module

Extract Spatial Audio into a separated module to make it easier to override

Flag: aconfig new_volume_panel DISABLED
Bug: 322279959
Test: m SystemUI

Change-Id: I5b48c4f74e6b5fa8b7662871c5ce52942adbf2b8
parent e7c3efc7
Loading
Loading
Loading
Loading
+0 −14
Original line number Diff line number Diff line
@@ -18,9 +18,6 @@ package com.android.systemui.volume.dagger

import android.content.Context
import android.media.AudioManager
import com.android.settingslib.media.data.repository.SpatializerRepository
import com.android.settingslib.media.data.repository.SpatializerRepositoryImpl
import com.android.settingslib.media.domain.interactor.SpatializerInteractor
import com.android.settingslib.statusbar.notification.domain.interactor.NotificationsSoundPolicyInteractor
import com.android.settingslib.volume.data.repository.AudioRepository
import com.android.settingslib.volume.data.repository.AudioRepositoryImpl
@@ -66,16 +63,5 @@ interface AudioModule {
            notificationsSoundPolicyInteractor: NotificationsSoundPolicyInteractor,
        ): AudioVolumeInteractor =
            AudioVolumeInteractor(audioRepository, notificationsSoundPolicyInteractor)

        @Provides
        fun provdieSpatializerRepository(
            audioManager: AudioManager,
            @Background backgroundContext: CoroutineContext,
        ): SpatializerRepository =
            SpatializerRepositoryImpl(audioManager.spatializer, backgroundContext)

        @Provides
        fun provideSpatializerInetractor(repository: SpatializerRepository): SpatializerInteractor =
            SpatializerInteractor(repository)
    }
}
+48 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2024 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.volume.dagger

import android.media.AudioManager
import android.media.Spatializer
import com.android.settingslib.media.data.repository.SpatializerRepository
import com.android.settingslib.media.data.repository.SpatializerRepositoryImpl
import com.android.settingslib.media.domain.interactor.SpatializerInteractor
import com.android.systemui.dagger.qualifiers.Background
import dagger.Module
import dagger.Provides
import kotlin.coroutines.CoroutineContext

/** Spatializer module. */
@Module
interface SpatializerModule {
    companion object {
        @Provides
        fun provideSpatializer(
            audioManager: AudioManager,
        ): Spatializer = audioManager.spatializer

        @Provides
        fun provdieSpatializerRepository(
            spatializer: Spatializer,
            @Background backgroundContext: CoroutineContext,
        ): SpatializerRepository = SpatializerRepositoryImpl(spatializer, backgroundContext)

        @Provides
        fun provideSpatializerInetractor(repository: SpatializerRepository): SpatializerInteractor =
            SpatializerInteractor(repository)
    }
}
+2 −1
Original line number Diff line number Diff line
@@ -59,7 +59,8 @@ import dagger.multibindings.IntoSet;
                AudioModule.class,
                AncModule.class,
                CaptioningModule.class,
                MediaDevicesModule.class
                MediaDevicesModule.class,
                SpatializerModule.class,
        },
        subcomponents = {
                VolumePanelComponent.class