Merge "Update sendSatelliteDatagram API." into udc-dev
diff --git a/telephony/java/android/telephony/satellite/SatelliteManager.java b/telephony/java/android/telephony/satellite/SatelliteManager.java
index 3009bec..f8cf81c 100644
--- a/telephony/java/android/telephony/satellite/SatelliteManager.java
+++ b/telephony/java/android/telephony/satellite/SatelliteManager.java
@@ -1255,6 +1255,15 @@
      *                     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 @@
      */
     @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<Long, SatelliteException> callback) {
         Objects.requireNonNull(datagram);
         Objects.requireNonNull(executor);
@@ -1299,7 +1309,7 @@
                     }
                 };
                 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 f4801c2..ef9dc3e 100644
--- a/telephony/java/com/android/internal/telephony/ITelephony.aidl
+++ b/telephony/java/com/android/internal/telephony/ITelephony.aidl
@@ -2938,13 +2938,16 @@
     * @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.