Support emergency mode in enabling satellite
Bug: 323571903
Test: atest SatelliteManagerTestOnMockService SatelliteSessionControllerTest
Change-Id: I3108f553ccea11032383dcdc97f6880dd8f8cc2a
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index e53a674..60d93b6 100644
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -25,6 +25,7 @@
import static android.telephony.TelephonyManager.HAL_SERVICE_RADIO;
import static android.telephony.satellite.SatelliteManager.KEY_SATELLITE_COMMUNICATION_ALLOWED;
import static android.telephony.satellite.SatelliteManager.SATELLITE_RESULT_ACCESS_BARRED;
+import static android.telephony.satellite.SatelliteManager.SATELLITE_RESULT_REQUEST_NOT_SUPPORTED;
import static android.telephony.satellite.SatelliteManager.SATELLITE_RESULT_SUCCESS;
import static com.android.internal.telephony.PhoneConstants.PHONE_TYPE_CDMA;
@@ -13000,13 +13001,14 @@
* @param enableSatellite {@code true} to enable the satellite modem and
* {@code false} to disable.
* @param enableDemoMode {@code true} to enable demo mode and {@code false} to disable.
+ * @param isEmergency {@code true} to enable emergency mode, {@code false} otherwise.
* @param callback The callback to get the result of the request.
*
* @throws SecurityException if the caller doesn't have the required permission.
*/
@Override
public void requestSatelliteEnabled(int subId, boolean enableSatellite, boolean enableDemoMode,
- @NonNull IIntegerConsumer callback) {
+ boolean isEmergency, @NonNull IIntegerConsumer callback) {
enforceSatelliteCommunicationPermission("requestSatelliteEnabled");
if (enableSatellite) {
ResultReceiver resultReceiver = new ResultReceiver(mMainThreadHandler) {
@@ -13077,6 +13079,22 @@
}
/**
+ * Request to get whether the satellite service is enabled with emergency mode.
+ *
+ * @param subId The subId of the subscription to check whether the satellite demo mode
+ * is enabled for.
+ * @param result The result receiver that returns whether the satellite emergency mode is
+ * enabled if the request is successful or an error code if the request failed.
+ *
+ * @throws SecurityException if the caller doesn't have the required permission.
+ */
+ @Override
+ public void requestIsEmergencyModeEnabled(int subId, @NonNull ResultReceiver result) {
+ enforceSatelliteCommunicationPermission("requestIsEmergencyModeEnabled");
+ result.send(SATELLITE_RESULT_REQUEST_NOT_SUPPORTED, null);
+ }
+
+ /**
* Request to get whether the satellite service is supported on the device.
*
* @param subId The subId of the subscription to check satellite service support for.
diff --git a/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/Datagram.java b/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/Datagram.java
index 015ddcd..9ea1b44 100644
--- a/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/Datagram.java
+++ b/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/Datagram.java
@@ -29,6 +29,7 @@
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
+import android.telephony.satellite.EnableRequestAttributes;
import android.telephony.satellite.PointingInfo;
import android.telephony.satellite.SatelliteDatagram;
import android.telephony.satellite.SatelliteDatagramCallback;
@@ -169,7 +170,9 @@
private void startTransmissionUpdatesApp(View view) {
TextView textView = findViewById(R.id.text_id);
LinkedBlockingQueue<Integer> error = new LinkedBlockingQueue<>(1);
- mSatelliteManager.requestEnabled(true, true, Runnable::run, error::offer);
+ mSatelliteManager.requestEnabled(
+ new EnableRequestAttributes.Builder(true).setDemoMode(true).build(),
+ Runnable::run, error::offer);
TextView showErrorStatusTextView = findViewById(R.id.showErrorStatus);
try {
Integer value = error.poll(TIMEOUT, TimeUnit.MILLISECONDS);
@@ -228,7 +231,9 @@
if (SatelliteTestApp.getTestSatelliteService() != null) {
SatelliteTestApp.getTestSatelliteService().sendOnPendingDatagrams();
}
- mSatelliteManager.requestEnabled(true, true, Runnable::run, resultListener::offer);
+ mSatelliteManager.requestEnabled(
+ new EnableRequestAttributes.Builder(true).setDemoMode(true).build(),
+ Runnable::run, resultListener::offer);
try {
Integer value = resultListener.poll(TIMEOUT, TimeUnit.MILLISECONDS);
if (value == null) {
diff --git a/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/MultipleSendReceive.java b/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/MultipleSendReceive.java
index 0e5ab4f..723f690 100644
--- a/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/MultipleSendReceive.java
+++ b/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/MultipleSendReceive.java
@@ -19,6 +19,7 @@
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
+import android.telephony.satellite.EnableRequestAttributes;
import android.telephony.satellite.SatelliteDatagram;
import android.telephony.satellite.SatelliteManager;
import android.util.Log;
@@ -66,7 +67,9 @@
SatelliteTestApp.getTestSatelliteService().sendOnSatelliteDatagramReceived(
mReceivedDatagram, 4);
LinkedBlockingQueue<Integer> resultListener = new LinkedBlockingQueue<>(1);
- mSatelliteManager.requestEnabled(true, true, Runnable::run, resultListener::offer);
+ mSatelliteManager.requestEnabled(
+ new EnableRequestAttributes.Builder(true).setDemoMode(true).build(),
+ Runnable::run, resultListener::offer);
mSatelliteManager.pollPendingDatagrams(Runnable::run, resultListener::offer);
SatelliteTestApp.getTestSatelliteService().sendOnSatelliteDatagramReceived(
mReceivedDatagram, 3);
@@ -127,7 +130,9 @@
private void multipleSendReceiveSatelliteDatagramApp(View view) {
mSatelliteManager.setDeviceAlignedWithSatellite(true);
LinkedBlockingQueue<Integer> resultListener = new LinkedBlockingQueue<>(1);
- mSatelliteManager.requestEnabled(true, true, Runnable::run, resultListener::offer);
+ mSatelliteManager.requestEnabled(
+ new EnableRequestAttributes.Builder(true).setDemoMode(true).build(),
+ Runnable::run, resultListener::offer);
String mText = "This is a test datagram message";
SatelliteDatagram datagram = new SatelliteDatagram(mText.getBytes());
mSatelliteManager.sendDatagram(SatelliteManager.DATAGRAM_TYPE_SOS_MESSAGE,
diff --git a/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/SatelliteControl.java b/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/SatelliteControl.java
index 9df5d94..dd7b825 100644
--- a/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/SatelliteControl.java
+++ b/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/SatelliteControl.java
@@ -22,6 +22,7 @@
import android.os.OutcomeReceiver;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
+import android.telephony.satellite.EnableRequestAttributes;
import android.telephony.satellite.SatelliteCapabilities;
import android.telephony.satellite.SatelliteManager;
import android.telephony.satellite.stub.SatelliteResult;
@@ -90,7 +91,9 @@
private void enableSatelliteApp(View view) {
LinkedBlockingQueue<Integer> error = new LinkedBlockingQueue<>(1);
- mSatelliteManager.requestEnabled(true, true, Runnable::run, error::offer);
+ mSatelliteManager.requestEnabled(
+ new EnableRequestAttributes.Builder(true).setDemoMode(true).build(),
+ Runnable::run, error::offer);
TextView textView = findViewById(R.id.text_id);
try {
Integer value = error.poll(TIMEOUT, TimeUnit.MILLISECONDS);
@@ -109,7 +112,8 @@
private void disableSatelliteApp(View view) {
LinkedBlockingQueue<Integer> error = new LinkedBlockingQueue<>(1);
- mSatelliteManager.requestEnabled(false, true, Runnable::run, error::offer);
+ mSatelliteManager.requestEnabled(new EnableRequestAttributes.Builder(false).build(),
+ Runnable::run, error::offer);
TextView textView = findViewById(R.id.text_id);
try {
Integer value = error.poll(TIMEOUT, TimeUnit.MILLISECONDS);
diff --git a/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/SendReceive.java b/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/SendReceive.java
index b5e82b1..ab7b1c4 100644
--- a/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/SendReceive.java
+++ b/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/SendReceive.java
@@ -21,6 +21,7 @@
import android.os.Bundle;
import android.os.CancellationSignal;
import android.os.OutcomeReceiver;
+import android.telephony.satellite.EnableRequestAttributes;
import android.telephony.satellite.PointingInfo;
import android.telephony.satellite.SatelliteCapabilities;
import android.telephony.satellite.SatelliteDatagram;
@@ -157,7 +158,9 @@
if (SatelliteTestApp.getTestSatelliteService() != null) {
SatelliteTestApp.getTestSatelliteService().sendOnPendingDatagrams();
}
- mSatelliteManager.requestEnabled(true, true, Runnable::run, resultListener::offer);
+ mSatelliteManager.requestEnabled(
+ new EnableRequestAttributes.Builder(true).setDemoMode(true).build(),
+ Runnable::run, resultListener::offer);
try {
Integer value = resultListener.poll(TIMEOUT, TimeUnit.MILLISECONDS);
if (value == null) {
@@ -238,7 +241,9 @@
//Satellite Position
SatelliteTransmissionUpdateCallbackTestApp callback =
new SatelliteTransmissionUpdateCallbackTestApp();
- mSatelliteManager.requestEnabled(true, true, Runnable::run, error::offer);
+ mSatelliteManager.requestEnabled(
+ new EnableRequestAttributes.Builder(true).setDemoMode(true).build(),
+ Runnable::run, error::offer);
try {
Integer value = error.poll(TIMEOUT, TimeUnit.MILLISECONDS);
if (value == null) {