Loading src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java +7 −5 Original line number Diff line number Diff line Loading @@ -421,11 +421,13 @@ public class BluetoothDeviceDetailsFragment extends RestrictedDashboardFragment protected List<AbstractPreferenceController> createPreferenceControllers(Context context) { List<String> invisibleProfiles = List.of(); if (Flags.enableBluetoothDeviceDetailsPolish()) { if (mFormatter == null) { mFormatter = FeatureFactory.getFeatureFactory() .getBluetoothFeatureProvider() .getDeviceDetailsFragmentFormatter( requireContext(), this, mBluetoothAdapter, mCachedDevice); } invisibleProfiles = mFormatter.getInvisibleBluetoothProfiles( FragmentTypeModel.DeviceDetailsMainFragment.INSTANCE); Loading src/com/android/settings/bluetooth/BluetoothFeatureProvider.java +7 −9 Original line number Diff line number Diff line Loading @@ -25,7 +25,6 @@ import android.media.Spatializer; import android.net.Uri; import androidx.annotation.NonNull; import androidx.lifecycle.LifecycleCoroutineScope; import androidx.preference.Preference; import com.android.settings.SettingsPreferenceFragment; Loading @@ -34,12 +33,12 @@ import com.android.settings.bluetooth.ui.view.DeviceDetailsFragmentFormatter; import com.android.settingslib.bluetooth.CachedBluetoothDevice; import com.android.settingslib.bluetooth.devicesettings.data.repository.DeviceSettingRepository; import kotlinx.coroutines.CoroutineScope; import java.util.List; import java.util.Set; /** * Provider for bluetooth related features. */ /** Provider for bluetooth related features. */ public interface BluetoothFeatureProvider { /** Loading Loading @@ -90,22 +89,21 @@ public interface BluetoothFeatureProvider { * @param bluetoothDevice the bluetooth device * @return the profiles which should be hidden */ Set<String> getInvisibleProfilePreferenceKeys( Context context, BluetoothDevice bluetoothDevice); Set<String> getInvisibleProfilePreferenceKeys(Context context, BluetoothDevice bluetoothDevice); /** Gets DeviceSettingRepository. */ @NonNull DeviceSettingRepository getDeviceSettingRepository( @NonNull Context context, @NonNull BluetoothAdapter bluetoothAdapter, @NonNull LifecycleCoroutineScope scope); @NonNull CoroutineScope scope); /** Gets spatial audio interactor. */ @NonNull SpatialAudioInteractor getSpatialAudioInteractor( @NonNull Context context, @NonNull AudioManager audioManager, @NonNull LifecycleCoroutineScope scope); @NonNull CoroutineScope scope); /** Gets device details fragment layout formatter. */ @NonNull Loading src/com/android/settings/bluetooth/BluetoothFeatureProviderImpl.kt +4 −2 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import android.content.Context import android.media.AudioManager import android.media.Spatializer import android.net.Uri import android.util.Log import androidx.lifecycle.LifecycleCoroutineScope import androidx.preference.Preference import com.android.settings.SettingsPreferenceFragment Loading @@ -37,6 +38,7 @@ import com.android.settingslib.media.data.repository.SpatializerRepositoryImpl import com.android.settingslib.media.domain.interactor.SpatializerInteractor import com.google.common.collect.ImmutableList import com.google.common.collect.ImmutableSet import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers /** Impl of [BluetoothFeatureProvider] */ Loading Loading @@ -76,14 +78,14 @@ open class BluetoothFeatureProviderImpl : BluetoothFeatureProvider { override fun getDeviceSettingRepository( context: Context, bluetoothAdapter: BluetoothAdapter, scope: LifecycleCoroutineScope scope: CoroutineScope ): DeviceSettingRepository = DeviceSettingRepositoryImpl(context, bluetoothAdapter, scope, Dispatchers.IO) override fun getSpatialAudioInteractor( context: Context, audioManager: AudioManager, scope: LifecycleCoroutineScope scope: CoroutineScope, ): SpatialAudioInteractor { return SpatialAudioInteractorImpl( context, audioManager, Loading src/com/android/settings/bluetooth/domain/interactor/SpatialAudioInteractor.kt +1 −1 Original line number Diff line number Diff line Loading @@ -147,7 +147,7 @@ class SpatialAudioInteractorImpl( } companion object { private const val TAG = "SpatialAudioInteractorImpl" private const val TAG = "SpatialAudioInteractor" private const val INDEX_SPATIAL_AUDIO_OFF = 0 private const val INDEX_SPATIAL_AUDIO_ON = 1 private const val INDEX_HEAD_TRACKING_ENABLED = 2 Loading src/com/android/settings/bluetooth/ui/view/DeviceDetailsFragmentFormatter.kt +7 −23 Original line number Diff line number Diff line Loading @@ -19,11 +19,10 @@ package com.android.settings.bluetooth.ui.view import android.bluetooth.BluetoothAdapter import android.content.Context import android.content.Intent import android.media.AudioManager import android.os.Bundle import androidx.compose.animation.AnimatedVisibility import androidx.compose.animation.expandVertically import androidx.compose.animation.shrinkVertically import androidx.compose.animation.fadeIn import androidx.compose.animation.fadeOut import androidx.compose.foundation.background import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.padding Loading @@ -33,14 +32,12 @@ import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.lifecycleScope import androidx.preference.Preference import com.android.settings.R import com.android.settings.SettingsPreferenceFragment Loading @@ -52,7 +49,6 @@ import com.android.settings.bluetooth.ui.model.FragmentTypeModel import com.android.settings.bluetooth.ui.view.DeviceDetailsMoreSettingsFragment.Companion.KEY_DEVICE_ADDRESS import com.android.settings.bluetooth.ui.viewmodel.BluetoothDeviceDetailsViewModel import com.android.settings.core.SubSettingLauncher import com.android.settings.overlay.FeatureFactory.Companion.featureFactory import com.android.settings.spa.preference.ComposePreference import com.android.settingslib.bluetooth.CachedBluetoothDevice import com.android.settingslib.bluetooth.devicesettings.shared.model.DeviceSettingActionModel Loading Loading @@ -97,29 +93,17 @@ interface DeviceDetailsFragmentFormatter { class DeviceDetailsFragmentFormatterImpl( private val context: Context, private val fragment: SettingsPreferenceFragment, bluetoothAdapter: BluetoothAdapter, private val bluetoothAdapter: BluetoothAdapter, private val cachedDevice: CachedBluetoothDevice, private val backgroundCoroutineContext: CoroutineContext, ) : DeviceDetailsFragmentFormatter { private val repository = featureFactory.bluetoothFeatureProvider.getDeviceSettingRepository( fragment.requireActivity().application, bluetoothAdapter, fragment.lifecycleScope, ) private val spatialAudioInteractor = featureFactory.bluetoothFeatureProvider.getSpatialAudioInteractor( fragment.requireActivity().application, context.getSystemService(AudioManager::class.java), fragment.lifecycleScope, ) private val viewModel: BluetoothDeviceDetailsViewModel = ViewModelProvider( fragment, BluetoothDeviceDetailsViewModel.Factory( fragment.requireActivity().application, repository, spatialAudioInteractor, bluetoothAdapter, cachedDevice, backgroundCoroutineContext, ), Loading Loading @@ -224,8 +208,8 @@ class DeviceDetailsFragmentFormatterImpl( val settings = contents AnimatedVisibility( visible = settings.isNotEmpty(), enter = expandVertically(expandFrom = Alignment.Top), exit = shrinkVertically(shrinkTowards = Alignment.Top), enter = fadeIn(), exit = fadeOut(), ) { Box { Box( Loading Loading
src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java +7 −5 Original line number Diff line number Diff line Loading @@ -421,11 +421,13 @@ public class BluetoothDeviceDetailsFragment extends RestrictedDashboardFragment protected List<AbstractPreferenceController> createPreferenceControllers(Context context) { List<String> invisibleProfiles = List.of(); if (Flags.enableBluetoothDeviceDetailsPolish()) { if (mFormatter == null) { mFormatter = FeatureFactory.getFeatureFactory() .getBluetoothFeatureProvider() .getDeviceDetailsFragmentFormatter( requireContext(), this, mBluetoothAdapter, mCachedDevice); } invisibleProfiles = mFormatter.getInvisibleBluetoothProfiles( FragmentTypeModel.DeviceDetailsMainFragment.INSTANCE); Loading
src/com/android/settings/bluetooth/BluetoothFeatureProvider.java +7 −9 Original line number Diff line number Diff line Loading @@ -25,7 +25,6 @@ import android.media.Spatializer; import android.net.Uri; import androidx.annotation.NonNull; import androidx.lifecycle.LifecycleCoroutineScope; import androidx.preference.Preference; import com.android.settings.SettingsPreferenceFragment; Loading @@ -34,12 +33,12 @@ import com.android.settings.bluetooth.ui.view.DeviceDetailsFragmentFormatter; import com.android.settingslib.bluetooth.CachedBluetoothDevice; import com.android.settingslib.bluetooth.devicesettings.data.repository.DeviceSettingRepository; import kotlinx.coroutines.CoroutineScope; import java.util.List; import java.util.Set; /** * Provider for bluetooth related features. */ /** Provider for bluetooth related features. */ public interface BluetoothFeatureProvider { /** Loading Loading @@ -90,22 +89,21 @@ public interface BluetoothFeatureProvider { * @param bluetoothDevice the bluetooth device * @return the profiles which should be hidden */ Set<String> getInvisibleProfilePreferenceKeys( Context context, BluetoothDevice bluetoothDevice); Set<String> getInvisibleProfilePreferenceKeys(Context context, BluetoothDevice bluetoothDevice); /** Gets DeviceSettingRepository. */ @NonNull DeviceSettingRepository getDeviceSettingRepository( @NonNull Context context, @NonNull BluetoothAdapter bluetoothAdapter, @NonNull LifecycleCoroutineScope scope); @NonNull CoroutineScope scope); /** Gets spatial audio interactor. */ @NonNull SpatialAudioInteractor getSpatialAudioInteractor( @NonNull Context context, @NonNull AudioManager audioManager, @NonNull LifecycleCoroutineScope scope); @NonNull CoroutineScope scope); /** Gets device details fragment layout formatter. */ @NonNull Loading
src/com/android/settings/bluetooth/BluetoothFeatureProviderImpl.kt +4 −2 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import android.content.Context import android.media.AudioManager import android.media.Spatializer import android.net.Uri import android.util.Log import androidx.lifecycle.LifecycleCoroutineScope import androidx.preference.Preference import com.android.settings.SettingsPreferenceFragment Loading @@ -37,6 +38,7 @@ import com.android.settingslib.media.data.repository.SpatializerRepositoryImpl import com.android.settingslib.media.domain.interactor.SpatializerInteractor import com.google.common.collect.ImmutableList import com.google.common.collect.ImmutableSet import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers /** Impl of [BluetoothFeatureProvider] */ Loading Loading @@ -76,14 +78,14 @@ open class BluetoothFeatureProviderImpl : BluetoothFeatureProvider { override fun getDeviceSettingRepository( context: Context, bluetoothAdapter: BluetoothAdapter, scope: LifecycleCoroutineScope scope: CoroutineScope ): DeviceSettingRepository = DeviceSettingRepositoryImpl(context, bluetoothAdapter, scope, Dispatchers.IO) override fun getSpatialAudioInteractor( context: Context, audioManager: AudioManager, scope: LifecycleCoroutineScope scope: CoroutineScope, ): SpatialAudioInteractor { return SpatialAudioInteractorImpl( context, audioManager, Loading
src/com/android/settings/bluetooth/domain/interactor/SpatialAudioInteractor.kt +1 −1 Original line number Diff line number Diff line Loading @@ -147,7 +147,7 @@ class SpatialAudioInteractorImpl( } companion object { private const val TAG = "SpatialAudioInteractorImpl" private const val TAG = "SpatialAudioInteractor" private const val INDEX_SPATIAL_AUDIO_OFF = 0 private const val INDEX_SPATIAL_AUDIO_ON = 1 private const val INDEX_HEAD_TRACKING_ENABLED = 2 Loading
src/com/android/settings/bluetooth/ui/view/DeviceDetailsFragmentFormatter.kt +7 −23 Original line number Diff line number Diff line Loading @@ -19,11 +19,10 @@ package com.android.settings.bluetooth.ui.view import android.bluetooth.BluetoothAdapter import android.content.Context import android.content.Intent import android.media.AudioManager import android.os.Bundle import androidx.compose.animation.AnimatedVisibility import androidx.compose.animation.expandVertically import androidx.compose.animation.shrinkVertically import androidx.compose.animation.fadeIn import androidx.compose.animation.fadeOut import androidx.compose.foundation.background import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.padding Loading @@ -33,14 +32,12 @@ import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.lifecycleScope import androidx.preference.Preference import com.android.settings.R import com.android.settings.SettingsPreferenceFragment Loading @@ -52,7 +49,6 @@ import com.android.settings.bluetooth.ui.model.FragmentTypeModel import com.android.settings.bluetooth.ui.view.DeviceDetailsMoreSettingsFragment.Companion.KEY_DEVICE_ADDRESS import com.android.settings.bluetooth.ui.viewmodel.BluetoothDeviceDetailsViewModel import com.android.settings.core.SubSettingLauncher import com.android.settings.overlay.FeatureFactory.Companion.featureFactory import com.android.settings.spa.preference.ComposePreference import com.android.settingslib.bluetooth.CachedBluetoothDevice import com.android.settingslib.bluetooth.devicesettings.shared.model.DeviceSettingActionModel Loading Loading @@ -97,29 +93,17 @@ interface DeviceDetailsFragmentFormatter { class DeviceDetailsFragmentFormatterImpl( private val context: Context, private val fragment: SettingsPreferenceFragment, bluetoothAdapter: BluetoothAdapter, private val bluetoothAdapter: BluetoothAdapter, private val cachedDevice: CachedBluetoothDevice, private val backgroundCoroutineContext: CoroutineContext, ) : DeviceDetailsFragmentFormatter { private val repository = featureFactory.bluetoothFeatureProvider.getDeviceSettingRepository( fragment.requireActivity().application, bluetoothAdapter, fragment.lifecycleScope, ) private val spatialAudioInteractor = featureFactory.bluetoothFeatureProvider.getSpatialAudioInteractor( fragment.requireActivity().application, context.getSystemService(AudioManager::class.java), fragment.lifecycleScope, ) private val viewModel: BluetoothDeviceDetailsViewModel = ViewModelProvider( fragment, BluetoothDeviceDetailsViewModel.Factory( fragment.requireActivity().application, repository, spatialAudioInteractor, bluetoothAdapter, cachedDevice, backgroundCoroutineContext, ), Loading Loading @@ -224,8 +208,8 @@ class DeviceDetailsFragmentFormatterImpl( val settings = contents AnimatedVisibility( visible = settings.isNotEmpty(), enter = expandVertically(expandFrom = Alignment.Top), exit = shrinkVertically(shrinkTowards = Alignment.Top), enter = fadeIn(), exit = fadeOut(), ) { Box { Box( Loading