package org.wordpress.android.ui.reader; import android.app.Fragment; import android.content.Context; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import org.wordpress.android.R; import org.wordpress.android.models.ReaderTag; import org.wordpress.android.ui.reader.adapters.ReaderTagAdapter; import org.wordpress.android.ui.reader.views.ReaderRecyclerView; import org.wordpress.android.util.AppLog; import org.wordpress.android.util.WPActivityUtils; /* * fragment hosted by ReaderSubsActivity which shows followed tags */ public class ReaderTagFragment extends Fragment implements ReaderTagAdapter.TagDeletedListener { private ReaderRecyclerView mRecyclerView; private ReaderTagAdapter mTagAdapter; static ReaderTagFragment newInstance() { AppLog.d(AppLog.T.READER, "reader tag list > newInstance"); return new ReaderTagFragment(); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.reader_fragment_list, container, false); mRecyclerView = (ReaderRecyclerView) view.findViewById(R.id.recycler_view); return view; } private void checkEmptyView() { if (!isAdded()) return; TextView emptyView = (TextView) getView().findViewById(R.id.text_empty); if (emptyView != null) { boolean isEmpty = hasTagAdapter() && getTagAdapter().isEmpty(); emptyView.setVisibility(isEmpty ? View.VISIBLE : View.GONE); if (isEmpty) { emptyView.setText(R.string.reader_empty_followed_tags); } } } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); mRecyclerView.setAdapter(getTagAdapter()); refresh(); } void refresh() { if (hasTagAdapter()) { AppLog.d(AppLog.T.READER, "reader subs > refreshing tag fragment"); getTagAdapter().refresh(); } } private ReaderTagAdapter getTagAdapter() { if (mTagAdapter == null) { Context context = WPActivityUtils.getThemedContext(getActivity()); mTagAdapter = new ReaderTagAdapter(context); mTagAdapter.setTagDeletedListener(this); mTagAdapter.setDataLoadedListener(new ReaderInterfaces.DataLoadedListener() { @Override public void onDataLoaded(boolean isEmpty) { checkEmptyView(); } }); } return mTagAdapter; } private boolean hasTagAdapter() { return (mTagAdapter != null); } /* * called from adapter when user removes a tag - note that the network request * has been made by the time this is called */ @Override public void onTagDeleted(ReaderTag tag) { checkEmptyView(); // let the host activity know about the change if (getActivity() instanceof ReaderTagAdapter.TagDeletedListener) { ((ReaderTagAdapter.TagDeletedListener) getActivity()).onTagDeleted(tag); } } }