diff --git a/Qfilm/app/src/androidTest/java/com/example/qfilm/ui/fragments/CollectionsFragmentTest.java b/Qfilm/app/src/androidTest/java/com/example/qfilm/ui/fragments/CollectionsFragmentTest.java index a4ebc689713eb0b5468ba0a738d4f6c91939b6a0..f6264658a4bbc646258f5a20066037ad1a7b878f 100644 --- a/Qfilm/app/src/androidTest/java/com/example/qfilm/ui/fragments/CollectionsFragmentTest.java +++ b/Qfilm/app/src/androidTest/java/com/example/qfilm/ui/fragments/CollectionsFragmentTest.java @@ -196,7 +196,7 @@ public class CollectionsFragmentTest { .itemAtPositionHasText(0, R.id.tv_size, moviesAndSeries))); onView(withId(R.id.rv_collections)).check(matches(CustomMatchers.recyclerViewMatcher() - .itemAtPositionHasViews(0, Arrays.asList(R.id.tv_name, R.id.tv_size, R.id.btn_action, R.id.iv_poster_first_item)))); + .itemAtPositionHasViews(0, Arrays.asList(R.id.tv_name, R.id.tv_size, R.id.iv_poster_first_item)))); } @@ -297,7 +297,7 @@ public class CollectionsFragmentTest { .itemAtPositionHasText(0, R.id.tv_size, moviesAndSeries))); onView(withId(R.id.rv_collections)).check(matches(CustomMatchers.recyclerViewMatcher() - .itemAtPositionHasViews(0, Arrays.asList(R.id.tv_name, R.id.tv_size, R.id.btn_action, R.id.iv_poster_first_item)))); + .itemAtPositionHasViews(0, Arrays.asList(R.id.tv_name, R.id.tv_size, R.id.iv_poster_first_item)))); } diff --git a/Qfilm/app/src/androidTest/java/com/example/qfilm/ui/fragments/ListingFragmentTest.java b/Qfilm/app/src/androidTest/java/com/example/qfilm/ui/fragments/ListingFragmentTest.java index 38ba3e0e816563025cba1ab86c4f62bcff9b1c46..c14425fbe2fd13eb6ca93998be82ff7d2ae65d3d 100644 --- a/Qfilm/app/src/androidTest/java/com/example/qfilm/ui/fragments/ListingFragmentTest.java +++ b/Qfilm/app/src/androidTest/java/com/example/qfilm/ui/fragments/ListingFragmentTest.java @@ -367,6 +367,8 @@ public class ListingFragmentTest { onView(withId(R.id.rv_results)).perform(actionOnItemAtPosition(19, scrollTo())); + onView(withId(R.id.rv_results)).perform(actionOnItemAtPosition(19, scrollTo())); + onView(withId(R.id.rv_results)).perform(ViewActions.swipeUp()); // verify more items diff --git a/Qfilm/app/src/androidTest/java/com/example/qfilm/ui/fragments/SearchFragmentTest.java b/Qfilm/app/src/androidTest/java/com/example/qfilm/ui/fragments/SearchFragmentTest.java index 9c5639a62375eecf1b61960c74a635d0e049ebd6..afcdaef16da8868faee20d89a83dd9e43e690cfb 100644 --- a/Qfilm/app/src/androidTest/java/com/example/qfilm/ui/fragments/SearchFragmentTest.java +++ b/Qfilm/app/src/androidTest/java/com/example/qfilm/ui/fragments/SearchFragmentTest.java @@ -54,7 +54,6 @@ public class SearchFragmentTest { private List<Result> searchResults; - @Before public void setup(){ diff --git a/Qfilm/app/src/main/java/com/example/qfilm/repositories/MoviesRepository.java b/Qfilm/app/src/main/java/com/example/qfilm/repositories/MoviesRepository.java index b2422701b84d73bcc0577db5d1fc045ab2ee885e..998e016016eea80b23580fdb5f541c254664c934 100644 --- a/Qfilm/app/src/main/java/com/example/qfilm/repositories/MoviesRepository.java +++ b/Qfilm/app/src/main/java/com/example/qfilm/repositories/MoviesRepository.java @@ -1,6 +1,5 @@ package com.example.qfilm.repositories; -import android.util.Log; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -208,7 +207,6 @@ public class MoviesRepository { if(shouldFetch && results != null && results.size() > 0){ lastPopularity = results.get(0).getPopularity(); // so that fireStore fetch knows where to start in createCall() - Log.d(TAG, "shouldFetch: last pop: " + lastPopularity); } return shouldFetch; @@ -534,18 +532,14 @@ public class MoviesRepository { private Boolean shouldFetchNewResults(List<Result> results, String language){ if(results == null || results.size() < Constants.PAGE_SIZE){ - - return true; - - }else if(!results.get(0).getLanguage().equals(language)){ return true; - }else{ for(Result result : results){ - if(hasTimeStampExpired(result.getTimestamp(), Constants.TIME_LIMIT_RESULT)){ return true; + }else if(!result.getLanguage().equals(language)){ + return true; } } } @@ -558,8 +552,6 @@ public class MoviesRepository { if(genres == null || genres.isEmpty()){ return true; - }else if(!genres.get(0).getLanguage().equals(language)){ - return true; }else{ for(Genre genre : genres){ @@ -567,6 +559,9 @@ public class MoviesRepository { if(hasTimeStampExpired(genre.getTimestamp(), Constants.TIME_LIMIT_GENRE)){ return true; } + else if(!genre.getLanguage().equals(language)){ + return true; + } } } diff --git a/Qfilm/app/src/main/java/com/example/qfilm/ui/adapters/BaseRecyclerViewAdapter.java b/Qfilm/app/src/main/java/com/example/qfilm/ui/adapters/BaseRecyclerViewAdapter.java index 5605d166b295819c41b4177e774e84a7e3f8e0fb..1078f74360a3645dac5de51772a60f28e0a95044 100644 --- a/Qfilm/app/src/main/java/com/example/qfilm/ui/adapters/BaseRecyclerViewAdapter.java +++ b/Qfilm/app/src/main/java/com/example/qfilm/ui/adapters/BaseRecyclerViewAdapter.java @@ -42,10 +42,8 @@ public abstract class BaseRecyclerViewAdapter<T> extends RecyclerView.Adapter<Ba protected List<T> data; - private Boolean hasActionButton; - public BaseRecyclerViewAdapter(@Nullable OnClickListItemListener<T> onClickListItemListener, - OnClickActionButtonListener<T> onClickActionButtonListener, Boolean hasActionButton) { + OnClickActionButtonListener<T> onClickActionButtonListener) { this.onClickListItemListener = onClickListItemListener; @@ -53,8 +51,6 @@ public abstract class BaseRecyclerViewAdapter<T> extends RecyclerView.Adapter<Ba this.data = new ArrayList<>(); - this.hasActionButton = hasActionButton; - } @@ -90,7 +86,7 @@ public abstract class BaseRecyclerViewAdapter<T> extends RecyclerView.Adapter<Ba BaseDataViewHolder baseDataViewHolder = (BaseDataViewHolder) holder; - baseDataViewHolder.bind(item, hasActionButton); + baseDataViewHolder.bind(item); } @@ -160,15 +156,10 @@ public abstract class BaseRecyclerViewAdapter<T> extends RecyclerView.Adapter<Ba } - public void bind(Object obj, Boolean hasActionButton) { + public void bind(Object obj) { binding.setVariable(BR.obj, obj); - if(hasActionButton != null) { - - binding.setVariable(BR.actionButton, hasActionButton); - } - bindAdditionalProperties(binding); binding.executePendingBindings(); diff --git a/Qfilm/app/src/main/java/com/example/qfilm/ui/adapters/CollectionsRecyclerViewAdapter.java b/Qfilm/app/src/main/java/com/example/qfilm/ui/adapters/CollectionsRecyclerViewAdapter.java index 0c6bedad4f3dd9133b15f0db47854ca1b053076f..5d845c5042670affa01ffbf6ff700ccef3478cef 100644 --- a/Qfilm/app/src/main/java/com/example/qfilm/ui/adapters/CollectionsRecyclerViewAdapter.java +++ b/Qfilm/app/src/main/java/com/example/qfilm/ui/adapters/CollectionsRecyclerViewAdapter.java @@ -12,9 +12,9 @@ public class CollectionsRecyclerViewAdapter extends BaseRecyclerViewAdapter<Coll public CollectionsRecyclerViewAdapter(@Nullable OnClickListItemListener<Collection> onClickListItemListener, OnClickActionButtonListener<Collection> onClickActionButtonListener, - int layoutId, Boolean hasActionButton) { + int layoutId) { - super(onClickListItemListener, onClickActionButtonListener, hasActionButton); + super(onClickListItemListener, onClickActionButtonListener); this.layoutId = layoutId; } diff --git a/Qfilm/app/src/main/java/com/example/qfilm/ui/adapters/GenreRecyclerViewAdapter.java b/Qfilm/app/src/main/java/com/example/qfilm/ui/adapters/GenreRecyclerViewAdapter.java index aec739583b43e042a5b3acd56b4d24ea0a2eaf6f..0b56fe8d5c09693dee3618c8064a2a2adae1e417 100644 --- a/Qfilm/app/src/main/java/com/example/qfilm/ui/adapters/GenreRecyclerViewAdapter.java +++ b/Qfilm/app/src/main/java/com/example/qfilm/ui/adapters/GenreRecyclerViewAdapter.java @@ -15,8 +15,8 @@ public class GenreRecyclerViewAdapter extends BaseRecyclerViewAdapter<Genre> { public GenreRecyclerViewAdapter(@Nullable OnClickListItemListener<Genre> onClickListItemListener, OnClickActionButtonListener<Genre> onClickActionButtonListener, - Boolean hasActionButton, int layoutId, Genre selectedGenre) { - super(onClickListItemListener, onClickActionButtonListener, hasActionButton); + int layoutId, Genre selectedGenre) { + super(onClickListItemListener, onClickActionButtonListener); this.layoutId = layoutId; this.selectedGenre = selectedGenre; diff --git a/Qfilm/app/src/main/java/com/example/qfilm/ui/adapters/ImagesRecyclerViewAdapter.java b/Qfilm/app/src/main/java/com/example/qfilm/ui/adapters/ImagesRecyclerViewAdapter.java index 6e10e4d519c5d97d0630fee64a044aa0fea23cb2..ec6632b2dfe63da5cd5c6caa1b89b70519a04526 100644 --- a/Qfilm/app/src/main/java/com/example/qfilm/ui/adapters/ImagesRecyclerViewAdapter.java +++ b/Qfilm/app/src/main/java/com/example/qfilm/ui/adapters/ImagesRecyclerViewAdapter.java @@ -10,7 +10,7 @@ public class ImagesRecyclerViewAdapter extends BaseRecyclerViewAdapter<Image> { public ImagesRecyclerViewAdapter(@Nullable OnClickListItemListener<Image> onClickListItemListener, OnClickActionButtonListener<Image> onClickActionButtonListener, int layoutId) { - super(onClickListItemListener, onClickActionButtonListener, null); + super(onClickListItemListener, onClickActionButtonListener); this.layoutId = layoutId; } diff --git a/Qfilm/app/src/main/java/com/example/qfilm/ui/adapters/ResultRecyclerViewAdapter.java b/Qfilm/app/src/main/java/com/example/qfilm/ui/adapters/ResultRecyclerViewAdapter.java index cce7ba70bde267ea8059e7b886a7c801cff86f9c..4edf1bc4b6321f3dc0cfcad108d018344a7444af 100644 --- a/Qfilm/app/src/main/java/com/example/qfilm/ui/adapters/ResultRecyclerViewAdapter.java +++ b/Qfilm/app/src/main/java/com/example/qfilm/ui/adapters/ResultRecyclerViewAdapter.java @@ -18,8 +18,8 @@ public class ResultRecyclerViewAdapter extends BaseRecyclerViewAdapter<Result> { public ResultRecyclerViewAdapter(@Nullable OnClickListItemListener<Result> onClickListItemListener, @Nullable OnClickActionButtonListener<Result> onClickActionButtonListener, - int layoutId, Boolean showOriginalTitles, Boolean hasActionButton) { - super(onClickListItemListener, onClickActionButtonListener, hasActionButton); + int layoutId, Boolean showOriginalTitles) { + super(onClickListItemListener, onClickActionButtonListener); this.layoutId = layoutId; diff --git a/Qfilm/app/src/main/java/com/example/qfilm/ui/fragments/CollectionFragment.java b/Qfilm/app/src/main/java/com/example/qfilm/ui/fragments/CollectionFragment.java index 9e796450e44a331d57bc212a4708074bfa4615a0..c35b145fac2eb870a4ad24eb447ffda3617b0c92 100644 --- a/Qfilm/app/src/main/java/com/example/qfilm/ui/fragments/CollectionFragment.java +++ b/Qfilm/app/src/main/java/com/example/qfilm/ui/fragments/CollectionFragment.java @@ -197,8 +197,8 @@ public class CollectionFragment extends Fragment implements BaseRecyclerViewAdap showOriginalTitles = sharedPreferences.getBoolean("titles", false); - rvAdapter = new ResultRecyclerViewAdapter(this, this, R.layout.recyclerview_item_result_simple, - showOriginalTitles, true); + rvAdapter = new ResultRecyclerViewAdapter(this, this, R.layout.recyclerview_item_result_action_button, + showOriginalTitles); binding.rvResults.setAdapter(rvAdapter); diff --git a/Qfilm/app/src/main/java/com/example/qfilm/ui/fragments/CollectionsFragment.java b/Qfilm/app/src/main/java/com/example/qfilm/ui/fragments/CollectionsFragment.java index 1735c614609e3b3f9f5809352ba4173e0dc822d2..259407e2013f309afe78000451dc40c32088899b 100644 --- a/Qfilm/app/src/main/java/com/example/qfilm/ui/fragments/CollectionsFragment.java +++ b/Qfilm/app/src/main/java/com/example/qfilm/ui/fragments/CollectionsFragment.java @@ -165,13 +165,15 @@ public class CollectionsFragment extends Fragment { private void setUpRecyclerView() { + // ProfileFragment and DialogFragmentAddToCollection uses this fragment and in ProfileFragment + // there is option to edit collection if(getParentFragment() instanceof ProfileFragment) { rvAdapter = new CollectionsRecyclerViewAdapter((BaseRecyclerViewAdapter.OnClickListItemListener) getParentFragment(), - (BaseRecyclerViewAdapter.OnClickActionButtonListener)getParentFragment(), R.layout.recyclerview_item_collection, true); + (BaseRecyclerViewAdapter.OnClickActionButtonListener)getParentFragment(), R.layout.recyclerview_item_collection_action_button); }else{ rvAdapter = new CollectionsRecyclerViewAdapter((BaseRecyclerViewAdapter.OnClickListItemListener) getParentFragment(), - null, R.layout.recyclerview_item_collection, false); + null, R.layout.recyclerview_item_collection); } diff --git a/Qfilm/app/src/main/java/com/example/qfilm/ui/fragments/ListingFragment.java b/Qfilm/app/src/main/java/com/example/qfilm/ui/fragments/ListingFragment.java index f0b9e55d7f60fe4b698fd12b29ddb4df4a5ef042..a17833029d95c1d677576ca626ec82e29d6794b1 100644 --- a/Qfilm/app/src/main/java/com/example/qfilm/ui/fragments/ListingFragment.java +++ b/Qfilm/app/src/main/java/com/example/qfilm/ui/fragments/ListingFragment.java @@ -3,6 +3,7 @@ package com.example.qfilm.ui.fragments; import android.content.SharedPreferences; import android.os.Bundle; +import android.util.Log; import android.view.LayoutInflater; import android.view.View; @@ -244,7 +245,7 @@ public class ListingFragment extends Fragment implements BaseRecyclerViewAdapter Boolean showOriginalTitles = sharedPreferences.getBoolean("titles", false); rvAdapter = new ResultRecyclerViewAdapter(this, null, - R.layout.recyclerview_item_result_detailed, showOriginalTitles, null); + R.layout.recyclerview_item_result, showOriginalTitles); binding.rvResults.setAdapter(rvAdapter); diff --git a/Qfilm/app/src/main/java/com/example/qfilm/ui/fragments/SearchFragment.java b/Qfilm/app/src/main/java/com/example/qfilm/ui/fragments/SearchFragment.java index a9ca0fc2e5b1da173f65983a8a73694b5b1b64b9..c8491b4b05e3e81f7d9e9fd6b2c621d4b60ed7cd 100644 --- a/Qfilm/app/src/main/java/com/example/qfilm/ui/fragments/SearchFragment.java +++ b/Qfilm/app/src/main/java/com/example/qfilm/ui/fragments/SearchFragment.java @@ -4,7 +4,6 @@ import android.content.SharedPreferences; import android.os.Bundle; import android.text.Editable; import android.text.TextWatcher; -import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -218,7 +217,7 @@ public class SearchFragment extends Fragment implements BaseRecyclerViewAdapter. Boolean showOriginalTitles = sharedPreferences.getBoolean("titles", false); rvAdapter = new ResultRecyclerViewAdapter(this, null, - R.layout.recyclerview_item_result_search, showOriginalTitles, null); + R.layout.recyclerview_item_result_search, showOriginalTitles); rvResults = view.findViewById(R.id.rv_results); diff --git a/Qfilm/app/src/main/java/com/example/qfilm/ui/fragments/dialogFragments/DialogFragmentGenres.java b/Qfilm/app/src/main/java/com/example/qfilm/ui/fragments/dialogFragments/DialogFragmentGenres.java index d5beb5a8b9c0e948e518efbbf32cf42943d106c6..1986a4610129c16a98504a1627dd2837ca320567 100644 --- a/Qfilm/app/src/main/java/com/example/qfilm/ui/fragments/dialogFragments/DialogFragmentGenres.java +++ b/Qfilm/app/src/main/java/com/example/qfilm/ui/fragments/dialogFragments/DialogFragmentGenres.java @@ -141,7 +141,6 @@ public class DialogFragmentGenres extends DialogFragment implements BaseRecycler private void setupRecyclerView() { rvAdapter = new GenreRecyclerViewAdapter(this, null, - null, R.layout.recyclerview_item_genre, currentGenre); rvGenres.setAdapter(rvAdapter); diff --git a/Qfilm/app/src/main/java/com/example/qfilm/ui/utils/ColumnSpacingDecoration.java b/Qfilm/app/src/main/java/com/example/qfilm/ui/utils/ColumnSpacingDecoration.java index caa1bdeb229a12fe4de12413d20d11cbe7fe74c2..03b283c19b094d58418753f834b8da741f2dcc69 100644 --- a/Qfilm/app/src/main/java/com/example/qfilm/ui/utils/ColumnSpacingDecoration.java +++ b/Qfilm/app/src/main/java/com/example/qfilm/ui/utils/ColumnSpacingDecoration.java @@ -1,6 +1,7 @@ package com.example.qfilm.ui.utils; import android.graphics.Rect; +import android.util.Log; import android.view.View; import androidx.annotation.NonNull; @@ -30,7 +31,7 @@ public class ColumnSpacingDecoration extends RecyclerView.ItemDecoration { int itemPosition = parent.getChildAdapterPosition(view); - if(itemPosition % numberOfColumns != 0){ + if((itemPosition + 1) % numberOfColumns != 0) { outRect.right = space; diff --git a/Qfilm/app/src/main/java/com/example/qfilm/viewmodels/FireStoreViewModel.java b/Qfilm/app/src/main/java/com/example/qfilm/viewmodels/FireStoreViewModel.java index c3ac4e4d1a0d9e660e6c15ff2d03c4391364e019..b55a5e96006efe03abb8ba87d495ed55c0780e50 100644 --- a/Qfilm/app/src/main/java/com/example/qfilm/viewmodels/FireStoreViewModel.java +++ b/Qfilm/app/src/main/java/com/example/qfilm/viewmodels/FireStoreViewModel.java @@ -186,7 +186,6 @@ public class FireStoreViewModel extends ViewModel { lastTimeStamp = (Long) res.get(res.size() - 1).get("lastTimeStamp"); } - // convert to Result objects and update ui List<Result> results = toResultsList(res); @@ -227,7 +226,8 @@ public class FireStoreViewModel extends ViewModel { result.setOverview((String) res.get(i).get("overview")); - if(res.get(i).get("mediaType") == "MOVIE"){ + + if(((String)res.get(i).get("mediaType")).equals("MOVIE")){ result.setMediaType(MOVIE); }else{ result.setMediaType(SERIES); diff --git a/Qfilm/app/src/main/res/color/input_layout_selector.xml b/Qfilm/app/src/main/res/color/input_layout_selector.xml index 3bf596c5165e38f50b7a2fa314c8b764d1ae2513..ce174ffc80395439ce1d1c282dfb161c3d139e64 100644 --- a/Qfilm/app/src/main/res/color/input_layout_selector.xml +++ b/Qfilm/app/src/main/res/color/input_layout_selector.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> - <item android:color="@android:color/white" android:state_focused="true"/> - <item android:color="@android:color/white" android:state_hovered="true"/> - <item android:color="@android:color/white" android:state_enabled="false"/> - <item android:color="?attr/colorOnSecondary"/> <!-- unfocused --> + <item android:color="?attr/colorOnSecondary" android:state_focused="true"/> + <item android:color="?attr/colorOnSecondary" android:state_hovered="true"/> + <item android:color="?attr/colorOnSecondary" android:state_enabled="false"/> + <item android:color="?attr/colorOnBackground"/> <!-- unfocused --> </selector> \ No newline at end of file diff --git a/Qfilm/app/src/main/res/layout/dialog_fragment_edit_collection.xml b/Qfilm/app/src/main/res/layout/dialog_fragment_edit_collection.xml index fa227236374ad11600c47aa2eec654c971d846ab..dccb2cb0b043f9c397f091272a5ef78bfc4e470c 100644 --- a/Qfilm/app/src/main/res/layout/dialog_fragment_edit_collection.xml +++ b/Qfilm/app/src/main/res/layout/dialog_fragment_edit_collection.xml @@ -17,7 +17,7 @@ android:layout_marginTop="@dimen/margin_outer_small" android:layout_marginEnd="@dimen/margin_outer_small" android:layout_marginBottom="16dp" - android:textAppearance="@style/TextAppearance.Qfilm.DialogHeading" + android:textAppearance="?attr/textAppearanceHeadline2" /> <com.google.android.material.textfield.TextInputLayout @@ -29,7 +29,7 @@ android:layout_marginEnd="@dimen/margin_outer_small" app:errorEnabled="true" android:layout_gravity="center_horizontal" - style="@style/Widget.Qfilm.TextInputLayout" + style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox" android:hint="@string/hint_collection_name" > diff --git a/Qfilm/app/src/main/res/layout/fragment_sign_in.xml b/Qfilm/app/src/main/res/layout/fragment_sign_in.xml index c554dda4c6cec02a4b0995d223b219773e495e7a..cc2d029bb8c16a963bbd684b00173732c8aba8ef 100644 --- a/Qfilm/app/src/main/res/layout/fragment_sign_in.xml +++ b/Qfilm/app/src/main/res/layout/fragment_sign_in.xml @@ -27,7 +27,7 @@ android:src="@drawable/ic_settings" - /> + android:contentDescription="@string/descr_navigate_settings" /> <TextView android:id="@+id/tv_heading_sign_in" @@ -68,17 +68,15 @@ <Button style="?attr/buttonStyle" app:backgroundTint="?attr/colorSecondary" - android:textColor="?attr/colorOnSecondary" + android:textColor="?attr/colorOnSurface" app:icon="@drawable/icon_google" app:iconTint="@null" app:iconSize="24dp" android:padding="16dp" app:iconGravity="start" - app:iconPadding="-10dp" android:text="@string/btn_sign_in_google" - android:id="@+id/btn_sign_in_google" android:layout_height="wrap_content" android:layout_width="match_parent" @@ -101,7 +99,7 @@ <Button style="?attr/buttonStyle" app:backgroundTint="?attr/colorSecondary" - android:textColor="?attr/colorOnSecondary" + android:textColor="?attr/colorOnSurface" app:icon="@drawable/icon_fb" app:iconTint="@null" app:iconSize="24dp" diff --git a/Qfilm/app/src/main/res/layout/recyclerview_item_collection.xml b/Qfilm/app/src/main/res/layout/recyclerview_item_collection.xml index 37f745360a9f2c23a1118329447100a76a04ff00..3a0dc92805b940d882fcbd1a8c6dbea634d7376e 100644 --- a/Qfilm/app/src/main/res/layout/recyclerview_item_collection.xml +++ b/Qfilm/app/src/main/res/layout/recyclerview_item_collection.xml @@ -48,7 +48,7 @@ <LinearLayout - android:layout_width="wrap_content" + android:layout_width="0dp" android:layout_height="wrap_content" android:orientation="vertical" android:layout_gravity="center" @@ -78,14 +78,6 @@ </LinearLayout> - <ImageButton - android:visibility="@{actionButton ? View.VISIBLE : View.GONE}" - android:id="@+id/btn_action" - android:background="@android:color/transparent" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_marginEnd="@dimen/margin_outer_small" - android:src="@drawable/ic_more_vert"/> </LinearLayout> diff --git a/Qfilm/app/src/main/res/layout/recyclerview_item_collection_action_button.xml b/Qfilm/app/src/main/res/layout/recyclerview_item_collection_action_button.xml new file mode 100644 index 0000000000000000000000000000000000000000..3de54e9b422f7736038dc032cfcbcb8b201e40e1 --- /dev/null +++ b/Qfilm/app/src/main/res/layout/recyclerview_item_collection_action_button.xml @@ -0,0 +1,93 @@ +<?xml version="1.0" encoding="utf-8"?> + +<layout xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:android="http://schemas.android.com/apk/res/android" + > + + <data> + + <import type="com.example.qfilm.ui.adapters.GlideBindingAdapter" /> + <import type="android.view.View"/> + <variable + name="actionButton" + type="java.lang.Boolean" /> + <variable + name="obj" + type="com.example.qfilm.data.models.entities.Collection"/> + + </data> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="horizontal" + android:layout_marginBottom="16dp" + android:gravity="center_vertical" + + > + + <androidx.cardview.widget.CardView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + > + + <ImageView + android:layout_weight="1" + android:id="@+id/iv_poster_first_item" + android:scaleType="fitXY" + android:layout_width="48dp" + android:layout_height="75dp" + android:src="@drawable/ic_sharp_local_movies_24" + android:background="?attr/colorSecondary" + app:imageUrl="@{obj.getOldestItemPosterPath()}" + + /> + + + </androidx.cardview.widget.CardView> + + + <LinearLayout + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:orientation="vertical" + android:layout_gravity="center" + android:layout_marginStart="16dp" + android:layout_weight="1" + > + + <TextView + android:id="@+id/tv_name" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginBottom="4dp" + app:lineHeight="26sp" + android:text="@{obj.getName()}" + android:textAppearance="?attr/textAppearanceHeadline3" /> + + + <TextView + android:id="@+id/tv_size" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@{@string/movies_and_series(obj.getCollectionCount())}" + android:ellipsize="end" + android:maxLines="3" + android:textAppearance="?attr/textAppearanceBody1" + app:lineHeight="24sp"/> + + </LinearLayout> + + <ImageButton + android:id="@+id/btn_action" + android:background="@android:color/transparent" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginEnd="@dimen/margin_outer_small" + android:src="@drawable/ic_more_vert"/> + + + </LinearLayout> + + +</layout> \ No newline at end of file diff --git a/Qfilm/app/src/main/res/layout/recyclerview_item_result_detailed.xml b/Qfilm/app/src/main/res/layout/recyclerview_item_result.xml similarity index 100% rename from Qfilm/app/src/main/res/layout/recyclerview_item_result_detailed.xml rename to Qfilm/app/src/main/res/layout/recyclerview_item_result.xml diff --git a/Qfilm/app/src/main/res/layout/recyclerview_item_result_simple.xml b/Qfilm/app/src/main/res/layout/recyclerview_item_result_action_button.xml similarity index 89% rename from Qfilm/app/src/main/res/layout/recyclerview_item_result_simple.xml rename to Qfilm/app/src/main/res/layout/recyclerview_item_result_action_button.xml index 20cc8c845bc433ff4754af8210318769e09bb4b0..977f02712412d4b4ea743e0cff0ba6845f3a0958 100644 --- a/Qfilm/app/src/main/res/layout/recyclerview_item_result_simple.xml +++ b/Qfilm/app/src/main/res/layout/recyclerview_item_result_action_button.xml @@ -8,10 +8,6 @@ <import type="com.example.qfilm.ui.adapters.GlideBindingAdapter" /> <import type="android.view.View"/> - <variable - name="actionButton" - type="java.lang.Boolean" /> - <variable name="showOriginalTitles" type="Boolean"/> @@ -54,7 +50,7 @@ <LinearLayout android:layout_weight="1" - android:layout_width="wrap_content" + android:layout_width="0dp" android:layout_height="wrap_content" android:orientation="vertical" @@ -85,7 +81,7 @@ </LinearLayout> <ImageButton - android:visibility="@{actionButton ? View.VISIBLE : View.GONE}" + android:id="@+id/btn_action" android:background="@android:color/transparent" android:layout_width="wrap_content" diff --git a/Qfilm/app/src/main/res/values-es/strings.xml b/Qfilm/app/src/main/res/values-es/strings.xml index c8515a2007d029424d3d29b6108398615cfc39c5..2c8eab6a234bba6a3d139d1ced4998ff12fbb58c 100644 --- a/Qfilm/app/src/main/res/values-es/strings.xml +++ b/Qfilm/app/src/main/res/values-es/strings.xml @@ -130,5 +130,6 @@ <item>Español</item> </string-array> <string name="failed_sign_in_google">No se pudo iniciar sesión con Google. Vuelva a intentarlo.</string> + <string name="descr_navigate_settings">navegar a la configuración</string> </resources> \ No newline at end of file diff --git a/Qfilm/app/src/main/res/values/colors.xml b/Qfilm/app/src/main/res/values/colors.xml index 5b31763f35a2f7499f797ee0646711b65906d502..0f043ac9e9943b648a7b2b789d6fc6e0debe4e06 100644 --- a/Qfilm/app/src/main/res/values/colors.xml +++ b/Qfilm/app/src/main/res/values/colors.xml @@ -8,20 +8,9 @@ <color name="colorBackground"> #ffffff</color> <color name="colorOnBackground"> #000000</color> - - <color name="colorSurface">@color/colorBackground</color> <color name="colorOnSurface"> #BB000000</color> - <color name="colorLoadingDotActive">@color/colorPrimary</color> - <color name="colorLoadingDotInActive">@color/colorPrimaryLight</color> - - <color name="colorLoadingDotActiveDarkTheme">#272727</color> - <color name="colorLoadingDotInActiveDarkTheme">@color/colorOnSurfaceDarkTheme</color> - - <color name="backgroundThirdPartySignInButton"> @color/colorBackground</color> - <color name="textThirdPartySignInButton"> @color/colorOnSurface</color> - <color name="colorOnPrimary">#d3d6ed</color> <color name="colorHint"> #70000000</color> @@ -33,8 +22,6 @@ <color name="colorPrimaryLight">#d2cbf7</color> - <color name="colorText100">#ffffff</color> - <color name="colorBottomNavItemActive"> @color/colorPrimary</color> <color name="colorPrimaryDarkTheme">#3d449c</color> diff --git a/Qfilm/app/src/main/res/values/strings.xml b/Qfilm/app/src/main/res/values/strings.xml index 8d50e0639025a3c9fcbe80c5b5da0d94df6e4467..cbab17fdfef08cf078e03c81effe2cd9cf05c41d 100644 --- a/Qfilm/app/src/main/res/values/strings.xml +++ b/Qfilm/app/src/main/res/values/strings.xml @@ -10,6 +10,7 @@ <string name="back_navigation">back navigation</string> <string name="description_button_navigate_back">button navigate back</string> + <string name="descr_navigate_settings">navigate to settings</string> <!-- bottom nav --> @@ -192,6 +193,7 @@ <string name="tv_heading_search">Search</string> <string name="failed_sign_in_google">Failed to sign in via Google</string> + <string-array name="app_languages"> <item>English</item> <item>Español</item> diff --git a/Qfilm/app/src/main/res/values/styles.xml b/Qfilm/app/src/main/res/values/styles.xml index 5216d4de7b2aac232d153d59f5aca53eeb10b19a..74953269158240c133e12bf089c3b699b20c67e9 100644 --- a/Qfilm/app/src/main/res/values/styles.xml +++ b/Qfilm/app/src/main/res/values/styles.xml @@ -57,8 +57,8 @@ <item name="colorSurface">@color/colorSurface</item> <item name="colorOnSurface">@color/colorOnSurface</item> - <item name="colorSecondary">@color/colorPrimary</item> - <item name="colorOnSecondary">#5459a1</item> + <item name="colorSecondary">?attr/colorSurface</item> + <item name="colorOnSecondary">?attr/colorOnSurface</item> <item name="dividerVertical">@color/dividerColor</item> @@ -70,7 +70,6 @@ <item name="colorOnBackground">@color/colorOnBackground</item> - <item name="android:windowBackground">#ffffff</item> <item name="android:statusBarColor">@color/colorStatusBar</item> @@ -184,17 +183,12 @@ </style> - - <style name="TextAppearance.Qfilm.DialogHeading" parent="TextAppearance.Qfilm.Headline2"> - <item name="android:textColor"> #ffffff </item> - </style> - <!-- Buttons --> <style name="Widget.Qfilm.Button.TextButton" parent="Widget.MaterialComponents.Button.TextButton"> <item name="textAllCaps"> false </item> - <item name="android:textColor"> #ffffff </item> + <item name="android:textColor"> ?attr/colorOnBackground</item> <item name="android:textAppearance">@style/TextAppearance.Qfilm.bottomMenu</item> </style> @@ -222,8 +216,8 @@ <style name="Widget.Qfilm.TextInputLayout" parent="Widget.MaterialComponents.TextInputLayout.OutlinedBox"> <item name="boxStrokeColor">@color/input_layout_selector</item> - <item name="android:textColor">#ffffff</item> - <item name="hintTextColor">#ffffff</item> + <item name="android:textColor">?attr/colorOnBackground</item> + <item name="hintTextColor">?attr/colorOnBackground</item> <item name="android:textColorHint">?attr/colorOnSecondary</item> </style> diff --git a/Qfilm/app/src/testCommon/java/utils/MyIdlingResource.java b/Qfilm/app/src/testCommon/java/utils/MyIdlingResource.java index 236dd0af78bcd4cab4e71336b2b1e7f53ea86505..e0e6d40a95e22a9fcaa1ebe80650d0cb2b1072b8 100644 --- a/Qfilm/app/src/testCommon/java/utils/MyIdlingResource.java +++ b/Qfilm/app/src/testCommon/java/utils/MyIdlingResource.java @@ -38,10 +38,7 @@ public class MyIdlingResource { if(countingIdlingResource != null && !countingIdlingResource.isIdleNow()){ - while(!countingIdlingResource.isIdleNow()){ - Log.d(TAG, "decrement: "); - countingIdlingResource.decrement(); - } + countingIdlingResource.decrement(); }