LTE+ indicator not shown when attached to CA network

NetworkTypeController (or DcTracker in aosp/master) will set lte
display type to LTE_CA when current ServiceState fulfills one of the
following conditions:
- getDataNetworkType return NETWORK_TYPE_LTE_CA
- isUsingCarrierAggregation return true

NetworkRegistrationInfo#getAccessNetworkTechnology() always returns LTE
when data rat is LTE CA. So the first condition will never get
fulfilled.

isUsingCarrierAggregation flag will only get updated when
ServiceStateTracker calls RatRatcheter.ratchet without location change.
This makes isUsingCarrierAggregation flag not always reliable to
determine if carrier aggregation is on.

The CL fix the issue by changing ServiceState#isUsingCarrierAggregation
to return true when ServiceState#getCellBandwidths return more than one.
The same condition is already used by RatRatcheter when set
isUsingCarrierAggregation flag in RatRatcheter#ratchet.

Bug: 154060784
Test: atest com.android.internal.telephony.ServiceStateTest
Test: atest android.telephony.cts.ServiceStateTest
Change-Id: Ie6c07cb58d2a40eeb10e8f0131c98212ba463517
1 file changed