Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class MainActivity extends Activity {
- private ListView mList;
- private List<Movie> currentMovieList = new ArrayList<Movie>();
- private List<Movie> originalMovieList = new ArrayList<Movie>();
- EditText inputSearch;
- private CustomListAdapter adapter;
- private ImageView reload_img;
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
- setContentView(R.layout.activity_main);
- mList = (ListView) findViewById(R.id.list);
- inputSearch = (EditText) findViewById(R.id.inputSearch);
- reload_img = (ImageView) findViewById(R.id.reload_list);
- adapter = new CustomListAdapter(this, currentMovieList);
- mList.setAdapter(adapter);
- //FETCH Movie-Data FROM SERVER TO LIST
- fetchMovie();
- //Reload image click
- reload_img.setOnClickListener(new View.OnClickListener() {
- public void onClick(View arg0) {
- reload_list();
- }
- });
- //SEARCH TEXTCHANGE
- inputSearch.addTextChangedListener(new TextWatcher() {
- @Override
- public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) {
- // When user changed the Text
- //MainActivity.this.adapter.getFilter().filter(cs.toString());
- String filterString = cs.toString().toLowerCase();
- currentMovieList.clear();
- if (filterString.length == 0) {
- currentMovieList.addAll(originalMovieList);
- }
- String filterableString;
- for (Movie movie : originalMovieList) {
- if (movie.getTitle().toLowerCase().contains(filterString)) {
- currentMovieList.add(movie);
- }
- }
- adapter.notifyDataSetChanged();
- //FLAGS Cannot resolve method 'getFilter()' here
- }
- @Override
- public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
- int arg3) {
- // TODO Auto-generated method stub
- }
- @Override
- public void afterTextChanged(Editable arg0) {
- // TODO Auto-generated method stub
- }
- });
- }
- //RELOAD LISTVIEW METHOD
- private void reload_list() {
- pDialog = new ProgressDialog(MainActivity.this);
- // Showing progress dialog before making http request
- pDialog.setMessage("Synchronising....");
- pDialog.show();
- pDialog.setCancelable(false);
- pDialog.setCanceledOnTouchOutside(false);
- flag_loading = true;
- offSet = 0;
- inputSearch.setText("");
- movieList.clear();
- fetchMovie();
- //adapter.notifyDataSetChanged();
- }
- //LOAD DATA FROM SERVER TO LISTVIEW USING VOLLEY
- private void fetchMovie() {
- // showing refresh animation before making http call
- //swipeRefreshLayout.setRefreshing(true);
- // appending offset to url
- String url = Config.URL_TOP_250_URL + offSet;
- //String url = Config.MOVIE_JSON_URL;
- //String url = Config.MOVIE_JSON_URL_SHORT;
- // Toast.makeText(MainActivity.this,
- // "::Json loaded:: ", Toast.LENGTH_SHORT).show();
- JsonArrayRequest movieReq = new JsonArrayRequest(url,
- new Response.Listener<JSONArray>() {
- @Override
- public void onResponse(JSONArray response) {
- // Log.d(TAG, response.toString());
- hidePDialog();
- if (response.length() > 0) {
- //Toast.makeText(MainActivity.this,
- // "Json String : \n"+ response.toString(), Toast.LENGTH_LONG).show();
- // Parsing json
- /**/
- for (int i = 0; i < response.length(); i++) {
- try {
- JSONObject obj = response.getJSONObject(i);
- int rank = obj.getInt("rank");
- Movie movie = new Movie();
- // movie.setRank(obj.getInt("rank"));
- movie.setTitle(obj.getString("title"));
- movie.setThumbnailUrl(obj.getString("image"));
- movie.setRating(((Number) obj.get("rating"))
- .doubleValue());
- movie.setYear(obj.getInt("releaseYear"));
- // Genre is json array
- JSONArray genreArry = obj.getJSONArray("genre");
- ArrayList<String> genre = new ArrayList<String>();
- for (int j = 0; j < genreArry.length(); j++) {
- genre.add((String) genreArry.get(j));
- }
- movie.setGenre(genre);
- // adding movie to movies array
- originalMovieList.add(movie);
- // updating offset value to highest value
- if (rank >= offSet)
- offSet = rank;
- flag_loading = false;
- } catch (JSONException e) {
- e.printStackTrace();
- Toast.makeText(MainActivity.this,
- "Network connection error \n " + e.getMessage(), Toast.LENGTH_LONG).show();
- }
- }
- /**/
- // notifying list adapter about data changes
- // so that it renders the list view with updated data
- currentMovieList.clear();
- currentMovieList.addAll(originalMovieList);
- adapter.notifyDataSetChanged();
- } else {
- Toast.makeText(MainActivity.this,
- "End of movie-list", Toast.LENGTH_LONG).show();
- }
- }
- }, new Response.ErrorListener() {
- @Override
- public void onErrorResponse(VolleyError error) {
- VolleyLog.d(TAG, "Error :: " + error.getMessage());
- hidePDialog();
- }
- });
- // Adding request to request queue
- MyApplication.getInstance().addToRequestQueue(movieReq);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment