aboutsummaryrefslogtreecommitdiff
path: root/src/com/android/tv/dvr/ui/list/SchedulesHeaderRowPresenter.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/tv/dvr/ui/list/SchedulesHeaderRowPresenter.java')
-rw-r--r--src/com/android/tv/dvr/ui/list/SchedulesHeaderRowPresenter.java198
1 files changed, 111 insertions, 87 deletions
diff --git a/src/com/android/tv/dvr/ui/list/SchedulesHeaderRowPresenter.java b/src/com/android/tv/dvr/ui/list/SchedulesHeaderRowPresenter.java
index fe2033ba..eb01aba2 100644
--- a/src/com/android/tv/dvr/ui/list/SchedulesHeaderRowPresenter.java
+++ b/src/com/android/tv/dvr/ui/list/SchedulesHeaderRowPresenter.java
@@ -27,16 +27,13 @@ import android.view.View.OnFocusChangeListener;
import android.view.ViewGroup;
import android.view.animation.DecelerateInterpolator;
import android.widget.TextView;
-
import com.android.tv.R;
-import com.android.tv.TvApplication;
+import com.android.tv.TvSingletons;
import com.android.tv.dvr.data.SeriesRecording;
import com.android.tv.dvr.ui.DvrUiHelper;
import com.android.tv.dvr.ui.list.SchedulesHeaderRow.SeriesRecordingHeaderRow;
-/**
- * A base class for RowPresenter for {@link SchedulesHeaderRow}
- */
+/** A base class for RowPresenter for {@link SchedulesHeaderRow} */
abstract class SchedulesHeaderRowPresenter extends RowPresenter {
private Context mContext;
@@ -46,23 +43,20 @@ abstract class SchedulesHeaderRowPresenter extends RowPresenter {
mContext = context;
}
- /**
- * Returns the context.
- */
+ /** Returns the context. */
Context getContext() {
return mContext;
}
- /**
- * A ViewHolder for {@link SchedulesHeaderRow}.
- */
+ /** A ViewHolder for {@link SchedulesHeaderRow}. */
public static class SchedulesHeaderRowViewHolder extends RowPresenter.ViewHolder {
private TextView mTitle;
private TextView mDescription;
public SchedulesHeaderRowViewHolder(Context context, ViewGroup parent) {
- super(LayoutInflater.from(context).inflate(R.layout.dvr_schedules_header, parent,
- false));
+ super(
+ LayoutInflater.from(context)
+ .inflate(R.layout.dvr_schedules_header, parent, false));
mTitle = (TextView) view.findViewById(R.id.header_title);
mDescription = (TextView) view.findViewById(R.id.header_description);
}
@@ -77,9 +71,7 @@ abstract class SchedulesHeaderRowPresenter extends RowPresenter {
headerViewHolder.mDescription.setText(header.getDescription());
}
- /**
- * A presenter for {@link SchedulesHeaderRow.DateHeaderRow}.
- */
+ /** A presenter for {@link SchedulesHeaderRow.DateHeaderRow}. */
public static class DateHeaderRowPresenter extends SchedulesHeaderRowPresenter {
public DateHeaderRowPresenter(Context context) {
super(context);
@@ -90,10 +82,7 @@ abstract class SchedulesHeaderRowPresenter extends RowPresenter {
return new DateHeaderRowViewHolder(getContext(), parent);
}
- /**
- * A ViewHolder for
- * {@link SchedulesHeaderRow.DateHeaderRow}.
- */
+ /** A ViewHolder for {@link SchedulesHeaderRow.DateHeaderRow}. */
public static class DateHeaderRowViewHolder extends SchedulesHeaderRowViewHolder {
public DateHeaderRowViewHolder(Context context, ViewGroup parent) {
super(context, parent);
@@ -101,9 +90,7 @@ abstract class SchedulesHeaderRowPresenter extends RowPresenter {
}
}
- /**
- * A presenter for {@link SeriesRecordingHeaderRow}.
- */
+ /** A presenter for {@link SeriesRecordingHeaderRow}. */
public static class SeriesRecordingHeaderRowPresenter extends SchedulesHeaderRowPresenter {
private final boolean mLtr;
private final Drawable mSettingsDrawable;
@@ -116,8 +103,9 @@ abstract class SchedulesHeaderRowPresenter extends RowPresenter {
public SeriesRecordingHeaderRowPresenter(Context context) {
super(context);
- mLtr = context.getResources().getConfiguration().getLayoutDirection()
- == View.LAYOUT_DIRECTION_LTR;
+ mLtr =
+ context.getResources().getConfiguration().getLayoutDirection()
+ == View.LAYOUT_DIRECTION_LTR;
mSettingsDrawable = context.getDrawable(R.drawable.ic_settings);
mCancelDrawable = context.getDrawable(R.drawable.ic_dvr_cancel_large);
mResumeDrawable = context.getDrawable(R.drawable.ic_record_start);
@@ -134,8 +122,7 @@ abstract class SchedulesHeaderRowPresenter extends RowPresenter {
@Override
protected void onBindRowViewHolder(RowPresenter.ViewHolder viewHolder, Object item) {
super.onBindRowViewHolder(viewHolder, item);
- SeriesHeaderRowViewHolder headerViewHolder =
- (SeriesHeaderRowViewHolder) viewHolder;
+ SeriesHeaderRowViewHolder headerViewHolder = (SeriesHeaderRowViewHolder) viewHolder;
SeriesRecordingHeaderRow header = (SeriesRecordingHeaderRow) item;
headerViewHolder.mSeriesSettingsButton.setVisibility(
header.getSeriesRecording().isStopped() ? View.INVISIBLE : View.VISIBLE);
@@ -148,46 +135,59 @@ abstract class SchedulesHeaderRowPresenter extends RowPresenter {
headerViewHolder.mToggleStartStopButton.setText(mCancelAllInfo);
setTextDrawable(headerViewHolder.mToggleStartStopButton, mCancelDrawable);
}
- headerViewHolder.mSeriesSettingsButton.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View view) {
- DvrUiHelper.startSeriesSettingsActivity(getContext(),
- header.getSeriesRecording().getId(),
- header.getPrograms(), false, false, false, null);
- }
- });
- headerViewHolder.mToggleStartStopButton.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View view) {
- if (header.getSeriesRecording().isStopped()) {
- // Reset priority to the highest.
- SeriesRecording seriesRecording = SeriesRecording
- .buildFrom(header.getSeriesRecording())
- .setPriority(TvApplication.getSingletons(getContext())
- .getDvrScheduleManager().suggestNewSeriesPriority())
- .build();
- TvApplication.getSingletons(getContext()).getDvrManager()
- .updateSeriesRecording(seriesRecording);
- DvrUiHelper.startSeriesSettingsActivity(getContext(),
- header.getSeriesRecording().getId(),
- header.getPrograms(), false, false, false, null);
- } else {
- DvrUiHelper.showCancelAllSeriesRecordingDialog(
- (DvrSchedulesActivity) view.getContext(),
- header.getSeriesRecording());
- }
- }
- });
+ headerViewHolder.mSeriesSettingsButton.setOnClickListener(
+ new OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ DvrUiHelper.startSeriesSettingsActivity(
+ getContext(),
+ header.getSeriesRecording().getId(),
+ header.getPrograms(),
+ false,
+ false,
+ false,
+ null);
+ }
+ });
+ headerViewHolder.mToggleStartStopButton.setOnClickListener(
+ new OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ if (header.getSeriesRecording().isStopped()) {
+ // Reset priority to the highest.
+ SeriesRecording seriesRecording =
+ SeriesRecording.buildFrom(header.getSeriesRecording())
+ .setPriority(
+ TvSingletons.getSingletons(getContext())
+ .getDvrScheduleManager()
+ .suggestNewSeriesPriority())
+ .build();
+ TvSingletons.getSingletons(getContext())
+ .getDvrManager()
+ .updateSeriesRecording(seriesRecording);
+ DvrUiHelper.startSeriesSettingsActivity(
+ getContext(),
+ header.getSeriesRecording().getId(),
+ header.getPrograms(),
+ false,
+ false,
+ false,
+ null);
+ } else {
+ DvrUiHelper.showCancelAllSeriesRecordingDialog(
+ (DvrSchedulesActivity) view.getContext(),
+ header.getSeriesRecording());
+ }
+ }
+ });
}
private void setTextDrawable(TextView textView, Drawable drawableStart) {
- textView.setCompoundDrawablesRelativeWithIntrinsicBounds(drawableStart, null, null,
- null);
+ textView.setCompoundDrawablesRelativeWithIntrinsicBounds(
+ drawableStart, null, null, null);
}
- /**
- * A ViewHolder for {@link SeriesRecordingHeaderRow}.
- */
+ /** A ViewHolder for {@link SeriesRecordingHeaderRow}. */
public static class SeriesHeaderRowViewHolder extends SchedulesHeaderRowViewHolder {
private final TextView mSeriesSettingsButton;
private final TextView mToggleStartStopButton;
@@ -196,33 +196,40 @@ abstract class SchedulesHeaderRowPresenter extends RowPresenter {
private final View mSelector;
private View mLastFocusedView;
+
public SeriesHeaderRowViewHolder(Context context, ViewGroup parent) {
super(context, parent);
- mLtr = context.getResources().getConfiguration().getLayoutDirection()
- == View.LAYOUT_DIRECTION_LTR;
+ mLtr =
+ context.getResources().getConfiguration().getLayoutDirection()
+ == View.LAYOUT_DIRECTION_LTR;
view.findViewById(R.id.button_container).setVisibility(View.VISIBLE);
mSeriesSettingsButton = (TextView) view.findViewById(R.id.series_settings);
mToggleStartStopButton =
(TextView) view.findViewById(R.id.series_toggle_start_stop);
mSelector = view.findViewById(R.id.selector);
- OnFocusChangeListener onFocusChangeListener = new View.OnFocusChangeListener() {
- @Override
- public void onFocusChange(View view, boolean focused) {
- view.post(new Runnable() {
+ OnFocusChangeListener onFocusChangeListener =
+ new View.OnFocusChangeListener() {
@Override
- public void run() {
- updateSelector(view);
+ public void onFocusChange(View view, boolean focused) {
+ view.post(
+ new Runnable() {
+ @Override
+ public void run() {
+ updateSelector(view);
+ }
+ });
}
- });
- }
- };
+ };
mSeriesSettingsButton.setOnFocusChangeListener(onFocusChangeListener);
mToggleStartStopButton.setOnFocusChangeListener(onFocusChangeListener);
}
private void updateSelector(View focusedView) {
- int animationDuration = mSelector.getContext().getResources()
- .getInteger(android.R.integer.config_shortAnimTime);
+ int animationDuration =
+ mSelector
+ .getContext()
+ .getResources()
+ .getInteger(android.R.integer.config_shortAnimTime);
DecelerateInterpolator interpolator = new DecelerateInterpolator();
if (focusedView.hasFocus()) {
@@ -246,21 +253,38 @@ abstract class SchedulesHeaderRowPresenter extends RowPresenter {
// animate the selector in and to the proper width and translation X.
final float deltaWidth = lp.width - targetWidth;
mSelector.animate().cancel();
- mSelector.animate().translationX(targetTranslationX).alpha(1f)
- .setUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
- @Override
- public void onAnimationUpdate(ValueAnimator animation) {
- // Set width to the proper width for this animation step.
- lp.width = targetWidth + Math.round(
- deltaWidth * (1f - animation.getAnimatedFraction()));
- mSelector.requestLayout();
- }
- }).setDuration(animationDuration).setInterpolator(interpolator).start();
+ mSelector
+ .animate()
+ .translationX(targetTranslationX)
+ .alpha(1f)
+ .setUpdateListener(
+ new ValueAnimator.AnimatorUpdateListener() {
+ @Override
+ public void onAnimationUpdate(ValueAnimator animation) {
+ // Set width to the proper width for this animation
+ // step.
+ lp.width =
+ targetWidth
+ + Math.round(
+ deltaWidth
+ * (1f
+ - animation
+ .getAnimatedFraction()));
+ mSelector.requestLayout();
+ }
+ })
+ .setDuration(animationDuration)
+ .setInterpolator(interpolator)
+ .start();
mLastFocusedView = focusedView;
} else if (mLastFocusedView == focusedView) {
mSelector.animate().setUpdateListener(null).cancel();
- mSelector.animate().alpha(0f).setDuration(animationDuration)
- .setInterpolator(interpolator).start();
+ mSelector
+ .animate()
+ .alpha(0f)
+ .setDuration(animationDuration)
+ .setInterpolator(interpolator)
+ .start();
mLastFocusedView = null;
}
}