summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/widget/WidgetsRecyclerView.java
diff options
context:
space:
mode:
authorHyunyoung Song <hyunyoungs@google.com>2015-05-29 12:00:44 -0700
committerHyunyoung Song <hyunyoungs@google.com>2015-05-29 12:00:44 -0700
commitac5f6af1488ec1cf0b73aa0848a675764c2f652b (patch)
tree9d26eeaef26f24aa5de18e382c299cb5a86f0b0a /src/com/android/launcher3/widget/WidgetsRecyclerView.java
parent0b06875971fffd232ce2dea78cd29145edc5bab4 (diff)
downloadandroid_packages_apps_Trebuchet-ac5f6af1488ec1cf0b73aa0848a675764c2f652b.tar.gz
android_packages_apps_Trebuchet-ac5f6af1488ec1cf0b73aa0848a675764c2f652b.tar.bz2
android_packages_apps_Trebuchet-ac5f6af1488ec1cf0b73aa0848a675764c2f652b.zip
Move fast scrolling logic to BaseRecyclerView
- This change has no effect on actual functionality but to make it easier for widget tray to inherit the goodness of the 1) fast scroller functionality 2) unify the scroll look and feel with the all apps view b/21375339 Change-Id: Ib859b1c3352c0b69f16549ded8f20eb82cf58ba8
Diffstat (limited to 'src/com/android/launcher3/widget/WidgetsRecyclerView.java')
-rw-r--r--src/com/android/launcher3/widget/WidgetsRecyclerView.java72
1 files changed, 72 insertions, 0 deletions
diff --git a/src/com/android/launcher3/widget/WidgetsRecyclerView.java b/src/com/android/launcher3/widget/WidgetsRecyclerView.java
index 31ef5d6fc..bef255908 100644
--- a/src/com/android/launcher3/widget/WidgetsRecyclerView.java
+++ b/src/com/android/launcher3/widget/WidgetsRecyclerView.java
@@ -17,14 +17,23 @@
package com.android.launcher3.widget;
import android.content.Context;
+import android.graphics.Rect;
+import android.graphics.drawable.Drawable;
+import android.support.v7.widget.RecyclerView;
import android.util.AttributeSet;
+import android.view.MotionEvent;
+
import com.android.launcher3.BaseRecyclerView;
+import com.android.launcher3.model.WidgetsModel;
/**
* The widgets recycler view.
*/
public class WidgetsRecyclerView extends BaseRecyclerView {
+ private WidgetsModel mWidgets;
+ private Rect mBackgroundPadding = new Rect();
+
public WidgetsRecyclerView(Context context) {
this(context, null);
}
@@ -37,4 +46,67 @@ public class WidgetsRecyclerView extends BaseRecyclerView {
super(context, attrs, defStyleAttr);
}
+ @Override
+ protected void onFinishInflate() {
+ super.onFinishInflate();
+ addOnItemTouchListener(this);
+ }
+
+ public void updateBackgroundPadding(Drawable background) {
+ background.getPadding(mBackgroundPadding);
+ }
+
+ /**
+ * Sets the widget model in this view, used to determine the fast scroll position.
+ */
+ public void setWidgets(WidgetsModel widgets) {
+ mWidgets = widgets;
+ }
+
+ /**
+ * Maps the touch (from 0..1) to the adapter position that should be visible.
+ */
+ @Override
+ public String scrollToPositionAtProgress(float touchFraction) {
+ // Ensure that we have any sections
+ return "";
+ }
+
+ /**
+ * Updates the bounds for the scrollbar.
+ */
+ @Override
+ public void updateVerticalScrollbarBounds() {
+ int rowCount = mWidgets.getPackageSize();
+
+ // Skip early if there are no items.
+ if (rowCount == 0) {
+ verticalScrollbarBounds.setEmpty();
+ return;
+ }
+
+ int x, y;
+ getCurScrollState(scrollPosState);
+ if (scrollPosState.rowIndex < 0) {
+ verticalScrollbarBounds.setEmpty();
+ }
+ // TODO
+ }
+
+ /**
+ * Returns the current scroll state.
+ */
+ private void getCurScrollState(ScrollPositionState stateOut) {
+ stateOut.rowIndex = -1;
+ stateOut.rowTopOffset = -1;
+ stateOut.rowHeight = -1;
+
+ int rowCount = mWidgets.getPackageSize();
+
+ // Return early if there are no items
+ if (rowCount == 0) {
+ return;
+ }
+ // TODO
+ }
} \ No newline at end of file