Merge "Show opportunistic provider name conditionally" into qt-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
c6e0753506
@@ -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];
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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";
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user