package com.florianmski.tracktoid.ui.fragments.comments; import android.os.Bundle; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.StaggeredGridLayoutManager; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.EditText; import android.widget.ImageView; import android.widget.Toast; import android.widget.ToggleButton; import com.florianmski.tracktoid.R; import com.florianmski.tracktoid.rx.observables.TraktObservable; import com.florianmski.tracktoid.TraktoidConstants; import com.florianmski.tracktoid.adapters.RecyclerAdapter; import com.florianmski.tracktoid.adapters.lists.RecyclerCommentsAdapter; import com.florianmski.tracktoid.ui.fragments.base.list.ItemRecyclerViewFragment; import com.florianmski.tracktoid.ui.widgets.DividerItemDecoration; import com.uwetrottmann.trakt.v2.entities.Comment; import java.util.List; import rx.Observable; public abstract class CommentsFragment extends ItemRecyclerViewFragment<Comment> implements RecyclerAdapter.OnItemClickListener { protected String id; protected EditText edtShout; protected ImageView btnSend; protected ToggleButton tbSpoiler; public abstract List<Comment> getComments(); protected static Bundle getBundle(String id) { Bundle args = new Bundle(); args.putString(TraktoidConstants.BUNDLE_ID, id); return args; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); id = getArguments().getString(TraktoidConstants.BUNDLE_ID); } @Override protected RecyclerView.LayoutManager getLayoutManager() { return new StaggeredGridLayoutManager(getResources().getInteger(R.integer.grid_fanart_columns), StaggeredGridLayoutManager.VERTICAL); } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); getGroupView().addItemDecoration(new DividerItemDecoration(getActivity(), null)); btnSend.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { //empty shout if (edtShout.getText().toString().trim().equals("")) Toast.makeText(getActivity(), "Empty shout!", Toast.LENGTH_LONG).show(); else { } } }); } @Override protected View getCustomLayout(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.fragment_comments, container, false); } @Override public void onViewCreated(View v, Bundle savedInstanceState) { super.onViewCreated(v, savedInstanceState); edtShout = (EditText)v.findViewById(R.id.editTextShout); btnSend = (ImageView)v.findViewById(R.id.buttonSend); tbSpoiler = (ToggleButton)v.findViewById(R.id.toggleButtonSpoiler); } @Override protected Observable<List<Comment>> createObservable() { return Observable.create(new TraktObservable<List<Comment>>() { @Override public List<Comment> fire() { return getComments(); } }); } @Override protected RecyclerAdapter<Comment, ?> createAdapter(List<Comment> items) { return new RecyclerCommentsAdapter(getActivity(), items, getTheme(), this); } @Override public void onItemClick(View v, int position) { } @Override protected boolean hasFixedSize() { return false; } }