WizardExample2ndStepFragment.java revision 22f51aab96c6bb84d0ad3d5aa81afd0ca9d9002f
131475959eb09fd873551909dd21d00304b6a4ee9Robert Hahn/*
231475959eb09fd873551909dd21d00304b6a4ee9Robert Hahn * Copyright (C) 2015 The Android Open Source Project
331475959eb09fd873551909dd21d00304b6a4ee9Robert Hahn *
431475959eb09fd873551909dd21d00304b6a4ee9Robert Hahn * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
531475959eb09fd873551909dd21d00304b6a4ee9Robert Hahn * in compliance with the License. You may obtain a copy of the License at
631475959eb09fd873551909dd21d00304b6a4ee9Robert Hahn *
731475959eb09fd873551909dd21d00304b6a4ee9Robert Hahn * http://www.apache.org/licenses/LICENSE-2.0
831475959eb09fd873551909dd21d00304b6a4ee9Robert Hahn *
931475959eb09fd873551909dd21d00304b6a4ee9Robert Hahn * Unless required by applicable law or agreed to in writing, software distributed under the License
1031475959eb09fd873551909dd21d00304b6a4ee9Robert Hahn * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
1131475959eb09fd873551909dd21d00304b6a4ee9Robert Hahn * or implied. See the License for the specific language governing permissions and limitations under
1231475959eb09fd873551909dd21d00304b6a4ee9Robert Hahn * the License.
1331475959eb09fd873551909dd21d00304b6a4ee9Robert Hahn */
1431475959eb09fd873551909dd21d00304b6a4ee9Robert Hahn
15ad31f63f5843898de645f6ee1ac244c872ded8ccRobert Hahnpackage android.support.v17.leanback.supportleanbackshowcase.app.wizard;
1686163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn
1786163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahnimport android.graphics.Color;
1886163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahnimport android.graphics.drawable.Drawable;
1986163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahnimport android.os.Bundle;
2086163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahnimport android.support.annotation.NonNull;
2186163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahnimport android.support.v17.leanback.app.GuidedStepFragment;
22ad31f63f5843898de645f6ee1ac244c872ded8ccRobert Hahnimport android.support.v17.leanback.supportleanbackshowcase.R;
2386163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahnimport android.support.v17.leanback.widget.GuidanceStylist;
2486163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahnimport android.support.v17.leanback.widget.GuidedAction;
2586163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahnimport android.support.v17.leanback.widget.GuidedActionsStylist;
2686163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahnimport android.widget.Toast;
2786163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn
2886163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahnimport java.util.List;
2986163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn
3086163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn/**
31ce0ee60535b13af96b3d7e8d6d8b47d42cb8e171Robert Hahn * Displays the second screen of the rental wizard which requires the user to confirm his purchase.
3286163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn */
3386163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahnpublic class WizardExample2ndStepFragment extends WizardExampleBaseStepFragment {
3486163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn
35ce0ee60535b13af96b3d7e8d6d8b47d42cb8e171Robert Hahn    private static final String ARG_HD = "hd";
3686163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn    private static final int ACTION_ID_CONFIRM = 1;
3786163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn    private static final int ACTION_ID_PAYMENT_METHOD = ACTION_ID_CONFIRM + 1;
3886163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn
39ce0ee60535b13af96b3d7e8d6d8b47d42cb8e171Robert Hahn    public static GuidedStepFragment build(boolean hd, WizardExampleBaseStepFragment previousFragment) {
40ce0ee60535b13af96b3d7e8d6d8b47d42cb8e171Robert Hahn        GuidedStepFragment fragment = new WizardExample2ndStepFragment();
41ce0ee60535b13af96b3d7e8d6d8b47d42cb8e171Robert Hahn        // Reuse the same arguments this fragment was given.
42ce0ee60535b13af96b3d7e8d6d8b47d42cb8e171Robert Hahn        Bundle args = previousFragment.getArguments();
43ce0ee60535b13af96b3d7e8d6d8b47d42cb8e171Robert Hahn        args.putBoolean(ARG_HD, hd);
44ce0ee60535b13af96b3d7e8d6d8b47d42cb8e171Robert Hahn        fragment.setArguments(args);
45ce0ee60535b13af96b3d7e8d6d8b47d42cb8e171Robert Hahn        return fragment;
46ce0ee60535b13af96b3d7e8d6d8b47d42cb8e171Robert Hahn    }
47ce0ee60535b13af96b3d7e8d6d8b47d42cb8e171Robert Hahn
4886163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn    @Override
4986163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn    public void onCreate(Bundle savedInstanceState) {
5086163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn        super.onCreate(savedInstanceState);
5186163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn        getWizardActivity().setStep(2);
5286163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn    }
5386163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn
5486163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn    @NonNull
5586163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn    @Override
5686163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn    public GuidanceStylist.Guidance onCreateGuidance(Bundle savedInstanceState) {
5786163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn        GuidanceStylist.Guidance guidance = new GuidanceStylist.Guidance(mMovie.getTitle(),
5886163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn                getString(R.string.wizard_example_rental_period),
5986163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn                mMovie.getBreadcrump(), null);
6086163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn        return guidance;
6122f51aab96c6bb84d0ad3d5aa81afd0ca9d9002fRobert Hahn
6286163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn    }
6386163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn
6486163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn    @Override
6586163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn    public void onCreateActions(@NonNull List<GuidedAction> actions, Bundle savedInstanceState) {
66ce0ee60535b13af96b3d7e8d6d8b47d42cb8e171Robert Hahn        boolean rentHighDefinition = getArguments().getBoolean(ARG_HD);
6786163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn
6886163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn        GuidedAction action = new GuidedAction.Builder()
6986163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn                .id(ACTION_ID_CONFIRM)
7086163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn                .title(getString(R.string.wizard_example_rent))
7186163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn                .description(rentHighDefinition ? mMovie.getPriceHd() : mMovie.getPriceSd())
7222f51aab96c6bb84d0ad3d5aa81afd0ca9d9002fRobert Hahn                .editable(false)
7386163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn                .build();
7486163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn        actions.add(action);
7586163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn        action = new GuidedAction.Builder()
7686163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn                .id(ACTION_ID_PAYMENT_METHOD)
7786163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn                .title(getString(R.string.wizard_example_payment_method))
78ce0ee60535b13af96b3d7e8d6d8b47d42cb8e171Robert Hahn                .description(getString(R.string.wizard_example_visa_balance))
7922f51aab96c6bb84d0ad3d5aa81afd0ca9d9002fRobert Hahn                .editable(false)
8086163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn                .build();
8186163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn        actions.add(action);
8286163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn    }
8386163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn
8486163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn    @Override
8586163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn    public void onGuidedActionClicked(GuidedAction action) {
8686163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn        if (ACTION_ID_PAYMENT_METHOD == action.getId()) {
8786163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn            Toast.makeText(getActivity(),
8886163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn                    getString(R.string.wizard_example_toast_payment_method_clicked),
8986163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn                    Toast.LENGTH_SHORT).show();
9086163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn        } else {
9186163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn            GuidedStepFragment fragment = new WizardExample3rdStepFragment();
9286163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn            fragment.setArguments(getArguments());
9386163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn            add(getFragmentManager(), fragment);
9486163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn        }
9586163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn    }
9686163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn}
97