Merge "Handle exception for unknown component names." into udc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
eb96d2bb16
@@ -28,6 +28,7 @@ import android.content.res.XmlResourceParser;
|
||||
import android.os.SystemClock;
|
||||
import android.util.AttributeSet;
|
||||
import android.util.Xml;
|
||||
import android.view.InflateException;
|
||||
|
||||
import org.xmlpull.v1.XmlPullParser;
|
||||
import org.xmlpull.v1.XmlPullParserException;
|
||||
@@ -137,16 +138,9 @@ public class AnimationUtils {
|
||||
try {
|
||||
parser = context.getResources().getAnimation(id);
|
||||
return createAnimationFromXml(context, parser);
|
||||
} catch (XmlPullParserException ex) {
|
||||
NotFoundException rnf = new NotFoundException("Can't load animation resource ID #0x" +
|
||||
Integer.toHexString(id));
|
||||
rnf.initCause(ex);
|
||||
throw rnf;
|
||||
} catch (IOException ex) {
|
||||
NotFoundException rnf = new NotFoundException("Can't load animation resource ID #0x" +
|
||||
Integer.toHexString(id));
|
||||
rnf.initCause(ex);
|
||||
throw rnf;
|
||||
} catch (XmlPullParserException | IOException ex) {
|
||||
throw new NotFoundException(
|
||||
"Can't load animation resource ID #0x" + Integer.toHexString(id), ex);
|
||||
} finally {
|
||||
if (parser != null) parser.close();
|
||||
}
|
||||
@@ -159,8 +153,9 @@ public class AnimationUtils {
|
||||
}
|
||||
|
||||
@UnsupportedAppUsage
|
||||
private static Animation createAnimationFromXml(Context c, XmlPullParser parser,
|
||||
AnimationSet parent, AttributeSet attrs) throws XmlPullParserException, IOException {
|
||||
private static Animation createAnimationFromXml(
|
||||
Context c, XmlPullParser parser, AnimationSet parent, AttributeSet attrs)
|
||||
throws XmlPullParserException, IOException, InflateException {
|
||||
|
||||
Animation anim = null;
|
||||
|
||||
@@ -168,8 +163,8 @@ public class AnimationUtils {
|
||||
int type;
|
||||
int depth = parser.getDepth();
|
||||
|
||||
while (((type=parser.next()) != XmlPullParser.END_TAG || parser.getDepth() > depth)
|
||||
&& type != XmlPullParser.END_DOCUMENT) {
|
||||
while (((type = parser.next()) != XmlPullParser.END_TAG || parser.getDepth() > depth)
|
||||
&& type != XmlPullParser.END_DOCUMENT) {
|
||||
|
||||
if (type != XmlPullParser.START_TAG) {
|
||||
continue;
|
||||
@@ -193,7 +188,7 @@ public class AnimationUtils {
|
||||
} else if (name.equals("extend")) {
|
||||
anim = new ExtendAnimation(c, attrs);
|
||||
} else {
|
||||
throw new RuntimeException("Unknown animation name: " + parser.getName());
|
||||
throw new InflateException("Unknown animation name: " + parser.getName());
|
||||
}
|
||||
|
||||
if (parent != null) {
|
||||
@@ -220,29 +215,24 @@ public class AnimationUtils {
|
||||
try {
|
||||
parser = context.getResources().getAnimation(id);
|
||||
return createLayoutAnimationFromXml(context, parser);
|
||||
} catch (XmlPullParserException ex) {
|
||||
NotFoundException rnf = new NotFoundException("Can't load animation resource ID #0x" +
|
||||
Integer.toHexString(id));
|
||||
rnf.initCause(ex);
|
||||
throw rnf;
|
||||
} catch (IOException ex) {
|
||||
NotFoundException rnf = new NotFoundException("Can't load animation resource ID #0x" +
|
||||
Integer.toHexString(id));
|
||||
rnf.initCause(ex);
|
||||
throw rnf;
|
||||
} catch (XmlPullParserException | IOException | InflateException ex) {
|
||||
throw new NotFoundException(
|
||||
"Can't load animation resource ID #0x" + Integer.toHexString(id), ex);
|
||||
} finally {
|
||||
if (parser != null) parser.close();
|
||||
}
|
||||
}
|
||||
|
||||
private static LayoutAnimationController createLayoutAnimationFromXml(Context c,
|
||||
XmlPullParser parser) throws XmlPullParserException, IOException {
|
||||
private static LayoutAnimationController createLayoutAnimationFromXml(
|
||||
Context c, XmlPullParser parser)
|
||||
throws XmlPullParserException, IOException, InflateException {
|
||||
|
||||
return createLayoutAnimationFromXml(c, parser, Xml.asAttributeSet(parser));
|
||||
}
|
||||
|
||||
private static LayoutAnimationController createLayoutAnimationFromXml(Context c,
|
||||
XmlPullParser parser, AttributeSet attrs) throws XmlPullParserException, IOException {
|
||||
private static LayoutAnimationController createLayoutAnimationFromXml(
|
||||
Context c, XmlPullParser parser, AttributeSet attrs)
|
||||
throws XmlPullParserException, IOException, InflateException {
|
||||
|
||||
LayoutAnimationController controller = null;
|
||||
|
||||
@@ -263,7 +253,7 @@ public class AnimationUtils {
|
||||
} else if ("gridLayoutAnimation".equals(name)) {
|
||||
controller = new GridLayoutAnimationController(c, attrs);
|
||||
} else {
|
||||
throw new RuntimeException("Unknown layout animation name: " + name);
|
||||
throw new InflateException("Unknown layout animation name: " + name);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -342,16 +332,9 @@ public class AnimationUtils {
|
||||
try {
|
||||
parser = context.getResources().getAnimation(id);
|
||||
return createInterpolatorFromXml(context.getResources(), context.getTheme(), parser);
|
||||
} catch (XmlPullParserException ex) {
|
||||
NotFoundException rnf = new NotFoundException("Can't load animation resource ID #0x" +
|
||||
Integer.toHexString(id));
|
||||
rnf.initCause(ex);
|
||||
throw rnf;
|
||||
} catch (IOException ex) {
|
||||
NotFoundException rnf = new NotFoundException("Can't load animation resource ID #0x" +
|
||||
Integer.toHexString(id));
|
||||
rnf.initCause(ex);
|
||||
throw rnf;
|
||||
} catch (XmlPullParserException | IOException | InflateException ex) {
|
||||
throw new NotFoundException(
|
||||
"Can't load animation resource ID #0x" + Integer.toHexString(id), ex);
|
||||
} finally {
|
||||
if (parser != null) parser.close();
|
||||
}
|
||||
@@ -367,30 +350,26 @@ public class AnimationUtils {
|
||||
* @throws NotFoundException
|
||||
* @hide
|
||||
*/
|
||||
public static Interpolator loadInterpolator(Resources res, Theme theme, int id) throws NotFoundException {
|
||||
public static Interpolator loadInterpolator(Resources res, Theme theme, int id)
|
||||
throws NotFoundException {
|
||||
XmlResourceParser parser = null;
|
||||
try {
|
||||
parser = res.getAnimation(id);
|
||||
return createInterpolatorFromXml(res, theme, parser);
|
||||
} catch (XmlPullParserException ex) {
|
||||
NotFoundException rnf = new NotFoundException("Can't load animation resource ID #0x" +
|
||||
Integer.toHexString(id));
|
||||
rnf.initCause(ex);
|
||||
throw rnf;
|
||||
} catch (IOException ex) {
|
||||
NotFoundException rnf = new NotFoundException("Can't load animation resource ID #0x" +
|
||||
Integer.toHexString(id));
|
||||
rnf.initCause(ex);
|
||||
throw rnf;
|
||||
} catch (XmlPullParserException | IOException | InflateException ex) {
|
||||
throw new NotFoundException(
|
||||
"Can't load animation resource ID #0x" + Integer.toHexString(id), ex);
|
||||
} finally {
|
||||
if (parser != null)
|
||||
if (parser != null) {
|
||||
parser.close();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private static Interpolator createInterpolatorFromXml(Resources res, Theme theme, XmlPullParser parser)
|
||||
throws XmlPullParserException, IOException {
|
||||
private static Interpolator createInterpolatorFromXml(
|
||||
Resources res, Theme theme, XmlPullParser parser)
|
||||
throws XmlPullParserException, IOException, InflateException {
|
||||
|
||||
BaseInterpolator interpolator = null;
|
||||
|
||||
@@ -430,7 +409,7 @@ public class AnimationUtils {
|
||||
} else if (name.equals("pathInterpolator")) {
|
||||
interpolator = new PathInterpolator(res, theme, attrs);
|
||||
} else {
|
||||
throw new RuntimeException("Unknown interpolator name: " + parser.getName());
|
||||
throw new InflateException("Unknown interpolator name: " + parser.getName());
|
||||
}
|
||||
}
|
||||
return interpolator;
|
||||
|
||||
@@ -50,6 +50,7 @@ import android.media.Image;
|
||||
import android.media.ImageReader;
|
||||
import android.os.SystemProperties;
|
||||
import android.util.Slog;
|
||||
import android.view.InflateException;
|
||||
import android.view.SurfaceControl;
|
||||
import android.view.WindowManager.LayoutParams;
|
||||
import android.view.WindowManager.TransitionOldType;
|
||||
@@ -1264,7 +1265,7 @@ public class TransitionAnimation {
|
||||
public static Animation loadAnimationSafely(Context context, int resId, String tag) {
|
||||
try {
|
||||
return AnimationUtils.loadAnimation(context, resId);
|
||||
} catch (Resources.NotFoundException e) {
|
||||
} catch (Resources.NotFoundException | InflateException e) {
|
||||
Slog.w(tag, "Unable to load animation resource", e);
|
||||
return null;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user