From 103c8cbc4fbee297c70835573204701a3371a18d Mon Sep 17 00:00:00 2001 From: Ziver Koc Date: Fri, 23 Jan 2015 18:22:53 +0100 Subject: [PATCH] Fixed Lollipop issue were the edit list would not behave correctly --- .../uecontrol/core/logic/UeBehaviourStop.java | 1 + .../uecontrol/gui/util/DynamicListView.java | 17 +++++++++++------ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/ericsson/uecontrol/core/logic/UeBehaviourStop.java b/app/src/main/java/com/ericsson/uecontrol/core/logic/UeBehaviourStop.java index ca7b5ee..a4ba8d3 100755 --- a/app/src/main/java/com/ericsson/uecontrol/core/logic/UeBehaviourStop.java +++ b/app/src/main/java/com/ericsson/uecontrol/core/logic/UeBehaviourStop.java @@ -20,6 +20,7 @@ public class UeBehaviourStop extends UeBehaviour { if(!super.stopExecution()) { log.debug("Terminating executor"); executor.terminateNonBlock(); + executor.setNextBehaviour(0); } } diff --git a/app/src/main/java/com/ericsson/uecontrol/gui/util/DynamicListView.java b/app/src/main/java/com/ericsson/uecontrol/gui/util/DynamicListView.java index 3e46671..4e47be1 100755 --- a/app/src/main/java/com/ericsson/uecontrol/gui/util/DynamicListView.java +++ b/app/src/main/java/com/ericsson/uecontrol/gui/util/DynamicListView.java @@ -30,6 +30,8 @@ import android.graphics.Color; import android.graphics.Paint; import android.graphics.Rect; import android.graphics.drawable.BitmapDrawable; +import android.os.Build; +import android.support.v4.BuildConfig; import android.util.AttributeSet; import android.util.DisplayMetrics; import android.view.MotionEvent; @@ -353,20 +355,24 @@ public class DynamicListView extends ListView { final long switchItemID = isBelow ? mBelowItemId : mAboveItemId; View switchView = isBelow ? belowView : aboveView; - final int originalItem = getPositionForView(mobileView); if (switchView == null) { updateNeighborViewsForID(mMobileItemId); return; } - listener.swapItems(originalItem, getPositionForView(switchView)); + listener.swapItems(getPositionForView(mobileView), getPositionForView(switchView)); ((StableArrayAdapter) getAdapter()).notifyDataSetChanged(); mDownY = mLastEventY; - mobileView.setVisibility(View.VISIBLE); - switchView.setVisibility(View.INVISIBLE); + if(android.os.Build.VERSION.SDK_INT < 21) { + // As we swap the items, the mobileView and switchView will contain the + // switched items in older versions of android so we need to switch the + // visibility of the two views. + mobileView.setVisibility(View.VISIBLE); + switchView.setVisibility(View.INVISIBLE); + } updateNeighborViewsForID(mMobileItemId); @@ -375,11 +381,9 @@ public class DynamicListView extends ListView { observer.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() { public boolean onPreDraw() { observer.removeOnPreDrawListener(this); - View switchView = getViewForID(switchItemID); mTotalOffset += deltaY; - int switchViewNewTop = switchView.getTop(); int delta = switchViewStartTop - switchViewNewTop; @@ -428,6 +432,7 @@ public class DynamicListView extends ListView { } else if(mMode == TouchMode.SWAP) { mHoverCellCurrentBounds.offsetTo(mHoverCellOriginalBounds.left, mobileView.getTop()); + ((StableArrayAdapter) getAdapter()).notifyDataSetChanged(); } // Animate