Loading src/java/com/android/internal/telephony/SatelliteIndication.java +3 −5 Original line number Diff line number Diff line Loading @@ -80,13 +80,11 @@ public class SatelliteIndication extends IRadioSatelliteIndication.Stub { if (mRil.isLogOrTrace()) mRil.unsljLog(RIL_UNSOL_NEW_SATELLITE_MESSAGES); if (mRil.mNewSatelliteMessagesRegistrants != null) { SatelliteDatagram[] datagrams = new SatelliteDatagram[messages.length]; for (int i = 0; i < messages.length; i++) { datagrams[i] = new SatelliteDatagram(messages[i].getBytes()); } // TODO: support pendingCount properly SatelliteDatagram datagram = new SatelliteDatagram(messages[i].getBytes()); mRil.mNewSatelliteMessagesRegistrants.notifyRegistrants( new AsyncResult(null, new Pair<>(datagrams, messages.length), null)); new AsyncResult(null, new Pair<>(datagram, messages.length - i - 1), null)); } } } Loading src/java/com/android/internal/telephony/satellite/SatelliteController.java +21 −11 Original line number Diff line number Diff line Loading @@ -218,6 +218,16 @@ public class SatelliteController extends Handler { } } private static final class RequestSatelliteEnabledArgument { public boolean enabled; public @NonNull Consumer<Integer> callback; RequestSatelliteEnabledArgument(boolean enabled, Consumer<Integer> callback) { this.enabled = enabled; this.callback = callback; } } private static final class ProvisionSatelliteServiceArgument { public @NonNull String token; public @NonNull Consumer<Integer> callback; Loading Loading @@ -687,20 +697,19 @@ public class SatelliteController extends Handler { case CMD_SET_SATELLITE_ENABLED: { request = (SatelliteControllerHandlerRequest) msg.obj; Pair<Boolean, Consumer<Integer>> argument = (Pair<Boolean, Consumer<Integer>>) request.argument; RequestSatelliteEnabledArgument argument = (RequestSatelliteEnabledArgument) request.argument; onCompleted = obtainMessage(EVENT_SET_SATELLITE_ENABLED_DONE, request); if (mSatelliteModemInterface.isSatelliteServiceSupported()) { mSatelliteModemInterface .requestSatelliteEnabled(argument.first, onCompleted); mSatelliteModemInterface.requestSatelliteEnabled(argument.enabled, onCompleted); break; } Phone phone = request.phone; if (phone != null) { phone.setSatellitePower(onCompleted, argument.first); phone.setSatellitePower(onCompleted, argument.enabled); } else { loge("requestSatelliteEnabled: No phone object"); argument.second.accept(SatelliteManager.SATELLITE_INVALID_TELEPHONY_STATE); argument.callback.accept(SatelliteManager.SATELLITE_INVALID_TELEPHONY_STATE); } break; } Loading @@ -708,10 +717,11 @@ public class SatelliteController extends Handler { case EVENT_SET_SATELLITE_ENABLED_DONE: { ar = (AsyncResult) msg.obj; request = (SatelliteControllerHandlerRequest) ar.userObj; Pair<Boolean, Consumer<Integer>> argument = (Pair<Boolean, Consumer<Integer>>) request.argument; RequestSatelliteEnabledArgument argument = (RequestSatelliteEnabledArgument) request.argument; int error = getSatelliteError(ar, "setSatelliteEnabled", false); argument.second.accept(error); argument.callback.accept(error); // TODO: if error is ERROR_NONE, request satellite capabilities break; } Loading Loading @@ -1001,8 +1011,8 @@ public class SatelliteController extends Handler { } Phone phone = getPhoneOrDefault(validSubId, "requestSatelliteEnabled"); Pair<Boolean, Consumer<Integer>> arg = new Pair<>(enable, result); sendRequestAsync(CMD_SET_SATELLITE_ENABLED, arg, phone); sendRequestAsync(CMD_SET_SATELLITE_ENABLED, new RequestSatelliteEnabledArgument(enable, result), phone); } /** Loading src/java/com/android/internal/telephony/satellite/SatelliteModemInterface.java +9 −15 Original line number Diff line number Diff line Loading @@ -91,10 +91,10 @@ public class SatelliteModemInterface { } @Override public void onSatelliteDatagramsReceived( android.telephony.satellite.stub.SatelliteDatagram[] datagrams, int pendingCount) { public void onSatelliteDatagramReceived( android.telephony.satellite.stub.SatelliteDatagram datagram, int pendingCount) { mSatelliteDatagramsReceivedRegistrants.notifyResult(new Pair<>( SatelliteServiceUtils.fromSatelliteDatagrams(datagrams), pendingCount)); SatelliteServiceUtils.fromSatelliteDatagram(datagram), pendingCount)); } @Override Loading Loading @@ -271,16 +271,7 @@ public class SatelliteModemInterface { mSatelliteService = ISatellite.Stub.asInterface(service); mExponentialBackoff.stop(); try { mSatelliteService.setSatelliteListener(mListener, new IIntegerConsumer.Stub() { @Override public void accept(int result) { int error = SatelliteServiceUtils.fromSatelliteError(result); if (error != SatelliteManager.SATELLITE_ERROR_NONE) { // TODO: Retry setSatelliteListener } logd("setSatelliteListener: " + error); } }); mSatelliteService.setSatelliteListener(mListener); } catch (RemoteException e) { // TODO: Retry setSatelliteListener logd("setSatelliteListener: RemoteException " + e); Loading Loading @@ -461,14 +452,17 @@ public class SatelliteModemInterface { * Listening mode allows the satellite service to listen for incoming pages. * * @param enable True to enable satellite listening mode and false to disable. * @param timeout How long the satellite modem should wait for the next incoming page before * disabling listening mode. * @param message The Message to send to result of the operation to. */ public void requestSatelliteListeningEnabled(boolean enable, @NonNull Message message) { public void requestSatelliteListeningEnabled(boolean enable, int timeout, @NonNull Message message) { if (mSatelliteService != null) { try { mSatelliteService.requestSatelliteListeningEnabled( enable, SatelliteController.getInstance().isSatelliteDemoModeEnabled(), new IIntegerConsumer.Stub() { timeout, new IIntegerConsumer.Stub() { @Override public void accept(int result) { int error = SatelliteServiceUtils.fromSatelliteError(result); Loading src/java/com/android/internal/telephony/satellite/SatelliteServiceUtils.java +2 −14 Original line number Diff line number Diff line Loading @@ -128,6 +128,8 @@ public class SatelliteServiceUtils { return SatelliteManager.SATELLITE_MODEM_STATE_DATAGRAM_RETRYING; case SatelliteModemState.SATELLITE_MODEM_STATE_OFF: return SatelliteManager.SATELLITE_MODEM_STATE_OFF; case SatelliteModemState.SATELLITE_MODEM_STATE_UNAVAILABLE: return SatelliteManager.SATELLITE_MODEM_STATE_UNAVAILABLE; default: loge("Received invalid modem state: " + modemState); return SatelliteManager.SATELLITE_MODEM_STATE_UNKNOWN; Loading Loading @@ -177,20 +179,6 @@ public class SatelliteServiceUtils { return new SatelliteDatagram(data); } /** * Convert SatelliteDatagram[] from service definition to framework definition. * @param datagrams The SatelliteDatagram[] from the satellite service. * @return The converted SatelliteDatagram[] for the framework. */ @Nullable public static SatelliteDatagram[] fromSatelliteDatagrams( android.telephony.satellite.stub.SatelliteDatagram[] datagrams) { SatelliteDatagram[] array = new SatelliteDatagram[datagrams.length]; for (int i = 0; i < datagrams.length; i++) { array[i] = fromSatelliteDatagram(datagrams[i]); } return array; } /** * Convert SatelliteDatagram from framework definition to service definition. * @param datagram The SatelliteDatagram from the framework. Loading Loading
src/java/com/android/internal/telephony/SatelliteIndication.java +3 −5 Original line number Diff line number Diff line Loading @@ -80,13 +80,11 @@ public class SatelliteIndication extends IRadioSatelliteIndication.Stub { if (mRil.isLogOrTrace()) mRil.unsljLog(RIL_UNSOL_NEW_SATELLITE_MESSAGES); if (mRil.mNewSatelliteMessagesRegistrants != null) { SatelliteDatagram[] datagrams = new SatelliteDatagram[messages.length]; for (int i = 0; i < messages.length; i++) { datagrams[i] = new SatelliteDatagram(messages[i].getBytes()); } // TODO: support pendingCount properly SatelliteDatagram datagram = new SatelliteDatagram(messages[i].getBytes()); mRil.mNewSatelliteMessagesRegistrants.notifyRegistrants( new AsyncResult(null, new Pair<>(datagrams, messages.length), null)); new AsyncResult(null, new Pair<>(datagram, messages.length - i - 1), null)); } } } Loading
src/java/com/android/internal/telephony/satellite/SatelliteController.java +21 −11 Original line number Diff line number Diff line Loading @@ -218,6 +218,16 @@ public class SatelliteController extends Handler { } } private static final class RequestSatelliteEnabledArgument { public boolean enabled; public @NonNull Consumer<Integer> callback; RequestSatelliteEnabledArgument(boolean enabled, Consumer<Integer> callback) { this.enabled = enabled; this.callback = callback; } } private static final class ProvisionSatelliteServiceArgument { public @NonNull String token; public @NonNull Consumer<Integer> callback; Loading Loading @@ -687,20 +697,19 @@ public class SatelliteController extends Handler { case CMD_SET_SATELLITE_ENABLED: { request = (SatelliteControllerHandlerRequest) msg.obj; Pair<Boolean, Consumer<Integer>> argument = (Pair<Boolean, Consumer<Integer>>) request.argument; RequestSatelliteEnabledArgument argument = (RequestSatelliteEnabledArgument) request.argument; onCompleted = obtainMessage(EVENT_SET_SATELLITE_ENABLED_DONE, request); if (mSatelliteModemInterface.isSatelliteServiceSupported()) { mSatelliteModemInterface .requestSatelliteEnabled(argument.first, onCompleted); mSatelliteModemInterface.requestSatelliteEnabled(argument.enabled, onCompleted); break; } Phone phone = request.phone; if (phone != null) { phone.setSatellitePower(onCompleted, argument.first); phone.setSatellitePower(onCompleted, argument.enabled); } else { loge("requestSatelliteEnabled: No phone object"); argument.second.accept(SatelliteManager.SATELLITE_INVALID_TELEPHONY_STATE); argument.callback.accept(SatelliteManager.SATELLITE_INVALID_TELEPHONY_STATE); } break; } Loading @@ -708,10 +717,11 @@ public class SatelliteController extends Handler { case EVENT_SET_SATELLITE_ENABLED_DONE: { ar = (AsyncResult) msg.obj; request = (SatelliteControllerHandlerRequest) ar.userObj; Pair<Boolean, Consumer<Integer>> argument = (Pair<Boolean, Consumer<Integer>>) request.argument; RequestSatelliteEnabledArgument argument = (RequestSatelliteEnabledArgument) request.argument; int error = getSatelliteError(ar, "setSatelliteEnabled", false); argument.second.accept(error); argument.callback.accept(error); // TODO: if error is ERROR_NONE, request satellite capabilities break; } Loading Loading @@ -1001,8 +1011,8 @@ public class SatelliteController extends Handler { } Phone phone = getPhoneOrDefault(validSubId, "requestSatelliteEnabled"); Pair<Boolean, Consumer<Integer>> arg = new Pair<>(enable, result); sendRequestAsync(CMD_SET_SATELLITE_ENABLED, arg, phone); sendRequestAsync(CMD_SET_SATELLITE_ENABLED, new RequestSatelliteEnabledArgument(enable, result), phone); } /** Loading
src/java/com/android/internal/telephony/satellite/SatelliteModemInterface.java +9 −15 Original line number Diff line number Diff line Loading @@ -91,10 +91,10 @@ public class SatelliteModemInterface { } @Override public void onSatelliteDatagramsReceived( android.telephony.satellite.stub.SatelliteDatagram[] datagrams, int pendingCount) { public void onSatelliteDatagramReceived( android.telephony.satellite.stub.SatelliteDatagram datagram, int pendingCount) { mSatelliteDatagramsReceivedRegistrants.notifyResult(new Pair<>( SatelliteServiceUtils.fromSatelliteDatagrams(datagrams), pendingCount)); SatelliteServiceUtils.fromSatelliteDatagram(datagram), pendingCount)); } @Override Loading Loading @@ -271,16 +271,7 @@ public class SatelliteModemInterface { mSatelliteService = ISatellite.Stub.asInterface(service); mExponentialBackoff.stop(); try { mSatelliteService.setSatelliteListener(mListener, new IIntegerConsumer.Stub() { @Override public void accept(int result) { int error = SatelliteServiceUtils.fromSatelliteError(result); if (error != SatelliteManager.SATELLITE_ERROR_NONE) { // TODO: Retry setSatelliteListener } logd("setSatelliteListener: " + error); } }); mSatelliteService.setSatelliteListener(mListener); } catch (RemoteException e) { // TODO: Retry setSatelliteListener logd("setSatelliteListener: RemoteException " + e); Loading Loading @@ -461,14 +452,17 @@ public class SatelliteModemInterface { * Listening mode allows the satellite service to listen for incoming pages. * * @param enable True to enable satellite listening mode and false to disable. * @param timeout How long the satellite modem should wait for the next incoming page before * disabling listening mode. * @param message The Message to send to result of the operation to. */ public void requestSatelliteListeningEnabled(boolean enable, @NonNull Message message) { public void requestSatelliteListeningEnabled(boolean enable, int timeout, @NonNull Message message) { if (mSatelliteService != null) { try { mSatelliteService.requestSatelliteListeningEnabled( enable, SatelliteController.getInstance().isSatelliteDemoModeEnabled(), new IIntegerConsumer.Stub() { timeout, new IIntegerConsumer.Stub() { @Override public void accept(int result) { int error = SatelliteServiceUtils.fromSatelliteError(result); Loading
src/java/com/android/internal/telephony/satellite/SatelliteServiceUtils.java +2 −14 Original line number Diff line number Diff line Loading @@ -128,6 +128,8 @@ public class SatelliteServiceUtils { return SatelliteManager.SATELLITE_MODEM_STATE_DATAGRAM_RETRYING; case SatelliteModemState.SATELLITE_MODEM_STATE_OFF: return SatelliteManager.SATELLITE_MODEM_STATE_OFF; case SatelliteModemState.SATELLITE_MODEM_STATE_UNAVAILABLE: return SatelliteManager.SATELLITE_MODEM_STATE_UNAVAILABLE; default: loge("Received invalid modem state: " + modemState); return SatelliteManager.SATELLITE_MODEM_STATE_UNKNOWN; Loading Loading @@ -177,20 +179,6 @@ public class SatelliteServiceUtils { return new SatelliteDatagram(data); } /** * Convert SatelliteDatagram[] from service definition to framework definition. * @param datagrams The SatelliteDatagram[] from the satellite service. * @return The converted SatelliteDatagram[] for the framework. */ @Nullable public static SatelliteDatagram[] fromSatelliteDatagrams( android.telephony.satellite.stub.SatelliteDatagram[] datagrams) { SatelliteDatagram[] array = new SatelliteDatagram[datagrams.length]; for (int i = 0; i < datagrams.length; i++) { array[i] = fromSatelliteDatagram(datagrams[i]); } return array; } /** * Convert SatelliteDatagram from framework definition to service definition. * @param datagram The SatelliteDatagram from the framework. Loading