Bug 942231 - Use 'page' terminology in HomePager instead of 'tab' (r=margaret)

This commit is contained in:
Lucas Rocha 2013-12-12 10:55:36 +00:00
parent 81935b28f5
commit d02267a160
2 changed files with 37 additions and 37 deletions

View File

@ -21,22 +21,22 @@ import java.util.EnumMap;
class HomeAdapter extends FragmentStatePagerAdapter {
private final Context mContext;
private final ArrayList<TabInfo> mTabs;
private final ArrayList<PageInfo> mPageInfos;
private final EnumMap<Page, Fragment> mPages;
private OnAddTabListener mAddTabListener;
private OnAddPageListener mAddPageListener;
interface OnAddTabListener {
public void onAddTab(String title);
interface OnAddPageListener {
public void onAddPage(String title);
}
final class TabInfo {
final class PageInfo {
private final Page page;
private final Class<?> clss;
private final Bundle args;
private final String title;
TabInfo(Page page, Class<?> clss, Bundle args, String title) {
PageInfo(Page page, Class<?> clss, Bundle args, String title) {
this.page = page;
this.clss = clss;
this.args = args;
@ -49,31 +49,31 @@ class HomeAdapter extends FragmentStatePagerAdapter {
mContext = context;
mTabs = new ArrayList<TabInfo>();
mPageInfos = new ArrayList<PageInfo>();
mPages = new EnumMap<Page, Fragment>(Page.class);
}
@Override
public int getCount() {
return mTabs.size();
return mPageInfos.size();
}
@Override
public Fragment getItem(int position) {
TabInfo info = mTabs.get(position);
PageInfo info = mPageInfos.get(position);
return Fragment.instantiate(mContext, info.clss.getName(), info.args);
}
@Override
public CharSequence getPageTitle(int position) {
TabInfo info = mTabs.get(position);
PageInfo info = mPageInfos.get(position);
return info.title.toUpperCase();
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
Fragment fragment = (Fragment) super.instantiateItem(container, position);
mPages.put(mTabs.get(position).page, fragment);
mPages.put(mPageInfos.get(position).page, fragment);
return fragment;
}
@ -81,36 +81,36 @@ class HomeAdapter extends FragmentStatePagerAdapter {
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
super.destroyItem(container, position, object);
mPages.remove(mTabs.get(position).page);
mPages.remove(mPageInfos.get(position).page);
}
public void setOnAddTabListener(OnAddTabListener listener) {
mAddTabListener = listener;
public void setOnAddPageListener(OnAddPageListener listener) {
mAddPageListener = listener;
}
public void addTab(Page page, Class<?> clss, Bundle args, String title) {
addTab(-1, page, clss, args, title);
public void addPage(Page page, Class<?> clss, Bundle args, String title) {
addPage(-1, page, clss, args, title);
}
public void addTab(int index, Page page, Class<?> clss, Bundle args, String title) {
TabInfo info = new TabInfo(page, clss, args, title);
public void addPage(int index, Page page, Class<?> clss, Bundle args, String title) {
PageInfo info = new PageInfo(page, clss, args, title);
if (index >= 0) {
mTabs.add(index, info);
mPageInfos.add(index, info);
} else {
mTabs.add(info);
mPageInfos.add(info);
}
notifyDataSetChanged();
if (mAddTabListener != null) {
mAddTabListener.onAddTab(title);
if (mAddPageListener != null) {
mAddPageListener.onAddPage(title);
}
}
public int getItemPosition(Page page) {
for (int i = 0; i < mTabs.size(); i++) {
TabInfo info = mTabs.get(i);
for (int i = 0; i < mPageInfos.size(); i++) {
PageInfo info = mPageInfos.get(i);
if (info.page == page) {
return i;
}
@ -120,13 +120,13 @@ class HomeAdapter extends FragmentStatePagerAdapter {
}
public Page getPageAtPosition(int position) {
TabInfo info = mTabs.get(position);
PageInfo info = mPageInfos.get(position);
return info.page;
}
public void setCanLoadHint(boolean canLoadHint) {
// Update fragment arguments for future instances
for (TabInfo info : mTabs) {
for (PageInfo info : mPageInfos) {
info.args.putBoolean(HomePager.CAN_LOAD_ARG, canLoadHint);
}

View File

@ -8,7 +8,7 @@ package org.mozilla.gecko.home;
import org.mozilla.gecko.R;
import org.mozilla.gecko.animation.PropertyAnimator;
import org.mozilla.gecko.animation.ViewHelper;
import org.mozilla.gecko.home.HomeAdapter.OnAddTabListener;
import org.mozilla.gecko.home.HomeAdapter.OnAddPageListener;
import org.mozilla.gecko.mozglue.RobocopTarget;
import org.mozilla.gecko.util.HardwareUtils;
@ -32,7 +32,7 @@ public class HomePager extends ViewPager {
private volatile boolean mLoaded;
private Decor mDecor;
private final OnAddTabListener mAddTabListener;
private final OnAddPageListener mAddPageListener;
// List of pages in order.
@RobocopTarget
@ -90,9 +90,9 @@ public class HomePager extends ViewPager {
super(context, attrs);
mContext = context;
mAddTabListener = new OnAddTabListener() {
mAddPageListener = new OnAddPageListener() {
@Override
public void onAddTab(String title) {
public void onAddPage(String title) {
if (mDecor != null) {
mDecor.onAddPagerView(title);
}
@ -163,26 +163,26 @@ public class HomePager extends ViewPager {
}
final HomeAdapter adapter = new HomeAdapter(mContext, fm);
adapter.setOnAddTabListener(mAddTabListener);
adapter.setOnAddPageListener(mAddPageListener);
// Only animate on post-HC devices, when a non-null animator is given
final boolean shouldAnimate = (animator != null && Build.VERSION.SDK_INT >= 11);
adapter.addTab(Page.TOP_SITES, TopSitesPage.class, new Bundle(),
adapter.addPage(Page.TOP_SITES, TopSitesPage.class, new Bundle(),
getContext().getString(R.string.home_top_sites_title));
adapter.addTab(Page.BOOKMARKS, BookmarksPage.class, new Bundle(),
adapter.addPage(Page.BOOKMARKS, BookmarksPage.class, new Bundle(),
getContext().getString(R.string.bookmarks_title));
// We disable reader mode support on low memory devices. Hence the
// reading list page should not show up on such devices.
if (!HardwareUtils.isLowMemoryPlatform()) {
adapter.addTab(Page.READING_LIST, ReadingListPage.class, new Bundle(),
adapter.addPage(Page.READING_LIST, ReadingListPage.class, new Bundle(),
getContext().getString(R.string.reading_list_title));
}
// On phones, the history tab is the first tab. On tablets, the
// history tab is the last tab.
adapter.addTab(HardwareUtils.isTablet() ? -1 : 0,
// On phones, the history page is the first one. On tablets, the
// history page is the last.
adapter.addPage(HardwareUtils.isTablet() ? -1 : 0,
Page.HISTORY, HistoryPage.class, new Bundle(),
getContext().getString(R.string.home_history_title));