From a553810b9ba203b521b09b1d0e5e17616ac36ec9 Mon Sep 17 00:00:00 2001 From: Simon Schubert Date: Sat, 21 Feb 2015 15:26:28 +0100 Subject: [PATCH 1/5] added swap reorder type --- .../dynamicgrid/BaseDynamicGridAdapter.java | 18 ++- .../DynamicGridAdapterInterface.java | 5 + .../askerov/dynamicgrid/DynamicGridView.java | 119 ++++++++++++------ 3 files changed, 100 insertions(+), 42 deletions(-) diff --git a/dynamicgrid/src/org/askerov/dynamicgrid/BaseDynamicGridAdapter.java b/dynamicgrid/src/org/askerov/dynamicgrid/BaseDynamicGridAdapter.java index 167102a..3cca7ed 100644 --- a/dynamicgrid/src/org/askerov/dynamicgrid/BaseDynamicGridAdapter.java +++ b/dynamicgrid/src/org/askerov/dynamicgrid/BaseDynamicGridAdapter.java @@ -11,10 +11,12 @@ * Time: 10:49 PM */ public abstract class BaseDynamicGridAdapter extends AbstractDynamicGridAdapter { + private Context mContext; private ArrayList mItems = new ArrayList(); private int mColumnCount; + private int mReorderType = DynamicGridView.REORDER_TYPE_NORMAL; protected BaseDynamicGridAdapter(Context context, int columnCount) { this.mContext = context; @@ -39,6 +41,10 @@ public void set(List items) { notifyDataSetChanged(); } + public void setReorderType(int reorderType) { + this.mReorderType = reorderType; + } + public void clear() { clearStableIdMap(); mItems.clear(); @@ -94,7 +100,11 @@ public void setColumnCount(int columnCount) { @Override public void reorderItems(int originalPosition, int newPosition) { if (newPosition < getCount()) { - DynamicGridUtils.reorder(mItems, originalPosition, newPosition); + if(mReorderType == DynamicGridView.REORDER_TYPE_NORMAL) { + DynamicGridUtils.reorder(mItems, originalPosition, newPosition); + } else if(mReorderType == DynamicGridView.REORDER_TYPE_SWAP) { + DynamicGridUtils.swap(mItems, originalPosition, newPosition); + } notifyDataSetChanged(); } } @@ -104,6 +114,12 @@ public boolean canReorder(int position) { return true; } + @Override + public int getReorderType() + { + return mReorderType; + } + public List getItems() { return mItems; } diff --git a/dynamicgrid/src/org/askerov/dynamicgrid/DynamicGridAdapterInterface.java b/dynamicgrid/src/org/askerov/dynamicgrid/DynamicGridAdapterInterface.java index 76d0579..daa5089 100644 --- a/dynamicgrid/src/org/askerov/dynamicgrid/DynamicGridAdapterInterface.java +++ b/dynamicgrid/src/org/askerov/dynamicgrid/DynamicGridAdapterInterface.java @@ -30,4 +30,9 @@ public interface DynamicGridAdapterInterface { */ boolean canReorder(int position); + /** + * Determines reorder type. + */ + int getReorderType(); + } diff --git a/dynamicgrid/src/org/askerov/dynamicgrid/DynamicGridView.java b/dynamicgrid/src/org/askerov/dynamicgrid/DynamicGridView.java index e7e61f0..ed4fd86 100644 --- a/dynamicgrid/src/org/askerov/dynamicgrid/DynamicGridView.java +++ b/dynamicgrid/src/org/askerov/dynamicgrid/DynamicGridView.java @@ -1,6 +1,11 @@ package org.askerov.dynamicgrid; -import android.animation.*; +import android.animation.Animator; +import android.animation.AnimatorListenerAdapter; +import android.animation.AnimatorSet; +import android.animation.ObjectAnimator; +import android.animation.TypeEvaluator; +import android.animation.ValueAnimator; import android.annotation.TargetApi; import android.content.Context; import android.graphics.Bitmap; @@ -21,7 +26,11 @@ import android.widget.GridView; import android.widget.ListAdapter; -import java.util.*; +import java.util.ArrayList; +import java.util.Collections; +import java.util.LinkedList; +import java.util.List; +import java.util.Stack; /** * Author: alex askerov @@ -29,6 +38,8 @@ * Time: 12:31 PM */ public class DynamicGridView extends GridView { + public final static int REORDER_TYPE_NORMAL = 1; + public final static int REORDER_TYPE_SWAP = 2; private static final int INVALID_ID = -1; private static final int MOVE_DURATION = 300; @@ -809,7 +820,7 @@ public boolean onPreDraw() { mTotalOffsetY += mDeltaY; mTotalOffsetX += mDeltaX; - animateReorder(mOriginalPosition, mTargetPosition); + animateReorders(mOriginalPosition, mTargetPosition); mPreviousMobileView.setVisibility(View.VISIBLE); @@ -911,52 +922,40 @@ private long getId(int position) { return getAdapter().getItemId(position); } + @TargetApi(Build.VERSION_CODES.HONEYCOMB) + private void animateReorders(final int oldPosition, final int newPosition) { + if(getAdapterInterface().getReorderType() == REORDER_TYPE_NORMAL) { + animateReorder(oldPosition, newPosition); + } else if(getAdapterInterface().getReorderType() == REORDER_TYPE_SWAP) { + animateSwap(oldPosition, newPosition); + } + } + @TargetApi(Build.VERSION_CODES.HONEYCOMB) private void animateReorder(final int oldPosition, final int newPosition) { boolean isForward = newPosition > oldPosition; List resultList = new LinkedList(); - if (isForward) { - for (int pos = Math.min(oldPosition, newPosition); pos < Math.max(oldPosition, newPosition); pos++) { - View view = getViewForId(getId(pos)); - if ((pos + 1) % getColumnCount() == 0) { - resultList.add(createTranslationAnimations(view, -view.getWidth() * (getColumnCount() - 1), 0, - view.getHeight(), 0)); - } else { - resultList.add(createTranslationAnimations(view, view.getWidth(), 0, 0, 0)); - } - } - } else { - for (int pos = Math.max(oldPosition, newPosition); pos > Math.min(oldPosition, newPosition); pos--) { - View view = getViewForId(getId(pos)); - if ((pos + getColumnCount()) % getColumnCount() == 0) { - resultList.add(createTranslationAnimations(view, view.getWidth() * (getColumnCount() - 1), 0, - -view.getHeight(), 0)); - } else { - resultList.add(createTranslationAnimations(view, -view.getWidth(), 0, 0, 0)); - } - } - } - AnimatorSet resultSet = new AnimatorSet(); - resultSet.playTogether(resultList); - resultSet.setDuration(MOVE_DURATION); - resultSet.setInterpolator(new AccelerateDecelerateInterpolator()); - resultSet.addListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationStart(Animator animation) { - mReorderAnimation = true; - updateEnableState(); - } + for (int pos = Math.min(oldPosition, newPosition); pos < Math.max(oldPosition, newPosition); pos++) { - @Override - public void onAnimationEnd(Animator animation) { - mReorderAnimation = false; - updateEnableState(); - } - }); - resultSet.start(); + int oldViewPosition = isForward ? pos : pos+1; + int newViewPosition = isForward ? pos+1 : pos; + + resultList.add(createViewSwapAnimations(oldViewPosition, newViewPosition)); + } + + startAnimations(resultList); } + @TargetApi(Build.VERSION_CODES.HONEYCOMB) + private void animateSwap(final int oldPosition, final int newPosition) { + + List resultList = new LinkedList(); + + resultList.add(createViewSwapAnimations(oldPosition, newPosition)); + + startAnimations(resultList); + } @TargetApi(Build.VERSION_CODES.HONEYCOMB) private AnimatorSet createTranslationAnimations(View view, float startX, float endX, float startY, float endY) { @@ -975,6 +974,44 @@ protected void dispatchDraw(Canvas canvas) { } } + /** + * Basically the old view is set to the new position and + * animates it's way from the old position to the new position. + * @param oldViewPosition Position of the old view. + * @param newViewPosition Position of the new view. + * @return + */ + private AnimatorSet createViewSwapAnimations(int oldViewPosition, int newViewPosition) { + View viewOld = getViewForId(getId(oldViewPosition)); + View viewNew = getViewForId(getId(newViewPosition)); + + return createTranslationAnimations(viewOld, viewNew.getX()-viewOld.getX(), 0, viewNew.getY()-viewOld.getY(), 0); + } + + /** + * + * @param resultList + */ + private void startAnimations(List resultList) { + AnimatorSet resultSet = new AnimatorSet(); + resultSet.playTogether(resultList); + resultSet.setDuration(MOVE_DURATION); + resultSet.setInterpolator(new AccelerateDecelerateInterpolator()); + resultSet.addListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationStart(Animator animation) { + mReorderAnimation = true; + updateEnableState(); + } + + @Override + public void onAnimationEnd(Animator animation) { + mReorderAnimation = false; + updateEnableState(); + } + }); + resultSet.start(); + } public interface OnDropListener { void onActionDrop(); From 2c416d377f3a461e6da743cb1076a1ab58bbcf70 Mon Sep 17 00:00:00 2001 From: Simon Schubert Date: Sat, 21 Feb 2015 15:32:53 +0100 Subject: [PATCH 2/5] renamed functions --- .../2.2.1/taskArtifacts/cache.properties.lock | Bin 0 -> 17 bytes .gradle/2.2.1/taskArtifacts/fileHashes.bin | Bin 0 -> 24629 bytes .gradle/2.2.1/taskArtifacts/fileSnapshots.bin | Bin 0 -> 73599 bytes .../2.2.1/taskArtifacts/outputFileStates.bin | Bin 0 -> 19862 bytes .gradle/2.2.1/taskArtifacts/taskArtifacts.bin | Bin 0 -> 42047 bytes .../dynamicgrid/BaseDynamicGridAdapter.java | 5 ++--- .../askerov/dynamicgrid/DynamicGridView.java | 18 +++++++++--------- 7 files changed, 11 insertions(+), 12 deletions(-) create mode 100644 .gradle/2.2.1/taskArtifacts/cache.properties.lock create mode 100644 .gradle/2.2.1/taskArtifacts/fileHashes.bin create mode 100644 .gradle/2.2.1/taskArtifacts/fileSnapshots.bin create mode 100644 .gradle/2.2.1/taskArtifacts/outputFileStates.bin create mode 100644 .gradle/2.2.1/taskArtifacts/taskArtifacts.bin diff --git a/.gradle/2.2.1/taskArtifacts/cache.properties.lock b/.gradle/2.2.1/taskArtifacts/cache.properties.lock new file mode 100644 index 0000000000000000000000000000000000000000..205843afab7ef33ec8bbb1ea00802cce6be187d4 GIT binary patch literal 17 VcmZSHY>_L1o;2} literal 0 HcmV?d00001 diff --git a/.gradle/2.2.1/taskArtifacts/fileHashes.bin b/.gradle/2.2.1/taskArtifacts/fileHashes.bin new file mode 100644 index 0000000000000000000000000000000000000000..e0f34cba265a4c88d835eef4456da09328f3ab58 GIT binary patch literal 24629 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 IQppefFGS|3?f?J) literal 0 HcmV?d00001 diff --git a/.gradle/2.2.1/taskArtifacts/fileSnapshots.bin b/.gradle/2.2.1/taskArtifacts/fileSnapshots.bin new file mode 100644 index 0000000000000000000000000000000000000000..e073325d361e51c4beb66173ae440efc86b3e07e GIT binary patch literal 73599 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 TiheKdn0K56CIvxhcANhP$6ZJO literal 0 HcmV?d00001 diff --git a/.gradle/2.2.1/taskArtifacts/outputFileStates.bin b/.gradle/2.2.1/taskArtifacts/outputFileStates.bin new file mode 100644 index 0000000000000000000000000000000000000000..eecdf3db6154bec344cd5c4aca15060761e67762 GIT binary patch literal 19862 zcmeI3`BM{D9KbU%90CefAqZjxxs)qZMG!;|kpu#wkrpLh6$M2pWjv50MWu)u#DhVl zR477JtRPbHsE8tiP=jE=sDPpzS}r;30WFl5-N*R;f&S3>?o5*1&*#0D&1aIIHY;7q zVCZU%(i`Km?No7P-)D!g3k9G66o3Ly017|>C;$bZ02F`%Pyh-*0Vn_kpa2wr0#E=7 z{7(u<{l`9t8uejx?U;(4*K#G1bPt2U(HJ|lO3V$kXXobYQe(WG@s)(6J52FUDhX)* z*yep2^W&>OZq1j)@1VI5^Rsj23$IVNe?#*q%+GChx>scs8%S}VHRD{a6@0RKMLNa# z+c1}0E~yxf%hjSd*AMetjaw5}x_W3*oF~Wpsx0(^>lAkZ#l5y;UYH!XFEmDnUf*XX z=EbSnLfetYanyLeHRg90_#X3j*V#vNKIWy%>w{hPjGB zDBKV_ub<-H{g`WMT5%h5YU*h|3-c+e#gm#l_x(n3o)PA{6KXpRZn6HP$1^e4W9Iu= zW#zcgya;m>R`%t7$;=*loxyQ#GR#um=$T3Lm~rkvkdnv9I=f1(*=0(l#yN|XGQJmk5`NFA>a-KWRE~M9K#oW>0!^zAx^#XdG z3e1-!y2q3on!C~Klwr>ES>iUDHY1Pb<5$vnNuH+d+DXn7=cVECel16P7>4A0D7IoalUopH_ivr?dkE6m3+xdV{>o&`RaVBnr<`*!>uZVN5bt+LFo}mB~fC5ke3P1rU00p1`6o3Ly z017|>C;$bZ02F`%Pyh-*0Vn_kpa2wr0#E=7KmjNK1)u;FfC5ke3P1rU00p1`6!7XgK*L=erWH((0;xN+5D7;PNdz#DcB`jxo+$p1_ncPr$~*o z?^*_@iG!#Ag6#X?`7Na7ToH^^*f+?LeR3o>nzXwus;nm{f2lZUR!B<-X;YQj>rbrt zu^i1kae7iJY10-T5gtlrA3%2dt#5ru+rG4;SsoA`g=}6)+!NBy*}7cxZq>D;$g;)l za?*-+e$pGAc_sr{^RU}1NxL@7(lav3pN(u@BHNF&(_?L?Mv8_8k#$T9{h73?5|t(4 z6&v>=+m~Q9o3wvarYBp;uFgW%z1=pOv`_1lHH5VTsmS(~$ylWAVqV&2+_s_wS!P&F z18E;h)c^X*s$nv+8P{Vaq`k+L7k#atUySU={dOaywNO^i>1#~*71{W%f3A>LyH#e^ zt6KIJ+3!X=N=f?z!s~t(vFIH3i&s_SDbU1w55==(M{$8rT(yCG`BCS z%96Bq-k*sGG;~TvwtBMXdeUC3nZRKA$raxmPiM6_(xwfw4B2k+Nh8uOTP?GDWo_SxY*k)%H)%6s zjCG=;Y-^EKAL93tHln|_VqxVB9M$?Aj}mFG;&Q(5>!Zon||- z+|v&4Nb9jltg$mJO>vJ&sn(jQq&*ODY*Hzc>5Jx8E#lOZc6+0~8f%`R;@8bssN6-` Tu&(@FHqNcr&|ICJ$u9o_H${-X literal 0 HcmV?d00001 diff --git a/.gradle/2.2.1/taskArtifacts/taskArtifacts.bin b/.gradle/2.2.1/taskArtifacts/taskArtifacts.bin new file mode 100644 index 0000000000000000000000000000000000000000..6a18885c7f1aefae1f29cd93e2b104b75d581a77 GIT binary patch literal 42047 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 literal 0 HcmV?d00001 diff --git a/dynamicgrid/src/org/askerov/dynamicgrid/BaseDynamicGridAdapter.java b/dynamicgrid/src/org/askerov/dynamicgrid/BaseDynamicGridAdapter.java index 3cca7ed..9317083 100644 --- a/dynamicgrid/src/org/askerov/dynamicgrid/BaseDynamicGridAdapter.java +++ b/dynamicgrid/src/org/askerov/dynamicgrid/BaseDynamicGridAdapter.java @@ -11,12 +11,11 @@ * Time: 10:49 PM */ public abstract class BaseDynamicGridAdapter extends AbstractDynamicGridAdapter { - private Context mContext; private ArrayList mItems = new ArrayList(); private int mColumnCount; - private int mReorderType = DynamicGridView.REORDER_TYPE_NORMAL; + private int mReorderType = DynamicGridView.REORDER_TYPE_SNAKE; protected BaseDynamicGridAdapter(Context context, int columnCount) { this.mContext = context; @@ -100,7 +99,7 @@ public void setColumnCount(int columnCount) { @Override public void reorderItems(int originalPosition, int newPosition) { if (newPosition < getCount()) { - if(mReorderType == DynamicGridView.REORDER_TYPE_NORMAL) { + if(mReorderType == DynamicGridView.REORDER_TYPE_SNAKE) { DynamicGridUtils.reorder(mItems, originalPosition, newPosition); } else if(mReorderType == DynamicGridView.REORDER_TYPE_SWAP) { DynamicGridUtils.swap(mItems, originalPosition, newPosition); diff --git a/dynamicgrid/src/org/askerov/dynamicgrid/DynamicGridView.java b/dynamicgrid/src/org/askerov/dynamicgrid/DynamicGridView.java index ed4fd86..8d6d528 100644 --- a/dynamicgrid/src/org/askerov/dynamicgrid/DynamicGridView.java +++ b/dynamicgrid/src/org/askerov/dynamicgrid/DynamicGridView.java @@ -38,7 +38,7 @@ * Time: 12:31 PM */ public class DynamicGridView extends GridView { - public final static int REORDER_TYPE_NORMAL = 1; + public final static int REORDER_TYPE_SNAKE = 1; public final static int REORDER_TYPE_SWAP = 2; private static final int INVALID_ID = -1; @@ -820,7 +820,7 @@ public boolean onPreDraw() { mTotalOffsetY += mDeltaY; mTotalOffsetX += mDeltaX; - animateReorders(mOriginalPosition, mTargetPosition); + animateReorder(mOriginalPosition, mTargetPosition); mPreviousMobileView.setVisibility(View.VISIBLE); @@ -866,7 +866,7 @@ public boolean onPreDraw() { mTotalOffsetY += mDeltaY; mTotalOffsetX += mDeltaX; - animateReorder(mOriginalPosition, mTargetPosition); + animateSnakeReorder(mOriginalPosition, mTargetPosition); assert mMobileView != null; mMobileView.setVisibility(View.VISIBLE); @@ -923,16 +923,16 @@ private long getId(int position) { } @TargetApi(Build.VERSION_CODES.HONEYCOMB) - private void animateReorders(final int oldPosition, final int newPosition) { - if(getAdapterInterface().getReorderType() == REORDER_TYPE_NORMAL) { - animateReorder(oldPosition, newPosition); + private void animateReorder(final int oldPosition, final int newPosition) { + if(getAdapterInterface().getReorderType() == REORDER_TYPE_SNAKE) { + animateSnakeReorder(oldPosition, newPosition); } else if(getAdapterInterface().getReorderType() == REORDER_TYPE_SWAP) { - animateSwap(oldPosition, newPosition); + animateSwapReorder(oldPosition, newPosition); } } @TargetApi(Build.VERSION_CODES.HONEYCOMB) - private void animateReorder(final int oldPosition, final int newPosition) { + private void animateSnakeReorder(final int oldPosition, final int newPosition) { boolean isForward = newPosition > oldPosition; List resultList = new LinkedList(); @@ -948,7 +948,7 @@ private void animateReorder(final int oldPosition, final int newPosition) { } @TargetApi(Build.VERSION_CODES.HONEYCOMB) - private void animateSwap(final int oldPosition, final int newPosition) { + private void animateSwapReorder(final int oldPosition, final int newPosition) { List resultList = new LinkedList(); From a1c5d4b5b4287dda83c8384a407a62ba5313b1e9 Mon Sep 17 00:00:00 2001 From: Simon Schubert Date: Sat, 21 Feb 2015 15:35:26 +0100 Subject: [PATCH 3/5] added hiden gradle folder to git ignore --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index c21fa8d..3d984b8 100644 --- a/.gitignore +++ b/.gitignore @@ -22,6 +22,9 @@ gen/ build/ *.iml +# Gradle +.gradle + dynamicgrid/proguard-project.txt dynamicgrid/build.xml From 982e812e96c2e923c348aebf51c9d63635d690ba Mon Sep 17 00:00:00 2001 From: Simon Schubert Date: Sat, 21 Feb 2015 15:36:51 +0100 Subject: [PATCH 4/5] added hiden gradle folder to git ignore --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 3d984b8..605e2ac 100644 --- a/.gitignore +++ b/.gitignore @@ -23,7 +23,7 @@ build/ *.iml # Gradle -.gradle +.gradle/ dynamicgrid/proguard-project.txt From ed300a74f6b1cd1264a3e300db8ac889796c0476 Mon Sep 17 00:00:00 2001 From: Simon Schubert Date: Sat, 21 Feb 2015 15:41:05 +0100 Subject: [PATCH 5/5] removed gradle files --- .../2.2.1/taskArtifacts/cache.properties.lock | Bin 17 -> 0 bytes .gradle/2.2.1/taskArtifacts/fileHashes.bin | Bin 24629 -> 0 bytes .gradle/2.2.1/taskArtifacts/fileSnapshots.bin | Bin 73599 -> 0 bytes .../2.2.1/taskArtifacts/outputFileStates.bin | Bin 19862 -> 0 bytes .gradle/2.2.1/taskArtifacts/taskArtifacts.bin | Bin 42047 -> 0 bytes 5 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 .gradle/2.2.1/taskArtifacts/cache.properties.lock delete mode 100644 .gradle/2.2.1/taskArtifacts/fileHashes.bin delete mode 100644 .gradle/2.2.1/taskArtifacts/fileSnapshots.bin delete mode 100644 .gradle/2.2.1/taskArtifacts/outputFileStates.bin delete mode 100644 .gradle/2.2.1/taskArtifacts/taskArtifacts.bin diff --git a/.gradle/2.2.1/taskArtifacts/cache.properties.lock b/.gradle/2.2.1/taskArtifacts/cache.properties.lock deleted file mode 100644 index 205843afab7ef33ec8bbb1ea00802cce6be187d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17 VcmZSHY>_L1o;2} diff --git a/.gradle/2.2.1/taskArtifacts/fileHashes.bin b/.gradle/2.2.1/taskArtifacts/fileHashes.bin deleted file mode 100644 index e0f34cba265a4c88d835eef4456da09328f3ab58..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24629 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 IQppefFGS|3?f?J) diff --git a/.gradle/2.2.1/taskArtifacts/fileSnapshots.bin b/.gradle/2.2.1/taskArtifacts/fileSnapshots.bin deleted file mode 100644 index e073325d361e51c4beb66173ae440efc86b3e07e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 73599 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 TiheKdn0K56CIvxhcANhP$6ZJO diff --git a/.gradle/2.2.1/taskArtifacts/outputFileStates.bin b/.gradle/2.2.1/taskArtifacts/outputFileStates.bin deleted file mode 100644 index eecdf3db6154bec344cd5c4aca15060761e67762..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19862 zcmeI3`BM{D9KbU%90CefAqZjxxs)qZMG!;|kpu#wkrpLh6$M2pWjv50MWu)u#DhVl zR477JtRPbHsE8tiP=jE=sDPpzS}r;30WFl5-N*R;f&S3>?o5*1&*#0D&1aIIHY;7q zVCZU%(i`Km?No7P-)D!g3k9G66o3Ly017|>C;$bZ02F`%Pyh-*0Vn_kpa2wr0#E=7 z{7(u<{l`9t8uejx?U;(4*K#G1bPt2U(HJ|lO3V$kXXobYQe(WG@s)(6J52FUDhX)* z*yep2^W&>OZq1j)@1VI5^Rsj23$IVNe?#*q%+GChx>scs8%S}VHRD{a6@0RKMLNa# z+c1}0E~yxf%hjSd*AMetjaw5}x_W3*oF~Wpsx0(^>lAkZ#l5y;UYH!XFEmDnUf*XX z=EbSnLfetYanyLeHRg90_#X3j*V#vNKIWy%>w{hPjGB zDBKV_ub<-H{g`WMT5%h5YU*h|3-c+e#gm#l_x(n3o)PA{6KXpRZn6HP$1^e4W9Iu= zW#zcgya;m>R`%t7$;=*loxyQ#GR#um=$T3Lm~rkvkdnv9I=f1(*=0(l#yN|XGQJmk5`NFA>a-KWRE~M9K#oW>0!^zAx^#XdG z3e1-!y2q3on!C~Klwr>ES>iUDHY1Pb<5$vnNuH+d+DXn7=cVECel16P7>4A0D7IoalUopH_ivr?dkE6m3+xdV{>o&`RaVBnr<`*!>uZVN5bt+LFo}mB~fC5ke3P1rU00p1`6o3Ly z017|>C;$bZ02F`%Pyh-*0Vn_kpa2wr0#E=7KmjNK1)u;FfC5ke3P1rU00p1`6!7XgK*L=erWH((0;xN+5D7;PNdz#DcB`jxo+$p1_ncPr$~*o z?^*_@iG!#Ag6#X?`7Na7ToH^^*f+?LeR3o>nzXwus;nm{f2lZUR!B<-X;YQj>rbrt zu^i1kae7iJY10-T5gtlrA3%2dt#5ru+rG4;SsoA`g=}6)+!NBy*}7cxZq>D;$g;)l za?*-+e$pGAc_sr{^RU}1NxL@7(lav3pN(u@BHNF&(_?L?Mv8_8k#$T9{h73?5|t(4 z6&v>=+m~Q9o3wvarYBp;uFgW%z1=pOv`_1lHH5VTsmS(~$ylWAVqV&2+_s_wS!P&F z18E;h)c^X*s$nv+8P{Vaq`k+L7k#atUySU={dOaywNO^i>1#~*71{W%f3A>LyH#e^ zt6KIJ+3!X=N=f?z!s~t(vFIH3i&s_SDbU1w55==(M{$8rT(yCG`BCS z%96Bq-k*sGG;~TvwtBMXdeUC3nZRKA$raxmPiM6_(xwfw4B2k+Nh8uOTP?GDWo_SxY*k)%H)%6s zjCG=;Y-^EKAL93tHln|_VqxVB9M$?Aj}mFG;&Q(5>!Zon||- z+|v&4Nb9jltg$mJO>vJ&sn(jQq&*ODY*Hzc>5Jx8E#lOZc6+0~8f%`R;@8bssN6-` Tu&(@FHqNcr&|ICJ$u9o_H${-X diff --git a/.gradle/2.2.1/taskArtifacts/taskArtifacts.bin b/.gradle/2.2.1/taskArtifacts/taskArtifacts.bin deleted file mode 100644 index 6a18885c7f1aefae1f29cd93e2b104b75d581a77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 42047 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