package pct.droid.fragments;
import android.annotation.TargetApi;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.text.Layout;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.LinearLayout;
import android.widget.RatingBar;
import android.widget.TextView;
import butterknife.ButterKnife;
import butterknife.Bind;
import butterknife.OnClick;
import pct.droid.R;
import pct.droid.base.providers.media.models.Show;
import pct.droid.base.utils.VersionUtils;
import pct.droid.fragments.dialog.SynopsisDialogFragment;
import pct.droid.fragments.base.BaseDetailFragment;
public class ShowDetailAboutFragment extends BaseDetailFragment {
private static Show sShow;
@Bind(R.id.title)
TextView mTitle;
@Bind(R.id.meta)
TextView mMeta;
@Bind(R.id.synopsis)
TextView mSynopsis;
@Bind(R.id.rating)
RatingBar mRating;
@Bind(R.id.read_more)
Button mReadMore;
@Bind(R.id.info_buttons)
LinearLayout mInfoButtons;
@Bind(R.id.magnet)
ImageButton mOpenMagnet;
public static ShowDetailAboutFragment newInstance(Show show) {
Bundle b = new Bundle();
sShow = show;
ShowDetailAboutFragment showDetailFragment = new ShowDetailAboutFragment();
showDetailFragment.setArguments(b);
return showDetailFragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
mRoot = inflater.inflate(R.layout.fragment_detail_about, container, false);
ButterKnife.bind(this, mRoot);
if (VersionUtils.isJellyBean() && container != null) {
mRoot.setMinimumHeight(container.getMinimumHeight());
}
if(sShow == null)
return mRoot;
mTitle.setText(sShow.title);
if (!sShow.rating.equals("-1")) {
Double rating = Double.parseDouble(sShow.rating);
mRating.setProgress(rating.intValue());
mRating.setContentDescription("Rating: " + rating.intValue() + " out of 10");
mRating.setVisibility(View.VISIBLE);
} else {
mRating.setVisibility(View.GONE);
}
StringBuilder metaDataStr = new StringBuilder();
metaDataStr.append(sShow.year);
if (sShow.status != Show.Status.UNKNOWN) {
metaDataStr.append(" • ");
if (sShow.status == Show.Status.CONTINUING) {
metaDataStr.append(getString(R.string.continuing));
} else {
metaDataStr.append(getString(R.string.ended));
}
}
if (!TextUtils.isEmpty(sShow.genre)) {
metaDataStr.append(" • ");
metaDataStr.append(sShow.genre);
}
mMeta.setText(metaDataStr.toString());
if (!TextUtils.isEmpty(sShow.synopsis)) {
mSynopsis.setText(sShow.synopsis);
mSynopsis.post(new Runnable() {
@Override
public void run() {
boolean ellipsized = false;
Layout layout = mSynopsis.getLayout();
if (layout == null) return;
int lines = layout.getLineCount();
if (lines > 0) {
int ellipsisCount = layout.getEllipsisCount(lines - 1);
if (ellipsisCount > 0) {
ellipsized = true;
}
}
mInfoButtons.setVisibility(ellipsized ? View.VISIBLE : View.GONE);
}
});
} else {
mInfoButtons.setVisibility(View.GONE);
}
mOpenMagnet.setVisibility(View.GONE);
return mRoot;
}
@OnClick(R.id.read_more)
public void openReadMore(View v) {
if (getFragmentManager().findFragmentByTag("overlay_fragment") != null)
return;
SynopsisDialogFragment synopsisDialogFragment = new SynopsisDialogFragment();
Bundle b = new Bundle();
b.putString("text", sShow.synopsis);
synopsisDialogFragment.setArguments(b);
synopsisDialogFragment.show(getFragmentManager(), "overlay_fragment");
}
}