Skip to content

Commit

Permalink
Reduce code duplication between pager adapters
Browse files Browse the repository at this point in the history
  • Loading branch information
slavick committed Oct 2, 2021
1 parent fed37f1 commit 0c91bfc
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 36 deletions.
Original file line number Diff line number Diff line change
@@ -1,37 +1,20 @@
package org.nutritionfacts.dailydozen.adapter;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentStatePagerAdapter;

import org.nutritionfacts.dailydozen.fragment.DailyDozenFragment;
import org.nutritionfacts.dailydozen.model.Day;

public class DailyDozenPagerAdapter extends FragmentStatePagerAdapter {
private int numDaysSinceEpoch;

public class DailyDozenPagerAdapter extends SynchronizedDatePagerAdapter {
public DailyDozenPagerAdapter(@NonNull FragmentManager fm, int behavior) {
super(fm, behavior);

this.numDaysSinceEpoch = Day.getNumDaysSinceEpoch();
}

@NonNull
@Override
public Fragment getItem(int position) {
return DailyDozenFragment.newInstance(Day.getByOffsetFromEpoch(position));
}

@Nullable
@Override
public CharSequence getPageTitle(int position) {
return Day.getTabTitleForDay(position);
}

@Override
public int getCount() {
return numDaysSinceEpoch;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package org.nutritionfacts.dailydozen.adapter;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentStatePagerAdapter;

import org.nutritionfacts.dailydozen.model.Day;

public abstract class SynchronizedDatePagerAdapter extends FragmentStatePagerAdapter {
protected int numDaysSinceEpoch;

public SynchronizedDatePagerAdapter(@NonNull FragmentManager fm, int behavior) {
super(fm, behavior);

numDaysSinceEpoch = Day.getNumDaysSinceEpoch();
}

@Override
public int getCount() {
return numDaysSinceEpoch;
}

@Nullable
@Override
public CharSequence getPageTitle(int position) {
return Day.getTabTitleForDay(position);
}
}
Original file line number Diff line number Diff line change
@@ -1,37 +1,20 @@
package org.nutritionfacts.dailydozen.adapter;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentStatePagerAdapter;

import org.nutritionfacts.dailydozen.fragment.TweaksFragment;
import org.nutritionfacts.dailydozen.model.Day;

public class TweaksPagerAdapter extends FragmentStatePagerAdapter {
private int numDaysSinceEpoch;

public class TweaksPagerAdapter extends SynchronizedDatePagerAdapter {
public TweaksPagerAdapter(@NonNull FragmentManager fm, int behavior) {
super(fm, behavior);

numDaysSinceEpoch = Day.getNumDaysSinceEpoch();
}

@NonNull
@Override
public Fragment getItem(int position) {
return TweaksFragment.newInstance(Day.getByOffsetFromEpoch(position));
}

@Nullable
@Override
public CharSequence getPageTitle(int position) {
return Day.getTabTitleForDay(position);
}

@Override
public int getCount() {
return numDaysSinceEpoch;
}
}

0 comments on commit 0c91bfc

Please sign in to comment.