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

Commit 1fb5b3d4 authored by Craig Mautner's avatar Craig Mautner Committed by Android Git Automerger
Browse files

am 270db713: am 9cf5831f: Merge "Fix jank when launching apps that show wallpaper." into jb-dev

* commit '270db713':
  Fix jank when launching apps that show wallpaper.
parents dd850c79 270db713
Loading
Loading
Loading
Loading
+15 −10
Original line number Original line Diff line number Diff line
@@ -33,6 +33,7 @@ import android.content.pm.PackageManager;
import android.content.res.CompatibilityInfo;
import android.content.res.CompatibilityInfo;
import android.content.res.Configuration;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.content.res.Resources;
import android.content.res.TypedArray;
import android.database.ContentObserver;
import android.database.ContentObserver;
import android.graphics.PixelFormat;
import android.graphics.PixelFormat;
import android.graphics.Rect;
import android.graphics.Rect;
@@ -1436,6 +1437,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
    }
    }


    /** {@inheritDoc} */
    /** {@inheritDoc} */
    @Override
    public View addStartingWindow(IBinder appToken, String packageName, int theme,
    public View addStartingWindow(IBinder appToken, String packageName, int theme,
            CompatibilityInfo compatInfo, CharSequence nonLocalizedLabel, int labelRes,
            CompatibilityInfo compatInfo, CharSequence nonLocalizedLabel, int labelRes,
            int icon, int windowFlags) {
            int icon, int windowFlags) {
@@ -1460,8 +1462,11 @@ public class PhoneWindowManager implements WindowManagerPolicy {
            }
            }


            Window win = PolicyManager.makeNewWindow(context);
            Window win = PolicyManager.makeNewWindow(context);
            if (win.getWindowStyle().getBoolean(
            final TypedArray ta = win.getWindowStyle();
                    com.android.internal.R.styleable.Window_windowDisablePreview, false)) {
            if (ta.getBoolean(
                        com.android.internal.R.styleable.Window_windowDisablePreview, false)
                || ta.getBoolean(
                        com.android.internal.R.styleable.Window_windowShowWallpaper,false)) {
                return null;
                return null;
            }
            }


+7 −4
Original line number Original line Diff line number Diff line
@@ -1636,7 +1636,7 @@ public class WindowManagerService extends IWindowManager.Stub
                    continue;
                    continue;
                }
                }
            }
            }
            if (DEBUG_WALLPAPER) Slog.v(TAG, "Win " + w + ": readyfordisplay="
            if (DEBUG_WALLPAPER) Slog.v(TAG, "Win #" + i + " " + w + ": readyfordisplay="
                    + w.isReadyForDisplay() + " mDrawState=" + w.mWinAnimator.mDrawState);
                    + w.isReadyForDisplay() + " mDrawState=" + w.mWinAnimator.mDrawState);
            if ((w.mAttrs.flags&FLAG_SHOW_WALLPAPER) != 0 && w.isReadyForDisplay()
            if ((w.mAttrs.flags&FLAG_SHOW_WALLPAPER) != 0 && w.isReadyForDisplay()
                    && (mWallpaperTarget == w || w.isDrawnLw())) {
                    && (mWallpaperTarget == w || w.isDrawnLw())) {
@@ -1729,12 +1729,15 @@ public class WindowManagerService extends IWindowManager.Stub
                                Slog.v(TAG, "Old wallpaper still the target.");
                                Slog.v(TAG, "Old wallpaper still the target.");
                            }
                            }
                            mWallpaperTarget = oldW;
                            mWallpaperTarget = oldW;
                            foundW = oldW;
                            foundI = oldI;
                            mLowerWallpaperTarget = null;
                            mUpperWallpaperTarget = null;
                        } 
                        } 

                        // Now set the upper and lower wallpaper targets
                        // Now set the upper and lower wallpaper targets
                        // correctly, and make sure that we are positioning
                        // correctly, and make sure that we are positioning
                        // the wallpaper below the lower.
                        // the wallpaper below the lower.
                        if (foundI > oldI) {
                        else if (foundI > oldI) {
                            // The new target is on top of the old one.
                            // The new target is on top of the old one.
                            if (DEBUG_WALLPAPER) {
                            if (DEBUG_WALLPAPER) {
                                Slog.v(TAG, "Found target above old target.");
                                Slog.v(TAG, "Found target above old target.");