Catch exception when parsing faulty AVD
If an application uses an animated vector drawable for its splashsreen but the files generates an error (like a target not found for the animation), we catch it and log it instead of crashing sysui Test: manual, created an AVD with a <target> tag referencing a non exising group in the dawable Fixes: 201274348 Change-Id: Ia195b8a626ed4bcad41ffad0e05871b5a632c8df
This commit is contained in:
@@ -38,6 +38,7 @@ import android.graphics.drawable.Animatable;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.Handler;
|
||||
import android.os.Trace;
|
||||
import android.util.Log;
|
||||
import android.util.PathParser;
|
||||
import android.window.SplashScreenView;
|
||||
|
||||
@@ -50,6 +51,8 @@ import com.android.internal.R;
|
||||
*/
|
||||
public class SplashscreenIconDrawableFactory {
|
||||
|
||||
private static final String TAG = "SplashscreenIconDrawableFactory";
|
||||
|
||||
/**
|
||||
* @return An array containing the foreground drawable at index 0 and if needed a background
|
||||
* drawable at index 1.
|
||||
@@ -282,7 +285,12 @@ public class SplashscreenIconDrawableFactory {
|
||||
if (startListener != null) {
|
||||
startListener.run();
|
||||
}
|
||||
mAnimatableIcon.start();
|
||||
try {
|
||||
mAnimatableIcon.start();
|
||||
} catch (Exception ex) {
|
||||
Log.e(TAG, "Error while running the splash screen animated icon", ex);
|
||||
animation.cancel();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user