package com.erakk.lnreader.UI.fragment;
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
import android.widget.Toast;
import com.erakk.lnreader.LNReaderApplication;
import com.erakk.lnreader.R;
import com.erakk.lnreader.adapter.DownloadListAdapter;
import com.erakk.lnreader.callback.ICallbackEventData;
import com.erakk.lnreader.callback.IExtendedCallbackNotifier;
import com.erakk.lnreader.model.DownloadModel;
/**
* A simple {@link Fragment} subclass.
*/
public class DownloadFragment extends Fragment implements IExtendedCallbackNotifier<DownloadModel> {
private static final String TAG = DownloadFragment.class.toString();
ListView downloadListView;
DownloadListAdapter adapter;
public DownloadFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_download_list, null);
downloadListView = (ListView) view.findViewById(R.id.download_list);
updateContent();
getActivity().setTitle(R.string.download_list);
return view;
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
}
@Override
public void onResume() {
super.onResume();
LNReaderApplication.getInstance().setDownloadNotifier(this);
updateContent();
}
@Override
public void onPause() {
super.onPause();
LNReaderApplication.getInstance().setDownloadNotifier(null);
}
@Override
public void onDetach() {
super.onDetach();
}
private void updateContent() {
try {
int resourceId = R.layout.item_download;
adapter = new DownloadListAdapter(getActivity(), resourceId, LNReaderApplication.getInstance().getDownloadList());
downloadListView.setAdapter(adapter);
} catch (Exception e) {
Log.e(TAG, e.getMessage(), e);
Toast.makeText(getActivity(), getResources().getString(R.string.error_update) + ": " + e.getMessage(), Toast.LENGTH_LONG).show();
}
}
// region implementation of IExtendedCallbackNotifier<DownloadModel>
@Override
public void onCompleteCallback(ICallbackEventData message, DownloadModel result) {
updateContent();
}
@Override
public void onProgressCallback(ICallbackEventData message) {
updateContent();
}
@Override
public boolean downloadListSetup(String taskId, String message, int setupType, boolean hasError) {
return false;
}
// endregion
}