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