Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 42786418 authored by Amith Yamasani's avatar Amith Yamasani
Browse files

Don't instantiate non-Fragments in Fragment.instantiate

Backport...

Fix for PreferenceActivities being invoked with non-Fragment class
names via extras in the intent. Make sure that the constructor
doesn't get called if the class name is not for a Fragment type.
Bug: 9901133
Change-Id: I227756fb4246deac796cee09077e482237bb5b0d
parent 32c99004
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -572,6 +572,10 @@ public class Fragment implements ComponentCallbacks2, OnCreateContextMenuListene
            if (clazz == null) {
                // Class not found in the cache, see if it's real, and try to add it
                clazz = context.getClassLoader().loadClass(fname);
                if (!Fragment.class.isAssignableFrom(clazz)) {
                    throw new InstantiationException("Trying to instantiate a class " + fname
                        + " that is not a Fragment", new ClassCastException());
                }
                sClassMap.put(fname, clazz);
            }
            Fragment f = (Fragment)clazz.newInstance();