package what.whatandroid.top10; import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ListView; import android.widget.ProgressBar; import java.util.List; import api.top.Response; import api.top.Torrent; import what.whatandroid.R; import what.whatandroid.callbacks.LoadingListener; /** * Displays a list of the top 10 torrents for some category */ public class Top10ListFragment extends Fragment implements LoadingListener<Response<Torrent>> { /** * The adapter displaying the list of top torrents */ private Top10Adapter adapter; private ProgressBar loadingIndicator; /** * The list of torrents being shown */ private List<Torrent> torrents; public Top10ListFragment(){ //Required empty ctor } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){ View view = inflater.inflate(R.layout.fragment_list_view, container, false); ListView list = (ListView)view.findViewById(R.id.list); loadingIndicator = (ProgressBar)view.findViewById(R.id.loading_indicator); adapter = new Top10Adapter(getActivity()); list.setAdapter(adapter); list.setOnItemClickListener(adapter); if (torrents != null){ adapter.addAll(torrents); adapter.notifyDataSetChanged(); } else { loadingIndicator.setVisibility(View.VISIBLE); } return view; } @Override public void onLoadingComplete(Response<Torrent> data){ torrents = data.getResults(); if (adapter != null){ loadingIndicator.setVisibility(View.GONE); if (adapter.isEmpty()){ adapter.addAll(torrents); adapter.notifyDataSetChanged(); } } } }