Loading src/com/android/settings/network/ims/ImsQueryVtUserSetting.java 0 → 100644 +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(); } } src/com/android/settings/network/ims/VtQueryImsState.java +24 −6 Original line number Original line Diff line number Diff line Loading @@ -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; Loading @@ -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 * * Loading @@ -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(); } } } } src/com/android/settings/network/telephony/VideoCallingPreferenceController.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -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()); Loading Loading
src/com/android/settings/network/ims/ImsQueryVtUserSetting.java 0 → 100644 +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(); } }
src/com/android/settings/network/ims/VtQueryImsState.java +24 −6 Original line number Original line Diff line number Diff line Loading @@ -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; Loading @@ -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 * * Loading @@ -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(); } } } }
src/com/android/settings/network/telephony/VideoCallingPreferenceController.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -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()); Loading