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

Commit 43d6a231 authored by Joonhun Shin's avatar Joonhun Shin Committed by Android (Google) Code Review
Browse files

Merge "Data only device(without FEATURE_TELEPHON_CALLING) : Add try/catch to...

Merge "Data only device(without FEATURE_TELEPHON_CALLING) : Add try/catch to handle UnsupportedOperationException" into main
parents b2364989 37d4fb73
Loading
Loading
Loading
Loading
+26 −4
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ import android.util.Log;

import androidx.annotation.VisibleForTesting;

import com.android.internal.telephony.flags.Flags;
import com.android.settings.network.GlobalSettingsChangeListener;
import com.android.settings.network.ProxySubscriptionManager;
import com.android.settings.overlay.FeatureFactory;
@@ -146,9 +147,20 @@ public class AirplaneModeEnabler extends GlobalSettingsChangeListener {
     * @return any subscription within device is under ECM mode
     */
    public boolean isInEcmMode() {
        if (Flags.enforceTelephonyFeatureMappingForPublicApis()) {
            try {
                if (mTelephonyManager.getEmergencyCallbackMode()) {
                    return true;
                }
            } catch (UnsupportedOperationException e) {
                // Device doesn't support FEATURE_TELEPHONY_CALLING
                // Ignore exception, device is not in ECM mode.
            }
        } else {
            if (mTelephonyManager.getEmergencyCallbackMode()) {
                return true;
            }
        }
        final List<SubscriptionInfo> subInfoList =
                ProxySubscriptionManager.getInstance(mContext).getActiveSubscriptionsInfo();
        if (subInfoList == null) {
@@ -158,9 +170,19 @@ public class AirplaneModeEnabler extends GlobalSettingsChangeListener {
            final TelephonyManager telephonyManager =
                    mTelephonyManager.createForSubscriptionId(subInfo.getSubscriptionId());
            if (telephonyManager != null) {
                if (!Flags.enforceTelephonyFeatureMappingForPublicApis()) {
                    if (telephonyManager.getEmergencyCallbackMode()) {
                        return true;
                    }
                } else {
                    try {
                        if (telephonyManager.getEmergencyCallbackMode()) {
                            return true;
                        }
                    } catch (UnsupportedOperationException e) {
                        // Ignore exception, device is not in ECM mode.
                    }
                }
            }
        }
        return false;
+13 −2
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ import android.provider.Settings;
import android.telephony.TelephonyManager;

import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.telephony.flags.Flags;
import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController;

@@ -49,8 +50,18 @@ public class HearingAidCompatibilityPreferenceController extends TogglePreferenc

    @Override
    public int getAvailabilityStatus() {
        if (Flags.enforceTelephonyFeatureMappingForPublicApis()) {
            try {
                return mTelephonyManager.isHearingAidCompatibilitySupported() ? AVAILABLE
                        : UNSUPPORTED_ON_DEVICE;
            } catch (UnsupportedOperationException e) {
                // Device doesn't support FEATURE_TELEPHONY_CALLING
                return UNSUPPORTED_ON_DEVICE;
            }
        } else {
            return mTelephonyManager.isHearingAidCompatibilitySupported() ? AVAILABLE
                    : UNSUPPORTED_ON_DEVICE;
        }
    }

    @Override
+11 −2
Original line number Diff line number Diff line
@@ -38,8 +38,8 @@ import androidx.preference.ListPreferenceDialogFragmentCompat;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;

import com.android.settings.R;
import com.android.internal.telephony.flags.Flags;
import com.android.settings.R;
import com.android.settings.network.AllowedNetworkTypesListener;
import com.android.settings.network.CarrierConfigCache;
import com.android.settings.network.SubscriptionsChangeListener;
@@ -924,7 +924,16 @@ public class EnabledNetworkModePreferenceController extends

            // assign current call state so that it helps to show correct preference state even
            // before first onCallStateChanged() by initial registration.
            if (Flags.enforceTelephonyFeatureMappingForPublicApis()) {
                try {
                    mCallState = mTelephonyManager.getCallState(subId);
                } catch (UnsupportedOperationException e) {
                    // Device doesn't support FEATURE_TELEPHONY_CALLING
                    mCallState = TelephonyManager.CALL_STATE_IDLE;
                }
            } else {
                mCallState = mTelephonyManager.getCallState(subId);
            }
            mTelephonyManager.registerTelephonyCallback(
                    mContext.getMainExecutor(), mTelephonyCallback);
        }
+11 −1
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@ import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
import androidx.preference.TwoStatePreference;

import com.android.internal.telephony.flags.Flags;
import com.android.internal.telephony.util.ArrayUtils;
import com.android.settings.R;
import com.android.settings.network.ims.VolteQueryImsState;
@@ -234,7 +235,16 @@ public class Enhanced4gBasePreferenceController extends TelephonyTogglePreferenc
            }
            // assign current call state so that it helps to show correct preference state even
            // before first onCallStateChanged() by initial registration.
            if (Flags.enforceTelephonyFeatureMappingForPublicApis()) {
                try {
                    mCallState = mTelephonyManager.getCallState(subId);
                } catch (UnsupportedOperationException e) {
                    // Device doesn't support FEATURE_TELEPHONY_CALLING
                    mCallState = TelephonyManager.CALL_STATE_IDLE;
                }
            } else {
                mCallState = mTelephonyManager.getCallState(subId);
            }
            mTelephonyManager.registerTelephonyCallback(
                    mContext.getMainExecutor(), mTelephonyCallback);

+11 −1
Original line number Diff line number Diff line
@@ -31,6 +31,7 @@ import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
import androidx.preference.TwoStatePreference;

import com.android.internal.telephony.flags.Flags;
import com.android.internal.telephony.util.ArrayUtils;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnStart;
@@ -211,7 +212,16 @@ public class NrAdvancedCallingPreferenceController extends TelephonyTogglePrefer

            // assign current call state so that it helps to show correct preference state even
            // before first onCallStateChanged() by initial registration.
            if (Flags.enforceTelephonyFeatureMappingForPublicApis()) {
                try {
                    mCallState = mLocalTelephonyManager.getCallState();
                } catch (UnsupportedOperationException e) {
                    // Device doesn't support FEATURE_TELEPHONY_CALLING
                    mCallState = TelephonyManager.CALL_STATE_IDLE;
                }
            } else {
                mCallState = mLocalTelephonyManager.getCallState();
            }
            mLocalTelephonyManager.registerTelephonyCallback(
                    mContext.getMainExecutor(), mTelephonyCallback);
        }
Loading