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
This commit is contained in:
Sudheer Shanka
2016-03-24 12:21:45 -07:00
parent f3dc18b65b
commit b51457db10

View File

@@ -47,7 +47,7 @@ public class AndroidBeam extends InstrumentedFragment
private SwitchBar mSwitchBar; private SwitchBar mSwitchBar;
private CharSequence mOldActivityTitle; private CharSequence mOldActivityTitle;
private boolean mBeamDisallowedByBase; private boolean mBeamDisallowedByBase;
private boolean mBeamDisallowedByAdmin; private boolean mBeamDisallowedByOnlyAdmin;
@Override @Override
public void onCreate(Bundle savedInstanceState) { 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); View view = inflater.inflate(R.layout.admin_support_details_empty_view, null);
ShowAdminSupportDetailsDialog.setAdminSupportDetails(getActivity(), view, admin, false); ShowAdminSupportDetailsDialog.setAdminSupportDetails(getActivity(), view, admin, false);
view.setVisibility(View.VISIBLE); view.setVisibility(View.VISIBLE);
mBeamDisallowedByAdmin = true; mBeamDisallowedByOnlyAdmin = true;
return view; return view;
} }
mView = inflater.inflate(R.layout.android_beam, container, false); mView = inflater.inflate(R.layout.android_beam, container, false);
@@ -95,7 +95,7 @@ public class AndroidBeam extends InstrumentedFragment
SettingsActivity activity = (SettingsActivity) getActivity(); SettingsActivity activity = (SettingsActivity) getActivity();
mSwitchBar = activity.getSwitchBar(); mSwitchBar = activity.getSwitchBar();
if (!mBeamDisallowedByBase && mBeamDisallowedByAdmin) { if (mBeamDisallowedByOnlyAdmin) {
mSwitchBar.hide(); mSwitchBar.hide();
} else { } else {
mSwitchBar.setChecked(!mBeamDisallowedByBase && mNfcAdapter.isNdefPushEnabled()); mSwitchBar.setChecked(!mBeamDisallowedByBase && mNfcAdapter.isNdefPushEnabled());
@@ -111,9 +111,11 @@ public class AndroidBeam extends InstrumentedFragment
if (mOldActivityTitle != null) { if (mOldActivityTitle != null) {
getActivity().getActionBar().setTitle(mOldActivityTitle); getActivity().getActionBar().setTitle(mOldActivityTitle);
} }
if (!mBeamDisallowedByOnlyAdmin) {
mSwitchBar.removeOnSwitchChangeListener(this); mSwitchBar.removeOnSwitchChangeListener(this);
mSwitchBar.hide(); mSwitchBar.hide();
} }
}
@Override @Override
public void onSwitchChanged(Switch switchView, boolean desiredState) { public void onSwitchChanged(Switch switchView, boolean desiredState) {