package com.kanshu.kanshu;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.kanshu.kanshu.model.SavedChars;
import com.kanshu.kanshu.model.User;
import com.kanshu.kanshu.widget.SimpleDividerItemDecoration;
import org.json.JSONArray;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import retrofit.Callback;
import retrofit.RetrofitError;
import retrofit.client.Response;
/**
* Created by alouanemed on 26-01-2015.
*/
public class UserMySavedCharsFragment extends Fragment {
private RecyclerView mRecyclerView;
private RecyclerView.Adapter mAdapter;
/**
* The fragment argument representing the section number for this
* fragment.
*/
private static final String ARG_SECTION_NUMBER = "section_number";
public static UserMySavedCharsFragment newInstance(int sectionNumber) {
UserMySavedCharsFragment fragment = new UserMySavedCharsFragment();
Bundle args = new Bundle();
args.putInt(ARG_SECTION_NUMBER, sectionNumber);
fragment.setArguments(args);
return fragment;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_user_my_saved_chars, container, false);
User loggedInUser = getActivity().getIntent().getExtras().getParcelable("user");
mRecyclerView = (RecyclerView) rootView.findViewById(R.id.recycler_view);
mRecyclerView.addItemDecoration(new SimpleDividerItemDecoration(getActivity()));
// use a linear layout manager
LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity());
layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
mRecyclerView.setHasFixedSize(true);
mRecyclerView.setLayoutManager(layoutManager);
//add data to the list
final List<SavedChars> savedCharsList = new ArrayList<SavedChars>();
SavedChars s = new SavedChars();
s.setWordID(1);
s.save(loggedInUser.getSessionId());
s = new SavedChars();
s.setWordID(2);
s.save(loggedInUser.getSessionId());
mAdapter = new MySavedCharsAdapter(savedCharsList);
mRecyclerView.setAdapter(mAdapter);
ApiHandler.kanshuApi.getWords(loggedInUser.getSessionId(), new Callback<JsonObject>() {
@Override
public void success(JsonObject jsonObject, Response response) {
Iterator<JsonElement> allWords = jsonObject.get("words").getAsJsonArray().iterator();
while(allWords.hasNext()){
SavedChars savedCharElem = new SavedChars();
JsonElement elem = allWords.next();
savedCharElem.setWordID(elem.getAsJsonObject().get("id").getAsInt());
savedCharElem.setChar(elem.getAsJsonObject().get("simplified").getAsString());
String description = "";
for(int i = 0; i < elem.getAsJsonObject().get("definitions").getAsJsonArray().size(); i++)
{
description += elem.getAsJsonObject().get("definitions").getAsJsonArray().get(i).getAsString() + ";";
}
savedCharElem.setChardescription(description);
savedCharElem.setTranslation(elem.getAsJsonObject().get("translatedto").getAsString());
savedCharsList.add(savedCharElem);
}
}
@Override
public void failure(RetrofitError error) {
Log.i("UserMySavedCharsFragment", "failed to load words");
}
});
return rootView;
}
}