diff options
| author | 2019-04-27 06:08:59 +0000 | |
|---|---|---|
| committer | 2019-04-27 06:08:59 +0000 | |
| commit | c6e075350629055222e2ff949dbffa50d463316c (patch) | |
| tree | abf2788e7bcd1e09f7218c427abbdf898160da8c | |
| parent | 16e18dc3c96eff28da29604112f2a1ae599167b2 (diff) | |
| parent | 0d45da7abb5dfd8b0fa7dfc3156926c6d189dc61 (diff) | |
Merge "Show opportunistic provider name conditionally" into qt-dev
3 files changed, 82 insertions, 13 deletions
diff --git a/packages/SystemUI/src/com/android/keyguard/CarrierTextController.java b/packages/SystemUI/src/com/android/keyguard/CarrierTextController.java index 2e9b03c6b31e..12d1f7c3118d 100644 --- a/packages/SystemUI/src/com/android/keyguard/CarrierTextController.java +++ b/packages/SystemUI/src/com/android/keyguard/CarrierTextController.java @@ -27,6 +27,7 @@ import android.content.IntentFilter; import android.net.ConnectivityManager; import android.net.wifi.WifiManager; import android.os.Handler; +import android.os.SystemProperties; import android.telephony.CarrierConfigManager; import android.telephony.PhoneStateListener; import android.telephony.ServiceState; @@ -40,6 +41,7 @@ import androidx.annotation.VisibleForTesting; import com.android.internal.telephony.IccCardConstants; import com.android.internal.telephony.TelephonyIntents; +import com.android.internal.telephony.TelephonyProperties; import com.android.settingslib.WirelessUtils; import com.android.systemui.Dependency; import com.android.systemui.keyguard.WakefulnessLifecycle; @@ -70,6 +72,8 @@ public class CarrierTextController { private Context mContext; private CharSequence mSeparator; private WakefulnessLifecycle mWakefulnessLifecycle; + @VisibleForTesting + protected boolean mDisplayOpportunisticSubscriptionCarrierText; private final WakefulnessLifecycle.Observer mWakefulnessObserver = new WakefulnessLifecycle.Observer() { @Override @@ -247,7 +251,6 @@ public class CarrierTextController { } /** - * STOPSHIP(b/130246708) remove when no longer needed for testing purpose. * @param subscriptions */ private void filterMobileSubscriptionInSameGroup(List<SubscriptionInfo> subscriptions) { @@ -274,21 +277,40 @@ public class CarrierTextController { } } + /** + * updates if opportunistic sub carrier text should be displayed or not + * + */ + @VisibleForTesting + public void updateDisplayOpportunisticSubscriptionCarrierText() { + mDisplayOpportunisticSubscriptionCarrierText = SystemProperties + .getBoolean(TelephonyProperties + .DISPLAY_OPPORTUNISTIC_SUBSCRIPTION_CARRIER_TEXT_PROPERTY_NAME, false); + } + + protected List<SubscriptionInfo> getSubscriptionInfo() { + List<SubscriptionInfo> subs; + if (mDisplayOpportunisticSubscriptionCarrierText) { + SubscriptionManager subscriptionManager = ((SubscriptionManager) mContext + .getSystemService( + Context.TELEPHONY_SUBSCRIPTION_SERVICE)); + subs = subscriptionManager.getActiveSubscriptionInfoList(false); + if (subs == null) { + subs = new ArrayList<>(); + } else { + filterMobileSubscriptionInSameGroup(subs); + } + } else { + subs = mKeyguardUpdateMonitor.getSubscriptionInfo(false); + } + return subs; + } + protected void updateCarrierText() { boolean allSimsMissing = true; boolean anySimReadyAndInService = false; CharSequence displayText = null; - - // STOPSHIP(b/130246708) revert to mKeyguardUpdateMonitor.getSubscriptionInfo(false). - SubscriptionManager subscriptionManager = ((SubscriptionManager) mContext.getSystemService( - Context.TELEPHONY_SUBSCRIPTION_SERVICE)); - List<SubscriptionInfo> subs = subscriptionManager.getActiveSubscriptionInfoList(false); - - if (subs == null) { - subs = new ArrayList<>(); - } else { - filterMobileSubscriptionInSameGroup(subs); - } + List<SubscriptionInfo> subs = getSubscriptionInfo(); final int numSubs = subs.size(); final int[] subsIds = new int[numSubs]; diff --git a/packages/SystemUI/tests/src/com/android/keyguard/CarrierTextControllerTest.java b/packages/SystemUI/tests/src/com/android/keyguard/CarrierTextControllerTest.java index 9f91a17e846d..212c8f52a19e 100644 --- a/packages/SystemUI/tests/src/com/android/keyguard/CarrierTextControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/keyguard/CarrierTextControllerTest.java @@ -66,9 +66,17 @@ public class CarrierTextControllerTest extends SysuiTestCase { private static final CharSequence SEPARATOR = " \u2014 "; private static final String TEST_CARRIER = "TEST_CARRIER"; + private static final String TEST_CARRIER_2 = "TEST_CARRIER_2"; + private static final String TEST_GROUP_UUID = "59b5c870-fc4c-47a4-a99e-9db826b48b24"; + private static final int TEST_CARRIER_ID = 1; private static final SubscriptionInfo TEST_SUBSCRIPTION = new SubscriptionInfo(0, "", 0, TEST_CARRIER, TEST_CARRIER, NAME_SOURCE_DEFAULT_SOURCE, 0xFFFFFF, "", - DATA_ROAMING_DISABLE, null, null, null, null, false, null, ""); + DATA_ROAMING_DISABLE, null, null, null, null, false, null, "", false, TEST_GROUP_UUID, + TEST_CARRIER_ID, 0); + private static final SubscriptionInfo TEST_SUBSCRIPTION_2 = new SubscriptionInfo(0, "", 0, + TEST_CARRIER, TEST_CARRIER_2, NAME_SOURCE_DEFAULT_SOURCE, 0xFFFFFF, "", + DATA_ROAMING_DISABLE, null, null, null, null, false, null, "", true, TEST_GROUP_UUID, + TEST_CARRIER_ID, 0); private static final SubscriptionInfo TEST_SUBSCRIPTION_ROAMING = new SubscriptionInfo(0, "", 0, TEST_CARRIER, TEST_CARRIER, NAME_SOURCE_DEFAULT_SOURCE, 0xFFFFFF, "", DATA_ROAMING_ENABLE, null, null, null, null, false, null, ""); @@ -369,6 +377,33 @@ public class CarrierTextControllerTest extends SysuiTestCase { captor.getValue().carrierText); } + @Test + public void testCarrierText_GroupedSubWithOpportunisticCarrierText() { + reset(mCarrierTextCallback); + List<SubscriptionInfo> list = new ArrayList<>(); + list.add(TEST_SUBSCRIPTION); + list.add(TEST_SUBSCRIPTION_2); + when(mKeyguardUpdateMonitor.getSimState(anyInt())) + .thenReturn(IccCardConstants.State.READY); + when(mKeyguardUpdateMonitor.getSubscriptionInfo(anyBoolean())).thenReturn(list); + mKeyguardUpdateMonitor.mServiceStates = new HashMap<>(); + mCarrierTextController.updateDisplayOpportunisticSubscriptionCarrierText(); + + // STOPSHIP(b/130246708) This line makes sure that SubscriptionManager provides the + // same answer as KeyguardUpdateMonitor. Remove when this is addressed + when(mSubscriptionManager.getActiveSubscriptionInfoList(anyBoolean())).thenReturn(list); + + ArgumentCaptor<CarrierTextController.CarrierTextCallbackInfo> captor = + ArgumentCaptor.forClass( + CarrierTextController.CarrierTextCallbackInfo.class); + + mCarrierTextController.updateCarrierText(); + mTestableLooper.processAllMessages(); + verify(mCarrierTextCallback).updateCarrierInfo(captor.capture()); + + assertEquals(TEST_CARRIER_2, captor.getValue().carrierText); + } + public static class TestCarrierTextController extends CarrierTextController { private KeyguardUpdateMonitor mKUM; @@ -383,5 +418,10 @@ public class CarrierTextControllerTest extends SysuiTestCase { super.setListening(callback); mKeyguardUpdateMonitor = mKUM; } + + @Override + public void updateDisplayOpportunisticSubscriptionCarrierText() { + mDisplayOpportunisticSubscriptionCarrierText = true; + } } } diff --git a/telephony/java/com/android/internal/telephony/TelephonyProperties.java b/telephony/java/com/android/internal/telephony/TelephonyProperties.java index 030c3f495d0f..dd9b2421a333 100644 --- a/telephony/java/com/android/internal/telephony/TelephonyProperties.java +++ b/telephony/java/com/android/internal/telephony/TelephonyProperties.java @@ -224,4 +224,11 @@ public interface TelephonyProperties */ static final String PROPERTY_VIDEOCALL_AUDIO_OUTPUT = "persist.radio.call.audio.output"; + /** 'true' if the carrier text from opportunistic subscription should be used to display + * on UI. + * + */ + String DISPLAY_OPPORTUNISTIC_SUBSCRIPTION_CARRIER_TEXT_PROPERTY_NAME = + "persist.radio.display_opportunistic_carrier"; + } |