diff options
| author | 2024-12-04 13:55:17 +0000 | |
|---|---|---|
| committer | 2024-12-04 13:55:17 +0000 | |
| commit | 4b760c26d36661ba2d62eee29b0b4a5784edfdbe (patch) | |
| tree | 1a1d99fd95e1a916d396ee8252d65d8e6626c51c | |
| parent | b0ad03042008f6a04fda5505d551416094ad4975 (diff) | |
| parent | d017391fcc7c0bdb44cbab7b581064c7fe026999 (diff) | |
Merge "Enhance TelephonyDisplayInfo API" into main
6 files changed, 78 insertions, 10 deletions
diff --git a/packages/SettingsLib/src/com/android/settingslib/mobile/MobileStatusTracker.java b/packages/SettingsLib/src/com/android/settingslib/mobile/MobileStatusTracker.java index 35e3dd3379f0..e1be1d21a9b1 100644 --- a/packages/SettingsLib/src/com/android/settingslib/mobile/MobileStatusTracker.java +++ b/packages/SettingsLib/src/com/android/settingslib/mobile/MobileStatusTracker.java @@ -231,7 +231,7 @@ public class MobileStatusTracker { public SignalStrength signalStrength; public TelephonyDisplayInfo telephonyDisplayInfo = new TelephonyDisplayInfo(TelephonyManager.NETWORK_TYPE_UNKNOWN, - TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NONE, false); + TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NONE, false, false, false); /** * Empty constructor diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialogController.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialogController.java index 244f024625db..bed802163b1a 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialogController.java +++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialogController.java @@ -149,7 +149,7 @@ public class InternetDialogController implements AccessPointController.AccessPoi private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG); private static final TelephonyDisplayInfo DEFAULT_TELEPHONY_DISPLAY_INFO = new TelephonyDisplayInfo(TelephonyManager.NETWORK_TYPE_UNKNOWN, - TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NONE, false); + TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NONE, false, false, false); static final int MAX_WIFI_ENTRY_COUNT = 3; diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/connectivity/MobileState.kt b/packages/SystemUI/src/com/android/systemui/statusbar/connectivity/MobileState.kt index c37b01fff578..a9c278490a0b 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/connectivity/MobileState.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/connectivity/MobileState.kt @@ -49,7 +49,7 @@ internal class MobileState( ) : ConnectivityState() { @JvmField var telephonyDisplayInfo = TelephonyDisplayInfo(TelephonyManager.NETWORK_TYPE_UNKNOWN, - TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NONE, false) + TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NONE, false, false, false) @JvmField var serviceState: ServiceState? = null @JvmField var signalStrength: SignalStrength? = null diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionRepositoryTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionRepositoryTest.kt index 763449028f28..728f4183ccce 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionRepositoryTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionRepositoryTest.kt @@ -655,14 +655,14 @@ class MobileConnectionRepositoryTest : SysuiTestCase() { // CDMA roaming is off, GSM roaming is off whenever(telephonyManager.cdmaEnhancedRoamingIndicatorDisplayNumber).thenReturn(ERI_OFF) cb.onDisplayInfoChanged( - TelephonyDisplayInfo(NETWORK_TYPE_LTE, NETWORK_TYPE_UNKNOWN, false) + TelephonyDisplayInfo(NETWORK_TYPE_LTE, NETWORK_TYPE_UNKNOWN, false, false, false) ) assertThat(latest).isFalse() // CDMA roaming is off, GSM roaming is on cb.onDisplayInfoChanged( - TelephonyDisplayInfo(NETWORK_TYPE_LTE, NETWORK_TYPE_UNKNOWN, true) + TelephonyDisplayInfo(NETWORK_TYPE_LTE, NETWORK_TYPE_UNKNOWN, true, false, false) ) assertThat(latest).isTrue() diff --git a/services/core/java/com/android/server/TelephonyRegistry.java b/services/core/java/com/android/server/TelephonyRegistry.java index e57b00944f7c..eba9a25717dd 100644 --- a/services/core/java/com/android/server/TelephonyRegistry.java +++ b/services/core/java/com/android/server/TelephonyRegistry.java @@ -2166,7 +2166,11 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub { overrideNetworkType = TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NR_NSA_MMWAVE; } boolean isRoaming = telephonyDisplayInfo.isRoaming(); - return new TelephonyDisplayInfo(networkType, overrideNetworkType, isRoaming); + boolean isNtn = telephonyDisplayInfo.isNtn(); + boolean isSatelliteConstrainedData = + telephonyDisplayInfo.isSatelliteConstrainedData(); + return new TelephonyDisplayInfo(networkType, overrideNetworkType, isRoaming, + isNtn, isSatelliteConstrainedData); } public void notifyCallForwardingChanged(boolean cfi) { diff --git a/telephony/java/android/telephony/TelephonyDisplayInfo.java b/telephony/java/android/telephony/TelephonyDisplayInfo.java index e01b10eed4db..bb4ce6e787de 100644 --- a/telephony/java/android/telephony/TelephonyDisplayInfo.java +++ b/telephony/java/android/telephony/TelephonyDisplayInfo.java @@ -16,12 +16,15 @@ package android.telephony; +import android.annotation.FlaggedApi; import android.annotation.NonNull; import android.os.Parcel; import android.os.Parcelable; import android.telephony.Annotation.NetworkType; import android.telephony.Annotation.OverrideNetworkType; +import com.android.internal.telephony.flags.Flags; + import java.util.Objects; /** @@ -94,6 +97,12 @@ public final class TelephonyDisplayInfo implements Parcelable { private final boolean mIsRoaming; + @FlaggedApi(Flags.FLAG_CARRIER_ENABLED_SATELLITE_FLAG) + private final boolean mIsNtn; + + @FlaggedApi(Flags.FLAG_CARRIER_ENABLED_SATELLITE_FLAG) + private final boolean mIsSatelliteConstrainedData; + /** * Constructor * @@ -106,7 +115,7 @@ public final class TelephonyDisplayInfo implements Parcelable { @Deprecated public TelephonyDisplayInfo(@NetworkType int networkType, @OverrideNetworkType int overrideNetworkType) { - this(networkType, overrideNetworkType, false); + this(networkType, overrideNetworkType, false, false, false); } /** @@ -118,12 +127,37 @@ public final class TelephonyDisplayInfo implements Parcelable { * * @hide */ + @Deprecated public TelephonyDisplayInfo(@NetworkType int networkType, @OverrideNetworkType int overrideNetworkType, boolean isRoaming) { mNetworkType = networkType; mOverrideNetworkType = overrideNetworkType; mIsRoaming = isRoaming; + mIsNtn = false; + mIsSatelliteConstrainedData = false; + } + + /** + * Constructor + * + * @param networkType Current packet-switching cellular network type + * @param overrideNetworkType The override network type + * @param isRoaming True if the device is roaming after override. + * @param isNtn True if the device is camped to non-terrestrial network. + * @param isSatelliteConstrainedData True if the device satellite internet is bandwidth + * constrained. + * + * @hide + */ + public TelephonyDisplayInfo(@NetworkType int networkType, + @OverrideNetworkType int overrideNetworkType, + boolean isRoaming, boolean isNtn, boolean isSatelliteConstrainedData) { + mNetworkType = networkType; + mOverrideNetworkType = overrideNetworkType; + mIsRoaming = isRoaming; + mIsNtn = isNtn; + mIsSatelliteConstrainedData = isSatelliteConstrainedData; } /** @hide */ @@ -131,6 +165,8 @@ public final class TelephonyDisplayInfo implements Parcelable { mNetworkType = p.readInt(); mOverrideNetworkType = p.readInt(); mIsRoaming = p.readBoolean(); + mIsNtn = p.readBoolean(); + mIsSatelliteConstrainedData = p.readBoolean(); } /** @@ -170,11 +206,34 @@ public final class TelephonyDisplayInfo implements Parcelable { return mIsRoaming; } + /** + * Get whether the satellite internet is with bandwidth constrained capability set. + * + * @return {@code true} if satellite internet is connected with bandwidth constrained + * capability else {@code false}. + * @hide + */ + public boolean isSatelliteConstrainedData() { + return mIsSatelliteConstrainedData; + } + + /** + * Get whether the network is a non-terrestrial network. + * + * @return {@code true} if network is a non-terrestrial network else {@code false}. + * @hide + */ + public boolean isNtn() { + return mIsNtn; + } + @Override public void writeToParcel(@NonNull Parcel dest, int flags) { dest.writeInt(mNetworkType); dest.writeInt(mOverrideNetworkType); dest.writeBoolean(mIsRoaming); + dest.writeBoolean(mIsNtn); + dest.writeBoolean(mIsSatelliteConstrainedData); } public static final @NonNull Parcelable.Creator<TelephonyDisplayInfo> CREATOR = @@ -202,12 +261,15 @@ public final class TelephonyDisplayInfo implements Parcelable { TelephonyDisplayInfo that = (TelephonyDisplayInfo) o; return mNetworkType == that.mNetworkType && mOverrideNetworkType == that.mOverrideNetworkType - && mIsRoaming == that.mIsRoaming; + && mIsRoaming == that.mIsRoaming + && mIsNtn == that.mIsNtn + && mIsSatelliteConstrainedData == that.mIsSatelliteConstrainedData; } @Override public int hashCode() { - return Objects.hash(mNetworkType, mOverrideNetworkType, mIsRoaming); + return Objects.hash(mNetworkType, mOverrideNetworkType, mIsRoaming, mIsNtn, + mIsSatelliteConstrainedData); } /** @@ -233,6 +295,8 @@ public final class TelephonyDisplayInfo implements Parcelable { public String toString() { return "TelephonyDisplayInfo {network=" + TelephonyManager.getNetworkTypeName(mNetworkType) + ", overrideNetwork=" + overrideNetworkTypeToString(mOverrideNetworkType) - + ", isRoaming=" + mIsRoaming + "}"; + + ", isRoaming=" + mIsRoaming + + ", isNtn=" + mIsNtn + + ", isSatelliteConstrainedData=" + mIsSatelliteConstrainedData + "}"; } } |