diff options
author | Jon Miranda <jonmiranda@google.com> | 2018-02-13 16:18:19 -0800 |
---|---|---|
committer | Jon Miranda <jonmiranda@google.com> | 2018-02-13 16:18:19 -0800 |
commit | 84e2436220c5141748daea201ee367f22d258c89 (patch) | |
tree | cff99628de1d6365c2e0e9159424e94339e21e30 | |
parent | 62388becd07f19d7857024969b35af666eb6c5d7 (diff) | |
download | packages_apps_Trebuchet-84e2436220c5141748daea201ee367f22d258c89.tar.gz packages_apps_Trebuchet-84e2436220c5141748daea201ee367f22d258c89.tar.bz2 packages_apps_Trebuchet-84e2436220c5141748daea201ee367f22d258c89.zip |
Update widget full sheet / bottom sheet to have top rounded corners.
Bug: 71775241
Change-Id: I11b5adc555f48f44cf8167e8699cae1dfe164736
-rw-r--r-- | res/drawable/round_rect_primary.xml | 2 | ||||
-rw-r--r-- | res/drawable/top_round_rect_primary.xml | 26 | ||||
-rw-r--r-- | res/layout/widgets_bottom_sheet.xml | 2 | ||||
-rw-r--r-- | res/layout/widgets_full_sheet.xml | 4 | ||||
-rw-r--r-- | src/com/android/launcher3/views/TopRoundedCornerView.java | 62 | ||||
-rw-r--r-- | src/com/android/launcher3/widget/WidgetsFullSheet.java | 1 |
6 files changed, 93 insertions, 4 deletions
diff --git a/res/drawable/round_rect_primary.xml b/res/drawable/round_rect_primary.xml index 9f8f4da48..16310f8bd 100644 --- a/res/drawable/round_rect_primary.xml +++ b/res/drawable/round_rect_primary.xml @@ -17,5 +17,5 @@ <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="?android:attr/colorPrimary" /> - <corners android:radius="8dp" /> + <corners android:radius="@dimen/bg_round_rect_radius" /> </shape> diff --git a/res/drawable/top_round_rect_primary.xml b/res/drawable/top_round_rect_primary.xml new file mode 100644 index 000000000..1caaa026f --- /dev/null +++ b/res/drawable/top_round_rect_primary.xml @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2018 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. +--> +<shape xmlns:android="http://schemas.android.com/apk/res/android" + android:shape="rectangle"> + <solid android:color="?android:attr/colorPrimary" /> + <corners + android:topLeftRadius="@dimen/bg_round_rect_radius" + android:topRightRadius="@dimen/bg_round_rect_radius" + android:bottomLeftRadius="0dp" + android:bottomRightRadius="0dp" + /> +</shape> diff --git a/res/layout/widgets_bottom_sheet.xml b/res/layout/widgets_bottom_sheet.xml index e8c6961f4..6bf90481a 100644 --- a/res/layout/widgets_bottom_sheet.xml +++ b/res/layout/widgets_bottom_sheet.xml @@ -20,7 +20,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingTop="28dp" - android:background="?android:attr/colorPrimary" + android:background="@drawable/top_round_rect_primary" android:elevation="@dimen/deep_shortcuts_elevation" android:layout_gravity="bottom" android:theme="?attr/widgetsTheme"> diff --git a/res/layout/widgets_full_sheet.xml b/res/layout/widgets_full_sheet.xml index 153529968..20eca9f25 100644 --- a/res/layout/widgets_full_sheet.xml +++ b/res/layout/widgets_full_sheet.xml @@ -25,7 +25,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" /> - <FrameLayout + <com.android.launcher3.views.TopRoundedCornerView android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" @@ -60,5 +60,5 @@ android:layout_gravity="bottom" android:background="?attr/allAppsNavBarScrimColor" android:focusable="false" /> - </FrameLayout> + </com.android.launcher3.views.TopRoundedCornerView> </com.android.launcher3.widget.WidgetsFullSheet>
\ No newline at end of file diff --git a/src/com/android/launcher3/views/TopRoundedCornerView.java b/src/com/android/launcher3/views/TopRoundedCornerView.java new file mode 100644 index 000000000..ba223c498 --- /dev/null +++ b/src/com/android/launcher3/views/TopRoundedCornerView.java @@ -0,0 +1,62 @@ +/* + * Copyright (C) 2018 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.launcher3.views; + +import android.content.Context; +import android.graphics.Canvas; +import android.graphics.Path; +import android.graphics.RectF; +import android.util.AttributeSet; +import android.widget.FrameLayout; + +import com.android.launcher3.R; + +/** + * View with top rounded corners. + */ +public class TopRoundedCornerView extends FrameLayout { + + private final RectF mRect = new RectF(); + private final Path mClipPath = new Path(); + private float[] mRadii; + + public TopRoundedCornerView(Context context, AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + + int radius = getResources().getDimensionPixelSize(R.dimen.bg_round_rect_radius); + mRadii = new float[] {radius, radius, radius, radius, 0, 0, 0, 0}; + } + + public TopRoundedCornerView(Context context, AttributeSet attrs) { + this(context, attrs, 0); + } + + @Override + public void draw(Canvas canvas) { + canvas.save(); + canvas.clipPath(mClipPath); + super.draw(canvas); + canvas.restore(); + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + mRect.set(0, 0, getMeasuredWidth(), getMeasuredHeight()); + mClipPath.reset(); + mClipPath.addRoundRect(mRect, mRadii, Path.Direction.CW); + } +} diff --git a/src/com/android/launcher3/widget/WidgetsFullSheet.java b/src/com/android/launcher3/widget/WidgetsFullSheet.java index d62a90964..e461afc20 100644 --- a/src/com/android/launcher3/widget/WidgetsFullSheet.java +++ b/src/com/android/launcher3/widget/WidgetsFullSheet.java @@ -115,6 +115,7 @@ public class WidgetsFullSheet extends BaseWidgetSheet mGradientView.setVisibility(View.INVISIBLE); widthUsed = 0; } else { + mGradientView.setVisibility(View.VISIBLE); Rect padding = mLauncher.getDeviceProfile().workspacePadding; widthUsed = Math.max(padding.left + padding.right, 2 * (mInsets.left + mInsets.right)); |