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

Commit b5c9babe authored by Evan Laird's avatar Evan Laird Committed by Android (Google) Code Review
Browse files

Merge changes Ia4b79ae0,If1b71c97,I679039bd into main

* changes:
  [Satellite] Initial data and domain layers for OEM satellite
  [Sb] Add permissions for satellite_communication
  [Sb] BindableIcon shim support for StatusBarIconConroller
parents 664a3421 c1a02736
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -56,6 +56,7 @@
        <permission name="android.permission.REAL_GET_TASKS"/>
        <permission name="android.permission.REQUEST_NETWORK_SCORES"/>
        <permission name="android.permission.RECEIVE_MEDIA_RESOURCE_USAGE"/>
        <permission name="android.permission.SATELLITE_COMMUNICATION"/>
        <permission name="android.permission.SET_WALLPAPER_DIM_AMOUNT"/>
        <permission name="android.permission.START_ACTIVITIES_FROM_BACKGROUND" />
        <permission name="android.permission.START_ACTIVITY_AS_CALLER"/>
+1 −0
Original line number Diff line number Diff line
@@ -84,6 +84,7 @@
    <uses-permission android:name="android.permission.READ_WIFI_CREDENTIAL"/>
    <uses-permission android:name="android.permission.LOCATION_HARDWARE" />
    <uses-permission android:name="android.permission.NETWORK_FACTORY" />
    <uses-permission android:name="android.permission.SATELLITE_COMMUNICATION" />
    <!-- Physical hardware -->
    <uses-permission android:name="android.permission.MANAGE_USB" />
    <uses-permission android:name="android.permission.CONTROL_DISPLAY_BRIGHTNESS" />
+8 −2
Original line number Diff line number Diff line
@@ -68,6 +68,8 @@ class FakeMobileIconsInteractor(

    override val isSingleCarrier = MutableStateFlow(true)

    override val icons: MutableStateFlow<List<MobileIconInteractor>> = MutableStateFlow(emptyList())

    private val _defaultMobileIconMapping = MutableStateFlow(TEST_MAPPING)
    override val defaultMobileIconMapping = _defaultMobileIconMapping

@@ -80,8 +82,12 @@ class FakeMobileIconsInteractor(
    override val isForceHidden = MutableStateFlow(false)

    /** Always returns a new fake interactor */
    override fun getMobileConnectionInteractorForSubId(subId: Int): MobileIconInteractor {
        return FakeMobileIconInteractor(tableLogBuffer).also { interactorCache[subId] = it }
    override fun getMobileConnectionInteractorForSubId(subId: Int): FakeMobileIconInteractor {
        return FakeMobileIconInteractor(tableLogBuffer).also {
            interactorCache[subId] = it
            // Also update the icons
            icons.value = interactorCache.values.toList()
        }
    }

    /**
+7 −0
Original line number Diff line number Diff line
@@ -91,6 +91,7 @@ import android.telecom.TelecomManager;
import android.telephony.CarrierConfigManager;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
import android.telephony.satellite.SatelliteManager;
import android.view.Choreographer;
import android.view.CrossWindowBlurListeners;
import android.view.IWindowManager;
@@ -712,4 +713,10 @@ public class FrameworkServicesModule {
                ServiceManager.getService(Context.URI_GRANTS_SERVICE)
        );
    }

    @Provides
    @Singleton
    static Optional<SatelliteManager> provideSatelliteManager(Context context) {
        return Optional.ofNullable(context.getSystemService(SatelliteManager.class));
    }
}
+20 −0
Original line number Diff line number Diff line
@@ -14,6 +14,7 @@

package com.android.systemui.statusbar.phone;

import static com.android.systemui.statusbar.phone.StatusBarIconHolder.TYPE_BINDABLE;
import static com.android.systemui.statusbar.phone.StatusBarIconHolder.TYPE_ICON;
import static com.android.systemui.statusbar.phone.StatusBarIconHolder.TYPE_MOBILE_NEW;
import static com.android.systemui.statusbar.phone.StatusBarIconHolder.TYPE_WIFI_NEW;
@@ -40,11 +41,13 @@ import com.android.systemui.statusbar.BaseStatusBarFrameLayout;
import com.android.systemui.statusbar.StatusBarIconView;
import com.android.systemui.statusbar.StatusIconDisplayable;
import com.android.systemui.statusbar.connectivity.ui.MobileContextProvider;
import com.android.systemui.statusbar.phone.StatusBarIconHolder.BindableIconHolder;
import com.android.systemui.statusbar.phone.StatusBarSignalPolicy.CallIndicatorIconState;
import com.android.systemui.statusbar.pipeline.mobile.ui.MobileUiAdapter;
import com.android.systemui.statusbar.pipeline.mobile.ui.binder.MobileIconsBinder;
import com.android.systemui.statusbar.pipeline.mobile.ui.view.ModernStatusBarMobileView;
import com.android.systemui.statusbar.pipeline.mobile.ui.viewmodel.MobileIconsViewModel;
import com.android.systemui.statusbar.pipeline.shared.ui.view.ModernStatusBarView;
import com.android.systemui.statusbar.pipeline.wifi.ui.WifiUiAdapter;
import com.android.systemui.statusbar.pipeline.wifi.ui.view.ModernStatusBarWifiView;
import com.android.systemui.statusbar.pipeline.wifi.ui.viewmodel.LocationBasedWifiViewModel;
@@ -432,6 +435,10 @@ public interface StatusBarIconController {

                case TYPE_MOBILE_NEW:
                    return addNewMobileIcon(index, slot, holder.getTag());

                case TYPE_BINDABLE:
                    // Safe cast, since only BindableIconHolders can set this tag on themselves
                    return addBindableIcon((BindableIconHolder) holder, index);
            }

            return null;
@@ -446,6 +453,18 @@ public interface StatusBarIconController {
            return view;
        }

        /**
         * ModernStatusBarViews can be created and bound, and thus do not need to update their
         *  drawable by sending multiple calls to setIcon. Instead, by using a bindable
         * icon view, we can simply create the icon when requested and allow the
         * ViewBinder to control its visual state.
         */
        protected StatusIconDisplayable addBindableIcon(BindableIconHolder holder, int index) {
            ModernStatusBarView view = holder.getInitializer().createAndBind(mContext);
            mGroup.addView(view, index, onCreateLayoutParams());
            return view;
        }

        protected StatusIconDisplayable addNewWifiIcon(int index, String slot) {
            ModernStatusBarWifiView view = onCreateModernStatusBarWifiView(slot);
            mGroup.addView(view, index, onCreateLayoutParams());
@@ -530,6 +549,7 @@ public interface StatusBarIconController {
                    return;
                case TYPE_MOBILE_NEW:
                case TYPE_WIFI_NEW:
                case TYPE_BINDABLE:
                    // Nothing, the new icons update themselves
                    return;
                default:
Loading