Merge "Import translations. DO NOT MERGE ANYWHERE" into main
diff --git a/res/values/strings.xml b/res/values/strings.xml
index ae350f8..a191d1b 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -2029,7 +2029,7 @@
<!-- Title for simulating SIM capable of satellite. -->
<string name="mock_carrier_roaming_satellite_string">Mock Carrier Satellite Mode (Debug Build only)</string>
<!-- Title for trigger real satellite eSOS. -->
- <string name="esos_satellite_string">Test real satellite eSOS mode</string>
+ <string name="esos_satellite_string">Test real satellite eSOS mode (Debug Build only)</string>
<!-- Phone Info screen. Menu item label. Used for diagnostic info screens, precise translation isn't needed -->
<string name="radioInfo_menu_viewADN">View SIM Address Book</string>
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index e6a143b..9c57e69 100644
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -3962,6 +3962,15 @@
mApp.enforceCallingOrSelfPermission(permission.SATELLITE_COMMUNICATION, message);
}
+ /**
+ * Make sure the caller has PACKAGE_USAGE_STATS permission.
+ * @param message - log message to print.
+ * @throws SecurityException if the caller does not have the required permission
+ */
+ private void enforcePackageUsageStatsPermission(String message) {
+ mApp.enforceCallingOrSelfPermission(permission.PACKAGE_USAGE_STATS, message);
+ }
+
private String createTelUrl(String number) {
if (TextUtils.isEmpty(number)) {
return null;
@@ -14240,4 +14249,20 @@
enforceSatelliteCommunicationPermission("unregisterForCommunicationAllowedStateChanged");
mSatelliteAccessController.unregisterForCommunicationAllowedStateChanged(subId, callback);
}
+
+ /**
+ * Request to get the {@link SatelliteSessionStats} of the satellite service.
+ *
+ * @param subId The subId of the subscription to the satellite session stats for.
+ * @param result The result receiver that returns the {@link SatelliteSessionStats}
+ * if the request is successful or an error code if the request failed.
+ *
+ * @throws SecurityException if the caller doesn't have required permission.
+ */
+ @Override
+ public void requestSatelliteSessionStats(int subId, @NonNull ResultReceiver result) {
+ enforceModifyPermission();
+ enforcePackageUsageStatsPermission("requestSatelliteSessionStats");
+ mSatelliteController.requestSatelliteSessionStats(subId, result);
+ }
}
diff --git a/src/com/android/phone/satellite/accesscontrol/SatelliteAccessController.java b/src/com/android/phone/satellite/accesscontrol/SatelliteAccessController.java
index 45340d8..6679029 100644
--- a/src/com/android/phone/satellite/accesscontrol/SatelliteAccessController.java
+++ b/src/com/android/phone/satellite/accesscontrol/SatelliteAccessController.java
@@ -1012,11 +1012,17 @@
synchronized (mLock) {
stopWaitForCurrentLocationTimer();
mLocationRequestCancellationSignal = null;
+ Bundle bundle = new Bundle();
if (location != null) {
+ if (location.isMock() && !isMockModemAllowed()) {
+ logd("location is mock");
+ bundle.putBoolean(KEY_SATELLITE_COMMUNICATION_ALLOWED, false);
+ sendSatelliteAllowResultToReceivers(SATELLITE_RESULT_SUCCESS, bundle, false);
+ return;
+ }
checkSatelliteAccessRestrictionForLocation(location);
} else {
logd("current location is not available");
- Bundle bundle = new Bundle();
if (isCommunicationAllowedCacheValid()) {
logd("onCurrentLocationAvailable: 24Hr cache is still valid, using it");
bundle.putBoolean(KEY_SATELLITE_COMMUNICATION_ALLOWED,
@@ -1188,7 +1194,12 @@
result = location;
}
}
- return result;
+
+ if (result == null || isMockModemAllowed()) {
+ return result;
+ }
+
+ return result.isMock() ? null : result;
}
private void initSharedPreferences(@NonNull Context context) {
diff --git a/src/com/android/phone/settings/RadioInfo.java b/src/com/android/phone/settings/RadioInfo.java
index 4cb504f..c59f92a 100644
--- a/src/com/android/phone/settings/RadioInfo.java
+++ b/src/com/android/phone/settings/RadioInfo.java
@@ -106,7 +106,6 @@
import com.android.internal.telephony.Phone;
import com.android.internal.telephony.PhoneFactory;
import com.android.internal.telephony.euicc.EuiccConnector;
-import com.android.internal.telephony.flags.Flags;
import com.android.internal.telephony.util.TelephonyUtils;
import com.android.phone.R;
@@ -744,7 +743,7 @@
}
mEsosButton = (Button) findViewById(R.id.esos_questionnaire);
- if (!Flags.oemEnabledSatelliteFlag()) {
+ if (!TelephonyUtils.IS_DEBUGGABLE) {
mEsosButton.setVisibility(View.GONE);
} else {
mEsosButton.setOnClickListener(v ->