package com.jdroid.android.about; import android.os.Bundle; import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.TextView; import com.jdroid.android.application.AbstractApplication; import com.jdroid.android.images.loader.ImageLoaderHelper; import com.jdroid.android.recycler.AbstractRecyclerFragment; import com.jdroid.android.recycler.RecyclerViewAdapter; import com.jdroid.android.recycler.RecyclerViewType; import com.jdroid.java.collections.Lists; import java.util.List; public class LibrariesFragment extends AbstractRecyclerFragment { private List<Library> libraries = Lists.newArrayList(); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); libraries.add(new Library("jdroid", R.string.jdroid_jdroidTitle, R.string.jdroid_jdroidDescription, "Maxi Rosson", "http://jdroidframework.com")); if (displayImageLoader()) { ImageLoaderHelper imageLoaderHelper = AbstractApplication.get().getImageLoaderHelper(); Library library = new Library(imageLoaderHelper.getLibraryKey(), imageLoaderHelper.getLibraryNameResId(), imageLoaderHelper.getLibraryDescriptionResId(), "Sergey Tarasevich", imageLoaderHelper.getLibraryUrl()); libraries.add(library); } libraries.addAll(getCustomLibraries()); } @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); setAdapter(new RecyclerViewAdapter(new LibraryRecyclerViewType(), libraries)); } protected Boolean displayImageLoader() { return AbstractApplication.get().getImageLoaderHelper() != null; } protected List<Library> getCustomLibraries() { return Lists.newArrayList(); } public class LibraryRecyclerViewType extends RecyclerViewType<Library, LibrariesHolder> { @Override protected Integer getLayoutResourceId() { return R.layout.jdroid_library_item; } @Override protected Class<Library> getItemClass() { return Library.class; } @Override public RecyclerView.ViewHolder createViewHolderFromView(View view) { LibrariesHolder holder = new LibrariesHolder(view); holder.name = findView(view, R.id.name); holder.description = findView(view, R.id.description); holder.author = findView(view, R.id.author); return holder; } @Override public void fillHolderFromItem(Library item, LibrariesHolder holder) { holder.name.setText(item.getNameResId()); holder.description.setText(item.getDescriptionResId()); holder.author.setText(item.getAuthor()); } @Override public void onItemSelected(Library item, View view) { item.onSelected(getActivity()); AboutAppModule.get().getAnalyticsSender().trackAboutLibraryOpen(item.getLibraryKey()); } @Override public AbstractRecyclerFragment getAbstractRecyclerFragment() { return LibrariesFragment.this; } } public static class LibrariesHolder extends RecyclerView.ViewHolder { protected TextView name; protected TextView description; protected TextView author; public LibrariesHolder(View itemView) { super(itemView); } } }