Snap for 7125381 from 638927eaad to sc-v2-release

Change-Id: I5a0a70371e4a3d7a14db4990a15d6d265803759a
This commit is contained in:
android-build-team Robot
2021-02-05 02:08:11 +00:00
25 changed files with 354 additions and 202 deletions

View File

@@ -48,11 +48,13 @@
</LinearLayout> </LinearLayout>
<LinearLayout <LinearLayout
android:id="@+id/header_layout"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:orientation="vertical"> android:orientation="vertical">
<TextView <TextView
android:id="@+id/header_title" android:id="@+id/header_title"
android:layout_width="wrap_content" android:layout_width="wrap_content"
@@ -67,8 +69,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:ellipsize="end" android:ellipsize="end"
android:maxLines="1" /> android:maxLines="1"/>
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>

View File

@@ -177,6 +177,7 @@ public class InternetPreferenceController extends AbstractPreferenceController i
if (subInfo == null) { if (subInfo == null) {
return; return;
} }
mPreference.setSummary(subInfo.getDisplayName()); mPreference.setSummary(SubscriptionUtil.getUniqueSubscriptionDisplayName(
subInfo, mContext));
} }
} }

View File

@@ -6,5 +6,6 @@ goldmanj@google.com
leechou@google.com leechou@google.com
songferngwang@google.com songferngwang@google.com
tomhsu@google.com tomhsu@google.com
zoeychen@google.com
# Emergency approvers in case the above are not available # Emergency approvers in case the above are not available

View File

@@ -26,7 +26,6 @@ import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.net.Uri; import android.net.Uri;
import android.provider.Settings;
import android.telephony.SubscriptionManager; import android.telephony.SubscriptionManager;
import android.util.Log; import android.util.Log;
@@ -87,9 +86,6 @@ public class ProviderModelSlice extends WifiSlice {
final ListBuilder listBuilder = mHelper.createListBuilder(getUri()); final ListBuilder listBuilder = mHelper.createListBuilder(getUri());
if (mHelper.isAirplaneModeEnabled() && !mWifiManager.isWifiEnabled()) { if (mHelper.isAirplaneModeEnabled() && !mWifiManager.isWifiEnabled()) {
log("Airplane mode is enabled."); log("Airplane mode is enabled.");
listBuilder.setHeader(mHelper.createHeader(Settings.ACTION_AIRPLANE_MODE_SETTINGS));
listBuilder.addGridRow(mHelper.createMessageGridRow(R.string.condition_airplane_title,
Settings.ACTION_AIRPLANE_MODE_SETTINGS));
return listBuilder.build(); return listBuilder.build();
} }
@@ -182,8 +178,9 @@ public class ProviderModelSlice extends WifiSlice {
} }
final int defaultSubId = subscriptionManager.getDefaultDataSubscriptionId(); final int defaultSubId = subscriptionManager.getDefaultDataSubscriptionId();
log("defaultSubId:" + defaultSubId); log("defaultSubId:" + defaultSubId);
if (!SubscriptionManager.isUsableSubscriptionId(defaultSubId)) {
return; // No subscription - do nothing. if (!defaultSubscriptionIsUsable(defaultSubId)) {
return;
} }
boolean isToggleAction = intent.hasExtra(EXTRA_TOGGLE_STATE); boolean isToggleAction = intent.hasExtra(EXTRA_TOGGLE_STATE);
@@ -194,10 +191,14 @@ public class ProviderModelSlice extends WifiSlice {
MobileNetworkUtils.setMobileDataEnabled(mContext, defaultSubId, newState, MobileNetworkUtils.setMobileDataEnabled(mContext, defaultSubId, newState,
false /* disableOtherSubscriptions */); false /* disableOtherSubscriptions */);
} }
doCarrierNetworkAction(isToggleAction, newState);
final boolean isDataEnabled =
isToggleAction ? newState : MobileNetworkUtils.isMobileDataEnabled(mContext);
doCarrierNetworkAction(isToggleAction, isDataEnabled);
} }
private void doCarrierNetworkAction(boolean isToggleAction, boolean isDataEnabled) { @VisibleForTesting
void doCarrierNetworkAction(boolean isToggleAction, boolean isDataEnabled) {
final NetworkProviderWorker worker = getWorker(); final NetworkProviderWorker worker = getWorker();
if (worker == null) { if (worker == null) {
return; return;
@@ -208,7 +209,7 @@ public class ProviderModelSlice extends WifiSlice {
return; return;
} }
if (MobileNetworkUtils.isMobileDataEnabled(mContext)) { if (isDataEnabled) {
worker.connectCarrierNetwork(); worker.connectCarrierNetwork();
} }
} }
@@ -258,4 +259,12 @@ public class ProviderModelSlice extends WifiSlice {
.setTitle(mContext.getText(R.string.ethernet)) .setTitle(mContext.getText(R.string.ethernet))
.setSubtitle(mContext.getText(R.string.cannot_switch_networks_while_connected)); .setSubtitle(mContext.getText(R.string.cannot_switch_networks_while_connected));
} }
/**
* Wrap the subscriptionManager call for test mocking.
*/
@VisibleForTesting
protected boolean defaultSubscriptionIsUsable(int defaultSubId) {
return SubscriptionManager.isUsableSubscriptionId(defaultSubId);
}
} }

View File

@@ -242,12 +242,14 @@ public class SubscriptionUtil {
public CharSequence uniqueName; public CharSequence uniqueName;
} }
final SubscriptionManager subscriptionManager =
context.getSystemService(SubscriptionManager.class);
// Map of SubscriptionId to DisplayName // Map of SubscriptionId to DisplayName
final Supplier<Stream<DisplayInfo>> originalInfos = final Supplier<Stream<DisplayInfo>> originalInfos =
() -> getActiveSubscriptions(subscriptionManager) () -> getAvailableSubscriptions(context)
.stream() .stream()
.filter(i -> {
// Filter out null values.
return (i != null && i.getDisplayName() != null);
})
.map(i -> { .map(i -> {
DisplayInfo info = new DisplayInfo(); DisplayInfo info = new DisplayInfo();
info.subscriptionInfo = i; info.subscriptionInfo = i;

View File

@@ -30,6 +30,7 @@ import androidx.preference.Preference;
import androidx.preference.SwitchPreference; import androidx.preference.SwitchPreference;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.network.SubscriptionUtil;
import java.util.Objects; import java.util.Objects;
@@ -119,7 +120,8 @@ public class BackupCallingPreferenceController extends TelephonyTogglePreference
private String getLatestSummary() { private String getLatestSummary() {
SubscriptionInfo subInfo = getSubscriptionInfo(); SubscriptionInfo subInfo = getSubscriptionInfo();
return Objects.toString((subInfo == null) ? null : subInfo.getDisplayName(), ""); return Objects.toString((subInfo == null) ? null
: SubscriptionUtil.getUniqueSubscriptionDisplayName(subInfo, mContext), "");
} }
private void updateSummary(String displayName) { private void updateSummary(String displayName) {

View File

@@ -104,7 +104,7 @@ public class NetworkProviderBackupCallingPreferenceController extends
} }
SwitchPreference pref = new SwitchPreference(mContext); SwitchPreference pref = new SwitchPreference(mContext);
prefCtrl.updateState(pref); prefCtrl.updateState(pref);
pref.setTitle(subInfo.getDisplayName()); pref.setTitle(SubscriptionUtil.getUniqueSubscriptionDisplayName(subInfo, mContext));
return pref; return pref;
} }

View File

@@ -19,6 +19,7 @@ package com.android.settings.panel;
import static androidx.lifecycle.Lifecycle.Event.ON_PAUSE; import static androidx.lifecycle.Lifecycle.Event.ON_PAUSE;
import static androidx.lifecycle.Lifecycle.Event.ON_RESUME; import static androidx.lifecycle.Lifecycle.Event.ON_RESUME;
import static com.android.settings.network.InternetUpdater.INTERNET_APM;
import static com.android.settings.network.InternetUpdater.INTERNET_APM_NETWORKS; import static com.android.settings.network.InternetUpdater.INTERNET_APM_NETWORKS;
import static com.android.settings.network.NetworkProviderSettings.ACTION_NETWORK_PROVIDER_SETTINGS; import static com.android.settings.network.NetworkProviderSettings.ACTION_NETWORK_PROVIDER_SETTINGS;
@@ -83,6 +84,9 @@ public class InternetConnectivityPanel implements PanelContent, LifecycleObserve
mInternetUpdater.onPause(); mInternetUpdater.onPause();
} }
/**
* @return a string for the title of the Panel.
*/
@Override @Override
public CharSequence getTitle() { public CharSequence getTitle() {
if (mIsProviderModelEnabled) { if (mIsProviderModelEnabled) {
@@ -93,10 +97,21 @@ public class InternetConnectivityPanel implements PanelContent, LifecycleObserve
return mContext.getText(R.string.internet_connectivity_panel_title); return mContext.getText(R.string.internet_connectivity_panel_title);
} }
/**
* @return a string for the subtitle of the Panel.
*/
@Override
public CharSequence getSubTitle() {
if (mIsProviderModelEnabled && mInternetType == INTERNET_APM) {
return mContext.getText(R.string.condition_airplane_title);
}
return null;
}
@Override @Override
public List<Uri> getSlices() { public List<Uri> getSlices() {
final List<Uri> uris = new ArrayList<>(); final List<Uri> uris = new ArrayList<>();
if (Utils.isProviderModelEnabled(mContext)) { if (mIsProviderModelEnabled) {
uris.add(CustomSliceRegistry.PROVIDER_MODEL_SLICE_URI); uris.add(CustomSliceRegistry.PROVIDER_MODEL_SLICE_URI);
uris.add(CustomSliceRegistry.AIRPLANE_SAFE_NETWORKS_SLICE_URI); uris.add(CustomSliceRegistry.AIRPLANE_SAFE_NETWORKS_SLICE_URI);
} else { } else {
@@ -109,18 +124,21 @@ public class InternetConnectivityPanel implements PanelContent, LifecycleObserve
@Override @Override
public Intent getSeeMoreIntent() { public Intent getSeeMoreIntent() {
return new Intent(Utils.isProviderModelEnabled(mContext) return new Intent(mIsProviderModelEnabled
? ACTION_NETWORK_PROVIDER_SETTINGS : Settings.ACTION_WIRELESS_SETTINGS) ? ACTION_NETWORK_PROVIDER_SETTINGS : Settings.ACTION_WIRELESS_SETTINGS)
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
} }
@Override @Override
public boolean isCustomizedButtonUsed() { public boolean isCustomizedButtonUsed() {
return Utils.isProviderModelEnabled(mContext); return mIsProviderModelEnabled;
} }
@Override @Override
public CharSequence getCustomizedButtonTitle() { public CharSequence getCustomizedButtonTitle() {
if (mInternetType == INTERNET_APM) {
return null;
}
return mContext.getText(R.string.settings_button); return mContext.getText(R.string.settings_button);
} }
@@ -145,18 +163,35 @@ public class InternetConnectivityPanel implements PanelContent, LifecycleObserve
* @param internetType the internet type * @param internetType the internet type
*/ */
public void onInternetTypeChanged(@InternetUpdater.InternetType int internetType) { public void onInternetTypeChanged(@InternetUpdater.InternetType int internetType) {
final boolean needRefresh = internetType != mInternetType if (internetType == mInternetType) {
&& (internetType == INTERNET_APM_NETWORKS return;
|| mInternetType == INTERNET_APM_NETWORKS);
mInternetType = internetType;
if (needRefresh) {
refresh();
} }
}
private void refresh() { final boolean changeToApm = (internetType == INTERNET_APM);
final boolean changeFromApm = (mInternetType == INTERNET_APM);
final boolean changeWithApmNetworks =
(internetType == INTERNET_APM_NETWORKS || mInternetType == INTERNET_APM_NETWORKS);
mInternetType = internetType;
if (mCallback != null) { if (mCallback != null) {
mCallback.onTitleChanged(); if (changeToApm) {
// The internet type is changed to the airplane mode.
// Title: Internet
// Sub-Title: Airplane mode is on
// Settings button: Hide
mCallback.onHeaderChanged();
mCallback.onCustomizedButtonStateChanged();
} else if (changeFromApm) {
// The internet type is changed from the airplane mode.
// Title: Internet
// Settings button: Show
mCallback.onTitleChanged();
mCallback.onCustomizedButtonStateChanged();
} else if (changeWithApmNetworks) {
// The internet type is changed with the airplane mode networks.
// Title: Airplane mode networks / Internet
mCallback.onTitleChanged();
}
} }
} }
} }

View File

@@ -26,6 +26,7 @@ import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.text.TextUtils; import android.text.TextUtils;
import android.view.Gravity;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
@@ -94,6 +95,7 @@ public class PanelFragment extends Fragment {
private LinearLayout mPanelHeader; private LinearLayout mPanelHeader;
private ImageView mTitleIcon; private ImageView mTitleIcon;
private LinearLayout mTitleGroup; private LinearLayout mTitleGroup;
private LinearLayout mHeaderLayout;
private TextView mHeaderTitle; private TextView mHeaderTitle;
private TextView mHeaderSubtitle; private TextView mHeaderSubtitle;
private int mMaxHeight; private int mMaxHeight;
@@ -202,6 +204,7 @@ public class PanelFragment extends Fragment {
mPanelHeader = mLayoutView.findViewById(R.id.panel_header); mPanelHeader = mLayoutView.findViewById(R.id.panel_header);
mTitleIcon = mLayoutView.findViewById(R.id.title_icon); mTitleIcon = mLayoutView.findViewById(R.id.title_icon);
mTitleGroup = mLayoutView.findViewById(R.id.title_group); mTitleGroup = mLayoutView.findViewById(R.id.title_group);
mHeaderLayout = mLayoutView.findViewById(R.id.header_layout);
mHeaderTitle = mLayoutView.findViewById(R.id.header_title); mHeaderTitle = mLayoutView.findViewById(R.id.header_title);
mHeaderSubtitle = mLayoutView.findViewById(R.id.header_subtitle); mHeaderSubtitle = mLayoutView.findViewById(R.id.header_subtitle);
mFooterDivider = mLayoutView.findViewById(R.id.footer_divider); mFooterDivider = mLayoutView.findViewById(R.id.footer_divider);
@@ -239,13 +242,12 @@ public class PanelFragment extends Fragment {
final IconCompat icon = mPanel.getIcon(); final IconCompat icon = mPanel.getIcon();
final CharSequence title = mPanel.getTitle(); final CharSequence title = mPanel.getTitle();
final CharSequence subtitle = mPanel.getSubTitle();
if (icon != null) { if (icon != null || (subtitle != null && subtitle.length() > 0)) {
enablePanelHeader(icon, title); enablePanelHeader(icon, title, subtitle);
} else { } else {
mTitleView.setVisibility(View.VISIBLE); enableTitle(title);
mPanelHeader.setVisibility(View.GONE);
mTitleView.setText(title);
} }
mFooterDivider.setVisibility(View.GONE); mFooterDivider.setVisibility(View.GONE);
@@ -254,13 +256,7 @@ public class PanelFragment extends Fragment {
mDoneButton.setOnClickListener(getCloseListener()); mDoneButton.setOnClickListener(getCloseListener());
if (mPanel.isCustomizedButtonUsed()) { if (mPanel.isCustomizedButtonUsed()) {
final CharSequence customTitle = mPanel.getCustomizedButtonTitle(); enableCustomizedButton();
if (TextUtils.isEmpty(customTitle)) {
mSeeMoreButton.setVisibility(View.GONE);
} else {
mSeeMoreButton.setVisibility(View.VISIBLE);
mSeeMoreButton.setText(customTitle);
}
} else if (mPanel.getSeeMoreIntent() == null) { } else if (mPanel.getSeeMoreIntent() == null) {
// If getSeeMoreIntent() is null hide the mSeeMoreButton. // If getSeeMoreIntent() is null hide the mSeeMoreButton.
mSeeMoreButton.setVisibility(View.GONE); mSeeMoreButton.setVisibility(View.GONE);
@@ -275,14 +271,16 @@ public class PanelFragment extends Fragment {
0 /* value */); 0 /* value */);
} }
private void enablePanelHeader(IconCompat icon, CharSequence title) { private void enablePanelHeader(IconCompat icon, CharSequence title, CharSequence subtitle) {
mTitleView.setVisibility(View.GONE); mTitleView.setVisibility(View.GONE);
mPanelHeader.setVisibility(View.VISIBLE); mPanelHeader.setVisibility(View.VISIBLE);
mPanelHeader.setAccessibilityPaneTitle(title); mPanelHeader.setAccessibilityPaneTitle(title);
mHeaderTitle.setText(title); mHeaderTitle.setText(title);
mHeaderSubtitle.setText(mPanel.getSubTitle()); mHeaderSubtitle.setText(subtitle);
mHeaderSubtitle.setAccessibilityPaneTitle(subtitle);
if (icon != null) { if (icon != null) {
mTitleGroup.setVisibility(View.VISIBLE); mTitleGroup.setVisibility(View.VISIBLE);
mHeaderLayout.setGravity(Gravity.LEFT);
mTitleIcon.setImageIcon(icon.toIcon(getContext())); mTitleIcon.setImageIcon(icon.toIcon(getContext()));
if (mPanel.getHeaderIconIntent() != null) { if (mPanel.getHeaderIconIntent() != null) {
mTitleIcon.setOnClickListener(getHeaderIconListener()); mTitleIcon.setOnClickListener(getHeaderIconListener());
@@ -295,6 +293,24 @@ public class PanelFragment extends Fragment {
} }
} else { } else {
mTitleGroup.setVisibility(View.GONE); mTitleGroup.setVisibility(View.GONE);
mHeaderLayout.setGravity(Gravity.CENTER_HORIZONTAL);
}
}
private void enableTitle(CharSequence title) {
mPanelHeader.setVisibility(View.GONE);
mTitleView.setVisibility(View.VISIBLE);
mTitleView.setAccessibilityPaneTitle(title);
mTitleView.setText(title);
}
private void enableCustomizedButton() {
final CharSequence customTitle = mPanel.getCustomizedButtonTitle();
if (TextUtils.isEmpty(customTitle)) {
mSeeMoreButton.setVisibility(View.GONE);
} else {
mSeeMoreButton.setVisibility(View.VISIBLE);
mSeeMoreButton.setText(customTitle);
} }
} }
@@ -487,24 +503,14 @@ public class PanelFragment extends Fragment {
@Override @Override
public void onCustomizedButtonStateChanged() { public void onCustomizedButtonStateChanged() {
ThreadUtils.postOnMainThread(() -> { ThreadUtils.postOnMainThread(() -> {
mSeeMoreButton.setVisibility( enableCustomizedButton();
mPanel.isCustomizedButtonUsed() ? View.VISIBLE : View.GONE);
mSeeMoreButton.setText(mPanel.getCustomizedButtonTitle());
}); });
} }
@Override @Override
public void onHeaderChanged() { public void onHeaderChanged() {
ThreadUtils.postOnMainThread(() -> { ThreadUtils.postOnMainThread(() -> {
final IconCompat icon = mPanel.getIcon(); enablePanelHeader(mPanel.getIcon(), mPanel.getTitle(), mPanel.getSubTitle());
if (icon != null) {
mTitleIcon.setImageIcon(icon.toIcon(getContext()));
mTitleGroup.setVisibility(View.VISIBLE);
} else {
mTitleGroup.setVisibility(View.GONE);
}
mHeaderTitle.setText(mPanel.getTitle());
mHeaderSubtitle.setText(mPanel.getSubTitle());
}); });
} }
@@ -517,7 +523,7 @@ public class PanelFragment extends Fragment {
@Override @Override
public void onTitleChanged() { public void onTitleChanged() {
ThreadUtils.postOnMainThread(() -> { ThreadUtils.postOnMainThread(() -> {
mTitleView.setText(mPanel.getTitle()); enableTitle(mPanel.getTitle());
}); });
} }

View File

@@ -104,6 +104,7 @@ public class MobileNetworkSummaryControllerTest {
@After @After
public void tearDown() { public void tearDown() {
SubscriptionUtil.setActiveSubscriptionsForTesting(null);
SubscriptionUtil.setAvailableSubscriptionsForTesting(null); SubscriptionUtil.setAvailableSubscriptionsForTesting(null);
} }
@@ -269,7 +270,8 @@ public class MobileNetworkSummaryControllerTest {
when(sub1.getDisplayName()).thenReturn("sub1"); when(sub1.getDisplayName()).thenReturn("sub1");
when(sub2.getDisplayName()).thenReturn("sub2"); when(sub2.getDisplayName()).thenReturn("sub2");
SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(sub1)); when(mSubscriptionManager.getAvailableSubscriptionInfoList()).thenReturn(
Arrays.asList(sub1));
SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1)); SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1));
mController.displayPreference(mPreferenceScreen); mController.displayPreference(mPreferenceScreen);
mController.onResume(); mController.onResume();

View File

@@ -45,8 +45,10 @@ import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.FragmentActivity; import androidx.fragment.app.FragmentActivity;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.network.SubscriptionUtil;
import com.android.settings.testutils.shadow.ShadowAlertDialogCompat; import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
import org.junit.After;
import org.junit.Before; import org.junit.Before;
import org.junit.Ignore; import org.junit.Ignore;
import org.junit.Test; import org.junit.Test;
@@ -109,8 +111,15 @@ public class RenameMobileNetworkDialogFragmentTest {
mSubscriptionInfoList.add(mSubscriptionInfo); mSubscriptionInfoList.add(mSubscriptionInfo);
when(mSubscriptionMgr.getAvailableSubscriptionInfoList()).thenReturn( when(mSubscriptionMgr.getAvailableSubscriptionInfoList()).thenReturn(
mSubscriptionInfoList); mSubscriptionInfoList);
SubscriptionUtil.setAvailableSubscriptionsForTesting(mSubscriptionInfoList);
} }
@After
public void tearDown() {
SubscriptionUtil.setAvailableSubscriptionsForTesting(null);
}
@Test @Test
@Ignore @Ignore
public void dialog_subscriptionMissing_noCrash() { public void dialog_subscriptionMissing_noCrash() {

View File

@@ -1,83 +0,0 @@
/*
* Copyright (C) 2018 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
package com.android.settings.panel;
import static com.google.common.truth.Truth.assertThat;
import android.net.Uri;
import android.os.SystemProperties;
import com.android.settings.network.AirplaneModePreferenceController;
import com.android.settings.slices.CustomSliceRegistry;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import java.util.List;
@RunWith(RobolectricTestRunner.class)
public class InternetConnectivityPanelTest {
private InternetConnectivityPanel mPanel;
private static final String SETTINGS_PROVIDER_MODEL =
"persist.sys.fflag.override.settings_provider_model";
private boolean mSettingsProviderModelState;
@Before
public void setUp() {
mPanel = InternetConnectivityPanel.create(RuntimeEnvironment.application);
mSettingsProviderModelState = SystemProperties.getBoolean(SETTINGS_PROVIDER_MODEL, false);
}
@After
public void tearDown() {
SystemProperties.set(SETTINGS_PROVIDER_MODEL,
mSettingsProviderModelState ? "true" : "false");
}
@Test
public void getSlices_providerModelDisabled_containsNecessarySlices() {
SystemProperties.set(SETTINGS_PROVIDER_MODEL, "false");
final List<Uri> uris = mPanel.getSlices();
assertThat(uris).containsExactly(
AirplaneModePreferenceController.SLICE_URI,
CustomSliceRegistry.MOBILE_DATA_SLICE_URI,
CustomSliceRegistry.WIFI_SLICE_URI);
}
@Test
public void getSlices_providerModelEnabled_containsNecessarySlices() {
SystemProperties.set(SETTINGS_PROVIDER_MODEL, "true");
final List<Uri> uris = mPanel.getSlices();
assertThat(uris).containsExactly(
CustomSliceRegistry.PROVIDER_MODEL_SLICE_URI,
CustomSliceRegistry.AIRPLANE_SAFE_NETWORKS_SLICE_URI);
}
@Test
public void getSeeMoreIntent_notNull() {
assertThat(mPanel.getSeeMoreIntent()).isNotNull();
}
}

View File

@@ -75,6 +75,7 @@ public class PreferredSimDialogFragmentTest extends
@Test @Test
public void onCreateDialog_twoSimsSelectFirst_correctMessage() { public void onCreateDialog_twoSimsSelectFirst_correctMessage() {
SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(mSim1, mSim2));
SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(mSim1, mSim2)); SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(mSim1, mSim2));
mIntent.putExtra(PREFERRED_SIM, 0); mIntent.putExtra(PREFERRED_SIM, 0);
@@ -87,6 +88,7 @@ public class PreferredSimDialogFragmentTest extends
@Test @Test
public void onCreateDialog_twoSimsSelectSecond_correctMessage() { public void onCreateDialog_twoSimsSelectSecond_correctMessage() {
SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(mSim1, mSim2));
SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(mSim1, mSim2)); SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(mSim1, mSim2));
mIntent.putExtra(PREFERRED_SIM, 1); mIntent.putExtra(PREFERRED_SIM, 1);
@@ -99,6 +101,7 @@ public class PreferredSimDialogFragmentTest extends
@Test @Test
public void onClick_yesClicked_callsOnSubscriptionSelected() { public void onClick_yesClicked_callsOnSubscriptionSelected() {
SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(mSim1, mSim2));
mIntent.putExtra(PREFERRED_SIM, 0); mIntent.putExtra(PREFERRED_SIM, 0);
final AlertDialog alertDialog = startDialog(); final AlertDialog alertDialog = startDialog();
@@ -113,6 +116,7 @@ public class PreferredSimDialogFragmentTest extends
@Test @Test
public void onClick_noClicked_doesNotCallOnSubscriptionSelected() { public void onClick_noClicked_doesNotCallOnSubscriptionSelected() {
SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(mSim1, mSim2));
mIntent.putExtra(PREFERRED_SIM, 0); mIntent.putExtra(PREFERRED_SIM, 0);
final AlertDialog alertDialog = startDialog(); final AlertDialog alertDialog = startDialog();

View File

@@ -130,6 +130,7 @@ public class SimSelectNotificationTest {
when(mTelephonyManager.createForSubscriptionId(anyInt())).thenReturn(mTelephonyManager); when(mTelephonyManager.createForSubscriptionId(anyInt())).thenReturn(mTelephonyManager);
when(mTelephonyManager.isDataEnabledForApn(TYPE_MMS)).thenReturn(false); when(mTelephonyManager.isDataEnabledForApn(TYPE_MMS)).thenReturn(false);
SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(mSubInfo));
SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(mSubInfo)); SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(mSubInfo));
when(mSubscriptionManager.isActiveSubscriptionId(mSubId)).thenReturn(true); when(mSubscriptionManager.isActiveSubscriptionId(mSubId)).thenReturn(true);
when(mSubscriptionManager.getActiveSubscriptionInfo(mSubId)).thenReturn(mSubInfo); when(mSubscriptionManager.getActiveSubscriptionInfo(mSubId)).thenReturn(mSubInfo);

View File

@@ -49,6 +49,7 @@ import android.widget.Spinner;
import android.widget.TextView; import android.widget.TextView;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.network.SubscriptionUtil;
import com.android.settings.testutils.shadow.ShadowConnectivityManager; import com.android.settings.testutils.shadow.ShadowConnectivityManager;
import com.android.settings.wifi.details2.WifiPrivacyPreferenceController2; import com.android.settings.wifi.details2.WifiPrivacyPreferenceController2;
import com.android.wifitrackerlib.WifiEntry; import com.android.wifitrackerlib.WifiEntry;
@@ -834,6 +835,7 @@ public class WifiConfigController2Test {
when(subscriptionInfo.getDisplayName()).thenReturn("FAKE-CARRIER"); when(subscriptionInfo.getDisplayName()).thenReturn("FAKE-CARRIER");
when(subscriptionInfo.getCarrierId()).thenReturn(carrierId); when(subscriptionInfo.getCarrierId()).thenReturn(carrierId);
when(subscriptionInfo.getCarrierName()).thenReturn("FAKE-CARRIER"); when(subscriptionInfo.getCarrierName()).thenReturn("FAKE-CARRIER");
SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(subscriptionInfo));
mShadowSubscriptionManager.setActiveSubscriptionInfoList(Arrays.asList(subscriptionInfo)); mShadowSubscriptionManager.setActiveSubscriptionInfoList(Arrays.asList(subscriptionInfo));
mController = new TestWifiConfigController2(mConfigUiBase, mView, mWifiEntry, mController = new TestWifiConfigController2(mConfigUiBase, mView, mWifiEntry,
WifiConfigUiBase2.MODE_CONNECT); WifiConfigUiBase2.MODE_CONNECT);

View File

@@ -49,6 +49,7 @@ import android.widget.Spinner;
import android.widget.TextView; import android.widget.TextView;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.network.SubscriptionUtil;
import com.android.settings.testutils.shadow.ShadowConnectivityManager; import com.android.settings.testutils.shadow.ShadowConnectivityManager;
import com.android.settingslib.wifi.AccessPoint; import com.android.settingslib.wifi.AccessPoint;
@@ -629,6 +630,7 @@ public class WifiConfigControllerTest {
when(subscriptionInfo.getDisplayName()).thenReturn("FAKE-CARRIER"); when(subscriptionInfo.getDisplayName()).thenReturn("FAKE-CARRIER");
when(subscriptionInfo.getCarrierId()).thenReturn(carrierId); when(subscriptionInfo.getCarrierId()).thenReturn(carrierId);
when(subscriptionInfo.getCarrierName()).thenReturn("FAKE-CARRIER"); when(subscriptionInfo.getCarrierName()).thenReturn("FAKE-CARRIER");
SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(subscriptionInfo));
mShadowSubscriptionManager.setActiveSubscriptionInfoList(Arrays.asList(subscriptionInfo)); mShadowSubscriptionManager.setActiveSubscriptionInfoList(Arrays.asList(subscriptionInfo));
mController = new TestWifiConfigController(mConfigUiBase, mView, mAccessPoint, mController = new TestWifiConfigController(mConfigUiBase, mView, mAccessPoint,
WifiConfigUiBase.MODE_CONNECT); WifiConfigUiBase.MODE_CONNECT);

View File

@@ -125,6 +125,8 @@ public class WifiCallingSettingsTest {
when(info1.getDisplayName()).thenReturn(DISPLAY_NAME1); when(info1.getDisplayName()).thenReturn(DISPLAY_NAME1);
when(info2.getDisplayName()).thenReturn(DISPLAY_NAME2); when(info2.getDisplayName()).thenReturn(DISPLAY_NAME2);
SubscriptionUtil.setAvailableSubscriptionsForTesting(new ArrayList<>(
Arrays.asList(info1, info2)));
SubscriptionUtil.setActiveSubscriptionsForTesting(new ArrayList<>( SubscriptionUtil.setActiveSubscriptionsForTesting(new ArrayList<>(
Arrays.asList(info1, info2))); Arrays.asList(info1, info2)));

View File

@@ -17,9 +17,13 @@
package com.android.settings.network; package com.android.settings.network;
import static androidx.lifecycle.Lifecycle.Event; import static androidx.lifecycle.Lifecycle.Event;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;
import android.content.Context; import android.content.Context;
import android.os.Looper; import android.os.Looper;
@@ -27,19 +31,17 @@ import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager; import android.telephony.SubscriptionManager;
import android.text.TextUtils; import android.text.TextUtils;
import com.android.settings.testutils.ResourcesUtils;
import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.RestrictedPreference;
import androidx.lifecycle.LifecycleOwner; import androidx.lifecycle.LifecycleOwner;
import androidx.lifecycle.LifecycleRegistry; import androidx.lifecycle.LifecycleRegistry;
import androidx.preference.PreferenceCategory;
import androidx.preference.PreferenceManager; import androidx.preference.PreferenceManager;
import androidx.preference.PreferenceScreen; import androidx.preference.PreferenceScreen;
import androidx.test.annotation.UiThreadTest; import androidx.test.annotation.UiThreadTest;
import androidx.test.core.app.ApplicationProvider; import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.InstrumentationRegistry;
import com.android.settings.testutils.ResourcesUtils;
import com.android.settingslib.RestrictedPreference;
import com.android.settingslib.core.lifecycle.Lifecycle;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
@@ -50,9 +52,6 @@ import org.mockito.MockitoAnnotations;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;
@RunWith(AndroidJUnit4.class) @RunWith(AndroidJUnit4.class)
public class NetworkProviderCallsSmsControllerTest { public class NetworkProviderCallsSmsControllerTest {
@@ -156,6 +155,7 @@ public class NetworkProviderCallsSmsControllerTest {
@UiThreadTest @UiThreadTest
public void getSummary_noSim_returnNoSim() { public void getSummary_noSim_returnNoSim() {
when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(new ArrayList<>()); when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(new ArrayList<>());
when(mSubscriptionManager.getAvailableSubscriptionInfoList()).thenReturn(new ArrayList<>());
displayPreferenceWithLifecycle(); displayPreferenceWithLifecycle();
assertTrue(TextUtils.equals(mController.getSummary(), assertTrue(TextUtils.equals(mController.getSummary(),
@@ -169,6 +169,8 @@ public class NetworkProviderCallsSmsControllerTest {
mSubscriptionInfo1); mSubscriptionInfo1);
when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn( when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(
Arrays.asList(mSubscriptionInfo1)); Arrays.asList(mSubscriptionInfo1));
when(mSubscriptionManager.getAvailableSubscriptionInfoList()).thenReturn(
Arrays.asList(mSubscriptionInfo1));
displayPreferenceWithLifecycle(); displayPreferenceWithLifecycle();
final StringBuilder summary = new StringBuilder(); final StringBuilder summary = new StringBuilder();
@@ -188,6 +190,8 @@ public class NetworkProviderCallsSmsControllerTest {
setupSubscriptionInfoList(SUB_ID_2, DISPLAY_NAME_2, mSubscriptionInfo2); setupSubscriptionInfoList(SUB_ID_2, DISPLAY_NAME_2, mSubscriptionInfo2);
when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn( when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(
Arrays.asList(mSubscriptionInfo1, mSubscriptionInfo2)); Arrays.asList(mSubscriptionInfo1, mSubscriptionInfo2));
when(mSubscriptionManager.getAvailableSubscriptionInfoList()).thenReturn(
Arrays.asList(mSubscriptionInfo1, mSubscriptionInfo2));
displayPreferenceWithLifecycle(); displayPreferenceWithLifecycle();
final StringBuilder summary = new StringBuilder(); final StringBuilder summary = new StringBuilder();
@@ -209,6 +213,8 @@ public class NetworkProviderCallsSmsControllerTest {
setupSubscriptionInfoList(SUB_ID_1, DISPLAY_NAME_1, mSubscriptionInfo1); setupSubscriptionInfoList(SUB_ID_1, DISPLAY_NAME_1, mSubscriptionInfo1);
when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn( when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(
Arrays.asList(mSubscriptionInfo1)); Arrays.asList(mSubscriptionInfo1));
when(mSubscriptionManager.getAvailableSubscriptionInfoList()).thenReturn(
Arrays.asList(mSubscriptionInfo1));
displayPreferenceWithLifecycle(); displayPreferenceWithLifecycle();
assertThat(mPreference.getSummary()).isEqualTo(DISPLAY_NAME_1); assertThat(mPreference.getSummary()).isEqualTo(DISPLAY_NAME_1);
@@ -221,6 +227,8 @@ public class NetworkProviderCallsSmsControllerTest {
setupSubscriptionInfoList(SUB_ID_2, DISPLAY_NAME_2, mSubscriptionInfo2); setupSubscriptionInfoList(SUB_ID_2, DISPLAY_NAME_2, mSubscriptionInfo2);
when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn( when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(
Arrays.asList(mSubscriptionInfo1, mSubscriptionInfo2)); Arrays.asList(mSubscriptionInfo1, mSubscriptionInfo2));
when(mSubscriptionManager.getAvailableSubscriptionInfoList()).thenReturn(
Arrays.asList(mSubscriptionInfo1, mSubscriptionInfo2));
displayPreferenceWithLifecycle(); displayPreferenceWithLifecycle();
final StringBuilder summary = new StringBuilder(); final StringBuilder summary = new StringBuilder();
@@ -240,6 +248,8 @@ public class NetworkProviderCallsSmsControllerTest {
setupSubscriptionInfoList(SUB_ID_2, DISPLAY_NAME_2, mSubscriptionInfo2); setupSubscriptionInfoList(SUB_ID_2, DISPLAY_NAME_2, mSubscriptionInfo2);
when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn( when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(
Arrays.asList(mSubscriptionInfo1, mSubscriptionInfo2)); Arrays.asList(mSubscriptionInfo1, mSubscriptionInfo2));
when(mSubscriptionManager.getAvailableSubscriptionInfoList()).thenReturn(
Arrays.asList(mSubscriptionInfo1, mSubscriptionInfo2));
displayPreferenceWithLifecycle(); displayPreferenceWithLifecycle();
final StringBuilder summary = new StringBuilder(); final StringBuilder summary = new StringBuilder();
@@ -267,6 +277,8 @@ public class NetworkProviderCallsSmsControllerTest {
setupSubscriptionInfoList(SUB_ID_2, DISPLAY_NAME_2, mSubscriptionInfo2); setupSubscriptionInfoList(SUB_ID_2, DISPLAY_NAME_2, mSubscriptionInfo2);
when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn( when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(
Arrays.asList(mSubscriptionInfo1, mSubscriptionInfo2)); Arrays.asList(mSubscriptionInfo1, mSubscriptionInfo2));
when(mSubscriptionManager.getAvailableSubscriptionInfoList()).thenReturn(
Arrays.asList(mSubscriptionInfo1, mSubscriptionInfo2));
displayPreferenceWithLifecycle(); displayPreferenceWithLifecycle();
final StringBuilder summary = new StringBuilder(); final StringBuilder summary = new StringBuilder();
@@ -294,6 +306,8 @@ public class NetworkProviderCallsSmsControllerTest {
setupSubscriptionInfoList(SUB_ID_2, DISPLAY_NAME_2, mSubscriptionInfo2); setupSubscriptionInfoList(SUB_ID_2, DISPLAY_NAME_2, mSubscriptionInfo2);
when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn( when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(
Arrays.asList(mSubscriptionInfo1, mSubscriptionInfo2)); Arrays.asList(mSubscriptionInfo1, mSubscriptionInfo2));
when(mSubscriptionManager.getAvailableSubscriptionInfoList()).thenReturn(
Arrays.asList(mSubscriptionInfo1, mSubscriptionInfo2));
displayPreferenceWithLifecycle(); displayPreferenceWithLifecycle();
final StringBuilder summary = new StringBuilder(); final StringBuilder summary = new StringBuilder();

View File

@@ -177,7 +177,7 @@ public class ProviderModelSliceHelperTest {
when(mDefaultDataSubscriptionInfo.getDisplayName()).thenReturn(expectDisplayName); when(mDefaultDataSubscriptionInfo.getDisplayName()).thenReturn(expectDisplayName);
when(mSubscriptionManager.getActiveSubscriptionInfo(defaultDataSubId)).thenReturn( when(mSubscriptionManager.getActiveSubscriptionInfo(defaultDataSubId)).thenReturn(
mDefaultDataSubscriptionInfo); mDefaultDataSubscriptionInfo);
when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn( when(mSubscriptionManager.getAvailableSubscriptionInfoList()).thenReturn(
Arrays.asList(mDefaultDataSubscriptionInfo)); Arrays.asList(mDefaultDataSubscriptionInfo));
when(mServiceState.getState()).thenReturn(ServiceState.STATE_IN_SERVICE); when(mServiceState.getState()).thenReturn(ServiceState.STATE_IN_SERVICE);
@@ -207,7 +207,7 @@ public class ProviderModelSliceHelperTest {
when(mDefaultDataSubscriptionInfo.getDisplayName()).thenReturn(expectDisplayName); when(mDefaultDataSubscriptionInfo.getDisplayName()).thenReturn(expectDisplayName);
when(mSubscriptionManager.getActiveSubscriptionInfo(defaultDataSubId)).thenReturn( when(mSubscriptionManager.getActiveSubscriptionInfo(defaultDataSubId)).thenReturn(
mDefaultDataSubscriptionInfo); mDefaultDataSubscriptionInfo);
when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn( when(mSubscriptionManager.getAvailableSubscriptionInfoList()).thenReturn(
Arrays.asList(mDefaultDataSubscriptionInfo)); Arrays.asList(mDefaultDataSubscriptionInfo));
when(mServiceState.getState()).thenReturn(ServiceState.STATE_IN_SERVICE); when(mServiceState.getState()).thenReturn(ServiceState.STATE_IN_SERVICE);
mBundle.putBoolean(CarrierConfigManager.KEY_INFLATE_SIGNAL_STRENGTH_BOOL, false); mBundle.putBoolean(CarrierConfigManager.KEY_INFLATE_SIGNAL_STRENGTH_BOOL, false);

View File

@@ -16,8 +16,6 @@
package com.android.settings.network; package com.android.settings.network;
import static android.app.slice.Slice.EXTRA_TOGGLE_STATE;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.any;
@@ -25,6 +23,7 @@ import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.anyLong; import static org.mockito.ArgumentMatchers.anyLong;
import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.eq; import static org.mockito.Mockito.eq;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy; import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times; import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify;
@@ -132,7 +131,8 @@ public class ProviderModelSliceTest {
SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS); SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS);
mMockNetworkProviderWorker = spy(new MockNetworkProviderWorker(mContext, mMockNetworkProviderWorker = spy(new MockNetworkProviderWorker(mContext,
PROVIDER_MODEL_SLICE_URI)); PROVIDER_MODEL_SLICE_URI));
mMockProviderModelSlice = new MockProviderModelSlice(mContext, mMockNetworkProviderWorker); mMockProviderModelSlice = spy(new MockProviderModelSlice(
mContext, mMockNetworkProviderWorker));
mListBuilder = spy(new ListBuilder(mContext, PROVIDER_MODEL_SLICE_URI, mListBuilder = spy(new ListBuilder(mContext, PROVIDER_MODEL_SLICE_URI,
ListBuilder.INFINITY).setAccentColor(-1)); ListBuilder.INFINITY).setAccentColor(-1));
when(mProviderModelSliceHelper.createListBuilder(PROVIDER_MODEL_SLICE_URI)).thenReturn( when(mProviderModelSliceHelper.createListBuilder(PROVIDER_MODEL_SLICE_URI)).thenReturn(
@@ -386,32 +386,34 @@ public class ProviderModelSliceTest {
} }
@Test @Test
public void onNotifyChange_intentToggleActionOn_shouldSetCarrierNetworkEnabledTrue() { public void doCarrierNetworkAction_toggleActionSetDataEnabled_setCarrierNetworkEnabledTrue() {
Intent intent = mMockProviderModelSlice.getBroadcastIntent(mContext).getIntent(); mMockProviderModelSlice.doCarrierNetworkAction(true /* isToggleAction */,
intent.putExtra(EXTRA_TOGGLE_STATE, true); true /* isDataEnabled */);
mMockProviderModelSlice.onNotifyChange(intent);
verify(mMockNetworkProviderWorker).setCarrierNetworkEnabled(true); verify(mMockNetworkProviderWorker).setCarrierNetworkEnabled(true);
} }
@Test @Test
public void onNotifyChange_intentToggleActionOff_shouldSetCarrierNetworkEnabledFalse() { public void doCarrierNetworkAction_toggleActionSetDataDisabled_setCarrierNetworkEnabledFalse() {
Intent intent = mMockProviderModelSlice.getBroadcastIntent(mContext).getIntent(); mMockProviderModelSlice.doCarrierNetworkAction(true /* isToggleAction */,
intent.putExtra(EXTRA_TOGGLE_STATE, false); false /* isDataEnabled */);
mMockProviderModelSlice.onNotifyChange(intent);
verify(mMockNetworkProviderWorker).setCarrierNetworkEnabled(false); verify(mMockNetworkProviderWorker).setCarrierNetworkEnabled(false);
} }
@Test @Test
public void onNotifyChange_intentPrimaryAction_shouldConnectCarrierNetwork() { public void doCarrierNetworkAction_primaryActionAndDataEnabled_connectCarrierNetwork() {
when(mTelephonyManager.isDataEnabled()).thenReturn(true); mMockProviderModelSlice.doCarrierNetworkAction(false /* isToggleAction */,
Intent intent = mMockProviderModelSlice.getBroadcastIntent(mContext).getIntent(); true /* isDataEnabled */);
mMockProviderModelSlice.onNotifyChange(intent);
verify(mMockNetworkProviderWorker).connectCarrierNetwork(); verify(mMockNetworkProviderWorker).connectCarrierNetwork();
} }
@Test
public void doCarrierNetworkAction_primaryActionAndDataDisabled_notConnectCarrierNetwork() {
mMockProviderModelSlice.doCarrierNetworkAction(false /* isToggleAction */,
false /* isDataEnabled */);
verify(mMockNetworkProviderWorker, never()).connectCarrierNetwork();
}
} }

View File

@@ -48,7 +48,7 @@ public class SubscriptionUtilTest {
private static final int SUBID_1 = 1; private static final int SUBID_1 = 1;
private static final int SUBID_2 = 2; private static final int SUBID_2 = 2;
private static final int SUBID_3 = 3; private static final int SUBID_3 = 3;
private static final CharSequence CARRIER_1 = "carrier1"; private static final CharSequence CARRIER_1 = "carrier1111111";
private static final CharSequence CARRIER_2 = "carrier2"; private static final CharSequence CARRIER_2 = "carrier2";
private Context mContext; private Context mContext;
@@ -94,6 +94,8 @@ public class SubscriptionUtilTest {
final SubscriptionInfo info2 = mock(SubscriptionInfo.class); final SubscriptionInfo info2 = mock(SubscriptionInfo.class);
when(mSubMgr.getAvailableSubscriptionInfoList()).thenReturn(Arrays.asList(info1, info2)); when(mSubMgr.getAvailableSubscriptionInfoList()).thenReturn(Arrays.asList(info1, info2));
// // TODO remove this line.
// when(mSubMgr.getAvailableSubscriptionInfoList()).thenReturn(Arrays.asList(info1, info2));
final List<SubscriptionInfo> subs = SubscriptionUtil.getAvailableSubscriptions(mContext); final List<SubscriptionInfo> subs = SubscriptionUtil.getAvailableSubscriptions(mContext);
assertThat(subs).isNotNull(); assertThat(subs).isNotNull();
@@ -143,8 +145,9 @@ public class SubscriptionUtilTest {
when(info2.getSubscriptionId()).thenReturn(SUBID_2); when(info2.getSubscriptionId()).thenReturn(SUBID_2);
when(info1.getDisplayName()).thenReturn(CARRIER_1); when(info1.getDisplayName()).thenReturn(CARRIER_1);
when(info2.getDisplayName()).thenReturn(CARRIER_2); when(info2.getDisplayName()).thenReturn(CARRIER_2);
when(mSubMgr.getActiveSubscriptionInfoList()).thenReturn( when(mSubMgr.getAvailableSubscriptionInfoList()).thenReturn(
Arrays.asList(info1, info2)); Arrays.asList(info1, info2));
// Arrays.asList(info2));
// Each subscription has a unique last 4 digits of the phone number. // Each subscription has a unique last 4 digits of the phone number.
TelephonyManager sub1Telmgr = mock(TelephonyManager.class); TelephonyManager sub1Telmgr = mock(TelephonyManager.class);
@@ -172,7 +175,7 @@ public class SubscriptionUtilTest {
when(info2.getSubscriptionId()).thenReturn(SUBID_2); when(info2.getSubscriptionId()).thenReturn(SUBID_2);
when(info1.getDisplayName()).thenReturn(CARRIER_1); when(info1.getDisplayName()).thenReturn(CARRIER_1);
when(info2.getDisplayName()).thenReturn(CARRIER_1); when(info2.getDisplayName()).thenReturn(CARRIER_1);
when(mSubMgr.getActiveSubscriptionInfoList()).thenReturn( when(mSubMgr.getAvailableSubscriptionInfoList()).thenReturn(
Arrays.asList(info1, info2)); Arrays.asList(info1, info2));
// Each subscription has a unique last 4 digits of the phone number. // Each subscription has a unique last 4 digits of the phone number.
@@ -201,8 +204,7 @@ public class SubscriptionUtilTest {
when(info2.getSubscriptionId()).thenReturn(SUBID_2); when(info2.getSubscriptionId()).thenReturn(SUBID_2);
when(info1.getDisplayName()).thenReturn(CARRIER_1); when(info1.getDisplayName()).thenReturn(CARRIER_1);
when(info2.getDisplayName()).thenReturn(CARRIER_1); when(info2.getDisplayName()).thenReturn(CARRIER_1);
when(mSubMgr.getActiveSubscriptionInfoList()).thenReturn( when(mSubMgr.getAvailableSubscriptionInfoList()).thenReturn(Arrays.asList(info1, info2));
Arrays.asList(info1, info2));
// The subscriptions' phone numbers cannot be revealed to the user. // The subscriptions' phone numbers cannot be revealed to the user.
TelephonyManager sub1Telmgr = mock(TelephonyManager.class); TelephonyManager sub1Telmgr = mock(TelephonyManager.class);
@@ -234,7 +236,7 @@ public class SubscriptionUtilTest {
when(info1.getDisplayName()).thenReturn(CARRIER_1); when(info1.getDisplayName()).thenReturn(CARRIER_1);
when(info2.getDisplayName()).thenReturn(CARRIER_1); when(info2.getDisplayName()).thenReturn(CARRIER_1);
when(info3.getDisplayName()).thenReturn(CARRIER_1); when(info3.getDisplayName()).thenReturn(CARRIER_1);
when(mSubMgr.getActiveSubscriptionInfoList()).thenReturn( when(mSubMgr.getAvailableSubscriptionInfoList()).thenReturn(
Arrays.asList(info1, info2, info3)); Arrays.asList(info1, info2, info3));
// Subscription 1 has a unique phone number, but subscriptions 2 and 3 share the same // Subscription 1 has a unique phone number, but subscriptions 2 and 3 share the same
@@ -265,8 +267,7 @@ public class SubscriptionUtilTest {
final SubscriptionInfo info1 = mock(SubscriptionInfo.class); final SubscriptionInfo info1 = mock(SubscriptionInfo.class);
when(info1.getSubscriptionId()).thenReturn(SUBID_1); when(info1.getSubscriptionId()).thenReturn(SUBID_1);
when(info1.getDisplayName()).thenReturn(CARRIER_1); when(info1.getDisplayName()).thenReturn(CARRIER_1);
when(mSubMgr.getActiveSubscriptionInfoList()).thenReturn( when(mSubMgr.getAvailableSubscriptionInfoList()).thenReturn(Arrays.asList(info1));
Arrays.asList(info1));
TelephonyManager sub1Telmgr = mock(TelephonyManager.class); TelephonyManager sub1Telmgr = mock(TelephonyManager.class);
when(sub1Telmgr.getLine1Number()).thenReturn("1112223333"); when(sub1Telmgr.getLine1Number()).thenReturn("1112223333");
@@ -288,8 +289,7 @@ public class SubscriptionUtilTest {
when(info2.getSubscriptionId()).thenReturn(SUBID_2); when(info2.getSubscriptionId()).thenReturn(SUBID_2);
when(info1.getDisplayName()).thenReturn(CARRIER_1); when(info1.getDisplayName()).thenReturn(CARRIER_1);
when(info2.getDisplayName()).thenReturn(CARRIER_1); when(info2.getDisplayName()).thenReturn(CARRIER_1);
when(mSubMgr.getActiveSubscriptionInfoList()).thenReturn( when(mSubMgr.getAvailableSubscriptionInfoList()).thenReturn(Arrays.asList(info1, info2));
Arrays.asList(info1, info2));
// Each subscription has a unique last 4 digits of the phone number. // Each subscription has a unique last 4 digits of the phone number.
TelephonyManager sub1Telmgr = mock(TelephonyManager.class); TelephonyManager sub1Telmgr = mock(TelephonyManager.class);
@@ -318,8 +318,7 @@ public class SubscriptionUtilTest {
when(info2.getSubscriptionId()).thenReturn(SUBID_2); when(info2.getSubscriptionId()).thenReturn(SUBID_2);
when(info1.getDisplayName()).thenReturn(CARRIER_1); when(info1.getDisplayName()).thenReturn(CARRIER_1);
when(info2.getDisplayName()).thenReturn(CARRIER_1); when(info2.getDisplayName()).thenReturn(CARRIER_1);
when(mSubMgr.getActiveSubscriptionInfoList()).thenReturn( when(mSubMgr.getAvailableSubscriptionInfoList()).thenReturn(Arrays.asList(info1, info2));
Arrays.asList(info1, info2));
// Both subscriptions have a the same 4 digits of the phone number. // Both subscriptions have a the same 4 digits of the phone number.
TelephonyManager sub1Telmgr = mock(TelephonyManager.class); TelephonyManager sub1Telmgr = mock(TelephonyManager.class);
@@ -345,8 +344,7 @@ public class SubscriptionUtilTest {
final SubscriptionInfo info1 = mock(SubscriptionInfo.class); final SubscriptionInfo info1 = mock(SubscriptionInfo.class);
when(info1.getSubscriptionId()).thenReturn(SUBID_1); when(info1.getSubscriptionId()).thenReturn(SUBID_1);
when(info1.getDisplayName()).thenReturn(CARRIER_1); when(info1.getDisplayName()).thenReturn(CARRIER_1);
when(mSubMgr.getActiveSubscriptionInfoList()).thenReturn( when(mSubMgr.getAvailableSubscriptionInfoList()).thenReturn(Arrays.asList(info1));
Arrays.asList(info1));
TelephonyManager sub1Telmgr = mock(TelephonyManager.class); TelephonyManager sub1Telmgr = mock(TelephonyManager.class);
when(sub1Telmgr.getLine1Number()).thenReturn("1112223333"); when(sub1Telmgr.getLine1Number()).thenReturn("1112223333");
@@ -366,8 +364,7 @@ public class SubscriptionUtilTest {
final SubscriptionInfo info1 = mock(SubscriptionInfo.class); final SubscriptionInfo info1 = mock(SubscriptionInfo.class);
when(info1.getSubscriptionId()).thenReturn(SUBID_1); when(info1.getSubscriptionId()).thenReturn(SUBID_1);
when(info1.getDisplayName()).thenReturn(CARRIER_1); when(info1.getDisplayName()).thenReturn(CARRIER_1);
when(mSubMgr.getActiveSubscriptionInfoList()).thenReturn( when(mSubMgr.getAvailableSubscriptionInfoList()).thenReturn(Arrays.asList(info1));
Arrays.asList(info1));
TelephonyManager sub1Telmgr = mock(TelephonyManager.class); TelephonyManager sub1Telmgr = mock(TelephonyManager.class);
when(sub1Telmgr.getLine1Number()).thenReturn("1112223333"); when(sub1Telmgr.getLine1Number()).thenReturn("1112223333");

View File

@@ -272,6 +272,7 @@ public class SubscriptionsPreferenceControllerTest {
@UiThreadTest @UiThreadTest
public void onSubscriptionsChanged_subscriptionReplaced_preferencesChanged() { public void onSubscriptionsChanged_subscriptionReplaced_preferencesChanged() {
final List<SubscriptionInfo> subs = setupMockSubscriptions(3); final List<SubscriptionInfo> subs = setupMockSubscriptions(3);
doReturn(subs).when(mSubscriptionManager).getAvailableSubscriptionInfoList();
// Start out with only sub1 and sub2. // Start out with only sub1 and sub2.
SubscriptionUtil.setActiveSubscriptionsForTesting(subs.subList(0, 2)); SubscriptionUtil.setActiveSubscriptionsForTesting(subs.subList(0, 2));
@@ -388,6 +389,7 @@ public class SubscriptionsPreferenceControllerTest {
final List<SubscriptionInfo> sub = setupMockSubscriptions(1); final List<SubscriptionInfo> sub = setupMockSubscriptions(1);
doReturn(true).when(sInjector).isProviderModelEnabled(mContext); doReturn(true).when(sInjector).isProviderModelEnabled(mContext);
doReturn(sub.get(0)).when(mSubscriptionManager).getDefaultDataSubscriptionInfo(); doReturn(sub.get(0)).when(mSubscriptionManager).getDefaultDataSubscriptionInfo();
doReturn(sub).when(mSubscriptionManager).getAvailableSubscriptionInfoList();
mController.onResume(); mController.onResume();
mController.displayPreference(mPreferenceScreen); mController.displayPreference(mPreferenceScreen);
@@ -402,6 +404,7 @@ public class SubscriptionsPreferenceControllerTest {
final List<SubscriptionInfo> sub = setupMockSubscriptions(2); final List<SubscriptionInfo> sub = setupMockSubscriptions(2);
doReturn(true).when(sInjector).isProviderModelEnabled(mContext); doReturn(true).when(sInjector).isProviderModelEnabled(mContext);
doReturn(sub.get(0)).when(mSubscriptionManager).getDefaultDataSubscriptionInfo(); doReturn(sub.get(0)).when(mSubscriptionManager).getDefaultDataSubscriptionInfo();
doReturn(sub).when(mSubscriptionManager).getAvailableSubscriptionInfoList();
mController.onResume(); mController.onResume();
mController.displayPreference(mPreferenceScreen); mController.displayPreference(mPreferenceScreen);
@@ -530,6 +533,7 @@ public class SubscriptionsPreferenceControllerTest {
final List<SubscriptionInfo> sub = setupMockSubscriptions(2); final List<SubscriptionInfo> sub = setupMockSubscriptions(2);
doReturn(true).when(sInjector).isProviderModelEnabled(mContext); doReturn(true).when(sInjector).isProviderModelEnabled(mContext);
doReturn(sub.get(0)).when(mSubscriptionManager).getDefaultDataSubscriptionInfo(); doReturn(sub.get(0)).when(mSubscriptionManager).getDefaultDataSubscriptionInfo();
doReturn(sub).when(mSubscriptionManager).getAvailableSubscriptionInfoList();
Intent intent = new Intent(TelephonyManager.ACTION_DEFAULT_DATA_SUBSCRIPTION_CHANGED); Intent intent = new Intent(TelephonyManager.ACTION_DEFAULT_DATA_SUBSCRIPTION_CHANGED);
mController.onResume(); mController.onResume();
@@ -548,6 +552,7 @@ public class SubscriptionsPreferenceControllerTest {
final int subId = sub.get(0).getSubscriptionId(); final int subId = sub.get(0).getSubscriptionId();
doReturn(true).when(sInjector).isProviderModelEnabled(mContext); doReturn(true).when(sInjector).isProviderModelEnabled(mContext);
doReturn(sub.get(0)).when(mSubscriptionManager).getDefaultDataSubscriptionInfo(); doReturn(sub.get(0)).when(mSubscriptionManager).getDefaultDataSubscriptionInfo();
doReturn(sub).when(mSubscriptionManager).getAvailableSubscriptionInfoList();
Intent intent = new Intent(TelephonyManager.ACTION_DEFAULT_DATA_SUBSCRIPTION_CHANGED); Intent intent = new Intent(TelephonyManager.ACTION_DEFAULT_DATA_SUBSCRIPTION_CHANGED);
mController.onResume(); mController.onResume();

View File

@@ -54,7 +54,7 @@ import java.util.Arrays;
@RunWith(AndroidJUnit4.class) @RunWith(AndroidJUnit4.class)
public class DefaultSubscriptionControllerTest { public class DefaultSubscriptionControllerTest {
@Mock @Mock
private SubscriptionManager mManager; private SubscriptionManager mSubMgr;
@Mock @Mock
private TelecomManager mTelecomManager; private TelecomManager mTelecomManager;
@@ -68,7 +68,7 @@ public class DefaultSubscriptionControllerTest {
public void setUp() { public void setUp() {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
mContext = spy(ApplicationProvider.getApplicationContext()); mContext = spy(ApplicationProvider.getApplicationContext());
when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(mManager); when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(mSubMgr);
when(mContext.getSystemService(TelecomManager.class)).thenReturn(mTelecomManager); when(mContext.getSystemService(TelecomManager.class)).thenReturn(mTelecomManager);
final String key = "prefkey"; final String key = "prefkey";
@@ -123,6 +123,7 @@ public class DefaultSubscriptionControllerTest {
final SubscriptionInfo sub1 = createMockSub(111, "sub1"); final SubscriptionInfo sub1 = createMockSub(111, "sub1");
final SubscriptionInfo sub2 = createMockSub(222, "sub2"); final SubscriptionInfo sub2 = createMockSub(222, "sub2");
SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1, sub2)); SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1, sub2));
when(mSubMgr.getAvailableSubscriptionInfoList()).thenReturn(Arrays.asList(sub1, sub2));
mController.setDefaultSubscription(sub1.getSubscriptionId()); mController.setDefaultSubscription(sub1.getSubscriptionId());
mController.displayPreference(mScreen); mController.displayPreference(mScreen);
@@ -152,6 +153,7 @@ public class DefaultSubscriptionControllerTest {
final SubscriptionInfo sub1 = createMockSub(111, "sub1"); final SubscriptionInfo sub1 = createMockSub(111, "sub1");
final SubscriptionInfo sub2 = createMockSub(222, "sub2"); final SubscriptionInfo sub2 = createMockSub(222, "sub2");
SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1, sub2)); SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1, sub2));
when(mSubMgr.getAvailableSubscriptionInfoList()).thenReturn(Arrays.asList(sub1, sub2));
mController.setDefaultSubscription(sub2.getSubscriptionId()); mController.setDefaultSubscription(sub2.getSubscriptionId());
mController.displayPreference(mScreen); mController.displayPreference(mScreen);
@@ -186,6 +188,8 @@ public class DefaultSubscriptionControllerTest {
when(sub2.isOpportunistic()).thenReturn(true); when(sub2.isOpportunistic()).thenReturn(true);
SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1, sub2, sub3)); SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1, sub2, sub3));
when(mSubMgr.getAvailableSubscriptionInfoList()).thenReturn(
Arrays.asList(sub1, sub2, sub3));
mController.setDefaultSubscription(sub1.getSubscriptionId()); mController.setDefaultSubscription(sub1.getSubscriptionId());
mController.displayPreference(mScreen); mController.displayPreference(mScreen);
@@ -240,6 +244,7 @@ public class DefaultSubscriptionControllerTest {
// Start with only one sub active, so the pref is not available // Start with only one sub active, so the pref is not available
SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1)); SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1));
when(mSubMgr.getAvailableSubscriptionInfoList()).thenReturn(Arrays.asList(sub1));
mController.setDefaultSubscription(sub1.getSubscriptionId()); mController.setDefaultSubscription(sub1.getSubscriptionId());
mController.displayPreference(mScreen); mController.displayPreference(mScreen);
@@ -261,6 +266,7 @@ public class DefaultSubscriptionControllerTest {
final SubscriptionInfo sub1 = createMockSub(111, "sub1"); final SubscriptionInfo sub1 = createMockSub(111, "sub1");
final SubscriptionInfo sub2 = createMockSub(222, "sub2"); final SubscriptionInfo sub2 = createMockSub(222, "sub2");
SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1, sub2)); SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1, sub2));
when(mSubMgr.getAvailableSubscriptionInfoList()).thenReturn(Arrays.asList(sub1, sub2));
mController.setDefaultSubscription(sub1.getSubscriptionId()); mController.setDefaultSubscription(sub1.getSubscriptionId());
mController.displayPreference(mScreen); mController.displayPreference(mScreen);
@@ -296,6 +302,7 @@ public class DefaultSubscriptionControllerTest {
final SubscriptionInfo sub1 = createMockSub(111, "sub1"); final SubscriptionInfo sub1 = createMockSub(111, "sub1");
final SubscriptionInfo sub2 = createMockSub(222, "sub2"); final SubscriptionInfo sub2 = createMockSub(222, "sub2");
SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1)); SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1));
when(mSubMgr.getAvailableSubscriptionInfoList()).thenReturn(Arrays.asList(sub1));
mController.setDefaultSubscription(sub1.getSubscriptionId()); mController.setDefaultSubscription(sub1.getSubscriptionId());
mController.displayPreference(mScreen); mController.displayPreference(mScreen);
@@ -303,6 +310,7 @@ public class DefaultSubscriptionControllerTest {
assertThat(mListPreference.isVisible()).isFalse(); assertThat(mListPreference.isVisible()).isFalse();
SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1, sub2)); SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1, sub2));
when(mSubMgr.getAvailableSubscriptionInfoList()).thenReturn(Arrays.asList(sub1, sub2));
mController.onSubscriptionsChanged(); mController.onSubscriptionsChanged();
assertThat(mController.isAvailable()).isTrue(); assertThat(mController.isAvailable()).isTrue();
@@ -315,12 +323,15 @@ public class DefaultSubscriptionControllerTest {
final SubscriptionInfo sub2 = createMockSub(222, "sub2"); final SubscriptionInfo sub2 = createMockSub(222, "sub2");
final SubscriptionInfo sub3 = createMockSub(333, "sub3"); final SubscriptionInfo sub3 = createMockSub(333, "sub3");
SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1, sub2)); SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1, sub2));
when(mSubMgr.getAvailableSubscriptionInfoList()).thenReturn(Arrays.asList(sub1, sub2));
mController.setDefaultSubscription(sub1.getSubscriptionId()); mController.setDefaultSubscription(sub1.getSubscriptionId());
mController.displayPreference(mScreen); mController.displayPreference(mScreen);
assertThat(mListPreference.getEntries().length).isEqualTo(3); assertThat(mListPreference.getEntries().length).isEqualTo(3);
SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1, sub2, sub3)); SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1, sub2, sub3));
when(mSubMgr.getAvailableSubscriptionInfoList()).thenReturn(
Arrays.asList(sub1, sub2, sub3));
mController.onSubscriptionsChanged(); mController.onSubscriptionsChanged();
assertThat(mController.isAvailable()).isTrue(); assertThat(mController.isAvailable()).isTrue();

View File

@@ -39,15 +39,15 @@ import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager; import android.telephony.TelephonyManager;
import android.util.FeatureFlagUtils; import android.util.FeatureFlagUtils;
import com.android.settings.network.ims.MockWfcQueryImsState;
import com.android.settingslib.core.lifecycle.Lifecycle;
import androidx.preference.PreferenceCategory; import androidx.preference.PreferenceCategory;
import androidx.preference.PreferenceManager; import androidx.preference.PreferenceManager;
import androidx.preference.PreferenceScreen; import androidx.preference.PreferenceScreen;
import androidx.test.core.app.ApplicationProvider; import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.android.settings.network.ims.MockWfcQueryImsState;
import com.android.settingslib.core.lifecycle.Lifecycle;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
@@ -132,10 +132,8 @@ public class NetworkProviderWifiCallingGroupTest {
@Test @Test
public void shouldShowWifiCallingForSub_invalidSubId_returnFalse() { public void shouldShowWifiCallingForSub_invalidSubId_returnFalse() {
when(mSubscriptionManager.getActiveSubscriptionInfo(SUB_ID)).thenReturn(null); assertThat(mNetworkProviderWifiCallingGroup.shouldShowWifiCallingForSub(
SubscriptionManager.INVALID_SUBSCRIPTION_ID)).isEqualTo(false);
assertThat(mNetworkProviderWifiCallingGroup.shouldShowWifiCallingForSub(SUB_ID))
.isEqualTo(false);
} }
@Test @Test

View File

@@ -18,6 +18,9 @@ package com.android.settings.panel;
import static com.android.settings.network.InternetUpdater.INTERNET_APM; import static com.android.settings.network.InternetUpdater.INTERNET_APM;
import static com.android.settings.network.InternetUpdater.INTERNET_APM_NETWORKS; import static com.android.settings.network.InternetUpdater.INTERNET_APM_NETWORKS;
import static com.android.settings.network.InternetUpdater.INTERNET_CELLULAR;
import static com.android.settings.network.InternetUpdater.INTERNET_ETHERNET;
import static com.android.settings.network.InternetUpdater.INTERNET_WIFI;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
@@ -26,10 +29,13 @@ import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify;
import android.content.Context; import android.content.Context;
import android.net.Uri;
import androidx.test.core.app.ApplicationProvider; import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.android.settings.network.AirplaneModePreferenceController;
import com.android.settings.slices.CustomSliceRegistry;
import com.android.settings.testutils.ResourcesUtils; import com.android.settings.testutils.ResourcesUtils;
import org.junit.Before; import org.junit.Before;
@@ -40,6 +46,8 @@ import org.mockito.Mock;
import org.mockito.junit.MockitoJUnit; import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoRule; import org.mockito.junit.MockitoRule;
import java.util.List;
@RunWith(AndroidJUnit4.class) @RunWith(AndroidJUnit4.class)
public class InternetConnectivityPanelTest { public class InternetConnectivityPanelTest {
@@ -47,6 +55,10 @@ public class InternetConnectivityPanelTest {
ApplicationProvider.getApplicationContext(), "provider_internet_settings"); ApplicationProvider.getApplicationContext(), "provider_internet_settings");
public static final String TITLE_APM_NETWORKS = ResourcesUtils.getResourcesString( public static final String TITLE_APM_NETWORKS = ResourcesUtils.getResourcesString(
ApplicationProvider.getApplicationContext(), "airplane_mode_network_panel_title"); ApplicationProvider.getApplicationContext(), "airplane_mode_network_panel_title");
public static final String SUBTITLE_APM_IS_ON = ResourcesUtils.getResourcesString(
ApplicationProvider.getApplicationContext(), "condition_airplane_title");
public static final String BUTTON_SETTINGS = ResourcesUtils.getResourcesString(
ApplicationProvider.getApplicationContext(), "settings_button");
@Rule @Rule
public final MockitoRule mMocks = MockitoJUnit.rule(); public final MockitoRule mMocks = MockitoJUnit.rule();
@@ -66,30 +78,147 @@ public class InternetConnectivityPanelTest {
} }
@Test @Test
public void getTitle_internetTypeChangedFromApmToApmNetworks_verifyTitleChanged() { public void getTitle_internetApmNetworks_shouldBeApmNetworks() {
mPanel.onInternetTypeChanged(INTERNET_APM_NETWORKS);
assertThat(mPanel.getTitle()).isEqualTo(TITLE_APM_NETWORKS);
}
@Test
public void getTitle_notInternetApmNetworks_shouldBeInternet() {
mPanel.onInternetTypeChanged(INTERNET_APM); mPanel.onInternetTypeChanged(INTERNET_APM);
assertThat(mPanel.getTitle()).isEqualTo(TITLE_INTERNET); assertThat(mPanel.getTitle()).isEqualTo(TITLE_INTERNET);
mPanel.onInternetTypeChanged(INTERNET_WIFI);
assertThat(mPanel.getTitle()).isEqualTo(TITLE_INTERNET);
mPanel.onInternetTypeChanged(INTERNET_CELLULAR);
assertThat(mPanel.getTitle()).isEqualTo(TITLE_INTERNET);
mPanel.onInternetTypeChanged(INTERNET_ETHERNET);
assertThat(mPanel.getTitle()).isEqualTo(TITLE_INTERNET);
}
@Test
public void getSubTitle_internetApm_shouldBeApmIsOn() {
mPanel.onInternetTypeChanged(INTERNET_APM);
assertThat(mPanel.getSubTitle()).isEqualTo(SUBTITLE_APM_IS_ON);
}
@Test
public void getSubTitle_notinternetApm_shouldBeNull() {
mPanel.onInternetTypeChanged(INTERNET_APM_NETWORKS);
assertThat(mPanel.getSubTitle()).isNull();
mPanel.onInternetTypeChanged(INTERNET_WIFI);
assertThat(mPanel.getSubTitle()).isNull();
mPanel.onInternetTypeChanged(INTERNET_CELLULAR);
assertThat(mPanel.getSubTitle()).isNull();
mPanel.onInternetTypeChanged(INTERNET_ETHERNET);
assertThat(mPanel.getSubTitle()).isNull();
}
@Test
public void getCustomizedButtonTitle_internetApm_shouldBeNull() {
mPanel.onInternetTypeChanged(INTERNET_APM);
assertThat(mPanel.getCustomizedButtonTitle()).isNull();
}
@Test
public void getCustomizedButtonTitle_notInternetApm_shouldBeSettings() {
mPanel.onInternetTypeChanged(INTERNET_APM_NETWORKS);
assertThat(mPanel.getCustomizedButtonTitle()).isEqualTo(BUTTON_SETTINGS);
mPanel.onInternetTypeChanged(INTERNET_WIFI);
assertThat(mPanel.getCustomizedButtonTitle()).isEqualTo(BUTTON_SETTINGS);
mPanel.onInternetTypeChanged(INTERNET_CELLULAR);
assertThat(mPanel.getCustomizedButtonTitle()).isEqualTo(BUTTON_SETTINGS);
mPanel.onInternetTypeChanged(INTERNET_ETHERNET);
assertThat(mPanel.getCustomizedButtonTitle()).isEqualTo(BUTTON_SETTINGS);
}
@Test
public void getSlices_providerModelDisabled_containsNecessarySlices() {
mPanel.mIsProviderModelEnabled = false;
final List<Uri> uris = mPanel.getSlices();
assertThat(uris).containsExactly(
AirplaneModePreferenceController.SLICE_URI,
CustomSliceRegistry.MOBILE_DATA_SLICE_URI,
CustomSliceRegistry.WIFI_SLICE_URI);
}
@Test
public void getSlices_providerModelEnabled_containsNecessarySlices() {
final List<Uri> uris = mPanel.getSlices();
assertThat(uris).containsExactly(
CustomSliceRegistry.PROVIDER_MODEL_SLICE_URI,
CustomSliceRegistry.AIRPLANE_SAFE_NETWORKS_SLICE_URI);
}
@Test
public void getSeeMoreIntent_notNull() {
assertThat(mPanel.getSeeMoreIntent()).isNotNull();
}
@Test
public void onInternetTypeChanged_internetTypeChangedToApm_changeHeaderAndHideSettings() {
mPanel.onInternetTypeChanged(INTERNET_APM_NETWORKS);
clearInvocations(mPanelContentCallback);
mPanel.onInternetTypeChanged(INTERNET_APM);
verify(mPanelContentCallback).onHeaderChanged();
verify(mPanelContentCallback).onCustomizedButtonStateChanged();
}
@Test
public void onInternetTypeChanged_internetTypeChangedFomApm_changeTitleAndShowSettings() {
mPanel.onInternetTypeChanged(INTERNET_APM);
clearInvocations(mPanelContentCallback);
mPanel.onInternetTypeChanged(INTERNET_APM_NETWORKS);
verify(mPanelContentCallback).onTitleChanged();
verify(mPanelContentCallback).onCustomizedButtonStateChanged();
}
@Test
public void onInternetTypeChanged_internetTypeChangedToApmNetworks_changeTitle() {
mPanel.onInternetTypeChanged(INTERNET_WIFI);
clearInvocations(mPanelContentCallback); clearInvocations(mPanelContentCallback);
mPanel.onInternetTypeChanged(INTERNET_APM_NETWORKS); mPanel.onInternetTypeChanged(INTERNET_APM_NETWORKS);
assertThat(mPanel.getTitle()).isEqualTo(TITLE_APM_NETWORKS);
verify(mPanelContentCallback).onTitleChanged(); verify(mPanelContentCallback).onTitleChanged();
} }
@Test @Test
public void getTitle_internetTypeChangedFromApmNetworksToApm_verifyTitleChanged() { public void onInternetTypeChanged_internetTypeChangedFromApmNetworks_changeTitle() {
mPanel.onInternetTypeChanged(INTERNET_APM_NETWORKS); mPanel.onInternetTypeChanged(INTERNET_APM_NETWORKS);
assertThat(mPanel.getTitle()).isEqualTo(TITLE_APM_NETWORKS);
clearInvocations(mPanelContentCallback); clearInvocations(mPanelContentCallback);
mPanel.onInternetTypeChanged(INTERNET_APM); mPanel.onInternetTypeChanged(INTERNET_WIFI);
assertThat(mPanel.getTitle()).isEqualTo(TITLE_INTERNET);
verify(mPanelContentCallback).onTitleChanged(); verify(mPanelContentCallback).onTitleChanged();
} }
} }