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

Commit bb8c33e7 authored by Vadim Caen's avatar Vadim Caen
Browse files

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
parent b739e834
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -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();
                    }
                    try {
                        mAnimatableIcon.start();
                    } catch (Exception ex) {
                        Log.e(TAG, "Error while running the splash screen animated icon", ex);
                        animation.cancel();
                    }
                }

                @Override