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 Hazenclass BundleUtil {
9ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen    /**
10ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen     * Get an array of Bundle objects from a parcelable array field in a bundle.
11ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen     * Update the bundle to have a typed array so fetches in the future don't need
12ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen     * to do an array copy.
13ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen     */
14ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen    public static Bundle[] getBundleArrayFromBundle(Bundle bundle, String key) {
15ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen        Parcelable[] array = bundle.getParcelableArray(key);
16ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen        if (array instanceof Bundle[] || array == null) {
17ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen            return (Bundle[]) array;
18ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen        }
19ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen        Bundle[] typedArray = Arrays.copyOf(array, array.length,
20ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen                Bundle[].class);
21ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen        bundle.putParcelableArray(key, typedArray);
22ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen        return typedArray;
23ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen    }
24ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen}
25