diff options
Diffstat (limited to 'core')
-rw-r--r-- | core/java/android/view/SurfaceView.java | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/core/java/android/view/SurfaceView.java b/core/java/android/view/SurfaceView.java index 2a3f032..53f0c2e 100644 --- a/core/java/android/view/SurfaceView.java +++ b/core/java/android/view/SurfaceView.java @@ -16,6 +16,7 @@ package android.view; +import android.util.DisplayMetrics; import com.android.internal.view.BaseIWindow; import android.content.Context; @@ -212,6 +213,46 @@ public class SurfaceView extends View { mRequestedVisible = mWindowVisibility && mViewVisibility; updateWindow(false); } + + /** + * This method is not intended for general use. It was created + * temporarily to improve performance of 3D layers in Launcher + * and should be removed and fixed properly. + * + * Do not call this method. Ever. + * + * @hide + */ + protected void showSurface() { + if (mSession != null) { + updateWindow(true); + } + } + + /** + * This method is not intended for general use. It was created + * temporarily to improve performance of 3D layers in Launcher + * and should be removed and fixed properly. + * + * Do not call this method. Ever. + * + * @hide + */ + protected void hideSurface() { + if (mSession != null && mWindow != null) { + mSurfaceLock.lock(); + try { + DisplayMetrics metrics = getResources().getDisplayMetrics(); + mLayout.x = metrics.widthPixels * 3; + mSession.relayout(mWindow, mLayout, mWidth, mHeight, VISIBLE, false, + mWinFrame, mContentInsets, mVisibleInsets, mConfiguration, mSurface); + } catch (RemoteException e) { + // Ignore + } finally { + mSurfaceLock.unlock(); + } + } + } @Override protected void onDetachedFromWindow() { |