1ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko/* 2ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko * Copyright (C) 2015 The Android Open Source Project 3ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko * 4ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko * Licensed under the Apache License, Version 2.0 (the "License"); 5ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko * you may not use this file except in compliance with the License. 6ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko * You may obtain a copy of the License at 7ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko * 8ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko * http://www.apache.org/licenses/LICENSE-2.0 9ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko * 10ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko * Unless required by applicable law or agreed to in writing, software 11ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko * distributed under the License is distributed on an "AS IS" BASIS, 12ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko * See the License for the specific language governing permissions and 14ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko * limitations under the License. 15ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko */ 16ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko 1765fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalkopackage com.android.tv.tuner.setup; 18ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko 19ba5845f23b8fbc985890f892961abc8b39886611Nick Chalkoimport android.os.Bundle; 20ba5845f23b8fbc985890f892961abc8b39886611Nick Chalkoimport android.support.annotation.NonNull; 216ebde20b03db4c0d57f67acaac11832b610b966bNick Chalkoimport android.support.annotation.Nullable; 22ba5845f23b8fbc985890f892961abc8b39886611Nick Chalkoimport android.support.v17.leanback.widget.GuidanceStylist.Guidance; 23ba5845f23b8fbc985890f892961abc8b39886611Nick Chalkoimport android.support.v17.leanback.widget.GuidedAction; 24ba5845f23b8fbc985890f892961abc8b39886611Nick Chalkoimport com.android.tv.common.ui.setup.SetupGuidedStepFragment; 25ba5845f23b8fbc985890f892961abc8b39886611Nick Chalkoimport com.android.tv.common.ui.setup.SetupMultiPaneFragment; 2665fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalkoimport com.android.tv.tuner.R; 276ebde20b03db4c0d57f67acaac11832b610b966bNick Chalkoimport com.android.tv.tuner.TunerHal; 2865fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalkoimport com.android.tv.tuner.TunerPreferences; 29ba5845f23b8fbc985890f892961abc8b39886611Nick Chalkoimport java.util.List; 30ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko 31ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko/** 32ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko * A fragment for initial screen. 33ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko */ 34ba5845f23b8fbc985890f892961abc8b39886611Nick Chalkopublic class WelcomeFragment extends SetupMultiPaneFragment { 35ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko public static final String ACTION_CATEGORY = 3665fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko "com.android.tv.tuner.setup.WelcomeFragment"; 37ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko 38ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko @Override 39ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko protected SetupGuidedStepFragment onCreateContentFragment() { 406ebde20b03db4c0d57f67acaac11832b610b966bNick Chalko ContentFragment fragment = new ContentFragment(); 416ebde20b03db4c0d57f67acaac11832b610b966bNick Chalko fragment.setArguments(getArguments()); 426ebde20b03db4c0d57f67acaac11832b610b966bNick Chalko return fragment; 43ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko } 44ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko 45ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko @Override 46ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko protected String getActionCategory() { 47ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko return ACTION_CATEGORY; 48ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko } 49ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko 50ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko @Override 51ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko protected boolean needsDoneButton() { 52ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko return false; 53ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko } 54ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko 55ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko public static class ContentFragment extends SetupGuidedStepFragment { 56ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko private int mChannelCountOnPreference; 57ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko 58ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko @Override 596ebde20b03db4c0d57f67acaac11832b610b966bNick Chalko public void onCreate(@Nullable Bundle savedInstanceState) { 606ebde20b03db4c0d57f67acaac11832b610b966bNick Chalko mChannelCountOnPreference = 616ebde20b03db4c0d57f67acaac11832b610b966bNick Chalko TunerPreferences.getScannedChannelCount(getActivity().getApplicationContext()); 626ebde20b03db4c0d57f67acaac11832b610b966bNick Chalko super.onCreate(savedInstanceState); 63ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko } 64ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko 65ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko @NonNull 66ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko @Override 67ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko public Guidance onCreateGuidance(Bundle savedInstanceState) { 68ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko String title; 69ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko String description; 706ebde20b03db4c0d57f67acaac11832b610b966bNick Chalko int tunerType = getArguments().getInt(TunerSetupActivity.KEY_TUNER_TYPE, 716ebde20b03db4c0d57f67acaac11832b610b966bNick Chalko TunerHal.TUNER_TYPE_BUILT_IN); 72ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko if (mChannelCountOnPreference == 0) { 736ebde20b03db4c0d57f67acaac11832b610b966bNick Chalko switch (tunerType) { 746ebde20b03db4c0d57f67acaac11832b610b966bNick Chalko case TunerHal.TUNER_TYPE_USB: 756ebde20b03db4c0d57f67acaac11832b610b966bNick Chalko title = getString(R.string.ut_setup_new_title); 766ebde20b03db4c0d57f67acaac11832b610b966bNick Chalko description = getString(R.string.ut_setup_new_description); 776ebde20b03db4c0d57f67acaac11832b610b966bNick Chalko break; 786ebde20b03db4c0d57f67acaac11832b610b966bNick Chalko case TunerHal.TUNER_TYPE_NETWORK: 796ebde20b03db4c0d57f67acaac11832b610b966bNick Chalko title = getString(R.string.nt_setup_new_title); 806ebde20b03db4c0d57f67acaac11832b610b966bNick Chalko description = getString(R.string.nt_setup_new_description); 816ebde20b03db4c0d57f67acaac11832b610b966bNick Chalko break; 826ebde20b03db4c0d57f67acaac11832b610b966bNick Chalko default: 836ebde20b03db4c0d57f67acaac11832b610b966bNick Chalko title = getString(R.string.bt_setup_new_title); 846ebde20b03db4c0d57f67acaac11832b610b966bNick Chalko description = getString(R.string.bt_setup_new_description); 8565fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko } 86ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko } else { 8765fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko title = getString(R.string.bt_setup_again_title); 886ebde20b03db4c0d57f67acaac11832b610b966bNick Chalko switch (tunerType) { 896ebde20b03db4c0d57f67acaac11832b610b966bNick Chalko case TunerHal.TUNER_TYPE_USB: 906ebde20b03db4c0d57f67acaac11832b610b966bNick Chalko description = getString(R.string.ut_setup_again_description); 916ebde20b03db4c0d57f67acaac11832b610b966bNick Chalko break; 926ebde20b03db4c0d57f67acaac11832b610b966bNick Chalko case TunerHal.TUNER_TYPE_NETWORK: 936ebde20b03db4c0d57f67acaac11832b610b966bNick Chalko description = getString(R.string.nt_setup_again_description); 946ebde20b03db4c0d57f67acaac11832b610b966bNick Chalko break; 956ebde20b03db4c0d57f67acaac11832b610b966bNick Chalko default: 966ebde20b03db4c0d57f67acaac11832b610b966bNick Chalko description = getString(R.string.bt_setup_again_description); 9765fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko } 98ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko } 99ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko return new Guidance(title, description, null, null); 100ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko } 101ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko 102ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko @Override 103ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko public void onCreateActions(@NonNull List<GuidedAction> actions, 104ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko Bundle savedInstanceState) { 105ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko String[] choices = getResources().getStringArray(mChannelCountOnPreference == 0 106ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko ? R.array.ut_setup_new_choices : R.array.ut_setup_again_choices); 107ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko for (int i = 0; i < choices.length - 1; ++i) { 108ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko actions.add(new GuidedAction.Builder(getActivity()).id(i).title(choices[i]) 109ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko .build()); 110ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko } 111ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko actions.add(new GuidedAction.Builder(getActivity()).id(ACTION_DONE) 112ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko .title(choices[choices.length - 1]).build()); 113ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko } 114ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko 115ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko @Override 116ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko protected String getActionCategory() { 117ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko return ACTION_CATEGORY; 118ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko } 119ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko } 120ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko} 121