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

Commit d9463f50 authored by Mattias Petersson's avatar Mattias Petersson Committed by Johan Redestig
Browse files

Fix for crash when setting live wallpaper.

This fix prevents a crash that sometimes happens when setting a
live wallpaper. It happened when pressing "Set wallpaper" button
in the live wallpaper preview activity, before the preview was
fully loaded.

The crash happened in native code while updating the wallpaper
surface when calling mInputChannel.registerInputChannel(),
because the previous call to
mSession.add(mWindow, mLayout, View.VISIBLE, mContentInsets,
             mInputChannel)
had failed. The fix aborts the surface update when it is not
possible to add the window.

Change-Id: I0e79a851e5c7f7b15eb07043c63d1f4d78f14616
parent cb842753
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -514,8 +514,11 @@ public abstract class WallpaperService extends Service {
                        mLayout.windowAnimations =
                                com.android.internal.R.style.Animation_Wallpaper;
                        mInputChannel = new InputChannel();
                        mSession.add(mWindow, mLayout, View.VISIBLE, mContentInsets,
                                mInputChannel);
                        if (mSession.add(mWindow, mLayout, View.VISIBLE, mContentInsets,
                                mInputChannel) < 0) {
                            Log.w(TAG, "Failed to add window while updating wallpaper surface.");
                            return;
                        }
                        mCreated = true;

                        InputQueue.registerInputChannel(mInputChannel, mInputHandler,