Loading src/java/com/android/internal/telephony/satellite/SatelliteModemInterface.java +38 −0 Original line number Diff line number Diff line Loading @@ -485,6 +485,44 @@ public class SatelliteModemInterface { } } /** * Allow cellular modem scanning while satellite mode is on. * @param enabled {@code true} to enable cellular modem while satellite mode is on * and {@code false} to disable * @param message The Message to send to result of the operation to. */ public void enableCellularModemWhileSatelliteModeIsOn(boolean enabled, @Nullable Message message) { if (mSatelliteService != null) { try { mSatelliteService.enableCellularModemWhileSatelliteModeIsOn(enabled, new IIntegerConsumer.Stub() { @Override public void accept(int result) { int error = SatelliteServiceUtils.fromSatelliteError(result); logd("enableCellularModemWhileSatelliteModeIsOn: " + error); Binder.withCleanCallingIdentity(() -> { if (message != null) { sendMessageWithResult(message, null, error); } }); } }); } catch (RemoteException e) { loge("enableCellularModemWhileSatelliteModeIsOn: RemoteException " + e); if (message != null) { sendMessageWithResult( message, null, SatelliteManager.SATELLITE_SERVICE_ERROR); } } } else { loge("enableCellularModemWhileSatelliteModeIsOn: Satellite service is unavailable."); if (message != null) { sendMessageWithResult(message, null, SatelliteManager.SATELLITE_RADIO_NOT_AVAILABLE); } } } /** * Request to enable or disable the satellite modem and demo mode. If the satellite modem * is enabled, this may also disable the cellular modem, and if the satellite modem is disabled, Loading src/java/com/android/internal/telephony/satellite/SatelliteSessionController.java +10 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import static android.telephony.satellite.SatelliteManager.SATELLITE_DATAGRAM_TR import android.annotation.NonNull; import android.content.Context; import android.os.AsyncResult; import android.os.IBinder; import android.os.Looper; import android.os.Message; Loading Loading @@ -282,6 +283,8 @@ public class SatelliteSessionController extends StateMachine { mCurrentState = SatelliteManager.SATELLITE_MODEM_STATE_IDLE; mIsSendingTriggeredDuringTransferringState.set(false); notifyStateChangedEvent(SatelliteManager.SATELLITE_MODEM_STATE_IDLE); //Disable Cellular Modem mSatelliteModemInterface.enableCellularModemWhileSatelliteModeIsOn(false, null); } @Override Loading @@ -307,6 +310,13 @@ public class SatelliteSessionController extends StateMachine { transitionTo(mTransferringState); } } @Override public void exit() { if (DBG) logd("Exiting IdleState"); //Enable Cellular Modem mSatelliteModemInterface.enableCellularModemWhileSatelliteModeIsOn(true, null); } } private class TransferringState extends State { Loading Loading
src/java/com/android/internal/telephony/satellite/SatelliteModemInterface.java +38 −0 Original line number Diff line number Diff line Loading @@ -485,6 +485,44 @@ public class SatelliteModemInterface { } } /** * Allow cellular modem scanning while satellite mode is on. * @param enabled {@code true} to enable cellular modem while satellite mode is on * and {@code false} to disable * @param message The Message to send to result of the operation to. */ public void enableCellularModemWhileSatelliteModeIsOn(boolean enabled, @Nullable Message message) { if (mSatelliteService != null) { try { mSatelliteService.enableCellularModemWhileSatelliteModeIsOn(enabled, new IIntegerConsumer.Stub() { @Override public void accept(int result) { int error = SatelliteServiceUtils.fromSatelliteError(result); logd("enableCellularModemWhileSatelliteModeIsOn: " + error); Binder.withCleanCallingIdentity(() -> { if (message != null) { sendMessageWithResult(message, null, error); } }); } }); } catch (RemoteException e) { loge("enableCellularModemWhileSatelliteModeIsOn: RemoteException " + e); if (message != null) { sendMessageWithResult( message, null, SatelliteManager.SATELLITE_SERVICE_ERROR); } } } else { loge("enableCellularModemWhileSatelliteModeIsOn: Satellite service is unavailable."); if (message != null) { sendMessageWithResult(message, null, SatelliteManager.SATELLITE_RADIO_NOT_AVAILABLE); } } } /** * Request to enable or disable the satellite modem and demo mode. If the satellite modem * is enabled, this may also disable the cellular modem, and if the satellite modem is disabled, Loading
src/java/com/android/internal/telephony/satellite/SatelliteSessionController.java +10 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import static android.telephony.satellite.SatelliteManager.SATELLITE_DATAGRAM_TR import android.annotation.NonNull; import android.content.Context; import android.os.AsyncResult; import android.os.IBinder; import android.os.Looper; import android.os.Message; Loading Loading @@ -282,6 +283,8 @@ public class SatelliteSessionController extends StateMachine { mCurrentState = SatelliteManager.SATELLITE_MODEM_STATE_IDLE; mIsSendingTriggeredDuringTransferringState.set(false); notifyStateChangedEvent(SatelliteManager.SATELLITE_MODEM_STATE_IDLE); //Disable Cellular Modem mSatelliteModemInterface.enableCellularModemWhileSatelliteModeIsOn(false, null); } @Override Loading @@ -307,6 +310,13 @@ public class SatelliteSessionController extends StateMachine { transitionTo(mTransferringState); } } @Override public void exit() { if (DBG) logd("Exiting IdleState"); //Enable Cellular Modem mSatelliteModemInterface.enableCellularModemWhileSatelliteModeIsOn(true, null); } } private class TransferringState extends State { Loading