diff options
6 files changed, 38 insertions, 6 deletions
diff --git a/telephony/java/android/telephony/satellite/ISatelliteModemStateCallback.aidl b/telephony/java/android/telephony/satellite/ISatelliteModemStateCallback.aidl index 50e3a0e4a79d..cfa06ee1bd51 100644 --- a/telephony/java/android/telephony/satellite/ISatelliteModemStateCallback.aidl +++ b/telephony/java/android/telephony/satellite/ISatelliteModemStateCallback.aidl @@ -42,4 +42,11 @@ oneway interface ISatelliteModemStateCallback { * For LTE (EMM), cause codes are TS 24.301 Sec 9.9.3.9 */ void onRegistrationFailure(in int causeCode); + + /** + * Indicates that the background search for terrestrial network is finished with result + * + * @param isAvailable True means there's terrestrial network and false means there's not. + */ + void onTerrestrialNetworkAvailableChanged(in boolean isAvailable); } diff --git a/telephony/java/android/telephony/satellite/SatelliteManager.java b/telephony/java/android/telephony/satellite/SatelliteManager.java index 44de65a009ff..5068c52d9283 100644 --- a/telephony/java/android/telephony/satellite/SatelliteManager.java +++ b/telephony/java/android/telephony/satellite/SatelliteManager.java @@ -1601,6 +1601,12 @@ public final class SatelliteManager { executor.execute(() -> Binder.withCleanCallingIdentity(() -> callback.onRegistrationFailure(causeCode))); } + + @Override + public void onTerrestrialNetworkAvailableChanged(boolean isAvailable) { + executor.execute(() -> Binder.withCleanCallingIdentity(() -> + callback.onTerrestrialNetworkAvailableChanged(isAvailable))); + } }; sSatelliteModemStateCallbackMap.put(callback, internalCallback); return telephony.registerForSatelliteModemStateChanged(internalCallback); diff --git a/telephony/java/android/telephony/satellite/SatelliteModemStateCallback.java b/telephony/java/android/telephony/satellite/SatelliteModemStateCallback.java index 13af4694389b..040fbbbb2689 100644 --- a/telephony/java/android/telephony/satellite/SatelliteModemStateCallback.java +++ b/telephony/java/android/telephony/satellite/SatelliteModemStateCallback.java @@ -54,4 +54,12 @@ public interface SatelliteModemStateCallback { * @hide */ default void onRegistrationFailure(int causeCode) {}; + + /** + * Indicates that the background search for terrestrial network is finished with result + * + * @param isAvailable True means there's terrestrial network and false means there's not. + * @hide + */ + default void onTerrestrialNetworkAvailableChanged(boolean isAvailable) {}; } diff --git a/telephony/java/android/telephony/satellite/stub/ISatellite.aidl b/telephony/java/android/telephony/satellite/stub/ISatellite.aidl index 8b51321bc7c4..ac0a5fc320c6 100644 --- a/telephony/java/android/telephony/satellite/stub/ISatellite.aidl +++ b/telephony/java/android/telephony/satellite/stub/ISatellite.aidl @@ -70,12 +70,16 @@ oneway interface ISatellite { in IIntegerConsumer resultCallback); /** - * Allow cellular modem scanning while satellite mode is on. + * Framework will call this API to determine if there are any TN networks available. + * This API will be called if framework identifies that user is inactive i.e. no + * data transfer or no pointing to satellite. + * Modem can send the callback with available for either in service or limited service. + * @param enabled {@code true} to enable cellular modem while satellite mode is on * and {@code false} to disable * @param errorCallback The callback to receive the error code result of the operation. */ - void enableCellularModemWhileSatelliteModeIsOn(in boolean enabled, + void enableTerrestrialNetworkScanWhileSatelliteModeIsOn(in boolean enabled, in IIntegerConsumer errorCallback); /** diff --git a/telephony/java/android/telephony/satellite/stub/ISatelliteListener.aidl b/telephony/java/android/telephony/satellite/stub/ISatelliteListener.aidl index 3f2fce2b9f1d..a2ebd3a11750 100644 --- a/telephony/java/android/telephony/satellite/stub/ISatelliteListener.aidl +++ b/telephony/java/android/telephony/satellite/stub/ISatelliteListener.aidl @@ -82,4 +82,11 @@ oneway interface ISatelliteListener { * For LTE (EMM), cause codes are TS 24.301 Sec 9.9.3.9 */ void onRegistrationFailure(in int causeCode); + + /** + * Modem can send the callback with available for either in service or limited service. + * + * @param isAvailable True means there's terrestrial network and false means there's not. + */ + void onTerrestrialNetworkAvailableChanged(in boolean isAvailable); } diff --git a/telephony/java/android/telephony/satellite/stub/SatelliteImplBase.java b/telephony/java/android/telephony/satellite/stub/SatelliteImplBase.java index 4f472106a329..eaeed2a0a9fa 100644 --- a/telephony/java/android/telephony/satellite/stub/SatelliteImplBase.java +++ b/telephony/java/android/telephony/satellite/stub/SatelliteImplBase.java @@ -80,12 +80,12 @@ public class SatelliteImplBase extends SatelliteService { } @Override - public void enableCellularModemWhileSatelliteModeIsOn(boolean enabled, + public void enableTerrestrialNetworkScanWhileSatelliteModeIsOn(boolean enabled, IIntegerConsumer resultCallback) throws RemoteException { executeMethodAsync( () -> SatelliteImplBase.this - .enableCellularModemWhileSatelliteModeIsOn(enabled, resultCallback), - "enableCellularModemWhileSatelliteModeIsOn"); + .enableTerrestrialNetworkScanWhileSatelliteModeIsOn( + enabled, resultCallback), "enableTerrestrialNetworkScanWhileSatelliteModeIsOn"); } @Override @@ -314,7 +314,7 @@ public class SatelliteImplBase extends SatelliteService { * and {@code false} to disable * @param resultCallback The callback to receive the error code result of the operation. */ - public void enableCellularModemWhileSatelliteModeIsOn(boolean enabled, + public void enableTerrestrialNetworkScanWhileSatelliteModeIsOn(boolean enabled, @NonNull IIntegerConsumer resultCallback) { // stub implementation } |