diff options
Diffstat (limited to 'src/com/android/tv/dvr/ui/PrioritySettingsFragment.java')
-rw-r--r-- | src/com/android/tv/dvr/ui/PrioritySettingsFragment.java | 251 |
1 files changed, 0 insertions, 251 deletions
diff --git a/src/com/android/tv/dvr/ui/PrioritySettingsFragment.java b/src/com/android/tv/dvr/ui/PrioritySettingsFragment.java deleted file mode 100644 index 158bd824..00000000 --- a/src/com/android/tv/dvr/ui/PrioritySettingsFragment.java +++ /dev/null @@ -1,251 +0,0 @@ -/* - * Copyright (C) 2016 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.tv.dvr.ui; - -import android.app.FragmentManager; -import android.content.Context; -import android.graphics.Typeface; -import android.os.Bundle; -import android.support.v17.leanback.app.GuidedStepFragment; -import android.support.v17.leanback.widget.GuidanceStylist.Guidance; -import android.support.v17.leanback.widget.GuidedAction; -import android.support.v17.leanback.widget.GuidedActionsStylist; -import android.view.View; -import android.widget.ImageView; -import android.widget.TextView; - -import com.android.tv.R; -import com.android.tv.TvApplication; -import com.android.tv.dvr.DvrDataManager; -import com.android.tv.dvr.DvrManager; -import com.android.tv.dvr.DvrScheduleManager; -import com.android.tv.dvr.SeriesRecording; - -import java.util.ArrayList; -import java.util.List; - -/** - * Fragment for DVR series recording settings. - */ -public class PrioritySettingsFragment extends GuidedStepFragment { - /** - * Name of series recording id starting the fragment. - * Type: Long - */ - public static final String COME_FROM_SERIES_RECORDING_ID = "series_recording_id"; - - private static final int ONE_TIME_RECORDING_ID = 0; - // button action's IDs are negative. - private static final long ACTION_ID_SAVE = -100L; - - private final List<SeriesRecording> mSeriesRecordings = new ArrayList<>(); - - private SeriesRecording mSelectedRecording; - private SeriesRecording mComeFromSeriesRecording; - private float mSelectedActionElevation; - private int mActionColor; - private int mSelectedActionColor; - - @Override - public void onAttach(Context context) { - super.onAttach(context); - mSeriesRecordings.clear(); - mSeriesRecordings.add(new SeriesRecording.Builder() - .setTitle(getString(R.string.dvr_priority_action_one_time_recording)) - .setPriority(Long.MAX_VALUE) - .setId(ONE_TIME_RECORDING_ID) - .build()); - DvrDataManager dvrDataManager = TvApplication.getSingletons(context).getDvrDataManager(); - long comeFromSeriesRecordingId = - getArguments().getLong(COME_FROM_SERIES_RECORDING_ID, -1); - for (SeriesRecording series : dvrDataManager.getSeriesRecordings()) { - if (series.getState() == SeriesRecording.STATE_SERIES_NORMAL - || series.getId() == comeFromSeriesRecordingId) { - mSeriesRecordings.add(series); - } - } - mSeriesRecordings.sort(SeriesRecording.PRIORITY_COMPARATOR); - mComeFromSeriesRecording = dvrDataManager.getSeriesRecording(comeFromSeriesRecordingId); - mSelectedActionElevation = getResources().getDimension(R.dimen.card_elevation_normal); - mActionColor = getResources().getColor(R.color.dvr_guided_step_action_text_color, null); - mSelectedActionColor = - getResources().getColor(R.color.dvr_guided_step_action_text_color_selected, null); - } - - @Override - public void onResume() { - super.onResume(); - setSelectedActionPosition(mComeFromSeriesRecording == null ? 1 - : mSeriesRecordings.indexOf(mComeFromSeriesRecording)); - } - - @Override - public Guidance onCreateGuidance(Bundle savedInstanceState) { - String breadcrumb = mComeFromSeriesRecording == null ? null - : mComeFromSeriesRecording.getTitle(); - return new Guidance(getString(R.string.dvr_priority_title), - getString(R.string.dvr_priority_description), breadcrumb, null); - } - - @Override - public void onCreateActions(List<GuidedAction> actions, Bundle savedInstanceState) { - int position = 0; - for (SeriesRecording seriesRecording : mSeriesRecordings) { - actions.add(new GuidedAction.Builder(getActivity()) - .id(position++) - .title(seriesRecording.getTitle()) - .build()); - } - } - - @Override - public void onCreateButtonActions(List<GuidedAction> actions, Bundle savedInstanceState) { - actions.add(new GuidedAction.Builder(getActivity()) - .id(ACTION_ID_SAVE) - .title(getString(R.string.dvr_priority_button_action_save)) - .build()); - actions.add(new GuidedAction.Builder(getActivity()) - .clickAction(GuidedAction.ACTION_ID_CANCEL) - .build()); - } - - @Override - public void onGuidedActionClicked(GuidedAction action) { - long actionId = action.getId(); - if (actionId == ACTION_ID_SAVE) { - DvrManager dvrManager = TvApplication.getSingletons(getContext()).getDvrManager(); - int size = mSeriesRecordings.size(); - for (int i = 1; i < size; ++i) { - long priority = DvrScheduleManager.suggestSeriesPriority(size - i); - SeriesRecording seriesRecording = mSeriesRecordings.get(i); - if (seriesRecording.getPriority() != priority) { - dvrManager.updateSeriesRecording(SeriesRecording.buildFrom(seriesRecording) - .setPriority(priority).build()); - } - } - FragmentManager fragmentManager = getFragmentManager(); - fragmentManager.popBackStack(); - } else if (actionId == GuidedAction.ACTION_ID_CANCEL) { - FragmentManager fragmentManager = getFragmentManager(); - fragmentManager.popBackStack(); - } else if (mSelectedRecording == null) { - mSelectedRecording = mSeriesRecordings.get((int) actionId); - for (int i = 0; i < mSeriesRecordings.size(); ++i) { - updateItem(i); - } - } else { - mSelectedRecording = null; - for (int i = 0; i < mSeriesRecordings.size(); ++i) { - updateItem(i); - } - } - } - - @Override - public void onGuidedActionFocused(GuidedAction action) { - super.onGuidedActionFocused(action); - if (mSelectedRecording == null) { - return; - } - if (action.getId() < 0) { - int selectedPosition = mSeriesRecordings.indexOf(mSelectedRecording); - mSelectedRecording = null; - for (int i = 0; i < mSeriesRecordings.size(); ++i) { - updateItem(i); - } - return; - } - int position = (int) action.getId(); - int previousPosition = mSeriesRecordings.indexOf(mSelectedRecording); - mSeriesRecordings.remove(mSelectedRecording); - mSeriesRecordings.add(position, mSelectedRecording); - updateItem(previousPosition); - updateItem(position); - notifyActionChanged(previousPosition); - notifyActionChanged(position); - } - - @Override - public GuidedActionsStylist onCreateButtonActionsStylist() { - return new DvrGuidedActionsStylist(true); - } - - @Override - public GuidedActionsStylist onCreateActionsStylist() { - return new DvrGuidedActionsStylist(false) { - @Override - public void onBindViewHolder(ViewHolder vh, GuidedAction action) { - super.onBindViewHolder(vh, action); - updateItem(vh.itemView, (int) action.getId()); - } - - @Override - public int onProvideItemLayoutId() { - return R.layout.priority_settings_action_item; - } - }; - } - - private void updateItem(int position) { - View itemView = getActionItemView(position); - if (itemView == null) { - return; - } - updateItem(itemView, position); - } - - private void updateItem(View itemView, int position) { - GuidedAction action = getActions().get(position); - action.setTitle(mSeriesRecordings.get(position).getTitle()); - boolean selected = mSelectedRecording != null - && mSeriesRecordings.indexOf(mSelectedRecording) == position; - TextView titleView = (TextView) itemView.findViewById(R.id.guidedactions_item_title); - ImageView imageView = (ImageView) itemView.findViewById(R.id.guidedactions_item_tail_image); - if (position == 0) { - // one-time recording - itemView.setBackgroundResource(R.drawable.setup_selector_background); - imageView.setVisibility(View.GONE); - itemView.setFocusable(false); - itemView.setElevation(0); - // strings.xml <i> tag doesn't work. - titleView.setTypeface(titleView.getTypeface(), Typeface.ITALIC); - } else if (mSelectedRecording == null) { - titleView.setTextColor(mActionColor); - itemView.setBackgroundResource(R.drawable.setup_selector_background); - imageView.setImageResource(R.drawable.ic_draggable_white); - imageView.setVisibility(View.VISIBLE); - itemView.setFocusable(true); - itemView.setElevation(0); - titleView.setTypeface(titleView.getTypeface(), Typeface.NORMAL); - } else if (selected) { - titleView.setTextColor(mSelectedActionColor); - itemView.setBackgroundResource(R.drawable.priority_settings_action_item_selected); - imageView.setImageResource(R.drawable.ic_dragging_grey); - imageView.setVisibility(View.VISIBLE); - itemView.setFocusable(true); - itemView.setElevation(mSelectedActionElevation); - titleView.setTypeface(titleView.getTypeface(), Typeface.NORMAL); - } else { - titleView.setTextColor(mActionColor); - itemView.setBackgroundResource(R.drawable.setup_selector_background); - imageView.setVisibility(View.INVISIBLE); - itemView.setFocusable(true); - itemView.setElevation(0); - titleView.setTypeface(titleView.getTypeface(), Typeface.NORMAL); - } - } -} |