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

Commit b173a2e7 authored by Aleksander Morgado's avatar Aleksander Morgado
Browse files

Use isMobileDataCapable/isVoiceCapable helpers in network/ components

Instead of relying exclusively on the config_show_sim_info config
option to disable telephony support, use both isMobileDataCapable()
and isVoiceCapable() helper methods to check for the telephony support
on runtime, based on the TelephonyManager capabilities.

Depending on either voice or data support:
 * EraseEuiccDataController
 * NetworkProviderSettings
 * NetworkResetPreferenceController

Depending on voice support:
 * NetworkProviderCallsSmsController
 * NetworkProviderCallsSmsFragment

Bug: 395714454
Test: mm && atest
Flag: EXEMPT bugfix
Change-Id: I6177d249a7e407bb1ec06e0a442a354bf00a7413
parent 161c7896
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -64,7 +64,7 @@ public class EraseEuiccDataController extends BasePreferenceController {
                && !MobileNetworkUtils.isMobileNetworkUserRestricted(mContext);
        boolean hasEuiccFeature = mContext.getPackageManager().hasSystemFeature(
                PackageManager.FEATURE_TELEPHONY_EUICC);
        return SubscriptionUtil.isSimHardwareVisible(mContext)
        return (Utils.isMobileDataCapable(mContext) || Utils.isVoiceCapable(mContext))
                && isAllowedUser
                && hasEuiccFeature ? AVAILABLE_UNSEARCHABLE : UNSUPPORTED_ON_DEVICE;
    }
+4 −3
Original line number Diff line number Diff line
@@ -27,10 +27,11 @@ import androidx.fragment.app.viewModels
import androidx.lifecycle.LifecycleOwner
import androidx.preference.PreferenceScreen
import com.android.settings.R
import com.android.settings.Utils
import com.android.settings.core.BasePreferenceController
import com.android.settings.flags.Flags
import com.android.settingslib.RestrictedPreference
import com.android.settingslib.Utils
import com.android.settingslib.Utils as LibUtils
import com.android.settingslib.spa.framework.util.collectLatestWithLifecycle
import com.android.settingslib.spaprivileged.framework.common.broadcastReceiverFlow
import com.android.settingslib.spaprivileged.framework.common.userManager
@@ -64,7 +65,7 @@ open class NetworkProviderCallsSmsController @JvmOverloads constructor(

    override fun getAvailabilityStatus() = when {
        Flags.isDualSimOnboardingEnabled() -> UNSUPPORTED_ON_DEVICE
        !SubscriptionUtil.isSimHardwareVisible(mContext) -> UNSUPPORTED_ON_DEVICE
        !Utils.isVoiceCapable(mContext) -> UNSUPPORTED_ON_DEVICE
        !mContext.userManager.isAdminUser -> DISABLED_FOR_USER
        else -> AVAILABLE
    }
@@ -176,6 +177,6 @@ private class IsInServiceImpl(context: Context) {
        if (!SubscriptionManager.isValidSubscriptionId(subId)) return false

        val serviceState = telephonyManager.createForSubscriptionId(subId).serviceState
        return Utils.isInService(serviceState)
        return LibUtils.isInService(serviceState)
    }
}
+2 −1
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ import android.os.UserManager;
import androidx.annotation.VisibleForTesting;

import com.android.settings.R;
import com.android.settings.Utils;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.flags.Flags;
import com.android.settings.network.telephony.CallsDefaultSubscriptionController;
@@ -93,7 +94,7 @@ public class NetworkProviderCallsSmsFragment extends DashboardFragment {
                @Override
                protected boolean isPageSearchEnabled(Context context) {
                    return !Flags.isDualSimOnboardingEnabled()
                            && SubscriptionUtil.isSimHardwareVisible(context)
                            && Utils.isVoiceCapable(context)
                            && context.getSystemService(UserManager.class).isAdminUser();
                }
            };
+3 −1
Original line number Diff line number Diff line
@@ -65,6 +65,7 @@ import androidx.recyclerview.widget.RecyclerView;

import com.android.settings.AirplaneModeEnabler;
import com.android.settings.R;
import com.android.settings.Utils;
import com.android.settings.core.SubSettingLauncher;
import com.android.settings.dashboard.RestrictedDashboardFragment;
import com.android.settings.datausage.DataUsagePreference;
@@ -428,7 +429,8 @@ public class NetworkProviderSettings extends RestrictedDashboardFragment
     */
    @VisibleForTesting
    boolean showAnySubscriptionInfo(Context context) {
        return (context != null) && SubscriptionUtil.isSimHardwareVisible(context);
        return (context != null) && (Utils.isMobileDataCapable(context)
                                         || Utils.isVoiceCapable(context));
    }

    private void addNetworkMobileProviderController() {
+3 −5
Original line number Diff line number Diff line
@@ -18,9 +18,8 @@ package com.android.settings.network;

import android.content.Context;

import com.android.settings.Utils;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.network.SubscriptionUtil;
import com.android.settingslib.Utils;
import com.android.settingslib.core.AbstractPreferenceController;

public class NetworkResetPreferenceController extends AbstractPreferenceController
@@ -35,8 +34,7 @@ public class NetworkResetPreferenceController extends AbstractPreferenceControll

    @Override
    public boolean isAvailable() {
        return (SubscriptionUtil.isSimHardwareVisible(mContext)
                && !Utils.isWifiOnly(mContext)
        return ((Utils.isMobileDataCapable(mContext) || Utils.isVoiceCapable(mContext))
                    && !mRestrictionChecker.hasUserRestriction());
    }