From b51457db10eb4e45f4d8aff2049f0d4078827836 Mon Sep 17 00:00:00 2001 From: Sudheer Shanka Date: Thu, 24 Mar 2016 12:21:45 -0700 Subject: [PATCH] Fix crash in AndroidBeam class. SwitchChangeListener is not added if admin disables the options, so don't try to remove the listener in this case. Bug: 27828118 Change-Id: Id0f9c71a10f93fc4c87af2b02ab7f04482145217 --- src/com/android/settings/nfc/AndroidBeam.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/com/android/settings/nfc/AndroidBeam.java b/src/com/android/settings/nfc/AndroidBeam.java index a1be5535195..dfdf0dcdbec 100644 --- a/src/com/android/settings/nfc/AndroidBeam.java +++ b/src/com/android/settings/nfc/AndroidBeam.java @@ -47,7 +47,7 @@ public class AndroidBeam extends InstrumentedFragment private SwitchBar mSwitchBar; private CharSequence mOldActivityTitle; private boolean mBeamDisallowedByBase; - private boolean mBeamDisallowedByAdmin; + private boolean mBeamDisallowedByOnlyAdmin; @Override public void onCreate(Bundle savedInstanceState) { @@ -81,7 +81,7 @@ public class AndroidBeam extends InstrumentedFragment View view = inflater.inflate(R.layout.admin_support_details_empty_view, null); ShowAdminSupportDetailsDialog.setAdminSupportDetails(getActivity(), view, admin, false); view.setVisibility(View.VISIBLE); - mBeamDisallowedByAdmin = true; + mBeamDisallowedByOnlyAdmin = true; return view; } mView = inflater.inflate(R.layout.android_beam, container, false); @@ -95,7 +95,7 @@ public class AndroidBeam extends InstrumentedFragment SettingsActivity activity = (SettingsActivity) getActivity(); mSwitchBar = activity.getSwitchBar(); - if (!mBeamDisallowedByBase && mBeamDisallowedByAdmin) { + if (mBeamDisallowedByOnlyAdmin) { mSwitchBar.hide(); } else { mSwitchBar.setChecked(!mBeamDisallowedByBase && mNfcAdapter.isNdefPushEnabled()); @@ -111,8 +111,10 @@ public class AndroidBeam extends InstrumentedFragment if (mOldActivityTitle != null) { getActivity().getActionBar().setTitle(mOldActivityTitle); } - mSwitchBar.removeOnSwitchChangeListener(this); - mSwitchBar.hide(); + if (!mBeamDisallowedByOnlyAdmin) { + mSwitchBar.removeOnSwitchChangeListener(this); + mSwitchBar.hide(); + } } @Override