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;
2126515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenenimport android.preference.PreferenceManager;
2226515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenenimport android.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 Coenenimport com.android.settings.nfc.PaymentBackend.PaymentAppInfo;
3226515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen
3326515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenenimport java.util.List;
3426515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen
35fe58b534f6a1bf63dadb18dae13c59ed8a014eecMartijn Coenenpublic class PaymentSettings extends SettingsPreferenceFragment {
3626515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen    public static final String TAG = "PaymentSettings";
3726515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen    private PaymentBackend mPaymentBackend;
38da6c0ba382c1c2c9b98f11a1ef9e572472654e27Martijn Coenen
3926515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen    @Override
408a963babe2e36b7a41f77b8d2598c97658196e58Chris Wren    protected int getMetricsCategory() {
418a963babe2e36b7a41f77b8d2598c97658196e58Chris Wren        return MetricsLogger.NFC_PAYMENT;
428a963babe2e36b7a41f77b8d2598c97658196e58Chris Wren    }
438a963babe2e36b7a41f77b8d2598c97658196e58Chris Wren
448a963babe2e36b7a41f77b8d2598c97658196e58Chris Wren    @Override
4526515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen    public void onCreate(Bundle icicle) {
4626515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen        super.onCreate(icicle);
4726515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen
4826515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen        mPaymentBackend = new PaymentBackend(getActivity());
490e940d6c00d06578c4c0f89a95e5d31c8073fbc1Martijn Coenen        setHasOptionsMenu(true);
5026515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen    }
5126515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen
52fe58b534f6a1bf63dadb18dae13c59ed8a014eecMartijn Coenen    @Override
53fe58b534f6a1bf63dadb18dae13c59ed8a014eecMartijn Coenen    public void onViewCreated(View view, Bundle savedInstanceState) {
54fe58b534f6a1bf63dadb18dae13c59ed8a014eecMartijn Coenen        super.onViewCreated(view, savedInstanceState);
55fe58b534f6a1bf63dadb18dae13c59ed8a014eecMartijn Coenen        ViewGroup contentRoot = (ViewGroup) getListView().getParent();
56fe58b534f6a1bf63dadb18dae13c59ed8a014eecMartijn Coenen        View emptyView = getActivity().getLayoutInflater().inflate(
57fe58b534f6a1bf63dadb18dae13c59ed8a014eecMartijn Coenen                R.layout.nfc_payment_empty, contentRoot, false);
58fe58b534f6a1bf63dadb18dae13c59ed8a014eecMartijn Coenen        contentRoot.addView(emptyView);
59fe58b534f6a1bf63dadb18dae13c59ed8a014eecMartijn Coenen        getListView().setEmptyView(emptyView);
60fe58b534f6a1bf63dadb18dae13c59ed8a014eecMartijn Coenen
6126515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen        PreferenceManager manager = getPreferenceManager();
6226515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen        PreferenceScreen screen = manager.createPreferenceScreen(getActivity());
6300dbb74b8d699510ece683fc7ab12fc2343fa5d5Martijn Coenen
6426515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen        List<PaymentAppInfo> appInfos = mPaymentBackend.getPaymentAppInfos();
6526515da08707b6f8182cc8b0ed5e01e97aa92a96Martijn Coenen        if (appInfos != null && appInfos.size() > 0) {
66fe58b534f6a1bf63dadb18dae13c59ed8a014eecMartijn Coenen            NfcPaymentPreference preference =
67fe58b534f6a1bf63dadb18dae13c59ed8a014eecMartijn Coenen                    new NfcPaymentPreference(getActivity(), mPaymentBackend);
68fe58b534f6a1bf63dadb18dae13c59ed8a014eecMartijn Coenen            screen.addPreference(preference);
69fe58b534f6a1bf63dadb18dae13c59ed8a014eecMartijn Coenen            NfcForegroundPreference foreground = new NfcForegroundPreference(getActivity(),
70fe58b534f6a1bf63dadb18dae13c59ed8a014eecMartijn Coenen                    mPaymentBackend);
7100dbb74b8d699510ece683fc7ab12fc2343fa5d5Martijn Coenen            screen.addPreference(foreground);
72da6c0ba382c1c2c9b98f11a1ef9e572472654e27Martijn Coenen        }
730e940d6c00d06578c4c0f89a95e5d31c8073fbc1Martijn Coenen        setPreferenceScreen(screen);
74da6c0ba382c1c2c9b98f11a1ef9e572472654e27Martijn Coenen    }
75da6c0ba382c1c2c9b98f11a1ef9e572472654e27Martijn Coenen
76da6c0ba382c1c2c9b98f11a1ef9e572472654e27Martijn Coenen    @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