Merge "Change reference to Bundle.filterValues"

am: 598b5d5340

Change-Id: I0b2cc753addf4f806f11f0f801d6f796340142ef
This commit is contained in:
Sarah Chin
2019-12-20 14:35:15 -08:00
committed by android-build-merger
2 changed files with 31 additions and 1 deletions

View File

@@ -32,6 +32,7 @@ import android.util.Log;
import com.android.internal.annotations.VisibleForTesting; import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.telephony.PhoneConstants; import com.android.internal.telephony.PhoneConstants;
import com.android.internal.telephony.util.TelephonyUtils;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
@@ -833,7 +834,7 @@ public final class ImsCallProfile implements Parcelable {
} }
int startSize = extras.size(); int startSize = extras.size();
Bundle filtered = extras.filterValues(); Bundle filtered = TelephonyUtils.filterValues(extras);
int endSize = filtered.size(); int endSize = filtered.size();
if (startSize != endSize) { if (startSize != endSize) {
Log.i(TAG, "maybeCleanseExtras: " + (startSize - endSize) + " extra values were " Log.i(TAG, "maybeCleanseExtras: " + (startSize - endSize) + " extra values were "

View File

@@ -22,6 +22,8 @@ import android.content.pm.ComponentInfo;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo; import android.content.pm.ResolveInfo;
import android.os.Binder; import android.os.Binder;
import android.os.Bundle;
import android.os.PersistableBundle;
import android.os.RemoteException; import android.os.RemoteException;
import android.os.SystemProperties; import android.os.SystemProperties;
@@ -71,4 +73,31 @@ public final class TelephonyUtils {
if (resolveInfo.providerInfo != null) return resolveInfo.providerInfo; if (resolveInfo.providerInfo != null) return resolveInfo.providerInfo;
throw new IllegalStateException("Missing ComponentInfo!"); throw new IllegalStateException("Missing ComponentInfo!");
} }
/**
* Filter values in bundle to only basic types.
*/
public static Bundle filterValues(Bundle bundle) {
Bundle ret = new Bundle(bundle);
for (String key : bundle.keySet()) {
Object value = bundle.get(key);
if ((value instanceof Integer) || (value instanceof Long)
|| (value instanceof Double) || (value instanceof String)
|| (value instanceof int[]) || (value instanceof long[])
|| (value instanceof double[]) || (value instanceof String[])
|| (value instanceof PersistableBundle) || (value == null)
|| (value instanceof Boolean) || (value instanceof boolean[])) {
continue;
}
if (value instanceof Bundle) {
ret.putBundle(key, filterValues((Bundle) value));
continue;
}
if (value.getClass().getName().startsWith("android.")) {
continue;
}
ret.remove(key);
}
return ret;
}
} }