Merge "Add extra for staring audio sharing from qs tile click." into main
diff --git a/core/java/android/app/Activity.java b/core/java/android/app/Activity.java
index 90de7ab..4fb35c3 100644
--- a/core/java/android/app/Activity.java
+++ b/core/java/android/app/Activity.java
@@ -7312,7 +7312,7 @@
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
private void finish(int finishTask) {
if (DEBUG_FINISH_ACTIVITY) {
- Log.d("Instrumentation", "finishActivity: finishTask=" + finishTask, new Throwable());
+ Log.d(Instrumentation.TAG, "finishActivity: finishTask=" + finishTask, new Throwable());
}
if (mParent == null) {
int resultCode;
diff --git a/core/java/android/app/ActivityManager.java b/core/java/android/app/ActivityManager.java
index 74e9583..be70de2 100644
--- a/core/java/android/app/ActivityManager.java
+++ b/core/java/android/app/ActivityManager.java
@@ -16,6 +16,7 @@
package android.app;
+import static android.app.Instrumentation.DEBUG_FINISH_ACTIVITY;
import static android.app.WindowConfiguration.activityTypeToString;
import static android.app.WindowConfiguration.windowingModeToString;
import static android.content.Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS;
@@ -80,6 +81,7 @@
import android.text.TextUtils;
import android.util.ArrayMap;
import android.util.DisplayMetrics;
+import android.util.Log;
import android.util.Singleton;
import android.util.Size;
import android.view.WindowInsetsController.Appearance;
@@ -6011,6 +6013,10 @@
* Finishes all activities in this task and removes it from the recent tasks list.
*/
public void finishAndRemoveTask() {
+ if (DEBUG_FINISH_ACTIVITY) {
+ Log.d(Instrumentation.TAG, "AppTask#finishAndRemoveTask: task="
+ + getTaskInfo(), new Throwable());
+ }
try {
mAppTaskImpl.finishAndRemoveTask();
} catch (RemoteException e) {
diff --git a/core/java/android/app/Instrumentation.java b/core/java/android/app/Instrumentation.java
index be27046..45852c7 100644
--- a/core/java/android/app/Instrumentation.java
+++ b/core/java/android/app/Instrumentation.java
@@ -98,7 +98,7 @@
*/
public static final String REPORT_KEY_STREAMRESULT = "stream";
- private static final String TAG = "Instrumentation";
+ static final String TAG = "Instrumentation";
private static final long CONNECT_TIMEOUT_MILLIS = 60_000;
diff --git a/core/java/android/app/appfunctions/OWNERS b/core/java/android/app/appfunctions/OWNERS
new file mode 100644
index 0000000..c6827cc
--- /dev/null
+++ b/core/java/android/app/appfunctions/OWNERS
@@ -0,0 +1,6 @@
+avayvod@google.com
+oadesina@google.com
+toki@google.com
+tonymak@google.com
+mingweiliao@google.com
+anothermark@google.com
diff --git a/packages/PackageInstaller/src/com/android/packageinstaller/v2/ui/InstallLaunch.kt b/packages/PackageInstaller/src/com/android/packageinstaller/v2/ui/InstallLaunch.kt
index e2ab316..c61a2ac 100644
--- a/packages/PackageInstaller/src/com/android/packageinstaller/v2/ui/InstallLaunch.kt
+++ b/packages/PackageInstaller/src/com/android/packageinstaller/v2/ui/InstallLaunch.kt
@@ -16,7 +16,9 @@
package com.android.packageinstaller.v2.ui
-import android.app.Activity
+import android.app.Activity.RESULT_CANCELED
+import android.app.Activity.RESULT_FIRST_USER
+import android.app.Activity.RESULT_OK
import android.app.AppOpsManager
import android.content.ActivityNotFoundException
import android.content.Intent
@@ -135,7 +137,7 @@
}
InstallAborted.ABORT_REASON_POLICY -> showPolicyRestrictionDialog(aborted)
- else -> setResult(Activity.RESULT_CANCELED, null, true)
+ else -> setResult(RESULT_CANCELED, null, true)
}
}
@@ -169,7 +171,7 @@
val success = installStage as InstallSuccess
if (success.shouldReturnResult) {
val successIntent = success.resultIntent
- setResult(Activity.RESULT_OK, successIntent, true)
+ setResult(RESULT_OK, successIntent, true)
} else {
val successDialog = InstallSuccessFragment(success)
showDialogInner(successDialog)
@@ -180,7 +182,7 @@
val failed = installStage as InstallFailed
if (failed.shouldReturnResult) {
val failureIntent = failed.resultIntent
- setResult(Activity.RESULT_FIRST_USER, failureIntent, true)
+ setResult(RESULT_FIRST_USER, failureIntent, true)
} else {
val failureDialog = InstallFailedFragment(failed)
showDialogInner(failureDialog)
@@ -219,7 +221,7 @@
shouldFinish = blockedByPolicyDialog == null
showDialogInner(blockedByPolicyDialog)
}
- setResult(Activity.RESULT_CANCELED, null, shouldFinish)
+ setResult(RESULT_CANCELED, null, shouldFinish)
}
/**
@@ -257,6 +259,10 @@
fun setResult(resultCode: Int, data: Intent?, shouldFinish: Boolean) {
super.setResult(resultCode, data)
+ if (resultCode != RESULT_OK) {
+ // Let callers know that the install was cancelled
+ installViewModel!!.cleanupInstall()
+ }
if (shouldFinish) {
finish()
}
@@ -282,7 +288,7 @@
if (stageCode == InstallStage.STAGE_USER_ACTION_REQUIRED) {
installViewModel!!.cleanupInstall()
}
- setResult(Activity.RESULT_CANCELED, null, true)
+ setResult(RESULT_CANCELED, null, true)
}
override fun onNegativeResponse(resultCode: Int, data: Intent?) {
@@ -318,7 +324,7 @@
if (localLogv) {
Log.d(LOG_TAG, "Opening $intent")
}
- setResult(Activity.RESULT_OK, intent, true)
+ setResult(RESULT_OK, intent, true)
if (intent != null && intent.hasCategory(Intent.CATEGORY_LAUNCHER)) {
startActivity(intent)
}
diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/CsipDeviceManager.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/CsipDeviceManager.java
index 7124ed2..c6eb9fd 100644
--- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/CsipDeviceManager.java
+++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/CsipDeviceManager.java
@@ -178,7 +178,7 @@
}
log("updateRelationshipOfGroupDevices: mCachedDevices list =" + mCachedDevices.toString());
- // Get the preferred main device by getPreferredMainDeviceWithoutConectionState
+ // Get the preferred main device by getPreferredMainDeviceWithoutConnectionState
List<CachedBluetoothDevice> groupDevicesList = getGroupDevicesFromAllOfDevicesList(groupId);
CachedBluetoothDevice preferredMainDevice =
getPreferredMainDevice(groupId, groupDevicesList);
@@ -373,6 +373,7 @@
preferredMainDevice.addMemberDevice(deviceItem);
mCachedDevices.remove(deviceItem);
mBtManager.getEventManager().dispatchDeviceRemoved(deviceItem);
+ preferredMainDevice.refresh();
hasChanged = true;
}
}
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/CsipDeviceManagerTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/CsipDeviceManagerTest.java
index f94f21f..698eb81 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/CsipDeviceManagerTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/CsipDeviceManagerTest.java
@@ -19,7 +19,9 @@
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.Mockito.atLeastOnce;
import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.bluetooth.BluetoothClass;
@@ -352,4 +354,34 @@
assertThat(mCachedDevice1.getMemberDevice()).contains(mCachedDevice3);
assertThat(mCachedDevice1.getDevice()).isEqualTo(expectedMainBluetoothDevice);
}
+
+ @Test
+ public void onProfileConnectionStateChangedIfProcessed_addMemberDevice_refreshUI() {
+ mCachedDevice3.setGroupId(GROUP1);
+
+ mCsipDeviceManager.onProfileConnectionStateChangedIfProcessed(mCachedDevice3,
+ BluetoothProfile.STATE_CONNECTED);
+
+ verify(mCachedDevice1).refresh();
+ }
+
+ @Test
+ public void onProfileConnectionStateChangedIfProcessed_switchMainDevice_refreshUI() {
+ when(mDevice3.isConnected()).thenReturn(true);
+ when(mDevice2.isConnected()).thenReturn(false);
+ when(mDevice1.isConnected()).thenReturn(false);
+ mCachedDevice3.setGroupId(GROUP1);
+ mCsipDeviceManager.onProfileConnectionStateChangedIfProcessed(mCachedDevice3,
+ BluetoothProfile.STATE_CONNECTED);
+
+ when(mDevice3.isConnected()).thenReturn(false);
+ mCsipDeviceManager.onProfileConnectionStateChangedIfProcessed(mCachedDevice3,
+ BluetoothProfile.STATE_DISCONNECTED);
+ when(mDevice1.isConnected()).thenReturn(true);
+ mCsipDeviceManager.onProfileConnectionStateChangedIfProcessed(mCachedDevice1,
+ BluetoothProfile.STATE_CONNECTED);
+
+ verify(mCachedDevice3).switchMemberDeviceContent(mCachedDevice1);
+ verify(mCachedDevice3, atLeastOnce()).refresh();
+ }
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/domain/interactor/ActiveNotificationsInteractor.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/domain/interactor/ActiveNotificationsInteractor.kt
index 1027bc9..9b382e6 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/domain/interactor/ActiveNotificationsInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/domain/interactor/ActiveNotificationsInteractor.kt
@@ -89,6 +89,7 @@
.filter { it.callType == CallType.Ongoing }
.minByOrNull { it.whenTime }
}
+ .distinctUntilChanged()
.flowOn(backgroundDispatcher)
/** Are any notifications being actively presented in the notification stack? */
diff --git a/services/appfunctions/OWNERS b/services/appfunctions/OWNERS
new file mode 100644
index 0000000..b310894
--- /dev/null
+++ b/services/appfunctions/OWNERS
@@ -0,0 +1 @@
+include /core/java/android/app/appfunctions/OWNERS
diff --git a/services/core/java/com/android/server/notification/NotificationAttentionHelper.java b/services/core/java/com/android/server/notification/NotificationAttentionHelper.java
index b4459cb..9818916 100644
--- a/services/core/java/com/android/server/notification/NotificationAttentionHelper.java
+++ b/services/core/java/com/android/server/notification/NotificationAttentionHelper.java
@@ -1519,7 +1519,14 @@
@Override
public void setLastNotificationUpdateTimeMs(NotificationRecord record,
long timestampMillis) {
- super.setLastNotificationUpdateTimeMs(record, timestampMillis);
+ if (Flags.politeNotificationsAttnUpdate()) {
+ // Set last update per package/channel only for exempt notifications
+ if (isAvalancheExempted(record)) {
+ super.setLastNotificationUpdateTimeMs(record, timestampMillis);
+ }
+ } else {
+ super.setLastNotificationUpdateTimeMs(record, timestampMillis);
+ }
mLastNotificationTimestamp = timestampMillis;
mAppStrategy.setLastNotificationUpdateTimeMs(record, timestampMillis);
}
diff --git a/services/core/java/com/android/server/om/OverlayManagerService.java b/services/core/java/com/android/server/om/OverlayManagerService.java
index 46585a5..6303ecd 100644
--- a/services/core/java/com/android/server/om/OverlayManagerService.java
+++ b/services/core/java/com/android/server/om/OverlayManagerService.java
@@ -80,6 +80,7 @@
import android.util.Slog;
import android.util.SparseArray;
+import com.android.internal.annotations.GuardedBy;
import com.android.internal.annotations.KeepForWeakReference;
import com.android.internal.content.PackageMonitor;
import com.android.internal.content.om.OverlayConfig;
@@ -1180,6 +1181,7 @@
// intent, querying the PackageManagerService for the actual current
// state may lead to contradictions within OMS. Better then to lag
// behind until all pending intents have been processed.
+ @GuardedBy("itself")
private final ArrayMap<String, PackageStateUsers> mCache = new ArrayMap<>();
private final ArraySet<Integer> mInitializedUsers = new ArraySet<>();
@@ -1207,10 +1209,12 @@
}
final ArrayMap<String, PackageState> userPackages = new ArrayMap<>();
- for (int i = 0, n = mCache.size(); i < n; i++) {
- final PackageStateUsers pkg = mCache.valueAt(i);
- if (pkg.mInstalledUsers.contains(userId)) {
- userPackages.put(mCache.keyAt(i), pkg.mPackageState);
+ synchronized (mCache) {
+ for (int i = 0, n = mCache.size(); i < n; i++) {
+ final PackageStateUsers pkg = mCache.valueAt(i);
+ if (pkg.mInstalledUsers.contains(userId)) {
+ userPackages.put(mCache.keyAt(i), pkg.mPackageState);
+ }
}
}
return userPackages;
@@ -1220,7 +1224,11 @@
@Nullable
public PackageState getPackageStateForUser(@NonNull final String packageName,
final int userId) {
- final PackageStateUsers pkg = mCache.get(packageName);
+ final PackageStateUsers pkg;
+
+ synchronized (mCache) {
+ pkg = mCache.get(packageName);
+ }
if (pkg != null && pkg.mInstalledUsers.contains(userId)) {
return pkg.mPackageState;
}
@@ -1251,12 +1259,15 @@
@NonNull
private PackageState addPackageUser(@NonNull final PackageState pkg,
final int user) {
- PackageStateUsers pkgUsers = mCache.get(pkg.getPackageName());
- if (pkgUsers == null) {
- pkgUsers = new PackageStateUsers(pkg);
- mCache.put(pkg.getPackageName(), pkgUsers);
- } else {
- pkgUsers.mPackageState = pkg;
+ PackageStateUsers pkgUsers;
+ synchronized (mCache) {
+ pkgUsers = mCache.get(pkg.getPackageName());
+ if (pkgUsers == null) {
+ pkgUsers = new PackageStateUsers(pkg);
+ mCache.put(pkg.getPackageName(), pkgUsers);
+ } else {
+ pkgUsers.mPackageState = pkg;
+ }
}
pkgUsers.mInstalledUsers.add(user);
return pkgUsers.mPackageState;
@@ -1265,18 +1276,24 @@
@NonNull
private void removePackageUser(@NonNull final String packageName, final int user) {
- final PackageStateUsers pkgUsers = mCache.get(packageName);
- if (pkgUsers == null) {
- return;
+ // synchronize should include the call to the other removePackageUser() method so that
+ // the access and modification happen under the same lock.
+ synchronized (mCache) {
+ final PackageStateUsers pkgUsers = mCache.get(packageName);
+ if (pkgUsers == null) {
+ return;
+ }
+ removePackageUser(pkgUsers, user);
}
- removePackageUser(pkgUsers, user);
}
@NonNull
private void removePackageUser(@NonNull final PackageStateUsers pkg, final int user) {
pkg.mInstalledUsers.remove(user);
if (pkg.mInstalledUsers.isEmpty()) {
- mCache.remove(pkg.mPackageState.getPackageName());
+ synchronized (mCache) {
+ mCache.remove(pkg.mPackageState.getPackageName());
+ }
}
}
@@ -1386,8 +1403,10 @@
public void forgetAllPackageInfos(final int userId) {
// Iterate in reverse order since removing the package in all users will remove the
// package from the cache.
- for (int i = mCache.size() - 1; i >= 0; i--) {
- removePackageUser(mCache.valueAt(i), userId);
+ synchronized (mCache) {
+ for (int i = mCache.size() - 1; i >= 0; i--) {
+ removePackageUser(mCache.valueAt(i), userId);
+ }
}
}
@@ -1405,22 +1424,23 @@
public void dump(@NonNull final PrintWriter pw, @NonNull DumpState dumpState) {
pw.println("AndroidPackage cache");
+ synchronized (mCache) {
+ if (!dumpState.isVerbose()) {
+ pw.println(TAB1 + mCache.size() + " package(s)");
+ return;
+ }
- if (!dumpState.isVerbose()) {
- pw.println(TAB1 + mCache.size() + " package(s)");
- return;
- }
+ if (mCache.size() == 0) {
+ pw.println(TAB1 + "<empty>");
+ return;
+ }
- if (mCache.size() == 0) {
- pw.println(TAB1 + "<empty>");
- return;
- }
-
- for (int i = 0, n = mCache.size(); i < n; i++) {
- final String packageName = mCache.keyAt(i);
- final PackageStateUsers pkg = mCache.valueAt(i);
- pw.print(TAB1 + packageName + ": " + pkg.mPackageState + " users=");
- pw.println(TextUtils.join(", ", pkg.mInstalledUsers));
+ for (int i = 0, n = mCache.size(); i < n; i++) {
+ final String packageName = mCache.keyAt(i);
+ final PackageStateUsers pkg = mCache.valueAt(i);
+ pw.print(TAB1 + packageName + ": " + pkg.mPackageState + " users=");
+ pw.println(TextUtils.join(", ", pkg.mInstalledUsers));
+ }
}
}
}
diff --git a/services/core/java/com/android/server/wm/Task.java b/services/core/java/com/android/server/wm/Task.java
index d3df5fd..12e91ad 100644
--- a/services/core/java/com/android/server/wm/Task.java
+++ b/services/core/java/com/android/server/wm/Task.java
@@ -3507,7 +3507,7 @@
| StartingWindowInfo.TYPE_PARAMETER_WINDOWLESS);
if ((info.startingWindowTypeParameter
& StartingWindowInfo.TYPE_PARAMETER_ACTIVITY_CREATED) != 0) {
- final WindowState topMainWin = getWindow(w -> w.mAttrs.type == TYPE_BASE_APPLICATION);
+ final WindowState topMainWin = getTopFullscreenMainWindow();
if (topMainWin != null) {
info.mainWindowLayoutParams = topMainWin.getAttrs();
info.requestedVisibleTypes = topMainWin.getRequestedVisibleTypes();
diff --git a/services/tests/uiservicestests/src/com/android/server/notification/NotificationAttentionHelperTest.java b/services/tests/uiservicestests/src/com/android/server/notification/NotificationAttentionHelperTest.java
index 14ad15e..643ee4a 100644
--- a/services/tests/uiservicestests/src/com/android/server/notification/NotificationAttentionHelperTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/notification/NotificationAttentionHelperTest.java
@@ -2458,6 +2458,74 @@
}
@Test
+ public void testBeepVolume_politeNotif_AvalancheStrategy_mixedNotif() throws Exception {
+ mSetFlagsRule.enableFlags(Flags.FLAG_POLITE_NOTIFICATIONS);
+ mSetFlagsRule.enableFlags(Flags.FLAG_CROSS_APP_POLITE_NOTIFICATIONS);
+ mSetFlagsRule.enableFlags(Flags.FLAG_POLITE_NOTIFICATIONS_ATTN_UPDATE);
+ TestableFlagResolver flagResolver = new TestableFlagResolver();
+ flagResolver.setFlagOverride(NotificationFlags.NOTIF_VOLUME1, 50);
+ flagResolver.setFlagOverride(NotificationFlags.NOTIF_VOLUME2, 0);
+ initAttentionHelper(flagResolver);
+
+ // Trigger avalanche trigger intent
+ final Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);
+ intent.putExtra("state", false);
+ mAvalancheBroadcastReceiver.onReceive(getContext(), intent);
+
+ // Regular notification: should beep at 0% volume
+ NotificationRecord r = getBeepyNotification();
+ mAttentionHelper.buzzBeepBlinkLocked(r, DEFAULT_SIGNALS);
+ verifyBeepVolume(0.0f);
+ assertEquals(-1, r.getLastAudiblyAlertedMs());
+ Mockito.reset(mRingtonePlayer);
+
+ // Conversation notification
+ mChannel = new NotificationChannel("test2", "test2", IMPORTANCE_DEFAULT);
+ NotificationRecord r2 = getConversationNotificationRecord(mId, false /* insistent */,
+ false /* once */, true /* noisy */, false /* buzzy*/, false /* lights */, true,
+ true, false, null, Notification.GROUP_ALERT_ALL, false, mUser, mPkg,
+ "shortcut");
+
+ // Should beep at 100% volume
+ mAttentionHelper.buzzBeepBlinkLocked(r2, DEFAULT_SIGNALS);
+ assertNotEquals(-1, r2.getLastAudiblyAlertedMs());
+ verifyBeepVolume(1.0f);
+
+ // Conversation notification on a different channel
+ mChannel = new NotificationChannel("test3", "test3", IMPORTANCE_DEFAULT);
+ NotificationRecord r3 = getConversationNotificationRecord(mId, false /* insistent */,
+ false /* once */, true /* noisy */, false /* buzzy*/, false /* lights */, true,
+ true, false, null, Notification.GROUP_ALERT_ALL, false, mUser, mPkg,
+ "shortcut");
+
+ // Should beep at 50% volume
+ Mockito.reset(mRingtonePlayer);
+ mAttentionHelper.buzzBeepBlinkLocked(r3, DEFAULT_SIGNALS);
+ assertNotEquals(-1, r3.getLastAudiblyAlertedMs());
+ verifyBeepVolume(0.5f);
+
+ // 2nd update should beep at 0% volume
+ Mockito.reset(mRingtonePlayer);
+ mAttentionHelper.buzzBeepBlinkLocked(r3, DEFAULT_SIGNALS);
+ verifyBeepVolume(0.0f);
+
+ // Set important conversation
+ mChannel.setImportantConversation(true);
+ r3 = getConversationNotificationRecord(mId, false /* insistent */,
+ false /* once */, true /* noisy */, false /* buzzy*/, false /* lights */, true,
+ true, false, null, Notification.GROUP_ALERT_ALL, false, mUser, mPkg,
+ "shortcut");
+
+ // important conversation should beep at 100% volume
+ Mockito.reset(mRingtonePlayer);
+ mAttentionHelper.buzzBeepBlinkLocked(r3, DEFAULT_SIGNALS);
+ verifyBeepVolume(1.0f);
+
+ verify(mAccessibilityService, times(5)).sendAccessibilityEvent(any(), anyInt());
+ assertNotEquals(-1, r3.getLastAudiblyAlertedMs());
+ }
+
+ @Test
public void testBeepVolume_politeNotif_Avalanche_exemptEmergency() throws Exception {
mSetFlagsRule.enableFlags(Flags.FLAG_POLITE_NOTIFICATIONS);
mSetFlagsRule.enableFlags(Flags.FLAG_CROSS_APP_POLITE_NOTIFICATIONS);
diff --git a/telephony/java/android/telephony/satellite/SatelliteManager.java b/telephony/java/android/telephony/satellite/SatelliteManager.java
index ad6db2d..e657d7f 100644
--- a/telephony/java/android/telephony/satellite/SatelliteManager.java
+++ b/telephony/java/android/telephony/satellite/SatelliteManager.java
@@ -254,7 +254,6 @@
*/
public static final String KEY_PROVISION_SATELLITE_TOKENS = "provision_satellite";
-
/**
* The request was successfully processed.
*/
@@ -2643,7 +2642,7 @@
@RequiresPermission(Manifest.permission.SATELLITE_COMMUNICATION)
@FlaggedApi(Flags.FLAG_CARRIER_ROAMING_NB_IOT_NTN)
public void requestProvisionSubscriberIds(@NonNull @CallbackExecutor Executor executor,
- @NonNull OutcomeReceiver<List<ProvisionSubscriberId>, SatelliteException> callback) {
+ @NonNull OutcomeReceiver<List<SatelliteSubscriberInfo>, SatelliteException> callback) {
Objects.requireNonNull(executor);
Objects.requireNonNull(callback);
@@ -2655,10 +2654,10 @@
protected void onReceiveResult(int resultCode, Bundle resultData) {
if (resultCode == SATELLITE_RESULT_SUCCESS) {
if (resultData.containsKey(KEY_REQUEST_PROVISION_SUBSCRIBER_ID_TOKEN)) {
- List<ProvisionSubscriberId> list =
+ List<SatelliteSubscriberInfo> list =
resultData.getParcelableArrayList(
KEY_REQUEST_PROVISION_SUBSCRIBER_ID_TOKEN,
- ProvisionSubscriberId.class);
+ SatelliteSubscriberInfo.class);
executor.execute(() -> Binder.withCleanCallingIdentity(() ->
callback.onResult(list)));
} else {
@@ -2743,9 +2742,9 @@
}
/**
- * Deliver the list of provisioned satellite subscriber ids.
+ * Deliver the list of provisioned satellite subscriber infos.
*
- * @param list List of ProvisionSubscriberId.
+ * @param list The list of provisioned satellite subscriber infos.
* @param executor The executor on which the callback will be called.
* @param callback The callback object to which the result will be delivered.
*
@@ -2754,7 +2753,7 @@
*/
@RequiresPermission(Manifest.permission.SATELLITE_COMMUNICATION)
@FlaggedApi(Flags.FLAG_CARRIER_ROAMING_NB_IOT_NTN)
- public void provisionSatellite(@NonNull List<ProvisionSubscriberId> list,
+ public void provisionSatellite(@NonNull List<SatelliteSubscriberInfo> list,
@NonNull @CallbackExecutor Executor executor,
@NonNull OutcomeReceiver<Boolean, SatelliteException> callback) {
Objects.requireNonNull(executor);
diff --git a/telephony/java/android/telephony/satellite/ProvisionSubscriberId.aidl b/telephony/java/android/telephony/satellite/SatelliteSubscriberInfo.aidl
similarity index 94%
rename from telephony/java/android/telephony/satellite/ProvisionSubscriberId.aidl
rename to telephony/java/android/telephony/satellite/SatelliteSubscriberInfo.aidl
index fe46db8..992c9ae 100644
--- a/telephony/java/android/telephony/satellite/ProvisionSubscriberId.aidl
+++ b/telephony/java/android/telephony/satellite/SatelliteSubscriberInfo.aidl
@@ -16,4 +16,4 @@
package android.telephony.satellite;
-parcelable ProvisionSubscriberId;
+parcelable SatelliteSubscriberInfo;
diff --git a/telephony/java/android/telephony/satellite/ProvisionSubscriberId.java b/telephony/java/android/telephony/satellite/SatelliteSubscriberInfo.java
similarity index 83%
rename from telephony/java/android/telephony/satellite/ProvisionSubscriberId.java
rename to telephony/java/android/telephony/satellite/SatelliteSubscriberInfo.java
index 3e6f743..f26219b 100644
--- a/telephony/java/android/telephony/satellite/ProvisionSubscriberId.java
+++ b/telephony/java/android/telephony/satellite/SatelliteSubscriberInfo.java
@@ -26,7 +26,7 @@
import java.util.Objects;
/**
- * ProvisionSubscriberId
+ * SatelliteSubscriberInfo
*
* Satellite Gateway client will use these subscriber ids to register with satellite gateway service
* which identify user subscription with unique subscriber ids. These subscriber ids can be any
@@ -35,7 +35,7 @@
* @hide
*/
@FlaggedApi(Flags.FLAG_CARRIER_ROAMING_NB_IOT_NTN)
-public final class ProvisionSubscriberId implements Parcelable {
+public final class SatelliteSubscriberInfo implements Parcelable {
/** provision subscriberId */
@NonNull
private String mSubscriberId;
@@ -49,14 +49,14 @@
/**
* @hide
*/
- public ProvisionSubscriberId(@NonNull String subscriberId, @NonNull int carrierId,
+ public SatelliteSubscriberInfo(@NonNull String subscriberId, @NonNull int carrierId,
@NonNull String niddApn) {
this.mCarrierId = carrierId;
this.mSubscriberId = subscriberId;
this.mNiddApn = niddApn;
}
- private ProvisionSubscriberId(Parcel in) {
+ private SatelliteSubscriberInfo(Parcel in) {
readFromParcel(in);
}
@@ -72,16 +72,16 @@
}
@FlaggedApi(Flags.FLAG_CARRIER_ROAMING_NB_IOT_NTN)
- public static final @android.annotation.NonNull Creator<ProvisionSubscriberId> CREATOR =
- new Creator<ProvisionSubscriberId>() {
+ public static final @android.annotation.NonNull Creator<SatelliteSubscriberInfo> CREATOR =
+ new Creator<SatelliteSubscriberInfo>() {
@Override
- public ProvisionSubscriberId createFromParcel(Parcel in) {
- return new ProvisionSubscriberId(in);
+ public SatelliteSubscriberInfo createFromParcel(Parcel in) {
+ return new SatelliteSubscriberInfo(in);
}
@Override
- public ProvisionSubscriberId[] newArray(int size) {
- return new ProvisionSubscriberId[size];
+ public SatelliteSubscriberInfo[] newArray(int size) {
+ return new SatelliteSubscriberInfo[size];
}
};
@@ -148,7 +148,7 @@
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
- ProvisionSubscriberId that = (ProvisionSubscriberId) o;
+ SatelliteSubscriberInfo that = (SatelliteSubscriberInfo) o;
return mSubscriberId.equals(that.mSubscriberId) && mCarrierId
== that.mCarrierId && mNiddApn.equals(that.mNiddApn);
}
diff --git a/telephony/java/android/telephony/satellite/stub/ProvisionSubscriberId.aidl b/telephony/java/android/telephony/satellite/stub/SatelliteSubscriberInfo.aidl
similarity index 95%
rename from telephony/java/android/telephony/satellite/stub/ProvisionSubscriberId.aidl
rename to telephony/java/android/telephony/satellite/stub/SatelliteSubscriberInfo.aidl
index 460de8c..fb44f87 100644
--- a/telephony/java/android/telephony/satellite/stub/ProvisionSubscriberId.aidl
+++ b/telephony/java/android/telephony/satellite/stub/SatelliteSubscriberInfo.aidl
@@ -19,7 +19,7 @@
/**
* {@hide}
*/
-parcelable ProvisionSubscriberId {
+parcelable SatelliteSubscriberInfo {
/** provision subscriberId */
String subscriberId;
diff --git a/telephony/java/com/android/internal/telephony/ITelephony.aidl b/telephony/java/com/android/internal/telephony/ITelephony.aidl
index 2f8e957..8919703 100644
--- a/telephony/java/com/android/internal/telephony/ITelephony.aidl
+++ b/telephony/java/com/android/internal/telephony/ITelephony.aidl
@@ -78,7 +78,7 @@
import android.telephony.satellite.NtnSignalStrength;
import android.telephony.satellite.SatelliteCapabilities;
import android.telephony.satellite.SatelliteDatagram;
-import android.telephony.satellite.ProvisionSubscriberId;
+import android.telephony.satellite.SatelliteSubscriberInfo;
import com.android.ims.internal.IImsServiceFeatureCallback;
import com.android.internal.telephony.CellNetworkScanResult;
import com.android.internal.telephony.IBooleanConsumer;
@@ -3428,13 +3428,13 @@
void requestIsProvisioned(in String satelliteSubscriberId, in ResultReceiver result);
/**
- * Deliver the list of provisioned satellite subscriber ids.
+ * Deliver the list of provisioned satellite subscriber infos.
*
- * @param list List of provisioned satellite subscriber ids.
+ * @param list The list of provisioned satellite subscriber infos.
* @param result The result receiver that returns whether deliver success or fail.
* @hide
*/
@JavaPassthrough(annotation="@android.annotation.RequiresPermission("
+ "android.Manifest.permission.SATELLITE_COMMUNICATION)")
- void provisionSatellite(in List<ProvisionSubscriberId> list, in ResultReceiver result);
+ void provisionSatellite(in List<SatelliteSubscriberInfo> list, in ResultReceiver result);
}