/*
* Copyright (C) 2015 Haruki Hasegawa
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.h6ah4i.android.widget.advrecyclerview.utils;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import com.h6ah4i.android.widget.advrecyclerview.swipeable.RecyclerViewSwipeManager;
import com.h6ah4i.android.widget.advrecyclerview.swipeable.SwipeableItemViewHolder;
import com.h6ah4i.android.widget.advrecyclerview.swipeable.annotation.SwipeableItemAfterReactions;
import com.h6ah4i.android.widget.advrecyclerview.swipeable.annotation.SwipeableItemResults;
import com.h6ah4i.android.widget.advrecyclerview.swipeable.annotation.SwipeableItemStateFlags;
public abstract class AbstractSwipeableItemViewHolder extends RecyclerView.ViewHolder implements SwipeableItemViewHolder {
@SwipeableItemStateFlags
private int mSwipeStateFlags;
@SwipeableItemResults
private int mSwipeResult = RecyclerViewSwipeManager.RESULT_NONE;
@SwipeableItemAfterReactions
private int mAfterSwipeReaction = RecyclerViewSwipeManager.AFTER_SWIPE_REACTION_DEFAULT;
private boolean mIsProportionalAmountModeEnabled = true;
private float mHorizontalSwipeAmount;
private float mVerticalSwipeAmount;
private float mMaxLeftSwipeAmount = RecyclerViewSwipeManager.OUTSIDE_OF_THE_WINDOW_LEFT;
private float mMaxUpSwipeAmount = RecyclerViewSwipeManager.OUTSIDE_OF_THE_WINDOW_TOP;
private float mMaxRightSwipeAmount = RecyclerViewSwipeManager.OUTSIDE_OF_THE_WINDOW_RIGHT;
private float mMaxDownSwipeAmount = RecyclerViewSwipeManager.OUTSIDE_OF_THE_WINDOW_BOTTOM;
public AbstractSwipeableItemViewHolder(View itemView) {
super(itemView);
}
@Override
public void setSwipeStateFlags(@SwipeableItemStateFlags int flags) {
mSwipeStateFlags = flags;
}
@Override
@SwipeableItemStateFlags
public int getSwipeStateFlags() {
return mSwipeStateFlags;
}
@Override
public void setSwipeResult(@SwipeableItemResults int result) {
mSwipeResult = result;
}
@Override
@SwipeableItemResults
public int getSwipeResult() {
return mSwipeResult;
}
@Override
@SwipeableItemAfterReactions
public int getAfterSwipeReaction() {
return mAfterSwipeReaction;
}
@Override
public void setAfterSwipeReaction(@SwipeableItemAfterReactions int reaction) {
mAfterSwipeReaction = reaction;
}
@Override
public void setProportionalSwipeAmountModeEnabled(boolean enabled) {
mIsProportionalAmountModeEnabled = enabled;
}
@Override
public boolean isProportionalSwipeAmountModeEnabled() {
return mIsProportionalAmountModeEnabled;
}
@Override
public void setSwipeItemVerticalSlideAmount(float amount) {
mVerticalSwipeAmount = amount;
}
@Override
public float getSwipeItemVerticalSlideAmount() {
return mVerticalSwipeAmount;
}
@Override
public void setSwipeItemHorizontalSlideAmount(float amount) {
mHorizontalSwipeAmount = amount;
}
@Override
public float getSwipeItemHorizontalSlideAmount() {
return mHorizontalSwipeAmount;
}
@Override
public abstract View getSwipeableContainerView();
@Override
public void setMaxLeftSwipeAmount(float amount) {
mMaxLeftSwipeAmount = amount;
}
@Override
public float getMaxLeftSwipeAmount() {
return mMaxLeftSwipeAmount;
}
@Override
public void setMaxUpSwipeAmount(float amount) {
mMaxUpSwipeAmount = amount;
}
@Override
public float getMaxUpSwipeAmount() {
return mMaxUpSwipeAmount;
}
@Override
public void setMaxRightSwipeAmount(float amount) {
mMaxRightSwipeAmount = amount;
}
@Override
public float getMaxRightSwipeAmount() {
return mMaxRightSwipeAmount;
}
@Override
public void setMaxDownSwipeAmount(float amount) {
mMaxDownSwipeAmount = amount;
}
@Override
public float getMaxDownSwipeAmount() {
return mMaxDownSwipeAmount;
}
@Override
public void onSlideAmountUpdated(float horizontalAmount, float verticalAmount, boolean isSwiping) {
}
}