diff --git a/app/build.gradle b/app/build.gradle index adb195a..30f257c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -27,8 +27,8 @@ android { applicationId "org.bookdash.android" minSdkVersion 16 targetSdkVersion 23 - versionCode 18 - versionName "1.1.0" + versionCode 19 + versionName "1.1.1" testInstrumentationRunner "org.bookdash.android.presentation.CustomTestRunner" buildConfigField "String", "PARSE_APPLICATION_ID", "\"${BOOKDASH_PARSE_APP_ID}\"" buildConfigField "String", "PARSE_CLIENT_KEY", "\"${BOOKDASH_PARSE_CLIENT_ID}\"" @@ -102,9 +102,10 @@ android { testCoverageEnabled = true } } + play { jsonFile = rootProject.file('google-play-keys.json') - track = 'alpha' + track = "${track}" } } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 6b00261..7069160 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -32,7 +32,7 @@ + android:theme="@style/AppTheme.NoActionBar"> + android:theme="@style/AppTheme.NoActionBar"> @@ -87,45 +87,11 @@ + android:theme="@style/AppTheme.NoActionBar"> - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/java/org/bookdash/android/data/books/BookDetailApiImpl.java b/app/src/main/java/org/bookdash/android/data/books/BookDetailApiImpl.java index 1d13b57..3e32e6b 100644 --- a/app/src/main/java/org/bookdash/android/data/books/BookDetailApiImpl.java +++ b/app/src/main/java/org/bookdash/android/data/books/BookDetailApiImpl.java @@ -145,7 +145,7 @@ public void done(List list, ParseException e) { public void getLanguages(final BookServiceCallback> languagesCallback) { ParseQuery queryLanguages = ParseQuery.getQuery(Language.class); queryLanguages.setCachePolicy(ParseQuery.CachePolicy.NETWORK_ELSE_CACHE); - queryLanguages.orderByAscending(Language.LANGUAGE_ID); + queryLanguages.orderByAscending(Language.LANGUAGE_ORDER); queryLanguages.findInBackground(new FindCallback() { @Override public void done(List list, ParseException e) { @@ -215,7 +215,7 @@ public Void call() throws Exception { @WorkerThread private void deleteLocalBook(BookDetail bookDetail) { FileManager.deleteFolder(bookDetail.getFolderLocation()); - FileManager.deleteFolder(BookDashApplication.FILES_DIR + "/" + bookDetail.getObjectId()); + FileManager.deleteFolder(BookDashApplication.FILES_DIR + "/" + bookDetail.getObjectId()); } private void getBookPages(final BookDetail bookInfo, final byte[] bytes, final BookServiceCallback bookServiceCallback) { diff --git a/app/src/main/java/org/bookdash/android/domain/pojo/Language.java b/app/src/main/java/org/bookdash/android/domain/pojo/Language.java index 869b450..3b12bf8 100644 --- a/app/src/main/java/org/bookdash/android/domain/pojo/Language.java +++ b/app/src/main/java/org/bookdash/android/domain/pojo/Language.java @@ -14,6 +14,7 @@ public class Language extends ParseObject { public static final String LANG_CODE_COL = "language_abbreviation"; public static final String LANG_NAME_COL = "language_name"; public static final String LANGUAGE_ID = "language_id"; + public static final String LANGUAGE_ORDER = "language_order"; public Language() { } diff --git a/app/src/main/java/org/bookdash/android/presentation/bookinfo/BookInfoActivity.java b/app/src/main/java/org/bookdash/android/presentation/bookinfo/BookInfoActivity.java index b3f4e32..8d5c6c0 100644 --- a/app/src/main/java/org/bookdash/android/presentation/bookinfo/BookInfoActivity.java +++ b/app/src/main/java/org/bookdash/android/presentation/bookinfo/BookInfoActivity.java @@ -28,7 +28,6 @@ import android.view.View; import android.view.ViewTreeObserver; import android.view.Window; -import android.view.WindowManager; import android.view.animation.AccelerateInterpolator; import android.view.animation.OvershootInterpolator; import android.widget.Button; @@ -163,7 +162,7 @@ public void onClick(View v) { if (!bookInfo.isDownloadedAlready()) { floatingActionButton.resetIcon(); floatingActionButton.showProgress(true); - floatingActionButton.setProgress(0, true); + floatingActionButton.setProgress(0, false); } actionsListener.downloadBook(bookInfo); } @@ -247,8 +246,6 @@ private void enterAnimation() { floatingActionButton.setScaleX(0); floatingActionButton.setScaleY(0); floatingActionButton.animate().setStartDelay(500).scaleY(1).scaleX(1).setInterpolator(new OvershootInterpolator()).setDuration(getResources().getInteger(android.R.integer.config_mediumAnimTime)).start(); - - } @@ -317,7 +314,7 @@ public void showDownloadProgress(final int downloadProgress) { runOnUiThread(new Runnable() { @Override public void run() { - floatingActionButton.setProgress(downloadProgress, true); + floatingActionButton.setProgress(downloadProgress, false); } }); @@ -405,8 +402,6 @@ public void setStatusBarColor(int color) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { Window window = getWindow(); - window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); - // window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); window.setStatusBarColor(color); } } diff --git a/app/src/main/java/org/bookdash/android/presentation/bookinfo/BookInfoPresenter.java b/app/src/main/java/org/bookdash/android/presentation/bookinfo/BookInfoPresenter.java index 83edd79..ba94085 100644 --- a/app/src/main/java/org/bookdash/android/presentation/bookinfo/BookInfoPresenter.java +++ b/app/src/main/java/org/bookdash/android/presentation/bookinfo/BookInfoPresenter.java @@ -12,7 +12,6 @@ import com.bumptech.glide.request.animation.GlideAnimation; import com.bumptech.glide.request.target.SimpleTarget; -import org.bookdash.android.BookDashApplication; import org.bookdash.android.R; import org.bookdash.android.data.books.BookDetailRepository; import org.bookdash.android.domain.pojo.BookContributor; @@ -93,7 +92,6 @@ public void downloadBook(final BookDetail bookInfo) { bookInfo.setIsDownloading(true); - bookDetailRepository.downloadBook(bookInfo, new BookDetailRepository.GetBookPagesCallback() { @Override public void onBookPagesLoaded(BookPages bookPages) { @@ -162,6 +160,10 @@ public void onGenerated(Palette palette) { darkerShade[2] = darkerShade[2] * 0.8f; //Make it a darker shade for the status bar booksView.setStatusBarColor(ColorUtils.HSLToColor(darkerShade)); + } else { + + booksView.setStatusBarColor(ContextCompat.getColor(context.getApplicationContext(), R.color.colorPrimaryDark)); + } } }); diff --git a/app/src/main/java/org/bookdash/android/presentation/listbooks/ListBooksFragment.java b/app/src/main/java/org/bookdash/android/presentation/listbooks/ListBooksFragment.java index f6cca56..5451b8e 100644 --- a/app/src/main/java/org/bookdash/android/presentation/listbooks/ListBooksFragment.java +++ b/app/src/main/java/org/bookdash/android/presentation/listbooks/ListBooksFragment.java @@ -29,7 +29,6 @@ import org.bookdash.android.domain.pojo.BookDetail; import org.bookdash.android.presentation.bookinfo.BookInfoActivity; import org.bookdash.android.presentation.main.NavDrawerInterface; -import org.bookdash.android.presentation.widget.SpacesItemDecoration; import java.util.List; @@ -42,11 +41,10 @@ public class ListBooksFragment extends Fragment implements ListBooksContract.Vie private static final int BOOK_DETAIL_REQUEST_CODE = 43; private ListBooksContract.UserActionsListener actionsListener; private Button buttonRetry; - private RecyclerView mRecyclerView; + private RecyclerView recyclerViewBooks; private CircularProgressBar circularProgressBar; private LinearLayout linearLayoutErrorScreen; private TextView textViewErrorMessage; - private Toolbar toolbar; private NavDrawerInterface navDrawerInterface; private BookAdapter bookAdapter; @@ -69,10 +67,8 @@ public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { linearLayoutErrorScreen = (LinearLayout) view.findViewById(R.id.linear_layout_error); buttonRetry = (Button) view.findViewById(R.id.button_retry); textViewErrorMessage = (TextView) view.findViewById(R.id.text_view_error_screen); - mRecyclerView = (RecyclerView) view.findViewById(R.id.recycler_view_books); - mRecyclerView.setLayoutManager(new GridLayoutManager(getActivity(), getContext().getResources().getInteger(R.integer.book_span))); - mRecyclerView.setHasFixedSize(true); - mRecyclerView.addItemDecoration(new SpacesItemDecoration(getResources().getInteger(R.integer.list_books_space))); + recyclerViewBooks = (RecyclerView) view.findViewById(R.id.recycler_view_books); + recyclerViewBooks.setLayoutManager(new GridLayoutManager(getActivity(), getContext().getResources().getInteger(R.integer.book_span))); buttonRetry.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -80,7 +76,7 @@ public void onClick(View v) { actionsListener.loadBooksForLanguagePreference(); } }); - toolbar = (Toolbar) view.findViewById(R.id.toolbar); + Toolbar toolbar = (Toolbar) view.findViewById(R.id.toolbar); if (navDrawerInterface != null) { navDrawerInterface.setToolbar(toolbar); } @@ -132,8 +128,10 @@ public void onActivityResult(int requestCode, int resultCode, Intent data) { public void showErrorScreen(boolean show, String errorMessage, boolean showRetryButton) { if (show) { linearLayoutErrorScreen.setVisibility(View.VISIBLE); + recyclerViewBooks.setVisibility(View.GONE); } else { linearLayoutErrorScreen.setVisibility(View.GONE); + recyclerViewBooks.setVisibility(View.VISIBLE); } buttonRetry.setVisibility(showRetryButton ? View.VISIBLE : View.GONE); textViewErrorMessage.setText(errorMessage); @@ -143,7 +141,7 @@ public void showErrorScreen(boolean show, String errorMessage, boolean showRetry @Override public void showLoading(boolean visible) { circularProgressBar.setVisibility(visible ? View.VISIBLE : View.GONE); - mRecyclerView.setVisibility(visible ? View.GONE : View.VISIBLE); + recyclerViewBooks.setVisibility(visible ? View.GONE : View.VISIBLE); } @@ -153,13 +151,13 @@ public void showBooks(List bookDetailList) { showErrorScreen(true, getString(R.string.no_books_available), true); } bookAdapter = new BookAdapter(bookDetailList, ListBooksFragment.this.getActivity(), bookClickListener); - mRecyclerView.setAdapter(bookAdapter); + recyclerViewBooks.setAdapter(bookAdapter); } @Override public void showSnackBarError(int message) { - Snackbar.make(mRecyclerView, message, Snackbar.LENGTH_LONG).show(); + Snackbar.make(recyclerViewBooks, message, Snackbar.LENGTH_LONG).show(); } private DialogInterface.OnClickListener languageClickListener = new DialogInterface.OnClickListener() { diff --git a/app/src/main/java/org/bookdash/android/presentation/listbooks/SquareImageView.java b/app/src/main/java/org/bookdash/android/presentation/view/SquareImageView.java similarity index 89% rename from app/src/main/java/org/bookdash/android/presentation/listbooks/SquareImageView.java rename to app/src/main/java/org/bookdash/android/presentation/view/SquareImageView.java index 86eb30f..2e4db0b 100644 --- a/app/src/main/java/org/bookdash/android/presentation/listbooks/SquareImageView.java +++ b/app/src/main/java/org/bookdash/android/presentation/view/SquareImageView.java @@ -1,4 +1,4 @@ -package org.bookdash.android.presentation.listbooks; +package org.bookdash.android.presentation.view; import android.content.Context; import android.util.AttributeSet; diff --git a/app/src/main/java/org/bookdash/android/presentation/widget/SpacesItemDecoration.java b/app/src/main/java/org/bookdash/android/presentation/widget/SpacesItemDecoration.java deleted file mode 100644 index a980444..0000000 --- a/app/src/main/java/org/bookdash/android/presentation/widget/SpacesItemDecoration.java +++ /dev/null @@ -1,21 +0,0 @@ -package org.bookdash.android.presentation.widget; - -import android.graphics.Rect; -import android.support.v7.widget.RecyclerView; -import android.view.View; - -public class SpacesItemDecoration extends RecyclerView.ItemDecoration { - private int space; - - public SpacesItemDecoration(int space) { - this.space = space; - } - - @Override - public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) { - outRect.left = space; - outRect.right = space; - outRect.bottom = space; - outRect.top = space; - } -} diff --git a/app/src/main/res/drawable-hdpi/bookdashlogo.png b/app/src/main/res/drawable-hdpi/bookdashlogo.png deleted file mode 100644 index e01d996..0000000 Binary files a/app/src/main/res/drawable-hdpi/bookdashlogo.png and /dev/null differ diff --git a/app/src/main/res/drawable/bookdash_logo.xml b/app/src/main/res/drawable/bookdash_logo.xml new file mode 100644 index 0000000..200df95 --- /dev/null +++ b/app/src/main/res/drawable/bookdash_logo.xml @@ -0,0 +1,197 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_about.xml b/app/src/main/res/layout/activity_about.xml index a470906..4b857fe 100644 --- a/app/src/main/res/layout/activity_about.xml +++ b/app/src/main/res/layout/activity_about.xml @@ -98,7 +98,7 @@ android:layout_height="200dp" android:layout_gravity="center" android:layout_marginBottom="8dp" - android:src="@drawable/bookdashlogo" + app:srcCompat="@drawable/bookdash_logo" android:layout_marginTop="8dp" android:layout_marginLeft="8dp" android:layout_marginRight="8dp" /> diff --git a/app/src/main/res/layout/activity_book_information.xml b/app/src/main/res/layout/activity_book_information.xml index b05e5b6..8e95ddc 100644 --- a/app/src/main/res/layout/activity_book_information.xml +++ b/app/src/main/res/layout/activity_book_information.xml @@ -105,7 +105,6 @@ android:scaleType="centerCrop" android:transitionName="@string/transition_book" - android:fitsSystemWindows="true" app:layout_collapseMode="parallax" app:layout_collapseParallaxMultiplier="0.7"/> diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index c35e91b..a03669e 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -4,7 +4,9 @@ android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent" - android:fitsSystemWindows="true"> + android:fitsSystemWindows="true" + tools:openDrawer="start" + > diff --git a/app/src/main/res/layout/drawer_header.xml b/app/src/main/res/layout/drawer_header.xml index d38fa24..a01bc32 100644 --- a/app/src/main/res/layout/drawer_header.xml +++ b/app/src/main/res/layout/drawer_header.xml @@ -1,16 +1,19 @@ + android:layout_width="match_parent" + android:layout_height="150dp" + xmlns:app="http://schemas.android.com/apk/res-auto" + android:orientation="vertical" + android:paddingTop="24dp"> + + android:scaleType="centerInside" + app:srcCompat="@drawable/bookdash_logo"/> + - android:layout_width="match_parent" - android:layout_height="match_parent" - android:fitsSystemWindows="true" - tools:context=".presentation.main.MainActivity"> - - android:layout_height="match_parent" - android:fitsSystemWindows="true"> - - + android:layout_height="?attr/actionBarSize" + android:background="?attr/colorPrimary" + android:title="@string/book_dash" + app:layout_scrollFlags="scroll|enterAlways" + app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/> - - - + + + + - - - - - + + + + + diff --git a/app/src/main/res/layout/list_item_book.xml b/app/src/main/res/layout/list_item_book.xml index 8b79cb5..c95e868 100644 --- a/app/src/main/res/layout/list_item_book.xml +++ b/app/src/main/res/layout/list_item_book.xml @@ -3,7 +3,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_margin="4dp" + > @@ -19,7 +19,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content"> - - + \ No newline at end of file diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 1b20a10..87c09a8 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -5,7 +5,7 @@ 16dp 144dp 160dp - 8dp + 4dp 14sp 24sp 16dp @@ -20,6 +20,7 @@ 4dp 8dp 16dp + 16dp diff --git a/app/src/main/res/values/integers.xml b/app/src/main/res/values/integers.xml index 8effea6..d5ddf60 100644 --- a/app/src/main/res/values/integers.xml +++ b/app/src/main/res/values/integers.xml @@ -2,5 +2,5 @@ 2 - 8 + 1 \ No newline at end of file diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index d0670ef..d4f2560 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -1,22 +1,19 @@ - - + + + +