@Override public View onCreateView( LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_main, container, false); setHasOptionsMenu(true); /** ******************** new code***************** */ mGridView = (GridView) rootView.findViewById(R.id.gridView); mProgressBar = (ProgressBar) rootView.findViewById(R.id.progressBar); // Initialize with empty data mGridData = new ArrayList<>(); mGridAdapter = new ImageAdapter(getActivity(), R.layout.grid_item_layout, mGridData); mGridView.setAdapter(mGridAdapter); // Grid view click event mGridView.setOnItemClickListener( new AdapterView.OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View v, int position, long id) { // Get item at position Movie item = (Movie) parent.getItemAtPosition(position); Intent intent = new Intent(getActivity(), detailMovie.class); // Pass the movie details DetailsActivity intent .putExtra("title", item.getTitle()) .putExtra("overview", item.getOverview()) .putExtra("rating", item.getRating()) .putExtra("rDate", item.getReleaseDate()) .putExtra("id", item.getMovieID()) .putExtra("pURL", item.getPosterURL()) .putExtra("pURL", item.getPosterURL()); mPosition = position; mListener.OnItemClicked(item); // Start details activity startActivity(intent); } }); // -------------------- if (savedInstanceState == null || !savedInstanceState.containsKey(SELECTED_KEY)) { mProgressBar.setVisibility(View.VISIBLE); // getting the setting value String Sort_By = getPreferredSort(getActivity()); // favourite String Fav = getString(R.string.pref_sort_favourite); String pop = getString(R.string.pref_sort_popular); String rate = getString(R.string.pref_sort_rate); Toast.makeText(getActivity(), "hey_there " + Sort_By, Toast.LENGTH_SHORT).show(); if (Sort_By.contentEquals(Fav)) { SharedPreferences pref = getActivity() .getSharedPreferences(getString(R.string.pref_movie_name), Context.MODE_PRIVATE); SharedPreferences.Editor editor = pref.edit(); Log.d("Entered", "favourtie"); String fM = pref.getString(getString(R.string.pref_movie_key), ""); // Log.d("Getting Movie ",fM ); String fMovies[]; if (fM != null) { fMovies = fM.split("#"); mGridData.clear(); String rMovies[], vMovies[]; reviews = new ArrayList<>(); videos = new ArrayList<>(); String[] movieDetails; String[] reviewDetail; String[] videoDetail; Movie movieObj; Review review; Video video; for (int i = 0; i < fMovies.length; i++) { movieDetails = fMovies[i].split("|"); movieObj = new Movie(); movieObj.setMovieID(movieDetails[0]); movieObj.setPosterURL(movieDetails[1]); movieObj.setBackgroundUrl(movieDetails[2]); movieObj.setTitle(movieDetails[3]); movieObj.setOverview(movieDetails[4]); movieObj.setReleaseDate(movieDetails[5]); movieObj.setRating(movieDetails[6]); // Log.d("Movie From Prefrence", // " --- "+movieDetails[0] + // " --- "+movieDetails[1] + // " ---"+movieDetails[2] + // " ---- "+movieDetails[3] + // " --- "+movieDetails[4] + // " --- "+movieDetails[5] + // " --- "+movieDetails[6] ); rMovies = pref.getString(getString(R.string.pref_movie_name), null).split("#"); for (int j = 0; j < rMovies.length; j++) { reviewDetail = rMovies[i].split("|"); review = new Review(); // Log.d("Review", "Author "+reviewDetail[0] // + "Content "+reviewDetail[1]); review.setAuthor(reviewDetail[0]); review.setContent(reviewDetail[1]); reviews.add(review); } vMovies = pref.getString(getString(R.string.pref_movie_name), null).split("#"); for (int j = 0; j < vMovies.length; j++) { videoDetail = vMovies[i].split("|"); video = new Video(); // Log.d("Videos", "Title "+videoDetail[0] // + "URL "+videoDetail[1]); video.setName(videoDetail[0]); video.setUrl(videoDetail[1]); videos.add(video); } mGridData.add(movieObj); } // for(int q=0 ; q<mGridData.size() ; q++){ // // Log.d("Favorite "+ q, "Backgorund // "+mGridData.get(q).getBackgroundUrl() // + "Date " +mGridData.get(q).getReleaseDate() // + "Movie ID :" +mGridData.get(q).getMovieID() // + "Rting: "+mGridData.get(q).getRating() // +"Title" + mGridData.get(q).getTitle() // ); // } mGridAdapter.setGridData(mGridData); // Log.d("Favorite", mGridData.toString()); Toast.makeText(getActivity(), "Here are your Movies", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(getActivity(), "You Don't have any Favourite", Toast.LENGTH_SHORT).show(); } } else if (Sort_By.contentEquals(pop) || Sort_By.contentEquals(rate)) { Toast.makeText(getActivity(), "hey_there " + Sort_By, Toast.LENGTH_SHORT).show(); Log.d("Sort BY", Sort_By); mGridData.clear(); new FetchMoviesTask().execute(Sort_By); } else { mGridData.clear(); new FetchMoviesTask().execute(pop); } } else { Toast.makeText(getActivity(), "hey Else ", Toast.LENGTH_SHORT).show(); mGridData = savedInstanceState.getParcelableArrayList(SELECTED_KEY); mGridAdapter = new ImageAdapter(getActivity(), R.layout.grid_item_layout, mGridData); mGridView.setAdapter(mGridAdapter); Log.d("Main Grid", mGridData.toString()); // set } // ---------------- /** ********************************************** */ return rootView; }
/** * Take the String representing the complete forecast in JSON Format and pull out the data we * need to construct the Strings needed for the wireframes. * * <p>Fortunately parsing is easy: constructor takes the JSON string and converts it into an * Object hierarchy for us. */ private String[] getMovieDataFromJson(String MovieJsonStr) throws JSONException { final String Results_ID = "results"; final String Movie_ID = "id"; final String Title_ID = "original_title"; final String Poster_URL_ID = "poster_path"; final String Background_URL_ID = "backdrop_path"; final String OverView_ID = "overview"; final String Rating_ID = "vote_average"; final String release_Date_ID = "release_date"; final String baseImageUrl = "http://image.tmdb.org/t/p/"; final String imageSizeForUrl = "w185/"; JSONObject MovieJson = new JSONObject(MovieJsonStr); JSONArray moviesArray = MovieJson.getJSONArray(Results_ID); String[] resultStrs = new String[moviesArray.length()]; String title, posterURL, overview, rating, releaseDate, backgroundURL, movieID; Movie movieObj; Movie item = new Movie(); for (int i = 0; i < moviesArray.length(); i++) { // Get the JSON object representing the day JSONObject MovieDetails = moviesArray.getJSONObject(i); title = MovieDetails.getString(Title_ID); posterURL = MovieDetails.getString(Poster_URL_ID); overview = MovieDetails.getString(OverView_ID); rating = MovieDetails.getString(Rating_ID); releaseDate = MovieDetails.getString(release_Date_ID); backgroundURL = MovieDetails.getString(Background_URL_ID); movieID = MovieDetails.getString(Movie_ID); posterURL = baseImageUrl + imageSizeForUrl + posterURL; backgroundURL = baseImageUrl + imageSizeForUrl + backgroundURL; String details = posterURL + "|" + backgroundURL + "|" + title + "|" + overview + "|" + rating + "|" + releaseDate + "|" + movieID; movieObj = new Movie(); movieObj.setTitle(title); movieObj.setOverview(overview); movieObj.setRating(rating); movieObj.setReleaseDate(releaseDate); movieObj.setBackgroundUrl(backgroundURL); movieObj.setPosterURL(posterURL); movieObj.setMovieID(movieID); Log.v(LOG_TAG, "Movie string: " + details); resultStrs[i] = details; mGridData.add(movieObj); } return resultStrs; }