From b29fb68caa29f2fe58d562b68c0f8fc9b0cb2967 Mon Sep 17 00:00:00 2001 From: danijoo Date: Sun, 1 Nov 2015 16:20:58 +0100 Subject: [PATCH] reviews implemented --- .../udacityproject1/MainActivity.java | 1 + .../udacityproject1/ReviewDialogFragment.java | 54 -------- .../MovieDetailsFragment.java | 27 ++-- .../moviedetails/ReviewDialogFragment.java | 126 ++++++++++++++++++ .../layout/movie_details_review_dialog.xml | 68 +++++++--- app/src/main/res/values/strings.xml | 6 + 6 files changed, 199 insertions(+), 83 deletions(-) delete mode 100644 app/src/main/java/net/headlezz/udacityproject1/ReviewDialogFragment.java rename app/src/main/java/net/headlezz/udacityproject1/{ => moviedetails}/MovieDetailsFragment.java (90%) create mode 100644 app/src/main/java/net/headlezz/udacityproject1/moviedetails/ReviewDialogFragment.java diff --git a/app/src/main/java/net/headlezz/udacityproject1/MainActivity.java b/app/src/main/java/net/headlezz/udacityproject1/MainActivity.java index 7616410..750677a 100644 --- a/app/src/main/java/net/headlezz/udacityproject1/MainActivity.java +++ b/app/src/main/java/net/headlezz/udacityproject1/MainActivity.java @@ -6,6 +6,7 @@ import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.view.View; +import net.headlezz.udacityproject1.moviedetails.MovieDetailsFragment; import net.headlezz.udacityproject1.movielist.MovieListFragment; import net.headlezz.udacityproject1.tmdbapi.Movie; diff --git a/app/src/main/java/net/headlezz/udacityproject1/ReviewDialogFragment.java b/app/src/main/java/net/headlezz/udacityproject1/ReviewDialogFragment.java deleted file mode 100644 index 7574812..0000000 --- a/app/src/main/java/net/headlezz/udacityproject1/ReviewDialogFragment.java +++ /dev/null @@ -1,54 +0,0 @@ -package net.headlezz.udacityproject1; - -import android.os.Bundle; -import android.support.annotation.Nullable; -import android.support.v4.app.DialogFragment; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; - -import net.headlezz.udacityproject1.tmdbapi.ReviewList; - -import butterknife.Bind; -import butterknife.ButterKnife; - -public class ReviewDialogFragment extends DialogFragment { - - public static final String TAG = ReviewDialogFragment.class.getSimpleName(); - public static final String BUNDLE_ARG_REVIEWLIST = "reviewlist"; - - ReviewList mReviewList; - - @Bind(R.id.review_tvReview) - TextView tvReview; - - public static ReviewDialogFragment newInstance(ReviewList reviews) { - ReviewDialogFragment frag = new ReviewDialogFragment(); - Bundle args = new Bundle(); - args.putParcelable(BUNDLE_ARG_REVIEWLIST, reviews); - frag.setArguments(args); - return frag; - } - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - if(getArguments() != null && getArguments().containsKey(BUNDLE_ARG_REVIEWLIST)) - mReviewList = getArguments().getParcelable(BUNDLE_ARG_REVIEWLIST); - else - throw new RuntimeException("No arguments found"); - - } - - - @Nullable - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - View dialogView = inflater.inflate(R.layout.movie_details_review_dialog, container, false); - ButterKnife.bind(this, dialogView); - tvReview.setText(mReviewList.getReviews().get(0).getContent()); - return dialogView; - } - -} diff --git a/app/src/main/java/net/headlezz/udacityproject1/MovieDetailsFragment.java b/app/src/main/java/net/headlezz/udacityproject1/moviedetails/MovieDetailsFragment.java similarity index 90% rename from app/src/main/java/net/headlezz/udacityproject1/MovieDetailsFragment.java rename to app/src/main/java/net/headlezz/udacityproject1/moviedetails/MovieDetailsFragment.java index f7d9904..0633fdd 100644 --- a/app/src/main/java/net/headlezz/udacityproject1/MovieDetailsFragment.java +++ b/app/src/main/java/net/headlezz/udacityproject1/moviedetails/MovieDetailsFragment.java @@ -1,4 +1,4 @@ -package net.headlezz.udacityproject1; +package net.headlezz.udacityproject1.moviedetails; import android.app.ProgressDialog; import android.content.ActivityNotFoundException; @@ -20,6 +20,7 @@ import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; +import net.headlezz.udacityproject1.R; import net.headlezz.udacityproject1.favorites.FavoriteProviderHelper; import net.headlezz.udacityproject1.tmdbapi.Movie; import net.headlezz.udacityproject1.tmdbapi.ReviewList; @@ -138,28 +139,32 @@ public class MovieDetailsFragment extends Fragment implements Callback() { @Override public void onResponse(Response response, Retrofit retrofit) { - dialog.dismiss(); - if(response.isSuccess()) { + if(response.body().getReviews().size() == 0) + Toast.makeText(getContext(), R.string.movie_download_review_not_found, Toast.LENGTH_SHORT).show(); + else { ReviewDialogFragment frag = ReviewDialogFragment.newInstance(response.body()); frag.show(getChildFragmentManager(), ReviewDialogFragment.TAG); - } else { - Log.e(TAG, "Query not successful."); } + if(dialog.isShowing()) + dialog.dismiss(); } @Override public void onFailure(Throwable t) { - dialog.dismiss(); - Log.e(TAG, "something went wrong: " + t.getMessage()); + if(dialog.isShowing()) + dialog.dismiss(); + Toast.makeText(getContext(), R.string.movie_download_review_fail, Toast.LENGTH_SHORT).show(); } }); + + } /** @@ -184,7 +189,7 @@ public class MovieDetailsFragment extends Fragment implements Callback= mReviews.getReviews().size() - 1) + btNext.setVisibility(View.GONE); + else + btNext.setVisibility(View.VISIBLE); + } + + @Override + public void onSaveInstanceState(Bundle outState) { + outState.putInt("position", mCurrentPosition); + super.onSaveInstanceState(outState); + } +} diff --git a/app/src/main/res/layout/movie_details_review_dialog.xml b/app/src/main/res/layout/movie_details_review_dialog.xml index e9a4180..0eb355e 100644 --- a/app/src/main/res/layout/movie_details_review_dialog.xml +++ b/app/src/main/res/layout/movie_details_review_dialog.xml @@ -1,42 +1,74 @@ + + + android:layout_height="match_parent" + android:orientation="vertical"> + + + + android:layout_height="200dp" + android:clipToPadding="false" + android:paddingLeft="16dp" + android:paddingRight="16dp"> - + + + android:layout_height="wrap_content" + android:padding="8dp"> + + + android:layout_height="wrap_content" + android:layout_gravity="center" + android:textAppearance="?android:attr/textAppearanceLarge" + tools:text="5/10" /> + android:tint="@color/colorAccent" /> - \ No newline at end of file + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index a16f658..e599699 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -10,4 +10,10 @@ Favorites No videos found. Please select a movie + Downloading... + No reviews found + Review download failed. + Youtube app not found. + Nothing to share. :( + Check out this movie!