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

Commit bb53dd5f authored by Bonian Chen's avatar Bonian Chen
Browse files

[Settings] Remove access to getSimOperator() API

Replace getSimOperator() by having SubscriptionInfo
from getAccessibleSubscriptionInfo().

Bug: 144263441
Test: Manual
make RunSettingsRoboTests -j ROBOTEST_FILTER=ApnEditorTest

Change-Id: I25cc9dc0912564b8d6f8b23b53f3eb20a51eea32
parent 3af21959
Loading
Loading
Loading
Loading
+35 −0
Original line number Diff line number Diff line
@@ -177,6 +177,41 @@ public abstract class ActiveSubsciptionsListener
        return null;
    }

    /**
     * Get a list of accessible subscription info
     *
     * @return A list of accessible subscription info
     */
    public List<SubscriptionInfo> getAccessibleSubscriptionsInfo() {
        return getSubscriptionManager().getAccessibleSubscriptionInfoList();
    }

    /**
     * Get an accessible subscription info with given subscription ID
     *
     * @param subId target subscription ID
     * @return A subscription info which is accessible list
     */
    public SubscriptionInfo getAccessibleSubscriptionInfo(int subId) {
        if (mIsCachedDataAvailable) {
            final SubscriptionInfo activeSubInfo = getActiveSubscriptionInfo(subId);
            if (activeSubInfo != null) {
                return activeSubInfo;
            }
        }

        final List<SubscriptionInfo> subInfoList = getAccessibleSubscriptionsInfo();
        if (subInfoList == null) {
            return null;
        }
        for (SubscriptionInfo subInfo : subInfoList) {
            if (subInfo.getSubscriptionId() == subId) {
                return subInfo;
            }
        }
        return null;
    }

    /**
     * Clear data cached within listener
     */
+93 −68

File changed.

Preview size limit exceeded, changes collapsed.

+35 −1
Original line number Diff line number Diff line
@@ -46,6 +46,14 @@ public class ProxySubscriptionManager extends SubscriptionManager.OnSubscription
         * When active subscriptions list get changed
         */
        void onChanged();
        /**
         * get Lifecycle of listener
         *
         * @return Returns Lifecycle.
         */
        default Lifecycle getLifecycle() {
            return null;
        }
    }

    /**
@@ -94,9 +102,13 @@ public class ProxySubscriptionManager extends SubscriptionManager.OnSubscription

    private void notifyAllListeners() {
        for (OnActiveSubscriptionChangedListener listener : mActiveSubscriptionsListeners) {
            final Lifecycle lifecycle = listener.getLifecycle();
            if ((lifecycle == null)
                    || (lifecycle.getCurrentState().isAtLeast(Lifecycle.State.STARTED))) {
                listener.onChanged();
            }
        }
    }

    @Override
    public void onSubscriptionsChanged() {
@@ -110,6 +122,9 @@ public class ProxySubscriptionManager extends SubscriptionManager.OnSubscription
     * @param lifecycle life cycle to reference
     */
    public void setLifecycle(Lifecycle lifecycle) {
        if (mLifecycle == lifecycle) {
            return;
        }
        if (mLifecycle != null) {
            mLifecycle.removeObserver(this);
        }
@@ -179,6 +194,25 @@ public class ProxySubscriptionManager extends SubscriptionManager.OnSubscription
        return mSubsciptionsMonitor.getActiveSubscriptionInfo(subId);
    }

    /**
     * Get a list of accessible subscription info
     *
     * @return A list of accessible subscription info
     */
    public List<SubscriptionInfo> getAccessibleSubscriptionsInfo() {
        return mSubsciptionsMonitor.getAccessibleSubscriptionsInfo();
    }

    /**
     * Get an accessible subscription info with given subscription ID
     *
     * @param subId target subscription ID
     * @return A subscription info which is accessible list
     */
    public SubscriptionInfo getAccessibleSubscriptionInfo(int subId) {
        return mSubsciptionsMonitor.getAccessibleSubscriptionInfo(subId);
    }

    /**
     * Clear data cached within proxy
     */
+1 −0
Original line number Diff line number Diff line
@@ -106,6 +106,7 @@ public class MobileNetworkActivity extends SettingsBaseActivity

    @Override
    protected void onStart() {
        mProxySubscriptionMgr.setLifecycle(getLifecycle());
        super.onStart();
        updateSubscriptions(getSubscription());
    }
+1 −0
Original line number Diff line number Diff line
@@ -112,6 +112,7 @@ public class MobileNetworkSettings extends RestrictedDashboardFragment {
    protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
        mSubId = getArguments().getInt(Settings.EXTRA_SUB_ID,
                MobileNetworkUtils.getSearchableSubscriptionId(context));
        Log.i(LOG_TAG, "display subId: " + mSubId);

        if (mSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
            return Arrays.asList(