diff options
| author | 2017-06-15 15:32:26 +0000 | |
|---|---|---|
| committer | 2017-06-15 15:32:26 +0000 | |
| commit | 8c1e6e49f95ba6c588f87ef324eed98480fa9b8c (patch) | |
| tree | fc5397df0710c4b8e186447a120a196e39fe2665 | |
| parent | 35728f01cb0e6ee4a22a1889fe2da9cee0d6f92c (diff) | |
| parent | 13ade8f910819e7b6e043515fdcb414bfed2b035 (diff) | |
Merge "NfcTile: make sure NFC adapter is always available when needed"
am: 13ade8f910
Change-Id: I731c4d0f3460d1b2a24232a87afcd5c327ecb4b0
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/qs/tiles/NfcTile.java | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/NfcTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/NfcTile.java index 9904c6ee438e..0e19c54caae5 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/tiles/NfcTile.java +++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/NfcTile.java @@ -54,13 +54,6 @@ public class NfcTile extends QSTile<QSTile.BooleanState> { if (mListening) { mContext.registerReceiver(mNfcReceiver, new IntentFilter(NfcAdapter.ACTION_ADAPTER_STATE_CHANGED)); - if (mAdapter == null) { - try { - mAdapter = NfcAdapter.getNfcAdapter(mContext); - } catch (UnsupportedOperationException e) { - mAdapter = null; - } - } } else { mContext.unregisterReceiver(mNfcReceiver); } @@ -82,12 +75,11 @@ public class NfcTile extends QSTile<QSTile.BooleanState> { @Override protected void handleClick() { - if (mAdapter == null) return; MetricsLogger.action(mContext, getMetricsCategory(), !mState.value); - if (!mAdapter.isEnabled()) { - mAdapter.enable(); + if (!getAdapter().isEnabled()) { + getAdapter().enable(); } else { - mAdapter.disable(); + getAdapter().disable(); } } @@ -105,7 +97,7 @@ public class NfcTile extends QSTile<QSTile.BooleanState> { protected void handleUpdateState(BooleanState state, Object arg) { final Drawable mEnable = mContext.getDrawable(R.drawable.ic_qs_nfc_enabled); final Drawable mDisable = mContext.getDrawable(R.drawable.ic_qs_nfc_disabled); - state.value = mAdapter == null ? false : mAdapter.isEnabled(); + state.value = getAdapter().isEnabled(); state.label = mContext.getString(R.string.quick_settings_nfc_label); state.icon = new DrawableIcon(state.value ? mEnable : mDisable); state.minimalAccessibilityClassName = state.expandedAccessibilityClassName @@ -127,6 +119,17 @@ public class NfcTile extends QSTile<QSTile.BooleanState> { } } + private NfcAdapter getAdapter() { + if (mAdapter == null) { + try { + mAdapter = NfcAdapter.getNfcAdapter(mContext); + } catch (UnsupportedOperationException e) { + mAdapter = null; + } + } + return mAdapter; + } + private BroadcastReceiver mNfcReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { |