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.usbtuner.setup; 18 19 import android.content.Context; 20 import android.content.res.Resources; 21 import android.os.Bundle; 22 import android.support.annotation.NonNull; 23 import android.support.v17.leanback.widget.GuidanceStylist.Guidance; 24 import android.support.v17.leanback.widget.GuidedAction; 25 import android.view.LayoutInflater; 26 import android.view.View; 27 import android.view.ViewGroup; 28 29 import com.android.tv.common.ui.setup.SetupGuidedStepFragment; 30 import com.android.tv.common.ui.setup.SetupMultiPaneFragment; 31 import com.android.usbtuner.R; 32 import com.android.usbtuner.UsbTunerPreferences; 33 34 import java.util.List; 35 36 /** 37 * A fragment for initial screen. 38 */ 39 public class ScanResultFragment extends SetupMultiPaneFragment { 40 public static final String ACTION_CATEGORY = 41 "com.android.usbtuner.setup.ScanResultFragment"; 42 43 /** 44 * An action which moves to previous page when the user presses BACK button. 45 * In some cases, more than one page can be popped out. 46 */ 47 public static final int ACTION_BACK_TO_CONNECTION_TYPE = ACTION_DONE - 1; 48 49 @Override onCreateContentFragment()50 protected SetupGuidedStepFragment onCreateContentFragment() { 51 return new ContentFragment(); 52 } 53 54 @Override getActionCategory()55 protected String getActionCategory() { 56 return ACTION_CATEGORY; 57 } 58 59 @Override needsDoneButton()60 protected boolean needsDoneButton() { 61 return false; 62 } 63 64 public static class ContentFragment extends SetupGuidedStepFragment { 65 private int mChannelCountOnPreference; 66 67 @Override onAttach(Context context)68 public void onAttach(Context context) { 69 super.onAttach(context); 70 mChannelCountOnPreference = UsbTunerPreferences.getScannedChannelCount(context); 71 } 72 73 @NonNull 74 @Override onCreateGuidance(Bundle savedInstanceState)75 public Guidance onCreateGuidance(Bundle savedInstanceState) { 76 String title; 77 String description; 78 String breadcrumb; 79 if (mChannelCountOnPreference > 0) { 80 Resources res = getResources(); 81 title = res.getQuantityString(R.plurals.ut_result_found_title, 82 mChannelCountOnPreference, mChannelCountOnPreference); 83 description = res.getQuantityString(R.plurals.ut_result_found_description, 84 mChannelCountOnPreference, mChannelCountOnPreference); 85 breadcrumb = null; 86 } else { 87 title = getString(R.string.ut_result_not_found_title); 88 description = getString(R.string.ut_result_not_found_description); 89 breadcrumb = getString(R.string.ut_setup_breadcrumb); 90 } 91 return new Guidance(title, description, breadcrumb, null); 92 } 93 94 @Override onCreateActions(@onNull List<GuidedAction> actions, Bundle savedInstanceState)95 public void onCreateActions(@NonNull List<GuidedAction> actions, 96 Bundle savedInstanceState) { 97 String[] choices; 98 int doneActionIndex; 99 if (mChannelCountOnPreference > 0) { 100 choices = getResources().getStringArray(R.array.ut_result_found_choices); 101 doneActionIndex = 0; 102 } else { 103 choices = getResources().getStringArray(R.array.ut_result_not_found_choices); 104 doneActionIndex = 1; 105 } 106 for (int i = 0; i < choices.length; ++i) { 107 if (i == doneActionIndex) { 108 actions.add(new GuidedAction.Builder(getActivity()).id(ACTION_DONE) 109 .title(choices[i]).build()); 110 } else { 111 actions.add(new GuidedAction.Builder(getActivity()).id(i).title(choices[i]) 112 .build()); 113 } 114 } 115 } 116 117 @Override getActionCategory()118 protected String getActionCategory() { 119 return ACTION_CATEGORY; 120 } 121 } 122 } 123