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