diff --git a/app/src/main/java/ru/vtosters/lite/ui/fragments/dockbar/DockBarAdapter.java b/app/src/main/java/ru/vtosters/lite/ui/fragments/dockbar/DockBarAdapter.java index 8c6ba533d..903161b35 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/fragments/dockbar/DockBarAdapter.java +++ b/app/src/main/java/ru/vtosters/lite/ui/fragments/dockbar/DockBarAdapter.java @@ -16,30 +16,33 @@ import android.widget.TextView; import com.vtosters.lite.R; import java.util.List; +import java.util.concurrent.atomic.AtomicInteger; import ru.vtosters.lite.utils.Helper; import ru.vtosters.lite.utils.Themes; -public class DockBarAdapter extends RecyclerView.a +public class DockBarAdapter extends RecyclerView.a implements IItemTouchHelper { public static final int SELECTED_TAB_TYPE = 1; public static final int DISABLED_TAB_TYPE = 2; + public static final int GROUP_TITLE_TYPE = 3; + private final DockBarManager mDockBarManager = DockBarManager.getInstance(); @Override - public DockBarEditViewHolder b(ViewGroup parent, int i) { - LinearLayout container = new LinearLayout(parent.getContext()); - container.setLayoutParams(new LinearLayout.LayoutParams(-1, -2)); + public RecyclerView.x b(ViewGroup parent, int viewType) { + if (viewType == GROUP_TITLE_TYPE) { + return new GroupViewHolder(createGroupTitle()); + } else { + return new DockBarEditViewHolder(createTabItem()); + } + } - View tabItem = createTabItem(); - container.addView(tabItem, new LinearLayout.LayoutParams(-1, -2)); - - View groupTitle = createGroupTitle(); - container.addView(groupTitle, new LinearLayout.LayoutParams(-1, -2)); - - return new DockBarEditViewHolder(container); + @Override + public int b(int i) { + return getItemType(i); } private View createTabItem() { @@ -54,7 +57,6 @@ public class DockBarAdapter extends RecyclerView.a list = fromViewType == 1 ? mDockBarManager.getSelectedTabs() : mDockBarManager.getDisabledTabs(); + List list = fromViewType == SELECTED_TAB_TYPE ? mDockBarManager.getSelectedTabs() : mDockBarManager.getDisabledTabs(); mDockBarManager.swap(this, list, fromViewType, fromPosition, toPosition); } @@ -145,7 +142,7 @@ public class DockBarAdapter extends RecyclerView.a list = fromViewType == 1 ? mDockBarManager.getSelectedTabs() : mDockBarManager.getDisabledTabs(); + List list = fromViewType == SELECTED_TAB_TYPE ? mDockBarManager.getSelectedTabs() : mDockBarManager.getDisabledTabs(); mDockBarManager.swap(this, list, fromViewType, fromPosition, toPosition); } @@ -162,35 +159,35 @@ public class DockBarAdapter extends RecyclerView.a= mSelectedTabs.size()) { return DockBarAdapter.DISABLED_TAB_TYPE; } + return -1; } public DockBarTab getSelectedTab(int pos) { diff --git a/app/src/main/java/ru/vtosters/lite/ui/fragments/dockbar/ItemTouchHelperCallback.java b/app/src/main/java/ru/vtosters/lite/ui/fragments/dockbar/ItemTouchHelperCallback.java index 245f29c65..efd78dc03 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/fragments/dockbar/ItemTouchHelperCallback.java +++ b/app/src/main/java/ru/vtosters/lite/ui/fragments/dockbar/ItemTouchHelperCallback.java @@ -13,20 +13,20 @@ public class ItemTouchHelperCallback extends ItemTouchHelper.a { this.mAdapter = mAdapter; } - @Override // isItemViewSwipeEnabled + @Override // isLongPressDragEnabled public boolean a() { return true; } - @Override // isLongPressDragEnabled + @Override // isItemViewSwipeEnabled public boolean b() { - return true; + return false; } @Override public int a(RecyclerView recyclerView, RecyclerView.x viewHolder) { int pos = mAdapter.getItemType(viewHolder.d()); - int dragFlags = pos != androidx.recyclerview.widget.RecyclerView.INVALID_TYPE ? androidx.recyclerview.widget.ItemTouchHelper.UP | androidx.recyclerview.widget.ItemTouchHelper.DOWN : 0; + int dragFlags = pos != DockBarAdapter.GROUP_TITLE_TYPE ? androidx.recyclerview.widget.ItemTouchHelper.UP | androidx.recyclerview.widget.ItemTouchHelper.DOWN : 0; int swipeFlags = pos == 1 ? androidx.recyclerview.widget.ItemTouchHelper.START | androidx.recyclerview.widget.ItemTouchHelper.END : 0; return makeMovementFlags(dragFlags, swipeFlags); } @@ -38,7 +38,7 @@ public class ItemTouchHelperCallback extends ItemTouchHelper.a { @Override public boolean b(RecyclerView recyclerView, RecyclerView.x viewHolder, RecyclerView.x target) { - if (mAdapter.getItemType(viewHolder.d()) == androidx.recyclerview.widget.RecyclerView.INVALID_TYPE) + if (mAdapter.getItemType(viewHolder.d()) == DockBarAdapter.GROUP_TITLE_TYPE) return false; return mAdapter.onItemMove(viewHolder.d(), target.d()); }