Loading packages/SystemUI/src/com/android/systemui/ImageWallpaper.java +4 −4 Original line number Diff line number Diff line Loading @@ -47,7 +47,7 @@ public class ImageWallpaper extends WallpaperService { // This is to avoid destroying then recreating render context in a very short time. private static final int DELAY_FINISH_RENDERING = 1000; private static final int INTERVAL_WAIT_FOR_RENDERING = 100; private static final int PATIENCE_WAIT_FOR_RENDERING = 5; private static final int PATIENCE_WAIT_FOR_RENDERING = 10; private HandlerThread mWorker; @Override Loading Loading @@ -124,10 +124,10 @@ public class ImageWallpaper extends WallpaperService { @Override public void onAmbientModeChanged(boolean inAmbientMode, long animationDuration) { long duration = mNeedTransition || animationDuration != 0 ? animationDuration : 0; if (!mNeedTransition) return; mWorker.getThreadHandler().post( () -> mRenderer.updateAmbientMode(inAmbientMode, duration)); if (inAmbientMode && duration == 0) { () -> mRenderer.updateAmbientMode(inAmbientMode, animationDuration)); if (inAmbientMode && animationDuration == 0) { // This means that we are transiting from home to aod, to avoid // race condition between window visibility and transition, // we don't return until the transition is finished. See b/136643341. Loading packages/SystemUI/src/com/android/systemui/glwallpaper/ImageRevealHelper.java +8 −9 Original line number Diff line number Diff line Loading @@ -65,7 +65,7 @@ class ImageRevealHelper { @Override public void onAnimationStart(Animator animation) { if (mRevealListener != null) { mRevealListener.onRevealStart(); mRevealListener.onRevealStart(true /* animate */); } } }); Loading @@ -73,7 +73,7 @@ class ImageRevealHelper { private void animate() { mAnimator.cancel(); mAnimator.setFloatValues(mReveal, !mAwake ? MIN_REVEAL : MAX_REVEAL); mAnimator.setFloatValues(mReveal, mAwake ? MAX_REVEAL : MIN_REVEAL); mAnimator.start(); } Loading @@ -84,12 +84,11 @@ class ImageRevealHelper { void updateAwake(boolean awake, long duration) { mAwake = awake; mAnimator.setDuration(duration); if (!mAwake && duration == 0) { // We are transiting from home to aod, // since main thread is waiting for rendering finished, we only need draw // the last state directly, which is a black screen. mReveal = MIN_REVEAL; mRevealListener.onRevealStart(); if (duration == 0) { // We are transiting from home to aod or aod to home directly, // we don't need to do transition in these cases. mReveal = mAwake ? MAX_REVEAL : MIN_REVEAL; mRevealListener.onRevealStart(false /* animate */); mRevealListener.onRevealStateChanged(); mRevealListener.onRevealEnd(); } else { Loading @@ -110,7 +109,7 @@ class ImageRevealHelper { /** * Called back while reveal starts. */ void onRevealStart(); void onRevealStart(boolean animate); /** * Called back while reveal ends. Loading packages/SystemUI/src/com/android/systemui/glwallpaper/ImageWallpaperRenderer.java +22 −10 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import static android.opengl.GLES20.glViewport; import android.app.WallpaperManager; import android.content.Context; import android.content.res.Configuration; import android.graphics.Bitmap; import android.graphics.Rect; import android.util.Log; Loading Loading @@ -70,7 +71,14 @@ public class ImageWallpaperRenderer implements GLWallpaperRenderer, DisplayInfo displayInfo = new DisplayInfo(); WindowManager wm = context.getSystemService(WindowManager.class); wm.getDefaultDisplay().getDisplayInfo(displayInfo); // We only do transition in portrait currently, b/137962047. int orientation = context.getResources().getConfiguration().orientation; if (orientation == Configuration.ORIENTATION_PORTRAIT) { mScissor = new Rect(0, 0, displayInfo.logicalWidth, displayInfo.logicalHeight); } else { mScissor = new Rect(0, 0, displayInfo.logicalHeight, displayInfo.logicalWidth); } mProxy = proxy; mProgram = new ImageGLProgram(context); Loading Loading @@ -179,20 +187,24 @@ public class ImageWallpaperRenderer implements GLWallpaperRenderer, } @Override public void onRevealStart() { public void onRevealStart(boolean animate) { if (animate) { mScissorMode = true; // Use current display area of texture. mWallpaper.adjustTextureCoordinates(mSurfaceSize, mScissor, mXOffset, mYOffset); } mProxy.preRender(); } @Override public void onRevealEnd() { if (mScissorMode) { mScissorMode = false; // reset texture coordinates to use full texture. mWallpaper.adjustTextureCoordinates(null, null, 0, 0); // We need draw full texture back before finishing render. mProxy.requestRender(); } mProxy.postRender(); } Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +4 −1 Original line number Diff line number Diff line Loading @@ -482,9 +482,12 @@ public class StatusBar extends SystemUI implements DemoMode, WallpaperInfo info = wallpaperManager.getWallpaperInfo(UserHandle.USER_CURRENT); final boolean deviceSupportsAodWallpaper = mContext.getResources().getBoolean( com.android.internal.R.bool.config_dozeSupportsAodWallpaper); final boolean imageWallpaperInAmbient = !DozeParameters.getInstance(mContext).getDisplayNeedsBlanking(); // If WallpaperInfo is null, it must be ImageWallpaper. final boolean supportsAmbientMode = deviceSupportsAodWallpaper && (info == null || info.supportsAmbientMode()); && ((info == null && imageWallpaperInAmbient) || (info != null && info.supportsAmbientMode())); mStatusBarWindowController.setWallpaperSupportsAmbientMode(supportsAmbientMode); mScrimController.setWallpaperSupportsAmbientMode(supportsAmbientMode); Loading Loading
packages/SystemUI/src/com/android/systemui/ImageWallpaper.java +4 −4 Original line number Diff line number Diff line Loading @@ -47,7 +47,7 @@ public class ImageWallpaper extends WallpaperService { // This is to avoid destroying then recreating render context in a very short time. private static final int DELAY_FINISH_RENDERING = 1000; private static final int INTERVAL_WAIT_FOR_RENDERING = 100; private static final int PATIENCE_WAIT_FOR_RENDERING = 5; private static final int PATIENCE_WAIT_FOR_RENDERING = 10; private HandlerThread mWorker; @Override Loading Loading @@ -124,10 +124,10 @@ public class ImageWallpaper extends WallpaperService { @Override public void onAmbientModeChanged(boolean inAmbientMode, long animationDuration) { long duration = mNeedTransition || animationDuration != 0 ? animationDuration : 0; if (!mNeedTransition) return; mWorker.getThreadHandler().post( () -> mRenderer.updateAmbientMode(inAmbientMode, duration)); if (inAmbientMode && duration == 0) { () -> mRenderer.updateAmbientMode(inAmbientMode, animationDuration)); if (inAmbientMode && animationDuration == 0) { // This means that we are transiting from home to aod, to avoid // race condition between window visibility and transition, // we don't return until the transition is finished. See b/136643341. Loading
packages/SystemUI/src/com/android/systemui/glwallpaper/ImageRevealHelper.java +8 −9 Original line number Diff line number Diff line Loading @@ -65,7 +65,7 @@ class ImageRevealHelper { @Override public void onAnimationStart(Animator animation) { if (mRevealListener != null) { mRevealListener.onRevealStart(); mRevealListener.onRevealStart(true /* animate */); } } }); Loading @@ -73,7 +73,7 @@ class ImageRevealHelper { private void animate() { mAnimator.cancel(); mAnimator.setFloatValues(mReveal, !mAwake ? MIN_REVEAL : MAX_REVEAL); mAnimator.setFloatValues(mReveal, mAwake ? MAX_REVEAL : MIN_REVEAL); mAnimator.start(); } Loading @@ -84,12 +84,11 @@ class ImageRevealHelper { void updateAwake(boolean awake, long duration) { mAwake = awake; mAnimator.setDuration(duration); if (!mAwake && duration == 0) { // We are transiting from home to aod, // since main thread is waiting for rendering finished, we only need draw // the last state directly, which is a black screen. mReveal = MIN_REVEAL; mRevealListener.onRevealStart(); if (duration == 0) { // We are transiting from home to aod or aod to home directly, // we don't need to do transition in these cases. mReveal = mAwake ? MAX_REVEAL : MIN_REVEAL; mRevealListener.onRevealStart(false /* animate */); mRevealListener.onRevealStateChanged(); mRevealListener.onRevealEnd(); } else { Loading @@ -110,7 +109,7 @@ class ImageRevealHelper { /** * Called back while reveal starts. */ void onRevealStart(); void onRevealStart(boolean animate); /** * Called back while reveal ends. Loading
packages/SystemUI/src/com/android/systemui/glwallpaper/ImageWallpaperRenderer.java +22 −10 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import static android.opengl.GLES20.glViewport; import android.app.WallpaperManager; import android.content.Context; import android.content.res.Configuration; import android.graphics.Bitmap; import android.graphics.Rect; import android.util.Log; Loading Loading @@ -70,7 +71,14 @@ public class ImageWallpaperRenderer implements GLWallpaperRenderer, DisplayInfo displayInfo = new DisplayInfo(); WindowManager wm = context.getSystemService(WindowManager.class); wm.getDefaultDisplay().getDisplayInfo(displayInfo); // We only do transition in portrait currently, b/137962047. int orientation = context.getResources().getConfiguration().orientation; if (orientation == Configuration.ORIENTATION_PORTRAIT) { mScissor = new Rect(0, 0, displayInfo.logicalWidth, displayInfo.logicalHeight); } else { mScissor = new Rect(0, 0, displayInfo.logicalHeight, displayInfo.logicalWidth); } mProxy = proxy; mProgram = new ImageGLProgram(context); Loading Loading @@ -179,20 +187,24 @@ public class ImageWallpaperRenderer implements GLWallpaperRenderer, } @Override public void onRevealStart() { public void onRevealStart(boolean animate) { if (animate) { mScissorMode = true; // Use current display area of texture. mWallpaper.adjustTextureCoordinates(mSurfaceSize, mScissor, mXOffset, mYOffset); } mProxy.preRender(); } @Override public void onRevealEnd() { if (mScissorMode) { mScissorMode = false; // reset texture coordinates to use full texture. mWallpaper.adjustTextureCoordinates(null, null, 0, 0); // We need draw full texture back before finishing render. mProxy.requestRender(); } mProxy.postRender(); } Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +4 −1 Original line number Diff line number Diff line Loading @@ -482,9 +482,12 @@ public class StatusBar extends SystemUI implements DemoMode, WallpaperInfo info = wallpaperManager.getWallpaperInfo(UserHandle.USER_CURRENT); final boolean deviceSupportsAodWallpaper = mContext.getResources().getBoolean( com.android.internal.R.bool.config_dozeSupportsAodWallpaper); final boolean imageWallpaperInAmbient = !DozeParameters.getInstance(mContext).getDisplayNeedsBlanking(); // If WallpaperInfo is null, it must be ImageWallpaper. final boolean supportsAmbientMode = deviceSupportsAodWallpaper && (info == null || info.supportsAmbientMode()); && ((info == null && imageWallpaperInAmbient) || (info != null && info.supportsAmbientMode())); mStatusBarWindowController.setWallpaperSupportsAmbientMode(supportsAmbientMode); mScrimController.setWallpaperSupportsAmbientMode(supportsAmbientMode); Loading