+ final ProfilesRecyclerViewAdapter adapter = new ProfilesRecyclerViewAdapter(this, mTwoPane);
+ recyclerView.setAdapter(adapter);
+ ItemTouchHelper.Callback cb = new ItemTouchHelper.Callback() {
+ @Override
+ public int getMovementFlags(@NonNull RecyclerView recyclerView,
+ @NonNull RecyclerView.ViewHolder viewHolder) {
+ return makeMovementFlags(ItemTouchHelper.UP | ItemTouchHelper.DOWN, 0);
+ }
+ @Override
+ public boolean onMove(@NonNull RecyclerView recyclerView,
+ @NonNull RecyclerView.ViewHolder viewHolder,
+ @NonNull RecyclerView.ViewHolder target) {
+ Collections.swap(Data.profiles.getList(), viewHolder.getAdapterPosition(),
+ target.getAdapterPosition());
+ MobileLedgerProfile.storeProfilesOrder();
+ adapter.notifyItemMoved(viewHolder.getAdapterPosition(),
+ target.getAdapterPosition());
+ return true;
+ }
+ @Override
+ public void onSwiped(@NonNull RecyclerView.ViewHolder viewHolder, int i) {
+
+ }
+ };
+ new ItemTouchHelper(cb).attachToRecyclerView(recyclerView);
+ recyclerView.addItemDecoration(new DividerItemDecoration(recyclerView.getContext(),
+ DividerItemDecoration.VERTICAL));
+
+ recyclerView.setOnFlingListener(new RecyclerView.OnFlingListener() {
+ @Override
+ public boolean onFling(int dX, int dY) {
+// Log.d("tmp", String.format("fling %d %d", dX, dY));
+ if (dY > 0) fab.hide();
+ if (dY < 0) fab.show();
+ return false;
+ }
+ });
+
+ recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
+ @Override
+ public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
+ super.onScrolled(recyclerView, dx, dy);
+ if (dy > 0) fab.hide();
+ if (dy < 0) fab.show();
+ }
+ });