PaymentSettings.java revision 2fe90293a16352c119acd6014ad0b9583896cd5e
126515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen/*
226515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen * Copyright (C) 2013 The Android Open Source Project
326515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen *
426515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen * Licensed under the Apache License, Version 2.0 (the "License");
526515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen * you may not use this file except in compliance with the License.
626515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen * You may obtain a copy of the License at
726515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen *
826515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen *      http://www.apache.org/licenses/LICENSE-2.0
926515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen *
1026515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen * Unless required by applicable law or agreed to in writing, software
1126515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen * distributed under the License is distributed on an "AS IS" BASIS,
1226515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1326515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen * See the License for the specific language governing permissions and
1426515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen * limitations under the License.
1526515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen */
1626515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen
1726515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenenpackage com.android.settings.nfc;
1826515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen
19cbcc76e8d32f95690d08258a91d58136cd9fb056Martijn Coenenimport android.content.Intent;
2026515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenenimport android.os.Bundle;
2139b467482d1bf256a111c757e9b7621c6f523271Jason Monkimport android.support.v7.preference.PreferenceManager;
2239b467482d1bf256a111c757e9b7621c6f523271Jason Monkimport android.support.v7.preference.PreferenceScreen;
230e940d6c00d06578c4c0f89a95e5d31c8073fbc1Martijn Coenenimport android.view.Menu;
240e940d6c00d06578c4c0f89a95e5d31c8073fbc1Martijn Coenenimport android.view.MenuInflater;
250e940d6c00d06578c4c0f89a95e5d31c8073fbc1Martijn Coenenimport android.view.MenuItem;
2626515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenenimport android.view.View;
27da6c0ba382c1c2c9b98f11a1ef9e572472654e27Martijn Coenenimport android.view.ViewGroup;
288a963babe2e36b7a41f77b8d2598c97658196e58Chris Wrenimport com.android.internal.logging.MetricsLogger;
2926515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenenimport com.android.settings.R;
3026515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenenimport com.android.settings.SettingsPreferenceFragment;
3126515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen
3226515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenenimport java.util.List;
3326515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen
34fe58b534f6a1bf63dadb18dae13c59ed8a014eecMartijn Coenenpublic class PaymentSettings extends SettingsPreferenceFragment {
3526515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen    public static final String TAG = "PaymentSettings";
3626515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen    private PaymentBackend mPaymentBackend;
37da6c0ba382c1c2c9b98f11a1ef9e572472654e27Martijn Coenen
3826515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen    @Override
398a963babe2e36b7a41f77b8d2598c97658196e58Chris Wren    protected int getMetricsCategory() {
408a963babe2e36b7a41f77b8d2598c97658196e58Chris Wren        return MetricsLogger.NFC_PAYMENT;
418a963babe2e36b7a41f77b8d2598c97658196e58Chris Wren    }
428a963babe2e36b7a41f77b8d2598c97658196e58Chris Wren
438a963babe2e36b7a41f77b8d2598c97658196e58Chris Wren    @Override
4426515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen    public void onCreate(Bundle icicle) {
4526515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen        super.onCreate(icicle);
4626515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen
4726515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen        mPaymentBackend = new PaymentBackend(getActivity());
480e940d6c00d06578c4c0f89a95e5d31c8073fbc1Martijn Coenen        setHasOptionsMenu(true);
49fe58b534f6a1bf63dadb18dae13c59ed8a014eecMartijn Coenen
5026515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen        PreferenceManager manager = getPreferenceManager();
5126515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen        PreferenceScreen screen = manager.createPreferenceScreen(getActivity());
5200dbb74b8d699510ece683fc7ab12fc2343fa5d5Martijn Coenen
532fe90293a16352c119acd6014ad0b9583896cd5eJason Monk        List<PaymentBackend.PaymentAppInfo> appInfos = mPaymentBackend.getPaymentAppInfos();
5426515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen        if (appInfos != null && appInfos.size() > 0) {
55fe58b534f6a1bf63dadb18dae13c59ed8a014eecMartijn Coenen            NfcPaymentPreference preference =
5639b467482d1bf256a111c757e9b7621c6f523271Jason Monk                    new NfcPaymentPreference(getPrefContext(), mPaymentBackend);
5739b467482d1bf256a111c757e9b7621c6f523271Jason Monk            preference.setKey("payment");
58fe58b534f6a1bf63dadb18dae13c59ed8a014eecMartijn Coenen            screen.addPreference(preference);
5939b467482d1bf256a111c757e9b7621c6f523271Jason Monk            NfcForegroundPreference foreground = new NfcForegroundPreference(getPrefContext(),
60fe58b534f6a1bf63dadb18dae13c59ed8a014eecMartijn Coenen                    mPaymentBackend);
6100dbb74b8d699510ece683fc7ab12fc2343fa5d5Martijn Coenen            screen.addPreference(foreground);
62da6c0ba382c1c2c9b98f11a1ef9e572472654e27Martijn Coenen        }
630e940d6c00d06578c4c0f89a95e5d31c8073fbc1Martijn Coenen        setPreferenceScreen(screen);
64da6c0ba382c1c2c9b98f11a1ef9e572472654e27Martijn Coenen    }
65da6c0ba382c1c2c9b98f11a1ef9e572472654e27Martijn Coenen
66da6c0ba382c1c2c9b98f11a1ef9e572472654e27Martijn Coenen    @Override
672fe90293a16352c119acd6014ad0b9583896cd5eJason Monk    public void onViewCreated(View view, Bundle savedInstanceState) {
682fe90293a16352c119acd6014ad0b9583896cd5eJason Monk        super.onViewCreated(view, savedInstanceState);
692fe90293a16352c119acd6014ad0b9583896cd5eJason Monk        ViewGroup contentRoot = (ViewGroup) getListView().getParent();
702fe90293a16352c119acd6014ad0b9583896cd5eJason Monk        View emptyView = getActivity().getLayoutInflater().inflate(
712fe90293a16352c119acd6014ad0b9583896cd5eJason Monk                R.layout.nfc_payment_empty, contentRoot, false);
722fe90293a16352c119acd6014ad0b9583896cd5eJason Monk        contentRoot.addView(emptyView);
732fe90293a16352c119acd6014ad0b9583896cd5eJason Monk        setEmptyView(emptyView);
742fe90293a16352c119acd6014ad0b9583896cd5eJason Monk    }
752fe90293a16352c119acd6014ad0b9583896cd5eJason Monk
762fe90293a16352c119acd6014ad0b9583896cd5eJason Monk    @Override
7726515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen    public void onResume() {
7826515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen        super.onResume();
79fe58b534f6a1bf63dadb18dae13c59ed8a014eecMartijn Coenen        mPaymentBackend.onResume();
8026515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen    }
8126515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen
820e940d6c00d06578c4c0f89a95e5d31c8073fbc1Martijn Coenen    @Override
830e940d6c00d06578c4c0f89a95e5d31c8073fbc1Martijn Coenen    public void onPause() {
840e940d6c00d06578c4c0f89a95e5d31c8073fbc1Martijn Coenen        super.onPause();
85fe58b534f6a1bf63dadb18dae13c59ed8a014eecMartijn Coenen        mPaymentBackend.onPause();
860e940d6c00d06578c4c0f89a95e5d31c8073fbc1Martijn Coenen    }
870e940d6c00d06578c4c0f89a95e5d31c8073fbc1Martijn Coenen
880e940d6c00d06578c4c0f89a95e5d31c8073fbc1Martijn Coenen    @Override
890e940d6c00d06578c4c0f89a95e5d31c8073fbc1Martijn Coenen    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
900e940d6c00d06578c4c0f89a95e5d31c8073fbc1Martijn Coenen        super.onCreateOptionsMenu(menu, inflater);
91fe58b534f6a1bf63dadb18dae13c59ed8a014eecMartijn Coenen        MenuItem menuItem = menu.add(R.string.nfc_payment_how_it_works);
92cbcc76e8d32f95690d08258a91d58136cd9fb056Martijn Coenen        Intent howItWorksIntent = new Intent(getActivity(), HowItWorks.class);
93cbcc76e8d32f95690d08258a91d58136cd9fb056Martijn Coenen        menuItem.setIntent(howItWorksIntent);
94cbcc76e8d32f95690d08258a91d58136cd9fb056Martijn Coenen        menuItem.setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_NEVER);
9526515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen    }
96b412e18296cf3958585efdaec15c8b9d28bd2c50Martijn Coenen}
97