From 55ff957560d22e579cd015e252470254fe7aa389 Mon Sep 17 00:00:00 2001 From: Arvind Menon Date: Sat, 30 Aug 2014 20:56:46 -0400 Subject: [PATCH] Adding methods to open and close items --- .../daimajia/swipedemo/GridViewExample.java | 30 ++++++++++++++++++- .../daimajia/swipedemo/ListViewExample.java | 29 ++++++++++++++++++ .../java/com/daimajia/swipe/SwipeAdapter.java | 30 +++++++++++++++++++ 3 files changed, 88 insertions(+), 1 deletion(-) diff --git a/demo/src/main/java/com/daimajia/swipedemo/GridViewExample.java b/demo/src/main/java/com/daimajia/swipedemo/GridViewExample.java index 74998c8..f1069d5 100644 --- a/demo/src/main/java/com/daimajia/swipedemo/GridViewExample.java +++ b/demo/src/main/java/com/daimajia/swipedemo/GridViewExample.java @@ -1,8 +1,12 @@ package com.daimajia.swipedemo; import android.app.Activity; +import android.content.Intent; import android.os.Bundle; +import android.os.Handler; import android.util.Log; +import android.view.Menu; +import android.view.MenuItem; import android.view.View; import android.widget.AdapterView; import android.widget.GridView; @@ -17,7 +21,7 @@ public class GridViewExample extends Activity{ super.onCreate(savedInstanceState); setContentView(R.layout.gridview); final GridView gridView = (GridView)findViewById(R.id.gridview); - GridViewAdapter adapter = new GridViewAdapter(this); + final GridViewAdapter adapter = new GridViewAdapter(this); adapter.setMode(SwipeAdapter.Mode.Multiple); gridView.setAdapter(adapter); gridView.setSelected(false); @@ -47,5 +51,29 @@ public class GridViewExample extends Activity{ } }); + + Handler handler = (new Handler()); + // Open up some items in the list + handler.postDelayed(new Runnable() { + @Override + public void run() { + adapter.openItem(1); + adapter.openItem(2); + adapter.openItem(3); + adapter.openItem(1); + } + }, 1000); + + + // Close some items in the list + handler.postDelayed(new Runnable() { + @Override + public void run() { + adapter.closeItem(1); + adapter.closeItem(1); + adapter.closeItem(3); + } + }, 3000); + } } diff --git a/demo/src/main/java/com/daimajia/swipedemo/ListViewExample.java b/demo/src/main/java/com/daimajia/swipedemo/ListViewExample.java index f5fd8ef..ee6f75e 100644 --- a/demo/src/main/java/com/daimajia/swipedemo/ListViewExample.java +++ b/demo/src/main/java/com/daimajia/swipedemo/ListViewExample.java @@ -3,6 +3,7 @@ package com.daimajia.swipedemo; import android.app.Activity; import android.content.Intent; import android.os.Bundle; +import android.os.Handler; import android.util.Log; import android.view.Menu; import android.view.MenuItem; @@ -19,6 +20,7 @@ public class ListViewExample extends Activity { private ListView mListView; private ListViewAdapter mAdapter; + private int mPositionToTest; @Override protected void onCreate(Bundle savedInstanceState) { @@ -71,6 +73,31 @@ public class ListViewExample extends Activity { Log.e("ListView", "onNothingSelected:"); } }); + + final Handler handler = (new Handler()); + mPositionToTest = 0; + Runnable runnable = new Runnable() { + @Override + public void run() { + mAdapter.openItem(mPositionToTest++); + if(mPositionToTest < 5) + handler.postDelayed(this, 1000); + } + }; + // Open up some items in the list + handler.postDelayed(runnable, 1000); + + + // Close some items in the list + handler.postDelayed(new Runnable() { + @Override + public void run() { + mAdapter.closeItem(1); + mAdapter.closeItem(4); + mAdapter.closeItem(4); + } + }, 8000); + } @@ -89,9 +116,11 @@ public class ListViewExample extends Activity { int id = item.getItemId(); if (id == R.id.action_listview) { startActivity(new Intent(this, ListViewExample.class)); + finish(); return true; }else if(id == R.id.action_gridview){ startActivity(new Intent(this, GridViewExample.class)); + finish(); return true; } return super.onOptionsItemSelected(item); diff --git a/library/src/main/java/com/daimajia/swipe/SwipeAdapter.java b/library/src/main/java/com/daimajia/swipe/SwipeAdapter.java index ae294f6..bcb64b2 100644 --- a/library/src/main/java/com/daimajia/swipe/SwipeAdapter.java +++ b/library/src/main/java/com/daimajia/swipe/SwipeAdapter.java @@ -91,6 +91,36 @@ public abstract class SwipeAdapter extends BaseAdapter { return mode; } + /** + * Open and item in the list + * + * @param position Position of the item + */ + public void openItem(int position) { + if(mode == Mode.Multiple){ + if(!mOpenPositions.contains(position)) + mOpenPositions.add(position); + }else{ + mOpenPosition = position; + } + notifyDataSetChanged(); + } + + /** + * Close an item in the list + * + * @param position Position of the item + */ + public void closeItem(int position) { + if(mode == Mode.Multiple){ + mOpenPositions.remove(position); + }else{ + if(mOpenPosition == position) + mOpenPosition = INVALID_POSITION; + } + notifyDataSetChanged(); + } + class ValueBox { OnLayoutListener onLayoutListener; SwipeMemory swipeMemory;