package com.marshalchen.ultimaterecyclerview.demo.loadmoredemo;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v7.widget.Toolbar;
import android.view.ActionMode;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import com.marshalchen.ultimaterecyclerview.CustomUltimateRecyclerview;
import com.marshalchen.ultimaterecyclerview.URLogs;
import com.marshalchen.ultimaterecyclerview.UltimateRecyclerView;
import com.marshalchen.ultimaterecyclerview.demo.R;
import com.marshalchen.ultimaterecyclerview.demo.rvComponents.sectionZeroAdapter;
import com.marshalchen.ultimaterecyclerview.demo.modules.FastBinding;
import in.srain.cube.views.ptr.PtrDefaultHandler;
import in.srain.cube.views.ptr.PtrFrameLayout;
import in.srain.cube.views.ptr.PtrHandler;
import in.srain.cube.views.ptr.PtrUIHandler;
import in.srain.cube.views.ptr.header.MaterialHeader;
import in.srain.cube.views.ptr.header.StoreHouseHeader;
import in.srain.cube.views.ptr.indicator.PtrIndicator;
public class PullToRefreshActivity extends BasicFunctions implements ActionMode.Callback {
private CustomUltimateRecyclerview ultimateRecyclerView;
private sectionZeroAdapter simpleRecyclerViewAdapter = null;
private View floatingButton = null;
@Override
protected void onLoadmore() {
}
@Override
protected void onFireRefresh() {
// simpleRecyclerViewAdapter.insertLast("Refresh things");
// ultimateRecyclerView.scrollBy(0, -50);
// linearLayoutManager.scrollToPosition(0);
ultimateRecyclerView.mPtrFrameLayout.refreshComplete();
changeHeaderHandler.sendEmptyMessageDelayed(0, 500);
}
@Override
protected void addButtonTrigger() {
}
@Override
protected void removeButtonTrigger() {
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.custom_refresh_activity);
ultimateRecyclerView = (CustomUltimateRecyclerview) findViewById(R.id.custom_ultimate_recycler_view);
ultimateRecyclerView.setCustomSwipeToRefresh();
// refreshingMaterial();
refreshingString();
}
void refreshingString() {
storeHouseHeader = new StoreHouseHeader(this);
// header.setPadding(0, 15, 0, 0);
storeHouseHeader.initWithString("XCode Big Air");
// header.initWithStringArray(R.array.akta);
ultimateRecyclerView.mPtrFrameLayout.removePtrUIHandler(materialHeader);
ultimateRecyclerView.mPtrFrameLayout.setHeaderView(storeHouseHeader);
ultimateRecyclerView.mPtrFrameLayout.addPtrUIHandler(storeHouseHeader);
ultimateRecyclerView.mPtrFrameLayout.autoRefresh(false);
ultimateRecyclerView.mPtrFrameLayout.setPtrHandler(new PtrHandler() {
@Override
public boolean checkCanDoRefresh(PtrFrameLayout ptrFrameLayout, View view, View view2) {
boolean canbePullDown = PtrDefaultHandler.checkContentCanBePulledDown(ptrFrameLayout, view, view2);
return canbePullDown;
}
@Override
public void onRefreshBegin(PtrFrameLayout ptrFrameLayout) {
ptrFrameLayout.postDelayed(new Runnable() {
@Override
public void run() {
onFireRefresh();
}
}, 1800);
}
});
}
// void refreshingRental() {
// rentalsSunHeaderView = new RentalsSunHeaderView(this);
// rentalsSunHeaderView.setUp(ultimateRecyclerView.mPtrFrameLayout);
//
// ultimateRecyclerView.mPtrFrameLayout.removePtrUIHandler(materialHeader);
// ultimateRecyclerView.mPtrFrameLayout.removePtrUIHandler(storeHouseHeader);
// ultimateRecyclerView.mPtrFrameLayout.setHeaderView(rentalsSunHeaderView);
// ultimateRecyclerView.mPtrFrameLayout.addPtrUIHandler(rentalsSunHeaderView);
// ultimateRecyclerView.mPtrFrameLayout.autoRefresh(false);
// ultimateRecyclerView.mPtrFrameLayout.setPtrHandler(new PtrHandler() {
// @Override
// public boolean checkCanDoRefresh(PtrFrameLayout ptrFrameLayout, View view, View view2) {
// boolean canbePullDown = PtrDefaultHandler.checkContentCanBePulledDown(ptrFrameLayout, view, view2);
// return canbePullDown;
// }
//
// @Override
// public void onRefreshBegin(PtrFrameLayout ptrFrameLayout) {
// ptrFrameLayout.postDelayed(new Runnable() {
// @Override
// public void run() {
// simpleRecyclerViewAdapter.insert("Refresh things", 0);
// // ultimateRecyclerView.scrollBy(0, -50);
// linearLayoutManager.scrollToPosition(0);
// ultimateRecyclerView.mPtrFrameLayout.refreshComplete();
// changeHeaderHandler.sendEmptyMessageDelayed(3, 500);
// }
// }, 1800);
// }
// });
//
// }
void refreshingMaterial() {
materialHeader = new MaterialHeader(this);
int[] colors = getResources().getIntArray(R.array.google_colors);
materialHeader.setColorSchemeColors(colors);
materialHeader.setLayoutParams(new PtrFrameLayout.LayoutParams(-1, -2));
materialHeader.setPadding(0, 15, 0, 10);
materialHeader.setPtrFrameLayout(ultimateRecyclerView.mPtrFrameLayout);
ultimateRecyclerView.mPtrFrameLayout.autoRefresh(false);
ultimateRecyclerView.mPtrFrameLayout.removePtrUIHandler(storeHouseHeader);
ultimateRecyclerView.mPtrFrameLayout.setHeaderView(materialHeader);
ultimateRecyclerView.mPtrFrameLayout.addPtrUIHandler(materialHeader);
ultimateRecyclerView.mPtrFrameLayout.setPtrHandler(new PtrHandler() {
@Override
public boolean checkCanDoRefresh(PtrFrameLayout frame, View content, View header) {
return true;
}
@Override
public void onRefreshBegin(final PtrFrameLayout frame) {
frame.postDelayed(new Runnable() {
@Override
public void run() {
// simpleRecyclerViewAdapter.insertLast("Refresh things");
// ultimateRecyclerView.scrollBy(0, -50);
// linearLayoutManager.scrollToPosition(0);
ultimateRecyclerView.mPtrFrameLayout.refreshComplete();
// changeHeaderHandler.sendEmptyMessageDelayed(2, 500);
}
}, 1800);
}
});
}
Handler changeHeaderHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what) {
case 0:
refreshingStringArray();
break;
case 1:
// refreshingMaterial();
refreshingString();
break;
case 2:
// refreshingString();
break;
case 3:
refreshingString();
break;
case 4:
break;
}
}
};
private int mLoadTime = 0;
StoreHouseHeader storeHouseHeader;
MaterialHeader materialHeader;
// RentalsSunHeaderView rentalsSunHeaderView;
private void refreshingStringArray() {
storeHouseHeader = new StoreHouseHeader(this);
storeHouseHeader.setPadding(0, 15, 0, 0);
// using string array from resource xml file
storeHouseHeader.initWithStringArray(R.array.storehouse);
ultimateRecyclerView.mPtrFrameLayout.setDurationToCloseHeader(1500);
ultimateRecyclerView.mPtrFrameLayout.removePtrUIHandler(materialHeader);
ultimateRecyclerView.mPtrFrameLayout.setHeaderView(storeHouseHeader);
ultimateRecyclerView.mPtrFrameLayout.addPtrUIHandler(storeHouseHeader);
ultimateRecyclerView.mPtrFrameLayout.autoRefresh(false);
// change header after loaded
ultimateRecyclerView.mPtrFrameLayout.addPtrUIHandler(new PtrUIHandler() {
@Override
public void onUIReset(PtrFrameLayout frame) {
mLoadTime++;
if (mLoadTime % 2 == 0) {
storeHouseHeader.setScale(1);
storeHouseHeader.initWithStringArray(R.array.storehouse);
} else {
storeHouseHeader.setScale(0.5f);
storeHouseHeader.initWithStringArray(R.array.akta);
}
}
@Override
public void onUIRefreshPrepare(PtrFrameLayout frame) {
}
@Override
public void onUIRefreshBegin(PtrFrameLayout frame) {
}
@Override
public void onUIRefreshComplete(PtrFrameLayout frame) {
}
@Override
public void onUIPositionChange(PtrFrameLayout frame, boolean isUnderTouch, byte status, PtrIndicator ptrIndicator) {
}
});
ultimateRecyclerView.mPtrFrameLayout.setPtrHandler(new PtrHandler() {
@Override
public boolean checkCanDoRefresh(PtrFrameLayout frame, View content, View header) {
return true;
}
@Override
public void onRefreshBegin(final PtrFrameLayout frame) {
frame.postDelayed(new Runnable() {
@Override
public void run() {
// frame.refreshComplete();
// simpleRecyclerViewAdapter.insertLast("Refresh things");
// ultimateRecyclerView.scrollBy(0, -50);
linearLayoutManager.scrollToPosition(0);
ultimateRecyclerView.mPtrFrameLayout.refreshComplete();
if (mLoadTime % 2 == 0)
changeHeaderHandler.sendEmptyMessageDelayed(1, 500);
}
}, 2000);
}
});
}
private void toggleSelection(int position) {
simpleRecyclerViewAdapter.toggleSelection(position);
actionMode.setTitle("Selected " + "1");
}
@Override
protected void onDestroy() {
super.onDestroy();
}
public int getScreenHeight() {
return findViewById(android.R.id.content).getHeight();
}
@Override
protected void doURV(UltimateRecyclerView urv) {
}
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
URLogs.d("actionmode---" + (mode == null));
mode.getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
// return false;
}
/**
* Called to refresh an action mode's action menu whenever it is invalidated.
*
* @param mode ActionMode being prepared
* @param menu Menu used to populate action buttons
* @return true if the menu or action mode was updated, false otherwise.
*/
@Override
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
// swipeToDismissTouchListener.setEnabled(false);
this.actionMode = mode;
return false;
}
@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
return false;
}
@Override
public void onDestroyActionMode(ActionMode mode) {
this.actionMode = null;
}
//
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
FastBinding.startactivity(this, item.getItemId());
return super.onOptionsItemSelected(item);
}
/*
enum Type {
FadeIn("FadeIn", new FadeInAnimator()),
FadeInDown("FadeInDown", new FadeInDownAnimator()),
FadeInUp("FadeInUp", new FadeInUpAnimator()),
FadeInLeft("FadeInLeft", new FadeInLeftAnimator()),
FadeInRight("FadeInRight", new FadeInRightAnimator()),
Landing("Landing", new LandingAnimator()),
ScaleIn("ScaleIn", new ScaleInAnimator()),
ScaleInTop("ScaleInTop", new ScaleInTopAnimator()),
ScaleInBottom("ScaleInBottom", new ScaleInBottomAnimator()),
ScaleInLeft("ScaleInLeft", new ScaleInLeftAnimator()),
ScaleInRight("ScaleInRight", new ScaleInRightAnimator()),
FlipInTopX("FlipInTopX", new FlipInTopXAnimator()),
FlipInBottomX("FlipInBottomX", new FlipInBottomXAnimator()),
FlipInLeftY("FlipInLeftY", new FlipInLeftYAnimator()),
FlipInRightY("FlipInRightY", new FlipInRightYAnimator()),
SlideInLeft("SlideInLeft", new SlideInLeftAnimator()),
SlideInRight("SlideInRight", new SlideInRightAnimator()),
SlideInDown("SlideInDown", new SlideInDownAnimator()),
SlideInUp("SlideInUp", new SlideInUpAnimator()),
OvershootInRight("OvershootInRight", new OvershootInRightAnimator()),
OvershootInLeft("OvershootInLeft", new OvershootInLeftAnimator());
private String mTitle;
private BaseItemAnimator mAnimator;
Type(String title, BaseItemAnimator animator) {
mTitle = title;
mAnimator = animator;
}
public BaseItemAnimator getAnimator() {
return mAnimator;
}
public String getTitle() {
return mTitle;
}
}
*/
}