1 /*
2  * Copyright (C) 2015 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.android.tv.tuner.setup;
18 
19 import android.os.Bundle;
20 import android.support.annotation.NonNull;
21 import android.support.annotation.Nullable;
22 import androidx.leanback.widget.GuidanceStylist.Guidance;
23 import androidx.leanback.widget.GuidedAction;
24 import com.android.tv.common.ui.setup.SetupGuidedStepFragment;
25 import com.android.tv.common.ui.setup.SetupMultiPaneFragment;
26 import com.android.tv.tuner.R;
27 import com.android.tv.tuner.api.Tuner;
28 import com.android.tv.tuner.prefs.TunerPreferences;
29 import java.util.List;
30 
31 /** A fragment for initial screen. */
32 public class WelcomeFragment extends SetupMultiPaneFragment {
33     public static final String ACTION_CATEGORY = "com.android.tv.tuner.setup.WelcomeFragment";
34 
35     @Override
onCreateContentFragment()36     protected SetupGuidedStepFragment onCreateContentFragment() {
37         ContentFragment fragment = new ContentFragment();
38         fragment.setArguments(getArguments());
39         return fragment;
40     }
41 
42     @Override
getActionCategory()43     protected String getActionCategory() {
44         return ACTION_CATEGORY;
45     }
46 
47     @Override
needsDoneButton()48     protected boolean needsDoneButton() {
49         return false;
50     }
51 
52     /** The content fragment of {@link WelcomeFragment}. */
53     public static class ContentFragment extends SetupGuidedStepFragment {
54         private int mChannelCountOnPreference;
55 
56         @Override
onCreate(@ullable Bundle savedInstanceState)57         public void onCreate(@Nullable Bundle savedInstanceState) {
58             mChannelCountOnPreference =
59                     TunerPreferences.getScannedChannelCount(getActivity().getApplicationContext());
60             super.onCreate(savedInstanceState);
61         }
62 
63         @NonNull
64         @Override
onCreateGuidance(Bundle savedInstanceState)65         public Guidance onCreateGuidance(Bundle savedInstanceState) {
66             String title;
67             String description;
68             int tunerType =
69                     getArguments()
70                             .getInt(
71                                     BaseTunerSetupActivity.KEY_TUNER_TYPE,
72                                     Tuner.TUNER_TYPE_BUILT_IN);
73             if (mChannelCountOnPreference == 0) {
74                 switch (tunerType) {
75                     case Tuner.TUNER_TYPE_USB:
76                         title = getString(R.string.ut_setup_new_title);
77                         description = getString(R.string.ut_setup_new_description);
78                         break;
79                     case Tuner.TUNER_TYPE_NETWORK:
80                         title = getString(R.string.nt_setup_new_title);
81                         description = getString(R.string.nt_setup_new_description);
82                         break;
83                     default:
84                         title = getString(R.string.bt_setup_new_title);
85                         description = getString(R.string.bt_setup_new_description);
86                 }
87             } else {
88                 title = getString(R.string.bt_setup_again_title);
89                 switch (tunerType) {
90                     case Tuner.TUNER_TYPE_USB:
91                         description = getString(R.string.ut_setup_again_description);
92                         break;
93                     case Tuner.TUNER_TYPE_NETWORK:
94                         description = getString(R.string.nt_setup_again_description);
95                         break;
96                     default:
97                         description = getString(R.string.bt_setup_again_description);
98                 }
99             }
100             return new Guidance(title, description, null, null);
101         }
102 
103         @Override
onCreateActions( @onNull List<GuidedAction> actions, Bundle savedInstanceState)104         public void onCreateActions(
105                 @NonNull List<GuidedAction> actions, Bundle savedInstanceState) {
106             String[] choices =
107                     getResources()
108                             .getStringArray(
109                                     mChannelCountOnPreference == 0
110                                             ? R.array.ut_setup_new_choices
111                                             : R.array.ut_setup_again_choices);
112             for (int i = 0; i < choices.length - 1; ++i) {
113                 actions.add(
114                         new GuidedAction.Builder(getActivity()).id(i).title(choices[i]).build());
115             }
116             actions.add(
117                     new GuidedAction.Builder(getActivity())
118                             .id(ACTION_DONE)
119                             .title(choices[choices.length - 1])
120                             .build());
121         }
122 
123         @Override
getActionCategory()124         protected String getActionCategory() {
125             return ACTION_CATEGORY;
126         }
127     }
128 }
129