Snap for 10453563 from 66c458567d8cebb55887f20c31cb377f0875ce70 to mainline-rkpd-release

Change-Id: Id5726f164371cf844f01f11517db350a82ac5320
diff --git a/satellite_client/src/android/telephony/satellite/wrapper/SatelliteGatewayServiceWrapper.java b/satellite_client/src/android/telephony/satellite/wrapper/SatelliteGatewayServiceWrapper.java
new file mode 100644
index 0000000..dd6ac55
--- /dev/null
+++ b/satellite_client/src/android/telephony/satellite/wrapper/SatelliteGatewayServiceWrapper.java
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.telephony.satellite.wrapper;
+
+import android.telephony.satellite.stub.SatelliteGatewayService;
+
+/**
+ * Wrapper for SatelliteGatewayService. The application must declare that they require the
+ * "android.permission.BIND_SATELLITE_GATEWAY_SERVICE" permission to ensure that nothing else can
+ * bind to their service except the Telephony framework. The SatelliteGatewayService definition in
+ * the manifest must follow the following format:
+ * ...
+ * <service android:name=".EgSatelliteGatewayService"
+ *     android:permission="android.permission.BIND_SATELLITE_GATEWAY_SERVICE" >
+ *     ...
+ *     <intent-filter>
+ *         <action android:name="android.telephony.satellite.SatelliteGatewayService" />
+ *     </intent-filter>
+ * </service>
+ * ...
+ *
+ * <p>The telephony framework will then bind to the SatelliteGatewayService defined in the manifest
+ * if it is the default SatelliteGatewayService defined in the device overlay
+ * "config_satellite_gateway_service_package".
+ */
+public abstract class SatelliteGatewayServiceWrapper extends SatelliteGatewayService {}
diff --git a/satellite_client/src/android/telephony/satellite/wrapper/SatelliteManagerWrapper.java b/satellite_client/src/android/telephony/satellite/wrapper/SatelliteManagerWrapper.java
index 22debf9..b13a0fc 100644
--- a/satellite_client/src/android/telephony/satellite/wrapper/SatelliteManagerWrapper.java
+++ b/satellite_client/src/android/telephony/satellite/wrapper/SatelliteManagerWrapper.java
@@ -287,6 +287,10 @@
   public static final int SATELLITE_NOT_AUTHORIZED = 19;
   /** The device does not support satellite. */
   public static final int SATELLITE_NOT_SUPPORTED = 20;
+  /** The current request is already in-progress. */
+  public static final int SATELLITE_REQUEST_IN_PROGRESS = 21;
+  /** Satellite modem is currently busy due to which current request cannot be processed. */
+  public static final int SATELLITE_MODEM_BUSY = 22;
 
   /** @hide */
   @IntDef(
@@ -312,7 +316,9 @@
         SATELLITE_NETWORK_TIMEOUT,
         SATELLITE_NOT_REACHABLE,
         SATELLITE_NOT_AUTHORIZED,
-        SATELLITE_NOT_SUPPORTED
+        SATELLITE_NOT_SUPPORTED,
+        SATELLITE_REQUEST_IN_PROGRESS,
+        SATELLITE_MODEM_BUSY
       })
   @Retention(RetentionPolicy.SOURCE)
   public @interface SatelliteError {}
@@ -721,6 +727,13 @@
     mSatelliteManager.requestTimeForNextSatelliteVisibility(executor, internalCallback);
   }
 
+  /**
+   * Inform whether the device is aligned with the satellite for demo mode.
+   */
+  public void onDeviceAlignedWithSatellite(boolean isAligned) {
+    mSatelliteManager.onDeviceAlignedWithSatellite(isAligned);
+  }
+
   private Map<Integer, AntennaPositionWrapper> transformToAntennaPositionWrapperMap(
       Map<Integer, AntennaPosition> input) {
     Map<Integer, AntennaPositionWrapper> output = new HashMap<>();