diff options
author | 2022-06-20 09:38:26 +0000 | |
---|---|---|
committer | 2022-07-01 10:53:53 +0000 | |
commit | 4f221e5c5100baf56cdf88ee231f98c45865d382 (patch) | |
tree | 1ee538df77d2b31253cc73db93dcc0688040baee | |
parent | 6e2ad6aace89a9f8cc8f38e1f15e4e2ba54e28fa (diff) |
Migrate Bundle/Intent APIs to new, type checked, variants
Part of go/safer-parcel. Follow up to ag/16639043. Migrates the following unsafe APIs:
* Parcel.readArray()
* Parcel.readParcelableArray()
* Bundle.getSerializable()
* Bundle.getParcelable()
* Bundle.getParcelableArrayList()
* Bundle.getParcelableArray()
* Bundle.getSparseParcelableArray()
* Intent.getSerializableExtra()
* Intent.getParcelableExtra()
* Intent.getParcelableArrayExtra()
* Intent.getParcelableArrayListExtra
Bug: 227458983
Test: m and presubmit pass
Change-Id: I72f206cb18eb5c669a7fff07a6845bed1c433fdb
124 files changed, 244 insertions, 244 deletions
diff --git a/core/java/android/accessibilityservice/AccessibilityService.java b/core/java/android/accessibilityservice/AccessibilityService.java index c17fbf19516b..90b78288d0c6 100644 --- a/core/java/android/accessibilityservice/AccessibilityService.java +++ b/core/java/android/accessibilityservice/AccessibilityService.java @@ -2590,9 +2590,9 @@ public abstract class AccessibilityService extends Service { return; } final HardwareBuffer hardwareBuffer = - result.getParcelable(KEY_ACCESSIBILITY_SCREENSHOT_HARDWAREBUFFER); + result.getParcelable(KEY_ACCESSIBILITY_SCREENSHOT_HARDWAREBUFFER, android.hardware.HardwareBuffer.class); final ParcelableColorSpace colorSpace = - result.getParcelable(KEY_ACCESSIBILITY_SCREENSHOT_COLORSPACE); + result.getParcelable(KEY_ACCESSIBILITY_SCREENSHOT_COLORSPACE, android.graphics.ParcelableColorSpace.class); final ScreenshotResult screenshot = new ScreenshotResult(hardwareBuffer, colorSpace.getColorSpace(), result.getLong(KEY_ACCESSIBILITY_SCREENSHOT_TIMESTAMP)); diff --git a/core/java/android/accounts/AbstractAccountAuthenticator.java b/core/java/android/accounts/AbstractAccountAuthenticator.java index 3807b503ce70..a3a361501b1c 100644 --- a/core/java/android/accounts/AbstractAccountAuthenticator.java +++ b/core/java/android/accounts/AbstractAccountAuthenticator.java @@ -938,7 +938,7 @@ public abstract class AbstractAccountAuthenticator { String authTokenType = sessionBundle.getString(KEY_AUTH_TOKEN_TYPE); Bundle options = sessionBundle.getBundle(KEY_OPTIONS); String[] requiredFeatures = sessionBundle.getStringArray(KEY_REQUIRED_FEATURES); - Account account = sessionBundle.getParcelable(KEY_ACCOUNT); + Account account = sessionBundle.getParcelable(KEY_ACCOUNT, android.accounts.Account.class); boolean containsKeyAccount = sessionBundle.containsKey(KEY_ACCOUNT); // Actual options passed to add account or update credentials flow. diff --git a/core/java/android/accounts/AccountAuthenticatorActivity.java b/core/java/android/accounts/AccountAuthenticatorActivity.java index 65ba35ff9e8d..5f620f356e7a 100644 --- a/core/java/android/accounts/AccountAuthenticatorActivity.java +++ b/core/java/android/accounts/AccountAuthenticatorActivity.java @@ -60,7 +60,7 @@ public class AccountAuthenticatorActivity extends Activity { super.onCreate(icicle); mAccountAuthenticatorResponse = - getIntent().getParcelableExtra(AccountManager.KEY_ACCOUNT_AUTHENTICATOR_RESPONSE); + getIntent().getParcelableExtra(AccountManager.KEY_ACCOUNT_AUTHENTICATOR_RESPONSE, android.accounts.AccountAuthenticatorResponse.class); if (mAccountAuthenticatorResponse != null) { mAccountAuthenticatorResponse.onRequestContinued(); diff --git a/core/java/android/accounts/AccountManager.java b/core/java/android/accounts/AccountManager.java index fa9de6e27282..a573776e8670 100644 --- a/core/java/android/accounts/AccountManager.java +++ b/core/java/android/accounts/AccountManager.java @@ -2450,7 +2450,7 @@ public class AccountManager { onError(ERROR_CODE_INVALID_RESPONSE, "null bundle returned"); return; } - Intent intent = bundle.getParcelable(KEY_INTENT); + Intent intent = bundle.getParcelable(KEY_INTENT, android.content.Intent.class); if (intent != null && mActivity != null) { // since the user provided an Activity we will silently start intents // that we see diff --git a/core/java/android/accounts/ChooseAccountActivity.java b/core/java/android/accounts/ChooseAccountActivity.java index 6c8744f28864..20142a6d90e1 100644 --- a/core/java/android/accounts/ChooseAccountActivity.java +++ b/core/java/android/accounts/ChooseAccountActivity.java @@ -62,7 +62,7 @@ public class ChooseAccountActivity extends Activity { .SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS); mAccounts = getIntent().getParcelableArrayExtra(AccountManager.KEY_ACCOUNTS); mAccountManagerResponse = - getIntent().getParcelableExtra(AccountManager.KEY_ACCOUNT_MANAGER_RESPONSE); + getIntent().getParcelableExtra(AccountManager.KEY_ACCOUNT_MANAGER_RESPONSE, android.accounts.AccountManagerResponse.class); // KEY_ACCOUNTS is a required parameter if (mAccounts == null) { diff --git a/core/java/android/accounts/ChooseTypeAndAccountActivity.java b/core/java/android/accounts/ChooseTypeAndAccountActivity.java index f623295dee3e..4d4a4d78ac81 100644 --- a/core/java/android/accounts/ChooseTypeAndAccountActivity.java +++ b/core/java/android/accounts/ChooseTypeAndAccountActivity.java @@ -186,7 +186,7 @@ public class ChooseTypeAndAccountActivity extends Activity mExistingAccounts = null; // If the selected account as specified in the intent matches one in the list we will // show is as pre-selected. - Account selectedAccount = (Account) intent.getParcelableExtra(EXTRA_SELECTED_ACCOUNT); + Account selectedAccount = (Account) intent.getParcelableExtra(EXTRA_SELECTED_ACCOUNT, android.accounts.Account.class); if (selectedAccount != null) { mSelectedAccountName = selectedAccount.name; } @@ -396,7 +396,7 @@ public class ChooseTypeAndAccountActivity extends Activity try { final Bundle accountManagerResult = accountManagerFuture.getResult(); final Intent intent = (Intent)accountManagerResult.getParcelable( - AccountManager.KEY_INTENT); + AccountManager.KEY_INTENT, android.content.Intent.class); if (intent != null) { mPendingRequest = REQUEST_ADD_ACCOUNT; mExistingAccounts = AccountManager.get(this).getAccountsForPackage(mCallingPackage, diff --git a/core/java/android/accounts/GrantCredentialsPermissionActivity.java b/core/java/android/accounts/GrantCredentialsPermissionActivity.java index 74dae0ecceb7..a89fae72d4ab 100644 --- a/core/java/android/accounts/GrantCredentialsPermissionActivity.java +++ b/core/java/android/accounts/GrantCredentialsPermissionActivity.java @@ -68,7 +68,7 @@ public class GrantCredentialsPermissionActivity extends Activity implements View } // Grant 'account'/'type' to mUID - mAccount = extras.getParcelable(EXTRAS_ACCOUNT); + mAccount = extras.getParcelable(EXTRAS_ACCOUNT, android.accounts.Account.class); mAuthTokenType = extras.getString(EXTRAS_AUTH_TOKEN_TYPE); mUid = extras.getInt(EXTRAS_REQUESTING_UID); final PackageManager pm = getPackageManager(); @@ -199,7 +199,7 @@ public class GrantCredentialsPermissionActivity extends Activity implements View */ public void finish() { Intent intent = getIntent(); - AccountAuthenticatorResponse response = intent.getParcelableExtra(EXTRAS_RESPONSE); + AccountAuthenticatorResponse response = intent.getParcelableExtra(EXTRAS_RESPONSE, android.accounts.AccountAuthenticatorResponse.class); if (response != null) { // send the result bundle back if set, otherwise send an error. if (mResultBundle != null) { diff --git a/core/java/android/app/Activity.java b/core/java/android/app/Activity.java index 90c37d1999e1..493cb87e92d7 100644 --- a/core/java/android/app/Activity.java +++ b/core/java/android/app/Activity.java @@ -6496,7 +6496,7 @@ public class Activity extends ContextThemeWrapper Intent intent = getIntent(); if (intent != null) { try { - Uri referrer = intent.getParcelableExtra(Intent.EXTRA_REFERRER); + Uri referrer = intent.getParcelableExtra(Intent.EXTRA_REFERRER, android.net.Uri.class); if (referrer != null) { return referrer; } diff --git a/core/java/android/app/ActivityOptions.java b/core/java/android/app/ActivityOptions.java index 00ab559697f4..d9e09604bb05 100644 --- a/core/java/android/app/ActivityOptions.java +++ b/core/java/android/app/ActivityOptions.java @@ -1182,7 +1182,7 @@ public class ActivityOptions extends ComponentOptions { } catch (RuntimeException e) { Slog.w(TAG, e); } - mLaunchBounds = opts.getParcelable(KEY_LAUNCH_BOUNDS); + mLaunchBounds = opts.getParcelable(KEY_LAUNCH_BOUNDS, android.graphics.Rect.class); mAnimationType = opts.getInt(KEY_ANIM_TYPE, ANIM_UNDEFINED); switch (mAnimationType) { case ANIM_CUSTOM: @@ -1210,7 +1210,7 @@ public class ActivityOptions extends ComponentOptions { case ANIM_THUMBNAIL_ASPECT_SCALE_UP: case ANIM_THUMBNAIL_ASPECT_SCALE_DOWN: // Unpackage the HardwareBuffer from the parceled thumbnail - final HardwareBuffer buffer = opts.getParcelable(KEY_ANIM_THUMBNAIL); + final HardwareBuffer buffer = opts.getParcelable(KEY_ANIM_THUMBNAIL, android.hardware.HardwareBuffer.class); if (buffer != null) { mThumbnail = Bitmap.wrapHardwareBuffer(buffer, null); } @@ -1223,10 +1223,10 @@ public class ActivityOptions extends ComponentOptions { break; case ANIM_SCENE_TRANSITION: - mTransitionReceiver = opts.getParcelable(KEY_TRANSITION_COMPLETE_LISTENER); + mTransitionReceiver = opts.getParcelable(KEY_TRANSITION_COMPLETE_LISTENER, android.os.ResultReceiver.class); mIsReturning = opts.getBoolean(KEY_TRANSITION_IS_RETURNING, false); mSharedElementNames = opts.getStringArrayList(KEY_TRANSITION_SHARED_ELEMENTS); - mResultData = opts.getParcelable(KEY_RESULT_DATA); + mResultData = opts.getParcelable(KEY_RESULT_DATA, android.content.Intent.class); mResultCode = opts.getInt(KEY_RESULT_CODE); mExitCoordinatorIndex = opts.getInt(KEY_EXIT_COORDINATOR_INDEX); break; @@ -1234,10 +1234,10 @@ public class ActivityOptions extends ComponentOptions { mLockTaskMode = opts.getBoolean(KEY_LOCK_TASK_MODE, false); mLaunchDisplayId = opts.getInt(KEY_LAUNCH_DISPLAY_ID, INVALID_DISPLAY); mCallerDisplayId = opts.getInt(KEY_CALLER_DISPLAY_ID, INVALID_DISPLAY); - mLaunchTaskDisplayArea = opts.getParcelable(KEY_LAUNCH_TASK_DISPLAY_AREA_TOKEN); + mLaunchTaskDisplayArea = opts.getParcelable(KEY_LAUNCH_TASK_DISPLAY_AREA_TOKEN, android.window.WindowContainerToken.class); mLaunchTaskDisplayAreaFeatureId = opts.getInt(KEY_LAUNCH_TASK_DISPLAY_AREA_FEATURE_ID, FEATURE_UNDEFINED); - mLaunchRootTask = opts.getParcelable(KEY_LAUNCH_ROOT_TASK_TOKEN); + mLaunchRootTask = opts.getParcelable(KEY_LAUNCH_ROOT_TASK_TOKEN, android.window.WindowContainerToken.class); mLaunchTaskFragmentToken = opts.getBinder(KEY_LAUNCH_TASK_FRAGMENT_TOKEN); mLaunchWindowingMode = opts.getInt(KEY_LAUNCH_WINDOWING_MODE, WINDOWING_MODE_UNDEFINED); mLaunchActivityType = opts.getInt(KEY_LAUNCH_ACTIVITY_TYPE, ACTIVITY_TYPE_UNDEFINED); @@ -1263,23 +1263,23 @@ public class ActivityOptions extends ComponentOptions { mAnimationFinishedListener = IRemoteCallback.Stub.asInterface( opts.getBinder(KEY_ANIMATION_FINISHED_LISTENER)); } - mSourceInfo = opts.getParcelable(KEY_SOURCE_INFO); + mSourceInfo = opts.getParcelable(KEY_SOURCE_INFO, android.app.ActivityOptions.SourceInfo.class); mRotationAnimationHint = opts.getInt(KEY_ROTATION_ANIMATION_HINT, -1); mAppVerificationBundle = opts.getBundle(KEY_INSTANT_APP_VERIFICATION_BUNDLE); if (opts.containsKey(KEY_SPECS_FUTURE)) { mSpecsFuture = IAppTransitionAnimationSpecsFuture.Stub.asInterface(opts.getBinder( KEY_SPECS_FUTURE)); } - mRemoteAnimationAdapter = opts.getParcelable(KEY_REMOTE_ANIMATION_ADAPTER); + mRemoteAnimationAdapter = opts.getParcelable(KEY_REMOTE_ANIMATION_ADAPTER, android.view.RemoteAnimationAdapter.class); mLaunchCookie = opts.getBinder(KEY_LAUNCH_COOKIE); - mRemoteTransition = opts.getParcelable(KEY_REMOTE_TRANSITION); + mRemoteTransition = opts.getParcelable(KEY_REMOTE_TRANSITION, android.window.RemoteTransition.class); mOverrideTaskTransition = opts.getBoolean(KEY_OVERRIDE_TASK_TRANSITION); mSplashScreenThemeResName = opts.getString(KEY_SPLASH_SCREEN_THEME); mRemoveWithTaskOrganizer = opts.getBoolean(KEY_REMOVE_WITH_TASK_ORGANIZER); mLaunchedFromBubble = opts.getBoolean(KEY_LAUNCHED_FROM_BUBBLE); mTransientLaunch = opts.getBoolean(KEY_TRANSIENT_LAUNCH); mSplashScreenStyle = opts.getInt(KEY_SPLASH_SCREEN_STYLE); - mLaunchIntoPipParams = opts.getParcelable(KEY_LAUNCH_INTO_PIP_PARAMS); + mLaunchIntoPipParams = opts.getParcelable(KEY_LAUNCH_INTO_PIP_PARAMS, android.app.PictureInPictureParams.class); mIsEligibleForLegacyPermissionPrompt = opts.getBoolean(KEY_LEGACY_PERMISSION_PROMPT_ELIGIBLE); mDismissKeyguard = opts.getBoolean(KEY_DISMISS_KEYGUARD); diff --git a/core/java/android/app/AppOpsManager.java b/core/java/android/app/AppOpsManager.java index 125f5e4e1a21..6092b307d50e 100644 --- a/core/java/android/app/AppOpsManager.java +++ b/core/java/android/app/AppOpsManager.java @@ -7693,7 +7693,7 @@ public class AppOpsManager { request.mOpNames, request.mHistoryFlags, request.mFilter, request.mBeginTimeMillis, request.mEndTimeMillis, request.mFlags, new RemoteCallback((result) -> { - final HistoricalOps ops = result.getParcelable(KEY_HISTORICAL_OPS); + final HistoricalOps ops = result.getParcelable(KEY_HISTORICAL_OPS, android.app.AppOpsManager.HistoricalOps.class); final long identity = Binder.clearCallingIdentity(); try { executor.execute(() -> callback.accept(ops)); @@ -7733,7 +7733,7 @@ public class AppOpsManager { request.mAttributionTag, request.mOpNames, request.mHistoryFlags, request.mFilter, request.mBeginTimeMillis, request.mEndTimeMillis, request.mFlags, new RemoteCallback((result) -> { - final HistoricalOps ops = result.getParcelable(KEY_HISTORICAL_OPS); + final HistoricalOps ops = result.getParcelable(KEY_HISTORICAL_OPS, android.app.AppOpsManager.HistoricalOps.class); final long identity = Binder.clearCallingIdentity(); try { executor.execute(() -> callback.accept(ops)); diff --git a/core/java/android/app/ExitTransitionCoordinator.java b/core/java/android/app/ExitTransitionCoordinator.java index cd84e5671753..930750e138f8 100644 --- a/core/java/android/app/ExitTransitionCoordinator.java +++ b/core/java/android/app/ExitTransitionCoordinator.java @@ -81,7 +81,7 @@ public class ExitTransitionCoordinator extends ActivityTransitionCoordinator { switch (resultCode) { case MSG_SET_REMOTE_RECEIVER: stopCancel(); - mResultReceiver = resultData.getParcelable(KEY_REMOTE_RECEIVER); + mResultReceiver = resultData.getParcelable(KEY_REMOTE_RECEIVER, android.os.ResultReceiver.class); if (mIsCanceled) { mResultReceiver.send(MSG_CANCEL, null); mResultReceiver = null; diff --git a/core/java/android/app/Notification.java b/core/java/android/app/Notification.java index e82073380394..343adb82c8eb 100644 --- a/core/java/android/app/Notification.java +++ b/core/java/android/app/Notification.java @@ -2842,7 +2842,7 @@ public class Notification implements Parcelable visitor.accept(Uri.parse(extras.getString(EXTRA_BACKGROUND_IMAGE_URI))); } - ArrayList<Person> people = extras.getParcelableArrayList(EXTRA_PEOPLE_LIST); + ArrayList<Person> people = extras.getParcelableArrayList(EXTRA_PEOPLE_LIST, android.app.Person.class); if (people != null && !people.isEmpty()) { for (Person p : people) { visitor.accept(p.getIconUri()); @@ -3882,7 +3882,7 @@ public class Notification implements Parcelable } if (mN.extras.containsKey(EXTRA_PEOPLE_LIST)) { - ArrayList<Person> people = mN.extras.getParcelableArrayList(EXTRA_PEOPLE_LIST); + ArrayList<Person> people = mN.extras.getParcelableArrayList(EXTRA_PEOPLE_LIST, android.app.Person.class); mPersonList.addAll(people); } @@ -9777,7 +9777,7 @@ public class Notification implements Parcelable mCallType = extras.getInt(EXTRA_CALL_TYPE); mIsVideo = extras.getBoolean(EXTRA_CALL_IS_VIDEO); mPerson = extras.getParcelable(EXTRA_CALL_PERSON, Person.class); - mVerificationIcon = extras.getParcelable(EXTRA_VERIFICATION_ICON); + mVerificationIcon = extras.getParcelable(EXTRA_VERIFICATION_ICON, android.graphics.drawable.Icon.class); mVerificationText = extras.getCharSequence(EXTRA_VERIFICATION_TEXT); mAnswerIntent = extras.getParcelable(EXTRA_ANSWER_INTENT, PendingIntent.class); mDeclineIntent = extras.getParcelable(EXTRA_DECLINE_INTENT, PendingIntent.class); @@ -10895,7 +10895,7 @@ public class Notification implements Parcelable public WearableExtender(Notification notif) { Bundle wearableBundle = notif.extras.getBundle(EXTRA_WEARABLE_EXTENSIONS); if (wearableBundle != null) { - List<Action> actions = wearableBundle.getParcelableArrayList(KEY_ACTIONS); + List<Action> actions = wearableBundle.getParcelableArrayList(KEY_ACTIONS, android.app.Notification.Action.class); if (actions != null) { mActions.addAll(actions); } diff --git a/core/java/android/app/RecoverableSecurityException.java b/core/java/android/app/RecoverableSecurityException.java index 21fb2a6927aa..176f14133641 100644 --- a/core/java/android/app/RecoverableSecurityException.java +++ b/core/java/android/app/RecoverableSecurityException.java @@ -164,7 +164,7 @@ public final class RecoverableSecurityException extends SecurityException implem public static class LocalDialog extends DialogFragment { @Override public Dialog onCreateDialog(Bundle savedInstanceState) { - final RecoverableSecurityException e = getArguments().getParcelable(TAG); + final RecoverableSecurityException e = getArguments().getParcelable(TAG, android.app.RecoverableSecurityException.class); return new AlertDialog.Builder(getActivity()) .setMessage(e.mUserMessage) .setPositiveButton(e.mUserAction.getTitle(), (dialog, which) -> { diff --git a/core/java/android/app/RemoteInput.java b/core/java/android/app/RemoteInput.java index 36c524b57fe4..88161091b6ea 100644 --- a/core/java/android/app/RemoteInput.java +++ b/core/java/android/app/RemoteInput.java @@ -429,7 +429,7 @@ public final class RemoteInput implements Parcelable { if (clipDataIntent == null) { return null; } - return clipDataIntent.getExtras().getParcelable(EXTRA_RESULTS_DATA); + return clipDataIntent.getExtras().getParcelable(EXTRA_RESULTS_DATA, android.os.Bundle.class); } /** diff --git a/core/java/android/app/SearchDialog.java b/core/java/android/app/SearchDialog.java index 9fe894b75455..57576041408b 100644 --- a/core/java/android/app/SearchDialog.java +++ b/core/java/android/app/SearchDialog.java @@ -352,7 +352,7 @@ public class SearchDialog extends Dialog { public void onRestoreInstanceState(Bundle savedInstanceState) { if (savedInstanceState == null) return; - ComponentName launchComponent = savedInstanceState.getParcelable(INSTANCE_KEY_COMPONENT); + ComponentName launchComponent = savedInstanceState.getParcelable(INSTANCE_KEY_COMPONENT, android.content.ComponentName.class); Bundle appSearchData = savedInstanceState.getBundle(INSTANCE_KEY_APPDATA); String userQuery = savedInstanceState.getString(INSTANCE_KEY_USER_QUERY); diff --git a/core/java/android/app/SharedElementCallback.java b/core/java/android/app/SharedElementCallback.java index 8eb7e7246976..594d297a1979 100644 --- a/core/java/android/app/SharedElementCallback.java +++ b/core/java/android/app/SharedElementCallback.java @@ -234,8 +234,8 @@ public abstract class SharedElementCallback { View view = null; if (snapshot instanceof Bundle) { Bundle bundle = (Bundle) snapshot; - HardwareBuffer buffer = bundle.getParcelable(BUNDLE_SNAPSHOT_HARDWARE_BUFFER); - Bitmap bitmap = bundle.getParcelable(BUNDLE_SNAPSHOT_BITMAP); + HardwareBuffer buffer = bundle.getParcelable(BUNDLE_SNAPSHOT_HARDWARE_BUFFER, android.hardware.HardwareBuffer.class); + Bitmap bitmap = bundle.getParcelable(BUNDLE_SNAPSHOT_BITMAP, android.graphics.Bitmap.class); if (buffer == null && bitmap == null) { return null; } diff --git a/core/java/android/app/admin/DelegatedAdminReceiver.java b/core/java/android/app/admin/DelegatedAdminReceiver.java index c74ddb285644..30509d649736 100644 --- a/core/java/android/app/admin/DelegatedAdminReceiver.java +++ b/core/java/android/app/admin/DelegatedAdminReceiver.java @@ -156,7 +156,7 @@ public class DelegatedAdminReceiver extends BroadcastReceiver { if (ACTION_CHOOSE_PRIVATE_KEY_ALIAS.equals(action)) { int uid = intent.getIntExtra(EXTRA_CHOOSE_PRIVATE_KEY_SENDER_UID, -1); - Uri uri = intent.getParcelableExtra(EXTRA_CHOOSE_PRIVATE_KEY_URI); + Uri uri = intent.getParcelableExtra(EXTRA_CHOOSE_PRIVATE_KEY_URI, android.net.Uri.class); String alias = intent.getStringExtra(EXTRA_CHOOSE_PRIVATE_KEY_ALIAS); String chosenAlias = onChoosePrivateKeyAlias(context, intent, uid, uri, alias); setResultData(chosenAlias); diff --git a/core/java/android/app/admin/DeviceAdminReceiver.java b/core/java/android/app/admin/DeviceAdminReceiver.java index 27e8c46ca548..f21e11ab35cc 100644 --- a/core/java/android/app/admin/DeviceAdminReceiver.java +++ b/core/java/android/app/admin/DeviceAdminReceiver.java @@ -1179,11 +1179,11 @@ public class DeviceAdminReceiver extends BroadcastReceiver { } if (ACTION_PASSWORD_CHANGED.equals(action)) { - onPasswordChanged(context, intent, intent.getParcelableExtra(Intent.EXTRA_USER)); + onPasswordChanged(context, intent, intent.getParcelableExtra(Intent.EXTRA_USER, android.os.UserHandle.class)); } else if (ACTION_PASSWORD_FAILED.equals(action)) { - onPasswordFailed(context, intent, intent.getParcelableExtra(Intent.EXTRA_USER)); + onPasswordFailed(context, intent, intent.getParcelableExtra(Intent.EXTRA_USER, android.os.UserHandle.class)); } else if (ACTION_PASSWORD_SUCCEEDED.equals(action)) { - onPasswordSucceeded(context, intent, intent.getParcelableExtra(Intent.EXTRA_USER)); + onPasswordSucceeded(context, intent, intent.getParcelableExtra(Intent.EXTRA_USER, android.os.UserHandle.class)); } else if (ACTION_DEVICE_ADMIN_ENABLED.equals(action)) { onEnabled(context, intent); } else if (ACTION_DEVICE_ADMIN_DISABLE_REQUESTED.equals(action)) { @@ -1195,12 +1195,12 @@ public class DeviceAdminReceiver extends BroadcastReceiver { } else if (ACTION_DEVICE_ADMIN_DISABLED.equals(action)) { onDisabled(context, intent); } else if (ACTION_PASSWORD_EXPIRING.equals(action)) { - onPasswordExpiring(context, intent, intent.getParcelableExtra(Intent.EXTRA_USER)); + onPasswordExpiring(context, intent, intent.getParcelableExtra(Intent.EXTRA_USER, android.os.UserHandle.class)); } else if (ACTION_PROFILE_PROVISIONING_COMPLETE.equals(action)) { onProfileProvisioningComplete(context, intent); } else if (ACTION_CHOOSE_PRIVATE_KEY_ALIAS.equals(action)) { int uid = intent.getIntExtra(EXTRA_CHOOSE_PRIVATE_KEY_SENDER_UID, -1); - Uri uri = intent.getParcelableExtra(EXTRA_CHOOSE_PRIVATE_KEY_URI); + Uri uri = intent.getParcelableExtra(EXTRA_CHOOSE_PRIVATE_KEY_URI, android.net.Uri.class); String alias = intent.getStringExtra(EXTRA_CHOOSE_PRIVATE_KEY_ALIAS); String chosenAlias = onChoosePrivateKeyAlias(context, intent, uid, uri, alias); setResultData(chosenAlias); @@ -1228,22 +1228,22 @@ public class DeviceAdminReceiver extends BroadcastReceiver { int networkLogsCount = intent.getIntExtra(EXTRA_NETWORK_LOGS_COUNT, 0); onNetworkLogsAvailable(context, intent, batchToken, networkLogsCount); } else if (ACTION_USER_ADDED.equals(action)) { - onUserAdded(context, intent, intent.getParcelableExtra(Intent.EXTRA_USER)); + onUserAdded(context, intent, intent.getParcelableExtra(Intent.EXTRA_USER, android.os.UserHandle.class)); } else if (ACTION_USER_REMOVED.equals(action)) { - onUserRemoved(context, intent, intent.getParcelableExtra(Intent.EXTRA_USER)); + onUserRemoved(context, intent, intent.getParcelableExtra(Intent.EXTRA_USER, android.os.UserHandle.class)); } else if (ACTION_USER_STARTED.equals(action)) { - onUserStarted(context, intent, intent.getParcelableExtra(Intent.EXTRA_USER)); + onUserStarted(context, intent, intent.getParcelableExtra(Intent.EXTRA_USER, android.os.UserHandle.class)); } else if (ACTION_USER_STOPPED.equals(action)) { - onUserStopped(context, intent, intent.getParcelableExtra(Intent.EXTRA_USER)); + onUserStopped(context, intent, intent.getParcelableExtra(Intent.EXTRA_USER, android.os.UserHandle.class)); } else if (ACTION_USER_SWITCHED.equals(action)) { - onUserSwitched(context, intent, intent.getParcelableExtra(Intent.EXTRA_USER)); + onUserSwitched(context, intent, intent.getParcelableExtra(Intent.EXTRA_USER, android.os.UserHandle.class)); } else if (ACTION_TRANSFER_OWNERSHIP_COMPLETE.equals(action)) { PersistableBundle bundle = - intent.getParcelableExtra(EXTRA_TRANSFER_OWNERSHIP_ADMIN_EXTRAS_BUNDLE); + intent.getParcelableExtra(EXTRA_TRANSFER_OWNERSHIP_ADMIN_EXTRAS_BUNDLE, android.os.PersistableBundle.class); onTransferOwnershipComplete(context, bundle); } else if (ACTION_AFFILIATED_PROFILE_TRANSFER_OWNERSHIP_COMPLETE.equals(action)) { onTransferAffiliatedProfileOwnershipComplete(context, - intent.getParcelableExtra(Intent.EXTRA_USER)); + intent.getParcelableExtra(Intent.EXTRA_USER, android.os.UserHandle.class)); } else if (ACTION_OPERATION_SAFETY_STATE_CHANGED.equals(action)) { onOperationSafetyStateChanged(context, intent); } else if (ACTION_COMPLIANCE_ACKNOWLEDGEMENT_REQUIRED.equals(action)) { diff --git a/core/java/android/app/ambientcontext/AmbientContextManager.java b/core/java/android/app/ambientcontext/AmbientContextManager.java index dd1dd0c75f76..308c5edfd0f4 100644 --- a/core/java/android/app/ambientcontext/AmbientContextManager.java +++ b/core/java/android/app/ambientcontext/AmbientContextManager.java @@ -117,7 +117,7 @@ public final class AmbientContextManager { */ @NonNull public static List<AmbientContextEvent> getEventsFromIntent(@NonNull Intent intent) { if (intent.hasExtra(AmbientContextManager.EXTRA_AMBIENT_CONTEXT_EVENTS)) { - return intent.getParcelableArrayListExtra(EXTRA_AMBIENT_CONTEXT_EVENTS); + return intent.getParcelableArrayListExtra(EXTRA_AMBIENT_CONTEXT_EVENTS, android.app.ambientcontext.AmbientContextEvent.class); } else { return new ArrayList<>(); } diff --git a/core/java/android/app/slice/SliceManager.java b/core/java/android/app/slice/SliceManager.java index ed4ea749c181..1e4934ebb6f5 100644 --- a/core/java/android/app/slice/SliceManager.java +++ b/core/java/android/app/slice/SliceManager.java @@ -231,7 +231,7 @@ public class SliceManager { extras.putParcelable(SliceProvider.EXTRA_BIND_URI, uri); final Bundle res = provider.call( SliceProvider.METHOD_GET_DESCENDANTS, null, extras); - return res.getParcelableArrayList(SliceProvider.EXTRA_SLICE_DESCENDANTS); + return res.getParcelableArrayList(SliceProvider.EXTRA_SLICE_DESCENDANTS, android.net.Uri.class); } } catch (RemoteException e) { Log.e(TAG, "Unable to get slice descendants", e); @@ -264,7 +264,7 @@ public class SliceManager { if (res == null) { return null; } - return res.getParcelable(SliceProvider.EXTRA_SLICE); + return res.getParcelable(SliceProvider.EXTRA_SLICE, android.app.slice.Slice.class); } catch (RemoteException e) { // Arbitrary and not worth documenting, as Activity // Manager will kill this process shortly anyway. @@ -323,7 +323,7 @@ public class SliceManager { if (res == null) { return null; } - return res.getParcelable(SliceProvider.EXTRA_SLICE); + return res.getParcelable(SliceProvider.EXTRA_SLICE, android.net.Uri.class); } catch (RemoteException e) { // Arbitrary and not worth documenting, as Activity // Manager will kill this process shortly anyway. @@ -403,7 +403,7 @@ public class SliceManager { if (res == null) { return null; } - return res.getParcelable(SliceProvider.EXTRA_SLICE); + return res.getParcelable(SliceProvider.EXTRA_SLICE, android.app.slice.Slice.class); } catch (RemoteException e) { // Arbitrary and not worth documenting, as Activity // Manager will kill this process shortly anyway. diff --git a/core/java/android/app/slice/SliceProvider.java b/core/java/android/app/slice/SliceProvider.java index e6c88a31a1b2..63835cb5446b 100644 --- a/core/java/android/app/slice/SliceProvider.java +++ b/core/java/android/app/slice/SliceProvider.java @@ -352,8 +352,8 @@ public abstract class SliceProvider extends ContentProvider { public Bundle call(String method, String arg, Bundle extras) { if (method.equals(METHOD_SLICE)) { Uri uri = getUriWithoutUserId(validateIncomingUriOrNull( - extras.getParcelable(EXTRA_BIND_URI))); - List<SliceSpec> supportedSpecs = extras.getParcelableArrayList(EXTRA_SUPPORTED_SPECS); + extras.getParcelable(EXTRA_BIND_URI, android.net.Uri.class))); + List<SliceSpec> supportedSpecs = extras.getParcelableArrayList(EXTRA_SUPPORTED_SPECS, android.app.slice.SliceSpec.class); String callingPackage = getCallingPackage(); int callingUid = Binder.getCallingUid(); @@ -364,10 +364,10 @@ public abstract class SliceProvider extends ContentProvider { b.putParcelable(EXTRA_SLICE, s); return b; } else if (method.equals(METHOD_MAP_INTENT)) { - Intent intent = extras.getParcelable(EXTRA_INTENT); + Intent intent = extras.getParcelable(EXTRA_INTENT, android.content.Intent.class); if (intent == null) return null; Uri uri = validateIncomingUriOrNull(onMapIntentToUri(intent)); - List<SliceSpec> supportedSpecs = extras.getParcelableArrayList(EXTRA_SUPPORTED_SPECS); + List<SliceSpec> supportedSpecs = extras.getParcelableArrayList(EXTRA_SUPPORTED_SPECS, android.app.slice.SliceSpec.class); Bundle b = new Bundle(); if (uri != null) { Slice s = handleBindSlice(uri, supportedSpecs, getCallingPackage(), @@ -378,7 +378,7 @@ public abstract class SliceProvider extends ContentProvider { } return b; } else if (method.equals(METHOD_MAP_ONLY_INTENT)) { - Intent intent = extras.getParcelable(EXTRA_INTENT); + Intent intent = extras.getParcelable(EXTRA_INTENT, android.content.Intent.class); if (intent == null) return null; Uri uri = validateIncomingUriOrNull(onMapIntentToUri(intent)); Bundle b = new Bundle(); @@ -386,21 +386,21 @@ public abstract class SliceProvider extends ContentProvider { return b; } else if (method.equals(METHOD_PIN)) { Uri uri = getUriWithoutUserId(validateIncomingUriOrNull( - extras.getParcelable(EXTRA_BIND_URI))); + extras.getParcelable(EXTRA_BIND_URI, android.net.Uri.class))); if (Binder.getCallingUid() != Process.SYSTEM_UID) { throw new SecurityException("Only the system can pin/unpin slices"); } handlePinSlice(uri); } else if (method.equals(METHOD_UNPIN)) { Uri uri = getUriWithoutUserId(validateIncomingUriOrNull( - extras.getParcelable(EXTRA_BIND_URI))); + extras.getParcelable(EXTRA_BIND_URI, android.net.Uri.class))); if (Binder.getCallingUid() != Process.SYSTEM_UID) { throw new SecurityException("Only the system can pin/unpin slices"); } handleUnpinSlice(uri); } else if (method.equals(METHOD_GET_DESCENDANTS)) { Uri uri = getUriWithoutUserId( - validateIncomingUriOrNull(extras.getParcelable(EXTRA_BIND_URI))); + validateIncomingUriOrNull(extras.getParcelable(EXTRA_BIND_URI, android.net.Uri.class))); Bundle b = new Bundle(); b.putParcelableArrayList(EXTRA_SLICE_DESCENDANTS, new ArrayList<>(handleGetDescendants(uri))); diff --git a/core/java/android/content/ContentResolver.java b/core/java/android/content/ContentResolver.java index 7b9d37e7136d..37794531dfa3 100644 --- a/core/java/android/content/ContentResolver.java +++ b/core/java/android/content/ContentResolver.java @@ -980,7 +980,7 @@ public abstract class ContentResolver implements ContentInterface { @Override public void onResult(Bundle result) { synchronized (this) { - ParcelableException e = result.getParcelable(REMOTE_CALLBACK_ERROR); + ParcelableException e = result.getParcelable(REMOTE_CALLBACK_ERROR, android.os.ParcelableException.class); if (e != null) { Throwable t = e.getCause(); if (t instanceof RuntimeException) { @@ -1021,7 +1021,7 @@ public abstract class ContentResolver implements ContentInterface { private static class UriResultListener extends ResultListener<Uri> { @Override protected Uri getResultFromBundle(Bundle result) { - return result.getParcelable(REMOTE_CALLBACK_RESULT); + return result.getParcelable(REMOTE_CALLBACK_RESULT, android.net.Uri.class); } } diff --git a/core/java/android/content/Intent.java b/core/java/android/content/Intent.java index 7a88a057fb77..26b2f071e3f5 100644 --- a/core/java/android/content/Intent.java +++ b/core/java/android/content/Intent.java @@ -11940,7 +11940,7 @@ public class Intent implements Parcelable, Cloneable { // passed via Bluetooth intents if (mAction != null && mAction.startsWith("android.bluetooth.") && hasExtra(BluetoothDevice.EXTRA_DEVICE)) { - final BluetoothDevice device = getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); + final BluetoothDevice device = getParcelableExtra(BluetoothDevice.EXTRA_DEVICE, BluetoothDevice.class); if (device != null) { device.prepareToEnterProcess(source); } @@ -11989,12 +11989,12 @@ public class Intent implements Parcelable, Cloneable { } String action = getAction(); if (ACTION_SEND.equals(action)) { - final Uri stream = getParcelableExtra(EXTRA_STREAM); + final Uri stream = getParcelableExtra(EXTRA_STREAM, Uri.class); if (stream != null) { putExtra(EXTRA_STREAM, maybeAddUserId(stream, contentUserHint)); } } else if (ACTION_SEND_MULTIPLE.equals(action)) { - final ArrayList<Uri> streams = getParcelableArrayListExtra(EXTRA_STREAM); + final ArrayList<Uri> streams = getParcelableArrayListExtra(EXTRA_STREAM, Uri.class); if (streams != null) { ArrayList<Uri> newStreams = new ArrayList<Uri>(); for (int i = 0; i < streams.size(); i++) { @@ -12003,7 +12003,7 @@ public class Intent implements Parcelable, Cloneable { putParcelableArrayListExtra(EXTRA_STREAM, newStreams); } } else if (isImageCaptureIntent()) { - final Uri output = getParcelableExtra(MediaStore.EXTRA_OUTPUT); + final Uri output = getParcelableExtra(MediaStore.EXTRA_OUTPUT, Uri.class); if (output != null) { putExtra(MediaStore.EXTRA_OUTPUT, maybeAddUserId(output, contentUserHint)); } @@ -12047,7 +12047,7 @@ public class Intent implements Parcelable, Cloneable { boolean migrated = false; try { - final Intent intent = getParcelableExtra(EXTRA_INTENT); + final Intent intent = getParcelableExtra(EXTRA_INTENT, Intent.class); if (intent != null) { migrated |= intent.migrateExtraStreamToClipData(context); } @@ -12069,7 +12069,7 @@ public class Intent implements Parcelable, Cloneable { } else if (ACTION_SEND.equals(action)) { try { - final Uri stream = getParcelableExtra(EXTRA_STREAM); + final Uri stream = getParcelableExtra(EXTRA_STREAM, Uri.class); final CharSequence text = getCharSequenceExtra(EXTRA_TEXT); final String htmlText = getStringExtra(EXTRA_HTML_TEXT); if (stream != null || text != null || htmlText != null) { @@ -12085,7 +12085,7 @@ public class Intent implements Parcelable, Cloneable { } else if (ACTION_SEND_MULTIPLE.equals(action)) { try { - final ArrayList<Uri> streams = getParcelableArrayListExtra(EXTRA_STREAM); + final ArrayList<Uri> streams = getParcelableArrayListExtra(EXTRA_STREAM, Uri.class); final ArrayList<CharSequence> texts = getCharSequenceArrayListExtra(EXTRA_TEXT); final ArrayList<String> htmlTexts = getStringArrayListExtra(EXTRA_HTML_TEXT); int num = -1; @@ -12124,7 +12124,7 @@ public class Intent implements Parcelable, Cloneable { } else if (isImageCaptureIntent()) { Uri output; try { - output = getParcelableExtra(MediaStore.EXTRA_OUTPUT); + output = getParcelableExtra(MediaStore.EXTRA_OUTPUT, Uri.class); } catch (ClassCastException e) { return false; } diff --git a/core/java/android/content/SyncActivityTooManyDeletes.java b/core/java/android/content/SyncActivityTooManyDeletes.java index 093fb0821a96..1a4eedd572b0 100644 --- a/core/java/android/content/SyncActivityTooManyDeletes.java +++ b/core/java/android/content/SyncActivityTooManyDeletes.java @@ -54,7 +54,7 @@ public class SyncActivityTooManyDeletes extends Activity } mNumDeletes = extras.getLong("numDeletes"); - mAccount = (Account) extras.getParcelable("account"); + mAccount = (Account) extras.getParcelable("account", android.accounts.Account.class); mAuthority = extras.getString("authority"); mProvider = extras.getString("provider"); diff --git a/core/java/android/content/pm/LauncherApps.java b/core/java/android/content/pm/LauncherApps.java index 301d1bbc8e9d..f780f815fa89 100644 --- a/core/java/android/content/pm/LauncherApps.java +++ b/core/java/android/content/pm/LauncherApps.java @@ -2062,7 +2062,7 @@ public class LauncherApps { * the {@link #EXTRA_PIN_ITEM_REQUEST} extra. */ public PinItemRequest getPinItemRequest(Intent intent) { - return intent.getParcelableExtra(EXTRA_PIN_ITEM_REQUEST); + return intent.getParcelableExtra(EXTRA_PIN_ITEM_REQUEST, android.content.pm.LauncherApps.PinItemRequest.class); } /** diff --git a/core/java/android/hardware/location/ContextHubIntentEvent.java b/core/java/android/hardware/location/ContextHubIntentEvent.java index 3e8f4219a485..06c533401e27 100644 --- a/core/java/android/hardware/location/ContextHubIntentEvent.java +++ b/core/java/android/hardware/location/ContextHubIntentEvent.java @@ -98,7 +98,7 @@ public class ContextHubIntentEvent { Objects.requireNonNull(intent, "Intent cannot be null"); hasExtraOrThrow(intent, ContextHubManager.EXTRA_CONTEXT_HUB_INFO); - ContextHubInfo info = intent.getParcelableExtra(ContextHubManager.EXTRA_CONTEXT_HUB_INFO); + ContextHubInfo info = intent.getParcelableExtra(ContextHubManager.EXTRA_CONTEXT_HUB_INFO, android.hardware.location.ContextHubInfo.class); if (info == null) { throw new IllegalArgumentException("ContextHubInfo extra was null"); } @@ -117,7 +117,7 @@ public class ContextHubIntentEvent { if (eventType == ContextHubManager.EVENT_NANOAPP_MESSAGE) { hasExtraOrThrow(intent, ContextHubManager.EXTRA_MESSAGE); NanoAppMessage message = - intent.getParcelableExtra(ContextHubManager.EXTRA_MESSAGE); + intent.getParcelableExtra(ContextHubManager.EXTRA_MESSAGE, android.hardware.location.NanoAppMessage.class); if (message == null) { throw new IllegalArgumentException("NanoAppMessage extra was null"); } diff --git a/core/java/android/hardware/radio/RadioMetadata.java b/core/java/android/hardware/radio/RadioMetadata.java index a882c2fe877c..b7bf783754f7 100644 --- a/core/java/android/hardware/radio/RadioMetadata.java +++ b/core/java/android/hardware/radio/RadioMetadata.java @@ -384,7 +384,7 @@ public final class RadioMetadata implements Parcelable { public Bitmap getBitmap(String key) { Bitmap bmp = null; try { - bmp = mBundle.getParcelable(key); + bmp = mBundle.getParcelable(key, android.graphics.Bitmap.class); } catch (Exception e) { // ignore, value was not a bitmap Log.w(TAG, "Failed to retrieve a key as Bitmap.", e); @@ -419,7 +419,7 @@ public final class RadioMetadata implements Parcelable { public Clock getClock(String key) { Clock clock = null; try { - clock = mBundle.getParcelable(key); + clock = mBundle.getParcelable(key, android.hardware.radio.RadioMetadata.Clock.class); } catch (Exception e) { // ignore, value was not a clock. Log.w(TAG, "Failed to retrieve a key as Clock.", e); diff --git a/core/java/android/net/ScoredNetwork.java b/core/java/android/net/ScoredNetwork.java index a46bdd9ac37e..758367d30eb4 100644 --- a/core/java/android/net/ScoredNetwork.java +++ b/core/java/android/net/ScoredNetwork.java @@ -299,7 +299,7 @@ public class ScoredNetwork implements Parcelable { public int calculateBadge(int rssi) { if (attributes != null && attributes.containsKey(ATTRIBUTES_KEY_BADGING_CURVE)) { RssiCurve badgingCurve = - attributes.getParcelable(ATTRIBUTES_KEY_BADGING_CURVE); + attributes.getParcelable(ATTRIBUTES_KEY_BADGING_CURVE, android.net.RssiCurve.class); return badgingCurve.lookupScore(rssi); } diff --git a/core/java/android/nfc/tech/Ndef.java b/core/java/android/nfc/tech/Ndef.java index 225636565480..39c355ad918a 100644 --- a/core/java/android/nfc/tech/Ndef.java +++ b/core/java/android/nfc/tech/Ndef.java @@ -161,7 +161,7 @@ public final class Ndef extends BasicTagTechnology { if (extras != null) { mMaxNdefSize = extras.getInt(EXTRA_NDEF_MAXLENGTH); mCardState = extras.getInt(EXTRA_NDEF_CARDSTATE); - mNdefMsg = extras.getParcelable(EXTRA_NDEF_MSG); + mNdefMsg = extras.getParcelable(EXTRA_NDEF_MSG, android.nfc.NdefMessage.class); mNdefType = extras.getInt(EXTRA_NDEF_TYPE); } else { throw new NullPointerException("NDEF tech extras are null."); diff --git a/core/java/android/os/Parcel.java b/core/java/android/os/Parcel.java index 1dedc2666582..7ce43c2d0adb 100644 --- a/core/java/android/os/Parcel.java +++ b/core/java/android/os/Parcel.java @@ -3034,7 +3034,7 @@ public final class Parcel { switch (code) { case EX_PARCELABLE: if (readInt() > 0) { - return (Exception) readParcelable(Parcelable.class.getClassLoader()); + return (Exception) readParcelable(Parcelable.class.getClassLoader(), java.lang.Exception.class); } else { return new RuntimeException(msg + " [missing Parcelable]"); } diff --git a/core/java/android/os/image/DynamicSystemClient.java b/core/java/android/os/image/DynamicSystemClient.java index 5aa4e27fc2f3..63259edeae7d 100644 --- a/core/java/android/os/image/DynamicSystemClient.java +++ b/core/java/android/os/image/DynamicSystemClient.java @@ -420,7 +420,7 @@ public class DynamicSystemClient { Bundle bundle = (Bundle) msg.obj; long progress = bundle.getLong(KEY_INSTALLED_SIZE); ParcelableException t = (ParcelableException) bundle.getSerializable( - KEY_EXCEPTION_DETAIL); + KEY_EXCEPTION_DETAIL, android.os.ParcelableException.class); Throwable detail = t == null ? null : t.getCause(); diff --git a/core/java/android/preference/PreferenceActivity.java b/core/java/android/preference/PreferenceActivity.java index 53b1dab9f760..f6bdc18c29ec 100644 --- a/core/java/android/preference/PreferenceActivity.java +++ b/core/java/android/preference/PreferenceActivity.java @@ -578,7 +578,7 @@ public abstract class PreferenceActivity extends ListActivity implements if (savedInstanceState != null) { // We are restarting from a previous saved state; used that to // initialize, instead of starting fresh. - ArrayList<Header> headers = savedInstanceState.getParcelableArrayList(HEADERS_TAG); + ArrayList<Header> headers = savedInstanceState.getParcelableArrayList(HEADERS_TAG, android.preference.PreferenceActivity.Header.class); if (headers != null) { mHeaders.addAll(headers); int curHeader = savedInstanceState.getInt(CUR_HEADER_TAG, diff --git a/core/java/android/preference/RingtonePreference.java b/core/java/android/preference/RingtonePreference.java index c6d8c08c9141..e15244ac0df0 100644 --- a/core/java/android/preference/RingtonePreference.java +++ b/core/java/android/preference/RingtonePreference.java @@ -248,7 +248,7 @@ public class RingtonePreference extends Preference implements if (requestCode == mRequestCode) { if (data != null) { - Uri uri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI); + Uri uri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI, android.net.Uri.class); if (callChangeListener(uri != null ? uri.toString() : "")) { onSaveRingtone(uri); diff --git a/core/java/android/print/PrintManager.java b/core/java/android/print/PrintManager.java index a5e2f33d4418..931adb55a686 100644 --- a/core/java/android/print/PrintManager.java +++ b/core/java/android/print/PrintManager.java @@ -529,8 +529,8 @@ public final class PrintManager { Bundle result = mService.print(printJobName, delegate, attributes, mContext.getPackageName(), mAppId, mUserId); if (result != null) { - PrintJobInfo printJob = result.getParcelable(EXTRA_PRINT_JOB); - IntentSender intent = result.getParcelable(EXTRA_PRINT_DIALOG_INTENT); + PrintJobInfo printJob = result.getParcelable(EXTRA_PRINT_JOB, android.print.PrintJobInfo.class); + IntentSender intent = result.getParcelable(EXTRA_PRINT_DIALOG_INTENT, android.content.IntentSender.class); if (printJob == null || intent == null) { return null; } diff --git a/core/java/android/provider/ContactsContract.java b/core/java/android/provider/ContactsContract.java index 3c1b4ba8f8b5..d50ba8de8fa6 100644 --- a/core/java/android/provider/ContactsContract.java +++ b/core/java/android/provider/ContactsContract.java @@ -8448,7 +8448,7 @@ public final class ContactsContract { Bundle response = contentResolver.call(ContactsContract.AUTHORITY_URI, ContactsContract.SimContacts.QUERY_SIM_ACCOUNTS_METHOD, null, null); - List<SimAccount> result = response.getParcelableArrayList(KEY_SIM_ACCOUNTS); + List<SimAccount> result = response.getParcelableArrayList(KEY_SIM_ACCOUNTS, android.provider.ContactsContract.SimAccount.class); if (result == null) { result = new ArrayList<>(); @@ -8821,7 +8821,7 @@ public final class ContactsContract { public static Account getDefaultAccount(@NonNull ContentResolver resolver) { Bundle response = resolver.call(ContactsContract.AUTHORITY_URI, QUERY_DEFAULT_ACCOUNT_METHOD, null, null); - return response.getParcelable(KEY_DEFAULT_ACCOUNT); + return response.getParcelable(KEY_DEFAULT_ACCOUNT, android.accounts.Account.class); } /** diff --git a/core/java/android/provider/DocumentsContract.java b/core/java/android/provider/DocumentsContract.java index 620fa6517ca5..1884d569adc3 100644 --- a/core/java/android/provider/DocumentsContract.java +++ b/core/java/android/provider/DocumentsContract.java @@ -1379,7 +1379,7 @@ public final class DocumentsContract { final Bundle out = content.call(parentDocumentUri.getAuthority(), METHOD_CREATE_DOCUMENT, null, in); - return out.getParcelable(DocumentsContract.EXTRA_URI); + return out.getParcelable(DocumentsContract.EXTRA_URI, android.net.Uri.class); } catch (Exception e) { Log.w(TAG, "Failed to create document", e); rethrowIfNecessary(e); @@ -1445,7 +1445,7 @@ public final class DocumentsContract { final Bundle out = content.call(documentUri.getAuthority(), METHOD_RENAME_DOCUMENT, null, in); - final Uri outUri = out.getParcelable(DocumentsContract.EXTRA_URI); + final Uri outUri = out.getParcelable(DocumentsContract.EXTRA_URI, android.net.Uri.class); return (outUri != null) ? outUri : documentUri; } catch (Exception e) { Log.w(TAG, "Failed to rename document", e); @@ -1494,7 +1494,7 @@ public final class DocumentsContract { final Bundle out = content.call(sourceDocumentUri.getAuthority(), METHOD_COPY_DOCUMENT, null, in); - return out.getParcelable(DocumentsContract.EXTRA_URI); + return out.getParcelable(DocumentsContract.EXTRA_URI, android.net.Uri.class); } catch (Exception e) { Log.w(TAG, "Failed to copy document", e); rethrowIfNecessary(e); @@ -1522,7 +1522,7 @@ public final class DocumentsContract { final Bundle out = content.call(sourceDocumentUri.getAuthority(), METHOD_MOVE_DOCUMENT, null, in); - return out.getParcelable(DocumentsContract.EXTRA_URI); + return out.getParcelable(DocumentsContract.EXTRA_URI, android.net.Uri.class); } catch (Exception e) { Log.w(TAG, "Failed to move document", e); rethrowIfNecessary(e); @@ -1642,7 +1642,7 @@ public final class DocumentsContract { final Bundle out = content.call(treeUri.getAuthority(), METHOD_FIND_DOCUMENT_PATH, null, in); - return out.getParcelable(DocumentsContract.EXTRA_RESULT); + return out.getParcelable(DocumentsContract.EXTRA_RESULT, android.provider.DocumentsContract.Path.class); } catch (Exception e) { Log.w(TAG, "Failed to find path", e); rethrowIfNecessary(e); @@ -1715,7 +1715,7 @@ public final class DocumentsContract { final Bundle out = content.call(uri.getAuthority(), METHOD_CREATE_WEB_LINK_INTENT, null, in); - return out.getParcelable(DocumentsContract.EXTRA_RESULT); + return out.getParcelable(DocumentsContract.EXTRA_RESULT, android.content.IntentSender.class); } catch (Exception e) { Log.w(TAG, "Failed to create a web link intent", e); rethrowIfNecessary(e); diff --git a/core/java/android/provider/DocumentsProvider.java b/core/java/android/provider/DocumentsProvider.java index a5a24c0f1013..07d500176fe5 100644 --- a/core/java/android/provider/DocumentsProvider.java +++ b/core/java/android/provider/DocumentsProvider.java @@ -219,9 +219,9 @@ public abstract class DocumentsProvider extends ContentProvider { /** {@hide} */ private void enforceTreeForExtraUris(Bundle extras) { - enforceTree(extras.getParcelable(DocumentsContract.EXTRA_URI)); - enforceTree(extras.getParcelable(DocumentsContract.EXTRA_PARENT_URI)); - enforceTree(extras.getParcelable(DocumentsContract.EXTRA_TARGET_URI)); + enforceTree(extras.getParcelable(DocumentsContract.EXTRA_URI, android.net.Uri.class)); + enforceTree(extras.getParcelable(DocumentsContract.EXTRA_PARENT_URI, android.net.Uri.class)); + enforceTree(extras.getParcelable(DocumentsContract.EXTRA_TARGET_URI, android.net.Uri.class)); } /** {@hide} */ @@ -1091,11 +1091,11 @@ public abstract class DocumentsProvider extends ContentProvider { enforceTreeForExtraUris(extras); final Uri extraUri = validateIncomingNullableUri( - extras.getParcelable(DocumentsContract.EXTRA_URI)); + extras.getParcelable(DocumentsContract.EXTRA_URI, android.net.Uri.class)); final Uri extraTargetUri = validateIncomingNullableUri( - extras.getParcelable(DocumentsContract.EXTRA_TARGET_URI)); + extras.getParcelable(DocumentsContract.EXTRA_TARGET_URI, android.net.Uri.class)); final Uri extraParentUri = validateIncomingNullableUri( - extras.getParcelable(DocumentsContract.EXTRA_PARENT_URI)); + extras.getParcelable(DocumentsContract.EXTRA_PARENT_URI, android.net.Uri.class)); if (METHOD_EJECT_ROOT.equals(method)) { // Given that certain system apps can hold MOUNT_UNMOUNT permission, but only apps @@ -1436,7 +1436,7 @@ public abstract class DocumentsProvider extends ContentProvider { enforceTree(uri); final String documentId = getDocumentId(uri); if (opts != null && opts.containsKey(ContentResolver.EXTRA_SIZE)) { - final Point sizeHint = opts.getParcelable(ContentResolver.EXTRA_SIZE); + final Point sizeHint = opts.getParcelable(ContentResolver.EXTRA_SIZE, android.graphics.Point.class); return openDocumentThumbnail(documentId, sizeHint, signal); } if ("*/*".equals(mimeTypeFilter)) { diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index a513d5eb961b..6c5066f4e5db 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -3168,7 +3168,7 @@ public final class Settings { synchronized (NameValueCache.this) { if (needsGenerationTracker) { MemoryIntArray array = b.getParcelable( - CALL_METHOD_TRACK_GENERATION_KEY); + CALL_METHOD_TRACK_GENERATION_KEY, android.util.MemoryIntArray.class); final int index = b.getInt( CALL_METHOD_GENERATION_INDEX_KEY, -1); if (array != null && index >= 0) { @@ -3354,7 +3354,7 @@ public final class Settings { // All flags for the namespace Map<String, String> flagsToValues = - (HashMap) b.getSerializable(Settings.NameValueTable.VALUE); + (HashMap) b.getSerializable(Settings.NameValueTable.VALUE, java.util.HashMap.class); // Only the flags requested by the caller if (!names.isEmpty()) { for (Map.Entry<String, String> flag : flagsToValues.entrySet()) { @@ -3369,7 +3369,7 @@ public final class Settings { synchronized (NameValueCache.this) { if (needsGenerationTracker) { MemoryIntArray array = b.getParcelable( - CALL_METHOD_TRACK_GENERATION_KEY); + CALL_METHOD_TRACK_GENERATION_KEY, android.util.MemoryIntArray.class); final int index = b.getInt( CALL_METHOD_GENERATION_INDEX_KEY, -1); if (array != null && index >= 0) { diff --git a/core/java/android/service/autofill/FillRequest.java b/core/java/android/service/autofill/FillRequest.java index 327cda3360bb..b4010a4eefda 100644 --- a/core/java/android/service/autofill/FillRequest.java +++ b/core/java/android/service/autofill/FillRequest.java @@ -453,7 +453,7 @@ public final class FillRequest implements Parcelable { byte flg = in.readByte(); int id = in.readInt(); List<FillContext> fillContexts = new ArrayList<>(); - in.readParcelableList(fillContexts, FillContext.class.getClassLoader()); + in.readParcelableList(fillContexts, FillContext.class.getClassLoader(), android.service.autofill.FillContext.class); Bundle clientState = (flg & 0x4) == 0 ? null : in.readBundle(); int flags = in.readInt(); InlineSuggestionsRequest inlineSuggestionsRequest = (flg & 0x10) == 0 ? null : (InlineSuggestionsRequest) in.readTypedObject(InlineSuggestionsRequest.CREATOR); diff --git a/core/java/android/service/contentsuggestions/ContentSuggestionsService.java b/core/java/android/service/contentsuggestions/ContentSuggestionsService.java index 50efbac76f48..0b4739ea1afc 100644 --- a/core/java/android/service/contentsuggestions/ContentSuggestionsService.java +++ b/core/java/android/service/contentsuggestions/ContentSuggestionsService.java @@ -72,7 +72,7 @@ public abstract class ContentSuggestionsService extends Service { Bitmap wrappedBuffer = null; if (imageContextRequestExtras.containsKey(ContentSuggestionsManager.EXTRA_BITMAP)) { wrappedBuffer = imageContextRequestExtras.getParcelable( - ContentSuggestionsManager.EXTRA_BITMAP); + ContentSuggestionsManager.EXTRA_BITMAP, android.graphics.Bitmap.class); } else { if (contextImage != null) { ColorSpace colorSpace = null; diff --git a/core/java/android/service/controls/templates/ThumbnailTemplate.java b/core/java/android/service/controls/templates/ThumbnailTemplate.java index a7c481e38e55..e058b76736fc 100644 --- a/core/java/android/service/controls/templates/ThumbnailTemplate.java +++ b/core/java/android/service/controls/templates/ThumbnailTemplate.java @@ -65,7 +65,7 @@ public final class ThumbnailTemplate extends ControlTemplate { ThumbnailTemplate(Bundle b) { super(b); mActive = b.getBoolean(KEY_ACTIVE); - mThumbnail = b.getParcelable(KEY_ICON); + mThumbnail = b.getParcelable(KEY_ICON, android.graphics.drawable.Icon.class); mContentDescription = b.getCharSequence(KEY_CONTENT_DESCRIPTION, ""); } diff --git a/core/java/android/service/controls/templates/ToggleRangeTemplate.java b/core/java/android/service/controls/templates/ToggleRangeTemplate.java index cd6a2fc45612..4ad42a38200b 100644 --- a/core/java/android/service/controls/templates/ToggleRangeTemplate.java +++ b/core/java/android/service/controls/templates/ToggleRangeTemplate.java @@ -43,7 +43,7 @@ public final class ToggleRangeTemplate extends ControlTemplate { */ ToggleRangeTemplate(@NonNull Bundle b) { super(b); - mControlButton = b.getParcelable(KEY_BUTTON); + mControlButton = b.getParcelable(KEY_BUTTON, android.service.controls.templates.ControlButton.class); mRangeTemplate = new RangeTemplate(b.getBundle(KEY_RANGE)); } diff --git a/core/java/android/service/controls/templates/ToggleTemplate.java b/core/java/android/service/controls/templates/ToggleTemplate.java index e4aa6b0d6cec..687e75064a9a 100644 --- a/core/java/android/service/controls/templates/ToggleTemplate.java +++ b/core/java/android/service/controls/templates/ToggleTemplate.java @@ -53,7 +53,7 @@ public final class ToggleTemplate extends ControlTemplate { */ ToggleTemplate(Bundle b) { super(b); - mButton = b.getParcelable(KEY_BUTTON); + mButton = b.getParcelable(KEY_BUTTON, android.service.controls.templates.ControlButton.class); } public boolean isChecked() { diff --git a/core/java/android/service/dreams/DreamService.java b/core/java/android/service/dreams/DreamService.java index 2d461c6cf92e..b0c5d8387d74 100644 --- a/core/java/android/service/dreams/DreamService.java +++ b/core/java/android/service/dreams/DreamService.java @@ -993,7 +993,7 @@ public class DreamService extends Service implements Window.Callback { if (!mWindowless) { mOverlayConnection.bind( /* context= */ this, - intent.getParcelableExtra(EXTRA_DREAM_OVERLAY_COMPONENT), + intent.getParcelableExtra(EXTRA_DREAM_OVERLAY_COMPONENT, android.content.ComponentName.class), new ComponentName(this, getClass())); } diff --git a/core/java/android/service/games/GameSessionTrampolineActivity.java b/core/java/android/service/games/GameSessionTrampolineActivity.java index b23791842284..93f19d5bd41c 100644 --- a/core/java/android/service/games/GameSessionTrampolineActivity.java +++ b/core/java/android/service/games/GameSessionTrampolineActivity.java @@ -94,7 +94,7 @@ public final class GameSessionTrampolineActivity extends Activity { try { startActivityAsCaller( - getIntent().getParcelableExtra(INTENT_KEY), + getIntent().getParcelableExtra(INTENT_KEY, android.content.Intent.class), getIntent().getBundleExtra(OPTIONS_KEY), false, getUserId(), @@ -102,7 +102,7 @@ public final class GameSessionTrampolineActivity extends Activity { } catch (Exception e) { Slog.w(TAG, "Unable to launch activity from game session"); AndroidFuture<GameSessionActivityResult> future = getIntent().getParcelableExtra( - FUTURE_KEY); + FUTURE_KEY, com.android.internal.infra.AndroidFuture.class); future.completeExceptionally(e); finish(); overridePendingTransition(0, 0); @@ -123,7 +123,7 @@ public final class GameSessionTrampolineActivity extends Activity { } AndroidFuture<GameSessionActivityResult> future = getIntent().getParcelableExtra( - FUTURE_KEY); + FUTURE_KEY, com.android.internal.infra.AndroidFuture.class); future.complete(new GameSessionActivityResult(resultCode, data)); finish(); overridePendingTransition(0, 0); diff --git a/core/java/android/service/notification/NotificationListenerService.java b/core/java/android/service/notification/NotificationListenerService.java index 65f0824a9b78..02176b0c123e 100644 --- a/core/java/android/service/notification/NotificationListenerService.java +++ b/core/java/android/service/notification/NotificationListenerService.java @@ -1379,7 +1379,7 @@ public abstract class NotificationListenerService extends Service { private void maybePopulatePeople(Notification notification) { if (getContext().getApplicationInfo().targetSdkVersion < Build.VERSION_CODES.P) { ArrayList<Person> people = notification.extras.getParcelableArrayList( - Notification.EXTRA_PEOPLE_LIST); + Notification.EXTRA_PEOPLE_LIST, android.app.Person.class); if (people != null && people.isEmpty()) { int size = people.size(); String[] peopleArray = new String[size]; diff --git a/core/java/android/service/notification/StatusBarNotification.java b/core/java/android/service/notification/StatusBarNotification.java index 66188cd19721..e2c84dcbb908 100644 --- a/core/java/android/service/notification/StatusBarNotification.java +++ b/core/java/android/service/notification/StatusBarNotification.java @@ -500,7 +500,7 @@ public class StatusBarNotification implements Parcelable { template.hashCode()); } ArrayList<Person> people = getNotification().extras.getParcelableArrayList( - Notification.EXTRA_PEOPLE_LIST); + Notification.EXTRA_PEOPLE_LIST, android.app.Person.class); if (people != null && !people.isEmpty()) { logMaker.addTaggedData(MetricsEvent.FIELD_NOTIFICATION_PEOPLE, people.size()); } diff --git a/core/java/android/service/restrictions/RestrictionsReceiver.java b/core/java/android/service/restrictions/RestrictionsReceiver.java index e8d481a65b31..badd0c207bb9 100644 --- a/core/java/android/service/restrictions/RestrictionsReceiver.java +++ b/core/java/android/service/restrictions/RestrictionsReceiver.java @@ -77,7 +77,7 @@ public abstract class RestrictionsReceiver extends BroadcastReceiver { String requestType = intent.getStringExtra(RestrictionsManager.EXTRA_REQUEST_TYPE); String requestId = intent.getStringExtra(RestrictionsManager.EXTRA_REQUEST_ID); PersistableBundle request = (PersistableBundle) - intent.getParcelableExtra(RestrictionsManager.EXTRA_REQUEST_BUNDLE); + intent.getParcelableExtra(RestrictionsManager.EXTRA_REQUEST_BUNDLE, android.os.PersistableBundle.class); onRequestPermission(context, packageName, requestType, requestId, request); } } diff --git a/core/java/android/service/trust/TrustAgentService.java b/core/java/android/service/trust/TrustAgentService.java index 559313a30dfa..ad4f9f718f7f 100644 --- a/core/java/android/service/trust/TrustAgentService.java +++ b/core/java/android/service/trust/TrustAgentService.java @@ -257,7 +257,7 @@ public class TrustAgentService extends Service { Bundle data = msg.getData(); byte[] token = data.getByteArray(EXTRA_TOKEN); long handle = data.getLong(EXTRA_TOKEN_HANDLE); - UserHandle user = (UserHandle) data.getParcelable(EXTRA_USER_HANDLE); + UserHandle user = (UserHandle) data.getParcelable(EXTRA_USER_HANDLE, android.os.UserHandle.class); onEscrowTokenAdded(token, handle, user); break; } diff --git a/core/java/android/service/voice/VoiceInteractionSession.java b/core/java/android/service/voice/VoiceInteractionSession.java index 7d17093b2707..42500b4cfcff 100644 --- a/core/java/android/service/voice/VoiceInteractionSession.java +++ b/core/java/android/service/voice/VoiceInteractionSession.java @@ -1547,7 +1547,7 @@ public class VoiceInteractionSession implements KeyEvent.Callback, ComponentCall list = Collections.emptyList(); } else { final ParceledListSlice<DirectAction> pls = result.getParcelable( - DirectAction.KEY_ACTIONS_LIST); + DirectAction.KEY_ACTIONS_LIST, android.content.pm.ParceledListSlice.class); if (pls != null) { final List<DirectAction> receivedList = pls.getList(); list = (receivedList != null) ? receivedList : Collections.emptyList(); diff --git a/core/java/android/speech/AlternativeSpans.java b/core/java/android/speech/AlternativeSpans.java index 339379049e5b..87296d715110 100644 --- a/core/java/android/speech/AlternativeSpans.java +++ b/core/java/android/speech/AlternativeSpans.java @@ -140,7 +140,7 @@ public final class AlternativeSpans implements Parcelable { // static FieldType unparcelFieldName(Parcel in) { ... } List<AlternativeSpan> spans = new ArrayList<>(); - in.readParcelableList(spans, AlternativeSpan.class.getClassLoader()); + in.readParcelableList(spans, AlternativeSpan.class.getClassLoader(), android.speech.AlternativeSpan.class); this.mSpans = spans; com.android.internal.util.AnnotationValidations.validate( diff --git a/core/java/android/speech/tts/TextToSpeechService.java b/core/java/android/speech/tts/TextToSpeechService.java index 26c831428f1c..a00d8cfb36f7 100644 --- a/core/java/android/speech/tts/TextToSpeechService.java +++ b/core/java/android/speech/tts/TextToSpeechService.java @@ -742,7 +742,7 @@ public abstract class TextToSpeechService extends Service { AudioAttributes audioAttributes = (AudioAttributes) paramsBundle.getParcelable( - Engine.KEY_PARAM_AUDIO_ATTRIBUTES); + Engine.KEY_PARAM_AUDIO_ATTRIBUTES, android.media.AudioAttributes.class); if (audioAttributes == null) { int streamType = paramsBundle.getInt( Engine.KEY_PARAM_STREAM, Engine.DEFAULT_STREAM); diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java index 545782132099..1e9769e6270b 100644 --- a/core/java/android/view/View.java +++ b/core/java/android/view/View.java @@ -31893,7 +31893,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, RemoteCallback remoteCallback = new RemoteCallback(result -> executor.execute(() -> { - DisplayHash displayHash = result.getParcelable(EXTRA_DISPLAY_HASH); + DisplayHash displayHash = result.getParcelable(EXTRA_DISPLAY_HASH, android.view.displayhash.DisplayHash.class); int errorCode = result.getInt(EXTRA_DISPLAY_HASH_ERROR_CODE, DISPLAY_HASH_ERROR_UNKNOWN); if (displayHash != null) { diff --git a/core/java/android/view/WindowManagerImpl.java b/core/java/android/view/WindowManagerImpl.java index 20cdad42b4cc..dc4ccbad27be 100644 --- a/core/java/android/view/WindowManagerImpl.java +++ b/core/java/android/view/WindowManagerImpl.java @@ -213,7 +213,7 @@ public final class WindowManagerImpl implements WindowManager { @Override public void send(int resultCode, Bundle resultData) throws RemoteException { List<KeyboardShortcutGroup> result = - resultData.getParcelableArrayList(PARCEL_KEY_SHORTCUTS_ARRAY); + resultData.getParcelableArrayList(PARCEL_KEY_SHORTCUTS_ARRAY, android.view.KeyboardShortcutGroup.class); receiver.onKeyboardShortcutsReceived(result); } }; diff --git a/core/java/android/view/autofill/AutofillManager.java b/core/java/android/view/autofill/AutofillManager.java index 6a27eb5a5d82..dbefcfb5ef17 100644 --- a/core/java/android/view/autofill/AutofillManager.java +++ b/core/java/android/view/autofill/AutofillManager.java @@ -944,7 +944,7 @@ public final class AutofillManager { return; } synchronized (mLock) { - mLastAutofilledData = savedInstanceState.getParcelable(LAST_AUTOFILLED_DATA_TAG); + mLastAutofilledData = savedInstanceState.getParcelable(LAST_AUTOFILLED_DATA_TAG, android.view.autofill.ParcelableMap.class); if (isActiveLocked()) { Log.w(TAG, "New session was started before onCreate()"); diff --git a/core/java/android/view/selectiontoolbar/ShowInfo.java b/core/java/android/view/selectiontoolbar/ShowInfo.java index 594b6bc7400a..d9adef2c920b 100644 --- a/core/java/android/view/selectiontoolbar/ShowInfo.java +++ b/core/java/android/view/selectiontoolbar/ShowInfo.java @@ -284,7 +284,7 @@ public final class ShowInfo implements Parcelable { boolean layoutRequired = (flg & 0x2) != 0; long widgetToken = in.readLong(); List<ToolbarMenuItem> menuItems = new java.util.ArrayList<>(); - in.readParcelableList(menuItems, ToolbarMenuItem.class.getClassLoader()); + in.readParcelableList(menuItems, ToolbarMenuItem.class.getClassLoader(), android.view.selectiontoolbar.ToolbarMenuItem.class); Rect contentRect = (Rect) in.readTypedObject(Rect.CREATOR); int suggestedWidth = in.readInt(); Rect viewPortOnScreen = (Rect) in.readTypedObject(Rect.CREATOR); diff --git a/core/java/android/view/textclassifier/ExtrasUtils.java b/core/java/android/view/textclassifier/ExtrasUtils.java index 9e2b6427eaea..ecb838c13112 100644 --- a/core/java/android/view/textclassifier/ExtrasUtils.java +++ b/core/java/android/view/textclassifier/ExtrasUtils.java @@ -58,7 +58,7 @@ public final class ExtrasUtils { */ @Nullable public static Intent getActionIntent(Bundle container) { - return container.getParcelable(ACTION_INTENT); + return container.getParcelable(ACTION_INTENT, android.content.Intent.class); } /** @@ -69,7 +69,7 @@ public final class ExtrasUtils { if (classification == null) { return null; } - return classification.getExtras().getParcelableArrayList(ACTIONS_INTENTS); + return classification.getExtras().getParcelableArrayList(ACTIONS_INTENTS, android.content.Intent.class); } /** diff --git a/core/java/android/view/translation/TranslationManager.java b/core/java/android/view/translation/TranslationManager.java index db1c606bc99b..55c0726f259a 100644 --- a/core/java/android/view/translation/TranslationManager.java +++ b/core/java/android/view/translation/TranslationManager.java @@ -246,7 +246,7 @@ public final class TranslationManager { return Collections.emptySet(); } ParceledListSlice<TranslationCapability> listSlice = - result.bundle.getParcelable(EXTRA_CAPABILITIES); + result.bundle.getParcelable(EXTRA_CAPABILITIES, android.content.pm.ParceledListSlice.class); ArraySet<TranslationCapability> capabilities = new ArraySet<>(listSlice == null ? null : listSlice.getList()); return capabilities; @@ -466,7 +466,7 @@ public final class TranslationManager { private void onTranslationCapabilityUpdate(Bundle bundle) { TranslationCapability capability = - (TranslationCapability) bundle.getParcelable(EXTRA_CAPABILITIES); + (TranslationCapability) bundle.getParcelable(EXTRA_CAPABILITIES, android.view.translation.TranslationCapability.class); mListener.accept(capability); } } diff --git a/core/java/android/window/TaskFragmentOrganizer.java b/core/java/android/window/TaskFragmentOrganizer.java index 2ef49c3e2aac..68c934f6f0a6 100644 --- a/core/java/android/window/TaskFragmentOrganizer.java +++ b/core/java/android/window/TaskFragmentOrganizer.java @@ -220,7 +220,7 @@ public class TaskFragmentOrganizer extends WindowOrganizer { @NonNull IBinder errorCallbackToken, @NonNull Bundle exceptionBundle) { mExecutor.execute(() -> TaskFragmentOrganizer.this.onTaskFragmentError( errorCallbackToken, - (Throwable) exceptionBundle.getSerializable(KEY_ERROR_CALLBACK_EXCEPTION))); + (Throwable) exceptionBundle.getSerializable(KEY_ERROR_CALLBACK_EXCEPTION, java.lang.Throwable.class))); } @Override diff --git a/core/java/com/android/internal/app/BlockedAppStreamingActivity.java b/core/java/com/android/internal/app/BlockedAppStreamingActivity.java index ca111a49235e..d35f66519737 100644 --- a/core/java/com/android/internal/app/BlockedAppStreamingActivity.java +++ b/core/java/com/android/internal/app/BlockedAppStreamingActivity.java @@ -44,7 +44,7 @@ public class BlockedAppStreamingActivity extends AlertActivity { Intent intent = getIntent(); CharSequence appLabel = null; - ActivityInfo activityInfo = intent.getParcelableExtra(EXTRA_BLOCKED_ACTIVITY_INFO); + ActivityInfo activityInfo = intent.getParcelableExtra(EXTRA_BLOCKED_ACTIVITY_INFO, android.content.pm.ActivityInfo.class); if (activityInfo != null) { appLabel = activityInfo.loadLabel(getPackageManager()); } diff --git a/core/java/com/android/internal/app/ChooserActivity.java b/core/java/com/android/internal/app/ChooserActivity.java index 819a8c589064..436c0652a206 100644 --- a/core/java/com/android/internal/app/ChooserActivity.java +++ b/core/java/com/android/internal/app/ChooserActivity.java @@ -607,9 +607,9 @@ public class ChooserActivity extends ResolverActivity implements mReferrerFillInIntent = new Intent().putExtra(Intent.EXTRA_REFERRER, getReferrer()); mChosenComponentSender = intent.getParcelableExtra( - Intent.EXTRA_CHOSEN_COMPONENT_INTENT_SENDER); + Intent.EXTRA_CHOSEN_COMPONENT_INTENT_SENDER, android.content.IntentSender.class); mRefinementIntentSender = intent.getParcelableExtra( - Intent.EXTRA_CHOOSER_REFINEMENT_INTENT_SENDER); + Intent.EXTRA_CHOOSER_REFINEMENT_INTENT_SENDER, android.content.IntentSender.class); setSafeForwardingMode(true); mPinnedSharedPrefs = getPinnedSharedPrefs(this); @@ -943,7 +943,7 @@ public class ChooserActivity extends ResolverActivity implements ClipData clipData = null; if (Intent.ACTION_SEND.equals(action)) { String extraText = targetIntent.getStringExtra(Intent.EXTRA_TEXT); - Uri extraStream = targetIntent.getParcelableExtra(Intent.EXTRA_STREAM); + Uri extraStream = targetIntent.getParcelableExtra(Intent.EXTRA_STREAM, android.net.Uri.class); if (extraText != null) { clipData = ClipData.newPlainText(null, extraText); @@ -955,7 +955,7 @@ public class ChooserActivity extends ResolverActivity implements } } else if (Intent.ACTION_SEND_MULTIPLE.equals(action)) { final ArrayList<Uri> streams = targetIntent.getParcelableArrayListExtra( - Intent.EXTRA_STREAM); + Intent.EXTRA_STREAM, android.net.Uri.class); clipData = ClipData.newUri(getContentResolver(), null, streams.get(0)); for (int i = 1; i < streams.size(); i++) { clipData.addItem(getContentResolver(), new ClipData.Item(streams.get(i))); @@ -1090,7 +1090,7 @@ public class ChooserActivity extends ResolverActivity implements String originalAction = originalIntent.getAction(); if (Intent.ACTION_SEND.equals(originalAction)) { if (resolveIntent.getData() == null) { - Uri uri = resolveIntent.getParcelableExtra(Intent.EXTRA_STREAM); + Uri uri = resolveIntent.getParcelableExtra(Intent.EXTRA_STREAM, android.net.Uri.class); if (uri != null) { String mimeType = getContentResolver().getType(uri); resolveIntent.setDataAndType(uri, mimeType); @@ -1335,14 +1335,14 @@ public class ChooserActivity extends ResolverActivity implements String action = targetIntent.getAction(); if (Intent.ACTION_SEND.equals(action)) { - Uri uri = targetIntent.getParcelableExtra(Intent.EXTRA_STREAM); + Uri uri = targetIntent.getParcelableExtra(Intent.EXTRA_STREAM, android.net.Uri.class); imagePreview.findViewById(R.id.content_preview_image_1_large) .setTransitionName(ChooserActivity.FIRST_IMAGE_PREVIEW_TRANSITION_NAME); mPreviewCoord.loadUriIntoView(R.id.content_preview_image_1_large, uri, 0); } else { ContentResolver resolver = getContentResolver(); - List<Uri> uris = targetIntent.getParcelableArrayListExtra(Intent.EXTRA_STREAM); + List<Uri> uris = targetIntent.getParcelableArrayListExtra(Intent.EXTRA_STREAM, android.net.Uri.class); List<Uri> imageUris = new ArrayList<>(); for (Uri uri : uris) { if (isImageType(resolver.getType(uri))) { @@ -1454,10 +1454,10 @@ public class ChooserActivity extends ResolverActivity implements String action = targetIntent.getAction(); if (Intent.ACTION_SEND.equals(action)) { - Uri uri = targetIntent.getParcelableExtra(Intent.EXTRA_STREAM); + Uri uri = targetIntent.getParcelableExtra(Intent.EXTRA_STREAM, android.net.Uri.class); loadFileUriIntoView(uri, contentPreviewLayout); } else { - List<Uri> uris = targetIntent.getParcelableArrayListExtra(Intent.EXTRA_STREAM); + List<Uri> uris = targetIntent.getParcelableArrayListExtra(Intent.EXTRA_STREAM, android.net.Uri.class); int uriCount = uris.size(); if (uriCount == 0) { @@ -1541,10 +1541,10 @@ public class ChooserActivity extends ResolverActivity implements private int findPreferredContentPreview(Intent targetIntent, ContentResolver resolver) { String action = targetIntent.getAction(); if (Intent.ACTION_SEND.equals(action)) { - Uri uri = targetIntent.getParcelableExtra(Intent.EXTRA_STREAM); + Uri uri = targetIntent.getParcelableExtra(Intent.EXTRA_STREAM, android.net.Uri.class); return findPreferredContentPreview(uri, resolver); } else if (Intent.ACTION_SEND_MULTIPLE.equals(action)) { - List<Uri> uris = targetIntent.getParcelableArrayListExtra(Intent.EXTRA_STREAM); + List<Uri> uris = targetIntent.getParcelableArrayListExtra(Intent.EXTRA_STREAM, android.net.Uri.class); if (uris == null || uris.isEmpty()) { return CONTENT_PREVIEW_TEXT; } @@ -1914,12 +1914,12 @@ public class ChooserActivity extends ResolverActivity implements IntentFilter intentFilter = new IntentFilter(intent.getAction(), intent.getType()); List<Uri> contentUris = new ArrayList<>(); if (Intent.ACTION_SEND.equals(intent.getAction())) { - Uri uri = (Uri) intent.getParcelableExtra(Intent.EXTRA_STREAM); + Uri uri = (Uri) intent.getParcelableExtra(Intent.EXTRA_STREAM, android.net.Uri.class); if (uri != null) { contentUris.add(uri); } } else { - List<Uri> uris = intent.getParcelableArrayListExtra(Intent.EXTRA_STREAM); + List<Uri> uris = intent.getParcelableArrayListExtra(Intent.EXTRA_STREAM, android.net.Uri.class); if (uris != null) { contentUris.addAll(uris); } diff --git a/core/java/com/android/internal/app/ConfirmUserCreationActivity.java b/core/java/com/android/internal/app/ConfirmUserCreationActivity.java index ee4d46dbbbd3..8833512c2217 100644 --- a/core/java/com/android/internal/app/ConfirmUserCreationActivity.java +++ b/core/java/com/android/internal/app/ConfirmUserCreationActivity.java @@ -62,7 +62,7 @@ public class ConfirmUserCreationActivity extends AlertActivity mAccountName = intent.getStringExtra(UserManager.EXTRA_USER_ACCOUNT_NAME); mAccountType = intent.getStringExtra(UserManager.EXTRA_USER_ACCOUNT_TYPE); mAccountOptions = (PersistableBundle) - intent.getParcelableExtra(UserManager.EXTRA_USER_ACCOUNT_OPTIONS); + intent.getParcelableExtra(UserManager.EXTRA_USER_ACCOUNT_OPTIONS, android.os.PersistableBundle.class); mUserManager = getSystemService(UserManager.class); diff --git a/core/java/com/android/internal/app/HarmfulAppWarningActivity.java b/core/java/com/android/internal/app/HarmfulAppWarningActivity.java index 33209e110123..c19196f46d27 100644 --- a/core/java/com/android/internal/app/HarmfulAppWarningActivity.java +++ b/core/java/com/android/internal/app/HarmfulAppWarningActivity.java @@ -54,7 +54,7 @@ public class HarmfulAppWarningActivity extends AlertActivity implements getWindow().addSystemFlags(SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS); final Intent intent = getIntent(); mPackageName = intent.getStringExtra(Intent.EXTRA_PACKAGE_NAME); - mTarget = intent.getParcelableExtra(Intent.EXTRA_INTENT); + mTarget = intent.getParcelableExtra(Intent.EXTRA_INTENT, android.content.IntentSender.class); mHarmfulAppWarning = intent.getStringExtra(EXTRA_HARMFUL_APP_WARNING); if (mPackageName == null || mTarget == null || mHarmfulAppWarning == null) { @@ -107,7 +107,7 @@ public class HarmfulAppWarningActivity extends AlertActivity implements case DialogInterface.BUTTON_NEGATIVE: getPackageManager().setHarmfulAppWarning(mPackageName, null /*warning*/); - final IntentSender target = getIntent().getParcelableExtra(Intent.EXTRA_INTENT); + final IntentSender target = getIntent().getParcelableExtra(Intent.EXTRA_INTENT, android.content.IntentSender.class); try { startIntentSenderForResult(target, -1 /*requestCode*/, null /*fillInIntent*/, 0 /*flagsMask*/, 0 /*flagsValue*/, 0 /*extraFlags*/); diff --git a/core/java/com/android/internal/app/HeavyWeightSwitcherActivity.java b/core/java/com/android/internal/app/HeavyWeightSwitcherActivity.java index 015238788191..801c934676d7 100644 --- a/core/java/com/android/internal/app/HeavyWeightSwitcherActivity.java +++ b/core/java/com/android/internal/app/HeavyWeightSwitcherActivity.java @@ -66,7 +66,7 @@ public class HeavyWeightSwitcherActivity extends Activity { requestWindowFeature(Window.FEATURE_NO_TITLE); - mStartIntent = (IntentSender)getIntent().getParcelableExtra(KEY_INTENT); + mStartIntent = (IntentSender)getIntent().getParcelableExtra(KEY_INTENT, android.content.IntentSender.class); mHasResult = getIntent().getBooleanExtra(KEY_HAS_RESULT, false); mCurApp = getIntent().getStringExtra(KEY_CUR_APP); mCurTask = getIntent().getIntExtra(KEY_CUR_TASK, 0); diff --git a/core/java/com/android/internal/app/IntentForwarderActivity.java b/core/java/com/android/internal/app/IntentForwarderActivity.java index 070d8ff945ba..47b83be35f87 100644 --- a/core/java/com/android/internal/app/IntentForwarderActivity.java +++ b/core/java/com/android/internal/app/IntentForwarderActivity.java @@ -224,7 +224,7 @@ public class IntentForwarderActivity extends Activity { int selectedProfile = findSelectedProfile(className); sanitizeIntent(intentReceived); intentReceived.putExtra(EXTRA_SELECTED_PROFILE, selectedProfile); - Intent innerIntent = intentReceived.getParcelableExtra(Intent.EXTRA_INTENT); + Intent innerIntent = intentReceived.getParcelableExtra(Intent.EXTRA_INTENT, android.content.Intent.class); if (innerIntent == null) { Slog.wtf(TAG, "Cannot start a chooser intent with no extra " + Intent.EXTRA_INTENT); return; diff --git a/core/java/com/android/internal/app/LaunchAfterAuthenticationActivity.java b/core/java/com/android/internal/app/LaunchAfterAuthenticationActivity.java index 20a025a3ff54..c14d958f91fb 100644 --- a/core/java/com/android/internal/app/LaunchAfterAuthenticationActivity.java +++ b/core/java/com/android/internal/app/LaunchAfterAuthenticationActivity.java @@ -54,7 +54,7 @@ public class LaunchAfterAuthenticationActivity extends Activity { super.onCreate(icicle); final IntentSender onSuccessIntent = getIntent().getParcelableExtra( - EXTRA_ON_SUCCESS_INTENT); + EXTRA_ON_SUCCESS_INTENT, android.content.IntentSender.class); requestDismissKeyguardIfNeeded(onSuccessIntent); } diff --git a/core/java/com/android/internal/app/ResolverActivity.java b/core/java/com/android/internal/app/ResolverActivity.java index 40429c609150..4b4a91e2f015 100644 --- a/core/java/com/android/internal/app/ResolverActivity.java +++ b/core/java/com/android/internal/app/ResolverActivity.java @@ -500,7 +500,7 @@ public class ResolverActivity extends Activity implements // this happens, we check for it here and set the current profile's tab. int selectedProfile = getCurrentProfile(); UserHandle intentUser = getIntent().hasExtra(EXTRA_CALLING_USER) - ? getIntent().getParcelableExtra(EXTRA_CALLING_USER) + ? getIntent().getParcelableExtra(EXTRA_CALLING_USER, android.os.UserHandle.class) : getUser(); if (!getUser().equals(intentUser)) { if (getPersonalProfileUserHandle().equals(intentUser)) { diff --git a/core/java/com/android/internal/app/SuspendedAppActivity.java b/core/java/com/android/internal/app/SuspendedAppActivity.java index ec224e50eb8d..02881372c97f 100644 --- a/core/java/com/android/internal/app/SuspendedAppActivity.java +++ b/core/java/com/android/internal/app/SuspendedAppActivity.java @@ -219,8 +219,8 @@ public class SuspendedAppActivity extends AlertActivity } mSuspendedPackage = intent.getStringExtra(EXTRA_SUSPENDED_PACKAGE); mSuspendingPackage = intent.getStringExtra(EXTRA_SUSPENDING_PACKAGE); - mSuppliedDialogInfo = intent.getParcelableExtra(EXTRA_DIALOG_INFO); - mOnUnsuspend = intent.getParcelableExtra(EXTRA_UNSUSPEND_INTENT); + mSuppliedDialogInfo = intent.getParcelableExtra(EXTRA_DIALOG_INFO, android.content.pm.SuspendDialogInfo.class); + mOnUnsuspend = intent.getParcelableExtra(EXTRA_UNSUSPEND_INTENT, android.content.IntentSender.class); if (mSuppliedDialogInfo != null) { try { mSuspendingAppResources = createContextAsUser( diff --git a/core/java/com/android/internal/app/UnlaunchableAppActivity.java b/core/java/com/android/internal/app/UnlaunchableAppActivity.java index e56d92b48528..077657216119 100644 --- a/core/java/com/android/internal/app/UnlaunchableAppActivity.java +++ b/core/java/com/android/internal/app/UnlaunchableAppActivity.java @@ -62,7 +62,7 @@ public class UnlaunchableAppActivity extends Activity Intent intent = getIntent(); mReason = intent.getIntExtra(EXTRA_UNLAUNCHABLE_REASON, -1); mUserId = intent.getIntExtra(Intent.EXTRA_USER_HANDLE, UserHandle.USER_NULL); - mTarget = intent.getParcelableExtra(Intent.EXTRA_INTENT); + mTarget = intent.getParcelableExtra(Intent.EXTRA_INTENT, android.content.IntentSender.class); if (mUserId == UserHandle.USER_NULL) { Log.wtf(TAG, "Invalid user id: " + mUserId + ". Stopping."); diff --git a/core/java/com/android/internal/net/VpnProfile.java b/core/java/com/android/internal/net/VpnProfile.java index b334e9172729..396da5b8869d 100644 --- a/core/java/com/android/internal/net/VpnProfile.java +++ b/core/java/com/android/internal/net/VpnProfile.java @@ -204,7 +204,7 @@ public final class VpnProfile implements Cloneable, Parcelable { excludeLocalRoutes = in.readBoolean(); requiresInternetValidation = in.readBoolean(); final PersistableBundle bundle = - in.readParcelable(PersistableBundle.class.getClassLoader()); + in.readParcelable(PersistableBundle.class.getClassLoader(), android.os.PersistableBundle.class); ikeTunConnParams = (bundle == null) ? null : TunnelConnectionParamsUtils.fromPersistableBundle(bundle); } diff --git a/core/java/com/android/internal/util/ScreenshotHelper.java b/core/java/com/android/internal/util/ScreenshotHelper.java index f4f438b1f601..518fa530c9a0 100644 --- a/core/java/com/android/internal/util/ScreenshotHelper.java +++ b/core/java/com/android/internal/util/ScreenshotHelper.java @@ -217,8 +217,8 @@ public class ScreenshotHelper { throw new IllegalArgumentException("Bundle does not contain a hardware bitmap"); } - HardwareBuffer buffer = bundle.getParcelable(KEY_BUFFER); - ParcelableColorSpace colorSpace = bundle.getParcelable(KEY_COLOR_SPACE); + HardwareBuffer buffer = bundle.getParcelable(KEY_BUFFER, android.hardware.HardwareBuffer.class); + ParcelableColorSpace colorSpace = bundle.getParcelable(KEY_COLOR_SPACE, android.graphics.ParcelableColorSpace.class); return Bitmap.wrapHardwareBuffer(Objects.requireNonNull(buffer), colorSpace.getColorSpace()); diff --git a/core/java/com/android/internal/widget/CallLayout.java b/core/java/com/android/internal/widget/CallLayout.java index 83345dad8ed9..acb0e44f29a6 100644 --- a/core/java/com/android/internal/widget/CallLayout.java +++ b/core/java/com/android/internal/widget/CallLayout.java @@ -125,7 +125,7 @@ public class CallLayout extends FrameLayout { */ @RemotableViewMethod public void setData(Bundle extras) { - setUser(extras.getParcelable(Notification.EXTRA_CALL_PERSON)); + setUser(extras.getParcelable(Notification.EXTRA_CALL_PERSON, android.app.Person.class)); updateCallLayout(); } diff --git a/core/java/com/android/internal/widget/ConversationLayout.java b/core/java/com/android/internal/widget/ConversationLayout.java index 4706affa3541..9f21760a49e0 100644 --- a/core/java/com/android/internal/widget/ConversationLayout.java +++ b/core/java/com/android/internal/widget/ConversationLayout.java @@ -390,11 +390,11 @@ public class ConversationLayout extends FrameLayout = Notification.MessagingStyle.Message.getMessagesFromBundleArray(histMessages); // mUser now set (would be nice to avoid the side effect but WHATEVER) - setUser(extras.getParcelable(Notification.EXTRA_MESSAGING_PERSON)); + setUser(extras.getParcelable(Notification.EXTRA_MESSAGING_PERSON, android.app.Person.class)); // Append remote input history to newMessages (again, side effect is lame but WHATEVS) RemoteInputHistoryItem[] history = (RemoteInputHistoryItem[]) - extras.getParcelableArray(Notification.EXTRA_REMOTE_INPUT_HISTORY_ITEMS); + extras.getParcelableArray(Notification.EXTRA_REMOTE_INPUT_HISTORY_ITEMS, android.app.RemoteInputHistoryItem.class); addRemoteInputHistoryToMessages(newMessages, history); boolean showSpinner = diff --git a/core/java/com/android/internal/widget/MessagingLayout.java b/core/java/com/android/internal/widget/MessagingLayout.java index 9ac6ef77bc07..67b671e01413 100644 --- a/core/java/com/android/internal/widget/MessagingLayout.java +++ b/core/java/com/android/internal/widget/MessagingLayout.java @@ -164,9 +164,9 @@ public class MessagingLayout extends FrameLayout Parcelable[] histMessages = extras.getParcelableArray(Notification.EXTRA_HISTORIC_MESSAGES); List<Notification.MessagingStyle.Message> newHistoricMessages = Notification.MessagingStyle.Message.getMessagesFromBundleArray(histMessages); - setUser(extras.getParcelable(Notification.EXTRA_MESSAGING_PERSON)); + setUser(extras.getParcelable(Notification.EXTRA_MESSAGING_PERSON, android.app.Person.class)); RemoteInputHistoryItem[] history = (RemoteInputHistoryItem[]) - extras.getParcelableArray(Notification.EXTRA_REMOTE_INPUT_HISTORY_ITEMS); + extras.getParcelableArray(Notification.EXTRA_REMOTE_INPUT_HISTORY_ITEMS, android.app.RemoteInputHistoryItem.class); addRemoteInputHistoryToMessages(newMessages, history); boolean showSpinner = extras.getBoolean(Notification.EXTRA_SHOW_REMOTE_INPUT_SPINNER, false); diff --git a/location/java/android/location/SettingInjectorService.java b/location/java/android/location/SettingInjectorService.java index d6f8a7ca3cfc..2aa812b6756e 100644 --- a/location/java/android/location/SettingInjectorService.java +++ b/location/java/android/location/SettingInjectorService.java @@ -179,7 +179,7 @@ public abstract class SettingInjectorService extends Service { * intent. */ private void sendStatus(Intent intent, String summary, boolean enabled) { - Messenger messenger = intent.getParcelableExtra(MESSENGER_KEY); + Messenger messenger = intent.getParcelableExtra(MESSENGER_KEY, android.os.Messenger.class); // Bail out to avoid crashing GmsCore with incoming malicious Intent. if (messenger == null) { return; diff --git a/media/java/android/media/MediaMetadata.java b/media/java/android/media/MediaMetadata.java index db5e52a44c8a..7b3a56801a35 100644 --- a/media/java/android/media/MediaMetadata.java +++ b/media/java/android/media/MediaMetadata.java @@ -500,7 +500,7 @@ public final class MediaMetadata implements Parcelable { public Rating getRating(@RatingKey String key) { Rating rating = null; try { - rating = mBundle.getParcelable(key); + rating = mBundle.getParcelable(key, android.media.Rating.class); } catch (Exception e) { // ignore, value was not a bitmap Log.w(TAG, "Failed to retrieve a key as Rating.", e); @@ -518,7 +518,7 @@ public final class MediaMetadata implements Parcelable { public Bitmap getBitmap(@BitmapKey String key) { Bitmap bmp = null; try { - bmp = mBundle.getParcelable(key); + bmp = mBundle.getParcelable(key, android.graphics.Bitmap.class); } catch (Exception e) { // ignore, value was not a bitmap Log.w(TAG, "Failed to retrieve a key as Bitmap.", e); diff --git a/media/java/android/media/MediaRouter.java b/media/java/android/media/MediaRouter.java index 7d57734defc5..d7fc205d28d3 100644 --- a/media/java/android/media/MediaRouter.java +++ b/media/java/android/media/MediaRouter.java @@ -3184,7 +3184,7 @@ public class MediaRouter { public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(DisplayManager.ACTION_WIFI_DISPLAY_STATUS_CHANGED)) { updateWifiDisplayStatus((WifiDisplayStatus) intent.getParcelableExtra( - DisplayManager.EXTRA_WIFI_DISPLAY_STATUS)); + DisplayManager.EXTRA_WIFI_DISPLAY_STATUS, android.hardware.display.WifiDisplayStatus.class)); } } } diff --git a/media/java/android/media/RemoteController.java b/media/java/android/media/RemoteController.java index 00fc2757a702..a6e8fa0644df 100644 --- a/media/java/android/media/RemoteController.java +++ b/media/java/android/media/RemoteController.java @@ -407,7 +407,7 @@ import java.util.List; mEditableKeys = editableKeys; mEditorArtwork = (Bitmap) metadata.getParcelable( - String.valueOf(MediaMetadataEditor.BITMAP_KEY_ARTWORK)); + String.valueOf(MediaMetadataEditor.BITMAP_KEY_ARTWORK), android.graphics.Bitmap.class); if (mEditorArtwork != null) { cleanupBitmapFromBundle(MediaMetadataEditor.BITMAP_KEY_ARTWORK); } diff --git a/media/java/android/media/session/MediaSession.java b/media/java/android/media/session/MediaSession.java index bc00c404b11e..9e265d8339dd 100644 --- a/media/java/android/media/session/MediaSession.java +++ b/media/java/android/media/session/MediaSession.java @@ -917,7 +917,7 @@ public final class MediaSession { public boolean onMediaButtonEvent(@NonNull Intent mediaButtonIntent) { if (mSession != null && mHandler != null && Intent.ACTION_MEDIA_BUTTON.equals(mediaButtonIntent.getAction())) { - KeyEvent ke = mediaButtonIntent.getParcelableExtra(Intent.EXTRA_KEY_EVENT); + KeyEvent ke = mediaButtonIntent.getParcelableExtra(Intent.EXTRA_KEY_EVENT, android.view.KeyEvent.class); if (ke != null && ke.getAction() == KeyEvent.ACTION_DOWN) { PlaybackState state = mSession.mPlaybackState; long validActions = state == null ? 0 : state.getActions(); diff --git a/services/accessibility/java/com/android/server/accessibility/AbstractAccessibilityServiceConnection.java b/services/accessibility/java/com/android/server/accessibility/AbstractAccessibilityServiceConnection.java index 9b29bae1fc46..b34482f0964f 100644 --- a/services/accessibility/java/com/android/server/accessibility/AbstractAccessibilityServiceConnection.java +++ b/services/accessibility/java/com/android/server/accessibility/AbstractAccessibilityServiceConnection.java @@ -2300,9 +2300,9 @@ abstract class AbstractAccessibilityServiceConnection extends IAccessibilityServ int processId, long threadId, int callingUid, Bundle callingStack) { if (mTrace.isA11yTracingEnabledForTypes(loggingTypes)) { ArrayList<StackTraceElement> list = - (ArrayList<StackTraceElement>) callingStack.getSerializable(CALL_STACK); + (ArrayList<StackTraceElement>) callingStack.getSerializable(CALL_STACK, java.util.ArrayList.class); HashSet<String> ignoreList = - (HashSet<String>) callingStack.getSerializable(IGNORE_CALL_STACK); + (HashSet<String>) callingStack.getSerializable(IGNORE_CALL_STACK, java.util.HashSet.class); mTrace.logTrace(timestamp, where, loggingTypes, callingParams, processId, threadId, callingUid, list.toArray(new StackTraceElement[list.size()]), ignoreList); } diff --git a/services/accessibility/java/com/android/server/accessibility/PolicyWarningUIController.java b/services/accessibility/java/com/android/server/accessibility/PolicyWarningUIController.java index af816451dca2..7fd859ca9333 100644 --- a/services/accessibility/java/com/android/server/accessibility/PolicyWarningUIController.java +++ b/services/accessibility/java/com/android/server/accessibility/PolicyWarningUIController.java @@ -227,7 +227,7 @@ public class PolicyWarningUIController { public void onReceive(Context context, Intent intent) { final String action = intent.getAction(); final ComponentName componentName = intent.getParcelableExtra( - Intent.EXTRA_COMPONENT_NAME); + Intent.EXTRA_COMPONENT_NAME, android.content.ComponentName.class); if (TextUtils.isEmpty(action) || componentName == null) { return; } diff --git a/services/autofill/java/com/android/server/autofill/AutofillManagerServiceShellCommand.java b/services/autofill/java/com/android/server/autofill/AutofillManagerServiceShellCommand.java index 1eaa59a0871a..b09cb00f5eed 100644 --- a/services/autofill/java/com/android/server/autofill/AutofillManagerServiceShellCommand.java +++ b/services/autofill/java/com/android/server/autofill/AutofillManagerServiceShellCommand.java @@ -251,7 +251,7 @@ public final class AutofillManagerServiceShellCommand extends ShellCommand { final CountDownLatch latch = new CountDownLatch(1); mService.calculateScore(algorithm, value1, value2, new RemoteCallback((result) -> { - final Scores scores = result.getParcelable(EXTRA_SCORES); + final Scores scores = result.getParcelable(EXTRA_SCORES, android.service.autofill.AutofillFieldClassificationService.Scores.class); if (scores == null) { pw.println("no score"); } else { diff --git a/services/autofill/java/com/android/server/autofill/Session.java b/services/autofill/java/com/android/server/autofill/Session.java index 9f9846117a29..1fea539fa016 100644 --- a/services/autofill/java/com/android/server/autofill/Session.java +++ b/services/autofill/java/com/android/server/autofill/Session.java @@ -395,7 +395,7 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState Slog.v(TAG, "mDelayedFillBroadcastReceiver delayed fill action received"); synchronized (mLock) { int requestId = intent.getIntExtra(EXTRA_REQUEST_ID, 0); - FillResponse response = intent.getParcelableExtra(EXTRA_FILL_RESPONSE); + FillResponse response = intent.getParcelableExtra(EXTRA_FILL_RESPONSE, android.service.autofill.FillResponse.class); mAssistReceiver.processDelayedFillLocked(requestId, response); } } @@ -559,7 +559,7 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState return; } - final AssistStructure structure = resultData.getParcelable(ASSIST_KEY_STRUCTURE); + final AssistStructure structure = resultData.getParcelable(ASSIST_KEY_STRUCTURE, android.app.assist.AssistStructure.class); if (structure == null) { Slog.e(TAG, "No assist structure - app might have crashed providing it"); return; @@ -1811,7 +1811,7 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState @GuardedBy("mLock") void setAuthenticationResultForAugmentedAutofillLocked(Bundle data, int authId) { final Dataset dataset = (data == null) ? null : - data.getParcelable(AutofillManager.EXTRA_AUTHENTICATION_RESULT); + data.getParcelable(AutofillManager.EXTRA_AUTHENTICATION_RESULT, android.service.autofill.Dataset.class); if (sDebug) { Slog.d(TAG, "Auth result for augmented autofill: sessionId=" + id + ", authId=" + authId + ", dataset=" + dataset); @@ -2251,7 +2251,7 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState logContextCommitted(null, null, saveDialogNotShowReason, commitReason); return; } - final Scores scores = result.getParcelable(EXTRA_SCORES); + final Scores scores = result.getParcelable(EXTRA_SCORES, android.service.autofill.AutofillFieldClassificationService.Scores.class); if (scores == null) { Slog.w(TAG, "No field classification score on " + result); return; diff --git a/services/companion/java/com/android/server/companion/AssociationRequestsProcessor.java b/services/companion/java/com/android/server/companion/AssociationRequestsProcessor.java index 5457ef9acaf7..b3314ede8e50 100644 --- a/services/companion/java/com/android/server/companion/AssociationRequestsProcessor.java +++ b/services/companion/java/com/android/server/companion/AssociationRequestsProcessor.java @@ -300,10 +300,10 @@ class AssociationRequestsProcessor { return; } - final AssociationRequest request = data.getParcelable(EXTRA_ASSOCIATION_REQUEST); + final AssociationRequest request = data.getParcelable(EXTRA_ASSOCIATION_REQUEST, android.companion.AssociationRequest.class); final IAssociationRequestCallback callback = IAssociationRequestCallback.Stub .asInterface(data.getBinder(EXTRA_APPLICATION_CALLBACK)); - final ResultReceiver resultReceiver = data.getParcelable(EXTRA_RESULT_RECEIVER); + final ResultReceiver resultReceiver = data.getParcelable(EXTRA_RESULT_RECEIVER, android.os.ResultReceiver.class); requireNonNull(request); requireNonNull(callback); @@ -313,7 +313,7 @@ class AssociationRequestsProcessor { if (request.isSelfManaged()) { macAddress = null; } else { - macAddress = data.getParcelable(EXTRA_MAC_ADDRESS); + macAddress = data.getParcelable(EXTRA_MAC_ADDRESS, android.net.MacAddress.class); requireNonNull(macAddress); } diff --git a/services/contentcapture/java/com/android/server/contentcapture/ContentCapturePerUserService.java b/services/contentcapture/java/com/android/server/contentcapture/ContentCapturePerUserService.java index 41a759254909..7a95a8fe8c7f 100644 --- a/services/contentcapture/java/com/android/server/contentcapture/ContentCapturePerUserService.java +++ b/services/contentcapture/java/com/android/server/contentcapture/ContentCapturePerUserService.java @@ -446,8 +446,8 @@ final class ContentCapturePerUserService @NonNull Bundle data) { final int id = getSessionId(activityToken); final Bundle assistData = data.getBundle(ASSIST_KEY_DATA); - final AssistStructure assistStructure = data.getParcelable(ASSIST_KEY_STRUCTURE); - final AssistContent assistContent = data.getParcelable(ASSIST_KEY_CONTENT); + final AssistStructure assistStructure = data.getParcelable(ASSIST_KEY_STRUCTURE, android.app.assist.AssistStructure.class); + final AssistContent assistContent = data.getParcelable(ASSIST_KEY_CONTENT, android.app.assist.AssistContent.class); final SnapshotData snapshotData = new SnapshotData(assistData, assistStructure, assistContent); if (id != NO_SESSION_ID) { diff --git a/services/core/java/com/android/server/ExplicitHealthCheckController.java b/services/core/java/com/android/server/ExplicitHealthCheckController.java index 77059d918052..20de40e73130 100644 --- a/services/core/java/com/android/server/ExplicitHealthCheckController.java +++ b/services/core/java/com/android/server/ExplicitHealthCheckController.java @@ -246,7 +246,7 @@ class ExplicitHealthCheckController { try { mRemoteService.getSupportedPackages(new RemoteCallback(result -> { List<PackageConfig> packages = - result.getParcelableArrayList(EXTRA_SUPPORTED_PACKAGES); + result.getParcelableArrayList(EXTRA_SUPPORTED_PACKAGES, android.service.watchdog.ExplicitHealthCheckService.PackageConfig.class); Slog.i(TAG, "Explicit health check supported packages " + packages); consumer.accept(packages); })); diff --git a/services/core/java/com/android/server/accounts/AccountManagerService.java b/services/core/java/com/android/server/accounts/AccountManagerService.java index 6b731c319c4b..eb0f3f00d291 100644 --- a/services/core/java/com/android/server/accounts/AccountManagerService.java +++ b/services/core/java/com/android/server/accounts/AccountManagerService.java @@ -3090,7 +3090,7 @@ public class AccountManagerService } } - Intent intent = result.getParcelable(AccountManager.KEY_INTENT); + Intent intent = result.getParcelable(AccountManager.KEY_INTENT, android.content.Intent.class); if (intent != null && notifyOnAuthFailure && !customTokens) { /* * Make sure that the supplied intent is owned by the authenticator @@ -3516,7 +3516,7 @@ public class AccountManagerService mNumResults++; Intent intent = null; if (result != null - && (intent = result.getParcelable(AccountManager.KEY_INTENT)) != null) { + && (intent = result.getParcelable(AccountManager.KEY_INTENT, android.content.Intent.class)) != null) { if (!checkKeyIntent( Binder.getCallingUid(), intent)) { @@ -5048,7 +5048,7 @@ public class AccountManagerService } } if (result != null - && (intent = result.getParcelable(AccountManager.KEY_INTENT)) != null) { + && (intent = result.getParcelable(AccountManager.KEY_INTENT, android.content.Intent.class)) != null) { if (!checkKeyIntent( Binder.getCallingUid(), intent)) { diff --git a/services/core/java/com/android/server/adb/AdbDebuggingManager.java b/services/core/java/com/android/server/adb/AdbDebuggingManager.java index 049f4bea6fa1..2eaf323ea370 100644 --- a/services/core/java/com/android/server/adb/AdbDebuggingManager.java +++ b/services/core/java/com/android/server/adb/AdbDebuggingManager.java @@ -649,7 +649,7 @@ public class AdbDebuggingManager { } else if (WifiManager.NETWORK_STATE_CHANGED_ACTION.equals(action)) { // We only care about wifi type connections NetworkInfo networkInfo = (NetworkInfo) intent.getParcelableExtra( - WifiManager.EXTRA_NETWORK_INFO); + WifiManager.EXTRA_NETWORK_INFO, android.net.NetworkInfo.class); if (networkInfo.getType() == ConnectivityManager.TYPE_WIFI) { // Check for network disconnect if (!networkInfo.isConnected()) { diff --git a/services/core/java/com/android/server/audio/BtHelper.java b/services/core/java/com/android/server/audio/BtHelper.java index 0e3823275777..73e4cf23c347 100644 --- a/services/core/java/com/android/server/audio/BtHelper.java +++ b/services/core/java/com/android/server/audio/BtHelper.java @@ -303,7 +303,7 @@ public class BtHelper { Log.i(TAG, "receiveBtEvent action: " + action + " mScoAudioState: " + mScoAudioState); if (action.equals(BluetoothHeadset.ACTION_ACTIVE_DEVICE_CHANGED)) { - BluetoothDevice btDevice = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); + BluetoothDevice btDevice = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE, android.bluetooth.BluetoothDevice.class); setBtScoActiveDevice(btDevice); } else if (action.equals(BluetoothHeadset.ACTION_AUDIO_STATE_CHANGED)) { int btState = intent.getIntExtra(BluetoothProfile.EXTRA_STATE, -1); diff --git a/services/core/java/com/android/server/camera/CameraServiceProxy.java b/services/core/java/com/android/server/camera/CameraServiceProxy.java index b425420479f0..66ef5e761194 100644 --- a/services/core/java/com/android/server/camera/CameraServiceProxy.java +++ b/services/core/java/com/android/server/camera/CameraServiceProxy.java @@ -355,7 +355,7 @@ public class CameraServiceProxy extends SystemService case UsbManager.ACTION_USB_DEVICE_ATTACHED: case UsbManager.ACTION_USB_DEVICE_DETACHED: synchronized (mLock) { - UsbDevice device = intent.getParcelableExtra(UsbManager.EXTRA_DEVICE); + UsbDevice device = intent.getParcelableExtra(UsbManager.EXTRA_DEVICE, android.hardware.usb.UsbDevice.class); if (device != null) { notifyUsbDeviceHotplugLocked(device, action.equals(UsbManager.ACTION_USB_DEVICE_ATTACHED)); diff --git a/services/core/java/com/android/server/display/WifiDisplayController.java b/services/core/java/com/android/server/display/WifiDisplayController.java index a7e1a2876f81..5b204ad9c853 100644 --- a/services/core/java/com/android/server/display/WifiDisplayController.java +++ b/services/core/java/com/android/server/display/WifiDisplayController.java @@ -1090,7 +1090,7 @@ final class WifiDisplayController implements DumpUtils.Dump { handlePeersChanged(); } else if (action.equals(WifiP2pManager.WIFI_P2P_CONNECTION_CHANGED_ACTION)) { NetworkInfo networkInfo = (NetworkInfo)intent.getParcelableExtra( - WifiP2pManager.EXTRA_NETWORK_INFO); + WifiP2pManager.EXTRA_NETWORK_INFO, android.net.NetworkInfo.class); if (DEBUG) { Slog.d(TAG, "Received WIFI_P2P_CONNECTION_CHANGED_ACTION: networkInfo=" + networkInfo); @@ -1099,7 +1099,7 @@ final class WifiDisplayController implements DumpUtils.Dump { handleConnectionChanged(networkInfo); } else if (action.equals(WifiP2pManager.WIFI_P2P_THIS_DEVICE_CHANGED_ACTION)) { mThisDevice = (WifiP2pDevice) intent.getParcelableExtra( - WifiP2pManager.EXTRA_WIFI_P2P_DEVICE); + WifiP2pManager.EXTRA_WIFI_P2P_DEVICE, android.net.wifi.p2p.WifiP2pDevice.class); if (DEBUG) { Slog.d(TAG, "Received WIFI_P2P_THIS_DEVICE_CHANGED_ACTION: mThisDevice= " + mThisDevice); diff --git a/services/core/java/com/android/server/locksettings/ResumeOnRebootServiceProvider.java b/services/core/java/com/android/server/locksettings/ResumeOnRebootServiceProvider.java index ec80521be2e5..70fdccdf2f7f 100644 --- a/services/core/java/com/android/server/locksettings/ResumeOnRebootServiceProvider.java +++ b/services/core/java/com/android/server/locksettings/ResumeOnRebootServiceProvider.java @@ -182,7 +182,7 @@ public class ResumeOnRebootServiceProvider { waitForLatch(binderLatch, "wrapSecret", timeOutInMillis); if (resultCallback.getResult().containsKey(ResumeOnRebootService.EXCEPTION_KEY)) { throwTypedException(resultCallback.getResult().getParcelable( - ResumeOnRebootService.EXCEPTION_KEY)); + ResumeOnRebootService.EXCEPTION_KEY, android.os.ParcelableException.class)); } return resultCallback.mResult.getByteArray(ResumeOnRebootService.WRAPPED_BLOB_KEY); } @@ -202,7 +202,7 @@ public class ResumeOnRebootServiceProvider { waitForLatch(binderLatch, "unWrapSecret", timeOut); if (resultCallback.getResult().containsKey(ResumeOnRebootService.EXCEPTION_KEY)) { throwTypedException(resultCallback.getResult().getParcelable( - ResumeOnRebootService.EXCEPTION_KEY)); + ResumeOnRebootService.EXCEPTION_KEY, android.os.ParcelableException.class)); } return resultCallback.getResult().getByteArray( ResumeOnRebootService.UNWRAPPED_BLOB_KEY); diff --git a/services/core/java/com/android/server/media/BluetoothRouteProvider.java b/services/core/java/com/android/server/media/BluetoothRouteProvider.java index d4d3a39c724e..e1a990d0f6bd 100644 --- a/services/core/java/com/android/server/media/BluetoothRouteProvider.java +++ b/services/core/java/com/android/server/media/BluetoothRouteProvider.java @@ -500,7 +500,7 @@ class BluetoothRouteProvider { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); - BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); + BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE, android.bluetooth.BluetoothDevice.class); BluetoothEventReceiver receiver = mEventReceiverMap.get(action); if (receiver != null) { diff --git a/services/core/java/com/android/server/media/MediaRouterService.java b/services/core/java/com/android/server/media/MediaRouterService.java index e61f55381b0c..82dfd3ae178b 100644 --- a/services/core/java/com/android/server/media/MediaRouterService.java +++ b/services/core/java/com/android/server/media/MediaRouterService.java @@ -956,7 +956,7 @@ public final class MediaRouterService extends IMediaRouterService.Stub @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(BluetoothA2dp.ACTION_ACTIVE_DEVICE_CHANGED)) { - BluetoothDevice btDevice = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); + BluetoothDevice btDevice = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE, android.bluetooth.BluetoothDevice.class); synchronized (mLock) { mActiveBluetoothDevice = btDevice; mGlobalBluetoothA2dpOn = btDevice != null; diff --git a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java index 1ea949ede03d..f2a12b468fef 100644 --- a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java +++ b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java @@ -1299,7 +1299,7 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { // on background handler thread, and verified MANAGE_NETWORK_POLICY // permission above. - final NetworkTemplate template = intent.getParcelableExtra(EXTRA_NETWORK_TEMPLATE); + final NetworkTemplate template = intent.getParcelableExtra(EXTRA_NETWORK_TEMPLATE, android.net.NetworkTemplate.class); if (ACTION_SNOOZE_WARNING.equals(intent.getAction())) { performSnooze(template, TYPE_WARNING); } else if (ACTION_SNOOZE_RAPID.equals(intent.getAction())) { diff --git a/services/core/java/com/android/server/notification/CountdownConditionProvider.java b/services/core/java/com/android/server/notification/CountdownConditionProvider.java index 4b70e2e31888..efca5986e35a 100644 --- a/services/core/java/com/android/server/notification/CountdownConditionProvider.java +++ b/services/core/java/com/android/server/notification/CountdownConditionProvider.java @@ -155,7 +155,7 @@ public class CountdownConditionProvider extends SystemConditionProviderService { @Override public void onReceive(Context context, Intent intent) { if (ACTION.equals(intent.getAction())) { - final Uri conditionId = intent.getParcelableExtra(EXTRA_CONDITION_ID); + final Uri conditionId = intent.getParcelableExtra(EXTRA_CONDITION_ID, android.net.Uri.class); final boolean alarm = ZenModeConfig.isValidCountdownToAlarmConditionId(conditionId); final long time = ZenModeConfig.tryParseCountdownConditionId(conditionId); if (DEBUG) Slog.d(TAG, "Countdown condition fired: " + conditionId); diff --git a/services/core/java/com/android/server/notification/NotificationRecord.java b/services/core/java/com/android/server/notification/NotificationRecord.java index cbaf485c077f..6dd0daa77ac6 100644 --- a/services/core/java/com/android/server/notification/NotificationRecord.java +++ b/services/core/java/com/android/server/notification/NotificationRecord.java @@ -682,7 +682,7 @@ public final class NotificationRecord { if (signals.containsKey(Adjustment.KEY_SNOOZE_CRITERIA)) { final ArrayList<SnoozeCriterion> snoozeCriterionList = adjustment.getSignals().getParcelableArrayList( - Adjustment.KEY_SNOOZE_CRITERIA); + Adjustment.KEY_SNOOZE_CRITERIA, android.service.notification.SnoozeCriterion.class); setSnoozeCriteria(snoozeCriterionList); EventLogTags.writeNotificationAdjusted(getKey(), Adjustment.KEY_SNOOZE_CRITERIA, snoozeCriterionList.toString()); @@ -708,7 +708,7 @@ public final class NotificationRecord { } if (signals.containsKey(Adjustment.KEY_CONTEXTUAL_ACTIONS)) { setSystemGeneratedSmartActions( - signals.getParcelableArrayList(Adjustment.KEY_CONTEXTUAL_ACTIONS)); + signals.getParcelableArrayList(Adjustment.KEY_CONTEXTUAL_ACTIONS, android.app.Notification.Action.class)); EventLogTags.writeNotificationAdjusted(getKey(), Adjustment.KEY_CONTEXTUAL_ACTIONS, getSystemGeneratedSmartActions().toString()); diff --git a/services/core/java/com/android/server/notification/NotificationRecordLogger.java b/services/core/java/com/android/server/notification/NotificationRecordLogger.java index 9a89efabc689..2789bcff0f68 100644 --- a/services/core/java/com/android/server/notification/NotificationRecordLogger.java +++ b/services/core/java/com/android/server/notification/NotificationRecordLogger.java @@ -399,7 +399,7 @@ public interface NotificationRecordLogger { private int getNumPeople(@Nullable Bundle extras) { if (extras != null) { ArrayList<Person> people = extras.getParcelableArrayList( - Notification.EXTRA_PEOPLE_LIST); + Notification.EXTRA_PEOPLE_LIST, android.app.Person.class); if (people != null && !people.isEmpty()) { return people.size(); } diff --git a/services/core/java/com/android/server/om/OverlayManagerService.java b/services/core/java/com/android/server/om/OverlayManagerService.java index 0ba8d2c87e99..715967369ffb 100644 --- a/services/core/java/com/android/server/om/OverlayManagerService.java +++ b/services/core/java/com/android/server/om/OverlayManagerService.java @@ -942,7 +942,7 @@ public final class OverlayManagerService extends SystemService { final FabricatedOverlayInternal fabricated = request.extras.getParcelable( OverlayManagerTransaction.Request.BUNDLE_FABRICATED_OVERLAY - ); + , android.os.FabricatedOverlayInternal.class); Objects.requireNonNull(fabricated, "no fabricated overlay attached to request"); return mImpl.registerFabricatedOverlay(fabricated); diff --git a/services/core/java/com/android/server/pm/InstantAppResolverConnection.java b/services/core/java/com/android/server/pm/InstantAppResolverConnection.java index 4f75f04b11b6..b4c40e6fd361 100644 --- a/services/core/java/com/android/server/pm/InstantAppResolverConnection.java +++ b/services/core/java/com/android/server/pm/InstantAppResolverConnection.java @@ -121,7 +121,7 @@ final class InstantAppResolverConnection implements DeathRecipient { public void sendResult(Bundle data) throws RemoteException { final ArrayList<InstantAppResolveInfo> resolveList = data.getParcelableArrayList( - InstantAppResolverService.EXTRA_RESOLVE_INFO); + InstantAppResolverService.EXTRA_RESOLVE_INFO, android.content.pm.InstantAppResolveInfo.class); callbackHandler.post(() -> callback.onPhaseTwoResolved(resolveList, startTime)); } }; @@ -343,7 +343,7 @@ final class InstantAppResolverConnection implements DeathRecipient { public void sendResult(Bundle data) throws RemoteException { final ArrayList<InstantAppResolveInfo> resolveList = data.getParcelableArrayList( - InstantAppResolverService.EXTRA_RESOLVE_INFO); + InstantAppResolverService.EXTRA_RESOLVE_INFO, android.content.pm.InstantAppResolveInfo.class); int sequence = data.getInt(InstantAppResolverService.EXTRA_SEQUENCE, -1); onRemoteMethodResult(resolveList, sequence); diff --git a/services/core/java/com/android/server/pm/UserManagerService.java b/services/core/java/com/android/server/pm/UserManagerService.java index 79e5dd2f2304..b7a5f7031046 100644 --- a/services/core/java/com/android/server/pm/UserManagerService.java +++ b/services/core/java/com/android/server/pm/UserManagerService.java @@ -508,7 +508,7 @@ public class UserManagerService extends IUserManager.Stub { if (!ACTION_DISABLE_QUIET_MODE_AFTER_UNLOCK.equals(intent.getAction())) { return; } - final IntentSender target = intent.getParcelableExtra(Intent.EXTRA_INTENT); + final IntentSender target = intent.getParcelableExtra(Intent.EXTRA_INTENT, android.content.IntentSender.class); final int userId = intent.getIntExtra(Intent.EXTRA_USER_ID, UserHandle.USER_NULL); // Call setQuietModeEnabled on bg thread to avoid ANR BackgroundThread.getHandler().post(() -> diff --git a/services/core/java/com/android/server/pm/pkg/parsing/ParsingPackageImpl.java b/services/core/java/com/android/server/pm/pkg/parsing/ParsingPackageImpl.java index 67d9aecf01bd..6a4513d45d8f 100644 --- a/services/core/java/com/android/server/pm/pkg/parsing/ParsingPackageImpl.java +++ b/services/core/java/com/android/server/pm/pkg/parsing/ParsingPackageImpl.java @@ -1432,7 +1432,7 @@ public class ParsingPackageImpl implements ParsingPackage, ParsingPackageHidden, this.processes = in.readHashMap(ParsedProcess.class.getClassLoader()); this.metaData = in.readBundle(boot); this.volumeUuid = sForInternedString.unparcel(in); - this.signingDetails = in.readParcelable(boot); + this.signingDetails = in.readParcelable(boot, android.content.pm.SigningDetails.class); this.mPath = in.readString(); this.queriesIntents = in.createTypedArrayList(Intent.CREATOR); this.queriesPackages = sForInternedStringList.unparcel(in); diff --git a/services/core/java/com/android/server/pm/pkg/parsing/ParsingPackageUtils.java b/services/core/java/com/android/server/pm/pkg/parsing/ParsingPackageUtils.java index 201ca9c4e9cd..b60b9a04d620 100644 --- a/services/core/java/com/android/server/pm/pkg/parsing/ParsingPackageUtils.java +++ b/services/core/java/com/android/server/pm/pkg/parsing/ParsingPackageUtils.java @@ -3280,7 +3280,7 @@ public class ParsingPackageUtils { ArraySet<PublicKey> keys = new ArraySet<>(M); for (int j = 0; j < M; ++j) { - PublicKey pk = (PublicKey) in.readSerializable(); + PublicKey pk = (PublicKey) in.readSerializable(java.security.PublicKey.class.getClassLoader(), java.security.PublicKey.class); keys.add(pk); } diff --git a/services/core/java/com/android/server/policy/GlobalKeyIntent.java b/services/core/java/com/android/server/policy/GlobalKeyIntent.java index f8682be7c49a..3d34bee0f328 100644 --- a/services/core/java/com/android/server/policy/GlobalKeyIntent.java +++ b/services/core/java/com/android/server/policy/GlobalKeyIntent.java @@ -76,7 +76,7 @@ public final class GlobalKeyIntent { return null; } - final KeyEvent event = intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT); + final KeyEvent event = intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT, android.view.KeyEvent.class); final boolean fromNonInteractive = intent.getBooleanExtra(EXTRA_BEGAN_FROM_NON_INTERACTIVE, false); return new GlobalKeyIntent(intent.getComponent(), event, fromNonInteractive); diff --git a/services/core/java/com/android/server/sensorprivacy/SensorPrivacyService.java b/services/core/java/com/android/server/sensorprivacy/SensorPrivacyService.java index c354f116af5f..c79bc89efbe9 100644 --- a/services/core/java/com/android/server/sensorprivacy/SensorPrivacyService.java +++ b/services/core/java/com/android/server/sensorprivacy/SensorPrivacyService.java @@ -282,7 +282,7 @@ public final class SensorPrivacyService extends SystemService { public void onReceive(Context context, Intent intent) { setToggleSensorPrivacy( ((UserHandle) intent.getParcelableExtra( - Intent.EXTRA_USER)).getIdentifier(), OTHER, + Intent.EXTRA_USER, android.os.UserHandle.class)).getIdentifier(), OTHER, intent.getIntExtra(EXTRA_SENSOR, UNKNOWN), false); } }, new IntentFilter(ACTION_DISABLE_TOGGLE_SENSOR_PRIVACY), diff --git a/services/core/java/com/android/server/storage/CacheQuotaStrategy.java b/services/core/java/com/android/server/storage/CacheQuotaStrategy.java index ff8b8d2b7b47..fc77ef155952 100644 --- a/services/core/java/com/android/server/storage/CacheQuotaStrategy.java +++ b/services/core/java/com/android/server/storage/CacheQuotaStrategy.java @@ -207,7 +207,7 @@ public class CacheQuotaStrategy implements RemoteCallback.OnResultListener { public void onResult(Bundle data) { final List<CacheQuotaHint> processedRequests = data.getParcelableArrayList( - CacheQuotaService.REQUEST_LIST_KEY); + CacheQuotaService.REQUEST_LIST_KEY, android.app.usage.CacheQuotaHint.class); pushProcessedQuotas(processedRequests); writeXmlToFile(processedRequests); } diff --git a/services/core/java/com/android/server/storage/StorageUserConnection.java b/services/core/java/com/android/server/storage/StorageUserConnection.java index 0b11b0b6d212..27ca83addec8 100644 --- a/services/core/java/com/android/server/storage/StorageUserConnection.java +++ b/services/core/java/com/android/server/storage/StorageUserConnection.java @@ -445,7 +445,7 @@ public final class StorageUserConnection { } private void setResult(Bundle result, CompletableFuture<Void> future) { - ParcelableException ex = result.getParcelable(EXTRA_ERROR); + ParcelableException ex = result.getParcelable(EXTRA_ERROR, android.os.ParcelableException.class); if (ex != null) { future.completeExceptionally(ex); } else { diff --git a/services/core/java/com/android/server/trust/TrustAgentWrapper.java b/services/core/java/com/android/server/trust/TrustAgentWrapper.java index 4b8c7c176fda..0b1f6b9ba285 100644 --- a/services/core/java/com/android/server/trust/TrustAgentWrapper.java +++ b/services/core/java/com/android/server/trust/TrustAgentWrapper.java @@ -132,7 +132,7 @@ public class TrustAgentWrapper { private final BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { - ComponentName component = intent.getParcelableExtra(EXTRA_COMPONENT_NAME); + ComponentName component = intent.getParcelableExtra(EXTRA_COMPONENT_NAME, android.content.ComponentName.class); if (TRUST_EXPIRED_ACTION.equals(intent.getAction()) && mName.equals(component)) { mHandler.removeMessages(MSG_TRUST_TIMEOUT); diff --git a/services/core/java/com/android/server/vr/Vr2dDisplay.java b/services/core/java/com/android/server/vr/Vr2dDisplay.java index 769749038315..51c5a89189c5 100644 --- a/services/core/java/com/android/server/vr/Vr2dDisplay.java +++ b/services/core/java/com/android/server/vr/Vr2dDisplay.java @@ -170,7 +170,7 @@ class Vr2dDisplay { } else if (DEBUG_ACTION_SET_SURFACE.equals(action)) { if (mVirtualDisplay != null) { if (intent.hasExtra(DEBUG_EXTRA_SURFACE)) { - setSurfaceLocked(intent.getParcelableExtra(DEBUG_EXTRA_SURFACE)); + setSurfaceLocked(intent.getParcelableExtra(DEBUG_EXTRA_SURFACE, android.view.Surface.class)); } } else { Log.w(TAG, "Cannot set the surface because the VD is null."); diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java index cbd574348de0..7b7106fea0ff 100644 --- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java @@ -18000,7 +18000,7 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager { Slogf.i(LOG_TAG, "Account removed from the primary user."); } else { // TODO(174768447): Revisit start activity logic. - final Intent removeIntent = result.getParcelable(AccountManager.KEY_INTENT); + final Intent removeIntent = result.getParcelable(AccountManager.KEY_INTENT, android.content.Intent.class); removeIntent.addFlags(FLAG_ACTIVITY_NEW_TASK); if (removeIntent != null) { Slogf.i(LOG_TAG, "Starting activity to remove account"); diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/NetworkLoggingHandler.java b/services/devicepolicy/java/com/android/server/devicepolicy/NetworkLoggingHandler.java index 84e89a08e1f4..06cbe787ac90 100644 --- a/services/devicepolicy/java/com/android/server/devicepolicy/NetworkLoggingHandler.java +++ b/services/devicepolicy/java/com/android/server/devicepolicy/NetworkLoggingHandler.java @@ -134,7 +134,7 @@ final class NetworkLoggingHandler extends Handler { public void handleMessage(Message msg) { switch (msg.what) { case LOG_NETWORK_EVENT_MSG: { - final NetworkEvent networkEvent = msg.getData().getParcelable(NETWORK_EVENT_KEY); + final NetworkEvent networkEvent = msg.getData().getParcelable(NETWORK_EVENT_KEY, android.app.admin.NetworkEvent.class); if (networkEvent != null) { Bundle notificationExtras = null; synchronized (NetworkLoggingHandler.this) { diff --git a/services/midi/java/com/android/server/midi/MidiService.java b/services/midi/java/com/android/server/midi/MidiService.java index 994a76700dc0..b519a782ce26 100644 --- a/services/midi/java/com/android/server/midi/MidiService.java +++ b/services/midi/java/com/android/server/midi/MidiService.java @@ -365,7 +365,7 @@ public class MidiService extends IMidiManager.Stub { mServiceInfo = serviceInfo; mUid = uid; mBluetoothDevice = (BluetoothDevice)deviceInfo.getProperties().getParcelable( - MidiDeviceInfo.PROPERTY_BLUETOOTH_DEVICE);; + MidiDeviceInfo.PROPERTY_BLUETOOTH_DEVICE, android.bluetooth.BluetoothDevice.class);; setDeviceServer(server); } @@ -745,7 +745,7 @@ public class MidiService extends IMidiManager.Stub { Log.d(TAG, "BLE Device"); BluetoothDevice btDevice = - intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); + intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE, android.bluetooth.BluetoothDevice.class); dumpUuids(btDevice); // See if there are any service UUIDs and if so do any of them indicate a @@ -764,7 +764,7 @@ public class MidiService extends IMidiManager.Stub { { Log.d(TAG, "ACTION_ACL_DISCONNECTED"); BluetoothDevice btDevice = - intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); + intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE, android.bluetooth.BluetoothDevice.class); // We DO know at this point if we are disconnecting a MIDI device, so // don't bother if we are not. if (isBLEMIDIDevice(btDevice)) { @@ -793,7 +793,7 @@ public class MidiService extends IMidiManager.Stub { { Log.d(TAG, "ACTION_UUID"); BluetoothDevice btDevice = - intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); + intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE, android.bluetooth.BluetoothDevice.class); dumpUuids(btDevice); if (isBLEMIDIDevice(btDevice)) { Log.d(TAG, "BT MIDI DEVICE"); @@ -1165,7 +1165,7 @@ public class MidiService extends IMidiManager.Stub { BluetoothDevice bluetoothDevice = null; if (type == MidiDeviceInfo.TYPE_BLUETOOTH) { bluetoothDevice = (BluetoothDevice)properties.getParcelable( - MidiDeviceInfo.PROPERTY_BLUETOOTH_DEVICE); + MidiDeviceInfo.PROPERTY_BLUETOOTH_DEVICE, android.bluetooth.BluetoothDevice.class); device = mBluetoothDevices.get(bluetoothDevice); if (device != null) { device.setDeviceInfo(deviceInfo); diff --git a/services/people/java/com/android/server/people/prediction/ShareTargetPredictor.java b/services/people/java/com/android/server/people/prediction/ShareTargetPredictor.java index 368b737d2133..b6204073d1cc 100644 --- a/services/people/java/com/android/server/people/prediction/ShareTargetPredictor.java +++ b/services/people/java/com/android/server/people/prediction/ShareTargetPredictor.java @@ -70,7 +70,7 @@ class ShareTargetPredictor extends AppTargetPredictor { @UserIdInt int callingUserId, @NonNull Context context) { super(predictionContext, updatePredictionsMethod, dataManager, callingUserId); mIntentFilter = predictionContext.getExtras().getParcelable( - ChooserActivity.APP_PREDICTION_INTENT_FILTER_KEY); + ChooserActivity.APP_PREDICTION_INTENT_FILTER_KEY, android.content.IntentFilter.class); if (DeviceConfig.getBoolean(NAMESPACE_SYSTEMUI, SystemUiDeviceConfigFlags.DARK_LAUNCH_REMOTE_PREDICTION_SERVICE_ENABLED, false)) { diff --git a/services/usb/java/com/android/server/usb/MtpNotificationManager.java b/services/usb/java/com/android/server/usb/MtpNotificationManager.java index 8845f118f3a8..70bafc0d5146 100644 --- a/services/usb/java/com/android/server/usb/MtpNotificationManager.java +++ b/services/usb/java/com/android/server/usb/MtpNotificationManager.java @@ -117,7 +117,7 @@ class MtpNotificationManager { @Override public void onReceive(Context context, Intent intent) { final UsbDevice device = - intent.getExtras().<UsbDevice>getParcelable(UsbManager.EXTRA_DEVICE); + intent.getExtras().<UsbDevice>getParcelable(UsbManager.EXTRA_DEVICE, android.hardware.usb.UsbDevice.class); if (device == null) { return; } diff --git a/services/usb/java/com/android/server/usb/UsbDeviceManager.java b/services/usb/java/com/android/server/usb/UsbDeviceManager.java index 6ea416b54811..85b9f759beac 100644 --- a/services/usb/java/com/android/server/usb/UsbDeviceManager.java +++ b/services/usb/java/com/android/server/usb/UsbDeviceManager.java @@ -341,8 +341,8 @@ public class UsbDeviceManager implements ActivityTaskManagerInternal.ScreenObser BroadcastReceiver portReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { - ParcelableUsbPort port = intent.getParcelableExtra(UsbManager.EXTRA_PORT); - UsbPortStatus status = intent.getParcelableExtra(UsbManager.EXTRA_PORT_STATUS); + ParcelableUsbPort port = intent.getParcelableExtra(UsbManager.EXTRA_PORT, android.hardware.usb.ParcelableUsbPort.class); + UsbPortStatus status = intent.getParcelableExtra(UsbManager.EXTRA_PORT_STATUS, android.hardware.usb.UsbPortStatus.class); mHandler.updateHostState( port.getUsbPort(context.getSystemService(UsbManager.class)), status); } diff --git a/services/usb/java/com/android/server/usb/UsbPortManager.java b/services/usb/java/com/android/server/usb/UsbPortManager.java index 5e633ab3aef5..f8df6c6ea8df 100644 --- a/services/usb/java/com/android/server/usb/UsbPortManager.java +++ b/services/usb/java/com/android/server/usb/UsbPortManager.java @@ -1156,7 +1156,7 @@ public class UsbPortManager { switch (msg.what) { case MSG_UPDATE_PORTS: { Bundle b = msg.getData(); - ArrayList<RawPortInfo> PortInfo = b.getParcelableArrayList(PORT_INFO); + ArrayList<RawPortInfo> PortInfo = b.getParcelableArrayList(PORT_INFO, com.android.server.usb.hal.port.RawPortInfo.class); synchronized (mLock) { updatePortsLocked(null, PortInfo); } diff --git a/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionSessionConnection.java b/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionSessionConnection.java index a061618b1ca7..093e97614b5a 100644 --- a/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionSessionConnection.java +++ b/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionSessionConnection.java @@ -399,8 +399,8 @@ final class VoiceInteractionSessionConnection implements ServiceConnection, final int taskId = data.getInt(ASSIST_TASK_ID); final IBinder activityId = data.getBinder(ASSIST_ACTIVITY_ID); final Bundle assistData = data.getBundle(ASSIST_KEY_DATA); - final AssistStructure structure = data.getParcelable(ASSIST_KEY_STRUCTURE); - final AssistContent content = data.getParcelable(ASSIST_KEY_CONTENT); + final AssistStructure structure = data.getParcelable(ASSIST_KEY_STRUCTURE, android.app.assist.AssistStructure.class); + final AssistContent content = data.getParcelable(ASSIST_KEY_CONTENT, android.app.assist.AssistContent.class); int uid = -1; if (assistData != null) { uid = assistData.getInt(Intent.EXTRA_ASSIST_UID, -1); diff --git a/telecomm/java/android/telecom/ConnectionService.java b/telecomm/java/android/telecom/ConnectionService.java index bce6809ef32d..f341bc20fe01 100755 --- a/telecomm/java/android/telecom/ConnectionService.java +++ b/telecomm/java/android/telecom/ConnectionService.java @@ -2044,7 +2044,7 @@ public abstract class ConnectionService extends Service { if (isHandover) { PhoneAccountHandle fromPhoneAccountHandle = request.getExtras() != null ? (PhoneAccountHandle) request.getExtras().getParcelable( - TelecomManager.EXTRA_HANDOVER_FROM_PHONE_ACCOUNT) : null; + TelecomManager.EXTRA_HANDOVER_FROM_PHONE_ACCOUNT, android.telecom.PhoneAccountHandle.class) : null; if (!isIncoming) { connection = onCreateOutgoingHandoverConnection(fromPhoneAccountHandle, request); } else { diff --git a/telephony/java/android/telephony/ServiceState.java b/telephony/java/android/telephony/ServiceState.java index 6fe9bf97c5c3..bfa60ba960ca 100644 --- a/telephony/java/android/telephony/ServiceState.java +++ b/telephony/java/android/telephony/ServiceState.java @@ -1445,7 +1445,7 @@ public class ServiceState implements Parcelable { */ @UnsupportedAppUsage private void setFromNotifierBundle(Bundle m) { - ServiceState ssFromBundle = m.getParcelable(EXTRA_SERVICE_STATE); + ServiceState ssFromBundle = m.getParcelable(EXTRA_SERVICE_STATE, android.telephony.ServiceState.class); if (ssFromBundle != null) { copyFrom(ssFromBundle); } diff --git a/telephony/java/android/telephony/SignalStrength.java b/telephony/java/android/telephony/SignalStrength.java index f74ef0fe764a..f1af68f5cfee 100644 --- a/telephony/java/android/telephony/SignalStrength.java +++ b/telephony/java/android/telephony/SignalStrength.java @@ -906,12 +906,12 @@ public class SignalStrength implements Parcelable { @Deprecated @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P) private void setFromNotifierBundle(Bundle m) { - mCdma = m.getParcelable("Cdma"); - mGsm = m.getParcelable("Gsm"); - mWcdma = m.getParcelable("Wcdma"); - mTdscdma = m.getParcelable("Tdscdma"); - mLte = m.getParcelable("Lte"); - mNr = m.getParcelable("Nr"); + mCdma = m.getParcelable("Cdma", android.telephony.CellSignalStrengthCdma.class); + mGsm = m.getParcelable("Gsm", android.telephony.CellSignalStrengthGsm.class); + mWcdma = m.getParcelable("Wcdma", android.telephony.CellSignalStrengthWcdma.class); + mTdscdma = m.getParcelable("Tdscdma", android.telephony.CellSignalStrengthTdscdma.class); + mLte = m.getParcelable("Lte", android.telephony.CellSignalStrengthLte.class); + mNr = m.getParcelable("Nr", android.telephony.CellSignalStrengthNr.class); } /** diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java index 432d08725e87..24374ee64719 100644 --- a/telephony/java/android/telephony/TelephonyManager.java +++ b/telephony/java/android/telephony/TelephonyManager.java @@ -4867,7 +4867,7 @@ public class TelephonyManager { return; } ParcelUuid resultUuid = - result.getParcelable(KEY_CALL_COMPOSER_PICTURE_HANDLE); + result.getParcelable(KEY_CALL_COMPOSER_PICTURE_HANDLE, android.os.ParcelUuid.class); if (resultUuid == null) { Log.e(TAG, "Got null uuid without an error" + " while uploading call composer pic"); @@ -10375,7 +10375,7 @@ public class TelephonyManager { protected void onReceiveResult(int resultCode, Bundle ussdResponse) { Rlog.d(TAG, "USSD:" + resultCode); checkNotNull(ussdResponse, "ussdResponse cannot be null."); - UssdResponse response = ussdResponse.getParcelable(USSD_RESPONSE); + UssdResponse response = ussdResponse.getParcelable(USSD_RESPONSE, android.telephony.UssdResponse.class); if (resultCode == USSD_RETURN_SUCCESS) { callback.onReceiveUssdResponse(telephonyManager, response.getUssdRequest(), @@ -16867,7 +16867,7 @@ public class TelephonyManager { } NetworkSlicingConfig slicingConfig = - result.getParcelable(KEY_SLICING_CONFIG_HANDLE); + result.getParcelable(KEY_SLICING_CONFIG_HANDLE, android.telephony.data.NetworkSlicingConfig.class); executor.execute(() -> callback.onResult(slicingConfig)); } }); diff --git a/telephony/java/android/telephony/VisualVoicemailService.java b/telephony/java/android/telephony/VisualVoicemailService.java index fe30eb7bb005..a530917a271c 100644 --- a/telephony/java/android/telephony/VisualVoicemailService.java +++ b/telephony/java/android/telephony/VisualVoicemailService.java @@ -157,14 +157,14 @@ public abstract class VisualVoicemailService extends Service { @Override public void handleMessage(final Message msg) { final PhoneAccountHandle handle = msg.getData() - .getParcelable(DATA_PHONE_ACCOUNT_HANDLE); + .getParcelable(DATA_PHONE_ACCOUNT_HANDLE, android.telecom.PhoneAccountHandle.class); VisualVoicemailTask task = new VisualVoicemailTask(msg.replyTo, msg.arg1); switch (msg.what) { case MSG_ON_CELL_SERVICE_CONNECTED: onCellServiceConnected(task, handle); break; case MSG_ON_SMS_RECEIVED: - VisualVoicemailSms sms = msg.getData().getParcelable(DATA_SMS); + VisualVoicemailSms sms = msg.getData().getParcelable(DATA_SMS, android.telephony.VisualVoicemailSms.class); onSmsReceived(task, sms); break; case MSG_ON_SIM_REMOVED: diff --git a/telephony/java/android/telephony/euicc/EuiccManager.java b/telephony/java/android/telephony/euicc/EuiccManager.java index 1252dc178cb9..7d63688025e0 100644 --- a/telephony/java/android/telephony/euicc/EuiccManager.java +++ b/telephony/java/android/telephony/euicc/EuiccManager.java @@ -1001,7 +1001,7 @@ public class EuiccManager { public void startResolutionActivity(Activity activity, int requestCode, Intent resultIntent, PendingIntent callbackIntent) throws IntentSender.SendIntentException { PendingIntent resolutionIntent = - resultIntent.getParcelableExtra(EXTRA_EMBEDDED_SUBSCRIPTION_RESOLUTION_INTENT); + resultIntent.getParcelableExtra(EXTRA_EMBEDDED_SUBSCRIPTION_RESOLUTION_INTENT, android.app.PendingIntent.class); if (resolutionIntent == null) { throw new IllegalArgumentException("Invalid result intent"); } @@ -1032,7 +1032,7 @@ public class EuiccManager { if (!isEnabled()) { PendingIntent callbackIntent = resolutionIntent.getParcelableExtra( - EuiccManager.EXTRA_EMBEDDED_SUBSCRIPTION_RESOLUTION_CALLBACK_INTENT); + EuiccManager.EXTRA_EMBEDDED_SUBSCRIPTION_RESOLUTION_CALLBACK_INTENT, android.app.PendingIntent.class); if (callbackIntent != null) { sendUnavailableError(callbackIntent); } diff --git a/telephony/java/android/telephony/mbms/MbmsDownloadReceiver.java b/telephony/java/android/telephony/mbms/MbmsDownloadReceiver.java index dd1061f3bd46..556d6f4565d4 100644 --- a/telephony/java/android/telephony/mbms/MbmsDownloadReceiver.java +++ b/telephony/java/android/telephony/mbms/MbmsDownloadReceiver.java @@ -195,7 +195,7 @@ public class MbmsDownloadReceiver extends BroadcastReceiver { return false; } DownloadRequest request = intent.getParcelableExtra( - MbmsDownloadSession.EXTRA_MBMS_DOWNLOAD_REQUEST); + MbmsDownloadSession.EXTRA_MBMS_DOWNLOAD_REQUEST, android.telephony.mbms.DownloadRequest.class); String expectedTokenFileName = request.getHash() + DOWNLOAD_TOKEN_SUFFIX; File expectedTokenFile = new File( MbmsUtils.getEmbmsTempFileDirForService(context, request.getFileServiceId()), @@ -236,7 +236,7 @@ public class MbmsDownloadReceiver extends BroadcastReceiver { private void moveDownloadedFile(Context context, Intent intent) { DownloadRequest request = intent.getParcelableExtra( - MbmsDownloadSession.EXTRA_MBMS_DOWNLOAD_REQUEST); + MbmsDownloadSession.EXTRA_MBMS_DOWNLOAD_REQUEST, android.telephony.mbms.DownloadRequest.class); Intent intentForApp = request.getIntentForApp(); if (intentForApp == null) { Log.i(LOG_TAG, "Malformed app notification intent"); @@ -256,7 +256,7 @@ public class MbmsDownloadReceiver extends BroadcastReceiver { return; } - Uri finalTempFile = intent.getParcelableExtra(VendorUtils.EXTRA_FINAL_URI); + Uri finalTempFile = intent.getParcelableExtra(VendorUtils.EXTRA_FINAL_URI, android.net.Uri.class); if (!verifyTempFilePath(context, request.getFileServiceId(), finalTempFile)) { Log.w(LOG_TAG, "Download result specified an invalid temp file " + finalTempFile); setResultCode(RESULT_DOWNLOAD_FINALIZATION_ERROR); @@ -264,7 +264,7 @@ public class MbmsDownloadReceiver extends BroadcastReceiver { } FileInfo completedFileInfo = - (FileInfo) intent.getParcelableExtra(MbmsDownloadSession.EXTRA_MBMS_FILE_INFO); + (FileInfo) intent.getParcelableExtra(MbmsDownloadSession.EXTRA_MBMS_FILE_INFO, android.telephony.mbms.FileInfo.class); Path appSpecifiedDestination = FileSystems.getDefault().getPath( request.getDestinationUri().getPath()); @@ -288,13 +288,13 @@ public class MbmsDownloadReceiver extends BroadcastReceiver { private void cleanupPostMove(Context context, Intent intent) { DownloadRequest request = intent.getParcelableExtra( - MbmsDownloadSession.EXTRA_MBMS_DOWNLOAD_REQUEST); + MbmsDownloadSession.EXTRA_MBMS_DOWNLOAD_REQUEST, android.telephony.mbms.DownloadRequest.class); if (request == null) { Log.w(LOG_TAG, "Intent does not include a DownloadRequest. Ignoring."); return; } - List<Uri> tempFiles = intent.getParcelableArrayListExtra(VendorUtils.EXTRA_TEMP_LIST); + List<Uri> tempFiles = intent.getParcelableArrayListExtra(VendorUtils.EXTRA_TEMP_LIST, android.net.Uri.class); if (tempFiles == null) { return; } @@ -318,7 +318,7 @@ public class MbmsDownloadReceiver extends BroadcastReceiver { return; } int fdCount = intent.getIntExtra(VendorUtils.EXTRA_FD_COUNT, 0); - List<Uri> pausedList = intent.getParcelableArrayListExtra(VendorUtils.EXTRA_PAUSED_LIST); + List<Uri> pausedList = intent.getParcelableArrayListExtra(VendorUtils.EXTRA_PAUSED_LIST, android.net.Uri.class); if (fdCount == 0 && (pausedList == null || pausedList.size() == 0)) { Log.i(LOG_TAG, "No temp files actually requested. Ending."); @@ -417,7 +417,7 @@ public class MbmsDownloadReceiver extends BroadcastReceiver { String serviceId = intent.getStringExtra(VendorUtils.EXTRA_SERVICE_ID); File tempFileDir = MbmsUtils.getEmbmsTempFileDirForService(context, serviceId); final List<Uri> filesInUse = - intent.getParcelableArrayListExtra(VendorUtils.EXTRA_TEMP_FILES_IN_USE); + intent.getParcelableArrayListExtra(VendorUtils.EXTRA_TEMP_FILES_IN_USE, android.net.Uri.class); File[] filesToDelete = tempFileDir.listFiles(new FileFilter() { @Override public boolean accept(File file) { |