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

Commit 41a72930 authored by Calvin Pan's avatar Calvin Pan Committed by Android (Google) Code Review
Browse files

Merge "Show VoLTE UI when VoIMS opt-in enabled" into sc-dev

parents fea98ca4 5691d502
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -16,11 +16,14 @@

package com.android.settings.network.ims;

import static android.telephony.ims.ProvisioningManager.KEY_VOIMS_OPT_IN_STATUS;

import android.content.Context;
import android.telecom.TelecomManager;
import android.telephony.AccessNetworkConstants;
import android.telephony.SubscriptionManager;
import android.telephony.ims.ImsException;
import android.telephony.ims.ProvisioningManager;
import android.telephony.ims.feature.MmTelFeature;
import android.telephony.ims.stub.ImsRegistrationImplBase;
import android.util.Log;
@@ -133,4 +136,15 @@ public class VolteQueryImsState extends ImsQueryController {
        }
        return isEnabledByUser(mSubId);
    }

    /**
     * Get VoIMS opt-in configuration.
     *
     * @return true when VoIMS opt-in has been enabled, otherwise false
     */
    public boolean isVoImsOptInEnabled() {
        int voImsOptInStatus = ProvisioningManager.createForSubscriptionId(mSubId)
                .getProvisioningIntValue(KEY_VOIMS_OPT_IN_STATUS);
        return voImsOptInStatus == ProvisioningManager.PROVISIONING_VALUE_ENABLED;
    }
}
+7 −1
Original line number Diff line number Diff line
@@ -107,12 +107,18 @@ public class Enhanced4gBasePreferenceController extends TelephonyTogglePreferenc
        if (!isModeMatched()) {
            return CONDITIONALLY_UNAVAILABLE;
        }
        final VolteQueryImsState queryState = queryImsState(subId);
        // Show VoLTE settings if VoIMS opt-in has been enabled irrespective of other VoLTE settings
        if (queryState.isVoImsOptInEnabled()) {
            return AVAILABLE;
        }

        final PersistableBundle carrierConfig = getCarrierConfigForSubId(subId);
        if ((carrierConfig == null)
                || carrierConfig.getBoolean(CarrierConfigManager.KEY_HIDE_ENHANCED_4G_LTE_BOOL)) {
            return CONDITIONALLY_UNAVAILABLE;
        }
        final VolteQueryImsState queryState = queryImsState(subId);

        if (!queryState.isReadyToVoLte()) {
            return CONDITIONALLY_UNAVAILABLE;
        }