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

Commit 05b4c5da authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge changes I0fdcc086,I6beaccc5,Ice240ec2 into tm-qpr-dev

* changes:
  Explicitly collect on mobile subscriptions in MobuileUiAdapter
  Disable `NetworkControllerImpl`'s demo mode based on flag
  Add DATA_UNKNOWN to the data state parsing
parents 33b769bc d6def5a6
Loading
Loading
Loading
Loading
+9 −3
Original line number Diff line number Diff line
@@ -78,6 +78,7 @@ import com.android.systemui.plugins.log.LogBuffer;
import com.android.systemui.plugins.log.LogLevel;
import com.android.systemui.qs.tiles.dialog.InternetDialogFactory;
import com.android.systemui.settings.UserTracker;
import com.android.systemui.statusbar.pipeline.StatusBarPipelineFlags;
import com.android.systemui.statusbar.policy.ConfigurationController;
import com.android.systemui.statusbar.policy.DataSaverController;
import com.android.systemui.statusbar.policy.DataSaverControllerImpl;
@@ -193,6 +194,7 @@ public class NetworkControllerImpl extends BroadcastReceiver
    private final Executor mBgExecutor;
    // Handler that all callbacks are made on.
    private final CallbackHandler mCallbackHandler;
    private final StatusBarPipelineFlags mStatusBarPipelineFlags;

    private int mEmergencySource;
    private boolean mIsEmergency;
@@ -243,6 +245,7 @@ public class NetworkControllerImpl extends BroadcastReceiver
            TelephonyListenerManager telephonyListenerManager,
            @Nullable WifiManager wifiManager,
            AccessPointControllerImpl accessPointController,
            StatusBarPipelineFlags statusBarPipelineFlags,
            DemoModeController demoModeController,
            CarrierConfigTracker carrierConfigTracker,
            WifiStatusTrackerFactory trackerFactory,
@@ -261,6 +264,7 @@ public class NetworkControllerImpl extends BroadcastReceiver
                bgExecutor,
                callbackHandler,
                accessPointController,
                statusBarPipelineFlags,
                new DataUsageController(context),
                new SubscriptionDefaults(),
                deviceProvisionedController,
@@ -288,6 +292,7 @@ public class NetworkControllerImpl extends BroadcastReceiver
            Executor bgExecutor,
            CallbackHandler callbackHandler,
            AccessPointControllerImpl accessPointController,
            StatusBarPipelineFlags statusBarPipelineFlags,
            DataUsageController dataUsageController,
            SubscriptionDefaults defaultsHandler,
            DeviceProvisionedController deviceProvisionedController,
@@ -309,6 +314,7 @@ public class NetworkControllerImpl extends BroadcastReceiver
        mBgLooper = bgLooper;
        mBgExecutor = bgExecutor;
        mCallbackHandler = callbackHandler;
        mStatusBarPipelineFlags = statusBarPipelineFlags;
        mDataSaverController = new DataSaverControllerImpl(context);
        mBroadcastDispatcher = broadcastDispatcher;
        mMobileFactory = mobileFactory;
@@ -1334,7 +1340,7 @@ public class NetworkControllerImpl extends BroadcastReceiver
            mWifiSignalController.notifyListeners();
        }
        String sims = args.getString("sims");
        if (sims != null) {
        if (sims != null && !mStatusBarPipelineFlags.useNewMobileIcons()) {
            int num = MathUtils.constrain(Integer.parseInt(sims), 1, 8);
            List<SubscriptionInfo> subs = new ArrayList<>();
            if (num != mMobileSignalControllers.size()) {
@@ -1357,7 +1363,7 @@ public class NetworkControllerImpl extends BroadcastReceiver
            mCallbackHandler.setNoSims(mHasNoSubs, mSimDetected);
        }
        String mobile = args.getString("mobile");
        if (mobile != null) {
        if (mobile != null && !mStatusBarPipelineFlags.useNewMobileIcons()) {
            boolean show = mobile.equals("show");
            String datatype = args.getString("datatype");
            String slotString = args.getString("slot");
@@ -1442,7 +1448,7 @@ public class NetworkControllerImpl extends BroadcastReceiver
            controller.notifyListeners();
        }
        String carrierNetworkChange = args.getString("carriernetworkchange");
        if (carrierNetworkChange != null) {
        if (carrierNetworkChange != null && !mStatusBarPipelineFlags.useNewMobileIcons()) {
            boolean show = carrierNetworkChange.equals("show");
            for (int i = 0; i < mMobileSignalControllers.size(); i++) {
                MobileSignalController controller = mMobileSignalControllers.valueAt(i);
+12 −6
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package com.android.systemui.statusbar.pipeline.dagger

import com.android.systemui.CoreStartable
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.log.table.TableLogBuffer
import com.android.systemui.log.table.TableLogBufferFactory
@@ -29,6 +30,7 @@ import com.android.systemui.statusbar.pipeline.mobile.data.repository.UserSetupR
import com.android.systemui.statusbar.pipeline.mobile.data.repository.UserSetupRepositoryImpl
import com.android.systemui.statusbar.pipeline.mobile.domain.interactor.MobileIconsInteractor
import com.android.systemui.statusbar.pipeline.mobile.domain.interactor.MobileIconsInteractorImpl
import com.android.systemui.statusbar.pipeline.mobile.ui.MobileUiAdapter
import com.android.systemui.statusbar.pipeline.mobile.util.MobileMappingsProxy
import com.android.systemui.statusbar.pipeline.mobile.util.MobileMappingsProxyImpl
import com.android.systemui.statusbar.pipeline.shared.data.repository.ConnectivityRepository
@@ -40,6 +42,8 @@ import com.android.systemui.statusbar.pipeline.wifi.domain.interactor.WifiIntera
import dagger.Binds
import dagger.Module
import dagger.Provides
import dagger.multibindings.ClassKey
import dagger.multibindings.IntoMap

@Module
abstract class StatusBarPipelineModule {
@@ -52,8 +56,7 @@ abstract class StatusBarPipelineModule {
    @Binds
    abstract fun connectivityRepository(impl: ConnectivityRepositoryImpl): ConnectivityRepository

    @Binds
    abstract fun wifiRepository(impl: WifiRepositoryImpl): WifiRepository
    @Binds abstract fun wifiRepository(impl: WifiRepositoryImpl): WifiRepository

    @Binds
    abstract fun wifiInteractor(impl: WifiInteractorImpl): WifiInteractor
@@ -63,15 +66,18 @@ abstract class StatusBarPipelineModule {
        impl: MobileConnectionsRepositoryImpl
    ): MobileConnectionsRepository

    @Binds
    abstract fun userSetupRepository(impl: UserSetupRepositoryImpl): UserSetupRepository
    @Binds abstract fun userSetupRepository(impl: UserSetupRepositoryImpl): UserSetupRepository

    @Binds
    abstract fun mobileMappingsProxy(impl: MobileMappingsProxyImpl): MobileMappingsProxy
    @Binds abstract fun mobileMappingsProxy(impl: MobileMappingsProxyImpl): MobileMappingsProxy

    @Binds
    abstract fun mobileIconsInteractor(impl: MobileIconsInteractorImpl): MobileIconsInteractor

    @Binds
    @IntoMap
    @ClassKey(MobileUiAdapter::class)
    abstract fun bindFeature(impl: MobileUiAdapter): CoreStartable

    @Module
    companion object {
        @JvmStatic
+4 −1
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import android.telephony.TelephonyManager.DATA_CONNECTED
import android.telephony.TelephonyManager.DATA_CONNECTING
import android.telephony.TelephonyManager.DATA_DISCONNECTED
import android.telephony.TelephonyManager.DATA_DISCONNECTING
import android.telephony.TelephonyManager.DATA_UNKNOWN
import android.telephony.TelephonyManager.DataState

/** Internal enum representation of the telephony data connection states */
@@ -28,6 +29,7 @@ enum class DataConnectionState(@DataState val dataState: Int) {
    Connecting(DATA_CONNECTING),
    Disconnected(DATA_DISCONNECTED),
    Disconnecting(DATA_DISCONNECTING),
    Unknown(DATA_UNKNOWN),
}

fun @receiver:DataState Int.toDataConnectionType(): DataConnectionState =
@@ -36,5 +38,6 @@ fun @receiver:DataState Int.toDataConnectionType(): DataConnectionState =
        DATA_CONNECTING -> DataConnectionState.Connecting
        DATA_DISCONNECTED -> DataConnectionState.Disconnected
        DATA_DISCONNECTING -> DataConnectionState.Disconnecting
        else -> throw IllegalArgumentException("unknown data state received")
        DATA_UNKNOWN -> DataConnectionState.Unknown
        else -> throw IllegalArgumentException("unknown data state received $this")
    }
+17 −14
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package com.android.systemui.statusbar.pipeline.mobile.ui

import com.android.systemui.CoreStartable
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.dagger.qualifiers.Application
import com.android.systemui.statusbar.phone.StatusBarIconController
@@ -29,9 +30,10 @@ import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.SharingStarted
import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.flow.collectLatest
import kotlinx.coroutines.flow.mapLatest
import kotlinx.coroutines.flow.onEach
import kotlinx.coroutines.flow.stateIn
import kotlinx.coroutines.launch

/**
 * This class is intended to provide a context to collect on the
@@ -50,9 +52,9 @@ constructor(
    interactor: MobileIconsInteractor,
    private val iconController: StatusBarIconController,
    private val iconsViewModelFactory: MobileIconsViewModel.Factory,
    @Application scope: CoroutineScope,
    @Application private val scope: CoroutineScope,
    private val statusBarPipelineFlags: StatusBarPipelineFlags,
) {
) : CoreStartable {
    private val mobileSubIds: Flow<List<Int>> =
        interactor.filteredSubscriptions.mapLatest { infos ->
            infos.map { subscriptionInfo -> subscriptionInfo.subscriptionId }
@@ -66,18 +68,19 @@ constructor(
     * NOTE: this should go away as the view presenter learns more about this data pipeline
     */
    private val mobileSubIdsState: StateFlow<List<Int>> =
        mobileSubIds
            .onEach {
        mobileSubIds.stateIn(scope, SharingStarted.WhileSubscribed(), listOf())

    override fun start() {
        // Only notify the icon controller if we want to *render* the new icons.
        // Note that this flow may still run if
        // [statusBarPipelineFlags.runNewMobileIconsBackend] is true because we may want to
        // get the logging data without rendering.
        if (statusBarPipelineFlags.useNewMobileIcons()) {
                    // Notify the icon controller here so that it knows to add icons
                    iconController.setNewMobileIconSubIds(it)
            scope.launch {
                mobileSubIds.collectLatest { iconController.setNewMobileIconSubIds(it) }
            }
        }
    }
            .stateIn(scope, SharingStarted.WhileSubscribed(), listOf())

    /**
     * Create a MobileIconsViewModel for a given [IconManager], and bind it to to the manager's
+2 −0
Original line number Diff line number Diff line
@@ -72,6 +72,7 @@ import com.android.systemui.demomode.DemoModeController;
import com.android.systemui.dump.DumpManager;
import com.android.systemui.plugins.log.LogBuffer;
import com.android.systemui.settings.UserTracker;
import com.android.systemui.statusbar.pipeline.StatusBarPipelineFlags;
import com.android.systemui.statusbar.pipeline.mobile.util.FakeMobileMappingsProxy;
import com.android.systemui.statusbar.policy.DeviceProvisionedController;
import com.android.systemui.statusbar.policy.DeviceProvisionedController.DeviceProvisionedListener;
@@ -245,6 +246,7 @@ public class NetworkControllerBaseTest extends SysuiTestCase {
                mFakeExecutor,
                mCallbackHandler,
                mock(AccessPointControllerImpl.class),
                mock(StatusBarPipelineFlags.class),
                mock(DataUsageController.class),
                mMockSubDefaults,
                mMockProvisionController,
Loading