PaymentSettings.java revision 39b467482d1bf256a111c757e9b7621c6f523271
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;
2839b467482d1bf256a111c757e9b7621c6f523271Jason Monk
298a963babe2e36b7a41f77b8d2598c97658196e58Chris Wrenimport com.android.internal.logging.MetricsLogger;
3026515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenenimport com.android.settings.R;
3126515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenenimport com.android.settings.SettingsPreferenceFragment;
3226515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenenimport com.android.settings.nfc.PaymentBackend.PaymentAppInfo;
3326515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen
3426515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenenimport java.util.List;
3526515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen
36fe58b534f6a1bf63dadb18dae13c59ed8a014eecMartijn Coenenpublic class PaymentSettings extends SettingsPreferenceFragment {
3726515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen    public static final String TAG = "PaymentSettings";
3826515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen    private PaymentBackend mPaymentBackend;
39da6c0ba382c1c2c9b98f11a1ef9e572472654e27Martijn Coenen
4026515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen    @Override
418a963babe2e36b7a41f77b8d2598c97658196e58Chris Wren    protected int getMetricsCategory() {
428a963babe2e36b7a41f77b8d2598c97658196e58Chris Wren        return MetricsLogger.NFC_PAYMENT;
438a963babe2e36b7a41f77b8d2598c97658196e58Chris Wren    }
448a963babe2e36b7a41f77b8d2598c97658196e58Chris Wren
458a963babe2e36b7a41f77b8d2598c97658196e58Chris Wren    @Override
4626515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen    public void onCreate(Bundle icicle) {
4726515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen        super.onCreate(icicle);
4826515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen
4926515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen        mPaymentBackend = new PaymentBackend(getActivity());
500e940d6c00d06578c4c0f89a95e5d31c8073fbc1Martijn Coenen        setHasOptionsMenu(true);
5126515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen    }
5226515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen
53fe58b534f6a1bf63dadb18dae13c59ed8a014eecMartijn Coenen    @Override
54fe58b534f6a1bf63dadb18dae13c59ed8a014eecMartijn Coenen    public void onViewCreated(View view, Bundle savedInstanceState) {
55fe58b534f6a1bf63dadb18dae13c59ed8a014eecMartijn Coenen        super.onViewCreated(view, savedInstanceState);
56fe58b534f6a1bf63dadb18dae13c59ed8a014eecMartijn Coenen        ViewGroup contentRoot = (ViewGroup) getListView().getParent();
57fe58b534f6a1bf63dadb18dae13c59ed8a014eecMartijn Coenen        View emptyView = getActivity().getLayoutInflater().inflate(
58fe58b534f6a1bf63dadb18dae13c59ed8a014eecMartijn Coenen                R.layout.nfc_payment_empty, contentRoot, false);
59fe58b534f6a1bf63dadb18dae13c59ed8a014eecMartijn Coenen        contentRoot.addView(emptyView);
6039b467482d1bf256a111c757e9b7621c6f523271Jason Monk        setEmptyView(emptyView);
61fe58b534f6a1bf63dadb18dae13c59ed8a014eecMartijn Coenen
6226515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen        PreferenceManager manager = getPreferenceManager();
6326515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen        PreferenceScreen screen = manager.createPreferenceScreen(getActivity());
6400dbb74b8d699510ece683fc7ab12fc2343fa5d5Martijn Coenen
6526515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen        List<PaymentAppInfo> appInfos = mPaymentBackend.getPaymentAppInfos();
6626515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen        if (appInfos != null && appInfos.size() > 0) {
67fe58b534f6a1bf63dadb18dae13c59ed8a014eecMartijn Coenen            NfcPaymentPreference preference =
6839b467482d1bf256a111c757e9b7621c6f523271Jason Monk                    new NfcPaymentPreference(getPrefContext(), mPaymentBackend);
6939b467482d1bf256a111c757e9b7621c6f523271Jason Monk            preference.setKey("payment");
70fe58b534f6a1bf63dadb18dae13c59ed8a014eecMartijn Coenen            screen.addPreference(preference);
7139b467482d1bf256a111c757e9b7621c6f523271Jason Monk            NfcForegroundPreference foreground = new NfcForegroundPreference(getPrefContext(),
72fe58b534f6a1bf63dadb18dae13c59ed8a014eecMartijn Coenen                    mPaymentBackend);
7300dbb74b8d699510ece683fc7ab12fc2343fa5d5Martijn Coenen            screen.addPreference(foreground);
74da6c0ba382c1c2c9b98f11a1ef9e572472654e27Martijn Coenen        }
750e940d6c00d06578c4c0f89a95e5d31c8073fbc1Martijn Coenen        setPreferenceScreen(screen);
76da6c0ba382c1c2c9b98f11a1ef9e572472654e27Martijn Coenen    }
77da6c0ba382c1c2c9b98f11a1ef9e572472654e27Martijn Coenen
78da6c0ba382c1c2c9b98f11a1ef9e572472654e27Martijn Coenen    @Override
7926515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen    public void onResume() {
8026515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen        super.onResume();
81fe58b534f6a1bf63dadb18dae13c59ed8a014eecMartijn Coenen        mPaymentBackend.onResume();
8226515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen    }
8326515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen
840e940d6c00d06578c4c0f89a95e5d31c8073fbc1Martijn Coenen    @Override
850e940d6c00d06578c4c0f89a95e5d31c8073fbc1Martijn Coenen    public void onPause() {
860e940d6c00d06578c4c0f89a95e5d31c8073fbc1Martijn Coenen        super.onPause();
87fe58b534f6a1bf63dadb18dae13c59ed8a014eecMartijn Coenen        mPaymentBackend.onPause();
880e940d6c00d06578c4c0f89a95e5d31c8073fbc1Martijn Coenen    }
890e940d6c00d06578c4c0f89a95e5d31c8073fbc1Martijn Coenen
900e940d6c00d06578c4c0f89a95e5d31c8073fbc1Martijn Coenen    @Override
910e940d6c00d06578c4c0f89a95e5d31c8073fbc1Martijn Coenen    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
920e940d6c00d06578c4c0f89a95e5d31c8073fbc1Martijn Coenen        super.onCreateOptionsMenu(menu, inflater);
93fe58b534f6a1bf63dadb18dae13c59ed8a014eecMartijn Coenen        MenuItem menuItem = menu.add(R.string.nfc_payment_how_it_works);
94cbcc76e8d32f95690d08258a91d58136cd9fb056Martijn Coenen        Intent howItWorksIntent = new Intent(getActivity(), HowItWorks.class);
95cbcc76e8d32f95690d08258a91d58136cd9fb056Martijn Coenen        menuItem.setIntent(howItWorksIntent);
96cbcc76e8d32f95690d08258a91d58136cd9fb056Martijn Coenen        menuItem.setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_NEVER);
9726515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen    }
98b412e18296cf3958585efdaec15c8b9d28bd2c50Martijn Coenen}
99