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

Commit f51d0063 authored by Stuart Scott's avatar Stuart Scott
Browse files

Correct the way settings deals with subscriptions.

Change-Id: I19e9dfaf248fce7376b124ee91de7e73fdc99fb3
parent c2ab9341
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -146,7 +146,7 @@ public class ApnSettings extends SettingsPreferenceFragment implements
            setHasOptionsMenu(true);
        }

        mSubscriptionInfo = Utils.findRecordBySubId(activity, subId);
        mSubscriptionInfo = SubscriptionManager.from(activity).getActiveSubscriptionInfo(subId);
    }

    @Override
+8 −24
Original line number Diff line number Diff line
@@ -717,9 +717,9 @@ public class DataUsageSummary extends HighlightingFragment implements Indexable

        int simCount = mTelephonyManager.getSimCount();

        for (int i = 0; i < simCount; i++) {
            final SubscriptionInfo sir = Utils.findRecordBySlotId(context, i);
            if (sir != null) {
        List<SubscriptionInfo> sirs = mSubscriptionManager.getActiveSubscriptionInfoList();
        if (sirs != null) {
            for (SubscriptionInfo sir : sirs) {
                addMobileTab(context, sir, (simCount > 1));
            }
        }
@@ -880,8 +880,8 @@ public class DataUsageSummary extends HighlightingFragment implements Indexable
        if (mCurrentTab != null && mCurrentTab.length() > TAB_MOBILE.length() ){
            final int slotId = Integer.parseInt(mCurrentTab.substring(TAB_MOBILE.length(),
                    mCurrentTab.length()));
            final SubscriptionInfo sir = com.android.settings.Utils.findRecordBySlotId(context,
                    slotId);
            final SubscriptionInfo sir = mSubscriptionManager
                    .getActiveSubscriptionInfoForSimSlotIndex(slotId);

            if (sir != null) {
                seriesColor = sir.getIconTint();
@@ -1245,8 +1245,7 @@ public class DataUsageSummary extends HighlightingFragment implements Indexable
            return;
        }

        final SubscriptionInfo nextSir = mSubscriptionManager.getActiveSubscriptionInfo(
                mSubscriptionManager.getDefaultDataSubId());
        final SubscriptionInfo nextSir = mSubscriptionManager.getDefaultDataSubscriptionInfo();

        // If the device is single SIM or is enabling data on the active data SIM then forgo
        // the pop-up.
@@ -2784,22 +2783,7 @@ public class DataUsageSummary extends HighlightingFragment implements Indexable
            return -1;
        }

        //SUB SELECT
        private boolean isMobileDataAvailable(long subId) {
            int[] subIds = SubscriptionManager.getSubId(PhoneConstants.SUB1);
            if (subIds != null && subIds[0] == subId) {
                return true;
            }

            subIds = SubscriptionManager.getSubId(PhoneConstants.SUB2);
            if (subIds != null && subIds[0] == subId) {
                return true;
            }

            subIds = SubscriptionManager.getSubId(PhoneConstants.SUB3);
            if (subIds != null && subIds[0] == subId) {
                return true;
            }
            return false;
        private boolean isMobileDataAvailable(int subId) {
            return mSubscriptionManager.getActiveSubscriptionInfo(subId) != null;
        }
}
+5 −3
Original line number Diff line number Diff line
@@ -212,14 +212,15 @@ public class IccLockSettings extends InstrumentedPreferenceActivity
            mTabHost.setOnTabChangedListener(mTabListener);
            mTabHost.clearAllTabs();

            SubscriptionManager sm = SubscriptionManager.from(this);
            for (int i = 0; i < numSims; ++i) {
                final SubscriptionInfo subInfo = Utils.findRecordBySlotId(this, i);
                final SubscriptionInfo subInfo = sm.getActiveSubscriptionInfoForSimSlotIndex(i);
                mTabHost.addTab(buildTabSpec(String.valueOf(i),
                        String.valueOf(subInfo == null
                            ? context.getString(R.string.sim_editor_title, i + 1)
                            : subInfo.getDisplayName())));
            }
            final SubscriptionInfo sir = Utils.findRecordBySlotId(getBaseContext(), 0);
            final SubscriptionInfo sir = sm.getActiveSubscriptionInfoForSimSlotIndex(0);

            mPhone = (sir == null) ? null
                : PhoneFactory.getPhone(SubscriptionManager.getPhoneId(sir.getSubscriptionId()));
@@ -476,7 +477,8 @@ public class IccLockSettings extends InstrumentedPreferenceActivity
        @Override
        public void onTabChanged(String tabId) {
            final int slotId = Integer.parseInt(tabId);
            final SubscriptionInfo sir = Utils.findRecordBySlotId(getBaseContext(), slotId);
            final SubscriptionInfo sir = SubscriptionManager.from(getBaseContext())
                    .getActiveSubscriptionInfoForSimSlotIndex(slotId);

            mPhone = (sir == null) ? null
                : PhoneFactory.getPhone(SubscriptionManager.getPhoneId(sir.getSubscriptionId()));
+0 −43
Original line number Diff line number Diff line
@@ -1025,49 +1025,6 @@ public final class Utils {
        return sb.toString();
    }

    /**
     * finds a record with subId.
     * Since the number of SIMs are few, an array is fine.
     */
    public static SubscriptionInfo findRecordBySubId(Context context, final int subId) {
        final List<SubscriptionInfo> subInfoList =
                SubscriptionManager.from(context).getActiveSubscriptionInfoList();
        if (subInfoList != null) {
            final int subInfoLength = subInfoList.size();

            for (int i = 0; i < subInfoLength; ++i) {
                final SubscriptionInfo sir = subInfoList.get(i);
                if (sir != null && sir.getSubscriptionId() == subId) {
                    return sir;
                }
            }
        }

        return null;
    }

    /**
     * finds a record with slotId.
     * Since the number of SIMs are few, an array is fine.
     */
    public static SubscriptionInfo findRecordBySlotId(Context context, final int slotId) {
        final List<SubscriptionInfo> subInfoList =
                SubscriptionManager.from(context).getActiveSubscriptionInfoList();
        if (subInfoList != null) {
            final int subInfoLength = subInfoList.size();

            for (int i = 0; i < subInfoLength; ++i) {
                final SubscriptionInfo sir = subInfoList.get(i);
                if (sir.getSimSlotIndex() == slotId) {
                    //Right now we take the first subscription on a SIM.
                    return sir;
                }
            }
        }

        return null;
    }

    /**
     * Queries for the UserInfo of a user. Returns null if the user doesn't exist (was removed).
     * @param userManager Instance of UserManager
+2 −4
Original line number Diff line number Diff line
@@ -89,10 +89,8 @@ public class ImeiInformation extends InstrumentedPreferenceActivity {
                    removePreferenceFromScreen(KEY_ICC_ID);
                }
            } else {
                setSummaryText(KEY_IMEI, phone.getDeviceId());
                setSummaryText(KEY_IMEI_SV,
                        ((TelephonyManager) getSystemService(TELEPHONY_SERVICE))
                        .getDeviceSoftwareVersion(phoneId));
                setSummaryText(KEY_IMEI, phone.getImei());
                setSummaryText(KEY_IMEI_SV, phone.getDeviceSvn());
                // device is not CDMA, do not display CDMA features
                // check Null in case no specified preference in overlay xml
                removePreferenceFromScreen(KEY_PRL_VERSION);
Loading