Refactor wifi calling and video calling
Also add a Callback for 4gLte to notify update to video calling preference controller Bug: 114749736 Test: RunSettingsRoboTests Change-Id: I0b5009733251162327f02ccfae8b10ae56b961bc
This commit is contained in:
@@ -36,6 +36,9 @@ import com.android.settingslib.core.lifecycle.LifecycleObserver;
|
||||
import com.android.settingslib.core.lifecycle.events.OnStart;
|
||||
import com.android.settingslib.core.lifecycle.events.OnStop;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Preference controller for "Enhanced 4G LTE"
|
||||
*/
|
||||
@@ -49,13 +52,15 @@ public class Enhanced4gLtePreferenceController extends TogglePreferenceControlle
|
||||
@VisibleForTesting
|
||||
ImsManager mImsManager;
|
||||
private PhoneCallStateListener mPhoneStateListener;
|
||||
private final List<On4gLteUpdateListener> m4gLteListeners;
|
||||
private int mSubId;
|
||||
|
||||
public Enhanced4gLtePreferenceController(Context context, String key) {
|
||||
super(context, key);
|
||||
mCarrierConfigManager = context.getSystemService(CarrierConfigManager.class);
|
||||
m4gLteListeners = new ArrayList<>();
|
||||
mPhoneStateListener = new PhoneCallStateListener(Looper.getMainLooper());
|
||||
mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
|
||||
mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -105,6 +110,9 @@ public class Enhanced4gLtePreferenceController extends TogglePreferenceControlle
|
||||
@Override
|
||||
public boolean setChecked(boolean isChecked) {
|
||||
mImsManager.setEnhanced4gLteModeSetting(isChecked);
|
||||
for (final On4gLteUpdateListener lsn : m4gLteListeners) {
|
||||
lsn.on4gLteUpdated();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -113,13 +121,20 @@ public class Enhanced4gLtePreferenceController extends TogglePreferenceControlle
|
||||
return mImsManager.isEnhanced4gLteModeSettingEnabledByUser();
|
||||
}
|
||||
|
||||
public void init(int subId) {
|
||||
public Enhanced4gLtePreferenceController init(int subId) {
|
||||
mSubId = subId;
|
||||
mTelephonyManager = TelephonyManager.from(mContext).createForSubscriptionId(mSubId);
|
||||
mCarrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId);
|
||||
if (mSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
|
||||
mImsManager = ImsManager.getInstance(mContext, SubscriptionManager.getPhoneId(mSubId));
|
||||
}
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
public Enhanced4gLtePreferenceController addListener(On4gLteUpdateListener lsn) {
|
||||
m4gLteListeners.add(lsn);
|
||||
return this;
|
||||
}
|
||||
|
||||
private boolean is4gLtePrefEnabled() {
|
||||
@@ -151,4 +166,11 @@ public class Enhanced4gLtePreferenceController extends TogglePreferenceControlle
|
||||
mTelephonyManager.listen(this, PhoneStateListener.LISTEN_NONE);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Update other preferences when 4gLte state is changed
|
||||
*/
|
||||
public interface On4gLteUpdateListener {
|
||||
void on4gLteUpdated();
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user