1 package com.moiseum.wolnelektury.view.main;
3 import android.support.v4.app.Fragment;
5 import com.moiseum.wolnelektury.R;
6 import com.moiseum.wolnelektury.view.AboutFragment;
7 import com.moiseum.wolnelektury.view.book.list.BookListType;
8 import com.moiseum.wolnelektury.view.book.list.BooksListFragment;
9 import com.moiseum.wolnelektury.view.library.LibraryFragment;
10 import com.moiseum.wolnelektury.view.news.NewsListFragment;
11 import com.moiseum.wolnelektury.view.search.BookSearchFragment;
12 import com.moiseum.wolnelektury.view.settings.SettingsFragment;
14 import java.util.Arrays;
15 import java.util.List;
21 public enum NavigationElement {
25 public int getTitle() {
26 return R.string.nav_wolne_lektury;
30 public Fragment getFragment() {
31 return LibraryFragment.newInstance();
35 public int getIcon() {
36 return R.drawable.ic_menu_library;
40 public boolean requiresLogin() {
47 public int getTitle() {
48 return R.string.nav_premium;
52 public Fragment getFragment() {
53 // This in intentional. We have to handle this separately.
58 public int getIcon() {
59 return R.drawable.ic_menu_star;
63 public boolean requiresLogin() {
70 public int getTitle() {
71 return R.string.nav_reading;
75 public Fragment getFragment() {
76 return BooksListFragment.newInstance(BookListType.READING);
80 public int getIcon() {
81 return R.drawable.ic_book;
85 public boolean requiresLogin() {
92 public int getTitle() {
93 return R.string.nav_favourites;
97 public Fragment getFragment() {
98 return BooksListFragment.newInstance(BookListType.FAVOURITES);
102 public int getIcon() {
103 return R.drawable.ic_menu_fav;
107 public boolean requiresLogin() {
114 public int getTitle() {
115 return R.string.nav_completed;
119 public Fragment getFragment() {
120 return BooksListFragment.newInstance(BookListType.COMPLETED);
124 public int getIcon() {
125 return R.drawable.ic_accept;
129 public boolean requiresLogin() {
136 public int getTitle() {
137 return R.string.nav_audiobooks;
141 public Fragment getFragment() {
142 return BooksListFragment.newInstance(BookListType.AUDIOBOOKS);
146 public int getIcon() {
147 return R.drawable.ic_menu_audiobook;
151 public boolean requiresLogin() {
158 public int getTitle() {
159 return R.string.nav_my_collection;
163 public Fragment getFragment() {
164 return BooksListFragment.newInstance(BookListType.DOWNLOADED);
168 public int getIcon() {
169 return R.drawable.ic_menu_downloaded;
173 public boolean requiresLogin() {
180 public int getTitle() {
181 return R.string.nav_catalog;
185 public Fragment getFragment() {
186 return BookSearchFragment.newInstance();
190 public int getIcon() {
191 return R.drawable.ic_menu_search;
195 public boolean requiresLogin() {
202 public int getTitle() {
203 return R.string.nav_about;
207 public Fragment getFragment() {
208 return AboutFragment.newInstance();
212 public int getIcon() {
213 return R.drawable.ic_about;
217 public boolean requiresLogin() {
224 public int getTitle() {
225 return R.string.nav_news;
229 public Fragment getFragment() {
230 return NewsListFragment.newInstance();
234 public int getIcon() {
235 return R.drawable.ic_news;
239 public boolean requiresLogin() {
246 public int getTitle(){return R.string.settings;}
249 public Fragment getFragment() {return SettingsFragment.newInstance();}
252 public int getIcon(){return R.drawable.ic_settings;}
255 public boolean requiresLogin() {
262 public int getTitle() {
267 public Fragment getFragment() {
272 public int getIcon() {
277 public boolean requiresLogin() {
284 public int getTitle() {
289 public Fragment getFragment() {
294 public int getIcon() {
299 public boolean requiresLogin() {
304 public abstract int getTitle();
306 public abstract Fragment getFragment();
308 public abstract int getIcon();
310 public abstract boolean requiresLogin();
312 public static List<NavigationElement> valuesForNavigation() {
313 return Arrays.asList(SUPPORT_US, LIBRARY, SEPARATOR, PREMIUM, SEARCH, AUDIOBOOKS, NOW_READING, FAVOURITES, COMPLETED, SEPARATOR, DOWNLOADED, SEPARATOR, NEWS, SETTINGS, ABOUT);