package com.fastaccess.ui.widgets;
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.res.TypedArray;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.util.AttributeSet;
import android.view.MotionEvent;
import static android.R.attr.enabled;
/**
* Created by kosh20111 on 10/8/2015.
* <p/>
* Viewpager that has scrolling animation by default
*/
public class ViewPagerView extends ViewPager {
private boolean isEnabled;
public ViewPagerView(Context context) {
super(context);
}
public ViewPagerView(@NonNull Context context, AttributeSet attrs) {
super(context, attrs);
int[] attrsArray = {enabled};
TypedArray array = context.obtainStyledAttributes(attrs, attrsArray);
isEnabled = array.getBoolean(0, true);
array.recycle();
}
@Override public boolean isEnabled() {
return isEnabled;
}
@Override public void setEnabled(boolean enabled) {
this.isEnabled = enabled;
requestLayout();
}
@Override public void setAdapter(@Nullable PagerAdapter adapter) {
super.setAdapter(adapter);
if (isInEditMode()) return;
if (adapter != null) {
setOffscreenPageLimit(adapter.getCount());
}
}
@SuppressLint("ClickableViewAccessibility") @Override public boolean onTouchEvent(MotionEvent event) {
try {
return !isEnabled() || super.onTouchEvent(event);
} catch (IllegalArgumentException ex) {
ex.printStackTrace();
}
return false;
}
@Override public boolean onInterceptTouchEvent(MotionEvent event) {
try {
return isEnabled() && super.onInterceptTouchEvent(event);
} catch (IllegalArgumentException ex) {
ex.printStackTrace();
}
return false;
}
}