Merge "Show mobile data icon with carrier Wi-Fi level in Quick-Settings" into tm-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
f596386556
@@ -451,11 +451,11 @@ public class InternetDialogController implements AccessPointController.AccessPoi
|
|||||||
final SignalStrength strength = mTelephonyManager.getSignalStrength();
|
final SignalStrength strength = mTelephonyManager.getSignalStrength();
|
||||||
int level = (strength == null) ? 0 : strength.getLevel();
|
int level = (strength == null) ? 0 : strength.getLevel();
|
||||||
int numLevels = SignalStrength.NUM_SIGNAL_STRENGTH_BINS;
|
int numLevels = SignalStrength.NUM_SIGNAL_STRENGTH_BINS;
|
||||||
if ((mSubscriptionManager != null && shouldInflateSignalStrength(mDefaultDataSubId))
|
if (isCarrierNetworkActive) {
|
||||||
|| isCarrierNetworkActive) {
|
level = getCarrierNetworkLevel();
|
||||||
level = isCarrierNetworkActive
|
numLevels = WifiEntry.WIFI_LEVEL_MAX + 1;
|
||||||
? SignalStrength.NUM_SIGNAL_STRENGTH_BINS
|
} else if (mSubscriptionManager != null && shouldInflateSignalStrength(mDefaultDataSubId)) {
|
||||||
: (level + 1);
|
level += 1;
|
||||||
numLevels += 1;
|
numLevels += 1;
|
||||||
}
|
}
|
||||||
return getSignalStrengthIcon(mContext, level, numLevels, NO_CELL_DATA_TYPE_ICON,
|
return getSignalStrengthIcon(mContext, level, numLevels, NO_CELL_DATA_TYPE_ICON,
|
||||||
@@ -689,6 +689,17 @@ public class InternetDialogController implements AccessPointController.AccessPoi
|
|||||||
return mergedCarrierEntry != null && mergedCarrierEntry.isDefaultNetwork();
|
return mergedCarrierEntry != null && mergedCarrierEntry.isDefaultNetwork();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int getCarrierNetworkLevel() {
|
||||||
|
final MergedCarrierEntry mergedCarrierEntry =
|
||||||
|
mAccessPointController.getMergedCarrierEntry();
|
||||||
|
if (mergedCarrierEntry == null) return WifiEntry.WIFI_LEVEL_MIN;
|
||||||
|
|
||||||
|
int level = mergedCarrierEntry.getLevel();
|
||||||
|
// To avoid icons not found with WIFI_LEVEL_UNREACHABLE(-1), use WIFI_LEVEL_MIN(0) instead.
|
||||||
|
if (level < WifiEntry.WIFI_LEVEL_MIN) level = WifiEntry.WIFI_LEVEL_MIN;
|
||||||
|
return level;
|
||||||
|
}
|
||||||
|
|
||||||
@WorkerThread
|
@WorkerThread
|
||||||
void setMergedCarrierWifiEnabledIfNeed(int subId, boolean enabled) {
|
void setMergedCarrierWifiEnabledIfNeed(int subId, boolean enabled) {
|
||||||
// If the Carrier Provisions Wi-Fi Merged Networks enabled, do not set the merged carrier
|
// If the Carrier Provisions Wi-Fi Merged Networks enabled, do not set the merged carrier
|
||||||
|
|||||||
@@ -1,9 +1,15 @@
|
|||||||
package com.android.systemui.qs.tiles.dialog;
|
package com.android.systemui.qs.tiles.dialog;
|
||||||
|
|
||||||
import static android.provider.Settings.Global.AIRPLANE_MODE_ON;
|
import static android.provider.Settings.Global.AIRPLANE_MODE_ON;
|
||||||
|
import static android.telephony.SignalStrength.NUM_SIGNAL_STRENGTH_BINS;
|
||||||
|
import static android.telephony.SignalStrength.SIGNAL_STRENGTH_GREAT;
|
||||||
|
import static android.telephony.SignalStrength.SIGNAL_STRENGTH_POOR;
|
||||||
|
|
||||||
import static com.android.systemui.qs.tiles.dialog.InternetDialogController.TOAST_PARAMS_HORIZONTAL_WEIGHT;
|
import static com.android.systemui.qs.tiles.dialog.InternetDialogController.TOAST_PARAMS_HORIZONTAL_WEIGHT;
|
||||||
import static com.android.systemui.qs.tiles.dialog.InternetDialogController.TOAST_PARAMS_VERTICAL_WEIGHT;
|
import static com.android.systemui.qs.tiles.dialog.InternetDialogController.TOAST_PARAMS_VERTICAL_WEIGHT;
|
||||||
|
import static com.android.wifitrackerlib.WifiEntry.WIFI_LEVEL_MAX;
|
||||||
|
import static com.android.wifitrackerlib.WifiEntry.WIFI_LEVEL_MIN;
|
||||||
|
import static com.android.wifitrackerlib.WifiEntry.WIFI_LEVEL_UNREACHABLE;
|
||||||
|
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
|
|
||||||
@@ -17,6 +23,7 @@ import static org.mockito.Mockito.doReturn;
|
|||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
import static org.mockito.Mockito.never;
|
import static org.mockito.Mockito.never;
|
||||||
import static org.mockito.Mockito.reset;
|
import static org.mockito.Mockito.reset;
|
||||||
|
import static org.mockito.Mockito.spy;
|
||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
@@ -28,6 +35,7 @@ import android.net.ConnectivityManager;
|
|||||||
import android.net.wifi.WifiManager;
|
import android.net.wifi.WifiManager;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.telephony.ServiceState;
|
import android.telephony.ServiceState;
|
||||||
|
import android.telephony.SignalStrength;
|
||||||
import android.telephony.SubscriptionManager;
|
import android.telephony.SubscriptionManager;
|
||||||
import android.telephony.TelephonyManager;
|
import android.telephony.TelephonyManager;
|
||||||
import android.testing.AndroidTestingRunner;
|
import android.testing.AndroidTestingRunner;
|
||||||
@@ -140,6 +148,8 @@ public class InternetDialogControllerTest extends SysuiTestCase {
|
|||||||
private View mDialogLaunchView;
|
private View mDialogLaunchView;
|
||||||
@Mock
|
@Mock
|
||||||
private WifiStateWorker mWifiStateWorker;
|
private WifiStateWorker mWifiStateWorker;
|
||||||
|
@Mock
|
||||||
|
private SignalStrength mSignalStrength;
|
||||||
|
|
||||||
private TestableResources mTestableResources;
|
private TestableResources mTestableResources;
|
||||||
private InternetDialogController mInternetDialogController;
|
private InternetDialogController mInternetDialogController;
|
||||||
@@ -152,6 +162,8 @@ public class InternetDialogControllerTest extends SysuiTestCase {
|
|||||||
MockitoAnnotations.initMocks(this);
|
MockitoAnnotations.initMocks(this);
|
||||||
mTestableResources = mContext.getOrCreateTestableResources();
|
mTestableResources = mContext.getOrCreateTestableResources();
|
||||||
doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(anyInt());
|
doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(anyInt());
|
||||||
|
when(mTelephonyManager.getSignalStrength()).thenReturn(mSignalStrength);
|
||||||
|
when(mSignalStrength.getLevel()).thenReturn(SIGNAL_STRENGTH_GREAT);
|
||||||
when(mKeyguardStateController.isUnlocked()).thenReturn(true);
|
when(mKeyguardStateController.isUnlocked()).thenReturn(true);
|
||||||
when(mConnectedEntry.isDefaultNetwork()).thenReturn(true);
|
when(mConnectedEntry.isDefaultNetwork()).thenReturn(true);
|
||||||
when(mConnectedEntry.hasInternetAccess()).thenReturn(true);
|
when(mConnectedEntry.hasInternetAccess()).thenReturn(true);
|
||||||
@@ -380,7 +392,7 @@ public class InternetDialogControllerTest extends SysuiTestCase {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void getInternetWifiDrawable_withWifiLevelUnreachable_returnNull() {
|
public void getInternetWifiDrawable_withWifiLevelUnreachable_returnNull() {
|
||||||
when(mConnectedEntry.getLevel()).thenReturn(WifiEntry.WIFI_LEVEL_UNREACHABLE);
|
when(mConnectedEntry.getLevel()).thenReturn(WIFI_LEVEL_UNREACHABLE);
|
||||||
|
|
||||||
Drawable drawable = mInternetDialogController.getInternetWifiDrawable(mConnectedEntry);
|
Drawable drawable = mInternetDialogController.getInternetWifiDrawable(mConnectedEntry);
|
||||||
|
|
||||||
@@ -638,6 +650,57 @@ public class InternetDialogControllerTest extends SysuiTestCase {
|
|||||||
assertThat(mInternetDialogController.isWifiScanEnabled()).isTrue();
|
assertThat(mInternetDialogController.isWifiScanEnabled()).isTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getSignalStrengthDrawableWithLevel_carrierNetworkIsNotActive_useMobileDataLevel() {
|
||||||
|
// Fake mobile data level as SIGNAL_STRENGTH_POOR(1)
|
||||||
|
when(mSignalStrength.getLevel()).thenReturn(SIGNAL_STRENGTH_POOR);
|
||||||
|
// Fake carrier network level as WIFI_LEVEL_MAX(4)
|
||||||
|
when(mInternetDialogController.getCarrierNetworkLevel()).thenReturn(WIFI_LEVEL_MAX);
|
||||||
|
|
||||||
|
InternetDialogController spyController = spy(mInternetDialogController);
|
||||||
|
spyController.getSignalStrengthDrawableWithLevel(false /* isCarrierNetworkActive */);
|
||||||
|
|
||||||
|
verify(spyController).getSignalStrengthIcon(any(), eq(SIGNAL_STRENGTH_POOR),
|
||||||
|
eq(NUM_SIGNAL_STRENGTH_BINS), anyInt(), anyBoolean());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getSignalStrengthDrawableWithLevel_carrierNetworkIsActive_useCarrierNetworkLevel() {
|
||||||
|
// Fake mobile data level as SIGNAL_STRENGTH_POOR(1)
|
||||||
|
when(mSignalStrength.getLevel()).thenReturn(SIGNAL_STRENGTH_POOR);
|
||||||
|
// Fake carrier network level as WIFI_LEVEL_MAX(4)
|
||||||
|
when(mInternetDialogController.getCarrierNetworkLevel()).thenReturn(WIFI_LEVEL_MAX);
|
||||||
|
|
||||||
|
InternetDialogController spyController = spy(mInternetDialogController);
|
||||||
|
spyController.getSignalStrengthDrawableWithLevel(true /* isCarrierNetworkActive */);
|
||||||
|
|
||||||
|
verify(spyController).getSignalStrengthIcon(any(), eq(WIFI_LEVEL_MAX),
|
||||||
|
eq(WIFI_LEVEL_MAX + 1), anyInt(), anyBoolean());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getCarrierNetworkLevel_mergedCarrierEntryIsNull_returnMinLevel() {
|
||||||
|
when(mAccessPointController.getMergedCarrierEntry()).thenReturn(null);
|
||||||
|
|
||||||
|
assertThat(mInternetDialogController.getCarrierNetworkLevel()).isEqualTo(WIFI_LEVEL_MIN);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getCarrierNetworkLevel_getUnreachableLevel_returnMinLevel() {
|
||||||
|
when(mMergedCarrierEntry.getLevel()).thenReturn(WIFI_LEVEL_UNREACHABLE);
|
||||||
|
|
||||||
|
assertThat(mInternetDialogController.getCarrierNetworkLevel()).isEqualTo(WIFI_LEVEL_MIN);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getCarrierNetworkLevel_getAvailableLevel_returnSameLevel() {
|
||||||
|
for (int level = WIFI_LEVEL_MIN; level <= WIFI_LEVEL_MAX; level++) {
|
||||||
|
when(mMergedCarrierEntry.getLevel()).thenReturn(level);
|
||||||
|
|
||||||
|
assertThat(mInternetDialogController.getCarrierNetworkLevel()).isEqualTo(level);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private String getResourcesString(String name) {
|
private String getResourcesString(String name) {
|
||||||
return mContext.getResources().getString(getResourcesId(name));
|
return mContext.getResources().getString(getResourcesId(name));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user