Added Drag and Drop support

pull/41/head
Michael Schättgen 9 years ago
parent 5a2aee70c6
commit 5783066e38

@ -23,6 +23,7 @@ android {
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:24.1.1'
compile 'com.github.nisrulz:recyclerviewhelper:24.1.1'
compile 'com.android.support:design:24.1.1'
compile 'com.amulyakhare:com.amulyakhare.textdrawable:1.0.1'
compile 'me.dm7.barcodescanner:zxing:1.9'

@ -17,15 +17,17 @@ import com.amulyakhare.textdrawable.util.ColorGenerator;
import java.security.Key;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;
import java.util.Timer;
import java.util.TimerTask;
import github.nisrulz.recyclerviewhelper.RVHAdapter;
import me.impy.aegis.crypto.OTP;
import me.impy.aegis.helpers.ItemClickListener;
public class KeyProfileAdapter extends RecyclerView.Adapter<KeyProfileAdapter.KeyProfileHolder> {
public class KeyProfileAdapter extends RecyclerView.Adapter<KeyProfileAdapter.KeyProfileHolder> implements RVHAdapter {
private ArrayList<KeyProfile> mKeyProfiles;
private final List<KeyProfileHolder> lstHolders;
private final ItemClickListener itemClickListener;
@ -43,6 +45,29 @@ public class KeyProfileAdapter extends RecyclerView.Adapter<KeyProfileAdapter.Ke
}
};
@Override
public boolean onItemMove(int fromPosition, int toPosition) {
swap(fromPosition, toPosition);
return false;
}
@Override
public void onItemDismiss(int position, int direction) {
remove(position);
}
// Helper functions you might want to implement to make changes in the list as an event is fired
private void remove(int position) {
mKeyProfiles.remove(position);
notifyItemRemoved(position);
}
private void swap(int firstPosition, int secondPosition) {
Collections.swap(mKeyProfiles, firstPosition, secondPosition);
notifyItemMoved(firstPosition, secondPosition);
}
public static class KeyProfileHolder extends RecyclerView.ViewHolder {
TextView profileName;
TextView profileCode;

@ -14,6 +14,7 @@ import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar;
import android.support.v7.widget.helper.ItemTouchHelper;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
@ -26,6 +27,8 @@ import com.yarolegovich.lovelydialog.LovelyTextInputDialog;
import java.util.ArrayList;
import github.nisrulz.recyclerviewhelper.RVHItemDividerDecoration;
import github.nisrulz.recyclerviewhelper.RVHItemTouchHelperCallback;
import me.impy.aegis.crypto.KeyInfo;
import me.impy.aegis.crypto.OTP;
import me.impy.aegis.helpers.DividerItemDecoration;
@ -62,8 +65,6 @@ public class MainActivity extends AppCompatActivity {
LinearLayoutManager mLayoutManager = new LinearLayoutManager(this);
rvKeyProfiles.setLayoutManager(mLayoutManager);
rvKeyProfiles.addItemDecoration(new DividerItemDecoration(this, LinearLayoutManager.VERTICAL));
final Context context = this.getApplicationContext();
ItemClickListener itemClickListener = new ItemClickListener() {
@Override
@ -77,6 +78,12 @@ public class MainActivity extends AppCompatActivity {
};
mKeyProfileAdapter = new KeyProfileAdapter(mKeyProfiles, itemClickListener);
rvKeyProfiles.addItemDecoration(new RVHItemDividerDecoration(this, LinearLayoutManager.VERTICAL));
ItemTouchHelper.Callback callback = new RVHItemTouchHelperCallback(mKeyProfileAdapter, true, false, false);
ItemTouchHelper helper = new ItemTouchHelper(callback);
helper.attachToRecyclerView(rvKeyProfiles);
rvKeyProfiles.setAdapter(mKeyProfileAdapter);
}

Loading…
Cancel
Save