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