AndroidBeam.java revision 072d98aba6c86596d7c14e5b8b490a4703d8226f
13d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamilton/* 23d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamilton * Copyright (C) 2011 The Android Open Source Project 33d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamilton * 43d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamilton * Licensed under the Apache License, Version 2.0 (the "License"); 53d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamilton * you may not use this file except in compliance with the License. 63d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamilton * You may obtain a copy of the License at 73d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamilton * 83d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamilton * http://www.apache.org/licenses/LICENSE-2.0 93d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamilton * 103d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamilton * Unless required by applicable law or agreed to in writing, software 113d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamilton * distributed under the License is distributed on an "AS IS" BASIS, 123d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamilton * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 133d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamilton * See the License for the specific language governing permissions and 143d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamilton * limitations under the License. 153d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamilton */ 163d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamilton 173d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamiltonpackage com.android.settings.nfc; 183d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamilton 193d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamiltonimport android.app.Fragment; 203d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamiltonimport android.nfc.NfcAdapter; 213d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamiltonimport android.os.Bundle; 223d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamiltonimport android.view.LayoutInflater; 233d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamiltonimport android.view.View; 243d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamiltonimport android.view.ViewGroup; 253d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamiltonimport android.widget.Switch; 263d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamiltonimport com.android.settings.R; 27263bcc8b732dbb47d3ce63904e0e05191fabbad6Fabrice Di Meglioimport com.android.settings.SettingsActivity; 28072d98aba6c86596d7c14e5b8b490a4703d8226fFabrice Di Meglioimport com.android.settings.widget.SwitchBar; 293d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamilton 303d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamiltonpublic class AndroidBeam extends Fragment 31072d98aba6c86596d7c14e5b8b490a4703d8226fFabrice Di Meglio implements SwitchBar.OnSwitchChangeListener { 323d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamilton private View mView; 333d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamilton private NfcAdapter mNfcAdapter; 34072d98aba6c86596d7c14e5b8b490a4703d8226fFabrice Di Meglio private SwitchBar mSwitchBar; 35072d98aba6c86596d7c14e5b8b490a4703d8226fFabrice Di Meglio private Switch mSwitch; 36658508c8f6f426127c01f91e85c2ede2300e71bdMartijn Coenen private CharSequence mOldActivityTitle; 373d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamilton 383d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamilton @Override 393d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamilton public void onCreate(Bundle savedInstanceState) { 403d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamilton super.onCreate(savedInstanceState); 413d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamilton 42072d98aba6c86596d7c14e5b8b490a4703d8226fFabrice Di Meglio SettingsActivity activity = (SettingsActivity) getActivity(); 433d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamilton 44072d98aba6c86596d7c14e5b8b490a4703d8226fFabrice Di Meglio mOldActivityTitle = activity.getActionBar().getTitle(); 45072d98aba6c86596d7c14e5b8b490a4703d8226fFabrice Di Meglio activity.getActionBar().setTitle(R.string.android_beam_settings_title); 463d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamilton 473d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamilton mNfcAdapter = NfcAdapter.getDefaultAdapter(getActivity()); 48072d98aba6c86596d7c14e5b8b490a4703d8226fFabrice Di Meglio 49072d98aba6c86596d7c14e5b8b490a4703d8226fFabrice Di Meglio mSwitchBar = activity.getSwitchBar(); 50072d98aba6c86596d7c14e5b8b490a4703d8226fFabrice Di Meglio mSwitch = mSwitchBar.getSwitch(); 51072d98aba6c86596d7c14e5b8b490a4703d8226fFabrice Di Meglio mSwitch.setChecked(mNfcAdapter.isNdefPushEnabled()); 523d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamilton } 533d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamilton 543d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamilton @Override 553d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamilton public View onCreateView(LayoutInflater inflater, ViewGroup container, 563d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamilton Bundle savedInstanceState) { 573d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamilton mView = inflater.inflate(R.layout.android_beam, container, false); 58072d98aba6c86596d7c14e5b8b490a4703d8226fFabrice Di Meglio 59072d98aba6c86596d7c14e5b8b490a4703d8226fFabrice Di Meglio mSwitchBar.addOnSwitchChangeListener(this); 60072d98aba6c86596d7c14e5b8b490a4703d8226fFabrice Di Meglio mSwitchBar.show(); 61072d98aba6c86596d7c14e5b8b490a4703d8226fFabrice Di Meglio mSwitch.setChecked(mNfcAdapter.isNdefPushEnabled()); 62072d98aba6c86596d7c14e5b8b490a4703d8226fFabrice Di Meglio 633d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamilton return mView; 643d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamilton } 653d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamilton 66658508c8f6f426127c01f91e85c2ede2300e71bdMartijn Coenen @Override 67658508c8f6f426127c01f91e85c2ede2300e71bdMartijn Coenen public void onDestroyView() { 68658508c8f6f426127c01f91e85c2ede2300e71bdMartijn Coenen super.onDestroyView(); 69072d98aba6c86596d7c14e5b8b490a4703d8226fFabrice Di Meglio mSwitchBar.removeOnSwitchChangeListener(this); 70072d98aba6c86596d7c14e5b8b490a4703d8226fFabrice Di Meglio mSwitchBar.hide(); 71658508c8f6f426127c01f91e85c2ede2300e71bdMartijn Coenen if (mOldActivityTitle != null) { 72658508c8f6f426127c01f91e85c2ede2300e71bdMartijn Coenen getActivity().getActionBar().setTitle(mOldActivityTitle); 73658508c8f6f426127c01f91e85c2ede2300e71bdMartijn Coenen } 74658508c8f6f426127c01f91e85c2ede2300e71bdMartijn Coenen } 75658508c8f6f426127c01f91e85c2ede2300e71bdMartijn Coenen 763d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamilton @Override 77072d98aba6c86596d7c14e5b8b490a4703d8226fFabrice Di Meglio public void onSwitchChanged(Switch switchView, boolean desiredState) { 783d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamilton boolean success = false; 79072d98aba6c86596d7c14e5b8b490a4703d8226fFabrice Di Meglio mSwitch.setEnabled(false); 803d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamilton if (desiredState) { 813d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamilton success = mNfcAdapter.enableNdefPush(); 823d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamilton } else { 833d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamilton success = mNfcAdapter.disableNdefPush(); 843d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamilton } 853d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamilton if (success) { 86072d98aba6c86596d7c14e5b8b490a4703d8226fFabrice Di Meglio mSwitch.setChecked(desiredState); 873d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamilton } 88072d98aba6c86596d7c14e5b8b490a4703d8226fFabrice Di Meglio mSwitch.setEnabled(true); 893d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamilton } 903d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamilton} 91