Loading src/java/com/android/internal/telephony/satellite/DatagramController.java +1 −0 Original line number Diff line number Diff line Loading @@ -252,6 +252,7 @@ public class DatagramController { @NonNull Consumer<Integer> callback) { mDatagramDispatcher.sendSatelliteDatagram(subId, datagramType, datagram, needFullScreenPointingUI, callback); mPointingAppController.onSendDatagramRequested(subId, datagramType); } /** Loading src/java/com/android/internal/telephony/satellite/PointingAppController.java +37 −0 Original line number Diff line number Diff line Loading @@ -189,6 +189,7 @@ public class PointingAppController { public static final int EVENT_SEND_DATAGRAM_STATE_CHANGED = 2; public static final int EVENT_RECEIVE_DATAGRAM_STATE_CHANGED = 3; public static final int EVENT_DATAGRAM_TRANSFER_STATE_CHANGED = 4; public static final int EVENT_SEND_DATAGRAM_REQUESTED = 5; private final ConcurrentHashMap<IBinder, ISatelliteTransmissionUpdateCallback> mListeners; Loading Loading @@ -277,6 +278,24 @@ public class PointingAppController { break; } case EVENT_SEND_DATAGRAM_REQUESTED: { logd("Received EVENT_SEND_DATAGRAM_REQUESTED"); int datagramType = (int) msg.obj; List<IBinder> toBeRemoved = new ArrayList<>(); mListeners.values().forEach(listener -> { try { listener.onSendDatagramRequested(datagramType); } catch (RemoteException e) { logd("EVENT_SEND_DATAGRAM_REQUESTED RemoteException: " + e); toBeRemoved.add(listener.asBinder()); } }); toBeRemoved.forEach(listener -> { mListeners.remove(listener); }); break; } default: loge("SatelliteTransmissionUpdateHandler unknown event: " + msg.what); } Loading Loading @@ -439,6 +458,24 @@ public class PointingAppController { } } /** * This API is used to notify PointingAppController that a send datagram has just been * requested. */ public void onSendDatagramRequested( int subId, @SatelliteManager.DatagramType int datagramType) { SatelliteTransmissionUpdateHandler handler = mSatelliteTransmissionUpdateHandlers.get(subId); if (handler != null) { Message msg = handler.obtainMessage( SatelliteTransmissionUpdateHandler.EVENT_SEND_DATAGRAM_REQUESTED, datagramType); msg.sendToTarget(); } else { ploge("SatelliteTransmissionUpdateHandler not found for subId: " + subId); } } public void updateReceiveDatagramTransferState(int subId, @SatelliteManager.SatelliteDatagramTransferState int datagramTransferState, int receivePendingCount, int errorCode) { Loading tests/telephonytests/src/com/android/internal/telephony/satellite/PointingAppControllerTest.java +5 −0 Original line number Diff line number Diff line Loading @@ -196,6 +196,11 @@ public class PointingAppControllerTest extends TelephonyTest { } } @Override public void onSendDatagramRequested(int datagramType) { logd("onSendDatagramRequested: datagramType=" + datagramType); } public int getDatagramType() { return mDatagramType; } Loading Loading
src/java/com/android/internal/telephony/satellite/DatagramController.java +1 −0 Original line number Diff line number Diff line Loading @@ -252,6 +252,7 @@ public class DatagramController { @NonNull Consumer<Integer> callback) { mDatagramDispatcher.sendSatelliteDatagram(subId, datagramType, datagram, needFullScreenPointingUI, callback); mPointingAppController.onSendDatagramRequested(subId, datagramType); } /** Loading
src/java/com/android/internal/telephony/satellite/PointingAppController.java +37 −0 Original line number Diff line number Diff line Loading @@ -189,6 +189,7 @@ public class PointingAppController { public static final int EVENT_SEND_DATAGRAM_STATE_CHANGED = 2; public static final int EVENT_RECEIVE_DATAGRAM_STATE_CHANGED = 3; public static final int EVENT_DATAGRAM_TRANSFER_STATE_CHANGED = 4; public static final int EVENT_SEND_DATAGRAM_REQUESTED = 5; private final ConcurrentHashMap<IBinder, ISatelliteTransmissionUpdateCallback> mListeners; Loading Loading @@ -277,6 +278,24 @@ public class PointingAppController { break; } case EVENT_SEND_DATAGRAM_REQUESTED: { logd("Received EVENT_SEND_DATAGRAM_REQUESTED"); int datagramType = (int) msg.obj; List<IBinder> toBeRemoved = new ArrayList<>(); mListeners.values().forEach(listener -> { try { listener.onSendDatagramRequested(datagramType); } catch (RemoteException e) { logd("EVENT_SEND_DATAGRAM_REQUESTED RemoteException: " + e); toBeRemoved.add(listener.asBinder()); } }); toBeRemoved.forEach(listener -> { mListeners.remove(listener); }); break; } default: loge("SatelliteTransmissionUpdateHandler unknown event: " + msg.what); } Loading Loading @@ -439,6 +458,24 @@ public class PointingAppController { } } /** * This API is used to notify PointingAppController that a send datagram has just been * requested. */ public void onSendDatagramRequested( int subId, @SatelliteManager.DatagramType int datagramType) { SatelliteTransmissionUpdateHandler handler = mSatelliteTransmissionUpdateHandlers.get(subId); if (handler != null) { Message msg = handler.obtainMessage( SatelliteTransmissionUpdateHandler.EVENT_SEND_DATAGRAM_REQUESTED, datagramType); msg.sendToTarget(); } else { ploge("SatelliteTransmissionUpdateHandler not found for subId: " + subId); } } public void updateReceiveDatagramTransferState(int subId, @SatelliteManager.SatelliteDatagramTransferState int datagramTransferState, int receivePendingCount, int errorCode) { Loading
tests/telephonytests/src/com/android/internal/telephony/satellite/PointingAppControllerTest.java +5 −0 Original line number Diff line number Diff line Loading @@ -196,6 +196,11 @@ public class PointingAppControllerTest extends TelephonyTest { } } @Override public void onSendDatagramRequested(int datagramType) { logd("onSendDatagramRequested: datagramType=" + datagramType); } public int getDatagramType() { return mDatagramType; } Loading