1ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazenpackage android.support.v4.app;
2ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen
3ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazenimport android.os.Bundle;
4ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazenimport android.os.Parcelable;
5ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen
6ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazenimport java.util.Arrays;
7ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen
8ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen/**
9ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen * @hide
10ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen */
11ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazenclass BundleUtil {
12ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen    /**
13ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen     * Get an array of Bundle objects from a parcelable array field in a bundle.
14ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen     * Update the bundle to have a typed array so fetches in the future don't need
15ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen     * to do an array copy.
16ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen     */
17ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen    public static Bundle[] getBundleArrayFromBundle(Bundle bundle, String key) {
18ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen        Parcelable[] array = bundle.getParcelableArray(key);
19ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen        if (array instanceof Bundle[] || array == null) {
20ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen            return (Bundle[]) array;
21ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen        }
22ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen        Bundle[] typedArray = Arrays.copyOf(array, array.length,
23ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen                Bundle[].class);
24ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen        bundle.putParcelableArray(key, typedArray);
25ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen        return typedArray;
26ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen    }
27ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen}
28