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