Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4c42a888 authored by Fabrice Di Meglio's avatar Fabrice Di Meglio
Browse files

Fix bug #15173703 Crash in Settings is observed when Android Beam page orientation is changed.

- use onActivityCreated() / onResume() / onPause() for the SwitchBar

Change-Id: I24b346fdc5c19acedbe845d3b7697718412b5e5d
parent 58473734
Loading
Loading
Loading
Loading
+28 −10
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package com.android.settings.nfc;

import android.app.ActionBar;
import android.app.Fragment;
import android.nfc.NfcAdapter;
import android.os.Bundle;
@@ -39,12 +40,27 @@ public class AndroidBeam extends Fragment
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        SettingsActivity activity = (SettingsActivity) getActivity();
        final ActionBar actionBar = getActivity().getActionBar();

        mOldActivityTitle = activity.getActionBar().getTitle();
        activity.getActionBar().setTitle(R.string.android_beam_settings_title);
        mOldActivityTitle = actionBar.getTitle();
        actionBar.setTitle(R.string.android_beam_settings_title);

        mNfcAdapter = NfcAdapter.getDefaultAdapter(getActivity());
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        mView = inflater.inflate(R.layout.android_beam, container, false);

        return mView;
    }

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);

        SettingsActivity activity = (SettingsActivity) getActivity();

        mSwitchBar = activity.getSwitchBar();
        mSwitch = mSwitchBar.getSwitch();
@@ -52,22 +68,24 @@ public class AndroidBeam extends Fragment
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        mView = inflater.inflate(R.layout.android_beam, container, false);
    public void onResume() {
        super.onResume();

        mSwitchBar.addOnSwitchChangeListener(this);
        mSwitchBar.show();
        mSwitch.setChecked(mNfcAdapter.isNdefPushEnabled());
    }

        return mView;
    @Override
    public void onPause() {
        super.onPause();

        mSwitchBar.removeOnSwitchChangeListener(this);
        mSwitchBar.hide();
    }

    @Override
    public void onDestroyView() {
        super.onDestroyView();
        mSwitchBar.removeOnSwitchChangeListener(this);
        mSwitchBar.hide();
        if (mOldActivityTitle != null) {
            getActivity().getActionBar().setTitle(mOldActivityTitle);
        }