Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.anta40.reksawatch;
- import java.util.ArrayList;
- import java.util.List;
- import org.json.JSONArray;
- import org.json.JSONException;
- import org.json.JSONObject;
- import com.android.volley.Response;
- import com.android.volley.VolleyError;
- import com.android.volley.toolbox.JsonArrayRequest;
- import com.anta40.reksawatch.adapter.CustomListAdapter;
- import com.anta40.reksawatch.app.AppController;
- import com.anta40.reksawatch.model.Movie;
- import android.app.Activity;
- import android.app.ActionBar;
- import android.app.Fragment;
- import android.app.FragmentManager;
- import android.app.ProgressDialog;
- import android.content.Context;
- import android.graphics.Color;
- import android.graphics.drawable.ColorDrawable;
- import android.os.Build;
- import android.os.Bundle;
- import android.util.Log;
- import android.view.Gravity;
- import android.view.LayoutInflater;
- import android.view.Menu;
- import android.view.MenuItem;
- import android.view.View;
- import android.view.ViewGroup;
- import android.support.v4.widget.DrawerLayout;
- import android.widget.ArrayAdapter;
- import android.widget.ListView;
- import android.widget.TextView;
- public class MainActivity extends Activity implements
- NavigationDrawerFragment.NavigationDrawerCallbacks {
- // Log tag
- private static final String TAG = MainActivity.class.getSimpleName();
- // Movies json url
- private static final String url = "http://api.androidhive.info/json/movies.json";
- private ProgressDialog pDialog;
- private List<Movie> movieList = new ArrayList<Movie>();
- private ListView listView;
- private CustomListAdapter adapter;
- /**
- * Fragment managing the behaviors, interactions and presentation of the
- * navigation drawer.
- */
- private NavigationDrawerFragment mNavigationDrawerFragment;
- /**
- * Used to store the last screen title. For use in
- * {@link #restoreActionBar()}.
- */
- private CharSequence mTitle;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- mNavigationDrawerFragment = (NavigationDrawerFragment) getFragmentManager()
- .findFragmentById(R.id.navigation_drawer);
- mTitle = getTitle();
- // Set up the drawer.
- mNavigationDrawerFragment.setUp(R.id.navigation_drawer,
- (DrawerLayout) findViewById(R.id.drawer_layout));
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- listView = (ListView) findViewById(R.id.list);
- adapter = new CustomListAdapter(this, movieList);
- listView.setAdapter(adapter);
- pDialog = new ProgressDialog(this);
- // Showing progress dialog before making http request
- pDialog.setMessage("Loading...");
- pDialog.show();
- // changing action bar color
- getActionBar().setBackgroundDrawable(new ColorDrawable(Color.parseColor("#1b1b1b")));
- // Creating volley request obj
- JsonArrayRequest movieReq = new JsonArrayRequest(url,
- new Response.Listener<JSONArray>() {
- @Override
- public void onResponse(JSONArray response) {
- Log.d(TAG, response.toString());
- hidePDialog();
- // Parsing json
- for (int i = 0; i < response.length(); i++) {
- try {
- JSONObject obj = response.getJSONObject(i);
- Movie movie = new Movie();
- 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
- movieList.add(movie);
- } catch (JSONException e) {
- e.printStackTrace();
- }
- }
- // notifying list adapter about data changes
- // so that it renders the list view with updated data
- adapter.notifyDataSetChanged();
- }
- }, new Response.ErrorListener() {
- @Override
- public void onErrorResponse(VolleyError error) {
- // VolleyLog.d(TAG, "Error: " + error.getMessage());
- hidePDialog();
- }
- });
- // Adding request to request queue
- AppController.getInstance().addToRequestQueue(movieReq);
- }
- @Override
- public void onDestroy() {
- super.onDestroy();
- hidePDialog();
- }
- private void hidePDialog() {
- if (pDialog != null) {
- pDialog.dismiss();
- pDialog = null;
- }
- }
- @Override
- public void onNavigationDrawerItemSelected(int position) {
- // update the main content by replacing fragments
- FragmentManager fragmentManager = getFragmentManager();
- fragmentManager
- .beginTransaction()
- .replace(R.id.container,
- PlaceholderFragment.newInstance(position + 1)).commit();
- }
- public void onSectionAttached(int number) {
- switch (number) {
- case 1:
- mTitle = getString(R.string.title_section1);
- break;
- case 2:
- mTitle = getString(R.string.title_section2);
- break;
- case 3:
- mTitle = getString(R.string.title_section3);
- break;
- }
- }
- public void restoreActionBar() {
- ActionBar actionBar = getActionBar();
- actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
- actionBar.setDisplayShowTitleEnabled(true);
- actionBar.setTitle(mTitle);
- }
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- if (!mNavigationDrawerFragment.isDrawerOpen()) {
- // Only show items in the action bar relevant to this screen
- // if the drawer is not showing. Otherwise, let the drawer
- // decide what to show in the action bar.
- getMenuInflater().inflate(R.menu.main, menu);
- restoreActionBar();
- return true;
- }
- return super.onCreateOptionsMenu(menu);
- }
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- // Handle action bar item clicks here. The action bar will
- // automatically handle clicks on the Home/Up button, so long
- // as you specify a parent activity in AndroidManifest.xml.
- int id = item.getItemId();
- if (id == R.id.action_settings) {
- return true;
- }
- return super.onOptionsItemSelected(item);
- }
- /**
- * A placeholder fragment containing a simple view.
- */
- public static class PlaceholderFragment extends Fragment {
- /**
- * The fragment argument representing the section number for this
- * fragment.
- */
- private static final String ARG_SECTION_NUMBER = "section_number";
- /**
- * Returns a new instance of this fragment for the given section number.
- */
- public static PlaceholderFragment newInstance(int sectionNumber) {
- PlaceholderFragment fragment = new PlaceholderFragment();
- Bundle args = new Bundle();
- args.putInt(ARG_SECTION_NUMBER, sectionNumber);
- fragment.setArguments(args);
- return fragment;
- }
- public PlaceholderFragment() {
- }
- @Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container,
- Bundle savedInstanceState) {
- View rootView = inflater.inflate(R.layout.fragment_main, container,
- false);
- return rootView;
- }
- @Override
- public void onAttach(Activity activity) {
- super.onAttach(activity);
- ((MainActivity) activity).onSectionAttached(getArguments().getInt(
- ARG_SECTION_NUMBER));
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement