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; } } */ }