blob: fdcc5686d0804bb6175d9b1d6a11a3eaf2c4f6c3 [file] [log] [blame]
package org.wordpress.android.ui.plans.adapters;
import android.app.FragmentManager;
import android.support.annotation.NonNull;
import android.support.v13.app.FragmentPagerAdapter;
import org.wordpress.android.ui.plans.PlanFragment;
import org.wordpress.android.ui.plans.models.Plan;
import org.wordpress.android.util.AppLog;
/**
* ViewPager adapter for the main plans activity
*/
public class PlansPagerAdapter extends FragmentPagerAdapter {
private final Plan[] mSitePlans;
private static final String UNICODE_CHECKMARK = "\u2713";
public PlansPagerAdapter(FragmentManager fm, @NonNull Plan[] sitePlans) {
super(fm);
mSitePlans = sitePlans.clone();
}
@Override
public PlanFragment getItem(int position) {
return PlanFragment.newInstance(mSitePlans[position]);
}
@Override
public int getCount() {
return mSitePlans.length;
}
@Override
public CharSequence getPageTitle(int position) {
if (isValidPosition(position)) {
Plan planDetails = mSitePlans[position];
if (planDetails == null) {
AppLog.w(AppLog.T.PLANS, "plans pager > empty plan details in getPageTitle");
return "";
} else if (mSitePlans[position].isCurrentPlan()) {
return UNICODE_CHECKMARK + " " + planDetails.getProductNameShort();
} else {
return planDetails.getProductNameShort();
}
}
return super.getPageTitle(position);
}
public boolean isValidPosition(int position) {
return (position >= 0 && position < getCount());
}
public int getPositionOfPlan(long planID) {
for (int i = 0; i < getCount(); i++) {
if (mSitePlans[i].getProductID() == planID) {
return i;
}
}
return -1;
}
}