diff --git a/res/layout/panel_layout.xml b/res/layout/panel_layout.xml index 5f33c32eb08..ac7a72b3268 100644 --- a/res/layout/panel_layout.xml +++ b/res/layout/panel_layout.xml @@ -48,11 +48,13 @@ + - + android:maxLines="1"/> diff --git a/src/com/android/settings/network/ProviderModelSlice.java b/src/com/android/settings/network/ProviderModelSlice.java index 288fe63e89e..24077ddbab7 100644 --- a/src/com/android/settings/network/ProviderModelSlice.java +++ b/src/com/android/settings/network/ProviderModelSlice.java @@ -26,7 +26,6 @@ import android.content.Context; import android.content.Intent; import android.graphics.drawable.Drawable; import android.net.Uri; -import android.provider.Settings; import android.telephony.SubscriptionManager; import android.util.Log; @@ -87,9 +86,6 @@ public class ProviderModelSlice extends WifiSlice { final ListBuilder listBuilder = mHelper.createListBuilder(getUri()); if (mHelper.isAirplaneModeEnabled() && !mWifiManager.isWifiEnabled()) { 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(); } @@ -195,10 +191,14 @@ public class ProviderModelSlice extends WifiSlice { MobileNetworkUtils.setMobileDataEnabled(mContext, defaultSubId, newState, 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(); if (worker == null) { return; @@ -209,7 +209,7 @@ public class ProviderModelSlice extends WifiSlice { return; } - if (MobileNetworkUtils.isMobileDataEnabled(mContext)) { + if (isDataEnabled) { worker.connectCarrierNetwork(); } } diff --git a/src/com/android/settings/panel/InternetConnectivityPanel.java b/src/com/android/settings/panel/InternetConnectivityPanel.java index 7bafe971eb1..c90d22b35de 100644 --- a/src/com/android/settings/panel/InternetConnectivityPanel.java +++ b/src/com/android/settings/panel/InternetConnectivityPanel.java @@ -19,6 +19,7 @@ package com.android.settings.panel; import static androidx.lifecycle.Lifecycle.Event.ON_PAUSE; 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.NetworkProviderSettings.ACTION_NETWORK_PROVIDER_SETTINGS; @@ -83,6 +84,9 @@ public class InternetConnectivityPanel implements PanelContent, LifecycleObserve mInternetUpdater.onPause(); } + /** + * @return a string for the title of the Panel. + */ @Override public CharSequence getTitle() { if (mIsProviderModelEnabled) { @@ -93,10 +97,21 @@ public class InternetConnectivityPanel implements PanelContent, LifecycleObserve 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 public List getSlices() { final List uris = new ArrayList<>(); - if (Utils.isProviderModelEnabled(mContext)) { + if (mIsProviderModelEnabled) { uris.add(CustomSliceRegistry.PROVIDER_MODEL_SLICE_URI); uris.add(CustomSliceRegistry.AIRPLANE_SAFE_NETWORKS_SLICE_URI); } else { @@ -109,18 +124,21 @@ public class InternetConnectivityPanel implements PanelContent, LifecycleObserve @Override public Intent getSeeMoreIntent() { - return new Intent(Utils.isProviderModelEnabled(mContext) + return new Intent(mIsProviderModelEnabled ? ACTION_NETWORK_PROVIDER_SETTINGS : Settings.ACTION_WIRELESS_SETTINGS) .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); } @Override public boolean isCustomizedButtonUsed() { - return Utils.isProviderModelEnabled(mContext); + return mIsProviderModelEnabled; } @Override public CharSequence getCustomizedButtonTitle() { + if (mInternetType == INTERNET_APM) { + return null; + } return mContext.getText(R.string.settings_button); } @@ -145,18 +163,35 @@ public class InternetConnectivityPanel implements PanelContent, LifecycleObserve * @param internetType the internet type */ public void onInternetTypeChanged(@InternetUpdater.InternetType int internetType) { - final boolean needRefresh = internetType != mInternetType - && (internetType == INTERNET_APM_NETWORKS - || mInternetType == INTERNET_APM_NETWORKS); - mInternetType = internetType; - if (needRefresh) { - refresh(); + if (internetType == mInternetType) { + return; } - } - 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) { - 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(); + } } } } diff --git a/src/com/android/settings/panel/PanelFragment.java b/src/com/android/settings/panel/PanelFragment.java index 503b34a7b91..e7c1bef1e02 100644 --- a/src/com/android/settings/panel/PanelFragment.java +++ b/src/com/android/settings/panel/PanelFragment.java @@ -26,6 +26,7 @@ import android.net.Uri; import android.os.Bundle; import android.os.Handler; import android.text.TextUtils; +import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -94,6 +95,7 @@ public class PanelFragment extends Fragment { private LinearLayout mPanelHeader; private ImageView mTitleIcon; private LinearLayout mTitleGroup; + private LinearLayout mHeaderLayout; private TextView mHeaderTitle; private TextView mHeaderSubtitle; private int mMaxHeight; @@ -202,6 +204,7 @@ public class PanelFragment extends Fragment { mPanelHeader = mLayoutView.findViewById(R.id.panel_header); mTitleIcon = mLayoutView.findViewById(R.id.title_icon); mTitleGroup = mLayoutView.findViewById(R.id.title_group); + mHeaderLayout = mLayoutView.findViewById(R.id.header_layout); mHeaderTitle = mLayoutView.findViewById(R.id.header_title); mHeaderSubtitle = mLayoutView.findViewById(R.id.header_subtitle); mFooterDivider = mLayoutView.findViewById(R.id.footer_divider); @@ -239,13 +242,12 @@ public class PanelFragment extends Fragment { final IconCompat icon = mPanel.getIcon(); final CharSequence title = mPanel.getTitle(); + final CharSequence subtitle = mPanel.getSubTitle(); - if (icon != null) { - enablePanelHeader(icon, title); + if (icon != null || (subtitle != null && subtitle.length() > 0)) { + enablePanelHeader(icon, title, subtitle); } else { - mTitleView.setVisibility(View.VISIBLE); - mPanelHeader.setVisibility(View.GONE); - mTitleView.setText(title); + enableTitle(title); } mFooterDivider.setVisibility(View.GONE); @@ -254,13 +256,7 @@ public class PanelFragment extends Fragment { mDoneButton.setOnClickListener(getCloseListener()); if (mPanel.isCustomizedButtonUsed()) { - final CharSequence customTitle = mPanel.getCustomizedButtonTitle(); - if (TextUtils.isEmpty(customTitle)) { - mSeeMoreButton.setVisibility(View.GONE); - } else { - mSeeMoreButton.setVisibility(View.VISIBLE); - mSeeMoreButton.setText(customTitle); - } + enableCustomizedButton(); } else if (mPanel.getSeeMoreIntent() == null) { // If getSeeMoreIntent() is null hide the mSeeMoreButton. mSeeMoreButton.setVisibility(View.GONE); @@ -275,14 +271,16 @@ public class PanelFragment extends Fragment { 0 /* value */); } - private void enablePanelHeader(IconCompat icon, CharSequence title) { + private void enablePanelHeader(IconCompat icon, CharSequence title, CharSequence subtitle) { mTitleView.setVisibility(View.GONE); mPanelHeader.setVisibility(View.VISIBLE); mPanelHeader.setAccessibilityPaneTitle(title); mHeaderTitle.setText(title); - mHeaderSubtitle.setText(mPanel.getSubTitle()); + mHeaderSubtitle.setText(subtitle); + mHeaderSubtitle.setAccessibilityPaneTitle(subtitle); if (icon != null) { mTitleGroup.setVisibility(View.VISIBLE); + mHeaderLayout.setGravity(Gravity.LEFT); mTitleIcon.setImageIcon(icon.toIcon(getContext())); if (mPanel.getHeaderIconIntent() != null) { mTitleIcon.setOnClickListener(getHeaderIconListener()); @@ -295,6 +293,24 @@ public class PanelFragment extends Fragment { } } else { 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 public void onCustomizedButtonStateChanged() { ThreadUtils.postOnMainThread(() -> { - mSeeMoreButton.setVisibility( - mPanel.isCustomizedButtonUsed() ? View.VISIBLE : View.GONE); - mSeeMoreButton.setText(mPanel.getCustomizedButtonTitle()); + enableCustomizedButton(); }); } @Override public void onHeaderChanged() { ThreadUtils.postOnMainThread(() -> { - final IconCompat icon = mPanel.getIcon(); - 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()); + enablePanelHeader(mPanel.getIcon(), mPanel.getTitle(), mPanel.getSubTitle()); }); } @@ -517,7 +523,7 @@ public class PanelFragment extends Fragment { @Override public void onTitleChanged() { ThreadUtils.postOnMainThread(() -> { - mTitleView.setText(mPanel.getTitle()); + enableTitle(mPanel.getTitle()); }); } diff --git a/tests/robotests/src/com/android/settings/panel/InternetConnectivityPanelTest.java b/tests/robotests/src/com/android/settings/panel/InternetConnectivityPanelTest.java deleted file mode 100644 index eb82d31745e..00000000000 --- a/tests/robotests/src/com/android/settings/panel/InternetConnectivityPanelTest.java +++ /dev/null @@ -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 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 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(); - } -} diff --git a/tests/unit/src/com/android/settings/network/ProviderModelSliceTest.java b/tests/unit/src/com/android/settings/network/ProviderModelSliceTest.java index 8f998a4925d..476d8547a71 100644 --- a/tests/unit/src/com/android/settings/network/ProviderModelSliceTest.java +++ b/tests/unit/src/com/android/settings/network/ProviderModelSliceTest.java @@ -16,8 +16,6 @@ package com.android.settings.network; -import static android.app.slice.Slice.EXTRA_TOGGLE_STATE; - import static com.google.common.truth.Truth.assertThat; 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.anyString; import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.never; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; @@ -387,35 +386,34 @@ public class ProviderModelSliceTest { } @Test - public void onNotifyChange_intentToggleActionOn_shouldSetCarrierNetworkEnabledTrue() { - when(mMockProviderModelSlice.defaultSubscriptionIsUsable(anyInt())).thenReturn(true); - Intent intent = mMockProviderModelSlice.getBroadcastIntent(mContext).getIntent(); - intent.putExtra(EXTRA_TOGGLE_STATE, true); - - mMockProviderModelSlice.onNotifyChange(intent); + public void doCarrierNetworkAction_toggleActionSetDataEnabled_setCarrierNetworkEnabledTrue() { + mMockProviderModelSlice.doCarrierNetworkAction(true /* isToggleAction */, + true /* isDataEnabled */); verify(mMockNetworkProviderWorker).setCarrierNetworkEnabled(true); } @Test - public void onNotifyChange_intentToggleActionOff_shouldSetCarrierNetworkEnabledFalse() { - when(mMockProviderModelSlice.defaultSubscriptionIsUsable(anyInt())).thenReturn(true); - Intent intent = mMockProviderModelSlice.getBroadcastIntent(mContext).getIntent(); - intent.putExtra(EXTRA_TOGGLE_STATE, false); - - mMockProviderModelSlice.onNotifyChange(intent); + public void doCarrierNetworkAction_toggleActionSetDataDisabled_setCarrierNetworkEnabledFalse() { + mMockProviderModelSlice.doCarrierNetworkAction(true /* isToggleAction */, + false /* isDataEnabled */); verify(mMockNetworkProviderWorker).setCarrierNetworkEnabled(false); } @Test - public void onNotifyChange_intentPrimaryAction_shouldConnectCarrierNetwork() { - when(mMockProviderModelSlice.defaultSubscriptionIsUsable(anyInt())).thenReturn(true); - when(mTelephonyManager.isDataEnabled()).thenReturn(true); - Intent intent = mMockProviderModelSlice.getBroadcastIntent(mContext).getIntent(); - - mMockProviderModelSlice.onNotifyChange(intent); + public void doCarrierNetworkAction_primaryActionAndDataEnabled_connectCarrierNetwork() { + mMockProviderModelSlice.doCarrierNetworkAction(false /* isToggleAction */, + true /* isDataEnabled */); verify(mMockNetworkProviderWorker).connectCarrierNetwork(); } + + @Test + public void doCarrierNetworkAction_primaryActionAndDataDisabled_notConnectCarrierNetwork() { + mMockProviderModelSlice.doCarrierNetworkAction(false /* isToggleAction */, + false /* isDataEnabled */); + + verify(mMockNetworkProviderWorker, never()).connectCarrierNetwork(); + } } diff --git a/tests/unit/src/com/android/settings/panel/InternetConnectivityPanelTest.java b/tests/unit/src/com/android/settings/panel/InternetConnectivityPanelTest.java index e8f694b78d8..a4d4ad1b916 100644 --- a/tests/unit/src/com/android/settings/panel/InternetConnectivityPanelTest.java +++ b/tests/unit/src/com/android/settings/panel/InternetConnectivityPanelTest.java @@ -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_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; @@ -26,10 +29,13 @@ import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import android.content.Context; +import android.net.Uri; import androidx.test.core.app.ApplicationProvider; 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 org.junit.Before; @@ -40,6 +46,8 @@ import org.mockito.Mock; import org.mockito.junit.MockitoJUnit; import org.mockito.junit.MockitoRule; +import java.util.List; + @RunWith(AndroidJUnit4.class) public class InternetConnectivityPanelTest { @@ -47,6 +55,10 @@ public class InternetConnectivityPanelTest { ApplicationProvider.getApplicationContext(), "provider_internet_settings"); public static final String TITLE_APM_NETWORKS = ResourcesUtils.getResourcesString( 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 public final MockitoRule mMocks = MockitoJUnit.rule(); @@ -66,30 +78,147 @@ public class InternetConnectivityPanelTest { } @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); 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 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 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); mPanel.onInternetTypeChanged(INTERNET_APM_NETWORKS); - assertThat(mPanel.getTitle()).isEqualTo(TITLE_APM_NETWORKS); verify(mPanelContentCallback).onTitleChanged(); } @Test - public void getTitle_internetTypeChangedFromApmNetworksToApm_verifyTitleChanged() { + public void onInternetTypeChanged_internetTypeChangedFromApmNetworks_changeTitle() { mPanel.onInternetTypeChanged(INTERNET_APM_NETWORKS); - - assertThat(mPanel.getTitle()).isEqualTo(TITLE_APM_NETWORKS); - clearInvocations(mPanelContentCallback); - mPanel.onInternetTypeChanged(INTERNET_APM); + mPanel.onInternetTypeChanged(INTERNET_WIFI); - assertThat(mPanel.getTitle()).isEqualTo(TITLE_INTERNET); verify(mPanelContentCallback).onTitleChanged(); } }