diff options
author | Tony Wickham <twickham@google.com> | 2017-08-03 13:59:12 -0700 |
---|---|---|
committer | Tony Wickham <twickham@google.com> | 2017-08-03 15:42:03 -0700 |
commit | 2bc5c995f6d75faab7e4fd1b40cbe25e61209b1f (patch) | |
tree | 82fcd94a21e9c7ab101cab71c9e5a2204b1d786d /src/com/android/launcher3/widget | |
parent | 7f522a25c39ceb35aa009f029abe74497f03c403 (diff) | |
download | android_packages_apps_Trebuchet-2bc5c995f6d75faab7e4fd1b40cbe25e61209b1f.tar.gz android_packages_apps_Trebuchet-2bc5c995f6d75faab7e4fd1b40cbe25e61209b1f.tar.bz2 android_packages_apps_Trebuchet-2bc5c995f6d75faab7e4fd1b40cbe25e61209b1f.zip |
Add new GradientView just for WidgetsBottomSheet
Reusing the one behind all apps caused problems when
opening widgets sheets from all apps.
Bug: 64344341
Change-Id: Ia964d8456645c78614f94693f9538dbac4f566a0
Diffstat (limited to 'src/com/android/launcher3/widget')
-rw-r--r-- | src/com/android/launcher3/widget/WidgetsBottomSheet.java | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/src/com/android/launcher3/widget/WidgetsBottomSheet.java b/src/com/android/launcher3/widget/WidgetsBottomSheet.java index b2fb09157..717a61c1c 100644 --- a/src/com/android/launcher3/widget/WidgetsBottomSheet.java +++ b/src/com/android/launcher3/widget/WidgetsBottomSheet.java @@ -89,7 +89,8 @@ public class WidgetsBottomSheet extends AbstractFloatingView implements Insettab mInsets = new Rect(); mVerticalPullDetector = new VerticalPullDetector(context); mVerticalPullDetector.setListener(this); - mGradientBackground = (GradientView) mLauncher.findViewById(R.id.gradient_bg); + mGradientBackground = (GradientView) mLauncher.getLayoutInflater().inflate( + R.layout.gradient_bg, mLauncher.getDragLayer(), false); } @Override @@ -107,6 +108,8 @@ public class WidgetsBottomSheet extends AbstractFloatingView implements Insettab onWidgetsBound(); + mLauncher.getDragLayer().addView(mGradientBackground); + mGradientBackground.setVisibility(VISIBLE); mLauncher.getDragLayer().addView(this); measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED); setTranslationY(mTranslationYClosed); @@ -213,11 +216,8 @@ public class WidgetsBottomSheet extends AbstractFloatingView implements Insettab mOpenCloseAnimator.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { - mIsOpen = false; mVerticalPullDetector.finishedScrolling(); - ((ViewGroup) getParent()).removeView(WidgetsBottomSheet.this); - mLauncher.getSystemUiController().updateUiState( - SystemUiController.UI_STATE_WIDGET_BOTTOM_SHEET, 0); + onCloseComplete(); } }); mOpenCloseAnimator.setInterpolator(mVerticalPullDetector.isIdleState() @@ -225,12 +225,18 @@ public class WidgetsBottomSheet extends AbstractFloatingView implements Insettab mOpenCloseAnimator.start(); } else { setTranslationY(mTranslationYClosed); - mLauncher.getSystemUiController().updateUiState( - SystemUiController.UI_STATE_WIDGET_BOTTOM_SHEET, 0); - mIsOpen = false; + onCloseComplete(); } } + private void onCloseComplete() { + mIsOpen = false; + mLauncher.getDragLayer().removeView(mGradientBackground); + mLauncher.getDragLayer().removeView(WidgetsBottomSheet.this); + mLauncher.getSystemUiController().updateUiState( + SystemUiController.UI_STATE_WIDGET_BOTTOM_SHEET, 0); + } + @Override protected boolean isOfType(@FloatingViewType int type) { return (type & TYPE_WIDGETS_BOTTOM_SHEET) != 0; |