diff options
| author | Romain Guy <romainguy@google.com> | 2010-06-08 13:00:30 -0700 |
|---|---|---|
| committer | Android Git Automerger <android-git-automerger@android.com> | 2010-06-08 13:00:30 -0700 |
| commit | 804d04969da91b45ee31e8d290de3ede7650fe48 (patch) | |
| tree | b13ad68a21510fc82529b02fd09071c16369c428 /core/java/android/view/SurfaceView.java | |
| parent | 9ac3743dbdf729bf543d5e72628460dd51802f5e (diff) | |
| parent | 71d73a0dfc110d0bdfc1b7ba385db3e2cfe007e5 (diff) | |
am 71d73a0d: Merge "Add a method to hide/show a SurfaceView\'s surface." into froyo
Merge commit '71d73a0dfc110d0bdfc1b7ba385db3e2cfe007e5' into kraken
* commit '71d73a0dfc110d0bdfc1b7ba385db3e2cfe007e5':
Add a method to hide/show a SurfaceView's surface.
Diffstat (limited to 'core/java/android/view/SurfaceView.java')
| -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 cc30d71de313..0f0cf602727f 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; @@ -219,6 +220,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() { |
