package typical_if.android.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.Menu;
import android.view.MenuInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ListView;
import com.nhaarman.listviewanimations.appearance.AnimationAdapter;
import com.nhaarman.listviewanimations.appearance.simple.SwingBottomInAnimationAdapter;
import org.json.JSONObject;
import java.util.ArrayList;
import typical_if.android.Constants;
import typical_if.android.OfflineMode;
import typical_if.android.R;
import typical_if.android.TIFApp;
import typical_if.android.VKHelper;
import typical_if.android.VKRequestListener;
import typical_if.android.activity.MainActivity;
import typical_if.android.adapter.AlbumCoverAdapter;
import typical_if.android.model.Album;
/**
* Created by admin on 14.07.2014.
*/
public class FragmentAlbumsList extends Fragment {
AlbumCoverAdapter albumCoverAdapter;
ListView listOfAlbums;
private int type;
private int counter = 5;
private boolean temp = true;
private boolean isRequestNul;
/**
* Returns a new instance of this fragment for the given section
* number.
*/
public static FragmentAlbumsList newInstance(int type) {
Constants.isFragmentAlbumListLoaded=true;
FragmentAlbumsList fragment = new FragmentAlbumsList();
Bundle args = new Bundle();
fragment.type = type;
fragment.setArguments(args);
return fragment;
}
public FragmentAlbumsList() {
}
private AnimationAdapter mAnimAdapter;
private void setBottomAdapter(final ListView list, AlbumCoverAdapter mAdapter)
{
try {
if (!(mAnimAdapter instanceof SwingBottomInAnimationAdapter)) {
mAnimAdapter = new SwingBottomInAnimationAdapter(mAdapter);
mAnimAdapter.setAbsListView(list);
list.setAdapter(mAnimAdapter);
}
}catch (NullPointerException c ){
list.setAdapter(mAdapter);
}
}
@Override
public View onCreateView(final LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
Constants.isFragmentAlbumListLoaded=true;
// ((MainActivity)getActivity()).getSupportActionBar().hide();
final View rootView = inflater.inflate(R.layout.fragment_albums_list, container, false);
listOfAlbums = (ListView) rootView.findViewById(R.id.album_list);
setRetainInstance(true);
doRequest(rootView);
return rootView;
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
Constants.makePostMenu = null;
super.onCreateOptionsMenu(menu, inflater);
}
@Override
public void onResume() {
super.onResume();
Constants.isFragmentAlbumListLoaded=true;
}
@Override
public void onDetach() {
super.onDetach();
Constants.isFragmentAlbumListLoaded=false;
}
@Override
public void onDestroy() {
super.onDestroy();
Constants.isFragmentAlbumListLoaded=false;
}
@Override
public void onAttach(Activity activity) {
Constants.isFragmentAlbumListLoaded=true;
super.onAttach(activity);
}
private boolean doRequest(final View view) {
if (OfflineMode.isOnline()) {
temp = false;
if (type == 0) {
VKHelper.getAlbumList(Constants.USER_ID, new VKRequestListener() {
@Override
public void onSuccess() {
OfflineMode.saveJSON(OfflineMode.loadLong(Constants.VK_GROUP_ID) + "albums", vkJson);
handleResponse(OfflineMode.loadJSON( OfflineMode.loadLong(Constants.VK_GROUP_ID) + "albums"), view);
}
// @Override
// public void onError(final VKError error) {
// super.onError(error);
// TIFApp.showCommonErrorToast();
// }
});
} else {
VKHelper.getAlbumList( OfflineMode.loadLong(Constants.VK_GROUP_ID), new VKRequestListener() {
@Override
public void onSuccess() {
OfflineMode.saveJSON(OfflineMode.loadLong(Constants.VK_GROUP_ID) + "albums", vkJson);
handleResponse(OfflineMode.loadJSON(OfflineMode.loadLong(Constants.VK_GROUP_ID) + "albums"), view);
}
// @Override
// public void onError() {
// TIFApp.showCommonErrorToast();
// }
});
}
isRequestNul= true;
}
if (!OfflineMode.isOnline() && OfflineMode.isJsonNull( OfflineMode.loadLong(Constants.VK_GROUP_ID) + "albums")) {
handleResponse(OfflineMode.loadJSON( OfflineMode.loadLong(Constants.VK_GROUP_ID) + "albums"), view);
isRequestNul = true;
} else {
if (temp) {
TIFApp.showCommonErrorToast();
isRequestNul = false;
}
}
return isRequestNul;
}
protected void handleResponse(JSONObject jsonObject, View view) {
final ArrayList<Album> albums = Album.getAlbumFromJSONArray(jsonObject);
try {
albumCoverAdapter = new AlbumCoverAdapter(albums, getActivity().getLayoutInflater());
} catch (NullPointerException e) { }
//listOfAlbums.setTransitionEffect(mCurrentTransitionEffect);
Log.d(listOfAlbums+ "listOfAlbums"+ albumCoverAdapter+" albumCoverAdapter ","");
setBottomAdapter(listOfAlbums, albumCoverAdapter);
// listOfAlbums.setAdapter(albumCoverAdapter);
listOfAlbums.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Constants.ALBUM_ID = albums.get(position).id;
String src = albums.get(position).sizes.optJSONObject(2).optString("src");
Constants.TEMP_OWNER_ID = albums.get(position).owner_id;
Fragment fragment = FragmentPhotoList.newInstance(type, albums.get(position).size, albums.get(position).title, src);
((MainActivity)getActivity()).addFragment(fragment);
}
});
}
}