package de.saxsys.android.projectiler.app.ui.fragment; import android.app.Activity; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ListView; import android.widget.TextView; import com.todddavies.components.progressbar.ProgressWheel; import org.droidparts.annotation.inject.InjectView; import org.droidparts.concurrent.task.AsyncTaskResultListener; import java.util.List; import de.saxsys.android.projectiler.app.MainActivity; import de.saxsys.android.projectiler.app.R; import de.saxsys.android.projectiler.app.asynctasks.GetDailyTrackAsyncTask; import de.saxsys.android.projectiler.app.ui.adapter.CurrentTrackAdapter; import de.saxsys.projectiler.crawler.Booking; /** * A simple {@link android.support.v4.app.Fragment} subclass. * Use the {@link CurrentTracksFragment#newInstance} factory method to * create an instance of this fragment. * */ public class CurrentTracksFragment extends org.droidparts.fragment.support.v4.Fragment { @InjectView(id = R.id.lvCurrentTracks) private ListView lvBooking; @InjectView(id = R.id.pw_spinner) private ProgressWheel progress; @InjectView(id = R.id.tv_no_tracks) private TextView tvNoTracks; public static CurrentTracksFragment newInstance() { CurrentTracksFragment fragment = new CurrentTracksFragment(); Bundle args = new Bundle(); fragment.setArguments(args); return fragment; } public CurrentTracksFragment() { // Required empty public constructor } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (getArguments() != null) { } } @Override public View onCreateView(Bundle savedInstanceState, LayoutInflater inflater, ViewGroup container) { return inflater.inflate(R.layout.fragment_current_tracks, container, false); } @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); progress.spin(); new GetDailyTrackAsyncTask(getActivity().getApplicationContext(), getDailyTracksListener).execute(); } private AsyncTaskResultListener<List<Booking>> getDailyTracksListener = new AsyncTaskResultListener<List<Booking>>() { @Override public void onAsyncTaskSuccess(List<Booking> bookings) { getActivity().setProgressBarIndeterminateVisibility(false); if(bookings.size() == 0){ tvNoTracks.setVisibility(View.VISIBLE); lvBooking.setVisibility(View.GONE); progress.setVisibility(View.GONE); }else{ tvNoTracks.setVisibility(View.GONE); lvBooking.setAdapter(new CurrentTrackAdapter(getActivity().getApplicationContext(), bookings)); lvBooking.setVisibility(View.VISIBLE); progress.setVisibility(View.GONE); } } @Override public void onAsyncTaskFailure(Exception e) { getActivity().setProgressBarIndeterminateVisibility(false); progress.setVisibility(View.GONE); } }; @Override public void onAttach(Activity activity) { super.onAttach(activity); ((MainActivity) activity).onSectionAttached( activity.getString(R.string.current_tracks)); } }