summaryrefslogtreecommitdiffstats
path: root/src/com/android
diff options
context:
space:
mode:
authorMichael Jurka <mikejurka@google.com>2012-06-21 09:38:41 -0700
committerMichael Jurka <mikejurka@google.com>2012-06-21 14:08:38 -0700
commit3a0469d1e40459529e2d4d57ebc493f930f7c01a (patch)
treee2addfa92e496d4bfd979fa6a801a7efd4de2a8a /src/com/android
parent915500da4876e97abb07de1dfe23403e9dc27494 (diff)
downloadandroid_packages_apps_Trebuchet-3a0469d1e40459529e2d4d57ebc493f930f7c01a.tar.gz
android_packages_apps_Trebuchet-3a0469d1e40459529e2d4d57ebc493f930f7c01a.tar.bz2
android_packages_apps_Trebuchet-3a0469d1e40459529e2d4d57ebc493f930f7c01a.zip
Remove use of private api ViewGroup.setChildrenLayersEnabled
Change-Id: I877bd84c6846ae232e2877e97de95d9344c13e56
Diffstat (limited to 'src/com/android')
-rw-r--r--src/com/android/launcher2/PagedView.java9
-rw-r--r--src/com/android/launcher2/Workspace.java48
2 files changed, 27 insertions, 30 deletions
diff --git a/src/com/android/launcher2/PagedView.java b/src/com/android/launcher2/PagedView.java
index 8ceac8fe7..4765dae02 100644
--- a/src/com/android/launcher2/PagedView.java
+++ b/src/com/android/launcher2/PagedView.java
@@ -790,20 +790,11 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc
canvas.clipRect(getScrollX(), getScrollY(), getScrollX() + getRight() - getLeft(),
getScrollY() + getBottom() - getTop());
- // On certain graphics drivers, if you draw to a off-screen buffer that's not
- // used, it can lead to poor performance. We were running into this when
- // setChildrenLayersEnabled was called on a CellLayout; that triggered a re-draw
- // of that CellLayout's hardware layer, even if that CellLayout wasn't visible.
- // As a fix, below we set pages that aren't going to be rendered are to be
- // View.INVISIBLE, preventing re-drawing of their hardware layer
for (int i = getChildCount() - 1; i >= 0; i--) {
final View v = getPageAt(i);
if (mForceDrawAllChildrenNextFrame ||
(leftScreen <= i && i <= rightScreen && shouldDrawChild(v))) {
- v.setVisibility(VISIBLE);
drawChild(canvas, v, drawingTime);
- } else {
- v.setVisibility(INVISIBLE);
}
}
mForceDrawAllChildrenNextFrame = false;
diff --git a/src/com/android/launcher2/Workspace.java b/src/com/android/launcher2/Workspace.java
index 4e0c3472d..66facf422 100644
--- a/src/com/android/launcher2/Workspace.java
+++ b/src/com/android/launcher2/Workspace.java
@@ -366,19 +366,9 @@ public class Workspace extends SmoothPagedView
return r;
}
- public void buildPageHardwareLayers() {
- if (getWindowToken() != null) {
- final int childCount = getChildCount();
- for (int i = 0; i < childCount; i++) {
- CellLayout cl = (CellLayout) getChildAt(i);
- cl.getShortcutsAndWidgets().buildLayer();
- }
- }
- }
-
public void onDragStart(DragSource source, Object info, int dragAction) {
mIsDragOccuring = true;
- updateChildrenLayersEnabled();
+ updateChildrenLayersEnabled(false);
mLauncher.lockScreenOrientation();
setChildrenBackgroundAlphaMultipliers(1f);
// Prevent any Un/InstallShortcutReceivers from updating the db while we are dragging
@@ -388,7 +378,7 @@ public class Workspace extends SmoothPagedView
public void onDragEnd() {
mIsDragOccuring = false;
- updateChildrenLayersEnabled();
+ updateChildrenLayersEnabled(false);
mLauncher.unlockScreenOrientation(false);
// Re-enable any Un/InstallShortcutReceiver and now process any queued items
@@ -730,7 +720,7 @@ public class Workspace extends SmoothPagedView
super.onPageBeginMoving();
if (isHardwareAccelerated()) {
- updateChildrenLayersEnabled();
+ updateChildrenLayersEnabled(false);
} else {
if (mNextPage != INVALID_PAGE) {
// we're snapping to a particular screen
@@ -764,7 +754,7 @@ public class Workspace extends SmoothPagedView
super.onPageEndMoving();
if (isHardwareAccelerated()) {
- updateChildrenLayersEnabled();
+ updateChildrenLayersEnabled(false);
} else {
clearChildrenCache();
}
@@ -1370,16 +1360,32 @@ public class Workspace extends SmoothPagedView
}
}
- private void updateChildrenLayersEnabled() {
+
+ private void updateChildrenLayersEnabled(boolean force) {
boolean small = mState == State.SMALL || mIsSwitchingState;
- boolean enableChildrenLayers = small || mAnimatingViewIntoPlace || isPageMoving();
+ boolean enableChildrenLayers = force || small || mAnimatingViewIntoPlace || isPageMoving();
if (enableChildrenLayers != mChildrenLayersEnabled) {
mChildrenLayersEnabled = enableChildrenLayers;
for (int i = 0; i < getPageCount(); i++) {
- ((ViewGroup)getChildAt(i)).setChildrenLayersEnabled(mChildrenLayersEnabled);
+ CellLayout cl = (CellLayout) getChildAt(i);
+ cl.getShortcutsAndWidgets().setLayerType(
+ mChildrenLayersEnabled ? LAYER_TYPE_HARDWARE : LAYER_TYPE_NONE, null);
+ }
+ }
+ }
+
+ public void buildPageHardwareLayers() {
+ // force layers to be enabled just for the call to buildLayer
+ updateChildrenLayersEnabled(true);
+ if (getWindowToken() != null) {
+ final int childCount = getChildCount();
+ for (int i = 0; i < childCount; i++) {
+ CellLayout cl = (CellLayout) getChildAt(i);
+ cl.getShortcutsAndWidgets().buildLayer();
}
}
+ updateChildrenLayersEnabled(false);
}
protected void onWallpaperTap(MotionEvent ev) {
@@ -1540,7 +1546,7 @@ public class Workspace extends SmoothPagedView
if (oldStateIsNormal && stateIsSmall) {
zoomIn = false;
setLayoutScale(finalScaleFactor);
- updateChildrenLayersEnabled();
+ updateChildrenLayersEnabled(false);
} else {
finalBackgroundAlpha = 1.0f;
setLayoutScale(finalScaleFactor);
@@ -1680,7 +1686,7 @@ public class Workspace extends SmoothPagedView
public void onLauncherTransitionEnd(Launcher l, boolean animated, boolean toWorkspace) {
mIsSwitchingState = false;
mWallpaperOffset.setOverrideHorizontalCatchupConstant(false);
- updateChildrenLayersEnabled();
+ updateChildrenLayersEnabled(false);
// The code in getChangeStateAnimation to determine initialAlpha and finalAlpha will ensure
// ensure that only the current page is visible during (and subsequently, after) the
// transition animation. If fade adjacent pages is disabled, then re-enable the page
@@ -2262,7 +2268,7 @@ public class Workspace extends SmoothPagedView
@Override
public void run() {
mAnimatingViewIntoPlace = false;
- updateChildrenLayersEnabled();
+ updateChildrenLayersEnabled(false);
if (finalResizeRunnable != null) {
finalResizeRunnable.run();
}
@@ -3291,7 +3297,7 @@ public class Workspace extends SmoothPagedView
// hardware layers on children are enabled on startup, but should be disabled until
// needed
- updateChildrenLayersEnabled();
+ updateChildrenLayersEnabled(false);
setWallpaperDimension();
}