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

Commit 6f08267f authored by shiwan's avatar shiwan Committed by Gerrit - the friendly Code Review server
Browse files

Settings: Phone process crash in SIM Status.

the SimStatus fragment not attached to activity.
when use method of getResource will forced close.
add isAdded method to judge.
make sure phoneStateListener that there is no reference
left at TelelphonyManager for the previous object
Change-Id: I6d8c7caf3cebd916bd968515da2b384bb9e03a3b
CRs-Fixed: 1054925
parent c5b62ad4
Loading
Loading
Loading
Loading
+7 −6
Original line number Diff line number Diff line
@@ -370,7 +370,6 @@ public class SimStatus extends SettingsPreferenceFragment {
    void updateSignalStrength(SignalStrength signalStrength) {
        if (mSignalStrength != null) {
            final int state = mPhone.getServiceState().getState();
            Resources r = getResources();

            if ((ServiceState.STATE_OUT_OF_SERVICE == state) ||
                    (ServiceState.STATE_POWER_OFF == state)) {
@@ -389,7 +388,7 @@ public class SimStatus extends SettingsPreferenceFragment {
                signalAsu = 0;
            }

            mSignalStrength.setSummary(r.getString(R.string.sim_signal_strength,
            mSignalStrength.setSummary(mRes.getString(R.string.sim_signal_strength,
                        signalDbm, signalAsu));
        }
    }
@@ -443,6 +442,11 @@ public class SimStatus extends SettingsPreferenceFragment {
                }

                mPhone = phone;
                //avoid left at TelephonyManager Memory leak before create a new PhoneStateLister
                if (mPhoneStateListener != null && mTelephonyManager != null) {
                    mTelephonyManager.listen(mPhoneStateListener,
                            PhoneStateListener.LISTEN_NONE);
                }
                mPhoneStateListener = new PhoneStateListener(mSir.getSubscriptionId()) {
                    @Override
                    public void onDataConnectionStateChanged(int state) {
@@ -468,10 +472,7 @@ public class SimStatus extends SettingsPreferenceFragment {
        public void onTabChanged(String tabId) {
            final int slotId = Integer.parseInt(tabId);
            mSir = mSelectableSubInfos.get(slotId);
            if (mPhoneStateListener != null) {
                mTelephonyManager.listen(mPhoneStateListener,
                        PhoneStateListener.LISTEN_NONE);
            }

            // The User has changed tab; update the SIM information.
            updatePhoneInfos();
            mTelephonyManager.listen(mPhoneStateListener,