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