diff options
author | Winson Chung <winsonc@google.com> | 2010-10-13 18:25:28 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2010-10-13 18:25:29 -0700 |
commit | 82f77e513db994c8f3d692b7e08f0ddb51170ad6 (patch) | |
tree | 07deb3f34b3ecffbfc59e713a2ee7dedbeef3605 | |
parent | fe6bd87881e47b9ff38f58bd083042ae0f6a39d7 (diff) | |
parent | 8e4ec3141515b20fd89ff874fffd4e0aba247719 (diff) | |
download | android_packages_apps_Trebuchet-82f77e513db994c8f3d692b7e08f0ddb51170ad6.tar.gz android_packages_apps_Trebuchet-82f77e513db994c8f3d692b7e08f0ddb51170ad6.tar.bz2 android_packages_apps_Trebuchet-82f77e513db994c8f3d692b7e08f0ddb51170ad6.zip |
Merge "Setting children alpha for widget-customization layout for performance."
-rw-r--r-- | src/com/android/launcher2/CustomizePagedView.java | 23 | ||||
-rw-r--r-- | src/com/android/launcher2/PagedViewWidgetLayout.java | 71 |
2 files changed, 72 insertions, 22 deletions
diff --git a/src/com/android/launcher2/CustomizePagedView.java b/src/com/android/launcher2/CustomizePagedView.java index 93aa10965..6b7aa98cb 100644 --- a/src/com/android/launcher2/CustomizePagedView.java +++ b/src/com/android/launcher2/CustomizePagedView.java @@ -66,27 +66,6 @@ public class CustomizePagedView extends PagedView ApplicationCustomization } - /** - * The linear layout used strictly for the widget tab of the customization tray - */ - private class WidgetLayout extends LinearLayout { - public WidgetLayout(Context context) { - super(context); - } - - @Override - public boolean onTouchEvent(MotionEvent event) { - // We eat up the touch events here, since the PagedView (which uses the same swiping - // touch code as Workspace previously) uses onInterceptTouchEvent() to determine when - // the user is scrolling between pages. This means that if the pages themselves don't - // handle touch events, it gets forwarded up to PagedView itself, and it's own - // onTouchEvent() handling will prevent further intercept touch events from being called - // (it's the same view in that case). This is not ideal, but to prevent more changes, - // we just always mark the touch event as handled. - return super.onTouchEvent(event) || true; - } - } - private static final String TAG = "CustomizeWorkspace"; private static final boolean DEBUG = false; @@ -593,7 +572,7 @@ public class CustomizePagedView extends PagedView removeAllViews(); int numPages = relayoutWidgets(); for (int i = 0; i < numPages; ++i) { - LinearLayout layout = new WidgetLayout(getContext()); + LinearLayout layout = new PagedViewWidgetLayout(getContext()); layout.setGravity(Gravity.CENTER_HORIZONTAL); // Temporary change to prevent the last page from being too small (and items bleeding diff --git a/src/com/android/launcher2/PagedViewWidgetLayout.java b/src/com/android/launcher2/PagedViewWidgetLayout.java new file mode 100644 index 000000000..4666873ce --- /dev/null +++ b/src/com/android/launcher2/PagedViewWidgetLayout.java @@ -0,0 +1,71 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.launcher2; + +import android.content.Context; +import android.util.AttributeSet; +import android.view.MotionEvent; +import android.widget.LinearLayout; + +/** + * The linear layout used strictly for the widget tab of the customization tray + */ +public class PagedViewWidgetLayout extends LinearLayout { + static final String TAG = "PagedViewWidgetLayout"; + + public PagedViewWidgetLayout(Context context) { + this(context, null); + } + + public PagedViewWidgetLayout(Context context, AttributeSet attrs) { + this(context, attrs, 0); + } + + public PagedViewWidgetLayout(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + } + + @Override + public boolean onTouchEvent(MotionEvent event) { + // We eat up the touch events here, since the PagedView (which uses the same swiping + // touch code as Workspace previously) uses onInterceptTouchEvent() to determine when + // the user is scrolling between pages. This means that if the pages themselves don't + // handle touch events, it gets forwarded up to PagedView itself, and it's own + // onTouchEvent() handling will prevent further intercept touch events from being called + // (it's the same view in that case). This is not ideal, but to prevent more changes, + // we just always mark the touch event as handled. + return super.onTouchEvent(event) || true; + } + + @Override + protected boolean onSetAlpha(int alpha) { + return true; + } + + @Override + public void setAlpha(float alpha) { + setChildrenAlpha(alpha); + super.setAlpha(alpha); + } + + private void setChildrenAlpha(float alpha) { + final int childCount = getChildCount(); + for (int i = 0; i < childCount; i++) { + getChildAt(i).setAlpha(alpha); + } + } +} |