From d505062fff61bce45a0451c4ca440daf7b0e3791 Mon Sep 17 00:00:00 2001 From: Michael Totschnig Date: Wed, 29 Jan 2014 18:26:40 +0100 Subject: [PATCH] revert changes --- library/AndroidManifest.xml | 2 +- library/build.gradle | 9 --- .../stickylistheaders/AdapterWrapper.java | 27 +++---- .../StickyListHeadersListView.java | 74 +++++++++---------- 4 files changed, 50 insertions(+), 62 deletions(-) diff --git a/library/AndroidManifest.xml b/library/AndroidManifest.xml index 5f216ff1..f81a758b 100644 --- a/library/AndroidManifest.xml +++ b/library/AndroidManifest.xml @@ -5,7 +5,7 @@ android:versionName="1.0" > \ No newline at end of file diff --git a/library/build.gradle b/library/build.gradle index d8a55cb2..94f71af9 100644 --- a/library/build.gradle +++ b/library/build.gradle @@ -1,12 +1,3 @@ -buildscript { - repositories { - mavenCentral() - } - dependencies { - classpath 'com.android.tools.build:gradle:0.5.+' - } -} - apply plugin: 'android-library' android { diff --git a/library/src/com/emilsjolander/components/stickylistheaders/AdapterWrapper.java b/library/src/com/emilsjolander/components/stickylistheaders/AdapterWrapper.java index a89956af..ad29235b 100644 --- a/library/src/com/emilsjolander/components/stickylistheaders/AdapterWrapper.java +++ b/library/src/com/emilsjolander/components/stickylistheaders/AdapterWrapper.java @@ -127,20 +127,21 @@ private void recycleHeaderIfExists(WrapperView wv) { private View configureHeader(WrapperView wv, final int position) { View header = wv.mHeader == null ? popHeader() : wv.mHeader; header = mDelegate.getHeaderView(position, header, wv); - if (header != null) { - //if the header isn't clickable, the listselector will be drawn on top of the header - header.setClickable(true); - header.setOnClickListener(new OnClickListener() { - - @Override - public void onClick(View v) { - if(mOnHeaderClickListener != null){ - long headerId = mDelegate.getHeaderId(position); - mOnHeaderClickListener.onHeaderClick(v, position, headerId); - } - } - }); + if (header == null) { + throw new NullPointerException("Header view must not be null."); } + //if the header isn't clickable, the listselector will be drawn on top of the header + header.setClickable(true); + header.setOnClickListener(new OnClickListener() { + + @Override + public void onClick(View v) { + if(mOnHeaderClickListener != null){ + long headerId = mDelegate.getHeaderId(position); + mOnHeaderClickListener.onHeaderClick(v, position, headerId); + } + } + }); return header; } diff --git a/library/src/com/emilsjolander/components/stickylistheaders/StickyListHeadersListView.java b/library/src/com/emilsjolander/components/stickylistheaders/StickyListHeadersListView.java index dd25cbaa..5ad49b2d 100644 --- a/library/src/com/emilsjolander/components/stickylistheaders/StickyListHeadersListView.java +++ b/library/src/com/emilsjolander/components/stickylistheaders/StickyListHeadersListView.java @@ -364,7 +364,6 @@ private void drawStickyHeader(Canvas canvas) { canvas.restore(); } - @SuppressLint("NewApi") private void measureHeader() { int widthMeasureSpec = MeasureSpec.makeMeasureSpec(getWidth() @@ -434,8 +433,7 @@ private void scrollChanged(int reportedFirstVisibleItem) { mHeaderPosition = firstVisibleItem; mCurrentHeaderId = mAdapter.getHeaderId(firstVisibleItem); mHeader = mAdapter.getHeaderView(mHeaderPosition, mHeader, this); - if (mHeader != null) - measureHeader(); + measureHeader(); } int childCount = getChildCount(); @@ -569,42 +567,40 @@ public boolean isDrawingListUnderStickyHeader() { // TODO handle touches better, multitouch etc. @Override public boolean onTouchEvent(MotionEvent ev) { - if (mHeader != null) { - int action = ev.getAction(); - if (action == MotionEvent.ACTION_DOWN - && ev.getY() <= mHeaderBottomPosition) { - mHeaderDownY = ev.getY(); - mHeaderBeingPressed = true; - mHeader.setPressed(true); - mHeader.invalidate(); - invalidate(0, 0, getWidth(), mHeaderBottomPosition); - return true; - } - if (mHeaderBeingPressed) { - if (Math.abs(ev.getY() - mHeaderDownY) < mViewConfig - .getScaledTouchSlop()) { - if (action == MotionEvent.ACTION_UP - || action == MotionEvent.ACTION_CANCEL) { - mHeaderDownY = -1; - mHeaderBeingPressed = false; - mHeader.setPressed(false); - mHeader.invalidate(); - invalidate(0, 0, getWidth(), mHeaderBottomPosition); - if (mOnHeaderClickListener != null) { - mOnHeaderClickListener.onHeaderClick(this, mHeader, - mHeaderPosition, mCurrentHeaderId, true); - } - } - return true; - } else { - mHeaderDownY = -1; - mHeaderBeingPressed = false; - mHeader.setPressed(false); - mHeader.invalidate(); - invalidate(0, 0, getWidth(), mHeaderBottomPosition); - } - } - } + int action = ev.getAction(); + if (action == MotionEvent.ACTION_DOWN + && ev.getY() <= mHeaderBottomPosition) { + mHeaderDownY = ev.getY(); + mHeaderBeingPressed = true; + mHeader.setPressed(true); + mHeader.invalidate(); + invalidate(0, 0, getWidth(), mHeaderBottomPosition); + return true; + } + if (mHeaderBeingPressed) { + if (Math.abs(ev.getY() - mHeaderDownY) < mViewConfig + .getScaledTouchSlop()) { + if (action == MotionEvent.ACTION_UP + || action == MotionEvent.ACTION_CANCEL) { + mHeaderDownY = -1; + mHeaderBeingPressed = false; + mHeader.setPressed(false); + mHeader.invalidate(); + invalidate(0, 0, getWidth(), mHeaderBottomPosition); + if (mOnHeaderClickListener != null) { + mOnHeaderClickListener.onHeaderClick(this, mHeader, + mHeaderPosition, mCurrentHeaderId, true); + } + } + return true; + } else { + mHeaderDownY = -1; + mHeaderBeingPressed = false; + mHeader.setPressed(false); + mHeader.invalidate(); + invalidate(0, 0, getWidth(), mHeaderBottomPosition); + } + } return super.onTouchEvent(ev); }