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

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

Use isMobileDataCapable/isVoiceCapable helpers in sim/ components

Disabling telephony support may be done either with the
config_show_sim_info config option, or based on whether
TelephonyManager reports data capabilities. The isMobileDataCapable()
helper method ensures both ways are supported.

Additionally, the logic is also updated to explicitly check for voice
support, so that disabling this telephony element happens only when
both mobile data and voice are unsupported.

Bug: 395714454
Test: mm && atest
Flag: EXEMPT bugfix
Change-Id: Ibc218dfc2df91555c0385370c4b9fa7eafc466ea
parent b02d1270
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -41,9 +41,9 @@ import androidx.fragment.app.FragmentManager;

import com.android.internal.annotations.VisibleForTesting;
import com.android.settings.R;
import com.android.settings.Utils;
import com.android.settings.flags.Flags;
import com.android.settings.network.CarrierConfigCache;
import com.android.settings.network.SubscriptionUtil;
import com.android.settings.network.ims.WifiCallingQueryImsState;
import com.android.settings.network.telephony.MobileNetworkUtils;
import com.android.settings.network.telephony.SubscriptionActionDialogActivity;
@@ -84,8 +84,8 @@ public class SimDialogActivity extends FragmentActivity {
            finish();
            return;
        }
        if (!SubscriptionUtil.isSimHardwareVisible(this)) {
            Log.d(TAG, "Not support on device without SIM.");
        if (!Utils.isMobileDataCapable(this) && !Utils.isVoiceCapable(this)) {
            Log.d(TAG, "No support on device without data or voice capabilities.");
            finish();
            return;
        }
+3 −2
Original line number Diff line number Diff line
@@ -55,6 +55,7 @@ import androidx.annotation.WorkerThread;
import com.android.internal.annotations.VisibleForTesting;
import com.android.settings.HelpTrampoline;
import com.android.settings.R;
import com.android.settings.Utils;
import com.android.settings.network.SatelliteRepository;
import com.android.settings.network.SubscriptionUtil;

@@ -97,8 +98,8 @@ public class SimSelectNotification extends BroadcastReceiver {
            Log.d(TAG, "The userId is not the main user");
            return;
        }
        if (!SubscriptionUtil.isSimHardwareVisible(context)) {
            Log.w(TAG, "Received unexpected intent with null action.");
        if (!Utils.isMobileDataCapable(context) && !Utils.isVoiceCapable(context)) {
            Log.w(TAG, "No support on device without data or voice capabilities.");
            return;
        }
        String action = intent.getAction();
+3 −3
Original line number Diff line number Diff line
@@ -37,8 +37,8 @@ import android.widget.Toolbar;
import androidx.core.content.ContextCompat;

import com.android.settings.R;
import com.android.settings.Utils;
import com.android.settings.core.SettingsBaseActivity;
import com.android.settings.network.SubscriptionUtil;

import com.google.common.util.concurrent.FutureCallback;
import com.google.common.util.concurrent.Futures;
@@ -57,8 +57,8 @@ public class SmartForwardingActivity extends SettingsBaseActivity {
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        if (!SubscriptionUtil.isSimHardwareVisible(this)) {
            Log.d(LOG_TAG, "Not support on device without SIM.");
        if (!Utils.isMobileDataCapable(this) && !Utils.isVoiceCapable(this)) {
            Log.d(LOG_TAG, "No support on device without data or voice capabilities.");
            finish();
            return;
        }
+2 −0
Original line number Diff line number Diff line
@@ -144,6 +144,8 @@ public class SimSelectNotificationTest {

        when(mTelephonyManager.createForSubscriptionId(anyInt())).thenReturn(mTelephonyManager);
        when(mTelephonyManager.isDataEnabledForApn(TYPE_MMS)).thenReturn(false);
        when(mTelephonyManager.isDataCapable()).thenReturn(true);
        when(mTelephonyManager.isDeviceVoiceCapable()).thenReturn(true);
        SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(mSubInfo));
        SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(mSubInfo));
        when(mSubscriptionManager.isActiveSubscriptionId(mSubId)).thenReturn(true);