package com.door43.translationstudio.newui.newtranslation;
import android.app.Activity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.ListView;
import com.door43.translationstudio.R;
import com.door43.translationstudio.core.Library;
import com.door43.translationstudio.core.ProjectCategory;
import com.door43.translationstudio.newui.library.Searchable;
import com.door43.translationstudio.newui.BaseFragment;
import com.door43.translationstudio.AppContext;
import java.util.Locale;
/**
* Created by joel on 9/4/2015.
*/
public class ProjectListFragment extends BaseFragment implements Searchable {
private OnItemClickListener mListener;
private Library mLibrary;
private ProjectCategoryAdapter mAdapter;
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_project_list, container, false);
mLibrary = AppContext.getLibrary();
EditText searchView = (EditText) rootView.findViewById(R.id.search_text);
searchView.setHint(R.string.choose_a_project);
searchView.setEnabled(false);
ImageButton searchBackButton = (ImageButton) rootView.findViewById(R.id.search_back_button);
searchBackButton.setVisibility(View.GONE);
final ImageView updateIcon = (ImageView) rootView.findViewById(R.id.search_mag_icon);
updateIcon.setBackgroundResource(R.drawable.ic_refresh_black_24dp);
// TODO: set up update button
ListView list = (ListView) rootView.findViewById(R.id.list);
mAdapter = new ProjectCategoryAdapter(mLibrary.getProjectCategories(Locale.getDefault().getLanguage()));
list.setAdapter(mAdapter);
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
ProjectCategory category = mAdapter.getItem(position);
if (category.isProject()) {
mListener.onItemClick(category.projectId);
} else {
// TODO: we need to display another back arrow to back up a level in the categories
mAdapter.changeData(mLibrary.getProjectCategories(category));
updateIcon.setVisibility(View.GONE);
}
}
});
return rootView;
}
public void onAttach(Activity activity) {
super.onAttach(activity);
try {
this.mListener = (OnItemClickListener) activity;
} catch (ClassCastException e) {
throw new ClassCastException(activity.toString() + " must implement OnItemClickListener");
}
}
@Override
public void onSearchQuery(String query) {
if(mAdapter != null) {
mAdapter.getFilter().filter(query);
}
}
public interface OnItemClickListener {
void onItemClick(String projectId);
}
}