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

Commit 9fcc7e1b authored by Sungmin Choi's avatar Sungmin Choi Committed by Vineeta Srivastava
Browse files

Hide or show APNs with type="ims" as CarrierConfig

APN with type="ims" is used to attach IMS APN to the modem.
This APN is meaningless and confusing to end users.
Most carriers don't care to show this APN from apn list.
Some carriers want to show this APN from apn list and others don't.
This change hides or shows this as CarrierConfig from the APN list.

Bug: 23770219
Change-Id: Ia632f39401d84e8c63ac96f1c3b12aa3d8d2a4e6
parent b83cbe20
Loading
Loading
Loading
Loading
+13 −1
Original line number Diff line number Diff line
@@ -33,12 +33,14 @@ import android.os.Handler;
import android.os.HandlerThread;
import android.os.Looper;
import android.os.Message;
import android.os.PersistableBundle;
import android.os.UserHandle;
import android.os.UserManager;
import android.preference.Preference;
import android.preference.PreferenceGroup;
import android.preference.PreferenceScreen;
import android.provider.Telephony;
import android.telephony.CarrierConfigManager;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
import android.text.TextUtils;
@@ -111,6 +113,8 @@ public class ApnSettings extends SettingsPreferenceFragment implements

    private boolean mUnavailable;

    private boolean mHideImsApn;

    private final BroadcastReceiver mMobileStateReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
@@ -162,6 +166,11 @@ public class ApnSettings extends SettingsPreferenceFragment implements

        mSubscriptionInfo = SubscriptionManager.from(activity).getActiveSubscriptionInfo(subId);
        mUiccController = UiccController.getInstance();

        CarrierConfigManager configManager = (CarrierConfigManager)
                getSystemService(Context.CARRIER_CONFIG_SERVICE);
        PersistableBundle b = configManager.getConfig();
        mHideImsApn = b.getBoolean(CarrierConfigManager.KEY_HIDE_IMS_APN_BOOL);
    }

    @Override
@@ -226,9 +235,12 @@ public class ApnSettings extends SettingsPreferenceFragment implements
        final String mccmnc = mSubscriptionInfo == null ? ""
            : tm.getSimOperator(mSubscriptionInfo.getSubscriptionId());
        Log.d(TAG, "mccmnc = " + mccmnc);
        final String where = "numeric=\""
        String where = "numeric=\""
            + mccmnc
            + "\" AND NOT (type='ia' AND (apn=\"\" OR apn IS NULL))";
        if (mHideImsApn) {
            where = where + " AND NOT (type='ims')";
        }

        Cursor cursor = getContentResolver().query(Telephony.Carriers.CONTENT_URI, new String[] {
                "_id", "name", "apn", "type", "mvno_type", "mvno_match_data"}, where, null,