diff options
author | Mark Brophy <mbrophy@google.com> | 2014-08-11 12:46:14 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2014-08-11 12:46:14 +0000 |
commit | 24f642634719f106c95a9cc19a7b80c0ad4d6c68 (patch) | |
tree | 6e192f4ba72f76d3e67d86299ccad2d570653385 | |
parent | d80f8258a627b5a67da210595f939465d8aa3327 (diff) | |
parent | 5337aea1536c11e5bfef49a14297fd4649baa3a3 (diff) | |
download | android_packages_apps_Trebuchet-24f642634719f106c95a9cc19a7b80c0ad4d6c68.tar.gz android_packages_apps_Trebuchet-24f642634719f106c95a9cc19a7b80c0ad4d6c68.tar.bz2 android_packages_apps_Trebuchet-24f642634719f106c95a9cc19a7b80c0ad4d6c68.zip |
am 5337aea1: Merge "Revert "Updating the widget tray"" into ub-now-porkchop
* commit '5337aea1536c11e5bfef49a14297fd4649baa3a3':
Revert "Updating the widget tray"
-rw-r--r-- | res/drawable-hdpi/quantum_panel.9.png | bin | 636 -> 557 bytes | |||
-rw-r--r-- | res/drawable-hdpi/quantum_panel_dark.9.png | bin | 713 -> 0 bytes | |||
-rw-r--r-- | res/drawable-mdpi/quantum_panel.9.png | bin | 438 -> 406 bytes | |||
-rw-r--r-- | res/drawable-mdpi/quantum_panel_dark.9.png | bin | 494 -> 0 bytes | |||
-rw-r--r-- | res/drawable-xhdpi/quantum_panel.9.png | bin | 908 -> 764 bytes | |||
-rw-r--r-- | res/drawable-xhdpi/quantum_panel_dark.9.png | bin | 951 -> 0 bytes | |||
-rw-r--r-- | res/drawable-xxhdpi/quantum_panel.9.png | bin | 1380 -> 1073 bytes | |||
-rw-r--r-- | res/drawable-xxhdpi/quantum_panel_dark.9.png | bin | 1425 -> 0 bytes | |||
-rw-r--r-- | res/layout/apps_customize_widget.xml | 51 | ||||
-rw-r--r-- | res/values/attrs.xml | 5 | ||||
-rw-r--r-- | res/values/colors.xml | 3 | ||||
-rw-r--r-- | res/values/dimens.xml | 7 | ||||
-rw-r--r-- | src/com/android/launcher3/AppsCustomizePagedView.java | 42 | ||||
-rw-r--r-- | src/com/android/launcher3/Launcher.java | 87 | ||||
-rw-r--r-- | src/com/android/launcher3/PagedView.java | 13 | ||||
-rw-r--r-- | src/com/android/launcher3/PagedViewGridLayout.java | 12 | ||||
-rw-r--r-- | src/com/android/launcher3/Workspace.java | 10 |
17 files changed, 110 insertions, 120 deletions
diff --git a/res/drawable-hdpi/quantum_panel.9.png b/res/drawable-hdpi/quantum_panel.9.png Binary files differindex a005e0baa..d86d7bc1d 100644 --- a/res/drawable-hdpi/quantum_panel.9.png +++ b/res/drawable-hdpi/quantum_panel.9.png diff --git a/res/drawable-hdpi/quantum_panel_dark.9.png b/res/drawable-hdpi/quantum_panel_dark.9.png Binary files differdeleted file mode 100644 index 057efd157..000000000 --- a/res/drawable-hdpi/quantum_panel_dark.9.png +++ /dev/null diff --git a/res/drawable-mdpi/quantum_panel.9.png b/res/drawable-mdpi/quantum_panel.9.png Binary files differindex 785f573ee..061c80adb 100644 --- a/res/drawable-mdpi/quantum_panel.9.png +++ b/res/drawable-mdpi/quantum_panel.9.png diff --git a/res/drawable-mdpi/quantum_panel_dark.9.png b/res/drawable-mdpi/quantum_panel_dark.9.png Binary files differdeleted file mode 100644 index 7837e4808..000000000 --- a/res/drawable-mdpi/quantum_panel_dark.9.png +++ /dev/null diff --git a/res/drawable-xhdpi/quantum_panel.9.png b/res/drawable-xhdpi/quantum_panel.9.png Binary files differindex 5726fd215..8605cfd26 100644 --- a/res/drawable-xhdpi/quantum_panel.9.png +++ b/res/drawable-xhdpi/quantum_panel.9.png diff --git a/res/drawable-xhdpi/quantum_panel_dark.9.png b/res/drawable-xhdpi/quantum_panel_dark.9.png Binary files differdeleted file mode 100644 index 8944a8f98..000000000 --- a/res/drawable-xhdpi/quantum_panel_dark.9.png +++ /dev/null diff --git a/res/drawable-xxhdpi/quantum_panel.9.png b/res/drawable-xxhdpi/quantum_panel.9.png Binary files differindex 035cdc4ad..9a1a79c7b 100644 --- a/res/drawable-xxhdpi/quantum_panel.9.png +++ b/res/drawable-xxhdpi/quantum_panel.9.png diff --git a/res/drawable-xxhdpi/quantum_panel_dark.9.png b/res/drawable-xxhdpi/quantum_panel_dark.9.png Binary files differdeleted file mode 100644 index b74f1a65c..000000000 --- a/res/drawable-xxhdpi/quantum_panel_dark.9.png +++ /dev/null diff --git a/res/layout/apps_customize_widget.xml b/res/layout/apps_customize_widget.xml index e299b32b0..7c98b4a9b 100644 --- a/res/layout/apps_customize_widget.xml +++ b/res/layout/apps_customize_widget.xml @@ -25,45 +25,24 @@ android:background="@drawable/focusable_view_bg" android:focusable="true"> - <LinearLayout - android:orientation="horizontal" + <!-- The preview of the widget or shortcut. --> + <com.android.launcher3.PagedViewWidgetImageView + android:id="@+id/widget_preview" + style="@style/PagedViewWidgetImageView" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_weight="1"> - <FrameLayout - android:id="@+id/left_border" - android:layout_width="1dp" - android:layout_height="match_parent" - android:background="@color/widget_text_panel" - android:visibility="gone" /> - - <!-- The preview of the widget or shortcut. --> - <com.android.launcher3.PagedViewWidgetImageView - android:id="@+id/widget_preview" - style="@style/PagedViewWidgetImageView" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:layout_weight="1" - android:paddingTop="@dimen/app_widget_preview_padding_top" - android:paddingEnd="@dimen/app_widget_preview_padding_right" - android:paddingRight="@dimen/app_widget_preview_padding_right" - android:scaleType="matrix" /> - <FrameLayout - android:id="@+id/right_border" - android:layout_width="1dp" - android:layout_height="match_parent" - android:background="@color/widget_text_panel" - android:visibility="gone" /> - </LinearLayout> - + android:layout_weight="1" + android:paddingTop="@dimen/app_widget_preview_padding_top" + android:paddingEnd="@dimen/app_widget_preview_padding_right" + android:paddingRight="@dimen/app_widget_preview_padding_right" + android:scaleType="matrix" + android:background="@drawable/screenpanel" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" - android:paddingTop="@dimen/app_widget_preview_label_vertical_padding" - android:paddingBottom="@dimen/app_widget_preview_label_vertical_padding" - android:paddingLeft="@dimen/app_widget_preview_label_horizontal_padding" - android:paddingRight="@dimen/app_widget_preview_label_horizontal_padding" - android:background="@color/widget_text_panel" + android:layout_marginTop="@dimen/app_widget_preview_label_margin_top" + android:layout_marginStart="@dimen/app_widget_preview_label_margin_left" + android:layout_marginEnd="@dimen/app_widget_preview_label_margin_right" android:orientation="horizontal"> <!-- The name of the widget. --> <TextView xmlns:android="http://schemas.android.com/apk/res/android" @@ -77,7 +56,7 @@ android:fadingEdge="horizontal" android:textColor="#FFFFFFFF" - android:textSize="12sp" + android:textSize="13sp" android:textAlignment="viewStart" android:fontFamily="sans-serif-condensed" android:shadowRadius="2.0" @@ -94,7 +73,7 @@ android:layout_weight="0" android:gravity="start" - android:textColor="#FFFFFFFF" + android:textColor="#FFAAAAAA" android:textSize="12sp" android:fontFamily="sans-serif-condensed" android:shadowRadius="2.0" diff --git a/res/values/attrs.xml b/res/values/attrs.xml index 12fa3cd2b..f3bfcec61 100644 --- a/res/values/attrs.xml +++ b/res/values/attrs.xml @@ -98,6 +98,11 @@ <!-- A spacing override for the icons within a page --> <attr name="pageLayoutWidthGap" format="dimension" /> <attr name="pageLayoutHeightGap" format="dimension" /> + <!-- The padding of the pages that are dynamically created per page --> + <attr name="pageLayoutPaddingTop" format="dimension" /> + <attr name="pageLayoutPaddingBottom" format="dimension" /> + <attr name="pageLayoutPaddingLeft" format="dimension" /> + <attr name="pageLayoutPaddingRight" format="dimension" /> <!-- The page indicator for this workspace --> <attr name="pageIndicator" format="reference" /> diff --git a/res/values/colors.xml b/res/values/colors.xml index 41f38921f..27a5b61ee 100644 --- a/res/values/colors.xml +++ b/res/values/colors.xml @@ -36,7 +36,6 @@ <color name="quantum_panel_text_shadow_color">#FFC4C4C4</color> <color name="folder_items_glow_color">#FFCCCCCC</color> <color name="outline_color">#FFFFFFFF</color> - <color name="widget_text_panel">#FF374248</color> - + <color name="first_run_cling_circle_background_color">#64b1ea</color> </resources> diff --git a/res/values/dimens.xml b/res/values/dimens.xml index 893d7c0db..8e561cfc0 100644 --- a/res/values/dimens.xml +++ b/res/values/dimens.xml @@ -62,7 +62,7 @@ <dimen name="apps_customize_tab_bar_height">52dp</dimen> <dimen name="apps_customize_tab_bar_margin_top">0dp</dimen> <dimen name="app_icon_size">48dp</dimen> - <dimen name="apps_customize_horizontal_padding">0dp</dimen> + <dimen name="apps_customize_horizontal_padding">4dp</dimen> <!-- The AppsCustomize page indicator --> <dimen name="apps_customize_page_indicator_height">12dp</dimen> @@ -89,8 +89,9 @@ <dimen name="app_widget_preview_padding_left">16dp</dimen> <dimen name="app_widget_preview_padding_right">16dp</dimen> <dimen name="app_widget_preview_padding_top">32dp</dimen> - <dimen name="app_widget_preview_label_vertical_padding">8dp</dimen> - <dimen name="app_widget_preview_label_horizontal_padding">8dp</dimen> + <dimen name="app_widget_preview_label_margin_top">4dp</dimen> + <dimen name="app_widget_preview_label_margin_left">2dp</dimen> + <dimen name="app_widget_preview_label_margin_right">2dp</dimen> <!-- Padding applied to shortcut previews --> <dimen name="shortcut_preview_padding_left">0dp</dimen> diff --git a/src/com/android/launcher3/AppsCustomizePagedView.java b/src/com/android/launcher3/AppsCustomizePagedView.java index b98a39196..7ab31319f 100644 --- a/src/com/android/launcher3/AppsCustomizePagedView.java +++ b/src/com/android/launcher3/AppsCustomizePagedView.java @@ -185,6 +185,7 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen // Dimens private int mContentWidth, mContentHeight; private int mWidgetCountX, mWidgetCountY; + private int mWidgetWidthGap, mWidgetHeightGap; private PagedViewCellLayout mWidgetSpacingLayout; private int mNumAppsPages; private int mNumWidgetPages; @@ -196,7 +197,7 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen private static float TRANSITION_SCALE_FACTOR = 0.74f; private static float TRANSITION_PIVOT = 0.65f; private static float TRANSITION_MAX_ROTATION = 22; - private static final boolean PERFORM_OVERSCROLL_ROTATION = false; + private static final boolean PERFORM_OVERSCROLL_ROTATION = true; private AccelerateInterpolator mAlphaInterpolator = new AccelerateInterpolator(0.9f); private DecelerateInterpolator mLeftScreenAlphaInterpolator = new DecelerateInterpolator(4); @@ -244,6 +245,7 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.AppsCustomizePagedView, 0, 0); LauncherAppState app = LauncherAppState.getInstance(); DeviceProfile grid = app.getDynamicGrid().getDeviceProfile(); + mWidgetWidthGap = mWidgetHeightGap = grid.edgeMarginPx; mWidgetCountX = a.getInt(R.styleable.AppsCustomizePagedView_widgetCountX, 2); mWidgetCountY = a.getInt(R.styleable.AppsCustomizePagedView_widgetCountY, 2); mClingFocusedX = a.getInt(R.styleable.AppsCustomizePagedView_clingFocusedX, 0); @@ -283,9 +285,8 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen void setAllAppsPadding(Rect r) { mAllAppsPadding.set(r); } - void setWidgetsPageIndicatorPadding(int pageIndicatorHeight) { - setPadding(getPaddingLeft(), getPaddingTop(), getPaddingRight(), pageIndicatorHeight); + mPageLayoutPaddingBottom = pageIndicatorHeight; } WidgetPreviewLoader getWidgetPreviewLoader() { @@ -364,6 +365,8 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen // use for each page LauncherAppState app = LauncherAppState.getInstance(); DeviceProfile grid = app.getDynamicGrid().getDeviceProfile(); + mWidgetSpacingLayout.setPadding(mPageLayoutPaddingLeft, mPageLayoutPaddingTop, + mPageLayoutPaddingRight, mPageLayoutPaddingBottom); mCellCountX = (int) grid.allAppsNumCols; mCellCountY = (int) grid.allAppsNumRows; updatePageCounts(); @@ -999,9 +1002,11 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen setVisibilityOnChildren(layout, View.GONE); int widthSpec = MeasureSpec.makeMeasureSpec(mContentWidth, MeasureSpec.AT_MOST); int heightSpec = MeasureSpec.makeMeasureSpec(mContentHeight, MeasureSpec.AT_MOST); + layout.setMinimumWidth(getPageContentWidth()); layout.measure(widthSpec, heightSpec); - Drawable bg = getContext().getDrawable(R.drawable.quantum_panel); + Resources res = getContext().getResources(); + Drawable bg = res.getDrawable(R.drawable.quantum_panel); if (bg != null) { layout.setBackground(bg); bg.setVisible(mPageBackgroundsVisible, false); @@ -1163,23 +1168,21 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen // immediately after syncing, we don't have a proper width. int widthSpec = MeasureSpec.makeMeasureSpec(mContentWidth, MeasureSpec.AT_MOST); int heightSpec = MeasureSpec.makeMeasureSpec(mContentHeight, MeasureSpec.AT_MOST); - layout.setBackground(getContext().getDrawable(R.drawable.quantum_panel_dark)); + layout.setMinimumWidth(getPageContentWidth()); layout.measure(widthSpec, heightSpec); } public void syncWidgetPageItems(final int page, final boolean immediate) { int numItemsPerPage = mWidgetCountX * mWidgetCountY; - final PagedViewGridLayout layout = (PagedViewGridLayout) getPageAt(page); - // Calculate the dimensions of each cell we are giving to each widget final ArrayList<Object> items = new ArrayList<Object>(); - int contentWidth = mContentWidth - getPaddingLeft() - getPaddingRight() - - layout.getPaddingLeft() - layout.getPaddingRight(); - final int cellWidth = contentWidth / mWidgetCountX; - int contentHeight = mContentHeight - getPaddingTop() - getPaddingBottom() - - layout.getPaddingTop() - layout.getPaddingBottom(); - final int cellHeight = contentHeight / mWidgetCountY; + int contentWidth = mContentWidth; + final int cellWidth = ((contentWidth - mPageLayoutPaddingLeft - mPageLayoutPaddingRight + - ((mWidgetCountX - 1) * mWidgetWidthGap)) / mWidgetCountX); + int contentHeight = mContentHeight; + final int cellHeight = ((contentHeight - mPageLayoutPaddingTop - mPageLayoutPaddingBottom + - ((mWidgetCountY - 1) * mWidgetHeightGap)) / mWidgetCountY); // Prepare the set of widgets to load previews for in the background int offset = page * numItemsPerPage; @@ -1188,6 +1191,7 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen } // Prepopulate the pages with the other widget info, and fill in the previews later + final PagedViewGridLayout layout = (PagedViewGridLayout) getPageAt(page); layout.setColumnCount(layout.getCellCountX()); for (int i = 0; i < items.size(); ++i) { Object rawInfo = items.get(i); @@ -1228,22 +1232,14 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen // Layout each widget int ix = i % mWidgetCountX; int iy = i / mWidgetCountX; - - if (ix > 0) { - View border = widget.findViewById(R.id.left_border); - border.setVisibility(View.VISIBLE); - } - if (ix < mWidgetCountX - 1) { - View border = widget.findViewById(R.id.right_border); - border.setVisibility(View.VISIBLE); - } - GridLayout.LayoutParams lp = new GridLayout.LayoutParams( GridLayout.spec(iy, GridLayout.START), GridLayout.spec(ix, GridLayout.TOP)); lp.width = cellWidth; lp.height = cellHeight; lp.setGravity(Gravity.TOP | Gravity.START); + if (ix > 0) lp.leftMargin = mWidgetWidthGap; + if (iy > 0) lp.topMargin = mWidgetHeightGap; layout.addView(widget, lp); } diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index 5eedc8a3a..9e176f076 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -3248,12 +3248,6 @@ public class Launcher extends Activity final View page = content.getPageAt(content.getCurrentPage()); final View revealView = toView.findViewById(R.id.fake_page); - if (contentType == AppsCustomizePagedView.ContentType.Widgets) { - revealView.setBackground(res.getDrawable(R.drawable.quantum_panel_dark)); - } else { - revealView.setBackground(res.getDrawable(R.drawable.quantum_panel)); - } - // Hide the real page background, and swap in the fake one revealView.setVisibility(View.VISIBLE); content.setPageBackgroundsVisible(false); @@ -3276,27 +3270,24 @@ public class Launcher extends Activity mStateAnimation.play(panelAlphaAndDrift); - if (page != null) { - page.setVisibility(View.VISIBLE); - page.setLayerType(View.LAYER_TYPE_HARDWARE, null); - - ObjectAnimator pageDrift = ObjectAnimator.ofFloat(page, "translationY", yDrift, 0); - pageDrift.setDuration(revealDuration); - pageDrift.setInterpolator(new LogDecelerateInterpolator(100, 0)); - mStateAnimation.play(pageDrift); - - // TODO (adamcohen): remove this 0.01f hack once fw is fixed - // it's there to work around a framework bug (16918357) - page.setAlpha(0.01f); - ObjectAnimator itemsAlpha = ObjectAnimator.ofFloat(page, "alpha", 0.01f, 1f); - itemsAlpha.setDuration(revealDuration); - itemsAlpha.setInterpolator(new AccelerateInterpolator(1.5f)); - itemsAlpha.setStartDelay(itemsAlphaStagger); - mStateAnimation.play(itemsAlpha); - } + page.setVisibility(View.VISIBLE); + page.setLayerType(View.LAYER_TYPE_HARDWARE, null); - View pageIndicators = toView.findViewById(R.id.apps_customize_page_indicator); - pageIndicators.setAlpha(0.01f); + ObjectAnimator pageDrift = ObjectAnimator.ofFloat(page, "translationY", yDrift, 0); + pageDrift.setDuration(revealDuration); + pageDrift.setInterpolator(new LogDecelerateInterpolator(100, 0)); + mStateAnimation.play(pageDrift); + + // TODO (adamcohen): remove this 0.01f hack once fw is fixed + // it's there to work around a framework bug (16918357) + page.setAlpha(0.01f); + ObjectAnimator itemsAlpha = ObjectAnimator.ofFloat(page, "alpha", 0.01f, 1f); + itemsAlpha.setDuration(revealDuration); + itemsAlpha.setInterpolator(new AccelerateInterpolator(1.5f)); + itemsAlpha.setStartDelay(itemsAlphaStagger); + mStateAnimation.play(itemsAlpha); + + View pageIndicators = fromView.findViewById(R.id.apps_customize_page_indicator); ObjectAnimator indicatorsAlpha = ObjectAnimator.ofFloat(pageIndicators, "alpha", 1f); indicatorsAlpha.setDuration(revealDuration); @@ -3319,9 +3310,7 @@ public class Launcher extends Activity revealView.setVisibility(View.INVISIBLE); revealView.setLayerType(View.LAYER_TYPE_NONE, null); - if (page != null) { - page.setLayerType(View.LAYER_TYPE_NONE, null); - } + page.setLayerType(View.LAYER_TYPE_NONE, null); content.setPageBackgroundsVisible(true); // Hide the search bar @@ -3450,13 +3439,6 @@ public class Launcher extends Activity final View page = content.getPageAt(content.getNextPage()); final View revealView = fromView.findViewById(R.id.fake_page); - AppsCustomizePagedView.ContentType contentType = content.getContentType(); - if (contentType == AppsCustomizePagedView.ContentType.Widgets) { - revealView.setBackground(res.getDrawable(R.drawable.quantum_panel_dark)); - } else { - revealView.setBackground(res.getDrawable(R.drawable.quantum_panel)); - } - int width = revealView.getMeasuredWidth(); int height = revealView.getMeasuredHeight(); float revealRadius = (float) Math.sqrt((width * width) / 4 + (height * height) / 4); @@ -3471,7 +3453,7 @@ public class Launcher extends Activity PropertyValuesHolder panelAlpha = PropertyValuesHolder.ofFloat(View.ALPHA, 1f, 0f); PropertyValuesHolder panelDrift = - PropertyValuesHolder.ofFloat("translationY", 0, yDrift); + PropertyValuesHolder.ofFloat(View.TRANSLATION_Y, 0, yDrift); ObjectAnimator panelAlphaAndDrift = ObjectAnimator.ofPropertyValuesHolder(revealView, panelAlpha, panelDrift); panelAlphaAndDrift.setDuration(revealDuration); @@ -3481,26 +3463,23 @@ public class Launcher extends Activity mStateAnimation.play(panelAlphaAndDrift); - if (page != null) { - page.setLayerType(View.LAYER_TYPE_HARDWARE, null); + page.setLayerType(View.LAYER_TYPE_HARDWARE, null); - ObjectAnimator pageDrift = ObjectAnimator.ofFloat(page, "translationY", 0, yDrift); - pageDrift.setDuration(revealDuration); - pageDrift.setInterpolator(new LogDecelerateInterpolator(100, 0)); - pageDrift.setStartDelay(itemsAlphaStagger); - mStateAnimation.play(pageDrift); + ObjectAnimator pageDrift = ObjectAnimator.ofFloat(page, View.TRANSLATION_Y, 0, yDrift); + pageDrift.setDuration(revealDuration); + pageDrift.setInterpolator(new LogDecelerateInterpolator(100, 0)); + pageDrift.setStartDelay(itemsAlphaStagger); + mStateAnimation.play(pageDrift); - page.setAlpha(1f); - ObjectAnimator itemsAlpha = ObjectAnimator.ofFloat(page, View.ALPHA, 1f, 0f); - itemsAlpha.setDuration(revealDuration); - itemsAlpha.setInterpolator(new LogDecelerateInterpolator(100, 0)); - mStateAnimation.play(itemsAlpha); - } + page.setAlpha(1f); + ObjectAnimator itemsAlpha = ObjectAnimator.ofFloat(page, View.ALPHA, 1f, 0f); + itemsAlpha.setDuration(revealDuration); + itemsAlpha.setInterpolator(new LogDecelerateInterpolator(100, 0)); + mStateAnimation.play(itemsAlpha); View pageIndicators = fromView.findViewById(R.id.apps_customize_page_indicator); - pageIndicators.setAlpha(1f); ObjectAnimator indicatorsAlpha = - ObjectAnimator.ofFloat(pageIndicators, "alpha", 0f); + ObjectAnimator.ofFloat(pageIndicators, View.ALPHA, 0f); indicatorsAlpha.setDuration(revealDuration); indicatorsAlpha.setInterpolator(new DecelerateInterpolator(1.5f)); mStateAnimation.play(indicatorsAlpha); @@ -3543,9 +3522,7 @@ public class Launcher extends Activity } revealView.setLayerType(View.LAYER_TYPE_NONE, null); - if (page != null) { - page.setLayerType(View.LAYER_TYPE_NONE, null); - } + page.setLayerType(View.LAYER_TYPE_NONE, null); content.setPageBackgroundsVisible(true); mAppsCustomizeContent.updateCurrentPageScroll(); } diff --git a/src/com/android/launcher3/PagedView.java b/src/com/android/launcher3/PagedView.java index 90a6b1598..4e34628da 100644 --- a/src/com/android/launcher3/PagedView.java +++ b/src/com/android/launcher3/PagedView.java @@ -152,11 +152,16 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc protected int mTouchState = TOUCH_STATE_REST; protected boolean mForceScreenScrolled = false; + protected OnLongClickListener mLongClickListener; protected int mTouchSlop; private int mPagingTouchSlop; private int mMaximumVelocity; + protected int mPageLayoutPaddingTop; + protected int mPageLayoutPaddingBottom; + protected int mPageLayoutPaddingLeft; + protected int mPageLayoutPaddingRight; protected int mPageLayoutWidthGap; protected int mPageLayoutHeightGap; protected int mCellCountX = 0; @@ -278,6 +283,14 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.PagedView, defStyle, 0); + mPageLayoutPaddingTop = a.getDimensionPixelSize( + R.styleable.PagedView_pageLayoutPaddingTop, 0); + mPageLayoutPaddingBottom = a.getDimensionPixelSize( + R.styleable.PagedView_pageLayoutPaddingBottom, 0); + mPageLayoutPaddingLeft = a.getDimensionPixelSize( + R.styleable.PagedView_pageLayoutPaddingLeft, 0); + mPageLayoutPaddingRight = a.getDimensionPixelSize( + R.styleable.PagedView_pageLayoutPaddingRight, 0); mPageLayoutWidthGap = a.getDimensionPixelSize( R.styleable.PagedView_pageLayoutWidthGap, 0); mPageLayoutHeightGap = a.getDimensionPixelSize( diff --git a/src/com/android/launcher3/PagedViewGridLayout.java b/src/com/android/launcher3/PagedViewGridLayout.java index f69fa562d..b28686113 100644 --- a/src/com/android/launcher3/PagedViewGridLayout.java +++ b/src/com/android/launcher3/PagedViewGridLayout.java @@ -56,6 +56,18 @@ public class PagedViewGridLayout extends GridLayout implements Page { } } + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + // PagedView currently has issues with different-sized pages since it calculates the + // offset of each page to scroll to before it updates the actual size of each page + // (which can change depending on the content if the contents aren't a fixed size). + // We work around this by having a minimum size on each widget page). + int widthSpecSize = Math.min(getSuggestedMinimumWidth(), + MeasureSpec.getSize(widthMeasureSpec)); + int widthSpecMode = MeasureSpec.EXACTLY; + super.onMeasure(MeasureSpec.makeMeasureSpec(widthSpecSize, widthSpecMode), + heightMeasureSpec); + } + @Override protected void onDetachedFromWindow() { super.onDetachedFromWindow(); diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java index c8f2f33fb..f9fc14bb8 100644 --- a/src/com/android/launcher3/Workspace.java +++ b/src/com/android/launcher3/Workspace.java @@ -210,6 +210,7 @@ public class Workspace extends SmoothPagedView private final int[] mTempXY = new int[2]; private int[] mTempVisiblePagesRange = new int[2]; private boolean mOverscrollTransformsSet; + private float mLastOverscrollPivotX; public static final int DRAG_BITMAP_PADDING = 2; private boolean mWorkspaceFadeInAdjacentScreens; @@ -1691,13 +1692,20 @@ public class Workspace extends SmoothPagedView final boolean isLeftPage = mOverScrollX < 0; index = (!isRtl && isLeftPage) || (isRtl && !isLeftPage) ? lowerIndex : upperIndex; + pivotX = isLeftPage ? rightBiasedPivot : leftBiasedPivot; CellLayout cl = (CellLayout) getChildAt(index); float scrollProgress = getScrollProgress(screenCenter, cl, index); cl.setOverScrollAmount(Math.abs(scrollProgress), isLeftPage); + float rotation = -WORKSPACE_OVERSCROLL_ROTATION * scrollProgress; + cl.setRotationY(rotation); - if (!mOverscrollTransformsSet) { + if (!mOverscrollTransformsSet || Float.compare(mLastOverscrollPivotX, pivotX) != 0) { mOverscrollTransformsSet = true; + mLastOverscrollPivotX = pivotX; + cl.setCameraDistance(mDensity * mCameraDistance); + cl.setPivotX(cl.getMeasuredWidth() * pivotX); + cl.setPivotY(cl.getMeasuredHeight() * 0.5f); cl.setOverscrollTransformsDirty(true); } } else { |