diff options
Diffstat (limited to 'src/com/android/launcher3/widget')
3 files changed, 46 insertions, 5 deletions
diff --git a/src/com/android/launcher3/widget/BaseWidgetSheet.java b/src/com/android/launcher3/widget/BaseWidgetSheet.java index df8266119..72cddc780 100644 --- a/src/com/android/launcher3/widget/BaseWidgetSheet.java +++ b/src/com/android/launcher3/widget/BaseWidgetSheet.java @@ -162,11 +162,16 @@ abstract class BaseWidgetSheet extends AbstractSlideInView @Override public final void logActionCommand(int command) { - Target target = newContainerTarget(ContainerType.WIDGETS); + Target target = newContainerTarget(getLogContainerType()); target.cardinality = getElementsRowCount(); mLauncher.getUserEventDispatcher().logActionCommand(command, target); } + @Override + public int getLogContainerType() { + return ContainerType.WIDGETS; + } + protected abstract int getElementsRowCount(); protected SystemUiController getSystemUiController() { diff --git a/src/com/android/launcher3/widget/WidgetsBottomSheet.java b/src/com/android/launcher3/widget/WidgetsBottomSheet.java index 05368faa6..3e2c0aef4 100644 --- a/src/com/android/launcher3/widget/WidgetsBottomSheet.java +++ b/src/com/android/launcher3/widget/WidgetsBottomSheet.java @@ -16,10 +16,13 @@ package com.android.launcher3.widget; +import android.animation.Animator; +import android.animation.ObjectAnimator; import android.animation.PropertyValuesHolder; import android.content.Context; import android.graphics.Rect; import android.util.AttributeSet; +import android.util.IntProperty; import android.util.Pair; import android.view.Gravity; import android.view.LayoutInflater; @@ -27,6 +30,8 @@ import android.view.View; import android.view.ViewGroup; import android.widget.TextView; +import androidx.annotation.Nullable; + import com.android.launcher3.Insettable; import com.android.launcher3.ItemInfo; import com.android.launcher3.LauncherAppState; @@ -43,6 +48,20 @@ import java.util.List; */ public class WidgetsBottomSheet extends BaseWidgetSheet implements Insettable { + private static final IntProperty<View> PADDING_BOTTOM = + new IntProperty<View>("paddingBottom") { + @Override + public void setValue(View view, int paddingBottom) { + view.setPadding(view.getPaddingLeft(), view.getPaddingTop(), + view.getPaddingRight(), paddingBottom); + } + + @Override + public Integer get(View view) { + return view.getPaddingBottom(); + } + }; + private static final int DEFAULT_CLOSE_DURATION = 200; private ItemInfo mOriginalItemInfo; private Rect mInsets; @@ -158,8 +177,7 @@ public class WidgetsBottomSheet extends BaseWidgetSheet implements Insettable { int rightInset = insets.right - mInsets.right; int bottomInset = insets.bottom - mInsets.bottom; mInsets.set(insets); - setPadding(getPaddingLeft() + leftInset, getPaddingTop(), - getPaddingRight() + rightInset, getPaddingBottom() + bottomInset); + setPadding(leftInset, getPaddingTop(), rightInset, bottomInset); } @Override @@ -172,4 +190,10 @@ public class WidgetsBottomSheet extends BaseWidgetSheet implements Insettable { return Pair.create(findViewById(R.id.title), getContext().getString( mIsOpen ? R.string.widgets_list : R.string.widgets_list_closed)); } + + @Nullable + @Override + public Animator createHintCloseAnim(float distanceToMove) { + return ObjectAnimator.ofInt(this, PADDING_BOTTOM, (int) (distanceToMove + mInsets.bottom)); + } } diff --git a/src/com/android/launcher3/widget/WidgetsFullSheet.java b/src/com/android/launcher3/widget/WidgetsFullSheet.java index ec06d1e6d..521f5117a 100644 --- a/src/com/android/launcher3/widget/WidgetsFullSheet.java +++ b/src/com/android/launcher3/widget/WidgetsFullSheet.java @@ -17,6 +17,8 @@ package com.android.launcher3.widget; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; +import android.animation.AnimatorSet; +import android.animation.ObjectAnimator; import android.animation.PropertyValuesHolder; import android.content.Context; import android.graphics.Rect; @@ -27,6 +29,9 @@ import android.view.MotionEvent; import android.view.View; import android.view.animation.AnimationUtils; +import androidx.annotation.Nullable; +import androidx.annotation.VisibleForTesting; + import com.android.launcher3.Insettable; import com.android.launcher3.Launcher; import com.android.launcher3.LauncherAppState; @@ -35,8 +40,6 @@ import com.android.launcher3.R; import com.android.launcher3.views.RecyclerViewFastScroller; import com.android.launcher3.views.TopRoundedCornerView; -import androidx.annotation.VisibleForTesting; - /** * Popup for showing the full list of available widgets */ @@ -235,4 +238,13 @@ public class WidgetsFullSheet extends BaseWidgetSheet protected int getElementsRowCount() { return mAdapter.getItemCount(); } + + @Nullable + @Override + public Animator createHintCloseAnim(float distanceToMove) { + AnimatorSet anim = new AnimatorSet(); + anim.play(ObjectAnimator.ofFloat(mRecyclerView, TRANSLATION_Y, -distanceToMove)); + anim.play(ObjectAnimator.ofFloat(mRecyclerView, ALPHA, 0.5f)); + return anim; + } } |