├── .idea ├── .name ├── copyright │ └── profiles_settings.xml ├── encodings.xml ├── vcs.xml ├── inspectionProfiles │ ├── profiles_settings.xml │ └── Project_Default.xml ├── modules.xml ├── runConfigurations.xml ├── compiler.xml ├── gradle.xml └── misc.xml ├── settings.gradle ├── art └── screenshot.jpg ├── app ├── .gitignore ├── src │ └── main │ │ ├── assets │ │ └── fonts │ │ │ ├── Roboto-Bold.ttf │ │ │ ├── Roboto-Light.ttf │ │ │ └── Roboto-Regular.ttf │ │ ├── res │ │ ├── drawable-hdpi │ │ │ ├── app_icon.png │ │ │ ├── action_home.png │ │ │ ├── action_sort.png │ │ │ ├── error_cloud.png │ │ │ ├── error_dobby.png │ │ │ ├── icon_books.png │ │ │ ├── icon_menu.png │ │ │ ├── icon_star.png │ │ │ ├── icon_votes.png │ │ │ ├── action_share.png │ │ │ ├── default_cover.png │ │ │ ├── drawer_about.png │ │ │ ├── drawer_search.png │ │ │ ├── icon_booknerd.png │ │ │ ├── icon_ranking.png │ │ │ ├── drawer_barcode.png │ │ │ ├── drawer_finished.png │ │ │ ├── drawer_reading.png │ │ │ ├── drawer_settings.png │ │ │ ├── drawer_to_read.png │ │ │ ├── icon_description.png │ │ │ ├── icon_publication.png │ │ │ ├── default_cover_big.png │ │ │ ├── drawer_bestseller.png │ │ │ ├── drawer_header_icon.png │ │ │ ├── icon_category_food.png │ │ │ ├── icon_category_love.png │ │ │ ├── icon_category_advice.png │ │ │ ├── icon_category_animals.png │ │ │ ├── icon_category_crime.png │ │ │ ├── icon_category_culture.png │ │ │ ├── icon_category_family.png │ │ │ ├── icon_category_fiction.png │ │ │ ├── icon_category_fitness.png │ │ │ ├── icon_category_games.png │ │ │ ├── icon_category_graphic.png │ │ │ ├── icon_category_history.png │ │ │ ├── icon_category_humor.png │ │ │ ├── icon_category_science.png │ │ │ ├── icon_category_sports.png │ │ │ ├── icon_category_travel.png │ │ │ ├── icon_category_young.png │ │ │ ├── icon_category_business.png │ │ │ ├── icon_category_education.png │ │ │ ├── icon_category_religion.png │ │ │ ├── drawer_header_background.png │ │ │ ├── icon_category_celebrities.png │ │ │ └── icon_category_nonfiction.png │ │ ├── drawable-ldpi │ │ │ ├── app_icon.png │ │ │ ├── action_home.png │ │ │ ├── action_sort.png │ │ │ ├── error_cloud.png │ │ │ ├── error_dobby.png │ │ │ ├── icon_books.png │ │ │ ├── icon_menu.png │ │ │ ├── icon_star.png │ │ │ ├── icon_votes.png │ │ │ ├── action_share.png │ │ │ ├── default_cover.png │ │ │ ├── drawer_about.png │ │ │ ├── drawer_search.png │ │ │ ├── icon_booknerd.png │ │ │ ├── icon_ranking.png │ │ │ ├── drawer_barcode.png │ │ │ ├── drawer_finished.png │ │ │ ├── drawer_reading.png │ │ │ ├── drawer_settings.png │ │ │ ├── drawer_to_read.png │ │ │ ├── icon_description.png │ │ │ ├── icon_publication.png │ │ │ ├── default_cover_big.png │ │ │ ├── drawer_bestseller.png │ │ │ ├── drawer_header_icon.png │ │ │ ├── icon_category_food.png │ │ │ ├── icon_category_love.png │ │ │ ├── icon_category_advice.png │ │ │ ├── icon_category_animals.png │ │ │ ├── icon_category_crime.png │ │ │ ├── icon_category_culture.png │ │ │ ├── icon_category_family.png │ │ │ ├── icon_category_fiction.png │ │ │ ├── icon_category_fitness.png │ │ │ ├── icon_category_games.png │ │ │ ├── icon_category_graphic.png │ │ │ ├── icon_category_history.png │ │ │ ├── icon_category_humor.png │ │ │ ├── icon_category_science.png │ │ │ ├── icon_category_sports.png │ │ │ ├── icon_category_travel.png │ │ │ ├── icon_category_young.png │ │ │ ├── icon_category_business.png │ │ │ ├── icon_category_education.png │ │ │ ├── icon_category_religion.png │ │ │ ├── drawer_header_background.png │ │ │ ├── icon_category_celebrities.png │ │ │ └── icon_category_nonfiction.png │ │ ├── drawable-mdpi │ │ │ ├── app_icon.png │ │ │ ├── action_home.png │ │ │ ├── action_sort.png │ │ │ ├── error_cloud.png │ │ │ ├── error_dobby.png │ │ │ ├── icon_books.png │ │ │ ├── icon_menu.png │ │ │ ├── icon_star.png │ │ │ ├── icon_votes.png │ │ │ ├── action_share.png │ │ │ ├── default_cover.png │ │ │ ├── drawer_about.png │ │ │ ├── drawer_search.png │ │ │ ├── icon_booknerd.png │ │ │ ├── icon_ranking.png │ │ │ ├── drawer_barcode.png │ │ │ ├── drawer_finished.png │ │ │ ├── drawer_reading.png │ │ │ ├── drawer_settings.png │ │ │ ├── drawer_to_read.png │ │ │ ├── icon_description.png │ │ │ ├── icon_publication.png │ │ │ ├── default_cover_big.png │ │ │ ├── drawer_bestseller.png │ │ │ ├── drawer_header_icon.png │ │ │ ├── icon_category_food.png │ │ │ ├── icon_category_love.png │ │ │ ├── icon_category_advice.png │ │ │ ├── icon_category_animals.png │ │ │ ├── icon_category_crime.png │ │ │ ├── icon_category_culture.png │ │ │ ├── icon_category_family.png │ │ │ ├── icon_category_fiction.png │ │ │ ├── icon_category_fitness.png │ │ │ ├── icon_category_games.png │ │ │ ├── icon_category_graphic.png │ │ │ ├── icon_category_history.png │ │ │ ├── icon_category_humor.png │ │ │ ├── icon_category_science.png │ │ │ ├── icon_category_sports.png │ │ │ ├── icon_category_travel.png │ │ │ ├── icon_category_young.png │ │ │ ├── icon_category_business.png │ │ │ ├── icon_category_education.png │ │ │ ├── icon_category_religion.png │ │ │ ├── drawer_header_background.png │ │ │ ├── icon_category_celebrities.png │ │ │ └── icon_category_nonfiction.png │ │ ├── drawable-xhdpi │ │ │ ├── app_icon.png │ │ │ ├── icon_books.png │ │ │ ├── icon_menu.png │ │ │ ├── icon_star.png │ │ │ ├── icon_votes.png │ │ │ ├── action_home.png │ │ │ ├── action_share.png │ │ │ ├── action_sort.png │ │ │ ├── drawer_about.png │ │ │ ├── error_cloud.png │ │ │ ├── error_dobby.png │ │ │ ├── icon_ranking.png │ │ │ ├── default_cover.png │ │ │ ├── drawer_barcode.png │ │ │ ├── drawer_finished.png │ │ │ ├── drawer_reading.png │ │ │ ├── drawer_search.png │ │ │ ├── drawer_settings.png │ │ │ ├── drawer_to_read.png │ │ │ ├── icon_booknerd.png │ │ │ ├── default_cover_big.png │ │ │ ├── drawer_bestseller.png │ │ │ ├── icon_description.png │ │ │ ├── icon_publication.png │ │ │ ├── drawer_header_icon.png │ │ │ ├── icon_category_advice.png │ │ │ ├── icon_category_crime.png │ │ │ ├── icon_category_family.png │ │ │ ├── icon_category_food.png │ │ │ ├── icon_category_games.png │ │ │ ├── icon_category_humor.png │ │ │ ├── icon_category_love.png │ │ │ ├── icon_category_sports.png │ │ │ ├── icon_category_travel.png │ │ │ ├── icon_category_young.png │ │ │ ├── icon_category_animals.png │ │ │ ├── icon_category_business.png │ │ │ ├── icon_category_culture.png │ │ │ ├── icon_category_fiction.png │ │ │ ├── icon_category_fitness.png │ │ │ ├── icon_category_graphic.png │ │ │ ├── icon_category_history.png │ │ │ ├── icon_category_religion.png │ │ │ ├── icon_category_science.png │ │ │ ├── drawer_header_background.png │ │ │ ├── icon_category_celebrities.png │ │ │ ├── icon_category_education.png │ │ │ └── icon_category_nonfiction.png │ │ ├── drawable-xxhdpi │ │ │ ├── app_icon.png │ │ │ ├── icon_menu.png │ │ │ ├── icon_star.png │ │ │ ├── action_home.png │ │ │ ├── action_sort.png │ │ │ ├── error_cloud.png │ │ │ ├── error_dobby.png │ │ │ ├── icon_books.png │ │ │ ├── icon_votes.png │ │ │ ├── action_share.png │ │ │ ├── default_cover.png │ │ │ ├── drawer_about.png │ │ │ ├── drawer_barcode.png │ │ │ ├── drawer_reading.png │ │ │ ├── drawer_search.png │ │ │ ├── drawer_to_read.png │ │ │ ├── icon_booknerd.png │ │ │ ├── icon_ranking.png │ │ │ ├── drawer_finished.png │ │ │ ├── drawer_settings.png │ │ │ ├── icon_description.png │ │ │ ├── icon_publication.png │ │ │ ├── default_cover_big.png │ │ │ ├── drawer_bestseller.png │ │ │ ├── drawer_header_icon.png │ │ │ ├── icon_category_crime.png │ │ │ ├── icon_category_food.png │ │ │ ├── icon_category_games.png │ │ │ ├── icon_category_humor.png │ │ │ ├── icon_category_love.png │ │ │ ├── icon_category_young.png │ │ │ ├── icon_category_advice.png │ │ │ ├── icon_category_animals.png │ │ │ ├── icon_category_culture.png │ │ │ ├── icon_category_family.png │ │ │ ├── icon_category_fiction.png │ │ │ ├── icon_category_fitness.png │ │ │ ├── icon_category_graphic.png │ │ │ ├── icon_category_history.png │ │ │ ├── icon_category_science.png │ │ │ ├── icon_category_sports.png │ │ │ ├── icon_category_travel.png │ │ │ ├── drawer_header_background.png │ │ │ ├── icon_category_business.png │ │ │ ├── icon_category_education.png │ │ │ ├── icon_category_nonfiction.png │ │ │ ├── icon_category_religion.png │ │ │ └── icon_category_celebrities.png │ │ ├── drawable-xxxhdpi │ │ │ ├── app_icon.png │ │ │ ├── icon_books.png │ │ │ ├── icon_menu.png │ │ │ ├── icon_star.png │ │ │ ├── icon_votes.png │ │ │ ├── action_home.png │ │ │ ├── action_share.png │ │ │ ├── action_sort.png │ │ │ ├── default_cover.png │ │ │ ├── drawer_about.png │ │ │ ├── drawer_search.png │ │ │ ├── error_cloud.png │ │ │ ├── error_dobby.png │ │ │ ├── icon_booknerd.png │ │ │ ├── icon_ranking.png │ │ │ ├── drawer_barcode.png │ │ │ ├── drawer_finished.png │ │ │ ├── drawer_reading.png │ │ │ ├── drawer_settings.png │ │ │ ├── drawer_to_read.png │ │ │ ├── default_cover_big.png │ │ │ ├── drawer_bestseller.png │ │ │ ├── drawer_header_icon.png │ │ │ ├── icon_category_food.png │ │ │ ├── icon_category_love.png │ │ │ ├── icon_description.png │ │ │ ├── icon_publication.png │ │ │ ├── icon_category_advice.png │ │ │ ├── icon_category_crime.png │ │ │ ├── icon_category_family.png │ │ │ ├── icon_category_games.png │ │ │ ├── icon_category_humor.png │ │ │ ├── icon_category_sports.png │ │ │ ├── icon_category_travel.png │ │ │ ├── icon_category_young.png │ │ │ ├── icon_category_animals.png │ │ │ ├── icon_category_business.png │ │ │ ├── icon_category_culture.png │ │ │ ├── icon_category_education.png │ │ │ ├── icon_category_fiction.png │ │ │ ├── icon_category_fitness.png │ │ │ ├── icon_category_graphic.png │ │ │ ├── icon_category_history.png │ │ │ ├── icon_category_religion.png │ │ │ ├── icon_category_science.png │ │ │ ├── drawer_header_background.png │ │ │ ├── icon_category_celebrities.png │ │ │ └── icon_category_nonfiction.png │ │ ├── mipmap-hdpi │ │ │ └── ic_launcher.png │ │ ├── mipmap-ldpi │ │ │ └── ic_launcher.png │ │ ├── mipmap-mdpi │ │ │ └── ic_launcher.png │ │ ├── mipmap-xhdpi │ │ │ └── ic_launcher.png │ │ ├── mipmap-xxhdpi │ │ │ └── ic_launcher.png │ │ ├── mipmap-xxxhdpi │ │ │ └── ic_launcher.png │ │ ├── values-sw600dp │ │ │ └── dimens.xml │ │ ├── drawable-ldrtl-hdpi │ │ │ └── action_home.png │ │ ├── drawable-ldrtl-ldpi │ │ │ └── action_home.png │ │ ├── drawable-ldrtl-mdpi │ │ │ └── action_home.png │ │ ├── drawable-ldrtl-xhdpi │ │ │ └── action_home.png │ │ ├── drawable-ldrtl-xxhdpi │ │ │ └── action_home.png │ │ ├── drawable-ldrtl-xxxhdpi │ │ │ └── action_home.png │ │ ├── layout │ │ │ ├── activity_book.xml │ │ │ ├── content_drawer.xml │ │ │ ├── activity_main.xml │ │ │ ├── content_settings.xml │ │ │ ├── activity_search.xml │ │ │ ├── layout_progress_circle.xml │ │ │ ├── fragment_list.xml │ │ │ ├── layout_progress_circle_small.xml │ │ │ ├── fragment_bestseller.xml │ │ │ ├── activity_settings.xml │ │ │ ├── fragment_book.xml │ │ │ ├── content_book.xml │ │ │ ├── content_search.xml │ │ │ ├── layout_list_placeholder.xml │ │ │ ├── toolbar_twoline.xml │ │ │ ├── layout_no_results.xml │ │ │ ├── layout_book_description.xml │ │ │ ├── item_category.xml │ │ │ ├── fragment_search.xml │ │ │ ├── layout_book_message.xml │ │ │ ├── layout_error_message.xml │ │ │ ├── fragment_drawer.xml │ │ │ ├── layout_drawer_header.xml │ │ │ ├── layout_book_ranking.xml │ │ │ ├── layout_book_publication.xml │ │ │ ├── layout_book_fab.xml │ │ │ ├── dialog_about.xml │ │ │ └── item_book_grid.xml │ │ ├── menu │ │ │ ├── menu_sort.xml │ │ │ ├── menu_popup.xml │ │ │ ├── menu_book.xml │ │ │ ├── menu_drawer.xml │ │ │ └── menu_navigation.xml │ │ ├── values-v21 │ │ │ └── styles.xml │ │ ├── drawable │ │ │ └── background_rating.xml │ │ ├── xml │ │ │ └── preferences.xml │ │ ├── layout-sw600dp │ │ │ ├── activity_main.xml │ │ │ └── activity_search.xml │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── dimens.xml │ │ │ └── styles.xml │ │ ├── java │ │ └── com │ │ │ └── ronakmanglani │ │ │ └── bookworm │ │ │ ├── ui │ │ │ ├── adapter │ │ │ │ ├── listener │ │ │ │ │ ├── OnCategoryClickListener.java │ │ │ │ │ └── OnBookClickListener.java │ │ │ │ ├── viewholder │ │ │ │ │ ├── CategoryViewHolder.java │ │ │ │ │ └── BookViewHolder.java │ │ │ │ ├── CategoryAdapter.java │ │ │ │ ├── SearchAdapter.java │ │ │ │ └── BestsellerAdapter.java │ │ │ ├── view │ │ │ │ ├── RobotoBoldTextView.java │ │ │ │ ├── RobotoLightTextView.java │ │ │ │ ├── RobotoRegularTextView.java │ │ │ │ └── PaddingDecorationView.java │ │ │ └── activity │ │ │ │ ├── BookActivity.java │ │ │ │ ├── SettingsActivity.java │ │ │ │ ├── BarcodeActivity.java │ │ │ │ ├── SearchActivity.java │ │ │ │ └── MainActivity.java │ │ │ ├── data │ │ │ ├── BookDatabase.java │ │ │ ├── BookProvider.java │ │ │ └── BookColumns.java │ │ │ ├── util │ │ │ ├── PreferenceUtil.java │ │ │ ├── FontUtil.java │ │ │ ├── DimenUtil.java │ │ │ ├── StringUtil.java │ │ │ ├── FileUtil.java │ │ │ └── BitmapUtil.java │ │ │ ├── api │ │ │ ├── ApiHelper.java │ │ │ └── VolleySingleton.java │ │ │ ├── BookWormApp.java │ │ │ └── model │ │ │ └── Category.java │ │ └── AndroidManifest.xml ├── proguard-rules.pro └── build.gradle ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── .gitignore ├── gradle.properties ├── CONTRIBUTING.md ├── CREDITS.md ├── README.md └── gradlew.bat /.idea/.name: -------------------------------------------------------------------------------- 1 | BookWorm -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /art/screenshot.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/art/screenshot.jpg -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | /keystore.jks 3 | /google-services.json 4 | /src/main/res/values/keys.xml 5 | -------------------------------------------------------------------------------- /.idea/copyright/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /app/src/main/assets/fonts/Roboto-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/assets/fonts/Roboto-Bold.ttf -------------------------------------------------------------------------------- /app/src/main/assets/fonts/Roboto-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/assets/fonts/Roboto-Light.ttf -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/app_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-hdpi/app_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/app_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-ldpi/app_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/app_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-mdpi/app_icon.png -------------------------------------------------------------------------------- /app/src/main/assets/fonts/Roboto-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/assets/fonts/Roboto-Regular.ttf -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/action_home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-hdpi/action_home.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/action_sort.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-hdpi/action_sort.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/error_cloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-hdpi/error_cloud.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/error_dobby.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-hdpi/error_dobby.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/icon_books.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-hdpi/icon_books.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/icon_menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-hdpi/icon_menu.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/icon_star.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-hdpi/icon_star.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/icon_votes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-hdpi/icon_votes.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/action_home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-ldpi/action_home.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/action_sort.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-ldpi/action_sort.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/error_cloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-ldpi/error_cloud.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/error_dobby.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-ldpi/error_dobby.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/icon_books.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-ldpi/icon_books.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/icon_menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-ldpi/icon_menu.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/icon_star.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-ldpi/icon_star.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/icon_votes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-ldpi/icon_votes.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/action_home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-mdpi/action_home.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/action_sort.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-mdpi/action_sort.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/error_cloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-mdpi/error_cloud.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/error_dobby.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-mdpi/error_dobby.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/icon_books.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-mdpi/icon_books.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/icon_menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-mdpi/icon_menu.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/icon_star.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-mdpi/icon_star.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/icon_votes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-mdpi/icon_votes.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/app_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xhdpi/app_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_books.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xhdpi/icon_books.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xhdpi/icon_menu.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_star.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xhdpi/icon_star.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_votes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xhdpi/icon_votes.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/app_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxhdpi/app_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/icon_menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxhdpi/icon_menu.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/icon_star.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxhdpi/icon_star.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/app_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxxhdpi/app_icon.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-ldpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/mipmap-ldpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/action_share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-hdpi/action_share.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/default_cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-hdpi/default_cover.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/drawer_about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-hdpi/drawer_about.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/drawer_search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-hdpi/drawer_search.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/icon_booknerd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-hdpi/icon_booknerd.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/icon_ranking.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-hdpi/icon_ranking.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/action_share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-ldpi/action_share.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/default_cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-ldpi/default_cover.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/drawer_about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-ldpi/drawer_about.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/drawer_search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-ldpi/drawer_search.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/icon_booknerd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-ldpi/icon_booknerd.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/icon_ranking.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-ldpi/icon_ranking.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/action_share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-mdpi/action_share.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/default_cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-mdpi/default_cover.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/drawer_about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-mdpi/drawer_about.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/drawer_search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-mdpi/drawer_search.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/icon_booknerd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-mdpi/icon_booknerd.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/icon_ranking.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-mdpi/icon_ranking.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/action_home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xhdpi/action_home.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/action_share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xhdpi/action_share.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/action_sort.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xhdpi/action_sort.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/drawer_about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xhdpi/drawer_about.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/error_cloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xhdpi/error_cloud.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/error_dobby.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xhdpi/error_dobby.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_ranking.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xhdpi/icon_ranking.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/action_home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxhdpi/action_home.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/action_sort.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxhdpi/action_sort.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/error_cloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxhdpi/error_cloud.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/error_dobby.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxhdpi/error_dobby.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/icon_books.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxhdpi/icon_books.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/icon_votes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxhdpi/icon_votes.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/icon_books.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxxhdpi/icon_books.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/icon_menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxxhdpi/icon_menu.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/icon_star.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxxhdpi/icon_star.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/icon_votes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxxhdpi/icon_votes.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/drawer_barcode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-hdpi/drawer_barcode.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/drawer_finished.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-hdpi/drawer_finished.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/drawer_reading.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-hdpi/drawer_reading.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/drawer_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-hdpi/drawer_settings.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/drawer_to_read.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-hdpi/drawer_to_read.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/icon_description.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-hdpi/icon_description.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/icon_publication.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-hdpi/icon_publication.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/drawer_barcode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-ldpi/drawer_barcode.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/drawer_finished.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-ldpi/drawer_finished.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/drawer_reading.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-ldpi/drawer_reading.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/drawer_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-ldpi/drawer_settings.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/drawer_to_read.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-ldpi/drawer_to_read.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/icon_description.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-ldpi/icon_description.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/icon_publication.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-ldpi/icon_publication.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/drawer_barcode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-mdpi/drawer_barcode.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/drawer_finished.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-mdpi/drawer_finished.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/drawer_reading.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-mdpi/drawer_reading.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/drawer_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-mdpi/drawer_settings.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/drawer_to_read.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-mdpi/drawer_to_read.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/icon_description.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-mdpi/icon_description.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/icon_publication.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-mdpi/icon_publication.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/default_cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xhdpi/default_cover.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/drawer_barcode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xhdpi/drawer_barcode.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/drawer_finished.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xhdpi/drawer_finished.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/drawer_reading.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xhdpi/drawer_reading.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/drawer_search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xhdpi/drawer_search.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/drawer_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xhdpi/drawer_settings.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/drawer_to_read.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xhdpi/drawer_to_read.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_booknerd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xhdpi/icon_booknerd.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/action_share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxhdpi/action_share.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/default_cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxhdpi/default_cover.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/drawer_about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxhdpi/drawer_about.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/drawer_barcode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxhdpi/drawer_barcode.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/drawer_reading.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxhdpi/drawer_reading.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/drawer_search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxhdpi/drawer_search.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/drawer_to_read.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxhdpi/drawer_to_read.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/icon_booknerd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxhdpi/icon_booknerd.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/icon_ranking.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxhdpi/icon_ranking.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/action_home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxxhdpi/action_home.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/action_share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxxhdpi/action_share.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/action_sort.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxxhdpi/action_sort.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/default_cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxxhdpi/default_cover.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/drawer_about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxxhdpi/drawer_about.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/drawer_search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxxhdpi/drawer_search.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/error_cloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxxhdpi/error_cloud.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/error_dobby.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxxhdpi/error_dobby.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/icon_booknerd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxxhdpi/icon_booknerd.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/icon_ranking.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxxhdpi/icon_ranking.png -------------------------------------------------------------------------------- /app/src/main/res/values-sw600dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | true 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/default_cover_big.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-hdpi/default_cover_big.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/drawer_bestseller.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-hdpi/drawer_bestseller.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/drawer_header_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-hdpi/drawer_header_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/icon_category_food.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-hdpi/icon_category_food.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/icon_category_love.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-hdpi/icon_category_love.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/default_cover_big.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-ldpi/default_cover_big.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/drawer_bestseller.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-ldpi/drawer_bestseller.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/drawer_header_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-ldpi/drawer_header_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/icon_category_food.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-ldpi/icon_category_food.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/icon_category_love.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-ldpi/icon_category_love.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldrtl-hdpi/action_home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-ldrtl-hdpi/action_home.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldrtl-ldpi/action_home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-ldrtl-ldpi/action_home.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldrtl-mdpi/action_home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-ldrtl-mdpi/action_home.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldrtl-xhdpi/action_home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-ldrtl-xhdpi/action_home.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/default_cover_big.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-mdpi/default_cover_big.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/drawer_bestseller.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-mdpi/drawer_bestseller.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/drawer_header_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-mdpi/drawer_header_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/icon_category_food.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-mdpi/icon_category_food.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/icon_category_love.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-mdpi/icon_category_love.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/default_cover_big.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xhdpi/default_cover_big.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/drawer_bestseller.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xhdpi/drawer_bestseller.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_description.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xhdpi/icon_description.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_publication.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xhdpi/icon_publication.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/drawer_finished.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxhdpi/drawer_finished.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/drawer_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxhdpi/drawer_settings.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/icon_description.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxhdpi/icon_description.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/icon_publication.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxhdpi/icon_publication.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/drawer_barcode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxxhdpi/drawer_barcode.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/drawer_finished.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxxhdpi/drawer_finished.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/drawer_reading.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxxhdpi/drawer_reading.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/drawer_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxxhdpi/drawer_settings.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/drawer_to_read.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxxhdpi/drawer_to_read.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/icon_category_advice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-hdpi/icon_category_advice.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/icon_category_animals.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-hdpi/icon_category_animals.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/icon_category_crime.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-hdpi/icon_category_crime.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/icon_category_culture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-hdpi/icon_category_culture.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/icon_category_family.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-hdpi/icon_category_family.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/icon_category_fiction.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-hdpi/icon_category_fiction.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/icon_category_fitness.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-hdpi/icon_category_fitness.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/icon_category_games.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-hdpi/icon_category_games.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/icon_category_graphic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-hdpi/icon_category_graphic.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/icon_category_history.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-hdpi/icon_category_history.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/icon_category_humor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-hdpi/icon_category_humor.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/icon_category_science.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-hdpi/icon_category_science.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/icon_category_sports.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-hdpi/icon_category_sports.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/icon_category_travel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-hdpi/icon_category_travel.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/icon_category_young.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-hdpi/icon_category_young.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/icon_category_advice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-ldpi/icon_category_advice.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/icon_category_animals.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-ldpi/icon_category_animals.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/icon_category_crime.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-ldpi/icon_category_crime.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/icon_category_culture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-ldpi/icon_category_culture.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/icon_category_family.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-ldpi/icon_category_family.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/icon_category_fiction.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-ldpi/icon_category_fiction.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/icon_category_fitness.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-ldpi/icon_category_fitness.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/icon_category_games.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-ldpi/icon_category_games.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/icon_category_graphic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-ldpi/icon_category_graphic.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/icon_category_history.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-ldpi/icon_category_history.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/icon_category_humor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-ldpi/icon_category_humor.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/icon_category_science.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-ldpi/icon_category_science.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/icon_category_sports.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-ldpi/icon_category_sports.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/icon_category_travel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-ldpi/icon_category_travel.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/icon_category_young.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-ldpi/icon_category_young.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldrtl-xxhdpi/action_home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-ldrtl-xxhdpi/action_home.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldrtl-xxxhdpi/action_home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-ldrtl-xxxhdpi/action_home.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/icon_category_advice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-mdpi/icon_category_advice.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/icon_category_animals.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-mdpi/icon_category_animals.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/icon_category_crime.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-mdpi/icon_category_crime.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/icon_category_culture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-mdpi/icon_category_culture.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/icon_category_family.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-mdpi/icon_category_family.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/icon_category_fiction.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-mdpi/icon_category_fiction.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/icon_category_fitness.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-mdpi/icon_category_fitness.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/icon_category_games.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-mdpi/icon_category_games.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/icon_category_graphic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-mdpi/icon_category_graphic.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/icon_category_history.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-mdpi/icon_category_history.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/icon_category_humor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-mdpi/icon_category_humor.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/icon_category_science.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-mdpi/icon_category_science.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/icon_category_sports.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-mdpi/icon_category_sports.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/icon_category_travel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-mdpi/icon_category_travel.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/icon_category_young.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-mdpi/icon_category_young.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/drawer_header_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xhdpi/drawer_header_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_category_advice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xhdpi/icon_category_advice.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_category_crime.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xhdpi/icon_category_crime.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_category_family.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xhdpi/icon_category_family.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_category_food.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xhdpi/icon_category_food.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_category_games.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xhdpi/icon_category_games.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_category_humor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xhdpi/icon_category_humor.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_category_love.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xhdpi/icon_category_love.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_category_sports.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xhdpi/icon_category_sports.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_category_travel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xhdpi/icon_category_travel.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_category_young.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xhdpi/icon_category_young.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/default_cover_big.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxhdpi/default_cover_big.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/drawer_bestseller.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxhdpi/drawer_bestseller.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/drawer_header_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxhdpi/drawer_header_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/icon_category_crime.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxhdpi/icon_category_crime.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/icon_category_food.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxhdpi/icon_category_food.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/icon_category_games.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxhdpi/icon_category_games.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/icon_category_humor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxhdpi/icon_category_humor.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/icon_category_love.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxhdpi/icon_category_love.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/icon_category_young.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxhdpi/icon_category_young.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/default_cover_big.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxxhdpi/default_cover_big.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/drawer_bestseller.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxxhdpi/drawer_bestseller.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/drawer_header_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxxhdpi/drawer_header_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/icon_category_food.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxxhdpi/icon_category_food.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/icon_category_love.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxxhdpi/icon_category_love.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/icon_description.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxxhdpi/icon_description.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/icon_publication.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxxhdpi/icon_publication.png -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /keystore.properties 5 | /.idea/workspace.xml 6 | /.idea/libraries 7 | .DS_Store 8 | /build 9 | /captures 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/icon_category_business.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-hdpi/icon_category_business.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/icon_category_education.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-hdpi/icon_category_education.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/icon_category_religion.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-hdpi/icon_category_religion.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/icon_category_business.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-ldpi/icon_category_business.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/icon_category_education.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-ldpi/icon_category_education.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/icon_category_religion.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-ldpi/icon_category_religion.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/icon_category_business.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-mdpi/icon_category_business.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/icon_category_education.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-mdpi/icon_category_education.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/icon_category_religion.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-mdpi/icon_category_religion.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_category_animals.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xhdpi/icon_category_animals.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_category_business.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xhdpi/icon_category_business.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_category_culture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xhdpi/icon_category_culture.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_category_fiction.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xhdpi/icon_category_fiction.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_category_fitness.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xhdpi/icon_category_fitness.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_category_graphic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xhdpi/icon_category_graphic.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_category_history.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xhdpi/icon_category_history.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_category_religion.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xhdpi/icon_category_religion.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_category_science.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xhdpi/icon_category_science.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/icon_category_advice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxhdpi/icon_category_advice.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/icon_category_animals.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxhdpi/icon_category_animals.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/icon_category_culture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxhdpi/icon_category_culture.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/icon_category_family.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxhdpi/icon_category_family.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/icon_category_fiction.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxhdpi/icon_category_fiction.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/icon_category_fitness.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxhdpi/icon_category_fitness.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/icon_category_graphic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxhdpi/icon_category_graphic.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/icon_category_history.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxhdpi/icon_category_history.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/icon_category_science.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxhdpi/icon_category_science.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/icon_category_sports.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxhdpi/icon_category_sports.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/icon_category_travel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxhdpi/icon_category_travel.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/icon_category_advice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxxhdpi/icon_category_advice.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/icon_category_crime.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxxhdpi/icon_category_crime.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/icon_category_family.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxxhdpi/icon_category_family.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/icon_category_games.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxxhdpi/icon_category_games.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/icon_category_humor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxxhdpi/icon_category_humor.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/icon_category_sports.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxxhdpi/icon_category_sports.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/icon_category_travel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxxhdpi/icon_category_travel.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/icon_category_young.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxxhdpi/icon_category_young.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/drawer_header_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-hdpi/drawer_header_background.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/icon_category_celebrities.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-hdpi/icon_category_celebrities.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/icon_category_nonfiction.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-hdpi/icon_category_nonfiction.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/drawer_header_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-ldpi/drawer_header_background.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/icon_category_celebrities.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-ldpi/icon_category_celebrities.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/icon_category_nonfiction.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-ldpi/icon_category_nonfiction.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/drawer_header_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-mdpi/drawer_header_background.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/icon_category_celebrities.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-mdpi/icon_category_celebrities.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/icon_category_nonfiction.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-mdpi/icon_category_nonfiction.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/drawer_header_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xhdpi/drawer_header_background.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_category_celebrities.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xhdpi/icon_category_celebrities.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_category_education.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xhdpi/icon_category_education.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_category_nonfiction.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xhdpi/icon_category_nonfiction.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/drawer_header_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxhdpi/drawer_header_background.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/icon_category_business.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxhdpi/icon_category_business.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/icon_category_education.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxhdpi/icon_category_education.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/icon_category_nonfiction.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxhdpi/icon_category_nonfiction.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/icon_category_religion.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxhdpi/icon_category_religion.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/icon_category_animals.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxxhdpi/icon_category_animals.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/icon_category_business.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxxhdpi/icon_category_business.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/icon_category_culture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxxhdpi/icon_category_culture.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/icon_category_education.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxxhdpi/icon_category_education.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/icon_category_fiction.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxxhdpi/icon_category_fiction.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/icon_category_fitness.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxxhdpi/icon_category_fitness.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/icon_category_graphic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxxhdpi/icon_category_graphic.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/icon_category_history.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxxhdpi/icon_category_history.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/icon_category_religion.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxxhdpi/icon_category_religion.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/icon_category_science.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxxhdpi/icon_category_science.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/icon_category_celebrities.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxhdpi/icon_category_celebrities.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/drawer_header_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxxhdpi/drawer_header_background.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/icon_category_celebrities.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxxhdpi/icon_category_celebrities.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/icon_category_nonfiction.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ronak-lm/android-bookworm/HEAD/app/src/main/res/drawable-xxxhdpi/icon_category_nonfiction.png -------------------------------------------------------------------------------- /.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_book.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/src/main/java/com/ronakmanglani/bookworm/ui/adapter/listener/OnCategoryClickListener.java: -------------------------------------------------------------------------------- 1 | package com.ronakmanglani.bookworm.ui.adapter.listener; 2 | 3 | public interface OnCategoryClickListener { 4 | void onCategoryClicked(final int position); 5 | } 6 | -------------------------------------------------------------------------------- /app/src/main/res/layout/content_drawer.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Mon Dec 28 10:00:20 PST 2015 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip 7 | -------------------------------------------------------------------------------- /.idea/inspectionProfiles/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | -------------------------------------------------------------------------------- /app/src/main/java/com/ronakmanglani/bookworm/ui/adapter/listener/OnBookClickListener.java: -------------------------------------------------------------------------------- 1 | package com.ronakmanglani.bookworm.ui.adapter.listener; 2 | 3 | import android.view.View; 4 | 5 | public interface OnBookClickListener { 6 | void onBookCardClicked(final int position); 7 | void onBookMenuClicked(final int position, View view); 8 | } 9 | -------------------------------------------------------------------------------- /app/src/main/res/menu/menu_sort.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/values-v21/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/src/main/res/layout/content_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_search.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/java/com/ronakmanglani/bookworm/data/BookDatabase.java: -------------------------------------------------------------------------------- 1 | package com.ronakmanglani.bookworm.data; 2 | 3 | import net.simonvt.schematic.annotation.Database; 4 | import net.simonvt.schematic.annotation.Table; 5 | 6 | @Database(version = BookDatabase.VERSION) 7 | public final class BookDatabase { 8 | 9 | public static final int VERSION = 1; 10 | 11 | @Table(BookColumns.class) public static final String BOOKS = "books"; 12 | 13 | } 14 | -------------------------------------------------------------------------------- /app/src/main/res/menu/menu_popup.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 9 | 10 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/menu/menu_book.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 9 | 10 | 13 | 14 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/background_rating.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 10 | 15 | -------------------------------------------------------------------------------- /.idea/runConfigurations.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/xml/preferences.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 9 | 10 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /.idea/compiler.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 22 | 23 | -------------------------------------------------------------------------------- /app/src/main/res/layout-sw600dp/activity_main.xml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 14 | 15 | 19 | 20 | -------------------------------------------------------------------------------- /app/src/main/res/layout-sw600dp/activity_search.xml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 14 | 15 | 19 | 20 | -------------------------------------------------------------------------------- /app/src/main/res/layout/layout_progress_circle.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 17 | 18 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_list.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 9 | 10 | 11 | 13 | 14 | 15 | 22 | 23 | -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Gradle settings configured through the IDE *will override* 5 | # any settings specified in this file. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory settings. 12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m 13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 14 | 15 | # When configured, Gradle will run in incubating parallel mode. 16 | # This option should only be used with decoupled projects. More details, visit 17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 18 | # org.gradle.parallel=true -------------------------------------------------------------------------------- /app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #4CAF50 4 | #388E3C 5 | #FF5252 6 | #FF1744 7 | #ebebeb 8 | 9 | #000000 10 | #FFFFFF 11 | 12 | #eeaf4b 13 | #d68f1d 14 | #55acee 15 | #4791c9 16 | #9777a8 17 | #8b6d9b 18 | 19 | #40808080 20 | #40808080 21 | #323232 22 | 23 | -------------------------------------------------------------------------------- /app/src/main/java/com/ronakmanglani/bookworm/data/BookProvider.java: -------------------------------------------------------------------------------- 1 | package com.ronakmanglani.bookworm.data; 2 | 3 | import android.net.Uri; 4 | 5 | import net.simonvt.schematic.annotation.ContentProvider; 6 | import net.simonvt.schematic.annotation.ContentUri; 7 | import net.simonvt.schematic.annotation.TableEndpoint; 8 | 9 | @ContentProvider(authority = BookProvider.AUTHORITY, database = BookDatabase.class) 10 | public class BookProvider { 11 | 12 | public static final String AUTHORITY = "com.ronakmanglani.bookworm.data.BookProvider"; 13 | 14 | @TableEndpoint(table = BookDatabase.BOOKS) public static class Books { 15 | 16 | @ContentUri( 17 | path = "books", 18 | type = "vnd.android.cursor.dir/list", 19 | defaultSort = BookColumns.TITLE + " ASC") 20 | public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/books"); 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /app/src/main/res/menu/menu_drawer.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 12 | 13 | 16 | 17 | 20 | 21 | 24 | 25 | -------------------------------------------------------------------------------- /app/src/main/java/com/ronakmanglani/bookworm/util/PreferenceUtil.java: -------------------------------------------------------------------------------- 1 | package com.ronakmanglani.bookworm.util; 2 | 3 | import android.content.Context; 4 | import android.content.SharedPreferences; 5 | 6 | import com.ronakmanglani.bookworm.BookWormApp; 7 | 8 | public class PreferenceUtil { 9 | 10 | // Constants 11 | private static final String PREFERENCE_NAME = "user_settings"; 12 | private static final String PREF_SORT = "sort_type"; 13 | 14 | // Return SharedPreferences instance 15 | private static SharedPreferences getPreference() { 16 | return BookWormApp.getAppContext().getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE); 17 | } 18 | 19 | // Get/Put methods 20 | public static void putSortType(int sortType) { 21 | getPreference().edit().putInt(PREF_SORT, sortType).commit(); 22 | } 23 | public static int getSortType() { 24 | return getPreference().getInt(PREF_SORT, BookWormApp.SORT_TITLE); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /app/src/main/res/layout/layout_progress_circle_small.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 18 | 19 | -------------------------------------------------------------------------------- /app/src/main/java/com/ronakmanglani/bookworm/ui/view/RobotoBoldTextView.java: -------------------------------------------------------------------------------- 1 | package com.ronakmanglani.bookworm.ui.view; 2 | 3 | import android.content.Context; 4 | import android.graphics.Typeface; 5 | import android.util.AttributeSet; 6 | import android.widget.TextView; 7 | 8 | import com.ronakmanglani.bookworm.util.FontUtil; 9 | 10 | public class RobotoBoldTextView extends TextView { 11 | 12 | public RobotoBoldTextView(Context context) { 13 | super(context); 14 | applyCustomFont(); 15 | } 16 | 17 | public RobotoBoldTextView(Context context, AttributeSet attrs) { 18 | super(context, attrs); 19 | applyCustomFont(); 20 | } 21 | 22 | public RobotoBoldTextView(Context context, AttributeSet attrs, int defStyle) { 23 | super(context, attrs, defStyle); 24 | applyCustomFont(); 25 | } 26 | 27 | private void applyCustomFont() { 28 | Typeface customFont = FontUtil.getTypeface(FontUtil.ROBOTO_BOLD); 29 | setTypeface(customFont); 30 | } 31 | } -------------------------------------------------------------------------------- /app/src/main/java/com/ronakmanglani/bookworm/ui/view/RobotoLightTextView.java: -------------------------------------------------------------------------------- 1 | package com.ronakmanglani.bookworm.ui.view; 2 | 3 | import android.content.Context; 4 | import android.graphics.Typeface; 5 | import android.util.AttributeSet; 6 | import android.widget.TextView; 7 | 8 | import com.ronakmanglani.bookworm.util.FontUtil; 9 | 10 | public class RobotoLightTextView extends TextView { 11 | 12 | public RobotoLightTextView(Context context) { 13 | super(context); 14 | applyCustomFont(); 15 | } 16 | 17 | public RobotoLightTextView(Context context, AttributeSet attrs) { 18 | super(context, attrs); 19 | applyCustomFont(); 20 | } 21 | 22 | public RobotoLightTextView(Context context, AttributeSet attrs, int defStyle) { 23 | super(context, attrs, defStyle); 24 | applyCustomFont(); 25 | } 26 | 27 | private void applyCustomFont() { 28 | Typeface customFont = FontUtil.getTypeface(FontUtil.ROBOTO_LIGHT); 29 | setTypeface(customFont); 30 | } 31 | } -------------------------------------------------------------------------------- /app/src/main/java/com/ronakmanglani/bookworm/ui/view/RobotoRegularTextView.java: -------------------------------------------------------------------------------- 1 | package com.ronakmanglani.bookworm.ui.view; 2 | 3 | import android.content.Context; 4 | import android.graphics.Typeface; 5 | import android.util.AttributeSet; 6 | import android.widget.TextView; 7 | 8 | import com.ronakmanglani.bookworm.util.FontUtil; 9 | 10 | public class RobotoRegularTextView extends TextView { 11 | 12 | public RobotoRegularTextView(Context context) { 13 | super(context); 14 | applyCustomFont(); 15 | } 16 | 17 | public RobotoRegularTextView(Context context, AttributeSet attrs) { 18 | super(context, attrs); 19 | applyCustomFont(); 20 | } 21 | 22 | public RobotoRegularTextView(Context context, AttributeSet attrs, int defStyle) { 23 | super(context, attrs, defStyle); 24 | applyCustomFont(); 25 | } 26 | 27 | private void applyCustomFont() { 28 | Typeface customFont = FontUtil.getTypeface(FontUtil.ROBOTO_REGULAR); 29 | setTypeface(customFont); 30 | } 31 | } -------------------------------------------------------------------------------- /app/src/main/java/com/ronakmanglani/bookworm/ui/activity/BookActivity.java: -------------------------------------------------------------------------------- 1 | package com.ronakmanglani.bookworm.ui.activity; 2 | 3 | import android.os.Bundle; 4 | import android.support.v7.app.AppCompatActivity; 5 | 6 | import com.ronakmanglani.bookworm.BookWormApp; 7 | import com.ronakmanglani.bookworm.R; 8 | import com.ronakmanglani.bookworm.ui.fragment.BookFragment; 9 | 10 | public class BookActivity extends AppCompatActivity { 11 | 12 | @Override 13 | protected void onCreate(Bundle savedInstanceState) { 14 | super.onCreate(savedInstanceState); 15 | setContentView(R.layout.activity_book); 16 | 17 | if (savedInstanceState == null) { 18 | BookFragment fragment = new BookFragment(); 19 | 20 | Bundle args = new Bundle(); 21 | args.putParcelable(BookWormApp.KEY_BOOK, getIntent().getParcelableExtra(BookWormApp.KEY_BOOK)); 22 | fragment.setArguments(args); 23 | 24 | getSupportFragmentManager().beginTransaction().replace(R.id.book_detail_container, fragment).commit(); 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /app/src/main/java/com/ronakmanglani/bookworm/ui/view/PaddingDecorationView.java: -------------------------------------------------------------------------------- 1 | package com.ronakmanglani.bookworm.ui.view; 2 | 3 | import android.content.Context; 4 | import android.graphics.Rect; 5 | import android.support.annotation.DimenRes; 6 | import android.support.annotation.NonNull; 7 | import android.support.v7.widget.RecyclerView; 8 | import android.view.View; 9 | 10 | public class PaddingDecorationView extends RecyclerView.ItemDecoration { 11 | 12 | private int mItemOffset; 13 | 14 | public PaddingDecorationView(int itemOffset) { 15 | mItemOffset = itemOffset; 16 | } 17 | 18 | public PaddingDecorationView(@NonNull Context context, @DimenRes int itemOffsetId) { 19 | this(context.getResources().getDimensionPixelSize(itemOffsetId)); 20 | } 21 | 22 | @Override 23 | public void getItemOffsets(Rect outRect, View view, RecyclerView parent, 24 | RecyclerView.State state) { 25 | super.getItemOffsets(outRect, view, parent, state); 26 | outRect.set(mItemOffset, mItemOffset, mItemOffset, mItemOffset); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_bestseller.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 12 | 13 | 15 | 16 | 18 | 19 | 26 | 27 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing 2 | 3 | If you wish to contribute to this project, feel free to [fork Book Worm][1], make changes and submit a [pull request][2]. Make sure to keep the commit style consistent. 4 | 5 | 6 | ## Setup 7 | 8 | To work, the project will need API keys from [New York Times Bestseller API][3] and [Google Books API][4]. Create a file called "keys.xml" in the \res\values folder with these values:- 9 | 10 | YOUR_NYTB_KEY_HERE 11 | YOUR_GOOGLE_BOOKS_KEY_HERE 12 | 13 | 14 | ## Signing Release Builds 15 | 16 | You will have to add your keystore file with the name "keystore.jks" in the app folder. Create a "keystore.properties" file in the the project's root folder with these values:- 17 | 18 | storeFile=keystore.jks 19 | keyAlias=YOUR_KEY_ALIAS_HERE 20 | storePassword=YOUR_STORE_PASS_HERE 21 | keyPassword=YOUR_KEY_PASS_HERE 22 | 23 | [1]: https://github.com/Ronak-LM/book-worm/fork 24 | [2]: https://github.com/Ronak-LM/book-worm/compare 25 | [3]: http://developer.nytimes.com/ 26 | [4]: https://developers.google.com/books/ -------------------------------------------------------------------------------- /app/src/main/java/com/ronakmanglani/bookworm/util/FontUtil.java: -------------------------------------------------------------------------------- 1 | package com.ronakmanglani.bookworm.util; 2 | 3 | import android.graphics.Typeface; 4 | 5 | import com.ronakmanglani.bookworm.BookWormApp; 6 | 7 | import java.util.Hashtable; 8 | 9 | public class FontUtil { 10 | 11 | public static final String ROBOTO_REGULAR = "fonts/Roboto-Regular.ttf"; 12 | public static final String ROBOTO_LIGHT = "fonts/Roboto-Light.ttf"; 13 | public static final String ROBOTO_BOLD = "fonts/Roboto-Bold.ttf"; 14 | 15 | private FontUtil() { } 16 | 17 | // Cache fonts in hash table 18 | private static Hashtable fontCache = new Hashtable(); 19 | public static Typeface getTypeface(String name) { 20 | Typeface tf = fontCache.get(name); 21 | if(tf == null) { 22 | try { 23 | tf = Typeface.createFromAsset(BookWormApp.getAppContext().getAssets(), name); 24 | } 25 | catch (Exception e) { 26 | return null; 27 | } 28 | fontCache.put(name, tf); 29 | } 30 | return tf; 31 | } 32 | } -------------------------------------------------------------------------------- /app/src/main/java/com/ronakmanglani/bookworm/util/DimenUtil.java: -------------------------------------------------------------------------------- 1 | package com.ronakmanglani.bookworm.util; 2 | 3 | import android.util.DisplayMetrics; 4 | 5 | import com.ronakmanglani.bookworm.BookWormApp; 6 | import com.ronakmanglani.bookworm.R; 7 | 8 | public class DimenUtil { 9 | 10 | private DimenUtil() { } 11 | 12 | // Check if device is a tablet 13 | public static boolean isTablet() { 14 | return BookWormApp.getAppContext().getResources().getBoolean(R.bool.is_tablet); 15 | } 16 | 17 | // Get number of columns for RecyclerView 18 | public static int getNumberOfColumns(int dimenId, int minColumns) { 19 | // Get screen width 20 | DisplayMetrics displayMetrics = BookWormApp.getAppContext().getResources().getDisplayMetrics(); 21 | float widthPx = displayMetrics.widthPixels; 22 | if (isTablet()) { 23 | widthPx = widthPx / 3; 24 | } 25 | // Calculate desired width 26 | float desiredPx = BookWormApp.getAppContext().getResources().getDimensionPixelSize(dimenId); 27 | int columns = Math.round(widthPx / desiredPx); 28 | return columns > minColumns ? columns : minColumns; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 15 | 16 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /app/src/main/java/com/ronakmanglani/bookworm/ui/activity/SettingsActivity.java: -------------------------------------------------------------------------------- 1 | package com.ronakmanglani.bookworm.ui.activity; 2 | 3 | import android.os.Bundle; 4 | import android.support.v7.app.AppCompatActivity; 5 | import android.support.v7.widget.Toolbar; 6 | import android.view.MenuItem; 7 | 8 | import com.ronakmanglani.bookworm.R; 9 | import com.ronakmanglani.bookworm.ui.fragment.SettingsFragment; 10 | 11 | public class SettingsActivity extends AppCompatActivity { 12 | 13 | @Override 14 | protected void onCreate(Bundle savedInstanceState) { 15 | super.onCreate(savedInstanceState); 16 | setContentView(R.layout.activity_settings); 17 | 18 | Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 19 | setSupportActionBar(toolbar); 20 | getSupportActionBar().setDisplayHomeAsUpEnabled(true); 21 | 22 | getFragmentManager().beginTransaction().replace(R.id.settings_layout, new SettingsFragment()).commit(); 23 | } 24 | 25 | @Override 26 | public boolean onOptionsItemSelected(MenuItem item) { 27 | if (item.getItemId() == android.R.id.home) { 28 | onBackPressed(); 29 | return true; 30 | } else { 31 | return false; 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /app/src/main/java/com/ronakmanglani/bookworm/ui/adapter/viewholder/CategoryViewHolder.java: -------------------------------------------------------------------------------- 1 | package com.ronakmanglani.bookworm.ui.adapter.viewholder; 2 | 3 | import android.support.v7.widget.RecyclerView; 4 | import android.view.View; 5 | import android.view.ViewGroup; 6 | import android.widget.ImageView; 7 | import android.widget.TextView; 8 | 9 | import com.ronakmanglani.bookworm.R; 10 | import com.ronakmanglani.bookworm.ui.adapter.listener.OnCategoryClickListener; 11 | 12 | import butterknife.BindView; 13 | import butterknife.ButterKnife; 14 | 15 | public class CategoryViewHolder extends RecyclerView.ViewHolder { 16 | @BindView(R.id.category_item) public View categoryItem; 17 | @BindView(R.id.category_icon) public ImageView categoryIcon; 18 | @BindView(R.id.category_name) public TextView categoryName; 19 | 20 | public CategoryViewHolder(final ViewGroup itemView, final OnCategoryClickListener onCategoryClickListener) { 21 | super(itemView); 22 | ButterKnife.bind(this, itemView); 23 | categoryItem.setOnClickListener(new View.OnClickListener() { 24 | @Override 25 | public void onClick(View v) { 26 | onCategoryClickListener.onCategoryClicked(getAdapterPosition()); 27 | } 28 | }); 29 | } 30 | } -------------------------------------------------------------------------------- /app/src/main/java/com/ronakmanglani/bookworm/util/StringUtil.java: -------------------------------------------------------------------------------- 1 | package com.ronakmanglani.bookworm.util; 2 | 3 | public class StringUtil { 4 | 5 | private StringUtil() { } 6 | 7 | // Check if string is empty or null 8 | public static boolean isNullOrEmpty(String s) { 9 | return (s == null || s.length() == 0 || 10 | s.toLowerCase().equals("null") || 11 | s.toLowerCase().equals("none")); 12 | } 13 | 14 | // Convert string to title case 15 | public static String toTitleCase(String s) { 16 | final String ACTIONABLE_DELIMITERS = " -/"; 17 | 18 | StringBuilder sb = new StringBuilder(); 19 | boolean capNext = true; 20 | 21 | char charArray[] = s.toCharArray(); 22 | for (char c : charArray) { 23 | c = (capNext) 24 | ? Character.toUpperCase(c) 25 | : Character.toLowerCase(c); 26 | sb.append(c); 27 | capNext = (ACTIONABLE_DELIMITERS.indexOf((int) c) >= 0); 28 | } 29 | return sb.toString(); 30 | } 31 | 32 | // Remove all special characters and spaces from string 33 | public static String cleanText(String s) { 34 | return s.toLowerCase().trim().replaceAll("[^A-Za-z0-9]", ""); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_book.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 12 | 13 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /app/src/main/res/layout/content_book.xml: -------------------------------------------------------------------------------- 1 | 12 | 13 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in C:\Users\ronak\AppData\Local\Android\sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | 19 | # ButterKnife 20 | -keep public class * implements butterknife.internal.ViewBinder { public (); } 21 | -keep class butterknife.* 22 | -keepclasseswithmembernames class * { @butterknife.* ; } 23 | -keepclasseswithmembernames class * { @butterknife.* ; } 24 | 25 | #ZBar Scanner 26 | -keep class me.dm7.barcodescanner.** { *; } 27 | -keep class net.sourceforge.zbar.** { *; } 28 | 29 | # Picasso 30 | -dontwarn com.squareup.okhttp.** 31 | 32 | # Google AdMob 33 | -keep public class com.google.android.gms.ads.** { 34 | public *; 35 | } 36 | -keep public class com.google.ads.** { 37 | public *; 38 | } -------------------------------------------------------------------------------- /app/src/main/res/layout/content_search.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 11 | 18 | 19 | 20 | 22 | 23 | 24 | 26 | 27 | 28 | 30 | 31 | 32 | 34 | 35 | -------------------------------------------------------------------------------- /app/src/main/res/layout/layout_list_placeholder.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 14 | 15 | 21 | 22 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /app/src/main/res/layout/toolbar_twoline.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 22 | 23 | 32 | 33 | -------------------------------------------------------------------------------- /app/src/main/java/com/ronakmanglani/bookworm/ui/activity/BarcodeActivity.java: -------------------------------------------------------------------------------- 1 | package com.ronakmanglani.bookworm.ui.activity; 2 | 3 | import android.content.Intent; 4 | import android.os.Bundle; 5 | import android.support.v7.app.AppCompatActivity; 6 | 7 | import com.ronakmanglani.bookworm.BookWormApp; 8 | 9 | import me.dm7.barcodescanner.zbar.Result; 10 | import me.dm7.barcodescanner.zbar.ZBarScannerView; 11 | 12 | public class BarcodeActivity extends AppCompatActivity implements ZBarScannerView.ResultHandler { 13 | 14 | private ZBarScannerView mScannerView; 15 | 16 | @Override 17 | public void onCreate(Bundle state) { 18 | super.onCreate(state); 19 | mScannerView = new ZBarScannerView(this); 20 | setContentView(mScannerView); 21 | } 22 | 23 | @Override 24 | public void onResume() { 25 | super.onResume(); 26 | mScannerView.setResultHandler(this); 27 | mScannerView.startCamera(); 28 | } 29 | 30 | @Override 31 | public void onPause() { 32 | super.onPause(); 33 | mScannerView.stopCamera(); 34 | } 35 | 36 | @Override 37 | public void handleResult(Result rawResult) { 38 | String searchQuery = "isbn:" + rawResult.getContents(); 39 | Intent intent = new Intent(this, SearchActivity.class); 40 | intent.putExtra(BookWormApp.KEY_QUERY, searchQuery); 41 | startActivity(intent); 42 | finish(); 43 | } 44 | } -------------------------------------------------------------------------------- /app/src/main/java/com/ronakmanglani/bookworm/api/ApiHelper.java: -------------------------------------------------------------------------------- 1 | package com.ronakmanglani.bookworm.api; 2 | 3 | import android.net.Uri; 4 | 5 | import com.ronakmanglani.bookworm.BookWormApp; 6 | import com.ronakmanglani.bookworm.R; 7 | 8 | public class ApiHelper { 9 | 10 | // Private constructor to prevent instantiation 11 | private ApiHelper() { 12 | } 13 | 14 | // API keys 15 | private static String getGoogleBooksApiKey() { 16 | return BookWormApp.getAppContext().getString(R.string.google_books_key); 17 | } 18 | private static String getNewYorkTimesBestsellerApiKey() { 19 | return BookWormApp.getAppContext().getString(R.string.nyt_bestseller_key); 20 | } 21 | 22 | // API endpoints 23 | public static String getBestsellerListUrl(String listName) { 24 | return "https://api.nytimes.com/svc/books/v3/lists//" + listName + ".json?api-key=" + getNewYorkTimesBestsellerApiKey(); 25 | } 26 | public static String getSearchListUrl(String query, int startIndex) { 27 | return Uri.parse("https://www.googleapis.com/books/v1/volumes").buildUpon() 28 | .appendQueryParameter("q", query) 29 | .appendQueryParameter("startIndex", startIndex + "") 30 | .appendQueryParameter("fields", "totalItems,items(id,volumeInfo)") 31 | .appendQueryParameter("key", getGoogleBooksApiKey()) 32 | .build().toString(); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /app/src/main/java/com/ronakmanglani/bookworm/api/VolleySingleton.java: -------------------------------------------------------------------------------- 1 | package com.ronakmanglani.bookworm.api; 2 | 3 | import android.graphics.Bitmap; 4 | import android.support.v4.util.LruCache; 5 | 6 | import com.android.volley.RequestQueue; 7 | import com.android.volley.toolbox.ImageLoader; 8 | import com.android.volley.toolbox.Volley; 9 | import com.ronakmanglani.bookworm.BookWormApp; 10 | 11 | public class VolleySingleton { 12 | 13 | // Singleton Instance 14 | private static VolleySingleton instance; 15 | public static VolleySingleton getInstance() { 16 | if (instance == null) { 17 | instance = new VolleySingleton(); 18 | } 19 | return instance; 20 | } 21 | 22 | // Member objects 23 | public RequestQueue requestQueue; 24 | public ImageLoader imageLoader; 25 | 26 | // Constructor 27 | private VolleySingleton() { 28 | requestQueue = Volley.newRequestQueue(BookWormApp.getAppContext()); 29 | imageLoader = new ImageLoader(requestQueue, new ImageLoader.ImageCache() { 30 | private final LruCache cache = new LruCache<>(20); 31 | @Override 32 | public Bitmap getBitmap(String url) { 33 | return cache.get(url); 34 | } 35 | @Override 36 | public void putBitmap(String url, Bitmap bitmap) { 37 | cache.put(url, bitmap); 38 | } 39 | }); 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /app/src/main/res/layout/layout_no_results.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 14 | 15 | 21 | 22 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /app/src/main/res/layout/layout_book_description.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | 19 | 20 | 23 | 24 | 27 | 28 | 29 | 30 | 31 | 35 | 36 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_category.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 19 | 20 | 32 | 33 | -------------------------------------------------------------------------------- /CREDITS.md: -------------------------------------------------------------------------------- 1 | # Credits 2 | Designed and built by [Ronak Manglani][1] 3 | 4 | 5 | # Icons 6 | This app uses [Material icons by Google][2] and some images from [Daniel Llamas Soto][3] and [Creative Stall][4] from [Noun Project][5]. 7 | 8 | 9 | ## Sources 10 | 11 | ##### New York Times (http://developer.nytimes.com) 12 | * This app uses the New York Times Best Sellers API to get the bestseller categories and lists. 13 | * http://developer.nytimes.com/tou 14 | * http://developer.nytimes.com/books_api.json 15 | 16 | ##### Google Books API (https://books.google.com) 17 | * This app uses Google Books API to get search results and book details. 18 | * https://developers.google.com/books/terms 19 | * https://developers.google.com/books/docs/overview 20 | 21 | 22 | ## Libraries Used 23 | * [Barcode Scanner](https://github.com/dm77/barcodescanner) 24 | * [Butter Knife](https://github.com/JakeWharton/butterknife) 25 | * [FloatingActionButton](https://github.com/Clans/FloatingActionButton) 26 | * [MaterialLoadingProgressBar](https://github.com/lsjwzh/MaterialLoadingProgressBar) 27 | * [NoNonsense-FilePicker](https://github.com/spacecowboy/NoNonsense-FilePicker) 28 | * [Picasso](https://github.com/square/picasso) 29 | * [Schematic](https://github.com/SimonVT/schematic) 30 | * [Volley](http://developer.android.com/training/volley/index.html) 31 | 32 | [1]: https://github.com/Ronak-LM 33 | [2]: https://design.google.com/icons/index.html 34 | [3]: https://thenounproject.com/yamasoto/ 35 | [4]: https://thenounproject.com/creativestall/ 36 | [5]: https://thenounproject.com/ -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_search.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 12 | 13 | 19 | 20 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /app/src/main/res/layout/layout_book_message.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 15 | 16 | 22 | 23 | 31 | 32 | 33 | 34 | 35 | 39 | 40 | -------------------------------------------------------------------------------- /app/src/main/res/layout/layout_error_message.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | 14 | 15 | 16 | 23 | 24 | 25 | 36 | 37 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_drawer.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 13 | 14 | 18 | 19 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 39 | 40 | -------------------------------------------------------------------------------- /app/src/main/res/layout/layout_drawer_header.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 14 | 15 | 21 | 22 | 28 | 29 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /app/src/main/res/layout/layout_book_ranking.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | 19 | 20 | 23 | 24 | 27 | 28 | 29 | 30 | 31 | 35 | 36 | 37 | 41 | 42 | -------------------------------------------------------------------------------- /app/src/main/java/com/ronakmanglani/bookworm/ui/adapter/viewholder/BookViewHolder.java: -------------------------------------------------------------------------------- 1 | package com.ronakmanglani.bookworm.ui.adapter.viewholder; 2 | 3 | import android.support.v7.widget.CardView; 4 | import android.support.v7.widget.RecyclerView; 5 | import android.view.View; 6 | import android.view.ViewGroup; 7 | import android.widget.ImageView; 8 | import android.widget.TextView; 9 | 10 | import com.ronakmanglani.bookworm.R; 11 | import com.ronakmanglani.bookworm.ui.adapter.listener.OnBookClickListener; 12 | 13 | import butterknife.BindView; 14 | import butterknife.ButterKnife; 15 | 16 | public class BookViewHolder extends RecyclerView.ViewHolder { 17 | 18 | @BindView(R.id.book_card) public CardView cardView; 19 | @BindView(R.id.book_cover) public ImageView coverImage; 20 | @BindView(R.id.book_title) public TextView title; 21 | @BindView(R.id.book_author) public TextView author; 22 | @BindView(R.id.book_menu) public View bookMenu; 23 | 24 | public BookViewHolder(final ViewGroup itemView, final OnBookClickListener onBookClickListener) { 25 | super(itemView); 26 | ButterKnife.bind(this, itemView); 27 | cardView.setOnClickListener(new View.OnClickListener() { 28 | @Override 29 | public void onClick(View v) { 30 | onBookClickListener.onBookCardClicked(getAdapterPosition()); 31 | } 32 | }); 33 | bookMenu.setOnClickListener(new View.OnClickListener() { 34 | @Override 35 | public void onClick(View view) { 36 | onBookClickListener.onBookMenuClicked(getAdapterPosition(), bookMenu); 37 | } 38 | }); 39 | } 40 | } -------------------------------------------------------------------------------- /app/src/main/java/com/ronakmanglani/bookworm/data/BookColumns.java: -------------------------------------------------------------------------------- 1 | package com.ronakmanglani.bookworm.data; 2 | 3 | import net.simonvt.schematic.annotation.AutoIncrement; 4 | import net.simonvt.schematic.annotation.DataType; 5 | import net.simonvt.schematic.annotation.NotNull; 6 | import net.simonvt.schematic.annotation.PrimaryKey; 7 | 8 | import static net.simonvt.schematic.annotation.DataType.Type.INTEGER; 9 | import static net.simonvt.schematic.annotation.DataType.Type.TEXT; 10 | 11 | public interface BookColumns { 12 | 13 | @DataType(INTEGER) @PrimaryKey @AutoIncrement String _ID = "_id"; 14 | @DataType(TEXT) @NotNull String BOOK_ID = "book_id"; 15 | @DataType(TEXT) @NotNull String ISBN_10 = "isbn_10"; 16 | @DataType(TEXT) @NotNull String ISBN_13 = "isbn_13"; 17 | @DataType(TEXT) @NotNull String TITLE = "title"; 18 | @DataType(TEXT) @NotNull String SUBTITLE = "subtitle"; 19 | @DataType(TEXT) @NotNull String AUTHORS = "authors"; 20 | @DataType(TEXT) @NotNull String PAGE_COUNT = "page_count"; 21 | @DataType(TEXT) @NotNull String AVG_RATING = "avg_rating"; 22 | @DataType(TEXT) @NotNull String RATING_COUNT = "rating_count"; 23 | @DataType(TEXT) @NotNull String IMAGE_URL = "image_url"; 24 | @DataType(TEXT) @NotNull String PUBLISHER = "publisher"; 25 | @DataType(TEXT) @NotNull String PUBLISH_DATE = "publish_date"; 26 | @DataType(TEXT) @NotNull String DESCRIPTION = "description"; 27 | @DataType(TEXT) @NotNull String ITEM_URL = "item_url"; 28 | @DataType(INTEGER) @NotNull String SHELF = "shelf"; 29 | 30 | // Constants for book shelf 31 | int SHELF_NONE = 0; 32 | int SHELF_TO_READ = 1; 33 | int SHELF_READING = 2; 34 | int SHELF_FINISHED = 3; 35 | 36 | } 37 | -------------------------------------------------------------------------------- /app/src/main/java/com/ronakmanglani/bookworm/ui/adapter/CategoryAdapter.java: -------------------------------------------------------------------------------- 1 | package com.ronakmanglani.bookworm.ui.adapter; 2 | 3 | import android.support.v7.widget.RecyclerView; 4 | import android.view.LayoutInflater; 5 | import android.view.ViewGroup; 6 | 7 | import com.ronakmanglani.bookworm.R; 8 | import com.ronakmanglani.bookworm.model.Category; 9 | import com.ronakmanglani.bookworm.ui.adapter.listener.OnCategoryClickListener; 10 | import com.ronakmanglani.bookworm.ui.adapter.viewholder.CategoryViewHolder; 11 | 12 | public class CategoryAdapter extends RecyclerView.Adapter { 13 | 14 | private OnCategoryClickListener onCategoryClickListener; 15 | 16 | // Constructor 17 | public CategoryAdapter(OnCategoryClickListener onCategoryClickListener) { 18 | this.onCategoryClickListener = onCategoryClickListener; 19 | } 20 | 21 | // RecyclerView methods 22 | @Override 23 | public int getItemCount() { 24 | return Category.getCategoryList().size(); 25 | } 26 | @Override 27 | public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 28 | ViewGroup v = (ViewGroup) LayoutInflater.from(parent.getContext()).inflate(R.layout.item_category, parent, false); 29 | return new CategoryViewHolder(v, onCategoryClickListener); 30 | } 31 | @Override 32 | public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, int position) { 33 | CategoryViewHolder holder = (CategoryViewHolder) viewHolder; 34 | Category category = Category.getCategoryList().get(position); 35 | holder.categoryIcon.setImageResource(category.getIconId()); 36 | holder.categoryName.setText(category.getDisplayName()); 37 | } 38 | } -------------------------------------------------------------------------------- /app/src/main/java/com/ronakmanglani/bookworm/BookWormApp.java: -------------------------------------------------------------------------------- 1 | package com.ronakmanglani.bookworm; 2 | 3 | import android.app.Application; 4 | import android.content.Context; 5 | 6 | public class BookWormApp extends Application { 7 | 8 | // Constants 9 | public static final String TAG_BESTSELLER = "bestseller_fragment"; 10 | public static final String TAG_LIST = "list_fragment"; 11 | public static final String KEY_TITLE = "toolbar_title"; 12 | public static final String KEY_NAME = "list_name"; 13 | public static final String KEY_BESTSELLER = "bestseller_list"; 14 | public static final String KEY_QUERY = "search_query"; 15 | public static final String KEY_SEARCH = "search_list"; 16 | public static final String KEY_INDEX = "start_index"; 17 | public static final String KEY_TOTAL = "total_items"; 18 | public static final String KEY_SORT = "sort_type"; 19 | public static final String KEY_BOOK = "book_object"; 20 | public static final String KEY_VISIBILITY = "message_visibility"; 21 | public static final String KEY_SHELF = "book_shelf"; 22 | public static final String KEY_STATE = "current_state"; 23 | public static final int STATE_LOADING = 1; 24 | public static final int STATE_LOADED = 2; 25 | public static final int STATE_FAILED = 3; 26 | public static final int STATE_LOCKED = 4; 27 | public static final int SORT_TITLE = 1; 28 | public static final int SORT_AUTHOR = 2; 29 | 30 | // Initialize context 31 | @Override 32 | public void onCreate() { 33 | super.onCreate(); 34 | mAppContext = getApplicationContext(); 35 | } 36 | 37 | // To access context from any class 38 | private static Context mAppContext; 39 | public static Context getAppContext() { 40 | return mAppContext; 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Book Worm - Reading List 2 | 3 | Explore bestselling books and manage your reading catalogue on your Android phone or tablet. 4 | 5 | ![screen](../master/art/screenshot.jpg) 6 | 7 | 8 | ## Features 9 | 10 | * View New York Times bestseller categories and lists. 11 | * Search books by title/author or by scanning barcode. 12 | * View details like author, average rating, pages, description, etc. 13 | * Maintain your reading lists : To Read, Reading or Finished. 14 | * Sort your list by title or author. 15 | * Export app backup to SD card and restore. 16 | 17 | 18 | ## Libraries Used 19 | 20 | * [Barcode Scanner](https://github.com/dm77/barcodescanner) 21 | * [Butter Knife](https://github.com/JakeWharton/butterknife) 22 | * [FloatingActionButton](https://github.com/Clans/FloatingActionButton) 23 | * [MaterialLoadingProgressBar](https://github.com/lsjwzh/MaterialLoadingProgressBar) 24 | * [NoNonsense-FilePicker](https://github.com/spacecowboy/NoNonsense-FilePicker) 25 | * [Picasso](https://github.com/square/picasso) 26 | * [Schematic](https://github.com/SimonVT/schematic) 27 | * [Volley](http://developer.android.com/training/volley/index.html) 28 | 29 | 30 | ## License 31 | 32 | Copyright 2016 Ronak Manglani 33 | 34 | Licensed under the Apache License, Version 2.0 (the "License"); 35 | you may not use this file except in compliance with the License. 36 | You may obtain a copy of the License at 37 | 38 | http://www.apache.org/licenses/LICENSE-2.0 39 | 40 | Unless required by applicable law or agreed to in writing, software 41 | distributed under the License is distributed on an "AS IS" BASIS, 42 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 43 | See the License for the specific language governing permissions and 44 | limitations under the License. -------------------------------------------------------------------------------- /.idea/inspectionProfiles/Project_Default.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 17 | -------------------------------------------------------------------------------- /app/src/main/res/menu/menu_navigation.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 10 | 11 | 14 | 15 | 18 | 19 | 20 | 21 | 23 | 24 | 27 | 28 | 31 | 32 | 35 | 36 | 37 | 38 | 40 | 41 | 44 | 45 | 48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /app/src/main/java/com/ronakmanglani/bookworm/ui/activity/SearchActivity.java: -------------------------------------------------------------------------------- 1 | package com.ronakmanglani.bookworm.ui.activity; 2 | 3 | import android.content.pm.ActivityInfo; 4 | import android.os.Bundle; 5 | import android.support.v7.app.AppCompatActivity; 6 | 7 | import com.ronakmanglani.bookworm.BookWormApp; 8 | import com.ronakmanglani.bookworm.R; 9 | import com.ronakmanglani.bookworm.model.Book; 10 | import com.ronakmanglani.bookworm.ui.fragment.BookFragment; 11 | import com.ronakmanglani.bookworm.ui.fragment.SearchFragment; 12 | import com.ronakmanglani.bookworm.util.DimenUtil; 13 | 14 | public class SearchActivity extends AppCompatActivity { 15 | 16 | @Override 17 | protected void onCreate(Bundle savedInstanceState) { 18 | super.onCreate(savedInstanceState); 19 | setContentView(R.layout.activity_search); 20 | 21 | // Perform search if query is passed as an argument 22 | String searchQuery = getIntent().getStringExtra(BookWormApp.KEY_QUERY); 23 | if (searchQuery != null) { 24 | SearchFragment searchFragment = (SearchFragment) getSupportFragmentManager().findFragmentById(R.id.search_fragment); 25 | searchFragment.performSearchFor(searchQuery); 26 | } 27 | 28 | // Lock orientation and display detail fragment for tablets 29 | if (DimenUtil.isTablet() && savedInstanceState == null) { 30 | loadDetailFragmentWith(null); 31 | setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 32 | } 33 | } 34 | 35 | public void loadDetailFragmentWith(Book book) { 36 | BookFragment fragment = new BookFragment(); 37 | Bundle args = new Bundle(); 38 | args.putParcelable(BookWormApp.KEY_BOOK, book); 39 | fragment.setArguments(args); 40 | getSupportFragmentManager().beginTransaction().replace(R.id.detail_fragment, fragment).commit(); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /app/src/main/java/com/ronakmanglani/bookworm/ui/activity/MainActivity.java: -------------------------------------------------------------------------------- 1 | package com.ronakmanglani.bookworm.ui.activity; 2 | 3 | import android.content.pm.ActivityInfo; 4 | import android.os.Bundle; 5 | import android.support.v7.app.AppCompatActivity; 6 | 7 | import com.ronakmanglani.bookworm.BookWormApp; 8 | import com.ronakmanglani.bookworm.R; 9 | import com.ronakmanglani.bookworm.model.Book; 10 | import com.ronakmanglani.bookworm.ui.fragment.BestsellerFragment; 11 | import com.ronakmanglani.bookworm.ui.fragment.BookFragment; 12 | import com.ronakmanglani.bookworm.util.DimenUtil; 13 | 14 | public class MainActivity extends AppCompatActivity { 15 | 16 | @Override 17 | protected void onCreate(Bundle savedInstanceState) { 18 | super.onCreate(savedInstanceState); 19 | setContentView(R.layout.activity_main); 20 | if (DimenUtil.isTablet() && savedInstanceState == null) { 21 | setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 22 | } 23 | } 24 | 25 | @Override 26 | public void onBackPressed() { 27 | BestsellerFragment fragment = (BestsellerFragment) getSupportFragmentManager().findFragmentByTag(BookWormApp.TAG_BESTSELLER); 28 | if (fragment != null && fragment.canGoBack()) { 29 | fragment.navigateToCategories(); 30 | if (DimenUtil.isTablet()) { 31 | loadDetailFragmentWith(null, true); 32 | } 33 | } else { 34 | super.onBackPressed(); 35 | } 36 | } 37 | 38 | public void loadDetailFragmentWith(Book book, boolean isMessageVisible) { 39 | BookFragment fragment = new BookFragment(); 40 | Bundle args = new Bundle(); 41 | args.putParcelable(BookWormApp.KEY_BOOK, book); 42 | args.putBoolean(BookWormApp.KEY_VISIBILITY, isMessageVisible); 43 | fragment.setArguments(args); 44 | getSupportFragmentManager().beginTransaction().replace(R.id.detail_fragment, fragment).commit(); 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /app/src/main/res/layout/layout_book_publication.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | 19 | 20 | 23 | 24 | 27 | 28 | 29 | 30 | 31 | 35 | 36 | 37 | 41 | 42 | 43 | 47 | 48 | -------------------------------------------------------------------------------- /app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | apply plugin: 'com.neenbedankt.android-apt' 3 | 4 | // Load keystore.properties 5 | def keystorePropertiesFile = rootProject.file("keystore.properties") 6 | def keystoreProperties = new Properties() 7 | keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) 8 | 9 | android { 10 | compileSdkVersion 24 11 | buildToolsVersion "24.0.1" 12 | 13 | signingConfigs { 14 | release { 15 | storeFile file(keystoreProperties['storeFile']) 16 | keyAlias keystoreProperties['keyAlias'] 17 | storePassword keystoreProperties['storePassword'] 18 | keyPassword keystoreProperties['keyPassword'] 19 | } 20 | } 21 | defaultConfig { 22 | applicationId "com.ronakmanglani.bookworm" 23 | minSdkVersion 15 24 | targetSdkVersion 24 25 | versionCode 4 26 | versionName "1.5" 27 | } 28 | buildTypes { 29 | release { 30 | minifyEnabled true 31 | signingConfig signingConfigs.release 32 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 33 | } 34 | } 35 | } 36 | 37 | dependencies { 38 | compile fileTree(dir: 'libs', include: ['*.jar']) 39 | compile 'com.android.support:appcompat-v7:24.1.1' 40 | compile 'com.android.support:design:24.1.1' 41 | compile 'com.android.support:recyclerview-v7:24.1.1' 42 | compile 'com.android.support:cardview-v7:24.1.1' 43 | compile 'com.android.volley:volley:1.0.0' 44 | compile 'com.github.clans:fab:1.6.4' 45 | compile 'com.jakewharton:butterknife:8.1.0' 46 | compile 'com.lsjwzh:materialloadingprogressbar:0.5.6-RELEASE' 47 | compile 'com.nononsenseapps:filepicker:2.5.3' 48 | compile 'com.squareup.picasso:picasso:2.5.2' 49 | compile 'me.dm7.barcodescanner:zbar:1.8.4' 50 | compile 'net.simonvt.schematic:schematic:0.6.7' 51 | apt 'com.jakewharton:butterknife-compiler:8.1.0' 52 | apt 'net.simonvt.schematic:schematic-compiler:0.6.7' 53 | } -------------------------------------------------------------------------------- /app/src/main/res/layout/layout_book_fab.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 16 | 25 | 26 | 35 | 36 | 45 | 46 | -------------------------------------------------------------------------------- /app/src/main/java/com/ronakmanglani/bookworm/util/FileUtil.java: -------------------------------------------------------------------------------- 1 | package com.ronakmanglani.bookworm.util; 2 | 3 | import android.database.Cursor; 4 | import android.database.sqlite.SQLiteDatabase; 5 | 6 | import com.ronakmanglani.bookworm.data.BookColumns; 7 | import com.ronakmanglani.bookworm.data.BookDatabase; 8 | 9 | import java.io.File; 10 | import java.io.FileInputStream; 11 | import java.io.FileOutputStream; 12 | import java.io.IOException; 13 | import java.nio.channels.FileChannel; 14 | 15 | public class FileUtil { 16 | 17 | private FileUtil() { } 18 | 19 | // File file from source to destination 20 | public static void copyFile(File source, File destination) throws IOException { 21 | FileInputStream fromFile = new FileInputStream(source); 22 | FileOutputStream toFile = new FileOutputStream(destination); 23 | FileChannel fromChannel = null; 24 | FileChannel toChannel = null; 25 | try { 26 | fromChannel = fromFile.getChannel(); 27 | toChannel = toFile.getChannel(); 28 | fromChannel.transferTo(0, fromChannel.size(), toChannel); 29 | } finally { 30 | try { 31 | if (fromChannel != null) { 32 | fromChannel.close(); 33 | } 34 | } finally { 35 | if (toChannel != null) { 36 | toChannel.close(); 37 | } 38 | } 39 | } 40 | } 41 | 42 | // Function to check if file is a valid database 43 | public static boolean isValidDbFile(File db) { 44 | try { 45 | // Open file as a database 46 | SQLiteDatabase sqlDb = SQLiteDatabase.openDatabase(db.getPath(), null, SQLiteDatabase.OPEN_READONLY); 47 | // Get cursors for book table 48 | Cursor cursor = sqlDb.query(true, BookDatabase.BOOKS, null, null, null, null, null, null, null); 49 | // Check if BOOK_ID, ISBN_10, ISBN_13, SHELF columns exist (else throw exception) 50 | cursor.getColumnIndexOrThrow(BookColumns.BOOK_ID); 51 | cursor.getColumnIndexOrThrow(BookColumns.ISBN_10); 52 | cursor.getColumnIndexOrThrow(BookColumns.ISBN_13); 53 | cursor.getColumnIndexOrThrow(BookColumns.SHELF); 54 | // Close database and cursors 55 | sqlDb.close(); 56 | cursor.close(); 57 | // No exceptions = Valid database 58 | return true; 59 | } catch (Exception e) { 60 | // Exception thrown - Invalid database 61 | return false; 62 | } 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /gradlew.bat: -------------------------------------------------------------------------------- 1 | @if "%DEBUG%" == "" @echo off 2 | @rem ########################################################################## 3 | @rem 4 | @rem Gradle startup script for Windows 5 | @rem 6 | @rem ########################################################################## 7 | 8 | @rem Set local scope for the variables with windows NT shell 9 | if "%OS%"=="Windows_NT" setlocal 10 | 11 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 12 | set DEFAULT_JVM_OPTS= 13 | 14 | set DIRNAME=%~dp0 15 | if "%DIRNAME%" == "" set DIRNAME=. 16 | set APP_BASE_NAME=%~n0 17 | set APP_HOME=%DIRNAME% 18 | 19 | @rem Find java.exe 20 | if defined JAVA_HOME goto findJavaFromJavaHome 21 | 22 | set JAVA_EXE=java.exe 23 | %JAVA_EXE% -version >NUL 2>&1 24 | if "%ERRORLEVEL%" == "0" goto init 25 | 26 | echo. 27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 28 | echo. 29 | echo Please set the JAVA_HOME variable in your environment to match the 30 | echo location of your Java installation. 31 | 32 | goto fail 33 | 34 | :findJavaFromJavaHome 35 | set JAVA_HOME=%JAVA_HOME:"=% 36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe 37 | 38 | if exist "%JAVA_EXE%" goto init 39 | 40 | echo. 41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 42 | echo. 43 | echo Please set the JAVA_HOME variable in your environment to match the 44 | echo location of your Java installation. 45 | 46 | goto fail 47 | 48 | :init 49 | @rem Get command-line arguments, handling Windowz variants 50 | 51 | if not "%OS%" == "Windows_NT" goto win9xME_args 52 | if "%@eval[2+2]" == "4" goto 4NT_args 53 | 54 | :win9xME_args 55 | @rem Slurp the command line arguments. 56 | set CMD_LINE_ARGS= 57 | set _SKIP=2 58 | 59 | :win9xME_args_slurp 60 | if "x%~1" == "x" goto execute 61 | 62 | set CMD_LINE_ARGS=%* 63 | goto execute 64 | 65 | :4NT_args 66 | @rem Get arguments from the 4NT Shell from JP Software 67 | set CMD_LINE_ARGS=%$ 68 | 69 | :execute 70 | @rem Setup the command line 71 | 72 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar 73 | 74 | @rem Execute Gradle 75 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% 76 | 77 | :end 78 | @rem End local scope for the variables with windows NT shell 79 | if "%ERRORLEVEL%"=="0" goto mainEnd 80 | 81 | :fail 82 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of 83 | rem the _cmd.exe /c_ return code! 84 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 85 | exit /b 1 86 | 87 | :mainEnd 88 | if "%OS%"=="Windows_NT" endlocal 89 | 90 | :omega 91 | -------------------------------------------------------------------------------- /app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 15 | 16 | 23 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 35 | 37 | 39 | 42 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 56 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /app/src/main/res/layout/dialog_about.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 14 | 15 | 21 | 22 | 27 | 28 | 33 | 34 | 39 | 40 | 46 | 47 | 53 | 54 | 60 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 19 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 46 | 47 | 48 | 49 | 50 | 1.8 51 | 52 | 57 | 58 | 59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | false 5 | 6 | 7 | 64dp 8 | 32dp 9 | 16dp 10 | 8dp 11 | 4dp 12 | 2dp 13 | 1dp 14 | 15 | 16 | 20sp 17 | 18sp 18 | 16sp 19 | 14sp 20 | 12sp 21 | 22 | 23 | 145dp 24 | 40dp 25 | 26 | 27 | 6dp 28 | 2dp 29 | 30 | 31 | 80dp 32 | 80dp 33 | 4dp 34 | 40dp 35 | 40dp 36 | 3dp 37 | 38 | 39 | 120dp 40 | 15dp 41 | 8dp 42 | 43 | 44 | 10dp 45 | 32dp 46 | 47 | 48 | 120dp 49 | 150dp 50 | 50dp 51 | 3dp 52 | 20dp 53 | 5dp 54 | 55 | 56 | 380dp 57 | 55dp 58 | 80dp 59 | 50dp 60 | 20dp 61 | 62 | 63 | 160dp 64 | 100dp 65 | 16dp 66 | 12dp 67 | 68 | 69 | 120dp 70 | 71 | 72 | -------------------------------------------------------------------------------- /app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 15 | 16 | 17 | 28 | 29 | 34 | 35 | 36 | 41 | 42 | 49 | 50 | 57 | 58 | 62 | 63 | 64 | -------------------------------------------------------------------------------- /app/src/main/java/com/ronakmanglani/bookworm/ui/adapter/SearchAdapter.java: -------------------------------------------------------------------------------- 1 | package com.ronakmanglani.bookworm.ui.adapter; 2 | 3 | import android.content.Context; 4 | import android.support.v4.content.ContextCompat; 5 | import android.support.v7.widget.RecyclerView; 6 | import android.view.LayoutInflater; 7 | import android.view.ViewGroup; 8 | 9 | import com.ronakmanglani.bookworm.BookWormApp; 10 | import com.ronakmanglani.bookworm.R; 11 | import com.ronakmanglani.bookworm.model.Book; 12 | import com.ronakmanglani.bookworm.ui.adapter.listener.OnBookClickListener; 13 | import com.ronakmanglani.bookworm.ui.adapter.viewholder.BookViewHolder; 14 | import com.ronakmanglani.bookworm.util.StringUtil; 15 | import com.squareup.picasso.Picasso; 16 | 17 | import java.util.ArrayList; 18 | 19 | public class SearchAdapter extends RecyclerView.Adapter { 20 | 21 | private Context context; 22 | private ArrayList booksList; 23 | private OnBookClickListener onBookClickListener; 24 | 25 | // Constructor 26 | public SearchAdapter(OnBookClickListener onBookClickListener) { 27 | this.context = BookWormApp.getAppContext(); 28 | this.booksList = new ArrayList<>(); 29 | this.onBookClickListener = onBookClickListener; 30 | } 31 | 32 | // Helper methods 33 | public void addToList(Book book) { 34 | booksList.add(book); 35 | } 36 | public ArrayList getList() { 37 | return booksList; 38 | } 39 | public void setList(ArrayList booksList) { 40 | this.booksList = booksList; 41 | } 42 | 43 | // RecyclerView methods 44 | @Override 45 | public int getItemCount() { 46 | return booksList.size(); 47 | } 48 | @Override 49 | public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 50 | ViewGroup v = (ViewGroup) LayoutInflater.from(parent.getContext()).inflate(R.layout.item_book_list, parent, false); 51 | return new BookViewHolder(v, onBookClickListener); 52 | } 53 | @Override 54 | public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, int position) { 55 | Book book = booksList.get(position); 56 | final BookViewHolder holder = (BookViewHolder) viewHolder; 57 | // Cover image 58 | if (!StringUtil.isNullOrEmpty(book.getImageUrl())) { 59 | Picasso.with(context) 60 | .load(book.getImageUrl()) 61 | .fit() 62 | .centerCrop() 63 | .into(holder.coverImage); 64 | } else { 65 | holder.coverImage.setImageDrawable(ContextCompat. 66 | getDrawable(BookWormApp.getAppContext(), R.drawable.default_cover_big)); 67 | } 68 | // TextViews 69 | holder.title.setText(book.getTitle()); 70 | holder.title.post(new Runnable() { 71 | @Override 72 | public void run() { 73 | if (holder.title.getLineCount() == 1) { 74 | holder.author.setMaxLines(2); 75 | } else { 76 | holder.author.setMaxLines(1); 77 | } 78 | } 79 | }); 80 | holder.author.setText(book.getAuthors()); 81 | } 82 | } -------------------------------------------------------------------------------- /app/src/main/java/com/ronakmanglani/bookworm/ui/adapter/BestsellerAdapter.java: -------------------------------------------------------------------------------- 1 | package com.ronakmanglani.bookworm.ui.adapter; 2 | 3 | import android.content.Context; 4 | import android.support.v4.content.ContextCompat; 5 | import android.support.v7.widget.RecyclerView; 6 | import android.view.LayoutInflater; 7 | import android.view.ViewGroup; 8 | 9 | import com.ronakmanglani.bookworm.BookWormApp; 10 | import com.ronakmanglani.bookworm.R; 11 | import com.ronakmanglani.bookworm.model.Bestseller; 12 | import com.ronakmanglani.bookworm.ui.adapter.listener.OnBookClickListener; 13 | import com.ronakmanglani.bookworm.ui.adapter.viewholder.BookViewHolder; 14 | import com.ronakmanglani.bookworm.util.StringUtil; 15 | import com.squareup.picasso.Picasso; 16 | 17 | import java.util.ArrayList; 18 | 19 | public class BestsellerAdapter extends RecyclerView.Adapter { 20 | 21 | private Context context; 22 | private ArrayList bestsellerBooks; 23 | private OnBookClickListener onBookClickListener; 24 | 25 | // Constructor 26 | public BestsellerAdapter(OnBookClickListener onBookClickListener) { 27 | this.context = BookWormApp.getAppContext(); 28 | this.bestsellerBooks = new ArrayList<>(); 29 | this.onBookClickListener = onBookClickListener; 30 | } 31 | public BestsellerAdapter(ArrayList bestsellerBooks, OnBookClickListener onBookClickListener) { 32 | this.bestsellerBooks = bestsellerBooks; 33 | this.onBookClickListener = onBookClickListener; 34 | } 35 | 36 | // Helper methods 37 | public void addToList(Bestseller book) { 38 | bestsellerBooks.add(book); 39 | } 40 | public ArrayList getList() { 41 | return bestsellerBooks; 42 | } 43 | 44 | // RecyclerView methods 45 | @Override 46 | public int getItemCount() { 47 | return bestsellerBooks.size(); 48 | } 49 | @Override 50 | public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 51 | ViewGroup v = (ViewGroup) LayoutInflater.from(parent.getContext()).inflate(R.layout.item_book_grid, parent, false); 52 | return new BookViewHolder(v, onBookClickListener); 53 | } 54 | @Override 55 | public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, int position) { 56 | Bestseller book = bestsellerBooks.get(position); 57 | final BookViewHolder holder = (BookViewHolder) viewHolder; 58 | // Cover image 59 | if (!StringUtil.isNullOrEmpty(book.getImageUrl())) { 60 | Picasso.with(context) 61 | .load(book.getImageUrl()) 62 | .fit() 63 | .centerCrop() 64 | .into(holder.coverImage); 65 | } else { 66 | holder.coverImage.setImageDrawable(ContextCompat. 67 | getDrawable(BookWormApp.getAppContext(), R.drawable.default_cover_big)); 68 | } 69 | // TextViews 70 | holder.title.setText(book.getTitle()); 71 | holder.title.post(new Runnable() { 72 | @Override 73 | public void run() { 74 | if (holder.title.getLineCount() == 1) { 75 | holder.author.setMaxLines(2); 76 | } else { 77 | holder.author.setMaxLines(1); 78 | } 79 | } 80 | }); 81 | holder.author.setText(book.getAuthor()); 82 | } 83 | } -------------------------------------------------------------------------------- /app/src/main/java/com/ronakmanglani/bookworm/model/Category.java: -------------------------------------------------------------------------------- 1 | package com.ronakmanglani.bookworm.model; 2 | 3 | import com.ronakmanglani.bookworm.R; 4 | 5 | import java.util.ArrayList; 6 | 7 | public class Category { 8 | 9 | // Attributes 10 | private int iconId; 11 | private String displayName; 12 | private String listName; 13 | 14 | // Getters 15 | public int getIconId() { 16 | return iconId; 17 | } 18 | public String getDisplayName() { 19 | return displayName; 20 | } 21 | public String getListName() { 22 | return listName; 23 | } 24 | 25 | // Constructor 26 | public Category(int iconId, String displayName, String listName) { 27 | this.iconId = iconId; 28 | this.displayName = displayName; 29 | this.listName = listName; 30 | } 31 | 32 | // Static list of categories 33 | private static ArrayList categoryList; 34 | public static ArrayList getCategoryList() { 35 | if (categoryList == null) { 36 | categoryList = new ArrayList<>(); 37 | categoryList.add(new Category(R.drawable.icon_category_fiction, "Fiction", "combined-print-and-e-book-fiction")); 38 | categoryList.add(new Category(R.drawable.icon_category_nonfiction, "Nonfiction", "combined-print-and-e-book-nonfiction")); 39 | categoryList.add(new Category(R.drawable.icon_category_advice, "Advice and How-To", "advice-how-to-and-miscellaneous")); 40 | categoryList.add(new Category(R.drawable.icon_category_animals, "Animals", "animals")); 41 | categoryList.add(new Category(R.drawable.icon_category_business, "Business", "business-books")); 42 | categoryList.add(new Category(R.drawable.icon_category_celebrities, "Celebrities", "celebrities")); 43 | categoryList.add(new Category(R.drawable.icon_category_crime, "Crime and Punishment", "crime-and-punishment")); 44 | categoryList.add(new Category(R.drawable.icon_category_culture, "Culture", "culture")); 45 | categoryList.add(new Category(R.drawable.icon_category_education, "Education", "education")); 46 | categoryList.add(new Category(R.drawable.icon_category_food, "Food and Diet", "food-and-fitness")); 47 | categoryList.add(new Category(R.drawable.icon_category_games, "Games and Activities", "games-and-activities")); 48 | categoryList.add(new Category(R.drawable.icon_category_graphic, "Graphic Books", "paperback-graphic-books")); 49 | categoryList.add(new Category(R.drawable.icon_category_fitness, "Health and Fitness", "health")); 50 | categoryList.add(new Category(R.drawable.icon_category_humor, "Humor", "humor")); 51 | categoryList.add(new Category(R.drawable.icon_category_love, "Love and Relationships", "relationships")); 52 | categoryList.add(new Category(R.drawable.icon_category_family, "Parenthood and Family", "family")); 53 | categoryList.add(new Category(R.drawable.icon_category_history, "Politics and History", "hardcover-political-books")); 54 | categoryList.add(new Category(R.drawable.icon_category_religion, "Religion and Spirituality", "religion-spirituality-and-faith")); 55 | categoryList.add(new Category(R.drawable.icon_category_science, "Science and Technology", "science")); 56 | categoryList.add(new Category(R.drawable.icon_category_sports, "Sports", "sports")); 57 | categoryList.add(new Category(R.drawable.icon_category_travel, "Travel", "travel")); 58 | categoryList.add(new Category(R.drawable.icon_category_young, "Young Adult", "young-adult")); 59 | } 60 | return categoryList; 61 | } 62 | } -------------------------------------------------------------------------------- /app/src/main/res/layout/item_book_grid.xml: -------------------------------------------------------------------------------- 1 | 2 | 14 | 15 | 18 | 19 | 20 | 26 | 27 | 28 | 41 | 42 | 43 | 55 | 56 | 57 | 65 | 73 | 74 | 75 | 76 | 77 | -------------------------------------------------------------------------------- /app/src/main/java/com/ronakmanglani/bookworm/util/BitmapUtil.java: -------------------------------------------------------------------------------- 1 | package com.ronakmanglani.bookworm.util; 2 | 3 | import android.content.Context; 4 | import android.content.ContextWrapper; 5 | import android.graphics.Bitmap; 6 | import android.graphics.drawable.Drawable; 7 | import android.util.Log; 8 | 9 | import com.ronakmanglani.bookworm.BookWormApp; 10 | import com.squareup.picasso.Picasso; 11 | import com.squareup.picasso.Target; 12 | 13 | import java.io.File; 14 | import java.io.FileOutputStream; 15 | import java.util.Arrays; 16 | 17 | public class BitmapUtil { 18 | 19 | private static final String TAG = "BITMAP_UTIL"; 20 | 21 | private BitmapUtil() { } 22 | 23 | // Save, load and delete image from storage 24 | public static void saveImageToStorage(final String bookId, final String imageUrl){ 25 | // Save image in background thread 26 | Picasso.with(BookWormApp.getAppContext()) 27 | .load(imageUrl) 28 | .into(new Target() { 29 | @Override 30 | public void onBitmapLoaded(final Bitmap bitmap, Picasso.LoadedFrom from) { 31 | new Thread(new Runnable() { 32 | @Override 33 | public void run() { 34 | ContextWrapper cw = new ContextWrapper(BookWormApp.getAppContext()); 35 | // Get path to /data/data/your_app_package/app_data/images 36 | File directory = cw.getDir("images", Context.MODE_PRIVATE); 37 | File myPath = new File(directory, bookId + ".png"); 38 | // Save bitmap to storage 39 | try { 40 | FileOutputStream fos = new FileOutputStream(myPath); 41 | bitmap.compress(Bitmap.CompressFormat.PNG, 100, fos); 42 | fos.close(); 43 | Log.i(TAG, bookId + " : Save Successful"); 44 | } catch (Exception e) { 45 | Log.e(TAG, bookId + " : Save Failed\n" + Arrays.toString(e.getStackTrace())); 46 | } 47 | } 48 | }).start(); 49 | } 50 | @Override 51 | public void onBitmapFailed(Drawable errorDrawable) { } 52 | @Override 53 | public void onPrepareLoad(Drawable placeHolderDrawable) { } 54 | }); 55 | } 56 | public static File loadImageFromStorage(String bookId) { 57 | ContextWrapper cw = new ContextWrapper(BookWormApp.getAppContext()); 58 | File directory = cw.getDir("images", Context.MODE_PRIVATE); 59 | return new File(directory, bookId + ".png"); 60 | } 61 | public static void deleteImageFromStorage(String bookId) { 62 | boolean isDeleted = loadImageFromStorage(bookId).delete(); 63 | if (isDeleted) { 64 | Log.i(TAG, bookId + " - Delete Successful"); 65 | } else { 66 | Log.i(TAG, bookId + " - Delete Failed : File doesn't exist"); 67 | } 68 | } 69 | public static void deleteAllImages() { 70 | ContextWrapper cw = new ContextWrapper(BookWormApp.getAppContext()); 71 | // Get path to /data/data/your_app_package/app_data/images 72 | File directory = cw.getDir("images", Context.MODE_PRIVATE); 73 | File[] images = directory.listFiles(); 74 | for (File image: images) { 75 | image.delete(); 76 | } 77 | Log.i(TAG, "All images deleted"); 78 | } 79 | } 80 | --------------------------------------------------------------------------------