Merge "Hidden menu fix to hide the non-eSOS test button if the carrier config KEY_SATELLITE_ATTACH_SUPPORTED_BOOL is false for the given sim" into main
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index 6dc2add..41e8647 100644
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -479,6 +479,8 @@
private static final int MODEM_ACTIVITY_TIME_OFFSET_CORRECTION_MS = 50;
+ private static final int LINE1_NUMBER_MAX_LEN = 50;
+
/**
* With support for MEP(multiple enabled profile) in Android T, a SIM card can have more than
* one ICCID active at the same time.
@@ -7581,8 +7583,11 @@
}
}
- enforceTelephonyFeatureWithException(getCurrentPackageName(),
- PackageManager.FEATURE_TELEPHONY_DATA, "isDataEnabledForReason");
+ if (!mApp.getResources().getBoolean(
+ com.android.internal.R.bool.config_force_phone_globals_creation)) {
+ enforceTelephonyFeatureWithException(getCurrentPackageName(),
+ PackageManager.FEATURE_TELEPHONY_DATA, "isDataEnabledForReason");
+ }
final long identity = Binder.clearCallingIdentity();
try {
@@ -7669,9 +7674,12 @@
public int checkCarrierPrivilegesForPackageAnyPhone(String pkgName) {
enforceReadPrivilegedPermission("checkCarrierPrivilegesForPackageAnyPhone");
- enforceTelephonyFeatureWithException(getCurrentPackageName(),
- PackageManager.FEATURE_TELEPHONY_SUBSCRIPTION,
- "checkCarrierPrivilegesForPackageAnyPhone");
+ if (!mApp.getResources().getBoolean(
+ com.android.internal.R.bool.config_force_phone_globals_creation)) {
+ enforceTelephonyFeatureWithException(getCurrentPackageName(),
+ PackageManager.FEATURE_TELEPHONY_SUBSCRIPTION,
+ "checkCarrierPrivilegesForPackageAnyPhone");
+ }
return checkCarrierPrivilegesForPackageAnyPhoneWithPermission(pkgName);
}
@@ -7852,6 +7860,10 @@
if (phone == null) {
return false;
}
+ if (!TextUtils.isEmpty(number) && number.length() > LINE1_NUMBER_MAX_LEN) {
+ Rlog.e(LOG_TAG, "Number is too long");
+ return false;
+ }
final String subscriberId = phone.getSubscriberId();
if (DBG_MERGE) {
diff --git a/testapps/TestSatelliteApp/res/layout/activity_TestSatelliteWrapper.xml b/testapps/TestSatelliteApp/res/layout/activity_TestSatelliteWrapper.xml
index a6259c8..39a4bd6 100644
--- a/testapps/TestSatelliteApp/res/layout/activity_TestSatelliteWrapper.xml
+++ b/testapps/TestSatelliteApp/res/layout/activity_TestSatelliteWrapper.xml
@@ -155,6 +155,18 @@
android:layout_height="wrap_content"
android:paddingRight="4dp"
android:text="@string/unregisterForCommunicationAllowedStateChanged"/>
+ <Button
+ android:id="@+id/registerForModemStateChanged"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingRight="4dp"
+ android:text="@string/registerForModemStateChanged"/>
+ <Button
+ android:id="@+id/unregisterForModemStateChanged"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingRight="4dp"
+ android:text="@string/unregisterForModemStateChanged"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
diff --git a/testapps/TestSatelliteApp/res/values/donottranslate_strings.xml b/testapps/TestSatelliteApp/res/values/donottranslate_strings.xml
index 86f458e..c51d574 100644
--- a/testapps/TestSatelliteApp/res/values/donottranslate_strings.xml
+++ b/testapps/TestSatelliteApp/res/values/donottranslate_strings.xml
@@ -102,4 +102,7 @@
<string name="registerForCarrierRoamingNtnModeChanged">registerForCarrierRoamingNtnModeChanged</string>
<string name="unregisterForCarrierRoamingNtnModeChanged">unregisterForCarrierRoamingNtnModeChanged</string>
+
+ <string name="registerForModemStateChanged">registerForModemStateChanged</string>
+ <string name="unregisterForModemStateChanged">unregisterForModemStateChanged</string>
</resources>
diff --git a/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/TestSatelliteWrapper.java b/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/TestSatelliteWrapper.java
index bc42f1d..109ebbf 100644
--- a/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/TestSatelliteWrapper.java
+++ b/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/TestSatelliteWrapper.java
@@ -29,6 +29,7 @@
import android.telephony.satellite.wrapper.SatelliteCapabilitiesCallbackWrapper;
import android.telephony.satellite.wrapper.SatelliteCommunicationAllowedStateCallbackWrapper;
import android.telephony.satellite.wrapper.SatelliteManagerWrapper;
+import android.telephony.satellite.wrapper.SatelliteModemStateCallbackWrapper;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
@@ -55,6 +56,7 @@
private final ExecutorService mExecutor = Executors.newSingleThreadExecutor();
private SatelliteManagerWrapper mSatelliteManagerWrapper;
private NtnSignalStrengthCallback mNtnSignalStrengthCallback = null;
+ private SatelliteModemStateCallback mModemStateCallback = null;
private CarrierRoamingNtnModeListener mCarrierRoamingNtnModeListener = null;
private SatelliteCommunicationAllowedStateCallback mSatelliteCommunicationAllowedStateCallback;
private SatelliteCapabilitiesCallbackWrapper mSatelliteCapabilitiesCallback;
@@ -111,6 +113,10 @@
.setOnClickListener(this::registerForCommunicationAllowedStateChanged);
findViewById(R.id.unregisterForCommunicationAllowedStateChanged)
.setOnClickListener(this::unregisterForCommunicationAllowedStateChanged);
+ findViewById(R.id.registerForModemStateChanged)
+ .setOnClickListener(this::registerForModemStateChanged);
+ findViewById(R.id.unregisterForModemStateChanged)
+ .setOnClickListener(this::unregisterForModemStateChanged);
findViewById(R.id.Back).setOnClickListener(new OnClickListener() {
@Override
@@ -353,6 +359,38 @@
}
}
+ private void registerForModemStateChanged(View view) {
+ addLogMessage("registerForModemStateChanged");
+ logd("registerForSatelliteModemStateChanged()");
+ if (mModemStateCallback == null) {
+ logd("create new ModemStateCallback instance.");
+ mModemStateCallback = new SatelliteModemStateCallback();
+ }
+
+ try {
+ mSatelliteManagerWrapper.registerForModemStateChanged(mExecutor, mModemStateCallback);
+ } catch (Exception ex) {
+ String errorMessage = "registerForModemStateChanged: " + ex.getMessage();
+ logd(errorMessage);
+ addLogMessage(errorMessage);
+ mModemStateCallback = null;
+ }
+ }
+
+ private void unregisterForModemStateChanged(View view) {
+ addLogMessage("unregisterForModemStateChanged");
+ logd("unregisterForModemStateChanged()");
+ if (mModemStateCallback != null) {
+ mSatelliteManagerWrapper.unregisterForModemStateChanged(mModemStateCallback);
+ mModemStateCallback = null;
+ addLogMessage("mModemStateCallback was unregistered");
+ } else {
+ addLogMessage("mModemStateCallback is null, ignored.");
+ }
+ }
+
+
+
public class NtnSignalStrengthCallback implements NtnSignalStrengthCallbackWrapper {
@Override
public void onNtnSignalStrengthChanged(
@@ -393,6 +431,22 @@
}
}
+ private class SatelliteModemStateCallback implements SatelliteModemStateCallbackWrapper {
+ @Override
+ public void onSatelliteModemStateChanged(int state) {
+ String message = "Received onSatelliteModemStateChanged state: " + state;
+ logd(message);
+ addLogMessage(message);
+ }
+
+ @Override
+ public void onEmergencyModeChanged(boolean isEmergency) {
+ String message = "Received onEmergencyModeChanged isEmergency: " + isEmergency;
+ logd(message);
+ addLogMessage(message);
+ }
+ }
+
private void isNonTerrestrialNetwork(View view) {
boolean isNonTerrestrialNetwork = mSatelliteManagerWrapper.isNonTerrestrialNetwork(mSubId);
addLogMessage("isNonTerrestrialNetwork=" + isNonTerrestrialNetwork);