//Add drag & drop to SetListFragment
This commit is contained in:
parent
3c123f127d
commit
3cc74231c8
|
@ -1 +1 @@
|
||||||
BackPack
|
packwithme
|
|
@ -5,18 +5,13 @@
|
||||||
<GradleProjectSettings>
|
<GradleProjectSettings>
|
||||||
<option name="distributionType" value="DEFAULT_WRAPPED" />
|
<option name="distributionType" value="DEFAULT_WRAPPED" />
|
||||||
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
||||||
|
<option name="gradleJvm" value="1.8" />
|
||||||
<option name="modules">
|
<option name="modules">
|
||||||
<set>
|
<set>
|
||||||
<option value="$PROJECT_DIR$" />
|
<option value="$PROJECT_DIR$" />
|
||||||
<option value="$PROJECT_DIR$/app" />
|
<option value="$PROJECT_DIR$/app" />
|
||||||
</set>
|
</set>
|
||||||
</option>
|
</option>
|
||||||
<option name="myModules">
|
|
||||||
<set>
|
|
||||||
<option value="$PROJECT_DIR$" />
|
|
||||||
<option value="$PROJECT_DIR$/app" />
|
|
||||||
</set>
|
|
||||||
</option>
|
|
||||||
</GradleProjectSettings>
|
</GradleProjectSettings>
|
||||||
</option>
|
</option>
|
||||||
</component>
|
</component>
|
||||||
|
|
|
@ -37,37 +37,10 @@
|
||||||
<ConfirmationsSetting value="0" id="Add" />
|
<ConfirmationsSetting value="0" id="Add" />
|
||||||
<ConfirmationsSetting value="0" id="Remove" />
|
<ConfirmationsSetting value="0" id="Remove" />
|
||||||
</component>
|
</component>
|
||||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" default="true" assert-keyword="true" jdk-15="true" project-jdk-name="1.7" project-jdk-type="JavaSDK">
|
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" default="true" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
|
||||||
<output url="file://$PROJECT_DIR$/build/classes" />
|
<output url="file://$PROJECT_DIR$/build/classes" />
|
||||||
</component>
|
</component>
|
||||||
<component name="ProjectType">
|
<component name="ProjectType">
|
||||||
<option name="id" value="Android" />
|
<option name="id" value="Android" />
|
||||||
</component>
|
</component>
|
||||||
<component name="masterDetails">
|
|
||||||
<states>
|
|
||||||
<state key="ProjectJDKs.UI">
|
|
||||||
<settings>
|
|
||||||
<last-edited>1.8</last-edited>
|
|
||||||
<splitter-proportions>
|
|
||||||
<option name="proportions">
|
|
||||||
<list>
|
|
||||||
<option value="0.2" />
|
|
||||||
</list>
|
|
||||||
</option>
|
|
||||||
</splitter-proportions>
|
|
||||||
</settings>
|
|
||||||
</state>
|
|
||||||
<state key="ScopeChooserConfigurable.UI">
|
|
||||||
<settings>
|
|
||||||
<splitter-proportions>
|
|
||||||
<option name="proportions">
|
|
||||||
<list>
|
|
||||||
<option value="0.2" />
|
|
||||||
</list>
|
|
||||||
</option>
|
|
||||||
</splitter-proportions>
|
|
||||||
</settings>
|
|
||||||
</state>
|
|
||||||
</states>
|
|
||||||
</component>
|
|
||||||
</project>
|
</project>
|
|
@ -2,8 +2,8 @@
|
||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="ProjectModuleManager">
|
<component name="ProjectModuleManager">
|
||||||
<modules>
|
<modules>
|
||||||
<module fileurl="file://$PROJECT_DIR$/BackPack2.iml" filepath="$PROJECT_DIR$/BackPack2.iml" />
|
|
||||||
<module fileurl="file://$PROJECT_DIR$/app/app.iml" filepath="$PROJECT_DIR$/app/app.iml" />
|
<module fileurl="file://$PROJECT_DIR$/app/app.iml" filepath="$PROJECT_DIR$/app/app.iml" />
|
||||||
|
<module fileurl="file://$PROJECT_DIR$/packwithme.iml" filepath="$PROJECT_DIR$/packwithme.iml" />
|
||||||
</modules>
|
</modules>
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="VcsDirectoryMappings">
|
<component name="VcsDirectoryMappings">
|
||||||
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
<mapping directory="" vcs="" />
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
|
@ -15,6 +15,7 @@ import hikapro.com.backpack.model.entities.Set;
|
||||||
import hikapro.com.backpack.presenter.ItemDetailPresenter;
|
import hikapro.com.backpack.presenter.ItemDetailPresenter;
|
||||||
import hikapro.com.backpack.presenter.ItemListPresenter;
|
import hikapro.com.backpack.presenter.ItemListPresenter;
|
||||||
import hikapro.com.backpack.presenter.SetListPresenter;
|
import hikapro.com.backpack.presenter.SetListPresenter;
|
||||||
|
import hikapro.com.backpack.presenter.adapters.helper.OnStartDragListener;
|
||||||
import hikapro.com.backpack.view.View;
|
import hikapro.com.backpack.view.View;
|
||||||
import hikapro.com.backpack.view.fragments.ItemDetailFragment;
|
import hikapro.com.backpack.view.fragments.ItemDetailFragment;
|
||||||
import hikapro.com.backpack.view.fragments.ItemListFragment;
|
import hikapro.com.backpack.view.fragments.ItemListFragment;
|
||||||
|
|
|
@ -25,6 +25,9 @@ public interface Model {
|
||||||
void notifyDataSetChanged();
|
void notifyDataSetChanged();
|
||||||
void setPresenter(Presenter.SetList presenter);
|
void setPresenter(Presenter.SetList presenter);
|
||||||
Presenter.SetList getPresenter();
|
Presenter.SetList getPresenter();
|
||||||
|
|
||||||
|
//GLM
|
||||||
|
List<hikapro.com.backpack.model.entities.Set> getSet();
|
||||||
}
|
}
|
||||||
|
|
||||||
interface Item extends Base {
|
interface Item extends Base {
|
||||||
|
|
|
@ -114,9 +114,11 @@ public class SetModel implements Model.Set {
|
||||||
// other <--
|
// other <--
|
||||||
|
|
||||||
|
|
||||||
|
//GLM
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<hikapro.com.backpack.model.entities.Set> getSet()
|
||||||
|
{
|
||||||
|
return iList;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,10 @@ package hikapro.com.backpack.presenter;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.support.v7.widget.RecyclerView;
|
||||||
|
import android.view.DragEvent;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
import hikapro.com.backpack.model.Model;
|
import hikapro.com.backpack.model.Model;
|
||||||
|
@ -34,6 +37,11 @@ public interface Presenter {
|
||||||
void setModel(Model.Set model);
|
void setModel(Model.Set model);
|
||||||
void notifyDataSetChanged();
|
void notifyDataSetChanged();
|
||||||
void showMessage(String message);
|
void showMessage(String message);
|
||||||
|
|
||||||
|
//GLM_add_resources_SetList
|
||||||
|
void onItemDismiss(int position);
|
||||||
|
boolean onItemMove(int fromPosition, int toPosition);
|
||||||
|
void onStartDrag(RecyclerView.ViewHolder viewHolder);
|
||||||
}
|
}
|
||||||
|
|
||||||
interface ItemList extends Base {
|
interface ItemList extends Base {
|
||||||
|
|
|
@ -2,21 +2,29 @@ package hikapro.com.backpack.presenter;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.support.v4.view.MotionEventCompat;
|
||||||
import android.support.v7.widget.DefaultItemAnimator;
|
import android.support.v7.widget.DefaultItemAnimator;
|
||||||
import android.support.v7.widget.LinearLayoutManager;
|
import android.support.v7.widget.LinearLayoutManager;
|
||||||
import android.support.v7.widget.RecyclerView;
|
import android.support.v7.widget.RecyclerView;
|
||||||
|
import android.support.v7.widget.helper.ItemTouchHelper;
|
||||||
|
import android.view.DragEvent;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.MotionEvent;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
import java.lang.ref.WeakReference;
|
import java.lang.ref.WeakReference;
|
||||||
|
import java.util.Collections;
|
||||||
|
|
||||||
import hikapro.com.backpack.R;
|
import hikapro.com.backpack.R;
|
||||||
import hikapro.com.backpack.model.SetModel;
|
import hikapro.com.backpack.model.SetModel;
|
||||||
import hikapro.com.backpack.model.Model;
|
import hikapro.com.backpack.model.Model;
|
||||||
import hikapro.com.backpack.model.entities.Set;
|
import hikapro.com.backpack.model.entities.Set;
|
||||||
import hikapro.com.backpack.presenter.adapters.SetListAdapter;
|
import hikapro.com.backpack.presenter.adapters.SetListAdapter;
|
||||||
|
import hikapro.com.backpack.presenter.adapters.helper.OnStartDragListener;
|
||||||
|
import hikapro.com.backpack.presenter.adapters.helper.SimpleItemTouchHelperCallback;
|
||||||
import hikapro.com.backpack.view.View;
|
import hikapro.com.backpack.view.View;
|
||||||
|
import hikapro.com.backpack.view.fragments.SetListFragment;
|
||||||
import hikapro.com.backpack.view.recycler.SetViewHolder;
|
import hikapro.com.backpack.view.recycler.SetViewHolder;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -28,12 +36,33 @@ public class SetListPresenter implements Presenter.SetList {
|
||||||
private Model.Set model;
|
private Model.Set model;
|
||||||
private SetListAdapter adapter;
|
private SetListAdapter adapter;
|
||||||
|
|
||||||
|
|
||||||
|
//GLM_add_resources_SetList
|
||||||
|
private OnStartDragListener mDragStartListener;
|
||||||
|
private ItemTouchHelper mItemTouchHelper;
|
||||||
|
|
||||||
public SetListPresenter() {
|
public SetListPresenter() {
|
||||||
this.adapter = new SetListAdapter(this);
|
this.adapter = new SetListAdapter(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
// life cycle -->
|
// life cycle -->
|
||||||
|
|
||||||
|
|
||||||
|
//GLM_add_resources_SetList
|
||||||
|
@Override
|
||||||
|
public void onItemDismiss(int position) {
|
||||||
|
model.getSet().remove(position);
|
||||||
|
adapter.notifyItemRemoved(position);
|
||||||
|
}
|
||||||
|
|
||||||
|
//GLM_add_resources_SetList
|
||||||
|
@Override
|
||||||
|
public boolean onItemMove(int fromPosition, int toPosition) {
|
||||||
|
Collections.swap(model.getSet(), fromPosition, toPosition);
|
||||||
|
adapter.notifyItemMoved(fromPosition, toPosition);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDestroy(boolean isChangingConfiguration) {
|
public void onDestroy(boolean isChangingConfiguration) {
|
||||||
view = null;
|
view = null;
|
||||||
|
@ -52,6 +81,12 @@ public class SetListPresenter implements Presenter.SetList {
|
||||||
setRecycler.setAdapter(adapter);
|
setRecycler.setAdapter(adapter);
|
||||||
setRecycler.setItemAnimator(new DefaultItemAnimator());
|
setRecycler.setItemAnimator(new DefaultItemAnimator());
|
||||||
model.executeQuery();
|
model.executeQuery();
|
||||||
|
|
||||||
|
//GLM_add_resources_SetList
|
||||||
|
ItemTouchHelper.Callback callback = new SimpleItemTouchHelperCallback(adapter);
|
||||||
|
mItemTouchHelper = new ItemTouchHelper(callback);
|
||||||
|
mItemTouchHelper.attachToRecyclerView(setRecycler);
|
||||||
|
|
||||||
return view;
|
return view;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -81,6 +116,17 @@ public class SetListPresenter implements Presenter.SetList {
|
||||||
showMessage("There is no view in presenter");
|
showMessage("There is no view in presenter");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
//GLM_add_resources_SetList
|
||||||
|
holder.cardView.setOnLongClickListener(new android.view.View.OnLongClickListener() {
|
||||||
|
@Override
|
||||||
|
public boolean onLongClick(android.view.View v) {
|
||||||
|
|
||||||
|
mDragStartListener.onStartDrag(holder);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public int getSetsCount() {
|
public int getSetsCount() {
|
||||||
|
@ -128,6 +174,7 @@ public class SetListPresenter implements Presenter.SetList {
|
||||||
@Override
|
@Override
|
||||||
public void setView(View.SetList view) {
|
public void setView(View.SetList view) {
|
||||||
this.view = new WeakReference<>(view);
|
this.view = new WeakReference<>(view);
|
||||||
|
this.mDragStartListener = getView().getOnStartDragListener();
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public void setModel(Model.Set model) {
|
public void setModel(Model.Set model) {
|
||||||
|
@ -147,5 +194,9 @@ public class SetListPresenter implements Presenter.SetList {
|
||||||
throw new NullPointerException("View is unavailable");
|
throw new NullPointerException("View is unavailable");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//GLM_add_resources_SetList
|
||||||
|
@Override
|
||||||
|
public void onStartDrag(RecyclerView.ViewHolder viewHolder) {
|
||||||
|
mItemTouchHelper.startDrag(viewHolder);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,12 +4,13 @@ import android.support.v7.widget.RecyclerView;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
import hikapro.com.backpack.presenter.SetListPresenter;
|
import hikapro.com.backpack.presenter.SetListPresenter;
|
||||||
|
import hikapro.com.backpack.presenter.adapters.helper.ItemTouchHelperAdapter;
|
||||||
import hikapro.com.backpack.view.recycler.SetViewHolder;
|
import hikapro.com.backpack.view.recycler.SetViewHolder;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by tariel on 20/04/16.
|
* Created by tariel on 20/04/16.
|
||||||
*/
|
*/
|
||||||
public class SetListAdapter extends RecyclerView.Adapter<SetViewHolder> {
|
public class SetListAdapter extends RecyclerView.Adapter<SetViewHolder> implements ItemTouchHelperAdapter{
|
||||||
|
|
||||||
private SetListPresenter presenter;
|
private SetListPresenter presenter;
|
||||||
|
|
||||||
|
@ -31,4 +32,16 @@ public class SetListAdapter extends RecyclerView.Adapter<SetViewHolder> {
|
||||||
public int getItemCount() {
|
public int getItemCount() {
|
||||||
return presenter.getSetsCount();
|
return presenter.getSetsCount();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//GLM_add_resources_SetList
|
||||||
|
@Override
|
||||||
|
public void onItemDismiss(int position) {
|
||||||
|
presenter.onItemDismiss(position);
|
||||||
|
}
|
||||||
|
|
||||||
|
//GLM_add_resources_SetList
|
||||||
|
@Override
|
||||||
|
public boolean onItemMove(int fromPosition, int toPosition) {
|
||||||
|
return presenter.onItemMove(fromPosition, toPosition);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
package hikapro.com.backpack.presenter.adapters.helper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by N551 on 25.04.2016.
|
||||||
|
*/
|
||||||
|
//GLM_add_resources_SetList
|
||||||
|
public interface ItemTouchHelperAdapter {
|
||||||
|
|
||||||
|
boolean onItemMove(int fromPosition, int toPosition);
|
||||||
|
|
||||||
|
void onItemDismiss(int position);
|
||||||
|
}
|
|
@ -0,0 +1,12 @@
|
||||||
|
package hikapro.com.backpack.presenter.adapters.helper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by N551 on 25.04.2016.
|
||||||
|
*/
|
||||||
|
//GLM_add_resources_SetList
|
||||||
|
public interface ItemTouchHelperViewHolder {
|
||||||
|
|
||||||
|
void onItemSelected();
|
||||||
|
|
||||||
|
void onItemClear();
|
||||||
|
}
|
|
@ -0,0 +1,12 @@
|
||||||
|
package hikapro.com.backpack.presenter.adapters.helper;
|
||||||
|
|
||||||
|
import android.support.v7.widget.RecyclerView;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by N551 on 25.04.2016.
|
||||||
|
*/
|
||||||
|
//GLM_add_resources_SetList
|
||||||
|
public interface OnStartDragListener {
|
||||||
|
|
||||||
|
void onStartDrag(RecyclerView.ViewHolder viewHolder);
|
||||||
|
}
|
|
@ -0,0 +1,93 @@
|
||||||
|
package hikapro.com.backpack.presenter.adapters.helper;
|
||||||
|
|
||||||
|
import android.graphics.Canvas;
|
||||||
|
import android.support.v7.widget.RecyclerView;
|
||||||
|
import android.support.v7.widget.helper.ItemTouchHelper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by N551 on 25.04.2016.
|
||||||
|
*/
|
||||||
|
//GLM_add_resources_SetList
|
||||||
|
public class SimpleItemTouchHelperCallback extends ItemTouchHelper.Callback {
|
||||||
|
public static final float ALPHA_FULL = 1.0f;
|
||||||
|
|
||||||
|
private final ItemTouchHelperAdapter mAdapter;
|
||||||
|
|
||||||
|
public SimpleItemTouchHelperCallback(ItemTouchHelperAdapter adapter) {
|
||||||
|
mAdapter = adapter;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isLongPressDragEnabled() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isItemViewSwipeEnabled() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getMovementFlags(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) {
|
||||||
|
|
||||||
|
final int dragFlags = ItemTouchHelper.UP | ItemTouchHelper.DOWN;
|
||||||
|
final int swipeFlags = ItemTouchHelper.START | ItemTouchHelper.END;
|
||||||
|
return makeMovementFlags(dragFlags, swipeFlags);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder source, RecyclerView.ViewHolder target) {
|
||||||
|
if (source.getItemViewType() != target.getItemViewType()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Notify the adapter of the move
|
||||||
|
mAdapter.onItemMove(source.getAdapterPosition(), target.getAdapterPosition());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onSwiped(RecyclerView.ViewHolder viewHolder, int i) {
|
||||||
|
// Notify the adapter of the dismissal
|
||||||
|
mAdapter.onItemDismiss(viewHolder.getAdapterPosition());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onChildDraw(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) {
|
||||||
|
if (actionState == ItemTouchHelper.ACTION_STATE_SWIPE) {
|
||||||
|
// Fade out the view as it is swiped out of the parent's bounds
|
||||||
|
final float alpha = ALPHA_FULL - Math.abs(dX) / (float) viewHolder.itemView.getWidth();
|
||||||
|
viewHolder.itemView.setAlpha(alpha);
|
||||||
|
viewHolder.itemView.setTranslationX(dX);
|
||||||
|
} else {
|
||||||
|
super.onChildDraw(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onSelectedChanged(RecyclerView.ViewHolder viewHolder, int actionState) {
|
||||||
|
// We only want the active item to change
|
||||||
|
if (actionState != ItemTouchHelper.ACTION_STATE_IDLE) {
|
||||||
|
if (viewHolder instanceof ItemTouchHelperViewHolder) {
|
||||||
|
// Let the view holder know that this item is being moved or dragged
|
||||||
|
ItemTouchHelperViewHolder itemViewHolder = (ItemTouchHelperViewHolder) viewHolder;
|
||||||
|
itemViewHolder.onItemSelected();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
super.onSelectedChanged(viewHolder, actionState);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void clearView(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) {
|
||||||
|
super.clearView(recyclerView, viewHolder);
|
||||||
|
|
||||||
|
viewHolder.itemView.setAlpha(ALPHA_FULL);
|
||||||
|
|
||||||
|
if (viewHolder instanceof ItemTouchHelperViewHolder) {
|
||||||
|
// Tell the view holder it's time to restore the idle state
|
||||||
|
ItemTouchHelperViewHolder itemViewHolder = (ItemTouchHelperViewHolder) viewHolder;
|
||||||
|
itemViewHolder.onItemClear();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -6,6 +6,7 @@ import android.widget.Toast;
|
||||||
import hikapro.com.backpack.model.entities.Item;
|
import hikapro.com.backpack.model.entities.Item;
|
||||||
import hikapro.com.backpack.model.entities.Set;
|
import hikapro.com.backpack.model.entities.Set;
|
||||||
import hikapro.com.backpack.presenter.Presenter;
|
import hikapro.com.backpack.presenter.Presenter;
|
||||||
|
import hikapro.com.backpack.presenter.adapters.helper.OnStartDragListener;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by tariel on 19/04/16.
|
* Created by tariel on 19/04/16.
|
||||||
|
@ -19,6 +20,9 @@ public interface View {
|
||||||
interface SetList extends Base {
|
interface SetList extends Base {
|
||||||
void showItemList(Set set);
|
void showItemList(Set set);
|
||||||
void setPresenter(Presenter.SetList presenter);
|
void setPresenter(Presenter.SetList presenter);
|
||||||
|
|
||||||
|
//GLM_add_resources_SetList
|
||||||
|
OnStartDragListener getOnStartDragListener();
|
||||||
}
|
}
|
||||||
|
|
||||||
interface ItemList extends Base {
|
interface ItemList extends Base {
|
||||||
|
|
|
@ -5,18 +5,18 @@ import android.app.Activity;
|
||||||
import android.app.Fragment;
|
import android.app.Fragment;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.support.v7.widget.RecyclerView;
|
||||||
|
import android.support.v7.widget.helper.ItemTouchHelper;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.Toast;
|
|
||||||
|
|
||||||
import hikapro.com.backpack.R;
|
|
||||||
import hikapro.com.backpack.model.entities.Set;
|
import hikapro.com.backpack.model.entities.Set;
|
||||||
import hikapro.com.backpack.presenter.Presenter;
|
import hikapro.com.backpack.presenter.Presenter;
|
||||||
import hikapro.com.backpack.presenter.SetListPresenter;
|
import hikapro.com.backpack.presenter.adapters.helper.OnStartDragListener;
|
||||||
|
|
||||||
public class SetListFragment extends Fragment implements hikapro.com.backpack.view.View.SetList {
|
public class SetListFragment extends Fragment implements hikapro.com.backpack.view.View.SetList, OnStartDragListener{
|
||||||
|
|
||||||
private Presenter.SetList presenter;
|
private Presenter.SetList presenter;
|
||||||
private hikapro.com.backpack.view.View.ActivityCallback activityCallback;
|
private hikapro.com.backpack.view.View.ActivityCallback activityCallback;
|
||||||
|
@ -130,4 +130,17 @@ public class SetListFragment extends Fragment implements hikapro.com.backpack.vi
|
||||||
public void setPresenter(Presenter.SetList presenter) {
|
public void setPresenter(Presenter.SetList presenter) {
|
||||||
this.presenter = presenter;
|
this.presenter = presenter;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//GLM_add_resources_SetList
|
||||||
|
@Override
|
||||||
|
public void onStartDrag(RecyclerView.ViewHolder viewHolder) {
|
||||||
|
presenter.onStartDrag(viewHolder);
|
||||||
|
}
|
||||||
|
|
||||||
|
//GLM_add_resources_SetList
|
||||||
|
@Override
|
||||||
|
public OnStartDragListener getOnStartDragListener() {
|
||||||
|
return this;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,27 +1,53 @@
|
||||||
package hikapro.com.backpack.view.recycler;
|
package hikapro.com.backpack.view.recycler;
|
||||||
|
|
||||||
|
import android.graphics.Color;
|
||||||
|
import android.graphics.drawable.Drawable;
|
||||||
import android.support.v7.widget.CardView;
|
import android.support.v7.widget.CardView;
|
||||||
import android.support.v7.widget.RecyclerView;
|
import android.support.v7.widget.RecyclerView;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
import hikapro.com.backpack.R;
|
import hikapro.com.backpack.R;
|
||||||
|
import hikapro.com.backpack.presenter.adapters.helper.ItemTouchHelperViewHolder;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by tariel on 20/04/16.
|
* Created by tariel on 20/04/16.
|
||||||
*/
|
*/
|
||||||
public class SetViewHolder extends RecyclerView.ViewHolder {
|
public class SetViewHolder extends RecyclerView.ViewHolder implements ItemTouchHelperViewHolder{
|
||||||
|
|
||||||
public CardView cardView;
|
public CardView cardView;
|
||||||
public TextView textView;
|
public TextView textView;
|
||||||
|
|
||||||
|
//GLM_add_resources_SetList
|
||||||
|
private View view;
|
||||||
|
private Drawable drawable;
|
||||||
|
|
||||||
public SetViewHolder(View v) {
|
public SetViewHolder(View v) {
|
||||||
super(v);
|
super(v);
|
||||||
|
//
|
||||||
|
this.view = v;
|
||||||
|
|
||||||
|
//
|
||||||
setupViews(v);
|
setupViews(v);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setupViews(View view) {
|
private void setupViews(View view) {
|
||||||
cardView = (CardView) view.findViewById(R.id.card_view_set);
|
cardView = (CardView) view.findViewById(R.id.card_view_set);
|
||||||
textView = (TextView) view.findViewById(R.id.set_text);
|
textView = (TextView) view.findViewById(R.id.set_text);
|
||||||
|
|
||||||
|
this.view = view;
|
||||||
|
drawable = view.getBackground();
|
||||||
|
}
|
||||||
|
|
||||||
|
//GLM_add_resources_SetList
|
||||||
|
@Override
|
||||||
|
public void onItemClear() {
|
||||||
|
view.setBackground(drawable);
|
||||||
|
}
|
||||||
|
|
||||||
|
//GLM_add_resources_SetList
|
||||||
|
@Override
|
||||||
|
public void onItemSelected() {
|
||||||
|
view.setBackgroundColor(Color.GRAY);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue