diff options
2 files changed, 61 insertions, 35 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/shade/carrier/ShadeCarrierGroupController.java b/packages/SystemUI/src/com/android/systemui/shade/carrier/ShadeCarrierGroupController.java index fc1e87ad3e45..ad49b267c6ac 100644 --- a/packages/SystemUI/src/com/android/systemui/shade/carrier/ShadeCarrierGroupController.java +++ b/packages/SystemUI/src/com/android/systemui/shade/carrier/ShadeCarrierGroupController.java @@ -198,6 +198,11 @@ public class ShadeCarrierGroupController { return mSlotIndexResolver.getSlotIndex(subscriptionId); } + @VisibleForTesting + protected int getShadeCarrierVisibility(int index) { + return mCarrierGroups[index].getVisibility(); + } + /** * Sets a {@link OnSingleCarrierChangedListener}. * @@ -307,11 +312,13 @@ public class ShadeCarrierGroupController { + info.subscriptionIds[i]); continue; } - mInfos[slot] = mInfos[slot].changeVisibility(true); - slotSeen[slot] = true; - mCarrierGroups[slot].setCarrierText( - info.listOfCarriers[i].toString().trim()); - mCarrierGroups[slot].setVisibility(View.VISIBLE); + String carrierText = info.listOfCarriers[i].toString().trim(); + if (!TextUtils.isEmpty(carrierText)) { + mInfos[slot] = mInfos[slot].changeVisibility(true); + slotSeen[slot] = true; + mCarrierGroups[slot].setCarrierText(carrierText); + mCarrierGroups[slot].setVisibility(View.VISIBLE); + } } for (int i = 0; i < SIM_SLOTS; i++) { if (!slotSeen[i]) { diff --git a/packages/SystemUI/tests/src/com/android/systemui/shade/carrier/ShadeCarrierGroupControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/shade/carrier/ShadeCarrierGroupControllerTest.java index 57ae621f01ef..31bfa3fdf8cb 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/shade/carrier/ShadeCarrierGroupControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/shade/carrier/ShadeCarrierGroupControllerTest.java @@ -66,6 +66,11 @@ import org.mockito.MockitoAnnotations; @SmallTest public class ShadeCarrierGroupControllerTest extends LeakCheckedTest { + private static final String SINGLE_CARRIER_TEXT = "singleCarrierText"; + private static final String MULTI_CARRIER_TEXT = "multiCarrierText"; + private static final String FIRST_CARRIER_NAME = "carrier1"; + private static final String SECOND_CARRIER_NAME = "carrier2"; + private ShadeCarrierGroupController mShadeCarrierGroupController; private SignalCallback mSignalCallback; private CarrierTextManager.CarrierTextCallback mCallback; @@ -148,8 +153,8 @@ public class ShadeCarrierGroupControllerTest extends LeakCheckedTest { // listOfCarriers length 1, subscriptionIds length 1, anySims false CarrierTextManager.CarrierTextCallbackInfo c1 = new CarrierTextManager.CarrierTextCallbackInfo( - "", - new CharSequence[]{""}, + SINGLE_CARRIER_TEXT, + new CharSequence[]{FIRST_CARRIER_NAME}, false, new int[]{0}); mCallback.updateCarrierInfo(c1); @@ -157,8 +162,8 @@ public class ShadeCarrierGroupControllerTest extends LeakCheckedTest { // listOfCarriers length 1, subscriptionIds length 1, anySims true CarrierTextManager.CarrierTextCallbackInfo c2 = new CarrierTextManager.CarrierTextCallbackInfo( - "", - new CharSequence[]{""}, + SINGLE_CARRIER_TEXT, + new CharSequence[]{FIRST_CARRIER_NAME}, true, new int[]{0}); mCallback.updateCarrierInfo(c2); @@ -166,8 +171,8 @@ public class ShadeCarrierGroupControllerTest extends LeakCheckedTest { // listOfCarriers length 2, subscriptionIds length 2, anySims false CarrierTextManager.CarrierTextCallbackInfo c3 = new CarrierTextManager.CarrierTextCallbackInfo( - "", - new CharSequence[]{"", ""}, + MULTI_CARRIER_TEXT, + new CharSequence[]{FIRST_CARRIER_NAME, SECOND_CARRIER_NAME}, false, new int[]{0, 1}); mCallback.updateCarrierInfo(c3); @@ -175,8 +180,8 @@ public class ShadeCarrierGroupControllerTest extends LeakCheckedTest { // listOfCarriers length 2, subscriptionIds length 2, anySims true CarrierTextManager.CarrierTextCallbackInfo c4 = new CarrierTextManager.CarrierTextCallbackInfo( - "", - new CharSequence[]{"", ""}, + MULTI_CARRIER_TEXT, + new CharSequence[]{FIRST_CARRIER_NAME, SECOND_CARRIER_NAME}, true, new int[]{0, 1}); mCallback.updateCarrierInfo(c4); @@ -189,8 +194,8 @@ public class ShadeCarrierGroupControllerTest extends LeakCheckedTest { // listOfCarriers length 2, subscriptionIds length 1, anySims false CarrierTextManager.CarrierTextCallbackInfo c1 = new CarrierTextManager.CarrierTextCallbackInfo( - "", - new CharSequence[]{"", ""}, + MULTI_CARRIER_TEXT, + new CharSequence[]{FIRST_CARRIER_NAME, SECOND_CARRIER_NAME}, false, new int[]{0}); mCallback.updateCarrierInfo(c1); @@ -198,8 +203,8 @@ public class ShadeCarrierGroupControllerTest extends LeakCheckedTest { // listOfCarriers length 2, subscriptionIds length 1, anySims true CarrierTextManager.CarrierTextCallbackInfo c2 = new CarrierTextManager.CarrierTextCallbackInfo( - "", - new CharSequence[]{"", ""}, + MULTI_CARRIER_TEXT, + new CharSequence[]{FIRST_CARRIER_NAME, SECOND_CARRIER_NAME}, true, new int[]{0}); mCallback.updateCarrierInfo(c2); @@ -207,8 +212,8 @@ public class ShadeCarrierGroupControllerTest extends LeakCheckedTest { // listOfCarriers length 1, subscriptionIds length 2, anySims false CarrierTextManager.CarrierTextCallbackInfo c3 = new CarrierTextManager.CarrierTextCallbackInfo( - "", - new CharSequence[]{""}, + SINGLE_CARRIER_TEXT, + new CharSequence[]{FIRST_CARRIER_NAME}, false, new int[]{0, 1}); mCallback.updateCarrierInfo(c3); @@ -216,8 +221,8 @@ public class ShadeCarrierGroupControllerTest extends LeakCheckedTest { // listOfCarriers length 1, subscriptionIds length 2, anySims true CarrierTextManager.CarrierTextCallbackInfo c4 = new CarrierTextManager.CarrierTextCallbackInfo( - "", - new CharSequence[]{""}, + SINGLE_CARRIER_TEXT, + new CharSequence[]{FIRST_CARRIER_NAME}, true, new int[]{0, 1}); mCallback.updateCarrierInfo(c4); @@ -230,8 +235,8 @@ public class ShadeCarrierGroupControllerTest extends LeakCheckedTest { CarrierTextManager.CarrierTextCallbackInfo c4 = new CarrierTextManager.CarrierTextCallbackInfo( - "", - new CharSequence[]{"", ""}, + MULTI_CARRIER_TEXT, + new CharSequence[]{FIRST_CARRIER_NAME, SECOND_CARRIER_NAME}, true, new int[]{0, 1}); mCallback.updateCarrierInfo(c4); @@ -264,6 +269,20 @@ public class ShadeCarrierGroupControllerTest extends LeakCheckedTest { } @Test + public void testVisibleView_airplaneMode_WFCOn() { + CarrierTextManager.CarrierTextCallbackInfo + info = new CarrierTextManager.CarrierTextCallbackInfo( + "", + new CharSequence[]{FIRST_CARRIER_NAME, ""}, + true, + new int[]{0, 1}, + false /* airplaneMode */); + mCallback.updateCarrierInfo(info); + mTestableLooper.processAllMessages(); + assertEquals(View.VISIBLE, mShadeCarrierGroupController.getShadeCarrierVisibility(0)); + } + + @Test public void testListenerNotCalledOnRegistreation() { mShadeCarrierGroupController .setOnSingleCarrierChangedListener(mOnSingleCarrierChangedListener); @@ -276,8 +295,8 @@ public class ShadeCarrierGroupControllerTest extends LeakCheckedTest { // Only one element in the info CarrierTextManager.CarrierTextCallbackInfo info = new CarrierTextManager.CarrierTextCallbackInfo( - "", - new CharSequence[]{""}, + SINGLE_CARRIER_TEXT, + new CharSequence[]{SINGLE_CARRIER_TEXT}, true, new int[]{0}, false /* airplaneMode */); @@ -295,8 +314,8 @@ public class ShadeCarrierGroupControllerTest extends LeakCheckedTest { // More than one element in the info CarrierTextManager.CarrierTextCallbackInfo info = new CarrierTextManager.CarrierTextCallbackInfo( - "", - new CharSequence[]{"", ""}, + MULTI_CARRIER_TEXT, + new CharSequence[]{FIRST_CARRIER_NAME, SECOND_CARRIER_NAME}, true, new int[]{0, 1}, false /* airplaneMode */); @@ -313,16 +332,16 @@ public class ShadeCarrierGroupControllerTest extends LeakCheckedTest { public void testSingleMultiCarrierSwitch() { CarrierTextManager.CarrierTextCallbackInfo singleCarrierInfo = new CarrierTextManager.CarrierTextCallbackInfo( - "", - new CharSequence[]{""}, + SINGLE_CARRIER_TEXT, + new CharSequence[]{FIRST_CARRIER_NAME}, true, new int[]{0}, false /* airplaneMode */); CarrierTextManager.CarrierTextCallbackInfo multiCarrierInfo = new CarrierTextManager.CarrierTextCallbackInfo( - "", - new CharSequence[]{"", ""}, + MULTI_CARRIER_TEXT, + new CharSequence[]{FIRST_CARRIER_NAME, SECOND_CARRIER_NAME}, true, new int[]{0, 1}, false /* airplaneMode */); @@ -347,8 +366,8 @@ public class ShadeCarrierGroupControllerTest extends LeakCheckedTest { public void testNoCallbackIfSingleCarrierDoesntChange() { CarrierTextManager.CarrierTextCallbackInfo singleCarrierInfo = new CarrierTextManager.CarrierTextCallbackInfo( - "", - new CharSequence[]{""}, + SINGLE_CARRIER_TEXT, + new CharSequence[]{FIRST_CARRIER_NAME}, true, new int[]{0}, false /* airplaneMode */); @@ -369,8 +388,8 @@ public class ShadeCarrierGroupControllerTest extends LeakCheckedTest { public void testNoCallbackIfMultiCarrierDoesntChange() { CarrierTextManager.CarrierTextCallbackInfo multiCarrierInfo = new CarrierTextManager.CarrierTextCallbackInfo( - "", - new CharSequence[]{"", ""}, + MULTI_CARRIER_TEXT, + new CharSequence[]{FIRST_CARRIER_NAME, SECOND_CARRIER_NAME}, true, new int[]{0, 1}, false /* airplaneMode */); |