165a5a7d84ad9b5324ae53eda526e39e513473af7Christopher Lane/* 2b172e3b4a955f81a37249b376f946ef2eeac074dTony Mantler * Copyright (C) 2015 The Android Open Source Project 365a5a7d84ad9b5324ae53eda526e39e513473af7Christopher Lane * 465a5a7d84ad9b5324ae53eda526e39e513473af7Christopher Lane * Licensed under the Apache License, Version 2.0 (the "License"); 565a5a7d84ad9b5324ae53eda526e39e513473af7Christopher Lane * you may not use this file except in compliance with the License. 665a5a7d84ad9b5324ae53eda526e39e513473af7Christopher Lane * You may obtain a copy of the License at 765a5a7d84ad9b5324ae53eda526e39e513473af7Christopher Lane * 865a5a7d84ad9b5324ae53eda526e39e513473af7Christopher Lane * http://www.apache.org/licenses/LICENSE-2.0 965a5a7d84ad9b5324ae53eda526e39e513473af7Christopher Lane * 1065a5a7d84ad9b5324ae53eda526e39e513473af7Christopher Lane * Unless required by applicable law or agreed to in writing, software 1165a5a7d84ad9b5324ae53eda526e39e513473af7Christopher Lane * distributed under the License is distributed on an "AS IS" BASIS, 1265a5a7d84ad9b5324ae53eda526e39e513473af7Christopher Lane * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1365a5a7d84ad9b5324ae53eda526e39e513473af7Christopher Lane * See the License for the specific language governing permissions and 14b172e3b4a955f81a37249b376f946ef2eeac074dTony Mantler * limitations under the License 1565a5a7d84ad9b5324ae53eda526e39e513473af7Christopher Lane */ 1665a5a7d84ad9b5324ae53eda526e39e513473af7Christopher Lane 1765a5a7d84ad9b5324ae53eda526e39e513473af7Christopher Lanepackage com.android.tv.settings.name; 1865a5a7d84ad9b5324ae53eda526e39e513473af7Christopher Lane 19846b83807749cd73aa1b75749e8d072e8f58860dDake Guimport android.content.Context; 20b172e3b4a955f81a37249b376f946ef2eeac074dTony Mantlerimport android.os.Build; 2165a5a7d84ad9b5324ae53eda526e39e513473af7Christopher Laneimport android.os.Bundle; 22b172e3b4a955f81a37249b376f946ef2eeac074dTony Mantlerimport android.support.annotation.NonNull; 23b172e3b4a955f81a37249b376f946ef2eeac074dTony Mantlerimport android.support.v17.leanback.app.GuidedStepFragment; 24b172e3b4a955f81a37249b376f946ef2eeac074dTony Mantlerimport android.support.v17.leanback.widget.GuidanceStylist; 25b172e3b4a955f81a37249b376f946ef2eeac074dTony Mantlerimport android.support.v17.leanback.widget.GuidedAction; 26b4785a2a647d8be3c090a950fb909552ec3578caZhizhi Liuimport android.support.v17.leanback.widget.GuidedActionsStylist; 27b4785a2a647d8be3c090a950fb909552ec3578caZhizhi Liuimport android.view.LayoutInflater; 28b4785a2a647d8be3c090a950fb909552ec3578caZhizhi Liuimport android.view.View; 29b4785a2a647d8be3c090a950fb909552ec3578caZhizhi Liuimport android.view.ViewGroup; 3065a5a7d84ad9b5324ae53eda526e39e513473af7Christopher Lane 31b172e3b4a955f81a37249b376f946ef2eeac074dTony Mantlerimport com.android.tv.settings.R; 32b4785a2a647d8be3c090a950fb909552ec3578caZhizhi Liuimport com.android.tv.settings.util.GuidedActionsAlignUtil; 3365a5a7d84ad9b5324ae53eda526e39e513473af7Christopher Lane 34b172e3b4a955f81a37249b376f946ef2eeac074dTony Mantlerimport java.util.List; 3565a5a7d84ad9b5324ae53eda526e39e513473af7Christopher Lane 36b4785a2a647d8be3c090a950fb909552ec3578caZhizhi Liu/** 37b4785a2a647d8be3c090a950fb909552ec3578caZhizhi Liu * Fragment responsible for showing the device name summary. 38b4785a2a647d8be3c090a950fb909552ec3578caZhizhi Liu */ 39b172e3b4a955f81a37249b376f946ef2eeac074dTony Mantlerpublic class DeviceNameSummaryFragment extends GuidedStepFragment { 4065a5a7d84ad9b5324ae53eda526e39e513473af7Christopher Lane 41b172e3b4a955f81a37249b376f946ef2eeac074dTony Mantler public static DeviceNameSummaryFragment newInstance() { 42b172e3b4a955f81a37249b376f946ef2eeac074dTony Mantler return new DeviceNameSummaryFragment(); 4365a5a7d84ad9b5324ae53eda526e39e513473af7Christopher Lane } 4465a5a7d84ad9b5324ae53eda526e39e513473af7Christopher Lane 45b4785a2a647d8be3c090a950fb909552ec3578caZhizhi Liu @Override 46b4785a2a647d8be3c090a950fb909552ec3578caZhizhi Liu public GuidanceStylist onCreateGuidanceStylist() { 47b4785a2a647d8be3c090a950fb909552ec3578caZhizhi Liu return GuidedActionsAlignUtil.createGuidanceStylist(); 48b4785a2a647d8be3c090a950fb909552ec3578caZhizhi Liu } 49b4785a2a647d8be3c090a950fb909552ec3578caZhizhi Liu 50b4785a2a647d8be3c090a950fb909552ec3578caZhizhi Liu @Override 51b4785a2a647d8be3c090a950fb909552ec3578caZhizhi Liu public GuidedActionsStylist onCreateActionsStylist() { 52b4785a2a647d8be3c090a950fb909552ec3578caZhizhi Liu return GuidedActionsAlignUtil.createGuidedActionsStylist(); 53b4785a2a647d8be3c090a950fb909552ec3578caZhizhi Liu } 54b4785a2a647d8be3c090a950fb909552ec3578caZhizhi Liu 55b4785a2a647d8be3c090a950fb909552ec3578caZhizhi Liu @Override 56b4785a2a647d8be3c090a950fb909552ec3578caZhizhi Liu public View onCreateView(LayoutInflater inflater, ViewGroup container, 57b4785a2a647d8be3c090a950fb909552ec3578caZhizhi Liu Bundle savedInstanceState) { 58b4785a2a647d8be3c090a950fb909552ec3578caZhizhi Liu View view = super.onCreateView(inflater, container, savedInstanceState); 59b4785a2a647d8be3c090a950fb909552ec3578caZhizhi Liu return GuidedActionsAlignUtil.createView(view, this); 60b4785a2a647d8be3c090a950fb909552ec3578caZhizhi Liu } 61b4785a2a647d8be3c090a950fb909552ec3578caZhizhi Liu 62b172e3b4a955f81a37249b376f946ef2eeac074dTony Mantler @NonNull 6365a5a7d84ad9b5324ae53eda526e39e513473af7Christopher Lane @Override 64b172e3b4a955f81a37249b376f946ef2eeac074dTony Mantler public GuidanceStylist.Guidance onCreateGuidance(Bundle savedInstanceState) { 65b172e3b4a955f81a37249b376f946ef2eeac074dTony Mantler return new GuidanceStylist.Guidance( 66b172e3b4a955f81a37249b376f946ef2eeac074dTony Mantler getString(R.string.device_rename_title, Build.MODEL), 67b172e3b4a955f81a37249b376f946ef2eeac074dTony Mantler getString(R.string.device_rename_description, Build.MODEL, 68b172e3b4a955f81a37249b376f946ef2eeac074dTony Mantler DeviceManager.getDeviceName(getActivity())), 69b172e3b4a955f81a37249b376f946ef2eeac074dTony Mantler null, 70b172e3b4a955f81a37249b376f946ef2eeac074dTony Mantler null); 7165a5a7d84ad9b5324ae53eda526e39e513473af7Christopher Lane } 7265a5a7d84ad9b5324ae53eda526e39e513473af7Christopher Lane 7365a5a7d84ad9b5324ae53eda526e39e513473af7Christopher Lane @Override 74b172e3b4a955f81a37249b376f946ef2eeac074dTony Mantler public void onCreateActions(@NonNull List<GuidedAction> actions, Bundle savedInstanceState) { 75846b83807749cd73aa1b75749e8d072e8f58860dDake Gu final Context context = getActivity(); 76846b83807749cd73aa1b75749e8d072e8f58860dDake Gu actions.add(new GuidedAction.Builder(context) 77846b83807749cd73aa1b75749e8d072e8f58860dDake Gu .id(GuidedAction.ACTION_ID_CONTINUE) 78846b83807749cd73aa1b75749e8d072e8f58860dDake Gu .title(R.string.change_setting) 79b172e3b4a955f81a37249b376f946ef2eeac074dTony Mantler .build()); 80846b83807749cd73aa1b75749e8d072e8f58860dDake Gu actions.add(new GuidedAction.Builder(context) 81846b83807749cd73aa1b75749e8d072e8f58860dDake Gu .id(GuidedAction.ACTION_ID_CANCEL) 82846b83807749cd73aa1b75749e8d072e8f58860dDake Gu .title(R.string.keep_settings) 83b172e3b4a955f81a37249b376f946ef2eeac074dTony Mantler .build()); 8465a5a7d84ad9b5324ae53eda526e39e513473af7Christopher Lane } 8565a5a7d84ad9b5324ae53eda526e39e513473af7Christopher Lane 8665a5a7d84ad9b5324ae53eda526e39e513473af7Christopher Lane @Override 87b172e3b4a955f81a37249b376f946ef2eeac074dTony Mantler public void onGuidedActionClicked(GuidedAction action) { 88b172e3b4a955f81a37249b376f946ef2eeac074dTony Mantler final long actionId = action.getId(); 89b172e3b4a955f81a37249b376f946ef2eeac074dTony Mantler if (actionId == GuidedAction.ACTION_ID_CONTINUE) { 90b172e3b4a955f81a37249b376f946ef2eeac074dTony Mantler GuidedStepFragment.add(getFragmentManager(), DeviceNameSetFragment.newInstance()); 91b172e3b4a955f81a37249b376f946ef2eeac074dTony Mantler } else if (actionId == GuidedAction.ACTION_ID_CANCEL) { 92b172e3b4a955f81a37249b376f946ef2eeac074dTony Mantler getActivity().finish(); 9365a5a7d84ad9b5324ae53eda526e39e513473af7Christopher Lane } else { 94b172e3b4a955f81a37249b376f946ef2eeac074dTony Mantler throw new IllegalStateException("Unknown action"); 9565a5a7d84ad9b5324ae53eda526e39e513473af7Christopher Lane } 9665a5a7d84ad9b5324ae53eda526e39e513473af7Christopher Lane } 9765a5a7d84ad9b5324ae53eda526e39e513473af7Christopher Lane} 98