Merge "[Settings] Use background thread to get VoNr state." into udc-dev am: 1fd77775cb
am: 0d065f7913
am: 2299f35385
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/23405373 Change-Id: Ifb5a172d9977287ab725510a0b2faa4fae33c7a1 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -17,6 +17,8 @@
|
||||
package com.android.settings.network.telephony;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.os.PersistableBundle;
|
||||
import android.telephony.CarrierConfigManager;
|
||||
import android.telephony.SubscriptionManager;
|
||||
@@ -33,9 +35,10 @@ import com.android.internal.telephony.util.ArrayUtils;
|
||||
import com.android.settingslib.core.lifecycle.LifecycleObserver;
|
||||
import com.android.settingslib.core.lifecycle.events.OnStart;
|
||||
import com.android.settingslib.core.lifecycle.events.OnStop;
|
||||
import com.android.settingslib.utils.ThreadUtils;
|
||||
|
||||
/**
|
||||
* Preference controller for "Enhanced 4G LTE"
|
||||
* Preference controller for "Voice over NR".
|
||||
*/
|
||||
public class NrAdvancedCallingPreferenceController extends TelephonyTogglePreferenceController
|
||||
implements LifecycleObserver, OnStart, OnStop {
|
||||
@@ -50,8 +53,11 @@ public class NrAdvancedCallingPreferenceController extends TelephonyTogglePrefer
|
||||
private boolean mIsVonrVisibleFromCarrierConfig = false;
|
||||
private boolean mIsNrEnableFromCarrierConfig = false;
|
||||
private boolean mHas5gCapability = false;
|
||||
private boolean mIsVoNrEnabled = false;
|
||||
private Integer mCallState;
|
||||
|
||||
private Handler mHandler = new Handler(Looper.getMainLooper());
|
||||
|
||||
public NrAdvancedCallingPreferenceController(Context context, String key) {
|
||||
super(context, key);
|
||||
mTelephonyManager = context.getSystemService(TelephonyManager.class);
|
||||
@@ -94,6 +100,8 @@ public class NrAdvancedCallingPreferenceController extends TelephonyTogglePrefer
|
||||
CarrierConfigManager.KEY_CARRIER_NR_AVAILABILITIES_INT_ARRAY);
|
||||
mIsNrEnableFromCarrierConfig = !ArrayUtils.isEmpty(nrAvailabilities);
|
||||
|
||||
updateVoNrState();
|
||||
|
||||
Log.d(TAG, "mHas5gCapability: " + mHas5gCapability
|
||||
+ ",mIsNrEnabledFromCarrierConfig: " + mIsNrEnableFromCarrierConfig
|
||||
+ ",mIsVonrEnabledFromCarrierConfig: " + mIsVonrEnabledFromCarrierConfig
|
||||
@@ -162,7 +170,7 @@ public class NrAdvancedCallingPreferenceController extends TelephonyTogglePrefer
|
||||
|
||||
@Override
|
||||
public boolean isChecked() {
|
||||
return mTelephonyManager.isVoNrEnabled();
|
||||
return mIsVoNrEnabled;
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
@@ -174,6 +182,19 @@ public class NrAdvancedCallingPreferenceController extends TelephonyTogglePrefer
|
||||
return isCallStateIdle();
|
||||
}
|
||||
|
||||
private void updateVoNrState() {
|
||||
ThreadUtils.postOnBackgroundThread(() -> {
|
||||
boolean result = mTelephonyManager.isVoNrEnabled();
|
||||
if (result != mIsVoNrEnabled) {
|
||||
Log.i(TAG, "VoNr state : " + result);
|
||||
mIsVoNrEnabled = result;
|
||||
mHandler.post(() -> {
|
||||
updateState(mPreference);
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private class PhoneCallStateTelephonyCallback extends TelephonyCallback implements
|
||||
TelephonyCallback.CallStateListener {
|
||||
|
||||
|
@@ -186,6 +186,7 @@ public class NrAdvancedCallingPreferenceControllerTest {
|
||||
doReturn(true).when(mTelephonyManager).isVoNrEnabled();
|
||||
mPreference.setChecked(false);
|
||||
|
||||
mController.init(SUB_ID);
|
||||
mController.updateState(mPreference);
|
||||
|
||||
assertThat(mPreference.isChecked()).isTrue();
|
||||
|
Reference in New Issue
Block a user