diff --git a/core/java/android/view/translation/TranslationManager.java b/core/java/android/view/translation/TranslationManager.java index b61eab97779e2..8785d9cec2c68 100644 --- a/core/java/android/view/translation/TranslationManager.java +++ b/core/java/android/view/translation/TranslationManager.java @@ -24,6 +24,7 @@ import android.app.PendingIntent; import android.content.Context; import android.os.Handler; import android.os.Looper; +import android.os.Parcelable; import android.os.RemoteException; import android.os.SynchronousResultReceiver; import android.util.ArrayMap; @@ -200,8 +201,14 @@ public final class TranslationManager { if (result.resultCode != STATUS_SYNC_CALL_SUCCESS) { return Collections.emptySet(); } - return new ArraySet<>( - (TranslationCapability[]) result.bundle.getParcelableArray(EXTRA_CAPABILITIES)); + Parcelable[] parcelables = result.bundle.getParcelableArray(EXTRA_CAPABILITIES); + ArraySet capabilities = new ArraySet(); + for (Parcelable obj : parcelables) { + if (obj instanceof TranslationCapability) { + capabilities.add((TranslationCapability) obj); + } + } + return capabilities; } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } catch (TimeoutException e) {