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

Commit 1a3e286d authored by Bonian Chen's avatar Bonian Chen Committed by Android (Google) Code Review
Browse files

Merge "[Settings] replace isNonTtyOrTtyOnVolteEnabled() and isVtEnabledByUser() in VT"

parents b942769c e8771c9c
Loading
Loading
Loading
Loading
+46 −0
Original line number Original line Diff line number Diff line
/*
 * Copyright (C) 2020 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.android.settings.network.ims;

import android.telephony.ims.ImsMmTelManager;


/**
 * An {@code ImsQuery} for accessing IMS VT enabled settings from user
 */
public class ImsQueryVtUserSetting extends ImsDirectQueryImpl {

    /**
     * Constructor
     * @param subId subscription id
     */
    public ImsQueryVtUserSetting(int subId) {
        mSubId = subId;
    }

    private volatile int mSubId;

    /**
     * Query running within a {@code Callable}
     *
     * @return result of query
     */
    public Boolean call() {
        final ImsMmTelManager imsMmTelManager = ImsMmTelManager.createForSubscriptionId(mSubId);
        return imsMmTelManager.isVtSettingEnabled();
    }
}
+24 −6
Original line number Original line Diff line number Diff line
@@ -19,13 +19,12 @@ package com.android.settings.network.ims;
import android.content.Context;
import android.content.Context;
import android.telephony.SubscriptionManager;
import android.telephony.SubscriptionManager;


import com.android.ims.ImsManager;
import androidx.annotation.VisibleForTesting;
import com.android.settings.network.SubscriptionUtil;


/**
/**
 * Controller class for querying VT status
 * Controller class for querying VT status
 */
 */
public class VtQueryImsState {
public class VtQueryImsState extends ImsQueryController {


    private Context mContext;
    private Context mContext;
    private int mSubId;
    private int mSubId;
@@ -41,6 +40,27 @@ public class VtQueryImsState {
        mSubId = subId;
        mSubId = subId;
    }
    }


    /**
     * Implementation of ImsQueryController#isEnabledByUser(int subId)
     */
    @VisibleForTesting
    ImsDirectQuery isEnabledByUser(int subId) {
        return new ImsQueryVtUserSetting(subId);
    }

    /**
     * Get allowance status for user to alter configuration
     *
     * @return true when changing configuration by user is allowed.
     */
    public boolean isAllowUserControl() {
        if (!SubscriptionManager.isValidSubscriptionId(mSubId)) {
            return false;
        }
        return ((!isSystemTtyEnabled(mContext).directQuery())
                || (isTtyOnVolteEnabled(mSubId).directQuery()));
    }

    /**
    /**
     * Get user's configuration
     * Get user's configuration
     *
     *
@@ -50,8 +70,6 @@ public class VtQueryImsState {
        if (!SubscriptionManager.isValidSubscriptionId(mSubId)) {
        if (!SubscriptionManager.isValidSubscriptionId(mSubId)) {
            return false;
            return false;
        }
        }
        ImsManager imsManager = ImsManager.getInstance(mContext, SubscriptionUtil.getPhoneId(
        return isEnabledByUser(mSubId).directQuery();
                    mContext, mSubId));
        return imsManager.isVtEnabledByUser();
    }
    }
}
}
+1 −1
Original line number Original line Diff line number Diff line
@@ -105,7 +105,7 @@ public class VideoCallingPreferenceController extends TelephonyTogglePreferenceC
        switchPreference.setVisible(videoCallEnabled);
        switchPreference.setVisible(videoCallEnabled);
        if (videoCallEnabled) {
        if (videoCallEnabled) {
            final boolean videoCallEditable = queryVoLteState(mSubId).isEnabledByUser()
            final boolean videoCallEditable = queryVoLteState(mSubId).isEnabledByUser()
                    && mImsManager.isNonTtyOrTtyOnVolteEnabled();
                    && queryImsState(mSubId).isAllowUserControl();
            preference.setEnabled(videoCallEditable
            preference.setEnabled(videoCallEditable
                    && mCallState == TelephonyManager.CALL_STATE_IDLE);
                    && mCallState == TelephonyManager.CALL_STATE_IDLE);
            switchPreference.setChecked(videoCallEditable && isChecked());
            switchPreference.setChecked(videoCallEditable && isChecked());