summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/widget/WidgetsRecyclerView.java
diff options
context:
space:
mode:
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