Merge "Change reference to Bundle.filterValues"
This commit is contained in:
@@ -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 "
|
||||||
|
|||||||
@@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user