migration to android support due to androidx instability
This commit is contained in:
+35
-51
@@ -3,42 +3,32 @@ package ru.vtosters.lite.ui.fragments.dockbar;
|
||||
import android.content.res.ColorStateList;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.Typeface;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.util.Log;
|
||||
import android.util.TypedValue;
|
||||
import android.view.Gravity;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.ItemTouchHelper;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.vtosters.lite.R;
|
||||
import com.vtosters.lite.fragments.f.FriendsFragment;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import ru.vtosters.lite.utils.Helper;
|
||||
|
||||
public class DockBarEditAdapter extends RecyclerView.Adapter<DockBarEditAdapter.DockBarEditViewHolder>
|
||||
public class DockBarAdapter extends RecyclerView.a<DockBarAdapter.DockBarEditViewHolder>
|
||||
implements IItemTouchHelper {
|
||||
|
||||
public static final int SELECTED_TAB_TYPE = 1;
|
||||
public static final int DISABLED_TAB_TYPE = 2;
|
||||
|
||||
public static DockBarEditHelper sDockBarEditHelper = DockBarEditHelper.getInstance();
|
||||
private final DockBarManager mDockBarManager = DockBarManager.getInstance();
|
||||
|
||||
private ItemTouchHelper mItemTouchHelper;
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public DockBarEditViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
|
||||
public DockBarEditViewHolder b(ViewGroup parent, int i) {
|
||||
LinearLayout container = new LinearLayout(parent.getContext());
|
||||
container.setLayoutParams(new LinearLayout.LayoutParams(-1, -2));
|
||||
|
||||
@@ -63,6 +53,7 @@ public class DockBarEditAdapter extends RecyclerView.Adapter<DockBarEditAdapter.
|
||||
Helper.convertDpToPixel(12)
|
||||
);
|
||||
container.setLayoutParams(new LinearLayout.LayoutParams(-1, Helper.convertDpToPixel(48)));
|
||||
container.setVisibility(View.GONE);
|
||||
|
||||
TypedValue typedValue = new TypedValue();
|
||||
Helper.GetContext().getTheme().resolveAttribute(R.attr.text_secondary, typedValue, true);
|
||||
@@ -75,7 +66,7 @@ public class DockBarEditAdapter extends RecyclerView.Adapter<DockBarEditAdapter.
|
||||
|
||||
ImageView icon = new ImageView(Helper.GetContext());
|
||||
icon.setTag("icon");
|
||||
icon.setImageTintList(ColorStateList.valueOf(textSecondary));
|
||||
icon.setImageTintList(ColorStateList.valueOf(Color.BLACK));
|
||||
icon.setLayoutParams(new LinearLayout.LayoutParams(
|
||||
Helper.convertDpToPixel(24),
|
||||
Helper.convertDpToPixel(24)));
|
||||
@@ -83,10 +74,9 @@ public class DockBarEditAdapter extends RecyclerView.Adapter<DockBarEditAdapter.
|
||||
|
||||
TextView title = new TextView(Helper.GetContext());
|
||||
title.setTag("title");
|
||||
title.setText("text");
|
||||
title.setTextSize(16.0f);
|
||||
title.setTypeface(Typeface.DEFAULT_BOLD);
|
||||
title.setTextColor(textPrimary);
|
||||
//title.setTextColor(textPrimary);
|
||||
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(0, -2);
|
||||
params.weight = 1;
|
||||
params.leftMargin = Helper.convertDpToPixel(16);
|
||||
@@ -106,7 +96,6 @@ public class DockBarEditAdapter extends RecyclerView.Adapter<DockBarEditAdapter.
|
||||
private View createGroupTitle() {
|
||||
TextView title = new TextView(Helper.GetContext());
|
||||
title.setTag("group_title");
|
||||
title.setText("text");
|
||||
title.setTextSize(13.0f);
|
||||
title.setPadding(
|
||||
Helper.convertDpToPixel(16),
|
||||
@@ -116,43 +105,38 @@ public class DockBarEditAdapter extends RecyclerView.Adapter<DockBarEditAdapter.
|
||||
);
|
||||
title.setAllCaps(true);
|
||||
title.setLayoutParams(new LinearLayout.LayoutParams(-1, -2));
|
||||
title.setVisibility(View.GONE);
|
||||
|
||||
TypedValue typedValue = new TypedValue();
|
||||
Helper.GetContext().getTheme().resolveAttribute(R.attr.text_secondary, typedValue, true);
|
||||
|
||||
int textPrimary = typedValue.data;
|
||||
|
||||
title.setTextColor(textPrimary);
|
||||
title.setTextColor(Color.BLACK);
|
||||
|
||||
return title;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(@NonNull DockBarEditViewHolder holder, int position) {
|
||||
int viewType = sDockBarEditHelper.getItemType(position);
|
||||
DockBarTab item = new DockBarTab("tab_friends", R.drawable.ic_user_24, R.string.friends, R.id.menu_friends, FriendsFragment.class);
|
||||
Log.d("guzno", "bind");
|
||||
holder.bind(item);
|
||||
// if (viewType == 1) {
|
||||
// holder.bind(item);
|
||||
// //holder.bind(sDockBarEditHelper.getSelectedTab(position));
|
||||
// } else if (viewType == 2) {
|
||||
// holder.bind(item);
|
||||
// //holder.bind(DockBarInjector.sDockBarEditHelper.getDisabledTab(position));
|
||||
// } else if (viewType == RecyclerView.INVALID_TYPE) {
|
||||
// holder.bind(item);
|
||||
// //holder.bind(DockBarInjector.sDockBarEditHelper.getGroupTitle(position));
|
||||
// }
|
||||
public void a(DockBarEditViewHolder holder, int position) {
|
||||
int viewType = mDockBarManager.getItemType(position);
|
||||
if (viewType == 1) {
|
||||
holder.bind(mDockBarManager.getSelectedTab(position));
|
||||
} else if (viewType == 2) {
|
||||
holder.bind(mDockBarManager.getDisabledTab(position));
|
||||
} else if (viewType == androidx.recyclerview.widget.RecyclerView.INVALID_TYPE) {
|
||||
holder.bind(mDockBarManager.getGroupTitle(position));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
return sDockBarEditHelper.getItemCount();
|
||||
public int au_() {
|
||||
return mDockBarManager.getItemCount();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onItemDismiss(int index) {
|
||||
sDockBarEditHelper.move(this, index);
|
||||
mDockBarManager.move(this, index);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -163,19 +147,19 @@ public class DockBarEditAdapter extends RecyclerView.Adapter<DockBarEditAdapter.
|
||||
if (fromPosition < toPosition) {
|
||||
|
||||
if (fromViewType != toViewType) {
|
||||
sDockBarEditHelper.swapAndMigrate(this, fromPosition, toPosition);
|
||||
mDockBarManager.swapAndMigrate(this, fromPosition, toPosition);
|
||||
} else {
|
||||
List<DockBarTab> list = fromViewType == 1 ? sDockBarEditHelper.getSelectedTabs() : sDockBarEditHelper.getDisabledTabs();
|
||||
sDockBarEditHelper.swap(this, list, fromViewType, fromPosition, toPosition);
|
||||
List<DockBarTab> list = fromViewType == 1 ? mDockBarManager.getSelectedTabs() : mDockBarManager.getDisabledTabs();
|
||||
mDockBarManager.swap(this, list, fromViewType, fromPosition, toPosition);
|
||||
}
|
||||
|
||||
} else if (toPosition != 0) {
|
||||
|
||||
if (fromViewType != toViewType){
|
||||
sDockBarEditHelper.swapAndMigrate(this, fromPosition, toPosition);
|
||||
mDockBarManager.swapAndMigrate(this, fromPosition, toPosition);
|
||||
} else {
|
||||
List<DockBarTab> list = fromViewType == 1 ? sDockBarEditHelper.getSelectedTabs() : sDockBarEditHelper.getDisabledTabs();
|
||||
sDockBarEditHelper.swap(this, list, fromViewType, fromPosition, toPosition);
|
||||
List<DockBarTab> list = fromViewType == 1 ? mDockBarManager.getSelectedTabs() : mDockBarManager.getDisabledTabs();
|
||||
mDockBarManager.swap(this, list, fromViewType, fromPosition, toPosition);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -183,19 +167,17 @@ public class DockBarEditAdapter extends RecyclerView.Adapter<DockBarEditAdapter.
|
||||
return true;
|
||||
}
|
||||
|
||||
public void setItemTouchHelper(ItemTouchHelper itemTouchHelper) {
|
||||
mItemTouchHelper = itemTouchHelper;
|
||||
}
|
||||
|
||||
public int getIndexByViewType(int position, int viewType) {
|
||||
return sDockBarEditHelper.getIndexByViewType(position, viewType);
|
||||
return mDockBarManager.getIndexByViewType(position, viewType);
|
||||
}
|
||||
|
||||
public int getItemType(int position) {
|
||||
return sDockBarEditHelper.getItemType(position);
|
||||
return mDockBarManager.getItemType(position);
|
||||
}
|
||||
|
||||
static class DockBarEditViewHolder extends RecyclerView.ViewHolder {
|
||||
|
||||
|
||||
static class DockBarEditViewHolder extends RecyclerView.x {
|
||||
|
||||
private LinearLayout mTabContainer;
|
||||
private ImageView mIcon;
|
||||
@@ -204,7 +186,7 @@ public class DockBarEditAdapter extends RecyclerView.Adapter<DockBarEditAdapter.
|
||||
|
||||
private TextView mGroupTitle;
|
||||
|
||||
public DockBarEditViewHolder(@NonNull View itemView) {
|
||||
public DockBarEditViewHolder(View itemView) {
|
||||
super(itemView);
|
||||
|
||||
mTabContainer = itemView.findViewWithTag("tab_item_container");
|
||||
@@ -217,11 +199,13 @@ public class DockBarEditAdapter extends RecyclerView.Adapter<DockBarEditAdapter.
|
||||
|
||||
public void bind(DockBarTab tab) {
|
||||
Log.d("guzno", String.format("Bind data: { Icon: %d, Title: %s }", tab.iconID, Helper.GetContext().getString(tab.titleID)));
|
||||
mTabContainer.setVisibility(View.VISIBLE);
|
||||
mIcon.setImageResource(tab.iconID);
|
||||
mTitle.setText(tab.titleID);
|
||||
}
|
||||
|
||||
public void bind(String groupTitle) {
|
||||
mGroupTitle.setVisibility(View.VISIBLE);
|
||||
mGroupTitle.setText(groupTitle);
|
||||
}
|
||||
}
|
||||
+14
-16
@@ -1,23 +1,22 @@
|
||||
package ru.vtosters.lite.ui.fragments.dockbar;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.support.v7.widget.LinearLayoutManager;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.support.v7.widget.a.ItemTouchHelper;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.LinearLayout;
|
||||
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import me.grishka.appkit.fragments.ToolbarFragment;
|
||||
|
||||
public class DockBarEditFragment extends ToolbarFragment {
|
||||
public class DockBarFragment extends ToolbarFragment {
|
||||
|
||||
private RecyclerView mRecyclerView;
|
||||
|
||||
private DockBarEditAdapter mAdapter;
|
||||
private DockBarAdapter mAdapter;
|
||||
private ItemTouchHelper mItemTouchHelper;
|
||||
|
||||
@Override
|
||||
public View d(LayoutInflater layoutInflater, ViewGroup viewGroup, Bundle bundle) {
|
||||
@@ -29,22 +28,16 @@ public class DockBarEditFragment extends ToolbarFragment {
|
||||
mRecyclerView = new RecyclerView(n());
|
||||
mRecyclerView.setHasFixedSize(true);
|
||||
mRecyclerView.setLayoutManager(new LinearLayoutManager(n()));
|
||||
mAdapter = new DockBarEditAdapter();
|
||||
mAdapter = new DockBarAdapter();
|
||||
mRecyclerView.setAdapter(mAdapter);
|
||||
container.addView(mRecyclerView, new LinearLayout.LayoutParams(-1, -1));
|
||||
|
||||
|
||||
|
||||
//ItemTouchHelper itemTouchHelper = new ItemTouchHelper(new ItemTouchHelperCallback(mAdapter));
|
||||
//itemTouchHelper.attachToRecyclerView(mRecyclerView);
|
||||
|
||||
//mAdapter.setItemTouchHelper(itemTouchHelper);
|
||||
mItemTouchHelper = new ItemTouchHelper(new ItemTouchHelperCallback(mAdapter));
|
||||
mItemTouchHelper.a(mRecyclerView);
|
||||
|
||||
return container;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public void a(View arg0, Bundle arg1) {
|
||||
Log.d("test", "Called onViewCreated method");
|
||||
@@ -55,4 +48,9 @@ public class DockBarEditFragment extends ToolbarFragment {
|
||||
a("Редактор докбара");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void A_() {
|
||||
super.A_();
|
||||
DockBarManager.getInstance().save();
|
||||
}
|
||||
}
|
||||
+26
-22
@@ -13,6 +13,7 @@ import org.json.JSONObject;
|
||||
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
@@ -36,16 +37,17 @@ import com.vtosters.lite.fragments.money.MoneyTransfersFragment;
|
||||
|
||||
import ru.vtosters.lite.ui.fragments.MusicFragment;
|
||||
import ru.vtosters.lite.utils.Helper;
|
||||
import ru.vtosters.lite.utils.Prefs;
|
||||
|
||||
public class DockBarEditHelper {
|
||||
public class DockBarManager {
|
||||
static final int MIN_SELECTED_TABS_LIMIT = 4;
|
||||
static final int MAX_SELECTED_TABS_LIMIT = 8;
|
||||
|
||||
private static DockBarEditHelper sInstance = new DockBarEditHelper();
|
||||
private static DockBarManager sInstance = new DockBarManager();
|
||||
|
||||
public static DockBarEditHelper getInstance() {
|
||||
public static DockBarManager getInstance() {
|
||||
if (sInstance == null)
|
||||
sInstance = new DockBarEditHelper();
|
||||
sInstance = new DockBarManager();
|
||||
return sInstance;
|
||||
}
|
||||
|
||||
@@ -53,17 +55,17 @@ public class DockBarEditHelper {
|
||||
private List<DockBarTab> mDisabledTabs = new ArrayList<>();
|
||||
private List<String> mGroups = Arrays.asList(
|
||||
"Выбранные элементы докбара",
|
||||
"Отключённые элементы"
|
||||
"Невыбранные элементы"
|
||||
);
|
||||
|
||||
public DockBarEditHelper() {
|
||||
public DockBarManager() {
|
||||
load();
|
||||
}
|
||||
|
||||
private void load() {
|
||||
File dockbar = new File(Helper.GetContext().getFilesDir(), "dockbar.json");
|
||||
|
||||
// if (!dockbar.exists()) {
|
||||
if (!dockbar.exists()) {
|
||||
mSelectedTabs.add(new DockBarTab("tab_news", R.drawable.ic_newsfeed_28, R.string.newsfeed, R.id.tab_news, NewsfeedFragment.class));
|
||||
mSelectedTabs.add(new DockBarTab("tab_discover", R.drawable.ic_search_28, R.string.search, R.id.tab_discover, DiscoverFeedFragment.class));
|
||||
mSelectedTabs.add(new DockBarTab("tab_messages", R.drawable.ic_menu_messages_28, R.string.messages, R.id.tab_messages, DialogsFragment.class));
|
||||
@@ -81,7 +83,7 @@ public class DockBarEditHelper {
|
||||
mDisabledTabs.add(new DockBarTab("tab_documents", R.drawable.ic_document_24, R.string.docs, R.id.menu_documents, DocumentsViewFragment.class));
|
||||
mDisabledTabs.add(new DockBarTab("tab_payments", R.drawable.ic_money_transfer_24, R.string.money_transfer_money_transfers, R.id.menu_payments, MoneyTransfersFragment.class));
|
||||
mDisabledTabs.add(new DockBarTab("tab_vk_apps", R.drawable.ic_services_24, R.string.menu_apps, R.id.menu_vk_apps, AppsFragment.class));
|
||||
/*} else {
|
||||
} else {
|
||||
try {
|
||||
JSONObject json = new JSONObject(readFully(new FileInputStream(dockbar)));
|
||||
|
||||
@@ -92,7 +94,7 @@ public class DockBarEditHelper {
|
||||
item.getString("tag"),
|
||||
item.getInt("iconID"),
|
||||
item.getInt("titleID"),
|
||||
item.getInt("resID"),
|
||||
item.getInt("id"),
|
||||
Class.forName(item.getString("fragmentClass"))
|
||||
);
|
||||
mSelectedTabs.add(tab);
|
||||
@@ -105,7 +107,7 @@ public class DockBarEditHelper {
|
||||
item.getString("tag"),
|
||||
item.getInt("iconID"),
|
||||
item.getInt("titleID"),
|
||||
item.getInt("resID"),
|
||||
item.getInt("id"),
|
||||
Class.forName(item.getString("fragmentClass"))
|
||||
);
|
||||
mDisabledTabs.add(tab);
|
||||
@@ -114,7 +116,7 @@ public class DockBarEditHelper {
|
||||
} catch (JSONException | IOException | ClassNotFoundException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
||||
private static String readFully(InputStream is) throws IOException {
|
||||
@@ -137,6 +139,7 @@ public class DockBarEditHelper {
|
||||
.put("tag", tab.tag)
|
||||
.put("iconID", tab.iconID)
|
||||
.put("titleID", tab.titleID)
|
||||
.put("id", tab.id)
|
||||
.put("fragmentClass", tab.fragmentClass.getName());
|
||||
selected.put(item);
|
||||
}
|
||||
@@ -147,6 +150,7 @@ public class DockBarEditHelper {
|
||||
.put("tag", tab.tag)
|
||||
.put("iconID", tab.iconID)
|
||||
.put("titleID", tab.titleID)
|
||||
.put("id", tab.id)
|
||||
.put("fragmentClass", tab.fragmentClass.getName());
|
||||
disabled.put(item);
|
||||
}
|
||||
@@ -161,7 +165,7 @@ public class DockBarEditHelper {
|
||||
}
|
||||
}
|
||||
|
||||
public void swap(DockBarEditAdapter adapter, List<DockBarTab> list, int itemType, int fromPosition, int toPosition) {
|
||||
public void swap(DockBarAdapter adapter, List<DockBarTab> list, int itemType, int fromPosition, int toPosition) {
|
||||
int curr = adapter.getIndexByViewType(fromPosition, itemType);
|
||||
int target = adapter.getIndexByViewType(toPosition, itemType);
|
||||
if (fromPosition < toPosition) {
|
||||
@@ -173,10 +177,10 @@ public class DockBarEditHelper {
|
||||
Collections.swap(list, i, i - 1);
|
||||
}
|
||||
}
|
||||
adapter.notifyItemMoved(fromPosition, toPosition);
|
||||
adapter.b(fromPosition, toPosition);// notifyItemMoved
|
||||
}
|
||||
|
||||
public void swapAndMigrate(DockBarEditAdapter adapter, int fromPosition, int toPosition) {
|
||||
public void swapAndMigrate(DockBarAdapter adapter, int fromPosition, int toPosition) {
|
||||
int curr = adapter.getIndexByViewType(fromPosition, adapter.getItemType(fromPosition));
|
||||
int target = adapter.getIndexByViewType(toPosition, adapter.getItemType(toPosition));
|
||||
if (fromPosition < toPosition) {
|
||||
@@ -203,10 +207,10 @@ public class DockBarEditHelper {
|
||||
Collections.swap(mSelectedTabs, i, i - 1);
|
||||
}
|
||||
}
|
||||
adapter.notifyItemMoved(fromPosition, toPosition);
|
||||
adapter.b(fromPosition, toPosition);// notifyItemMoved
|
||||
}
|
||||
|
||||
public void move(DockBarEditAdapter adapter, int index) {
|
||||
public void move(DockBarAdapter adapter, int index) {
|
||||
if (getItemType(index) == 1) {
|
||||
DockBarTab item = mSelectedTabs.get(getIndexByViewType(index, 1));
|
||||
|
||||
@@ -218,8 +222,8 @@ public class DockBarEditHelper {
|
||||
Collections.swap(mDisabledTabs, i, i - 1);
|
||||
}
|
||||
|
||||
adapter.notifyItemRemoved(index);
|
||||
adapter.notifyItemInserted(getItemCount() - mDisabledTabs.size());
|
||||
adapter.e_(index); // notifyItemRemoved
|
||||
adapter.d_(getItemCount() - mDisabledTabs.size()); // notifyItemInserted
|
||||
}
|
||||
}
|
||||
|
||||
@@ -228,9 +232,9 @@ public class DockBarEditHelper {
|
||||
}
|
||||
|
||||
public int getIndexByViewType(int position, int viewType) {
|
||||
if (viewType == DockBarEditAdapter.SELECTED_TAB_TYPE) {
|
||||
if (viewType == DockBarAdapter.SELECTED_TAB_TYPE) {
|
||||
return position - 1;
|
||||
} else if (viewType == DockBarEditAdapter.DISABLED_TAB_TYPE) {
|
||||
} else if (viewType == DockBarAdapter.DISABLED_TAB_TYPE) {
|
||||
return position - (mSelectedTabs.size() + mGroups.size());
|
||||
} else if (viewType == RecyclerView.INVALID_TYPE){
|
||||
return position != 0 ? 1 : 0;
|
||||
@@ -243,9 +247,9 @@ public class DockBarEditHelper {
|
||||
if (position == 0 || position == mSelectedTabs.size() + 1) {
|
||||
return RecyclerView.INVALID_TYPE;
|
||||
} else if (position - 1 < mSelectedTabs.size()) {
|
||||
return DockBarEditAdapter.SELECTED_TAB_TYPE;
|
||||
return DockBarAdapter.SELECTED_TAB_TYPE;
|
||||
} else {
|
||||
return DockBarEditAdapter.DISABLED_TAB_TYPE;
|
||||
return DockBarAdapter.DISABLED_TAB_TYPE;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,18 +1,20 @@
|
||||
package ru.vtosters.lite.ui.fragments.dockbar;
|
||||
|
||||
import com.vk.core.fragments.FragmentImpl;
|
||||
|
||||
public class DockBarTab {
|
||||
|
||||
public String tag;
|
||||
public int iconID;
|
||||
public int titleID;
|
||||
public int resID;
|
||||
public Class<?> fragmentClass;
|
||||
public int id;
|
||||
public Class<? extends FragmentImpl> fragmentClass;
|
||||
|
||||
public DockBarTab(String tag, int iconID, int titleID, int resID, Class<?> fragmentClass) {
|
||||
this.tag = tag;
|
||||
this.iconID = iconID;
|
||||
this.titleID = titleID;
|
||||
this.resID = resID;
|
||||
this.fragmentClass = fragmentClass;
|
||||
this.id = resID;
|
||||
this.fragmentClass = (Class<? extends FragmentImpl>) fragmentClass;
|
||||
}
|
||||
}
|
||||
|
||||
+24
-23
@@ -1,44 +1,45 @@
|
||||
package ru.vtosters.lite.ui.fragments.dockbar;
|
||||
|
||||
import androidx.recyclerview.widget.ItemTouchHelper;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import static androidx.recyclerview.widget.ItemTouchHelper.Callback.makeMovementFlags;
|
||||
|
||||
public class ItemTouchHelperCallback extends ItemTouchHelper.Callback {
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.support.v7.widget.a.ItemTouchHelper;
|
||||
|
||||
private DockBarEditAdapter mAdapter;
|
||||
public class ItemTouchHelperCallback extends ItemTouchHelper.a {
|
||||
|
||||
public ItemTouchHelperCallback(DockBarEditAdapter mAdapter) {
|
||||
private DockBarAdapter mAdapter;
|
||||
|
||||
public ItemTouchHelperCallback(DockBarAdapter mAdapter) {
|
||||
this.mAdapter = mAdapter;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isLongPressDragEnabled() {
|
||||
@Override // isItemViewSwipeEnabled
|
||||
public boolean a() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override // isLongPressDragEnabled
|
||||
public boolean b() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isItemViewSwipeEnabled() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMovementFlags(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) {
|
||||
int pos = mAdapter.getItemType(viewHolder.getAdapterPosition());
|
||||
int dragFlags = pos != RecyclerView.INVALID_TYPE ? ItemTouchHelper.UP | ItemTouchHelper.DOWN : 0;
|
||||
int swipeFlags = pos == 1 ? ItemTouchHelper.START | ItemTouchHelper.END : 0;
|
||||
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 swipeFlags = pos == 1 ? androidx.recyclerview.widget.ItemTouchHelper.START | androidx.recyclerview.widget.ItemTouchHelper.END : 0;
|
||||
return makeMovementFlags(dragFlags, swipeFlags);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder,
|
||||
RecyclerView.ViewHolder target) {
|
||||
if (mAdapter.getItemType(viewHolder.getAdapterPosition()) == RecyclerView.INVALID_TYPE)
|
||||
return false;
|
||||
return mAdapter.onItemMove(viewHolder.getAdapterPosition(), target.getAdapterPosition());
|
||||
public void a(RecyclerView.x viewHolder, int direction) {
|
||||
mAdapter.onItemDismiss(viewHolder.d());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
|
||||
mAdapter.onItemDismiss(viewHolder.getAdapterPosition());
|
||||
public boolean b(RecyclerView recyclerView, RecyclerView.x viewHolder, RecyclerView.x target) {
|
||||
if (mAdapter.getItemType(viewHolder.d()) == androidx.recyclerview.widget.RecyclerView.INVALID_TYPE)
|
||||
return false;
|
||||
return mAdapter.onItemMove(viewHolder.d(), target.d());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user