summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWinson Chung <winsonc@google.com>2015-03-16 23:46:55 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-03-16 23:48:34 +0000
commit979853943c7d10b85daf9effa453c5bd54635904 (patch)
tree4b51a20d95c122b50c1263dc5a2e9414a482b36d
parent2bbbd746d22388b994079361c77ff5cdeedd5f3a (diff)
parentaa2ab254ea6b59dfe4183015e76c31262036282d (diff)
downloadandroid_packages_apps_Trebuchet-979853943c7d10b85daf9effa453c5bd54635904.tar.gz
android_packages_apps_Trebuchet-979853943c7d10b85daf9effa453c5bd54635904.tar.bz2
android_packages_apps_Trebuchet-979853943c7d10b85daf9effa453c5bd54635904.zip
Merge "Tweaking the apps list fast scroller." into ub-launcher3-burnaby
-rw-r--r--res/drawable/apps_list_bg.xml9
-rw-r--r--res/drawable/apps_list_bg_inset.xml23
-rw-r--r--res/drawable/apps_list_fastscroll_bg.xml9
-rw-r--r--res/drawable/apps_list_scrollbar_thumb.xml2
-rw-r--r--res/drawable/apps_reveal_bg.xml20
-rw-r--r--res/drawable/apps_reveal_bg_inset.xml21
-rw-r--r--res/layout-sw600dp/apps_view.xml1
-rw-r--r--res/layout/apps_list_view.xml7
-rw-r--r--res/layout/apps_reveal_view.xml2
-rw-r--r--res/layout/apps_view.xml16
-rw-r--r--res/values/dimens.xml6
-rw-r--r--src/com/android/launcher3/AppsContainerRecyclerView.java4
-rw-r--r--src/com/android/launcher3/AppsContainerView.java15
-rw-r--r--src/com/android/launcher3/AppsGridAdapter.java9
14 files changed, 114 insertions, 30 deletions
diff --git a/res/drawable/apps_list_bg.xml b/res/drawable/apps_list_bg.xml
index 61f1c083a..64177c16b 100644
--- a/res/drawable/apps_list_bg.xml
+++ b/res/drawable/apps_list_bg.xml
@@ -14,8 +14,7 @@
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="#ffffff" />
- <corners android:radius="3dp" />
-</shape> \ No newline at end of file
+<inset xmlns:android="http://schemas.android.com/apk/res/android"
+ android:drawable="@drawable/apps_list_bg_inset"
+ android:insetLeft="@dimen/apps_container_inset"
+ android:insetRight="@dimen/apps_container_inset" /> \ No newline at end of file
diff --git a/res/drawable/apps_list_bg_inset.xml b/res/drawable/apps_list_bg_inset.xml
new file mode 100644
index 000000000..5ea78952f
--- /dev/null
+++ b/res/drawable/apps_list_bg_inset.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2015 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="#ffffff" />
+ <corners
+ android:bottomLeftRadius="3dp"
+ android:bottomRightRadius="3dp" />
+</shape> \ No newline at end of file
diff --git a/res/drawable/apps_list_fastscroll_bg.xml b/res/drawable/apps_list_fastscroll_bg.xml
index 4ec18488b..780d3b0c3 100644
--- a/res/drawable/apps_list_fastscroll_bg.xml
+++ b/res/drawable/apps_list_fastscroll_bg.xml
@@ -18,7 +18,10 @@
android:shape="rectangle">
<solid android:color="@color/apps_view_scrollbar_thumb_color" />
<size
- android:width="48dp"
- android:height="48dp" />
- <corners android:radius="4dp" />
+ android:width="64dp"
+ android:height="64dp" />
+ <corners
+ android:topLeftRadius="64dp"
+ android:topRightRadius="64dp"
+ android:bottomLeftRadius="64dp" />
</shape> \ No newline at end of file
diff --git a/res/drawable/apps_list_scrollbar_thumb.xml b/res/drawable/apps_list_scrollbar_thumb.xml
index ddd65b231..59383a5bb 100644
--- a/res/drawable/apps_list_scrollbar_thumb.xml
+++ b/res/drawable/apps_list_scrollbar_thumb.xml
@@ -17,5 +17,5 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/apps_view_scrollbar_thumb_color" />
- <size android:width="4dp"/>
+ <size android:width="@dimen/apps_view_fast_scroll_bar_size" />
</shape> \ No newline at end of file
diff --git a/res/drawable/apps_reveal_bg.xml b/res/drawable/apps_reveal_bg.xml
new file mode 100644
index 000000000..47c608f85
--- /dev/null
+++ b/res/drawable/apps_reveal_bg.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2015 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.
+-->
+<inset xmlns:android="http://schemas.android.com/apk/res/android"
+ android:drawable="@drawable/apps_reveal_bg_inset"
+ android:insetLeft="@dimen/apps_container_inset"
+ android:insetRight="@dimen/apps_container_inset" /> \ No newline at end of file
diff --git a/res/drawable/apps_reveal_bg_inset.xml b/res/drawable/apps_reveal_bg_inset.xml
new file mode 100644
index 000000000..61f1c083a
--- /dev/null
+++ b/res/drawable/apps_reveal_bg_inset.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2015 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="#ffffff" />
+ <corners android:radius="3dp" />
+</shape> \ No newline at end of file
diff --git a/res/layout-sw600dp/apps_view.xml b/res/layout-sw600dp/apps_view.xml
index 0628ca6d3..6f22460fa 100644
--- a/res/layout-sw600dp/apps_view.xml
+++ b/res/layout-sw600dp/apps_view.xml
@@ -18,7 +18,6 @@
android:id="@+id/apps_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:padding="8dp"
android:background="#22000000"
android:descendantFocusability="afterDescendants">
<include
diff --git a/res/layout/apps_list_view.xml b/res/layout/apps_list_view.xml
index dfb2fc42f..59c04103f 100644
--- a/res/layout/apps_list_view.xml
+++ b/res/layout/apps_list_view.xml
@@ -20,12 +20,13 @@
android:layout_height="match_parent"
android:orientation="vertical"
android:elevation="15dp"
- android:background="@drawable/apps_list_bg"
android:visibility="gone">
<EditText
android:id="@+id/app_search_box"
android:layout_width="match_parent"
android:layout_height="wrap_content"
+ android:layout_marginLeft="@dimen/apps_container_inset"
+ android:layout_marginRight="@dimen/apps_container_inset"
android:padding="16dp"
android:hint="@string/apps_view_search_bar_hint"
android:maxLines="1"
@@ -46,8 +47,10 @@
android:paddingTop="12dp"
android:paddingBottom="12dp"
android:clipToPadding="false"
+ android:fadeScrollbars="false"
android:scrollbars="vertical"
android:scrollbarThumbVertical="@drawable/apps_list_scrollbar_thumb"
android:focusable="true"
- android:descendantFocusability="afterDescendants" />
+ android:descendantFocusability="afterDescendants"
+ android:background="@drawable/apps_list_bg" />
</LinearLayout> \ No newline at end of file
diff --git a/res/layout/apps_reveal_view.xml b/res/layout/apps_reveal_view.xml
index 19e462bee..bc93359c1 100644
--- a/res/layout/apps_reveal_view.xml
+++ b/res/layout/apps_reveal_view.xml
@@ -21,5 +21,5 @@
android:layout_gravity="center"
android:elevation="15dp"
android:visibility="invisible"
- android:background="@drawable/apps_list_bg"
+ android:background="@drawable/apps_reveal_bg"
android:focusable="false" /> \ No newline at end of file
diff --git a/res/layout/apps_view.xml b/res/layout/apps_view.xml
index 00f3cca88..86d67e15f 100644
--- a/res/layout/apps_view.xml
+++ b/res/layout/apps_view.xml
@@ -13,16 +13,26 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
+<!-- The top and bottom paddings are defined in this container, but since we want
+ the list view to span the full width (for touch interception purposes), we
+ will bake the left/right padding into that view's background itself. -->
<com.android.launcher3.AppsContainerView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/apps_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:padding="8dp"
+ android:paddingTop="@dimen/apps_container_inset"
+ android:paddingBottom="@dimen/apps_container_inset"
android:background="@drawable/apps_customize_bg"
android:descendantFocusability="afterDescendants">
<include
- layout="@layout/apps_reveal_view" />
+ layout="@layout/apps_reveal_view"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_gravity="center" />
<include
- layout="@layout/apps_list_view" />
+ layout="@layout/apps_list_view"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_gravity="center" />
</com.android.launcher3.AppsContainerView> \ No newline at end of file
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 9b4c56094..b9b9a2412 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -48,12 +48,14 @@
<!-- Apps view -->
<dimen name="apps_container_width">0dp</dimen>
+ <dimen name="apps_container_inset">8dp</dimen>
<dimen name="apps_grid_view_start_margin">52dp</dimen>
<dimen name="apps_view_row_height">64dp</dimen>
<dimen name="apps_view_section_text_size">24sp</dimen>
- <dimen name="apps_view_fast_scroll_gutter_size">48dp</dimen>
+ <dimen name="apps_view_fast_scroll_bar_size">6dp</dimen>
+ <dimen name="apps_view_fast_scroll_gutter_size">40dp</dimen>
<dimen name="apps_view_fast_scroll_popup_size">64dp</dimen>
- <dimen name="apps_view_fast_scroll_text_size">48dp</dimen>
+ <dimen name="apps_view_fast_scroll_text_size">40dp</dimen>
<!-- AllApps/Customize/AppsCustomize -->
<!-- The height of the tab bar - if this changes, we should update the
diff --git a/src/com/android/launcher3/AppsContainerRecyclerView.java b/src/com/android/launcher3/AppsContainerRecyclerView.java
index 2280e99ef..c5a508c9c 100644
--- a/src/com/android/launcher3/AppsContainerRecyclerView.java
+++ b/src/com/android/launcher3/AppsContainerRecyclerView.java
@@ -37,6 +37,8 @@ import java.util.List;
public class AppsContainerRecyclerView extends RecyclerView
implements RecyclerView.OnItemTouchListener {
+ private static final float FAST_SCROLL_OVERLAY_Y_OFFSET_FACTOR = 1.5f;
+
private AlphabeticalAppsList mApps;
private int mNumAppsPerRow;
@@ -130,7 +132,7 @@ public class AppsContainerRecyclerView extends RecyclerView
} else {
x = getWidth() - getPaddingRight() - getScrollBarSize() - bgBounds.width();
}
- int y = mLastY - bgBounds.height() / 2;
+ int y = mLastY - (int) (FAST_SCROLL_OVERLAY_Y_OFFSET_FACTOR * bgBounds.height());
y = Math.max(getPaddingTop(), Math.min(y, getHeight() - getPaddingBottom() -
bgBounds.height()));
canvas.translate(x, y);
diff --git a/src/com/android/launcher3/AppsContainerView.java b/src/com/android/launcher3/AppsContainerView.java
index 64b27baf5..ce092bfe4 100644
--- a/src/com/android/launcher3/AppsContainerView.java
+++ b/src/com/android/launcher3/AppsContainerView.java
@@ -39,9 +39,9 @@ import java.util.List;
/**
* The all apps list view container.
*/
-public class AppsContainerView extends FrameLayout implements DragSource, View.OnTouchListener,
- View.OnLongClickListener, Insettable, TextWatcher, TextView.OnEditorActionListener,
- LauncherTransitionable {
+public class AppsContainerView extends FrameLayout implements DragSource, Insettable, TextWatcher,
+ TextView.OnEditorActionListener, LauncherTransitionable, View.OnTouchListener,
+ View.OnLongClickListener {
private static final boolean ALLOW_SINGLE_APP_LAUNCH = true;
@@ -188,10 +188,10 @@ public class AppsContainerView extends FrameLayout implements DragSource, View.O
}
@Override
- public boolean onTouch(View v, MotionEvent event) {
- if (event.getAction() == MotionEvent.ACTION_DOWN ||
- event.getAction() == MotionEvent.ACTION_MOVE) {
- mLastTouchDownPos.set((int) event.getX(), (int) event.getY());
+ public boolean onTouch(View v, MotionEvent ev) {
+ if (ev.getAction() == MotionEvent.ACTION_DOWN ||
+ ev.getAction() == MotionEvent.ACTION_MOVE) {
+ mLastTouchDownPos.set((int) ev.getX(), (int) ev.getY());
}
return false;
}
@@ -333,7 +333,6 @@ public class AppsContainerView extends FrameLayout implements DragSource, View.O
List<AppInfo> appsWithoutSections = mApps.getAppsWithoutSectionBreaks();
List<AppInfo> apps = mApps.getApps();
if (appsWithoutSections.size() == 1) {
- mSearchBar.clearFocus();
mAppsListView.getChildAt(apps.indexOf(appsWithoutSections.get(0))).performClick();
InputMethodManager imm = (InputMethodManager)
getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
diff --git a/src/com/android/launcher3/AppsGridAdapter.java b/src/com/android/launcher3/AppsGridAdapter.java
index 028cd8f70..6a4495e0e 100644
--- a/src/com/android/launcher3/AppsGridAdapter.java
+++ b/src/com/android/launcher3/AppsGridAdapter.java
@@ -84,12 +84,13 @@ class AppsGridAdapter extends RecyclerView.Adapter<AppsGridAdapter.ViewHolder> {
mSectionTextPaint.getTextBounds(section, 0, section.length(),
mTmpBounds);
if (mIsRtl) {
- c.drawText(section, parent.getWidth() - mStartMargin +
- (mStartMargin - mTmpBounds.width()) / 2,
+ int left = parent.getWidth() - mPaddingStart - mStartMargin;
+ c.drawText(section, left + (mStartMargin - mTmpBounds.width()) / 2,
child.getTop() + (2 * child.getPaddingTop()) +
mTmpBounds.height(), mSectionTextPaint);
} else {
- c.drawText(section, (mStartMargin - mTmpBounds.width()) / 2,
+ int left = mPaddingStart;
+ c.drawText(section, left + (mStartMargin - mTmpBounds.width()) / 2,
child.getTop() + (2 * child.getPaddingTop()) +
mTmpBounds.height(), mSectionTextPaint);
}
@@ -118,6 +119,7 @@ class AppsGridAdapter extends RecyclerView.Adapter<AppsGridAdapter.ViewHolder> {
private String mEmptySearchText;
// Section drawing
+ private int mPaddingStart;
private int mStartMargin;
private Paint mSectionTextPaint;
private Rect mTmpBounds = new Rect();
@@ -136,6 +138,7 @@ class AppsGridAdapter extends RecyclerView.Adapter<AppsGridAdapter.ViewHolder> {
mIconClickListener = iconClickListener;
mIconLongClickListener = iconLongClickListener;
mStartMargin = res.getDimensionPixelSize(R.dimen.apps_grid_view_start_margin);
+ mPaddingStart = res.getDimensionPixelSize(R.dimen.apps_container_inset);
mSectionTextPaint = new Paint();
mSectionTextPaint.setTextSize(res.getDimensionPixelSize(
R.dimen.apps_view_section_text_size));