From f02832a3db0a59b7119a690eeb1c94c1ee3814be Mon Sep 17 00:00:00 2001 From: Aishwarya Mallampati Date: Tue, 21 Feb 2023 18:51:51 +0000 Subject: Update sendSatelliteDatagram API. The following changes are made in this CL: - Added needFullScreenPointingUI boolean as parameter in sendSatelliteDatagram() - Updated satellite datagram state enum. Bug: 267826133 Test: atest SatelliteManagerTest Change-Id: I9fbbba4ff7cc1a674561ec34d520c6502fe6730b --- .../java/android/telephony/satellite/SatelliteManager.java | 14 ++++++++++++-- .../java/com/android/internal/telephony/ITelephony.aidl | 5 ++++- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/telephony/java/android/telephony/satellite/SatelliteManager.java b/telephony/java/android/telephony/satellite/SatelliteManager.java index 3009bec06a93..f8cf81ce4993 100644 --- a/telephony/java/android/telephony/satellite/SatelliteManager.java +++ b/telephony/java/android/telephony/satellite/SatelliteManager.java @@ -1255,6 +1255,15 @@ public class SatelliteManager { * SOS_SMS or LOCATION_SHARING. * @param datagram encoded gateway datagram which is encrypted by the caller. * Datagram will be passed down to modem without any encoding or encryption. + * @param needFullScreenPointingUI If set to true, this indicates pointingUI app to open in full + * screen mode if satellite communication needs pointingUI. + * If this is set to false, pointingUI may be presented to the + * user in collapsed view. Application may decide to mark this + * flag as true when the user is sending data for the first time + * or whenever there is a considerable idle time between + * satellite activity. This decision should be done based upon + * user activity and the application's ability to determine the + * best possible UX experience for the user. * @param executor The executor on which the result listener will be called. * @param callback The callback object to which the result will be returned. * If datagram is sent successfully, then @@ -1267,7 +1276,8 @@ public class SatelliteManager { */ @RequiresPermission(Manifest.permission.SATELLITE_COMMUNICATION) public void sendSatelliteDatagram(long datagramId, @DatagramType int datagramType, - @NonNull SatelliteDatagram datagram, @NonNull @CallbackExecutor Executor executor, + @NonNull SatelliteDatagram datagram, boolean needFullScreenPointingUI, + @NonNull @CallbackExecutor Executor executor, @NonNull OutcomeReceiver callback) { Objects.requireNonNull(datagram); Objects.requireNonNull(executor); @@ -1299,7 +1309,7 @@ public class SatelliteManager { } }; telephony.sendSatelliteDatagram(mSubId, datagramId, datagramType, datagram, - receiver); + needFullScreenPointingUI, receiver); } else { throw new IllegalStateException("telephony service is null."); } diff --git a/telephony/java/com/android/internal/telephony/ITelephony.aidl b/telephony/java/com/android/internal/telephony/ITelephony.aidl index f4801c2f002f..ef9dc3e3621d 100644 --- a/telephony/java/com/android/internal/telephony/ITelephony.aidl +++ b/telephony/java/com/android/internal/telephony/ITelephony.aidl @@ -2938,13 +2938,16 @@ interface ITelephony { * @param datagramId An id that uniquely identifies datagram requested to be sent. * @param datagramType Type of datagram. * @param datagram Datagram to send over satellite. + * @param needFullScreenPointingUI this is used to indicate pointingUI app to open in + * full screen mode. * @param receiver Result receiver to get the datagramId if datagram is sent successfully else * error code of the request. */ @JavaPassthrough(annotation="@android.annotation.RequiresPermission(" + "android.Manifest.permission.SATELLITE_COMMUNICATION)") void sendSatelliteDatagram(int subId, long datagramId, int datagramType, - in SatelliteDatagram datagram, in ResultReceiver receiver); + in SatelliteDatagram datagram, in boolean needFullScreenPointingUI, + in ResultReceiver receiver); /** * Request to get whether satellite communication is allowed for the current location. -- cgit v1.2.3-59-g8ed1b