Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2bc5c995 authored by Tony Wickham's avatar Tony Wickham
Browse files

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
parent 7f522a25
Loading
Loading
Loading
Loading
+1 −6
Original line number Diff line number Diff line
@@ -42,12 +42,7 @@
            android:layout_gravity="center"
            launcher:pageIndicator="@id/page_indicator" />

        <com.android.launcher3.graphics.GradientView
            android:id="@+id/gradient_bg"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:visibility="gone"
            launcher:layout_ignoreInsets="true"/>
        <include layout="@layout/gradient_bg" />

        <!-- DO NOT CHANGE THE ID -->
        <include layout="@layout/hotseat"
+1 −6
Original line number Diff line number Diff line
@@ -44,12 +44,7 @@
            launcher:pageIndicator="@+id/page_indicator">
        </com.android.launcher3.Workspace>

        <com.android.launcher3.graphics.GradientView
            android:id="@+id/gradient_bg"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:visibility="gone"
            launcher:layout_ignoreInsets="true"/>
        <include layout="@layout/gradient_bg" />

        <!-- DO NOT CHANGE THE ID -->
        <include layout="@layout/hotseat"
+1 −6
Original line number Diff line number Diff line
@@ -43,12 +43,7 @@
            launcher:pageIndicator="@id/page_indicator">
        </com.android.launcher3.Workspace>

        <com.android.launcher3.graphics.GradientView
            android:id="@+id/gradient_bg"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:visibility="gone"
            launcher:layout_ignoreInsets="true"/>
        <include layout="@layout/gradient_bg" />

        <!-- DO NOT CHANGE THE ID -->
        <include layout="@layout/hotseat"
+24 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2017 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.
-->

<com.android.launcher3.graphics.GradientView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:launcher="http://schemas.android.com/apk/res-auto"
    android:id="@+id/gradient_bg"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:visibility="gone"
    launcher:layout_ignoreInsets="true" />
 No newline at end of file
+14 −8
Original line number Diff line number Diff line
@@ -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,10 +225,16 @@ public class WidgetsBottomSheet extends AbstractFloatingView implements Insettab
            mOpenCloseAnimator.start();
        } else {
            setTranslationY(mTranslationYClosed);
            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);
            mIsOpen = false;
        }
    }

    @Override